Checking Anchor Links (Fragment Identifiers)
lychee can check anchor links (also called fragments) in both HTML and Markdown files. This feature helps ensure that internal links to specific sections of a page are valid.
Quick Start
Section titled “Quick Start”To enable anchor link checking, use the --include-fragments flag:
lychee --include-fragments 'https://example.com/docs'Supported Formats Overview
Section titled “Supported Formats Overview”| Feature | Markdown | HTML | Inline HTML in Markdown |
|---|---|---|---|
| Heading-based fragments | ✅ | ✅ | ✅ |
| Custom ID fragments | ✅ | ✅ | ✅ |
| Unicode in fragments | ✅ | ✅ | ✅ |
| Inline code in headings | ✅ | N/A | N/A |
Detailed Information
Section titled “Detailed Information”Supported Formats
Section titled “Supported Formats”- Markdown (.md) files
- HTML (.html) files
- Inline HTML within Markdown files
Supported Anchor Link Types
Section titled “Supported Anchor Link Types”- Links to headings (e.g.,
#introduction) - Links to custom IDs (e.g.,
#custom-section-id) - Unicode characters in fragments (e.g.,
#résumé)
How does lychee generate fragments for comparison?
Section titled “How does lychee generate fragments for comparison?”lychee uses two main methods:
- Heading Attributes: For explicit IDs specified in Markdown (e.g.,
## My Heading {#custom-id}) - Unique Kebab Case: For standard headings, similar to GitHub’s auto-generated anchors
Supported Edge Cases
Section titled “Supported Edge Cases”lychee handles:
- Headings with inline code (e.g.,
# `code` in heading) - Unicode characters in headings
- Underscores in headings (preserved in fragments)
Limitations
Section titled “Limitations”- Complex or nested HTML structures might not be fully supported
- JavaScript-generated anchors cannot be checked
- Some advanced Markdown or HTML processor-specific features may not be recognized. Create an issue if you encounter any problems.
Troubleshooting
Section titled “Troubleshooting”In case of issues with anchor link checking, here are some tips:
- Use explicit IDs for complex headings or when targeting specific elements
- Ensure your Markdown and HTML follow standard practices for heading structures
- For HTML files, use the
idattribute on elements you want to link to