Spaces:
Runtime error
Runtime error
| """Internal link validation for generated Markdown files.""" | |
| from __future__ import annotations | |
| import re | |
| from pathlib import Path | |
| LINK_RE = re.compile(r"\[([^\]]+)\]\(([^)]+)\)") | |
| def find_internal_links(content: str) -> list[tuple[str, str]]: | |
| """Extract (text, href) pairs for internal (non-http) links.""" | |
| all_links = LINK_RE.findall(content) | |
| return [(text, href) for text, href in all_links if not href.startswith("http")] | |
| def validate_internal_links(file_path: Path, base_dir: Path) -> list[str]: | |
| """Return list of broken internal link hrefs in a Markdown file.""" | |
| broken = [] | |
| try: | |
| content = file_path.read_text(encoding="utf-8") | |
| for _, href in find_internal_links(content): | |
| target = (file_path.parent / href).resolve() | |
| if not target.exists(): | |
| broken.append(href) | |
| except Exception: | |
| pass | |
| return broken | |