Skip to content

Setting up MkDocs in a new repo

In your repo:

Add mkdocs-material-dib as a submodule:

git submodule add https://github.com/dib-lab/mkdocs-material-dib.git
echo "site/" >> .gitignore

Commit:

git add .gitmodules .gitignore mkdocs-material-dib
git commit -m 'Add mkdocs-material-dib submodule'

Install mkdocs and ghp-import if necessary:

conda install  -c conda-forge mkdocs
conda install -c conda-forge ghp-import

Edit site info and create docs

Grab a mkdocs.yml file that you can edit. For example, this is the one for a metatranscriptomics workshop we taught in Nov 2018. To see what that site looks like, go here.

wget https://raw.githubusercontent.com/ngs-docs/2018-cicese-metatranscriptomics/master/mkdocs.yml

Edit the info in mkdocs.yml to reflect your repo name and address, color, and sidebar navigation (nav). You'll also see that you can change the names for your docs directory and built web pages, but I assume here that they are docs and site, respectively.

Make a docs directory where you'll add the markdown docs for the website. Add a simple hello world or similar md file to start.

mkdir -p docs
echo '# Hello World' > docs/index.md

Deploy the site

Go to Settings in your repo, and enable Github Pages for your repository.

In your repo, build the site:

mkdocs build

View your site locally:

mkdocs serve

Push your changes to gh-pages:

ghp-import site -p

Check your Github Pages URL for your simple md file:

https://<repo-owner>.github.io/<repo-name>

Continue to edit your docs, using mkdocs build to build the html version of the site, and ghp-import to push to gh-pages. Voila!

The first time you clone a repo with a mkdocs submodule:

(for example, if you set this up on a different computer, but want to edit the docs)

If you want to edit the docs, you'll need to grab the mkdocs-material-dib submodule.

If cloning the repo for the first time:

git clone --recursive https://github.com/<repo-owner>/<repo-name>.git

recursive will pull the submodule as well as the main git repo.

If you already have the repo, and need to pull in the submodule:

git submodule update --init

For more details, follow the instructions here

Setting up automatic deploys with GitHub Actions

See an example in the the Speeding Up Science repo. - ci.yml defines the workflow that runs on every PR, and checks if there are no errors during the mkdocs build process. - build_docs.yml defines an extra deploy step using actions-gh-pages for deploys to the master branch (the GitHub Pages branch for this repo). You need to set up a deploy key and ACTIONS_DEPLOY_KEY in secrets to be able to do that, follow instructions in the actions-gh-pages README for more info.