Skip to main content

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.inv files

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

  1. Parse Phase (on_page_markdown): Extract HTML ref comments and parse headers
  2. Collection Phase (on_page_content): Collect inventory entries with actual anchor IDs from TOC
  3. Generation Phase (on_post_build): Create and write objects.inv file using sphobjinv

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.

Release files for mkdocs-intersphinx 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mkdocs-intersphinx 0.1.1
File Size Uploaded
mkdocs_intersphinx-0.1.1.tar.gz 11.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mkdocs-intersphinx 0.1.1
File Interpreter ABI Platform
mkdocs_intersphinx-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 21.3 kB

Release files / mkdocs_intersphinx-0.1.1.tar.gz

Download URL mkdocs_intersphinx-0.1.1.tar.gz
Size 11.9 kB
Tags Source
SHA-256 checksum
How to use checksums
7af436724c9d026ae4ea7377d0bfc3e604c1abf4beee13cd91a8eb584c4faae7
BLAKE2b-256 checksum
How to use checksums
0b1aba78f1f5a98c3df82a048b5d459f0d6f993fe9feb99d592de92ffd2d10e3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.31.0

Release files / mkdocs_intersphinx-0.1.1-py3-none-any.whl

Download URL mkdocs_intersphinx-0.1.1-py3-none-any.whl
Size 9.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f29eda479a996bf0bb125b8c8a3b6205c55e0afcc41b0d8067e0e775000d5d75
BLAKE2b-256 checksum
How to use checksums
a660d83687a520a23a2e38f6f11b216c7540613aa66d0f115f72b88aea6ca4b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.31.0

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page