mirror of
https://github.com/MichaelCurrin/mkdocs-quickstart.git
synced 2026-03-28 17:42:47 +01:00
Compare commits
51 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e568b53c0b | ||
|
|
5dd48b2724 | ||
|
|
7b27555c9c | ||
|
|
f124cfed0c | ||
|
|
ad7a922caf | ||
|
|
3b42b265ed | ||
|
|
dae5dbde87 | ||
|
|
2018fa399b | ||
|
|
0484dbbb36 | ||
|
|
898c72051c | ||
|
|
e5bcc9ac5f | ||
|
|
158e6dc938 | ||
|
|
828bf66208 | ||
|
|
16e004a200 | ||
|
|
acd0ac400d | ||
|
|
1bcc5ce191 | ||
|
|
4fb05cb607 | ||
|
|
a0e179cf37 | ||
|
|
aef52ecef8 | ||
|
|
c847fcad63 | ||
|
|
12e2d22aeb | ||
|
|
8781bdacc6 | ||
|
|
1a7fb2188e | ||
|
|
bab097381d | ||
|
|
a29dcb851f | ||
|
|
f78e2a23b9 | ||
|
|
a90d16525f | ||
|
|
4cb7066ac6 | ||
|
|
b0ce48a07c | ||
|
|
e7f49d04b7 | ||
|
|
2c0468d4bc | ||
|
|
3de9789c2a | ||
|
|
17919978b1 | ||
|
|
8a1ad62921 | ||
|
|
48218d64da | ||
|
|
6f2b3c818e | ||
|
|
e49c7ae2b3 | ||
|
|
619a224358 | ||
|
|
adf4d392f8 | ||
|
|
dacf3464e2 | ||
|
|
566de0e514 | ||
|
|
8bd56b6906 | ||
|
|
2b289a59b0 | ||
|
|
3f0006ac82 | ||
|
|
76e04dde8e | ||
|
|
8601582a74 | ||
|
|
f22c1fe04d | ||
|
|
e577bb912b | ||
|
|
887d08bc3c | ||
|
|
473580b7d6 | ||
|
|
99fb0757c7 |
29
.github/workflows/docs.yml
vendored
29
.github/workflows/docs.yml
vendored
@@ -1,23 +1,36 @@
|
||||
name: Deploy docs
|
||||
name: Deploy Docs
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- main
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Build
|
||||
build-deploy:
|
||||
name: Build and deploy docs
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Checkout 🛎️
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Set up Python 3.x
|
||||
- name: Set up Python 3 ⚙️ 🐍
|
||||
uses: actions/setup-python@v2
|
||||
|
||||
- name: Install dependencies
|
||||
- name: Cache dependencies 💾
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ~/.cache/pip
|
||||
key: ${{ runner.os }}-pip-${{ hashFiles('docs/requirements.txt') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-pip-
|
||||
${{ runner.os }}-
|
||||
|
||||
- name: Install dependencies 🔧
|
||||
working-directory: docs
|
||||
run: make install
|
||||
|
||||
- name: Build and deploy
|
||||
- name: Build and deploy to GitHub Pages 🏗️ 🚀
|
||||
working-directory: docs
|
||||
run: make deploy
|
||||
|
||||
4
.gitignore
vendored
4
.gitignore
vendored
@@ -1,3 +1,3 @@
|
||||
site/
|
||||
|
||||
venv
|
||||
|
||||
site/
|
||||
|
||||
4
.vscode/settings.json
vendored
4
.vscode/settings.json
vendored
@@ -1,3 +1,3 @@
|
||||
{
|
||||
"python.pythonPath": "venv/bin/python"
|
||||
}
|
||||
"python.pythonPath": "venv/bin/python"
|
||||
}
|
||||
|
||||
2
LICENSE
2
LICENSE
@@ -1,6 +1,6 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2020 MichaelCurrin
|
||||
Copyright (c) 2020 - 2021 MichaelCurrin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
||||
68
README.md
68
README.md
@@ -1,46 +1,66 @@
|
||||
# MkDocs Quickstart
|
||||
> A template, live demo and tutorial for how to setup a MkDocs docs site on GitHub Pages
|
||||
> Starter template for a MkDocs docs site on GH Pages - including CI
|
||||
|
||||
[](https://github.com/MichaelCurrin/mkdocs-quickstart/actions)
|
||||
[](https://www.mkdocs.org/)
|
||||
[](https://github.com/features/actions)
|
||||
[](https://github.com/mhausenblas/mkdocs-deploy-gh-pages)
|
||||
[](https://GitHub.com/MichaelCurrin/mkdocs-quickstart/tags/)
|
||||
[](#license)
|
||||
[](https://github.com/MichaelCurrin/mkdocs-quickstart/actions)
|
||||
[](https://github.com/MichaelCurrin/mkdocs-quickstart/releases/)
|
||||
[](#license)
|
||||
|
||||
[](https://python.org)
|
||||
[](https://www.mkdocs.org/)
|
||||
[](https://github.com/features/actions)
|
||||
|
||||
A template, live demo and tutorial for how to set up a MkDocs docs site on GH Pages. Using GitHub Actions to automated deploys.
|
||||
|
||||
MkDocs is a Python package when turns your docs directory and YAML config into a static website. No Python coding needed. Just Markdown and some light configuration including a theme choice and menu.
|
||||
|
||||
<!-- TODO When creating a new project copied from this template, you can delete this README.md and start over -->
|
||||
|
||||
|
||||
## Purpose
|
||||
|
||||
A low-code way to setup and host a markdown-based docs site with a professional look.
|
||||
This project provides low-code content-focused way to set up and host a markdown-based documentation site, with a professional look and themes. Built with MkDocs - a Python package which is a static site generator specializing in documentation.
|
||||
|
||||
A GitHub Actions workflow is provided with this template so you can easily deploy to GitHub Pages too.
|
||||
|
||||
|
||||
## Preview
|
||||
|
||||
[](https://michaelcurrin.github.io/mkdocs-quickstart/)
|
||||
<div align="center">
|
||||
|
||||
This project uses the _Read the Docs_ theme as seen above. It comes with MkDocs so you don't need to add to your dependencies. But you can switch to the MkDocs default or install and configure another theme.
|
||||
[](https://michaelcurrin.github.io/mkdocs-quickstart/ "Sample screenshot")
|
||||
|
||||
</div>
|
||||
|
||||
This template project is configured to use the _Read the Docs_ theme, as shown above.
|
||||
|
||||
Thus looks like the the [Read The Docs][] site, but without having to have to overhead of using Sphinx.
|
||||
|
||||
[Read The Docs]: https://docs.readthedocs.io
|
||||
|
||||
This Read the Docs theme for MkDocs comes with MkDocs already, so you don't need to add to your dependencies. But you can switch to the MkDocs default or install and configure another theme.
|
||||
|
||||
You can switch to the default theme or install some others, based on the instructions in this template project.
|
||||
|
||||
|
||||
## How to use this project
|
||||
|
||||
<div align="center">
|
||||
|
||||
[](https://michaelcurrin.github.io/mkdocs-quickstart/)
|
||||
[](https://github.com/MichaelCurrin/mkdocs-quickstart/generate)
|
||||
[](https://michaelcurrin.github.io/mkdocs-quickstart/)
|
||||
|
||||
[](https://github.com/MichaelCurrin/mkdocs-quickstart/generate)
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
## Features
|
||||
|
||||
- A markdown-based docs site which is easy to edit - see the content [docs](/docs/) directory.
|
||||
- Easy to configure - see the short [mkdocs.yml](/mkdocs.yml) file.
|
||||
- A **markdown-based** docs site which is easy to edit - see the content in the [docs](/docs/docs/) directory.
|
||||
- Easy to **configure** - see the short [mkdocs.yml](/docs/mkdocs.yml) file.
|
||||
- Use the configured theme or switch to another - no need to write HTML and CSS yourself.
|
||||
- Each theme comes with a navbar and you write YAML - Jekyll themes on GH Pages need you to write your own HTML often and each theme handles navbar its own way (sometimes not at all).
|
||||
- Uses a deploy pipeline on GH Actions to deploy a GH Pages site - the action actually runs GH Pages deploy command.
|
||||
- The static site output is SEO-friendly.
|
||||
- The static site output is **SEO-friendly**.
|
||||
- Built on Python but you don't need to write any Python code.
|
||||
|
||||
### View live demo site
|
||||
@@ -61,13 +81,21 @@ Change the content and theme to suit your needs, based on the tutorial site or t
|
||||
To isolate the MkDocs flow from the rest of your code, you can put the configs and the `docs` folder of content inside the `docs` directory. That means you end up having `docs/docs`, which is okay. Just make sure you select the `/docs` directory when setting up GH Pages.
|
||||
|
||||
|
||||
## Why use MkDocs?
|
||||
## About MkDocs
|
||||
|
||||
If you're new to MkDocs, look at the tutorial added on this project's site, otherwise go to the MkDocs documentation.
|
||||
### Resources
|
||||
|
||||
- Homepage: [mkdocs.org](http://www.mkdocs.org/)
|
||||
- Repo: [](https://github.com/mkdocs/mkdocs) [](https://github.com/mkdocs/mkdocs)
|
||||
- PyPI package: [mkdocs](https://pypi.org/project/mkdocs/)
|
||||
|
||||
### Why MkDocs?
|
||||
|
||||
If you're new to MkDocs, look at the tutorial added on this project's site, otherwise go to the MkDocs homepage for documentation.
|
||||
|
||||
This project provides a way to write your docs in markdown and build a professional-looking docs site on top of it, without having to write HTML or CSS code and using a selection of themes. While MkDocs CLI has functionality to deploy from a local command-line, this project makes deploying effortless by using GitHub Actions to build and deploy the site to a `gh-pages` branch and GitHub Pages to serve the site.
|
||||
|
||||
Compared with Jekyll and Docsify, I found the MkDocs code is much lighter to setup and changing themes is much easier than Jekyll. Also you get the benefits SEO which Docsify doesn't have. And it includes a search bar using JS.
|
||||
Compared with Jekyll and Docsify, I found the MkDocs code is much lighter to set up and changing themes is much easier than Jekyll. Also you get the benefits SEO which Docsify doesn't have. And it includes a search bar using JS.
|
||||
|
||||
|
||||
## Contributing
|
||||
@@ -77,7 +105,7 @@ Submit an issue.
|
||||
Or submit a code change:
|
||||
|
||||
1. Fork this project.
|
||||
2. Set up the project locally - follow the instructions on the live tutorial or in the [TLDR](/docs/tutorial/tldr.md) page of the local docs.
|
||||
2. Set up the project locally - follow the instructions on the live tutorial or in the [TL;DR](/docs/docs/tutorial/tldr.md) page of the local docs.
|
||||
3. Make any changes you want. Be sure to keep a copy of the original license in the repo.
|
||||
- e.g. `cp LICENSE LICENSE-source`
|
||||
4. Create a Pull Request.
|
||||
@@ -85,4 +113,4 @@ Or submit a code change:
|
||||
|
||||
## License
|
||||
|
||||
Released under [MIT](/LICENSE).
|
||||
Released under [MIT](/LICENSE) by [@MichaelCurrin](https://github.com/MichaelCurrin).
|
||||
|
||||
@@ -2,19 +2,26 @@
|
||||
|
||||
default: install
|
||||
|
||||
all: install build
|
||||
|
||||
|
||||
h help:
|
||||
@egrep '(^\S)|(^$$)|\s+@echo' Makefile
|
||||
@grep '^[a-z]' Makefile
|
||||
|
||||
|
||||
install:
|
||||
pip install --upgrade pip
|
||||
pip install pip --upgrade
|
||||
pip install -r requirements.txt
|
||||
|
||||
upgrade:
|
||||
pip install pip --upgrade
|
||||
pip install -r requirements.txt --upgrade
|
||||
|
||||
|
||||
s serve:
|
||||
mkdocs serve --strict
|
||||
|
||||
|
||||
b build:
|
||||
mkdocs build --strict
|
||||
|
||||
@@ -17,6 +17,7 @@ If you are new to markdown, see the [Getting Started](https://www.markdownguide.
|
||||
- [mkdocs.org](https://www.mkdocs.org) homepage
|
||||
- [mkdocs/mkdocs ](https://github.com/mkdocs/mkdocs)
|
||||
- [MkDocs Wiki](https://github.com/mkdocs/mkdocs/wiki) - covering themes, plugins, recipes and more.
|
||||
- [Release notes](https://www.mkdocs.org/about/release-notes/) for MkDocs.
|
||||
|
||||
|
||||
## Reasons to use MkDocs
|
||||
@@ -37,4 +38,4 @@ If you are new to markdown, see the [Getting Started](https://www.markdownguide.
|
||||
|
||||
## Do I need to know Python?
|
||||
|
||||
MkDocs is built in Python (like Sphinx), but you don't have to write Python code. If you setup a [Deploy](deploy) flow right, you don't even have to set it up locally, though then you can't preview.
|
||||
MkDocs is built in Python (like Sphinx), but you don't have to write Python code. If you set up a [Deploy](deploy) flow right, you don't even have to set it up locally, though then you can't preview.
|
||||
@@ -1,10 +1,9 @@
|
||||
# MkDocs Quickstart
|
||||
> A template, live demo and tutorial for how to setup a MkDocs docs site on GitHub Pages
|
||||
> Started template for a MkDocs docs site on GH Pages - including CI
|
||||
|
||||
[](https://github.com/MichaelCurrin/mkdocs-quickstart)
|
||||
|
||||
|
||||
Use the MkDocs (make docs) tool to create build a docs site around markdown docs.
|
||||
Use the MkDocs (_make docs_) tool to create build a docs site around markdown docs.
|
||||
|
||||
Follow the tutorial to add an existing project or create a project from scratch. The result will look like this project.
|
||||
|
||||
@@ -17,7 +16,7 @@ Follow the tutorial to add an existing project or create a project from scratch.
|
||||
- Run it locally.
|
||||
- Deploy it.
|
||||
- **Add a copy of this project to your repos**
|
||||
- [](https://github.com/MichaelCurrin/mkdocs-quickstart/generate)
|
||||
- [](https://github.com/MichaelCurrin/mkdocs-quickstart/generate)
|
||||
- **View the live demo**
|
||||
- This site is hosted on GitHub Pages. See if you like it. Other themes are available - see the tutorial.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Advanced
|
||||
> Beyond the basic configuration and content
|
||||
|
||||
Once you've got the [Setup Project](setup-project.md) section, you can customize further using this guide. Or skip this and go to [Usage](usage.md).
|
||||
Once you've got the [Set up Project](setup-project.md) section, you can customize further using this guide. Or skip this and go to [Usage](usage.md).
|
||||
|
||||
|
||||
## Navbar nesting
|
||||
@@ -27,7 +27,7 @@ See [Configuration](https://www.mkdocs.org/user-guide/configuration/) page on Mk
|
||||
|
||||
## Separate docs directory approach
|
||||
|
||||
You can also structure your project to have the setup above nested inside a `docs` directory. This is useful you have a few other directories and you want to keep the project root clean.
|
||||
You can also structure your project to have the set up above nested inside a `docs` directory. This is useful you have a few other directories and you want to keep the project root clean.
|
||||
|
||||
|
||||
- `docs/`
|
||||
59
docs/docs/tutorial/deploy.md
Normal file
59
docs/docs/tutorial/deploy.md
Normal file
@@ -0,0 +1,59 @@
|
||||
# Deploy
|
||||
> Build and deploy to a remote public site
|
||||
|
||||
|
||||
See [Deploying Your Docs](https://www.mkdocs.org/user-guide/deploying-your-docs/) on the Mkdocs site for more details.
|
||||
|
||||
|
||||
## GitHub Pages
|
||||
> How to deploy your docs site to GitHub Pages.
|
||||
|
||||
Follow one of the approaches below:
|
||||
|
||||
- [Run deploy command](#run-deploy-command) - Run a MkDocs CLI command locally to deploy.
|
||||
- [Deploy with GitHub Actions](#deploy-with-github-actions) - Use the project's CI workflow in the cloud to build and deploy to GH Pages on commits pushed to master.
|
||||
|
||||
Then go to your repo's _Settings_ and _Pages_ then enable _GitHub Pages_ on the `gh-pages` branch's root.
|
||||
|
||||
_Note this is for a Project Page on a subpath, you will have to make adjustments to the command below if you want an Organization or User Page on the root path._
|
||||
|
||||
### Run deploy command
|
||||
> Run a MkDocs CLI command locally to deploy
|
||||
|
||||
MkDocs needs to know where to publish commits on GitHub - so make sure you are working with a repo that you cloned, or that you initialize the local repo and add a `remote` repo.
|
||||
|
||||
Run this command locally:
|
||||
|
||||
```sh
|
||||
$ make d
|
||||
```
|
||||
|
||||
That will use `Makefile` to run the following:
|
||||
|
||||
```sh
|
||||
$ mkdocs gh-deploy --strict --force
|
||||
```
|
||||
|
||||
That will do the following:
|
||||
|
||||
1. Clean and build to `site` directory.
|
||||
2. Force push to `gh-pages` branch, overwriting any changes which were pushed from another build.
|
||||
|
||||
Then go to your repo on GitHub, look at the *Environment* tab.
|
||||
|
||||
When it is done building, click _View deployment_ to see your site.
|
||||
|
||||
e.g. [michaelcurrin.github.io/mkdocs-quickstart/](https://michaelcurrin.github.io/mkdocs-quickstart/)
|
||||
|
||||
See deploy options in the help:
|
||||
|
||||
```sh
|
||||
$ mkdocs gh-deploy --help
|
||||
```
|
||||
|
||||
### Deploy with GitHub Actions
|
||||
> Set up continuous deployment config to enable deploys on a change to files on GitHub
|
||||
|
||||
When you make changes to your docs config or the docs directory, especially editing on GitHub directly, it's often useful to have the docs site build and deploy automatically in a remote environment. This is provided for free by GitHub.
|
||||
|
||||
See the [docs.yml](https://github.com/MichaelCurrin/mkdocs-quickstart/blob/master/.github/workflows/docs.yml) workflow provided with this project. You don't have to change anything there. The token will be generated for you by GitHub Actions.
|
||||
74
docs/docs/tutorial/installation.md
Normal file
74
docs/docs/tutorial/installation.md
Normal file
@@ -0,0 +1,74 @@
|
||||
# Installation
|
||||
> How to install MkDocs locally.
|
||||
|
||||
|
||||
## Requirements
|
||||
|
||||
- [Python 3](https://www.python.org/)
|
||||
- [Make](https://www.gnu.org/software/make/) - standard on macOS and Linux but can be installed on Windows too.
|
||||
|
||||
|
||||
## Install system dependencies
|
||||
|
||||
<script src="https://gist.github.com/MichaelCurrin/57caae30bd7b0991098e9804a9494c23.js"></script>
|
||||
|
||||
|
||||
## Set up a new repo
|
||||
|
||||
Follow the Tutorial page to set up a project from scratch.
|
||||
|
||||
Or click this create your own copy of the repo.
|
||||
|
||||
[](https://github.com/MichaelCurrin/mkdocs-quickstart/generate)
|
||||
|
||||
Then clone your repo.
|
||||
|
||||
e.g.
|
||||
|
||||
```sh
|
||||
$ git clone git@github.com:MichaelCurrin/mkdocs-quickstart.git
|
||||
$ cd mkdocs-quickstart
|
||||
```
|
||||
|
||||
|
||||
## Install project dependencies
|
||||
> Install MkDocs locally
|
||||
|
||||
For more info, see the [Installation](https://www.mkdocs.org/#installation) page on the MkDocs site.
|
||||
|
||||
### Install in a virtual environment
|
||||
|
||||
Create a virtual environment at the project root - this is used to isolate project packages from the global packages.
|
||||
|
||||
```sh
|
||||
$ python3 -m venv venv
|
||||
```
|
||||
|
||||
Activate the environment.
|
||||
|
||||
```sh
|
||||
$ source venv/bin/activate
|
||||
```
|
||||
|
||||
Install `mkdocs` - this is covered in the project requirements file.
|
||||
|
||||
```sh
|
||||
$ cd docs
|
||||
$ make install
|
||||
```
|
||||
|
||||
Note - `mkdocs` 1.2 causes a break on force pushes, so this is excluded in the requirements. See issue [#2447](https://github.com/mkdocs/mkdocs/issues/2447).
|
||||
|
||||
### Install globally
|
||||
|
||||
If you prefer to install MkDocs once and reuse it across projects, then you can install it globally instead.
|
||||
|
||||
MkDocs is available using package managers like `apt-get`, `homebrew` and `yum`.
|
||||
|
||||
Or you can install like this:
|
||||
|
||||
```sh
|
||||
$ python3 -m pip install mkdocs
|
||||
```
|
||||
|
||||
If you get prompted for `sudo` use, then cancel and run again with `-U` flag for user-level install.
|
||||
@@ -1,4 +1,4 @@
|
||||
# Setup project
|
||||
# Set up project
|
||||
> How to create a MkDocs site from scratch
|
||||
|
||||
This is a summary of the tutorial on [mkdocs.org](https://www.mkdocs.org/).
|
||||
@@ -9,8 +9,7 @@ This is a summary of the tutorial on [mkdocs.org](https://www.mkdocs.org/).
|
||||
Use one of the approaches below:
|
||||
|
||||
- Create a quickstart project with the `new` command covered in [Create a starter site](#create-a-starter-site).
|
||||
- Follow the extended guide to create a [Setup up docs site](#setup-a-docs-site) by hand.
|
||||
|
||||
- Follow the extended guide to create a [Set up up docs site](#setup-a-docs-site) by hand.
|
||||
|
||||
### Basic structure
|
||||
|
||||
@@ -18,8 +17,17 @@ This is the simplest MkDocs site you can make:
|
||||
|
||||
- `docs/`
|
||||
- `index.md` - Homepage in the `docs` directory (by default).
|
||||
- `mkdocs.yml` - Config at the root.
|
||||
- `mkdocs.yml`
|
||||
- Config at the root - control appearance and navigation of your site.
|
||||
- See this project's [docs/mkdocs.yml](https://github.com/MichaelCurrin/mkdocs-quickstart/blob/master/docs/mkdocs.yml) file on GitHub.
|
||||
|
||||
Notes on fields for the config:
|
||||
|
||||
- `site_name` - title of your site.
|
||||
- `site_description` - used as a description for SEO and you could use it somewhere in your template.
|
||||
- `site_url` - now a _required_ field when running a deploy. Include the subpath on the domain. If your site is not ready to be hosted, set this field to an empty string.
|
||||
- `repo_url` - for _Edit on GitHub_ button. See [docs](https://www.mkdocs.org/user-guide/configuration/#repo_url).
|
||||
- `edit_uri` - defaults to `edit/master/docs/`, which includes `docs` directory of markdown files inside your repo root. But, if the site's root is in an outer `docs` directory, then you need to _also_ add that, so paths do not break. e.g. `edit/master/docs/docs`. See [docs](https://www.mkdocs.org/user-guide/configuration/#edit_uri)
|
||||
|
||||
### Requirements file
|
||||
|
||||
@@ -27,7 +35,6 @@ A requirements file is optional but it can make it easier to manage dependencies
|
||||
|
||||
If you want to add, then include `requirements.txt` at the root. If your project is already a Python project, you might prefer to add `mkdocs` in `requirements-dev.txt` or at `docs/requirements.txt` to keep it isolated.This file should have `mkdocs` in it and also any themes if needed.
|
||||
|
||||
|
||||
### Create a starter site
|
||||
|
||||
Run this command to create a starter site. This make the steps below go quicker.
|
||||
@@ -39,9 +46,9 @@ mkdocs new PATH
|
||||
|
||||
The result will be same as the [Basic structure](#basic-structure) defined above and will include minimal text content generated by the MkDocs CLI. This text is defined in the project's [new.py](https://github.com/mkdocs/mkdocs/blob/master/mkdocs/commands/new.py) module.
|
||||
|
||||
### Setup a docs site
|
||||
### Set up a docs site
|
||||
|
||||
_Tip: Optionally use the `new` command covered above to setup the config and index page first and then continue_.
|
||||
_Tip: Optionally use the `new` command covered above to set up the config and index page first and then continue_.
|
||||
|
||||
1. Create doc pages.
|
||||
1. Create a `docs` directory.
|
||||
@@ -49,9 +56,9 @@ _Tip: Optionally use the `new` command covered above to setup the config and ind
|
||||
3. Create other markdown pages (optional).
|
||||
- Use placeholder content if you want to move on and then come back to expand them.
|
||||
- If you have any existing markdown docs, these will work too.
|
||||
2. Setup config.
|
||||
1. Create `mkdocs.yml` at project root.
|
||||
2. Setup a navbar there.
|
||||
2. Set up config.
|
||||
1. Create `mkdocs.yml` at the project root.
|
||||
2. Set up a navbar there.
|
||||
3. Choose a theme.
|
||||
3. Create a favicon (optional).
|
||||
- It will be picked up at this path: `docs/img/favicon.ico`.
|
||||
@@ -63,7 +70,7 @@ You project should now look this this:
|
||||
|
||||
- `docs/`
|
||||
- `index.md`
|
||||
- Other pages...
|
||||
- More pages...
|
||||
- `mkdocs.yml`
|
||||
- `.gitignore`
|
||||
- `venv`
|
||||
@@ -75,7 +82,6 @@ You project should now look this this:
|
||||
### Ignore file
|
||||
|
||||
`.gitignore`
|
||||
|
||||
```
|
||||
site/
|
||||
|
||||
@@ -84,6 +90,7 @@ venv
|
||||
|
||||
### Navbar
|
||||
|
||||
`mkdocs.yml`
|
||||
```yaml
|
||||
nav:
|
||||
- Home: index.md
|
||||
@@ -115,12 +122,13 @@ Find more [supported themes](https://github.com/mkdocs/mkdocs/wiki/MkDocs-Themes
|
||||
|
||||
See below using [mkdocs-rtd-dropdown](https://github.com/cjsheets/mkdocs-rtd-dropdown).
|
||||
|
||||
`requirements.txt`
|
||||
`requirements.txt`:
|
||||
```
|
||||
mkdocs-rtd-dropdown
|
||||
```
|
||||
|
||||
`mkdocs.yml`
|
||||
`mkdocs.yml`:
|
||||
|
||||
```yaml
|
||||
theme:
|
||||
name: 'rtd-dropdown'
|
||||
@@ -128,14 +136,14 @@ theme:
|
||||
|
||||
### Material for MkdDocs theme
|
||||
|
||||
See the [MkDocs for Material](https://squidfunk.github.io/mkdocs-material/) homepage. See the Setup page for config options.
|
||||
See the [MkDocs for Material](https://squidfunk.github.io/mkdocs-material/) homepage. See the Set up page for config options.
|
||||
|
||||
`requirements.txt`
|
||||
`requirements.txt`:
|
||||
```
|
||||
mkdocs-material-extensions>=1.0
|
||||
```
|
||||
|
||||
`mkdocs.yml`
|
||||
`mkdocs.yml`:
|
||||
```yaml
|
||||
theme:
|
||||
name: 'material'
|
||||
@@ -6,11 +6,11 @@
|
||||
|
||||
1. [Install](installation.md)
|
||||
- `pip install mkdocs`
|
||||
2. [Setup project](setup-project.md)
|
||||
- `mkdocs new .` or [](https://github.com/MichaelCurrin/mkdocs-quickstart/generate)
|
||||
2. [Set up project](setup-project.md)
|
||||
- `mkdocs new .` or [](https://github.com/MichaelCurrin/mkdocs-quickstart/generate)
|
||||
3. [Run](usage.md)
|
||||
- `mkdocs serve`
|
||||
4. View on [http://localhost:8000](http://localhost:8000)
|
||||
4. View on [localhost:8000](http://localhost:8000)
|
||||
|
||||
|
||||
## Deploy to remote site
|
||||
@@ -1,19 +1,36 @@
|
||||
# Usage
|
||||
> Build and preview a site locally
|
||||
|
||||
Make sure to run all commands from the `docs` directory, as that is where `Makefile` is.
|
||||
|
||||
```sh
|
||||
$ cd docs
|
||||
```
|
||||
|
||||
|
||||
## CLI help
|
||||
|
||||
```sh
|
||||
$ make help
|
||||
```
|
||||
```
|
||||
default: install
|
||||
all: install build
|
||||
h help:
|
||||
install:
|
||||
upgrade:
|
||||
s serve:
|
||||
b build:
|
||||
d deploy:
|
||||
```
|
||||
|
||||
|
||||
## Serve docs
|
||||
|
||||
This will build the docs in memory (not to disk) and serve an auto-reloading server.
|
||||
|
||||
```sh
|
||||
$ make s
|
||||
```
|
||||
|
||||
That will use `Makefile` to run the following:
|
||||
|
||||
```sh
|
||||
$ mkdocs serve --strict
|
||||
$ make serve
|
||||
```
|
||||
|
||||
Then open in your browser:
|
||||
@@ -26,11 +43,5 @@ Then open in your browser:
|
||||
Build docs site to `site` directory. This is useful for a CI flow.
|
||||
|
||||
```sh
|
||||
$ make b
|
||||
```
|
||||
|
||||
That will use `Makefile` to run the following:
|
||||
|
||||
```sh
|
||||
$ mkdocs build --strict
|
||||
$ make build
|
||||
```
|
||||
23
docs/mkdocs.yml
Normal file
23
docs/mkdocs.yml
Normal file
@@ -0,0 +1,23 @@
|
||||
### Site metadata ###
|
||||
|
||||
site_name: MkDocs Quickstart
|
||||
site_description: Starter template for a MkDocs docs site on GH Pages - including CI
|
||||
site_url: https://michaelcurrin.github.io/mkdocs-quickstart/
|
||||
|
||||
repo_url: https://github.com/MichaelCurrin/mkdocs-quickstart
|
||||
edit_uri: edit/master/docs/docs
|
||||
|
||||
### Build settings ###
|
||||
|
||||
theme: readthedocs
|
||||
|
||||
nav:
|
||||
- Home: index.md
|
||||
- About MkDocs: about-mkdocs.md
|
||||
- Tutorial:
|
||||
- TL;DR: tutorial/tldr.md
|
||||
- Installation: tutorial/installation.md
|
||||
- Set up project: tutorial/setup-project.md
|
||||
- Advanced: tutorial/advanced.md
|
||||
- Usage: tutorial/usage.md
|
||||
- Deploy: tutorial/deploy.md
|
||||
1
docs/requirements.txt
Normal file
1
docs/requirements.txt
Normal file
@@ -0,0 +1 @@
|
||||
mkdocs~=1.1,!=1.2
|
||||
@@ -1,64 +0,0 @@
|
||||
# Deploy
|
||||
> Build and deploy to a remote public site
|
||||
|
||||
|
||||
See [Deploying Your Docs](https://www.mkdocs.org/user-guide/deploying-your-docs/) on the Mkdocs site for more details.
|
||||
|
||||
|
||||
## GitHub Pages
|
||||
> How to deploy your docs site to GitHub Pages.
|
||||
|
||||
Follow one of the approaches below:
|
||||
|
||||
- [Run deploy command](#run-deploy-command) - Run a MkDocs CLI command locally to deploy.
|
||||
- [Deploy with Githhub Actions](#deploy-with-github-actions) - Setup continous deployment config to enable deploys on a change to files on GitHub.
|
||||
|
||||
|
||||
_Note this is for a Project Page on a subpath and not an Organization or User Page._
|
||||
|
||||
### Run deploy command
|
||||
> Run a MkDocs CLI command locally to deploy
|
||||
|
||||
MkDocs needs to know where to publish commits on GitHub - so make sure you are working with a repo that you cloned, or that you initialize the local repo and add a `remote` repo.
|
||||
|
||||
Run this command locally:
|
||||
|
||||
```sh
|
||||
$ make d
|
||||
```
|
||||
|
||||
That will use `Makefile` to run the following:
|
||||
|
||||
```sh
|
||||
$ mkdocs gh-deploy --strict
|
||||
```
|
||||
|
||||
That will do the following:
|
||||
|
||||
1. Clean and build to `site` directory.
|
||||
2. Push to `gh-pages` branch. Note: You must not edit this branch directly.
|
||||
3. Enable GitHub Pages if it was not yet enabled
|
||||
|
||||
Then go to your repo on GitHub, see the *environment* tab and click _View deployment_.
|
||||
|
||||
e.g.
|
||||
|
||||
- [michaelcurrin.github.io/mkdocs-quickstart/](https://michaelcurrin.github.io/mkdocs-quickstart/)
|
||||
|
||||
|
||||
See deploy options:
|
||||
|
||||
```sh
|
||||
$ mkdocs gh-deploy --help
|
||||
```
|
||||
|
||||
### Deploy with GitHub Actions
|
||||
> Setup continuous deployment config to enable deploys on a change to files on GitHub
|
||||
|
||||
When you make changes to your docs config or the docs directory, especially editing on GitHub directly, it's often useful to have the docs site build and deploy automatically in a remote environment. This is provided for free by GitHub.
|
||||
|
||||
This action is setup to do that for MkDocs and the Material theme:
|
||||
|
||||
- [deploy-mkdocs](https://github.com/marketplace/actions/deploy-mkdocs) action in marketplace.
|
||||
|
||||
See this implemented in the [workflow](https://github.com/MichaelCurrin/mkdocs-quickstart/blob/master/.github/workflows/docs.yml) file of this MkDocs Quickstart project.
|
||||
@@ -1,59 +0,0 @@
|
||||
# Installation
|
||||
> How to install MkDocs locally.
|
||||
|
||||
|
||||
## Requirements
|
||||
|
||||
- [Python 3](https://www.python.org/)
|
||||
|
||||
|
||||
## Install system dependencies
|
||||
|
||||
<script src="https://gist.github.com/MichaelCurrin/57caae30bd7b0991098e9804a9494c23.js"></script>
|
||||
|
||||
|
||||
## Setup repo
|
||||
|
||||
Choose or setup a MkDocs project.
|
||||
|
||||
- Follow the tutorial page to setup a project.
|
||||
- Or click _Use this template_ on this repo to create your own copy of the repo, then clone it.
|
||||
|
||||
|
||||
## Install project dependencies
|
||||
> Install MkDocs locally
|
||||
|
||||
For more info, see the [Installation](https://www.mkdocs.org/#installation) page on the MkDocs site.
|
||||
|
||||
### Use a virtual environment
|
||||
|
||||
Create a virtual environment at the project root.
|
||||
|
||||
```sh
|
||||
$ python3 -m venv venv
|
||||
```
|
||||
|
||||
Activate it.
|
||||
|
||||
```sh
|
||||
$ source venv/bin/activate
|
||||
```
|
||||
|
||||
Install `mkdocs` from project dependencies list.
|
||||
|
||||
```sh
|
||||
$ pip install -r requirements.txt
|
||||
```
|
||||
|
||||
|
||||
### Install globally
|
||||
|
||||
If you prefer to install MkDocs once and reuse it across projects, then you can install it globally.
|
||||
|
||||
MkDocs is available using package managers like `apt-get`, `homebrew` and `yum`.
|
||||
|
||||
You can install like this too:
|
||||
|
||||
```sh
|
||||
python3 -m pip install mkdocs
|
||||
```
|
||||
19
mkdocs.yml
19
mkdocs.yml
@@ -1,19 +0,0 @@
|
||||
site_name: MkDocs Quickstart
|
||||
# For SEO.
|
||||
site_description: "A concise recipe for setting up a MkDocs docs site on GitHub Pages"
|
||||
|
||||
nav:
|
||||
- Home: index.md
|
||||
- About MkDocs: about-mkdocs.md
|
||||
- Tutorial:
|
||||
- TL;DR: tutorial/tldr.md
|
||||
- Installation: tutorial/installation.md
|
||||
- Setup project: tutorial/setup-project.md
|
||||
- Advanced: tutorial/advanced.md
|
||||
- Usage: tutorial/usage.md
|
||||
- Deploy: tutorial/deploy.md
|
||||
|
||||
theme: readthedocs
|
||||
|
||||
# For the Edit in GitHub button.
|
||||
repo_url: https://github.com/MichaelCurrin/mkdocs-quickstart/
|
||||
@@ -1 +0,0 @@
|
||||
mkdocs
|
||||
Reference in New Issue
Block a user