Newer
Older
#!/usr/bin/python3
"""
Script to check external links in MDX files.
"""
import re
from pathlib import Path
def check_links_in_mdx(directory):
"""
Scans MDX files in the given directory for external links and checks their availability.
:param directory: Path to the directory containing MDX files.
"""
mdx_files = Path(directory).rglob("*.mdx")
url_pattern = re.compile(r'\[.*?\]\((http[s]?://.*?)\)')
for mdx_file in mdx_files:
with open(mdx_file, "r", encoding="utf-8") as file:
content = file.read()
links = url_pattern.findall(content)
for link in links:
try:
response = requests.head(link, allow_redirects=True, timeout=5)
if response.status_code >= 400:
print(
f"❌ Broken link in {mdx_file}: {link} "
f"(Status: {response.status_code})"
)
print(f"⚠️ Error checking {link} in {mdx_file}")
if __name__ == "__main__":
check_links_in_mdx("content/docs")