Outbound cross-links
Outbound cross-links are links from your documentation set to other documentation sets in different repositories.
Outbound cross-links allow you to:
- Link to documentation in other repositories.
- Maintain those links even as the target repository evolves.
- Validate links during local builds.
- Get warnings if target content is moved or deleted.
If both repositories publish to the same Link Service, they can link to each other using the cross-link syntax:
[Link text](repository-name://path/to/file.md)
For example:
See the [Search API documentation](elasticsearch://reference/api/search.md)
You have to explicitly opt in to another repository's Link Index
by adding it to your docset.yml
file:
cross_links:
- docs-content
When docs-builder
encounters a cross-link:
- Parse: Extracts the repository name and path from the link
- Resolve: Looks up the path in the locally cached Link Index to get the actual URL
- Validate: Verifies the link exists and generates an error if not
- Transform: Replaces the cross-link with the fully resolved URL in the output
During a build, docs-builder
:
- Validates immediately: Checks all outbound cross-links against locally fetched Link Index files.
- Reports errors: Reports errors about broken links before you publish.
To enable cross-links to a repository, add it to your docset.yml
:
cross_links:
- elasticsearch
- kibana
- fleet
This instructs docs-builder
to fetch the Link Index
from the Link Service during the build process which are then cached locally.
docs-builder
will validate locally cached Link Index
files against the remote Link Index
files on each build fetching updates as needed.
Now you can create cross-links e.g elasticsearch://path/to/file.md
The explicit opt-in prevents each repository build having the fetch all the links for all the repositories in the Link Catalog
of which there may be many.
Good:
[Search API](elasticsearch://reference/api/search.md)
Bad:
[Search API](https://www.elastic.co/guide/en/elasticsearch/reference/current/search.html)
The cross-link syntax is resilient to:
- URL structure changes.
- File moves (if redirects are configured).
- Version differences.
You can link to specific headings within a page:
[Query DSL](elasticsearch://reference/query-dsl.md#match-query)
- Inbound Cross-links - Links from other repositories to yours.
- Link Index - How cross-links are resolved.
- Links syntax - Complete link syntax documentation.