Tool to merge multiple MkDocs sites into a single directory
Project description
MkDocs Merge
This simple tool allows you to merge the source of multiple MkDocs sites into a single one converting each of the specified sites to a sub-site of the master site.
Supports unification of sites with the same site_name
into a single sub-site.
Changelog
Access the changelog here: https://ovasquez.github.io/mkdocs-merge/changelog/
Note: Since version 0.6 MkDocs Merge added support for MkDocs 1.0 and dropped support for earlier versions. See here for more details about the changes in MkDocs 1.0.
MkDocs-Merge officially supports Python versions 3.8, 3.9 and 3.10. It has been tested to work correctly in previous 3.X versions, but those are no longer officially supported.
Install
$ pip install mkdocs-merge
Usage
$ mkdocs-merge run MASTER_SITE SITES [-u]...
Parameters
MASTER_SITE
: the path to the MkDocs site where the basemkdocs.yml
file resides. This is where all other sites will be merged into.SITES
: the paths to each of the MkDocs sites that will be merged. Each of these paths is expected to have amkdocs.yml
file and adocs
folder.-u
(optional): Unify sites with the same "site_name" into a single sub-site.
Example
$ mkdocs-merge run root/mypath/mysite /another/path/new-site /newpath/website
A single MkDocs site will be created in root/mypath/mysite
, and the sites in
/another/path/new-site
and /newpath/website
will be added as sub-pages.
Original root/mypath/mysite/mkdocs.yml
...
nav:
- Home: index.md
- About: about.md
Merged root/mypath/mysite/mkdocs.yml
...
nav:
- Home: index.md
- About: about.md
- new-site: new-site/home/another.md # Page merged from /another/path/new-site
- website: website/index.md # Page merged from /newpath/website
Development
Dev Install
Clone the repository and specify the dev
dependencies on the install command.
Check this StackOverflow answer for more details about the dev
dependencies
$ pip install -e .[dev]
Test
The tests can be run using tox
from the root directory. tox
is part of the development dependencies:
$ tox
Project Status
Very basic implementation. The code works but doesn't allow to specify options for the merging.
Pending work
- Refactoring of large functions.
- GitHub Actions build.
- Publish pip package.
- Better error handling.
- Merge configuration via CLI options.
- Unit testing (work in progress).
- CLI integration testing.
- Consider more complex cases.
- Make MkDocs Merge module friendly: thanks to mihaipopescu
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
File details
Details for the file mkdocs-merge-0.7.0.tar.gz
.
File metadata
- Download URL: mkdocs-merge-0.7.0.tar.gz
- Upload date:
- Size: 8.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.15
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 86884c20f110dd63113e07e664a4c323eec23c4b6696bb197baa4d5ed3a5d4d9 |
|
MD5 | e81a85a69640518d982b350a9aac1590 |
|
BLAKE2b-256 | 033d028e06f3f6ff9c9e58d6a66075a8241eaaad0e9e9f4fdb7068f12d41fe1e |
File details
Details for the file mkdocs_merge-0.7.0-py2.py3-none-any.whl
.
File metadata
- Download URL: mkdocs_merge-0.7.0-py2.py3-none-any.whl
- Upload date:
- Size: 9.8 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.15
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6a96feefb320af886f6c74d2d05403e77f189c9df0b29abe0cddbb75c5598005 |
|
MD5 | ab6d691addb50a73baebb48c73cb8e9e |
|
BLAKE2b-256 | d0d45e22c5cffeb13366f40cd2fea61bfc8ffddae67964cbbe368cf9049597b4 |