mkdocs-get-deps
An extra command for MkDocs that infers required PyPI packages from plugins
in mkdocs.yml.
Installation: | Alternatively through MkDocs itself: |
pip install mkdocs-get-deps
|
pip install mkdocs
|
This command guesses the Python dependencies that a MkDocs site requires in order to build. It simply prints the PyPI packages that need to be installed. In the terminal it can be combined directly with a pip install
command, as per the last example below:
Usage: | Alternatively through MkDocs itself: |
mkdocs-get-deps
mkdocs-get-deps > requirements.txt
pip install $(mkdocs-get-deps)
|
mkdocs get-deps
mkdocs get-deps > requirements.txt
pip install -r requirements.txt
pip install $(mkdocs get-deps)
|
The idea is that right after running this command, you can directly follow it up with mkdocs build
and it will almost always "just work", without needing to think which dependencies to install.
The way it works is by scanning mkdocs.yml
for themes:
, plugins:
, markdown_extensions:
items and doing a reverse lookup based on a large list of known projects (catalog, see below).
Of course, you're encouraged to use a "virtualenv" with such a command. Also note that for environments that require stability (for example CI) directly installing deps in this way is not a very reliable approach as it precludes dependency pinning.
The command allows overriding which config file is used (instead of mkdocs.yml
in the current directory) as well as which catalog of projects is used (instead of downloading it from the default location). See mkdocs get-deps --help
.
MkDocs' official catalog of plugins
Check out https://github.com/mkdocs/catalog and add all your general-purpose plugins, themes and extensions there, so that they can be looked up through mkdocs get-deps
.