89 Commits

Author SHA1 Message Date
Michael Currin 566de0e514 docs: Update docs 2020-10-17 17:33:03 +02:00
Michael Currin 8bd56b6906 docs: Update about-mkdocs.md 2020-10-17 17:30:12 +02:00
Michael Currin 2b289a59b0 chore: Update requirements.txt 2020-10-17 17:29:41 +02:00
Michael Currin 3f0006ac82 docs: Update README.md 2020-10-17 17:25:17 +02:00
Michael Currin 76e04dde8e ci: Fix path of cache 2020-10-17 17:24:30 +02:00
Michael Currin 8601582a74 ci: Add cache step 2020-10-17 17:21:54 +02:00
Michael Currin f22c1fe04d docs: Update deploy.md 2020-10-17 17:17:05 +02:00
Michael Currin e577bb912b docs: Update instructions 2020-10-17 17:10:04 +02:00
Michael Currin 887d08bc3c ci: Update docs.yml 2020-10-17 17:09:57 +02:00
Michael Currin 473580b7d6 docs: Update README.md 2020-10-17 17:00:49 +02:00
Michael Currin 99fb0757c7 chore: Move to docs directory 2020-10-17 17:00:45 +02:00
Michael Currin a028e5c228 docs: Update README.md 2020-10-17 16:55:46 +02:00
Michael Currin 49d6ee84a7 docs: Update docs 2020-10-17 16:54:30 +02:00
Michael Currin f21ac0fe3c chore: Delete tasks.json 2020-10-17 16:54:23 +02:00
Michael Currin 3b5f31d73d ci: Update and use deploy target 2020-10-17 16:48:56 +02:00
Michael Currin 3a743ae48f docs: Update deploy.md 2020-10-17 16:45:45 +02:00
Michael Currin fdbbb73cd6 chore: Rename main.yml to docs.yml 2020-10-17 16:45:20 +02:00
Michael Currin 953967dda8 ci: Update main.yml 2020-10-17 16:45:02 +02:00
Michael Currin 35ce122bd8 ci: Remove use of action 2020-10-17 16:44:00 +02:00
Michael Currin 89fbc16c26 chore: Update Makefile 2020-10-17 16:34:24 +02:00
Michael Currin e7800bc936 docs: Update usage.md 2020-10-17 16:34:21 +02:00
Michael Currin 54be3ff415 docs: Update deploy.md 2020-10-17 16:34:18 +02:00
Michael Currin b48560c99d docs: Update README.md 2020-10-17 16:27:29 +02:00
Michael Currin d14aca853a chore: Update Makefile 2020-10-17 16:24:02 +02:00
Michael Currin 11c1377a9f chore: Update Makefile 2020-10-17 16:23:41 +02:00
Michael Currin 5e8b217c8d docs: Update docs 2020-10-17 16:23:20 +02:00
Michael Currin b842ce958e docs: Rename Github to GitHub 2020-10-17 15:01:58 +02:00
Michael Currin 787dc334a1 ci: Update main.yml 2020-10-17 15:00:21 +02:00
Michael Currin 286e8c6f0d ci: Upgrade action version 2020-10-16 17:58:07 +02:00
Michael Currin 1decccd809 Update README.md 2020-10-16 17:57:15 +02:00
Michael Currin 6bef7960f0 Update README.md 2020-10-16 17:55:24 +02:00
Michael Currin 645a052e22 ci: Update main.yml 2020-10-15 11:51:20 +02:00
Michael Currin da67a34443 chore: Update mkdocs.yml 2020-10-15 11:50:48 +02:00
Michael Currin 4a9f27222a ci: Update main.yml 2020-10-15 11:05:59 +02:00
Michael Currin 8feabd1a43 chore: Update mkdocs.yml 2020-10-15 11:00:13 +02:00
Michael Currin ae37b3874d docs: Update advanced.md 2020-10-15 10:54:27 +02:00
Michael Currin 3630bab42c docs: Update setup-project.md 2020-10-15 10:54:23 +02:00
Michael Currin 4726a67ef3 chore: Update mkdocs.yml 2020-10-15 10:52:13 +02:00
Michael Currin c25398473f docs: Update pages 2020-10-15 10:43:47 +02:00
Michael Currin b27fe05ebe chore: Create Makefile 2020-10-15 10:43:20 +02:00
Michael Currin 01e7c407b0 style: Dedent 2020-10-15 10:43:17 +02:00
Michael Currin 8434d546bb chore: Update LICENSE 2020-10-15 10:42:52 +02:00
Michael Currin 4753edcbe9 Update README.md 2020-10-14 23:15:02 +02:00
Michael Currin 7e69b48377 Update mkdocs.yml 2020-10-14 23:12:27 +02:00
Michael Currin 6a5cfe2377 Update main.yml 2020-10-14 23:11:56 +02:00
Michael Currin 7177e48983 Update README.md 2020-10-14 23:04:14 +02:00
Michael Currin 989e13de5e Update mkdocs.yml 2020-10-14 23:01:19 +02:00
Michael Currin 4c169b9981 Update installation.md 2020-10-14 22:59:32 +02:00
Michael Currin 81e9147b2b Update README.md 2020-10-14 22:55:56 +02:00
Michael Currin 6f7122d7cd Update README.md 2020-10-14 22:47:36 +02:00
Michael Currin f537e68f5f Update README.md 2020-10-14 22:46:38 +02:00
michaelcurrin 49b3a80578 Update README.md 2020-09-10 17:35:30 +02:00
michaelcurrin dbc5a5a15e Update mkdocs.yml 2020-09-10 17:33:50 +02:00
michaelcurrin bcd5d97980 Update README.md 2020-09-10 17:31:20 +02:00
michaelcurrin bf0b822e71 Update README.md 2020-09-10 17:24:39 +02:00
michaelcurrin 1743e1c99f Update README.md 2020-09-10 17:22:18 +02:00
michaelcurrin a4858ef9ef Update README.md 2020-09-10 17:21:33 +02:00
michaelcurrin 24fcac8f5b Update index.md 2020-09-10 17:20:30 +02:00
michaelcurrin aa732678ba Update README.md 2020-09-10 17:20:19 +02:00
michaelcurrin 66f0fa8cd7 Update README.md 2020-09-10 17:19:15 +02:00
michaelcurrin eebbe99358 Update README.md 2020-09-10 17:18:51 +02:00
michaelcurrin 0f4f91bbc8 Update README.md 2020-09-10 17:15:44 +02:00
michaelcurrin bbdbd30f69 Update index.md 2020-06-16 20:50:36 +02:00
michaelcurrin 09f8bc898f Update deploy.md 2020-06-16 20:49:42 +02:00
michaelcurrin 8aa74eb6b0 Update README.md 2020-06-16 19:47:33 +02:00
michaelcurrin 9571f1ad46 Update and rename about_mkdocs.md to about-mkdocs.md 2020-06-16 19:46:59 +02:00
michaelcurrin 91582e3392 Update mkdocs.yml 2020-06-16 19:46:35 +02:00
michaelcurrin b4f9479472 Rename setup_project.md to setup-project.md 2020-06-16 19:45:22 +02:00
michaelcurrin 7b0ffe8c9d chore: Update main.yml 2020-06-16 19:44:23 +02:00
michaelcurrin a8d346de5d Update setup_project.md 2020-06-16 19:38:50 +02:00
michaelcurrin aa4bf1088c Update installation.md 2020-06-16 19:34:14 +02:00
michaelcurrin 84b65458a2 chore: Add workflow 2020-06-16 19:28:11 +02:00
michaelcurrin f4f6a6861d Create main.yml 2020-06-16 19:25:14 +02:00
michaelcurrin 735ab35a26 Update setup_project.md 2020-06-16 19:21:26 +02:00
michaelcurrin 65d7c7343b Update README.md 2020-06-16 18:23:36 +02:00
Michael Currin 0ae70d2fcd feat: Update pages 2020-06-02 22:37:33 +02:00
Michael Currin 7b729ba759 docs: Update README.md 2020-06-02 22:37:29 +02:00
Michael Currin e0d9117274 chore: Create requirements.txt 2020-06-02 22:37:22 +02:00
Michael Currin 928f697e0c feat: Update pages 2020-06-02 22:19:04 +02:00
Michael Currin f45d546ccf docs: Update README.md 2020-06-02 22:18:57 +02:00
michaelcurrin 3400d5c4bb Update index.md 2020-06-01 10:14:20 +02:00
michaelcurrin 95f5e64589 Update README.md 2020-06-01 10:10:12 +02:00
michaelcurrin 1b92ee3dde Update README.md 2020-06-01 10:08:48 +02:00
michaelcurrin d2521f69a4 Update setup_project.md 2020-05-20 12:53:20 +02:00
michaelcurrin e14b88702e Update tldr.md 2020-05-19 13:46:47 +02:00
michaelcurrin 10bb3fabcc Update setup_project.md 2020-05-19 13:41:36 +02:00
michaelcurrin ddb2e02ac0 Update index.md 2020-05-19 13:38:55 +02:00
michaelcurrin 9a4668db47 Update README.md 2020-05-19 13:33:01 +02:00
michaelcurrin 375db30200 docs: Create sample.png 2020-05-19 13:20:56 +02:00
23 changed files with 569 additions and 337 deletions
+32
View File
@@ -0,0 +1,32 @@
name: Deploy docs
on:
push:
branches:
- master
jobs:
build-deploy:
name: Build and deploy to GH Pages
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python 3.x
uses: actions/setup-python@v2
- 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
run: cd docs && make install
- name: Build and deploy
run: cd docs && make deploy
-51
View File
@@ -1,51 +0,0 @@
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "process",
"command": "${config:python.pythonPath}",
"args": ["-m", "mkdocs", "build"],
"problemMatcher": [],
"group": {
"kind": "build",
"isDefault": true
}
},
{
"label": "serve",
"type": "process",
"command": "${config:python.pythonPath}",
"args": ["-m", "mkdocs", "serve"],
"problemMatcher": [],
},
{
"label": "deploy",
"type": "process",
"command": "${config:python.pythonPath}",
"args": ["-m", "mkdocs", "gh-deploy"],
"problemMatcher": [],
},
// Reference globally-installed MkDocs.
{
"label": "build-global",
"type": "shell",
"command": "mkdocs build",
"problemMatcher": [],
},
{
"label": "serve-global",
"type": "shell",
"command": "mkdocs serve",
"problemMatcher": [],
},
{
"label": "deploy-global",
"type": "shell",
"command": "mkdocs gh-deploy",
"problemMatcher": [],
}
]
}
+1 -1
View File
@@ -1,6 +1,6 @@
MIT License MIT License
Copyright (c) 2020 michaelcurrin Copyright (c) 2020 MichaelCurrin
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal
+86 -1
View File
@@ -1,2 +1,87 @@
# MkDocs Quickstart # MkDocs Quickstart
> A concise recipe for setting up a MkDocs docs site on Github Pages > A template, live demo and tutorial for how to setup a MkDocs docs site on GitHub Pages
[![CI status](https://github.com/MichaelCurrin/mkdocs-quickstart/workflows/Deploy%20docs/badge.svg)](https://github.com/MichaelCurrin/mkdocs-quickstart/actions)
[![Made with MkDocs](https://img.shields.io/badge/Made_with-MkDocs-blue)](https://www.mkdocs.org/)
[![Made with GH Actions](https://img.shields.io/badge/Made_with-GH_Actions-blue?logo=github-actions&logoColor=white)](https://github.com/features/actions)
[![GitHub tag](https://img.shields.io/github/tag/MichaelCurrin/mkdocs-quickstart.svg)](https://GitHub.com/MichaelCurrin/mkdocs-quickstart/tags/)
[![MIT license](https://img.shields.io/badge/License-MIT-blue.svg)](#license)
<!-- 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.
## Preview
[![Sample screenshot](/sample.png)](https://michaelcurrin.github.io/mkdocs-quickstart/)
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.
## How to use this project
<div align="center">
[![GH Pages](https://img.shields.io/badge/GitHub_Pages-MkDocs_Quickstart-green?style=for-the-badge)](https://michaelcurrin.github.io/mkdocs-quickstart/)
[![Use this template](https://img.shields.io/badge/Use_this_template-2ea44f?style=for-the-badge&logo=github)](https://github.com/MichaelCurrin/mkdocs-quickstart/generate)
</div>
## Features
- 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**.
- Built on Python but you don't need to write any Python code.
### View live demo site
This project has a site deployed to GitHub Pages.
Purposes of the site:
- A live demo.
- Content for a beginner-friendly tutorial on how to setup, run, deploy and customize a MkDocs project like this one.
### Use this template
This repo also doubles as a template to create a new project from. Click the button at the top.
Change the content and theme to suit your needs, based on the tutorial site or the MkDocs site.
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?
If you're new to MkDocs, look at the tutorial added on this project's site, otherwise go to the MkDocs 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.
## Contributing
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 [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.
## License
Released under [MIT](/LICENSE).
+22
View File
@@ -0,0 +1,22 @@
.PHONY: docs
default: install
h help:
@egrep '(^\S)|(^$$)|\s+@echo' Makefile
install:
pip install --upgrade pip
pip install -r requirements.txt
s serve:
mkdocs serve --strict
b build:
mkdocs build --strict
d deploy:
mkdocs gh-deploy --strict --force
@@ -1,14 +1,13 @@
# About MkDocs # About MkDocs
## What is MkDocs? ## What is MkDocs?
The description on the MkDocs site is: The description on the MkDocs site is:
> Project documentation with Markdown. > Project documentation with Markdown.
MkDocs is a Python tool generates a static site based on content written in *markdown*. MkDocs is a Python tool that generates a static site based on content written in Markdown.
If you are new to markdown, see the [Getting Started](https://www.markdownguide.org/getting-started/) page on the Markdown Guide website. If you are new to markdown, see the [Getting Started](https://www.markdownguide.org/getting-started/) page on the Markdown Guide website.
@@ -18,12 +17,13 @@ If you are new to markdown, see the [Getting Started](https://www.markdownguide.
- [mkdocs.org](https://www.mkdocs.org) homepage - [mkdocs.org](https://www.mkdocs.org) homepage
- [mkdocs/mkdocs ![Repo stars](https://img.shields.io/github/stars/mkdocs/mkdocs?style=social)](https://github.com/mkdocs/mkdocs) - [mkdocs/mkdocs ![Repo stars](https://img.shields.io/github/stars/mkdocs/mkdocs?style=social)](https://github.com/mkdocs/mkdocs)
- [MkDocs Wiki](https://github.com/mkdocs/mkdocs/wiki) - covering themes, plugins, recipes and more. - [MkDocs Wiki](https://github.com/mkdocs/mkdocs/wiki) - covering themes, plugins, recipes and more.
- [Release notes](https://www.mkdocs.org/about/release-notes/)
## Reasons to use MkDocs ## Reasons to use MkDocs
- Create an elegant, modern docs site for your project. - Create an elegant, modern docs site for your project.
- Create a static site and serve from Github Pages easily. - Create a static site and serve from GitHub Pages easily.
- Low-code solution - Low-code solution
- No need to write HTML or learn templating syntax needed - No need to write HTML or learn templating syntax needed
- Use your existing markdown files as content. - Use your existing markdown files as content.
@@ -38,4 +38,4 @@ If you are new to markdown, see the [Getting Started](https://www.markdownguide.
## Do I need to know Python? ## Do I need to know Python?
MkDocs is built in Python (like Sphynx), but you don't have to write Python code. If you setup a [Deploy](deloy) 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 setup a [Deploy](deploy) flow right, you don't even have to set it up locally, though then you can't preview.
+27
View File
@@ -0,0 +1,27 @@
# MkDocs Quickstart
> A template, live demo and tutorial for how to setup a MkDocs docs site on GitHub Pages
[![Repo stars](https://img.shields.io/github/stars/MichaelCurrin/mkdocs-quickstart?style=social)](https://github.com/MichaelCurrin/mkdocs-quickstart)
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.
## Features
> How to use this project
- **Follow the tutorial instructions**
- Install and configure a new or existing project.
- Run it locally.
- Deploy it.
- **Add a copy of this project to your repos**
- [![Use this template](https://img.shields.io/badge/Use_this_template-2ea44f?logo=github)](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.
The aim here is not be complete or explain all concepts. It is to provide a reference for common steps and choices needed when setting up a docs site, but still at a beginner-friendly level.
This guide is based on the [mkdocs.org](https://www.mkdocs.org/) tutorial.
@@ -1,7 +1,7 @@
# Advanced # Advanced
> Beyond the basic configuration and content > 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 [Setup Project](setup-project.md) section, you can customize further using this guide. Or skip this and go to [Usage](usage.md).
## Navbar nesting ## Navbar nesting
@@ -10,24 +10,14 @@ You can add an additional level to your navbar like this:
```yaml ```yaml
nav: nav:
- Home: index.md - Home: index.md
- About: about.md - About: about.md
- Foo: - Foo:
- Overview: foo/index.md - Overview: foo/index.md
- Bar: foo/bar.md - Bar: foo/bar.md
``` ```
However, adding a path when nesting as below is **invalid** and will give an error: The value can either be a string (as in the first case) or a map (as in the last case). This seems to be a YAML limitation but see also [issue #1139](https://github.com/mkdocs/mkdocs/issues/1139).
```yaml
nav:
- Home: index.md
- About: about.md
- Foo: foo/index.md
- Bar: foo/bar.md
```
See [issue #1139](https://github.com/mkdocs/mkdocs/issues/1139).
## Add config options ## Add config options
+60
View File
@@ -0,0 +1,60 @@
# 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 workflow to build and deploy to GH Pages on commits pushed to master.
_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.
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.
+73
View File
@@ -0,0 +1,73 @@
# 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 the button on this repo to create your own copy of the repo.
[![Use this template](https://img.shields.io/badge/Use_this_template-2ea44f?style=for-the-badge&logo=github)](https://github.com/MichaelCurrin/mkdocs-quickstart/generate)
Then clone it.
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.
### 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 the project dependencies list.
```sh
$ cd docs
$ 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
```
+142
View File
@@ -0,0 +1,142 @@
# Setup project
> How to create a MkDocs site from scratch
This is a summary of the tutorial on [mkdocs.org](https://www.mkdocs.org/).
## How to use this guide
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.
### Basic structure
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.
### Requirements file
A requirements file is optional but it can make it easier to manage dependencies. If you choose not use the file, make sure `pip install mkdocs` and `pip install THEME` lines are your instructions.
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.
```sh
cd my-project
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
_Tip: Optionally use the `new` command covered above to setup the config and index page first and then continue_.
1. Create doc pages.
1. Create a `docs` directory.
2. Create `index.md` as your homepage.
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.
3. Choose a theme.
3. Create a favicon (optional).
- It will be picked up at this path: `docs/img/favicon.ico`.
4. Add to your `.gitignore`.
- Add build directory. This will prevent it from being versioned on `master` branch.
- Add virtual environment, if using one.
You project should now look this this:
- `docs/`
- `index.md`
- Other pages...
- `mkdocs.yml`
- `.gitignore`
- `venv`
- `requirements.txt` - optional
## Sample content
### Ignore file
`.gitignore`
```
site/
venv
```
### Navbar
```yaml
nav:
- Home: index.md
- About: about.md
```
### Themes
#### Builtin
Use a builtin theme that comes with MkDocs.
The default.
```yaml
theme: mkdocs
```
Using ReadTheDocs theme and alternative config syntax.
```yaml
theme:
name: readthedocs
```
Find more [supported themes](https://github.com/mkdocs/mkdocs/wiki/MkDocs-Themes). If it doesn't immediately, you'll have to use `pip` to install it and add to a `requirements.txt` file.
#### ReadTheDocs Dropdown theme
See below using [mkdocs-rtd-dropdown](https://github.com/cjsheets/mkdocs-rtd-dropdown).
`requirements.txt`
```
mkdocs-rtd-dropdown
```
`mkdocs.yml`
```yaml
theme:
name: 'rtd-dropdown'
```
### Material for MkdDocs theme
See the [MkDocs for Material](https://squidfunk.github.io/mkdocs-material/) homepage. See the Setup page for config options.
`requirements.txt`
```
mkdocs-material-extensions>=1.0
```
`mkdocs.yml`
```yaml
theme:
name: 'material'
```
+28
View File
@@ -0,0 +1,28 @@
# TL;DR
> A simplified version of the tutorial.
## Local setup
1. [Install](installation.md)
- `pip install mkdocs`
2. [Setup project](setup-project.md)
- `mkdocs new .` or [![Use this template](https://img.shields.io/badge/Use_this_template-2ea44f&logo=github)](https://github.com/MichaelCurrin/mkdocs-quickstart/generate)
3. [Run](usage.md)
- `mkdocs serve`
4. View on [localhost:8000](http://localhost:8000)
## Deploy to remote site
### Run deploy command locally
1. [Deploy](deploy.md) to GitHub Pages
- `mkdocs gh-deploy`
2. View published site on GitHub Pages at `https://USERNAME.github.io/REPO-NAME/`
### Run continuous integration
For CI/CD deploy, use GitHub Actions with an action such as [Deploy MkDocs](https://github.com/marketplace/actions/deploy-mkdocs). Or use Netlify.
This is not covered in this tutorial.
+67
View File
@@ -0,0 +1,67 @@
# Usage
> Build and preview a site locally
Make sure to run all commands from the `docs` directory.
```sh
$ cd docs
```
## CLI help
```sh
$ make help
```
```
.PHONY: docs
default: install
h help:
install:
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
```
Then open in your browser:
- [localhost:8000](http://localhost:8000)
## Build docs
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
```
-23
View File
@@ -1,23 +0,0 @@
# MkDocs Quickstart
> A concise recipe for setting up a MkDocs docs site on Github Pages
[![Repo stars](https://img.shields.io/github/stars/MichaelCurrin/mkdocs-quickstart?style=social)](https://github.com/MichaelCurrin/mkdocs-quickstart)
Use the MkDocs (make docs) tool to create build a docs site around markdown docs. Add to an existing project or create a project from scratch.
## Features
> How to use this project
- **Tutorial**
- Covering installation, setting up and configuring project, running it locally and deploying it.
- **Template repo**
- Click *Use this Template* on Github.
- **Live demo**
- Hosted on Github Pages.
The aim here is not be complete or explain all concepts. It is to provide a reference for common steps and choices needed when setting up a docs site, but still at a beginner-friendly level.
This guide is based on the [mkdocs.org](https://www.mkdocs.org/) tutorial.
+19
View File
@@ -0,0 +1,19 @@
site_name: MkDocs Quickstart
# SEO description.
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
# Target for Edit in GitHub button.
repo_url: https://github.com/MichaelCurrin/mkdocs-quickstart/
+1
View File
@@ -0,0 +1 @@
mkdocs~=1.1
-50
View File
@@ -1,50 +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.
_Note this is for a Project Page and not Organization and User Pages._
### Run deploy command
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
mkdocs gh-deploy
```
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
```
### Remote build
> How to trigger a rebuild of your docs site on changes
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 without you running a command. A remote build also means you not need to setup Python or MkDocs on your local machine just to get the docs site to work.
So setup a Github Action such as this to your project.
- [deploy-mkdocs](https://github.com/marketplace/actions/deploy-mkdocs) action in marketplace.
-58
View File
@@ -1,58 +0,0 @@
# Installation
> How to install MkDocs locally.
## Requirements
- [Python](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
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.
```
source venv/bin/activate
```
Install dependencies.
```sh
pip install mkdocs
```
### Globally
If you prefer to install MkDocs once and reuse it across projects, you can install it globally.
MkDocs is available with package managers like `apt-get`, `homebrew` and `yum`.
You can install like this too:
```sh
python3 -m pip install mkdocs
```
-75
View File
@@ -1,75 +0,0 @@
# Setup project
> How to create a MkDocs site from scratch
This is a summary of the tutorial on [mkdocs.org](https://www.mkdocs.org/).
## How to use this guide
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.
### Basic structure
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.
### Create a starter site
Run this command to create the starter site outline above. This make the steps below go quicker.
```sh
cd my-project
mkdocs new PATH
```
### Setup a docs site
_Tip: Optionally use the `new` command covered above to setup the config and index page first and then continue_.
1. Create doc pages.
1. Create a `docs` directory.
2. Create `index.md` as your homepage.
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 navbar there. e.g.
```yaml
nav:
- Home: index.md
- About: about.md
```
3. Choose a theme. e.g.
```yaml
theme: readthedocs
```
3. Create a favicon (optional).
- It will be picked up at this path: `docs/img/favicon.ico`.
4. Add to your `.gitignore`.
- Add build directory. This will prevent it from being versioned on `master` branch.
- Add virtual environment, if using one.
- e.g.
```
site/
venv
```
You project should now look this this:
- `docs/`
- `index.md`
- Other pages...
- `mkdocs.yml`
- `.gitignore`
- `venv`
-8
View File
@@ -1,8 +0,0 @@
## TL;DR
> A simplified version of the tutorial.
1. `pip install mkdocs`
2. `mkdocs new .` or click _Use this Template_
3. `mkdocs serve`
4. `mkdocs gh-deploy`
5. View published site at [https://USERNAME.github.io/REPO-NAME/]()
-33
View File
@@ -1,33 +0,0 @@
# Usage
> Build and preview a site locally
_Note: If using VS Code, you can use the command palette instead to run the configured tasks - these are setup in `.vscode/tasks.json`._
## Serve docs
This will build the docs in memory (not to disk) and serve an auto-reloading server.
```sh
mkdocs serve
```
Open URL:
- [localhost:8000](http://localhost:8000)
## Build docs
Build docs site to `site` directory. Useful for production build or simulating that locally.
```sh
mkdocs build
```
Add this flag to remove stale files when building.
```sh
mkdocs build --clean
```
-16
View File
@@ -1,16 +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 adding Edit in Github button.
repo_url: https://github.com/MichaelCurrin/mkdocs-quickstart/
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 335 KiB