1
0
mirror of https://github.com/squidfunk/mkdocs-material.git synced 2024-09-24 11:28:23 +02:00
mkdocs-material/docs/getting-started.md

162 lines
5.1 KiB
Markdown
Raw Normal View History

---
template: overrides/main.html
title: Getting started
---
2016-02-09 21:59:37 +01:00
# Getting started
2021-10-10 22:32:32 +02:00
Material for MkDocs is a theme for [MkDocs], a static site generator geared
2020-07-26 14:46:09 +02:00
towards (technical) project documentation. If you're familiar with Python, you
2021-10-10 22:32:32 +02:00
can install Material for MkDocs with [`pip`][pip], the Python package manager.
2022-05-28 10:30:27 +02:00
If not, we recommend using [`docker`][docker].
2021-10-10 22:32:32 +02:00
[MkDocs]: https://www.mkdocs.org
[pip]: #with-pip
[docker]: #with-docker
2016-02-09 21:59:37 +01:00
## Installation
2016-02-09 21:59:37 +01:00
2021-10-10 21:04:22 +02:00
### with pip <small>recommended</small> { #with-pip data-toc-label="with pip" }
2022-04-02 13:47:15 +02:00
Material for MkDocs is published as a [Python package] and can be installed with
`pip`, ideally by using a [virtual environment]. If not, scroll down and expand
the help box. Install with:
2016-02-09 21:59:37 +01:00
2021-12-27 18:10:44 +01:00
=== "Latest"
``` sh
pip install mkdocs-material
```
2022-01-09 14:00:28 +01:00
=== "8.x"
2021-12-27 18:10:44 +01:00
``` sh
2022-02-27 17:08:15 +01:00
pip install mkdocs-material=="8.*" # (1)!
2021-12-27 18:10:44 +01:00
```
1. Material for MkDocs uses [semantic versioning][^1], which is why it's a
good idea to limit upgrades to the current major version.
This will make sure that you don't accidentally [upgrade to the next
major version], which may include breaking changes that silently break
your site. Additionally, you can use `pip freeze` to create a lockfile,
so builds are reproducible at all times:
```
pip freeze > requirements.txt
```
Now, the lockfile can be used for installation:
```
pip install -r requirements.txt
```
[^1]:
Note that improvements of existing features are sometimes released as
patch releases, like for example improved rendering of content tabs, as
they're not considered to be new features.
2016-02-09 21:59:37 +01:00
This will automatically install compatible versions of all dependencies:
2021-10-10 22:32:32 +02:00
[MkDocs], [Markdown], [Pygments] and [Python Markdown Extensions]. Material for
MkDocs always strives to support the latest versions, so there's no need to
install those packages separately.
2022-04-02 13:47:15 +02:00
---
__Tip__: If you don't have prior experience with Python, we recommend reading
[Using Python's pip to Manage Your Projects' Dependencies], which is a really
good introduction on the mechanics of Python package management and helps you
troubleshoot if you run into errors.
[Python package]: https://pypi.org/project/mkdocs-material/
[virtual environment]: https://realpython.com/what-is-pip/#using-pip-in-a-python-virtual-environment
2021-12-27 18:10:44 +01:00
[semantic versioning]: https://semver.org/
[upgrade to the next major version]: upgrade.md
2021-10-10 22:32:32 +02:00
[Markdown]: https://python-markdown.github.io/
[Pygments]: https://pygments.org/
[Python Markdown Extensions]: https://facelessuser.github.io/pymdown-extensions/
2022-04-02 13:47:15 +02:00
[Using Python's pip to Manage Your Projects' Dependencies]: https://realpython.com/what-is-pip/
### with docker
2021-10-10 22:32:32 +02:00
The official [Docker image] 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
2021-12-27 18:10:44 +01:00
=== "Latest"
```
docker pull squidfunk/mkdocs-material
```
2022-01-09 14:00:28 +01:00
=== "8.x"
2021-12-27 18:10:44 +01:00
```
docker pull squidfunk/mkdocs-material:8
```
2017-11-05 14:40:30 +01: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
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:
2021-10-10 22:32:32 +02:00
- [mkdocs-minify-plugin]
- [mkdocs-redirects]
2020-12-21 17:38:58 +01:00
2021-10-10 22:32:32 +02:00
[Docker image]: https://hub.docker.com/r/squidfunk/mkdocs-material/
[mkdocs-minify-plugin]: https://github.com/byrnereese/mkdocs-minify-plugin
[mkdocs-redirects]: 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?"
2021-11-07 18:23:01 +01:00
Material for MkDocs only bundles selected plugins in order to keep the size
of the official image small. If the plugin you want to use is not included,
create a new `Dockerfile` and extend the official Docker image:
``` 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.
!!! info ":material-apple: Apple Silicon (M1) and :fontawesome-brands-raspberry-pi: Raspberry Pi"
The official Docker image is only available for `linux/amd64`. We recommend
2021-10-10 22:32:32 +02:00
the [third-party image] by @afritzler if you want to run Material for MkDocs
via Docker on `arm64` or `armv7`, as it is automatically built on every
release:
```
docker pull ghcr.io/afritzler/mkdocs-material
```
2021-10-10 22:32:32 +02:00
[third-party image]: https://github.com/afritzler/mkdocs-material
2020-03-09 16:48:52 +01:00
### with git
2021-10-10 22:32:32 +02:00
Material for MkDocs can be directly used from [GitHub] 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:
2021-03-21 14:04:29 +01:00
```
git clone https://github.com/squidfunk/mkdocs-material.git
```
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
```
2021-10-10 22:32:32 +02:00
pip install -e mkdocs-material
2016-02-09 21:59:37 +01:00
```
2021-10-10 22:32:32 +02:00
[GitHub]: https://github.com/squidfunk/mkdocs-material