Skip to main content

MkDocs plugin for step-by-step assembly guides

Project description

zoduki

MkDocs plugin that turns assembly guides into step-by-step pages. Works with Material for MkDocs with no theme overrides required.

Each step shows one action at a time: images and thumbnails on the left, instructions on the right, with Previous/Next navigation pinned to the bottom of the viewport.

Install

In your MkDocs project:

uv add mkdocs-zoduki mkdocs-material

Add to mkdocs.yml:

plugins:
  - search
  - zoduki:
      enabled_by_default: true
      step_heading_level: 3

Run the site:

uv run mkdocs serve

Writing a guide

Structure your Markdown like this:

  • The page title (# or Setext) is the guide name shown in the breadcrumb bar.
  • ## headings group steps into subsections in the left nav.
  • ### headings each become one step. Everything under a ### (bullets, images, text) stays in that step.
# X Gantry Assembly

## Prepare back plate

### Install fasteners

* Insert 4x `m5-hex-lock-nut` into the pockets shown.

    ![Nut pockets](images/nuts.webp)

* Add a drop of `blue-loctite` to each pocket.

### Inspect alignment

* Verify the plate sits flush against the datum surface.

Images

Put images under the bullet they illustrate (indented under the list item). Images are moved to the left-side gallery for that step. The Next button cycles through all images in the current step before advancing to the next step.

Bullet colors

Bullets that contain an image get a colored box and matching image border automatically. Override with an inline note:

* Install the bracket {color=blue}

    ![Bracket](images/bracket.webp)

* Text-only note with no image gets a neutral box.

* Disable coloring explicitly {color=none}

Named colors: blue, green, orange, purple, red, teal, yellow, pink. Hex values like #3b82f6 also work.

Per-page control

Disable zoduki on a specific page with front matter:

---
zoduki: false
---

Or leave enabled_by_default: false in the plugin config and opt in per page:

---
zoduki: true
---

Options

Option Default Description
enabled_by_default false Apply zoduki to every page unless overridden
page_meta_key zoduki Front matter key for per-page enable/disable
step_heading_level 3 Heading level that starts a new step (###)
min_steps 2 Minimum steps required before transforming a page

Deep links

Each step gets a stable URL hash from its heading, e.g. #install-fasteners. The left nav links directly to steps and stays in sync with Previous/Next navigation.


Development

Clone the repo and install everything with uv:

git clone https://github.com/sphawes/zoduki.git
cd zoduki
uv sync

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mkdocs_zoduki-0.1.0.tar.gz (37.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mkdocs_zoduki-0.1.0-py3-none-any.whl (15.8 kB view details)

Uploaded Python 3

File details

Details for the file mkdocs_zoduki-0.1.0.tar.gz.

File metadata

  • Download URL: mkdocs_zoduki-0.1.0.tar.gz
  • Upload date:
  • Size: 37.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for mkdocs_zoduki-0.1.0.tar.gz
Algorithm Hash digest
SHA256 80ee41d2b55221bcd069ce6ab5a5ef5da158f7b4654ac345d600488b62697189
MD5 6ff52be098e1574f127d6f5788149ce4
BLAKE2b-256 dd222f3c46ce857e6ec3e4db880309e5ad8800a0b18cccc42b373d3590a435e6

See more details on using hashes here.

File details

Details for the file mkdocs_zoduki-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: mkdocs_zoduki-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 15.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for mkdocs_zoduki-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 de75b4e254aa2ea5560e15965c8cb805d976604d42f7835a601d2fec61349817
MD5 3e5982e39489604fcb70c012dfdbe8ad
BLAKE2b-256 a138e9898841c394da3d065bc9e3cb0f864fc55072f2a90374d434b908ccfc1e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page