#!/usr/bin/python3 """ Script to check external links in MDX files. """ import re from pathlib import Path import requests 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})" ) except requests.RequestException: print(f"⚠️ Error checking {link} in {mdx_file}") if __name__ == "__main__": check_links_in_mdx("content/docs")