MkDocs plugin to generate Sphinx-compatible objects.inv for intersphinx cross-referencing
Project description
MkDocs Intersphinx Generator Plugin
A MkDocs plugin that generates Sphinx-compatible objects.inv files for intersphinx cross-referencing.
Features
- Page-level references via YAML frontmatter
- Header-level references via HTML comments
- Generates Sphinx-compatible
objects.invfiles
Installation
Development Installation
From the plugin directory:
pip install -e .
Or with development dependencies:
pip install -e ".[dev]"
Usage
1. Configure the Plugin
Add to your mkdocs.yml:
plugins:
- search
- intersphinx:
enabled: true
project: "My Project"
version: "latest"
2. Add References to Your Pages
Page-Level References (YAML Frontmatter)
---
ref: my-page-reference
title: My Page Title
---
# My Page
Content here...
Header-Level References (HTML Comments)
# My Page
<!-- ref:important-section -->
## Important Section
This section can be referenced by other projects.
<!-- ref:another-topic -->
### Another Topic
More content...
3. Build Your Site
mkdocs build
The plugin will generate site/objects.inv containing all references.
Configuration Options
| Option | Type | Default | Description |
|---|---|---|---|
enabled |
bool | true |
Enable/disable the plugin |
project |
str | site_name | Project name for the inventory |
version |
str | "latest" |
Project version |
output |
str | "objects.inv" |
Output filename |
domain |
str | "std" |
Sphinx domain for entries |
page_role |
str | "doc" |
Role for page references |
header_role |
str | "label" |
Role for header references |
verbose |
bool | false |
Enable verbose logging |
Using Generated Inventory
From Sphinx Projects
In your Sphinx conf.py:
intersphinx_mapping = {
'myproject': ('https://example.com/docs/', None),
}
Reference in reStructuredText:
See :doc:`myproject:my-page-reference`
See :ref:`myproject:important-section`
From MkDocs with mkdocstrings
In your mkdocs.yml:
plugins:
- mkdocstrings:
handlers:
python:
import:
- https://example.com/docs/objects.inv
Development
Running Tests
pytest
Test Coverage
pytest --cov=mkdocs_intersphinx --cov-report=html
How It Works
- Parse Phase (
on_page_markdown): Extract HTML ref comments and parse headers - Collection Phase (
on_page_content): Collect inventory entries with actual anchor IDs from TOC - Generation Phase (
on_post_build): Create and writeobjects.invfile usingsphobjinv
Reference Naming Guidelines
- Use lowercase letters, numbers, hyphens, and underscores only
- Use hyphens to separate words (e.g.,
thread-safety-levels) - Make names descriptive but concise
- Ensure names are unique across your documentation
Examples
See the tests/ directory for example usage.
License
MIT
Contributing
Contributions welcome! Please open an issue or pull request.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mkdocs_intersphinx-0.1.1.tar.gz.
File metadata
- Download URL: mkdocs_intersphinx-0.1.1.tar.gz
- Upload date:
- Size: 11.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.31.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7af436724c9d026ae4ea7377d0bfc3e604c1abf4beee13cd91a8eb584c4faae7
|
|
| MD5 |
2d3a26ed9d2cb4c260cda6c5c72e4db7
|
|
| BLAKE2b-256 |
0b1aba78f1f5a98c3df82a048b5d459f0d6f993fe9feb99d592de92ffd2d10e3
|
File details
Details for the file mkdocs_intersphinx-0.1.1-py3-none-any.whl.
File metadata
- Download URL: mkdocs_intersphinx-0.1.1-py3-none-any.whl
- Upload date:
- Size: 9.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.31.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f29eda479a996bf0bb125b8c8a3b6205c55e0afcc41b0d8067e0e775000d5d75
|
|
| MD5 |
53f8e94e9de72c4595aa9588b0122d94
|
|
| BLAKE2b-256 |
a660d83687a520a23a2e38f6f11b216c7540613aa66d0f115f72b88aea6ca4b4
|