mkpages logo

mkpages turns an existing Markdown folder tree into a generated Jekyll source tree.

pip install -U mkpages

It is designed to be a thin wrapper around Jekyll rather than a new static site generator. Markdown stays as content, folders stay as structure, and CSS stays as presentation.

Why it exists

Many repositories already have useful documentation, notes, or content in plain .md files. mkpages helps publish that material through Jekyll and GitHub Pages without forcing the repository into a Jekyll-first layout.

What it does

Discovers Markdown

Finds files under the chosen content root.

Preserves structure

Keeps the source folder hierarchy intact.

Rewrites local links

Converts Markdown links to generated pretty routes.

Copies assets

Carries non-Markdown files into the generated site.

Adds front matter

Injects the minimal Jekyll metadata when needed.

Builds the shell

Writes the layout, config, includes, and stylesheet.

Start here

Dogfooding

This documentation is intentionally written under docs/ so mkpages can generate its own site:

mkpages build docs/

For local preview through Jekyll:

mkpages preview docs/