(page: Page, href: str, pages_by_html: dict[Path, Page])
| 222 | |
| 223 | |
| 224 | def _resolve_href(page: Page, href: str, pages_by_html: dict[Path, Page]) -> str | None: |
| 225 | if not href or href.startswith("#"): |
| 226 | return None |
| 227 | if href.startswith(("http://", "https://")): |
| 228 | return href |
| 229 | href_no_fragment, _fragment = urldefrag(href) |
| 230 | if href_no_fragment.startswith("../src/") or "/src/" in href_no_fragment: |
| 231 | return None |
| 232 | target = (page.html_path.parent / href_no_fragment).resolve() |
| 233 | target_page = pages_by_html.get(target) |
| 234 | if target_page is None: |
| 235 | return None |
| 236 | return target_page.url |
| 237 | |
| 238 | |
| 239 | def _tag_classes(node: Tag) -> set[str]: |
no test coverage detected