2020-03-26 11:19:20 +01:00
|
|
|
---
|
|
|
|
template: overrides/main.html
|
2020-07-27 17:52:38 +02:00
|
|
|
title: Getting started
|
2020-03-26 11:19:20 +01:00
|
|
|
---
|
|
|
|
|
2016-02-09 21:59:37 +01:00
|
|
|
# Getting started
|
|
|
|
|
2020-05-31 15:40:41 +02:00
|
|
|
Material for MkDocs is a theme for [MkDocs][1], a static site generator geared
|
2020-07-26 14:46:09 +02:00
|
|
|
towards (technical) project documentation. If you're familiar with Python, you
|
2020-07-16 22:31:39 +02:00
|
|
|
can install Material for MkDocs with [`pip`][2], the Python package manager.
|
|
|
|
If not, we recommended using [`docker`][3].
|
|
|
|
|
|
|
|
In case you're running into problems, consult the [troubleshooting][4] section.
|
2016-02-09 21:59:37 +01:00
|
|
|
|
2020-05-31 15:40:41 +02:00
|
|
|
[1]: https://www.mkdocs.org
|
|
|
|
[2]: #with-pip
|
|
|
|
[3]: #with-docker
|
2020-07-17 13:08:27 +02:00
|
|
|
[4]: troubleshooting.md
|
2016-02-09 21:59:37 +01:00
|
|
|
|
2020-05-31 15:40:41 +02:00
|
|
|
## Installation
|
2016-02-09 21:59:37 +01:00
|
|
|
|
2020-05-31 15:40:41 +02:00
|
|
|
### with pip
|
2016-12-29 17:55:08 +01:00
|
|
|
|
2020-03-09 16:48:52 +01:00
|
|
|
Material for MkDocs can be installed with `pip`:
|
2016-02-09 21:59:37 +01:00
|
|
|
|
2020-07-26 14:46:09 +02:00
|
|
|
=== "Material for MkDocs"
|
2020-07-22 18:30:00 +02:00
|
|
|
|
2020-07-23 14:37:20 +02:00
|
|
|
```
|
2020-07-22 18:30:00 +02:00
|
|
|
pip install mkdocs-material
|
|
|
|
```
|
|
|
|
|
2020-08-30 11:49:05 +02:00
|
|
|
=== "Insiders"
|
2020-07-22 18:30:00 +02:00
|
|
|
|
|
|
|
``` sh
|
2020-07-26 14:46:09 +02:00
|
|
|
pip install git+https://${GH_TOKEN}@github.com/squidfunk/mkdocs-material-insiders.git
|
2020-07-22 18:30:00 +02:00
|
|
|
```
|
2016-02-09 21:59:37 +01:00
|
|
|
|
2020-05-31 15:40:41 +02:00
|
|
|
This will automatically install compatible versions of all dependencies:
|
2020-07-22 19:11:22 +02:00
|
|
|
[MkDocs][1], [Markdown][5], [Pygments][6] and [Python Markdown Extensions][7].
|
|
|
|
Material for MkDocs always strives to support the latest versions, so there's
|
|
|
|
no need to install those packages separately.
|
2017-03-11 18:01:14 +01:00
|
|
|
|
2020-12-21 17:38:58 +01:00
|
|
|
_Note that in order to install [Insiders][8], you'll need to [become a
|
|
|
|
sponsor][9], create a personal access token[^1], and set the_ `GH_TOKEN`
|
|
|
|
_environment variable to the token's value._
|
|
|
|
|
|
|
|
[^1]:
|
|
|
|
In order to use `pip` to install from the private repository over HTTPS, the
|
|
|
|
[personal access token][14] requires the [`repo`][15] scope. The creation
|
|
|
|
and usage of an access token is only necessary when installing Insiders
|
|
|
|
over HTTPS, which is the recommended way when building from within a CI/CD
|
|
|
|
workflow, e.g. using [GitHub Pages][16] or [GitLab Pages][17].
|
2020-07-22 18:30:00 +02:00
|
|
|
|
2020-07-16 22:31:39 +02:00
|
|
|
[5]: https://python-markdown.github.io/
|
|
|
|
[6]: https://pygments.org/
|
|
|
|
[7]: https://facelessuser.github.io/pymdown-extensions/
|
2020-07-27 09:40:57 +02:00
|
|
|
[8]: insiders.md
|
|
|
|
[9]: insiders.md#how-to-become-a-sponsor
|
2017-03-11 18:01:14 +01:00
|
|
|
|
2020-05-31 15:40:41 +02:00
|
|
|
### with docker
|
2017-03-11 18:01:14 +01:00
|
|
|
|
2020-11-22 14:52:08 +01:00
|
|
|
The official [Docker image][10] is a great way to get up and running in a few
|
2020-03-09 16:48:52 +01:00
|
|
|
minutes, as it comes with all dependencies pre-installed. Pull the image for the
|
|
|
|
`latest` version with:
|
2017-11-05 14:40:30 +01:00
|
|
|
|
2020-11-22 14:52:08 +01:00
|
|
|
=== "Material for MkDocs"
|
|
|
|
|
|
|
|
```
|
|
|
|
docker pull squidfunk/mkdocs-material
|
|
|
|
```
|
|
|
|
|
|
|
|
=== "Insiders"
|
|
|
|
|
|
|
|
```
|
|
|
|
docker login -u ${GH_USERNAME} -p ${GH_TOKEN} ghcr.io
|
|
|
|
docker pull ghcr.io/squidfunk/mkdocs-material-insiders
|
|
|
|
```
|
2017-11-05 14:40:30 +01:00
|
|
|
|
2020-05-31 15:40:41 +02:00
|
|
|
The `mkdocs` executable is provided as an entry point and `serve` is the
|
2020-07-26 14:46:09 +02:00
|
|
|
default command. If you're not familiar with Docker don't worry, we have you
|
2020-05-31 15:40:41 +02:00
|
|
|
covered in the following sections.
|
2020-03-09 16:48:52 +01:00
|
|
|
|
2020-07-27 12:41:04 +02:00
|
|
|
The following plugins are bundled with the Docker image:
|
|
|
|
|
2020-11-22 14:52:08 +01:00
|
|
|
- [mkdocs-minify-plugin][11]
|
|
|
|
- [mkdocs-redirects][12]
|
2020-07-27 12:41:04 +02:00
|
|
|
|
2020-12-21 17:38:58 +01:00
|
|
|
_Note that in order to install [Insiders][8], you'll need to [become a
|
|
|
|
sponsor][9], create a personal access token[^2], and set the_ `GH_TOKEN`
|
|
|
|
_environment variable to the token's value._
|
|
|
|
|
|
|
|
[^2]:
|
|
|
|
If you want to use `docker` to pull the private Docker image from the
|
|
|
|
[GitHub Container Registry][18], the [personal access token][14] requires
|
|
|
|
the [`read:packages`][15] scope. Note that you need to login before pulling
|
|
|
|
the Docker image. As an example, see the [`publish`][19] workflow of the
|
|
|
|
Material for MkDocs repository.
|
2020-11-22 14:52:08 +01:00
|
|
|
|
|
|
|
[10]: https://hub.docker.com/r/squidfunk/mkdocs-material/
|
|
|
|
[11]: https://github.com/byrnereese/mkdocs-minify-plugin
|
|
|
|
[12]: https://github.com/datarobot/mkdocs-redirects
|
2017-11-05 14:40:30 +01:00
|
|
|
|
2020-12-21 17:38:58 +01:00
|
|
|
??? question "How to add plugins to the Docker image?"
|
2020-09-16 11:30:05 +02:00
|
|
|
|
|
|
|
Material for MkDocs bundles useful and common plugins while trying not to
|
|
|
|
blow up the size of the official image. If the plugin you want to use is
|
|
|
|
not included, create a new `Dockerfile` and extend the official Docker image
|
|
|
|
with your custom installation routine:
|
|
|
|
|
|
|
|
``` Dockerfile
|
|
|
|
FROM squidfunk/mkdocs-material
|
|
|
|
RUN pip install ...
|
|
|
|
```
|
|
|
|
|
|
|
|
Next, you can build the image with the following command:
|
|
|
|
|
|
|
|
```
|
|
|
|
docker build -t squidfunk/mkdocs-material .
|
|
|
|
```
|
|
|
|
|
|
|
|
The new image can be used exactly like the official image.
|
|
|
|
|
2020-03-09 16:48:52 +01:00
|
|
|
### with git
|
|
|
|
|
2020-11-22 14:52:08 +01:00
|
|
|
Material for MkDocs can be directly used from [GitHub][13] by cloning the
|
2020-03-09 16:48:52 +01:00
|
|
|
repository into a subfolder of your project root which might be useful if you
|
|
|
|
want to use the very latest version:
|
|
|
|
|
2020-07-26 14:46:09 +02:00
|
|
|
=== "Material for MkDocs"
|
2020-07-22 18:30:00 +02:00
|
|
|
|
2020-07-23 14:37:20 +02:00
|
|
|
```
|
2020-07-22 18:30:00 +02:00
|
|
|
git clone https://github.com/squidfunk/mkdocs-material.git
|
|
|
|
```
|
|
|
|
|
2020-08-30 11:49:05 +02:00
|
|
|
=== "Insiders"
|
2020-07-22 18:30:00 +02:00
|
|
|
|
2020-07-23 14:37:20 +02:00
|
|
|
```
|
2020-07-26 14:46:09 +02:00
|
|
|
git clone git@github.com:squidfunk/mkdocs-material-insiders.git mkdocs-material
|
2020-07-22 18:30:00 +02:00
|
|
|
```
|
2020-03-09 16:48:52 +01:00
|
|
|
|
2020-09-06 13:34:33 +02:00
|
|
|
The theme will reside in the folder `mkdocs-material/material`. When cloning
|
|
|
|
from `git`, you must install all required dependencies yourself:
|
2016-02-09 21:59:37 +01:00
|
|
|
|
2020-07-23 14:37:20 +02:00
|
|
|
```
|
2020-05-31 15:40:41 +02:00
|
|
|
pip install -r mkdocs-material/requirements.txt
|
2016-02-09 21:59:37 +01:00
|
|
|
```
|
|
|
|
|
2020-12-21 17:38:58 +01:00
|
|
|
_Note that in order to install [Insiders][8], you'll need to [become a
|
|
|
|
sponsor][9]._
|
2020-07-26 14:46:09 +02:00
|
|
|
|
2020-11-22 14:52:08 +01:00
|
|
|
[13]: https://github.com/squidfunk/mkdocs-material
|
2020-08-30 11:49:05 +02:00
|
|
|
|
2020-11-22 14:52:08 +01:00
|
|
|
[14]: https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token
|
2020-09-27 12:24:56 +02:00
|
|
|
[15]: https://docs.github.com/en/developers/apps/scopes-for-oauth-apps#available-scopes
|
|
|
|
[16]: publishing-your-site.md#github-pages
|
|
|
|
[17]: publishing-your-site.md#gitlab-pages
|
2020-11-22 14:52:08 +01:00
|
|
|
[18]: https://docs.github.com/en/free-pro-team@latest/packages/getting-started-with-github-container-registry/about-github-container-registry
|
2020-12-21 17:38:58 +01:00
|
|
|
[19]: https://github.com/squidfunk/mkdocs-material/blob/master/.github/workflows/publish.yml
|