Skip to content
Snippets Groups Projects
url_test.py 1.16 KiB
Newer Older
  • Learn to ignore specific revisions
  • #!/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:
    
    Lukáš Krupčík's avatar
    Lukáš Krupčík committed
                            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")