Skip to content

Create, Configure, Publish

  • how to create, configure and publish Material for MkDocs with GitHub Actions

Source

Creating the site

  • create a new GitHub repository
  • create the following structure:
.
├─ docs/
│  └─ index.md
└─ mkdocs.yml

Configuring the site

  • add at least the following lines to mkdocs.yml:
site_name: My site
site_url: https://<username>.github.io/<repository>
theme:
  name: material

Publishing the site

  • add the following code to the file .github/workflows/ci.yml
name: ci 
on:
  push:
    branches:
      - main
permissions:
  contents: write
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Configure Git Credentials
        run: |
          git config user.name github-actions[bot]
          git config user.email 41898282+github-actions[bot]@users.noreply.github.com
      - uses: actions/setup-python@v5
        with:
          python-version: 3.x
      - run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV 
      - uses: actions/cache@v4
        with:
          key: mkdocs-material-${{ env.cache_id }}
          path: .cache
          restore-keys: |
            mkdocs-material-
      - run: pip install mkdocs-material 
      - run: mkdocs gh-deploy --force
  • ensure that the publishing source branch for your GitHub Page is set to gh-pages
  • open your documentation at <username>.github.io/<repository>