This package allows you to add links to other MkDocs sites (or sites created with similar page generator).
First install the PyPI package:
pip install mkdocs-crosslink-pluginAdd 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: TrueEach 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/.
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"
...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.
- Just some bug fixes
- Added builtin
localcrosslink - Reference
index.mdas<PARENT_DIR_NAME>/ - Added glob support for crosslinks
- Added profiling option (
show_profiling_results: True)