Simplify linking between different MkDocs sites
Project description
mkdocs-crosslink-plugin
This package allows you to add links to other MkDocs sites (or sites created with similar page generator).
Usage
First install the PyPI package:
pip install mkdocs-crosslink-plugin
Add something like the following to your mkdocs.yml:
plugins:
- search
- crosslink:
crosslinks:
- name: alpha
source_dir: site_a/docs
target_url: http://localhost:8000/site_a/
use_directory_urls: False
- name: "example"
source_dir: /var/www/html/example.com/
target_url: https://example.com/
use_directory_urls: True
Each crosslink has the following attributes:
name: How you reference the site. By default the schema isx-NAME:FILE_NAME(so for examplex-alpha:my-image.png).source_diris the directory containing the Markdown files.target_urlis the path, where the site corresponding to thesource_dirfiles are hosted.use_directory_urlsshould correspond to the target site'suse_directory_urlssettings.- If enabled
path/index.mdwill be mapped topath/andpath/test.mdwill be mapped topath/test/. - If disabled
path/index.mdwill be mapped topath/index.htmlandpath/test.mdwill be mapped topath/test.html.
- If enabled
Starting with version 0.0.2 you can also define multiple crosslinks at once, by using a glob-like syntax.
Inject a * character in the name, source_dir, and target_url.
The plugin will then look for directories matching the source_dir glob, create a crosslink for each one that was not defined before, and replace the * in the name and target_url with the same value that it matched in the source_dir value.
Starting with version 0.0.2 there is also a builtin local crosslink, which can be used to reference files in the current site, similar to other autolink tools.
On your pages you can reference links and images to other sites with the x-SITE_NAME:FILE_NAME syntax.
For example to load the image my-image.png somewhere from the https://example.com/ (crosslink example) you would use the syntax:

If multiple files with the exact same name exist, there is currently now way to reference the correct one.
In the future I plan to let you specify a part of the path to select the correct file.
From 0.0.2 on: For index files (index.md or index.html) you can reference them by the name of the parent's directory followed by a slash.
So /path/to/some/index.md can be referenced as some/.
Compatibility with other autolink plugins
In theory, this plugin should work side by side with other autolink plugins.
This is because the default schema x-NAME: is basically a fake URL schema that any other plugins should not touch.
At the same time this plugin ignores normal links, which are processed by other autolink plugins.
Known problems exist with mkdocs-ezlinks-plugin because it expects custom URL schemas to be followed by // (like x-NAME://) as can be seen by the mailto: issue.
You can work around this, by using links followed by a double slash and setting the correct suffix in the plugin settings:
plugins:
- search
- crosslink:
suffix: "://"
crosslinks:
- name: "site_a"
...
Testing
Some very basic tests are in docs (main site), site_a (crosslink alpha), and site_b (crosslink bravo).
You can build and serve the test site by running ./build.sh.
Notable changes
Version 0.0.3
- Just some bug fixes
Version 0.0.2
- Added builtin
localcrosslink - Reference
index.mdas<PARENT_DIR_NAME>/ - Added glob support for crosslinks
- Added profiling option (
show_profiling_results: True)
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-crosslink-plugin-0.0.3.tar.gz.
File metadata
- Download URL: mkdocs-crosslink-plugin-0.0.3.tar.gz
- Upload date:
- Size: 13.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c64241ad9290432b36827b2f07da4e2151f064302abe0141751a46b950623350
|
|
| MD5 |
047a5cf00b1485d7a3495e8428d1f96a
|
|
| BLAKE2b-256 |
9dbb8a9730485ec0f7c9c5b4c17b1d01887fdc9bce944a64e761b4eb928e3af5
|
File details
Details for the file mkdocs_crosslink_plugin-0.0.3-py3-none-any.whl.
File metadata
- Download URL: mkdocs_crosslink_plugin-0.0.3-py3-none-any.whl
- Upload date:
- Size: 14.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
574602408806d89604874fd6d2603f4f01f57278ba0647e1d3863e4e4f53c548
|
|
| MD5 |
e4af815f0506bd4c80e03405818210f6
|
|
| BLAKE2b-256 |
0385e3c6c3e126598d28663aefd8f76633c7aa177f379f9e8424dc4f7347bde4
|