single |
# mkdocs-get-deps
**An extra command for [MkDocs][] that infers required PyPI packages from
`plugins` in mkdocs.yml.**
[PyPI]
[GitHub]
[GitHub Workflow Status]
Installation: | Alternatively through MkDocs
itself: |
```bash
pip install mkdocs-get-deps
```
|
`bash
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: |
```bash
# Print dependencies of the current project
mkdocs-get-deps
# Save them into a file
mkdocs-get-deps > requirements.txt
# Install dependencies on the fly
pip install $(mkdocs-get-deps)
```
|
```bash
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 and add all your
general-purpose plugins, themes and extensions there, so that they can be
looked up through `mkdocs get-deps`.
[MkDocs]: https://www.mkdocs.org/
[`mkdocs.yml`]: https://www.mkdocs.org/user-guide/configuration/
|