Skip to content
This repository has been archived by the owner. It is now read-only.
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.


A simple and mnml static site generator that Just Works™

NOTE: Ths project has been superseded by go-vite.


$ pip install git+

Note: the PyPI version is out of date, and likely won't be updated. I can't be bothered.


$ vite init path/to/project
$ vite new blog/   # `pages/` is implied

This creates pages/blog/

And then:

$ vite build   # in project directory

Rendered HTML will be in the build directory.

Finally, run:

$ vite serve  # also in the project directory


Not very sophisticated, but basic configuration can be acheived using found in the project directory. Example config:

title = ''
author = ''
header = ''
footer = '' 
template = 'index.html'  # default is templates/index.html
pre_build = []           # list of commands to run pre-build
post_build = []          # list of commands to run post-build


Vite uses Jinja2 templating, so template files must be placed in a separate templates/ directory.
A basic example would be:

<link rel="stylesheet" href="/static/sakura-earthy.css">

<title> {{ title }} </title>

{{ body }}

{{ footer }}

Specifying per-page templates

Vite allows for specifying a unique template, per page. This is acheived by including YAML frontmatter at the top of the Markdown file, like so:

template: foo.html
title: Some fancy buzzwords here
subtitle: Cool catch phrase here
url: my-post
date: 2019-08-09

## markdown here

Notes on templating

  • Stylesheets, images and JS can be accessed from the static folder.
  • index.html, i.e. your website's homepage, should be in the pages/ directory.

Directory tree

├── build
├── pages
│   └──
├── static
└── templates
    └── index.html


  • Templating
  • CSS support
  • Implement a simple HTTP server (later)
  • Add example site
  • Basic config (
  • Parsing frontmatter (JSON, YAML, TOML) for per-page options
  • Better support for home page (main index.html page)
  • More powerful frontmatter (title, date, draft status, etc.) (draft status is incomplete)
  • Deeper directories under pages/ (supports only one level now, breaks otherwise) (not happening)
  • Tagging system (not happening)