x51 // @kung-fu // minerva
x51@cyberspace:~$ man minerva
MINERVA(1)@kung-fu Commands ManualMINERVA(1)
name
minerva — static site generator for publishing markdown as HTML
synopsis
npm install @kung-fu/minerva
minerva --f ./pub.yml
description
@kung-fu/minerva is a minimalist static site generator for magazine and blog sites. It converts a folder of markdown files (with YAML frontmatter) into HTML through Handlebars templates, and generates listing pages, pagination, and RSS feeds along the way. A single YAML config file drives the whole build — there is no plugin system, no client runtime, and no JavaScript shipped to the reader.
Markdown is rendered with markdown-it (heading anchors included), frontmatter is parsed with gray-matter, and any file marked draft: true is skipped. Asset directories are copied through verbatim. This very site is a minerva build.
configuration
The config file passed to --f supports:
| key | description |
source / dest | markdown input directory and build output directory |
layout | the Handlebars layout every template renders into |
partials / helpers | optional custom Handlebars partials and helper modules |
assets | directories copied verbatim into the output |
globals | variables available to every template (e.g. absoluteUrl) |
output.lists | paged listing pages: folder, page size, sort order, paging template |
output.view | templates rendered once per markdown file (posts) |
output.static | standalone template pages with no markdown source |
output.feeds | RSS feeds: template, max items, optional property/key filter |
A minimal blog:
source: posts
dest: build
layout: layouts/main.hbs
assets: [assets]
globals:
siteTitle: My Blog
output:
lists:
- name: default
folder: blog
size: 20
order:
orderBy: datePublished
direction: desc
type: date
templates: [layouts/index.hbs]
view:
templates: [layouts/post.hbs]
feeds:
- name: default
template: layouts/rss.hbs
maxItems: 100
content
Each markdown file carries its metadata in YAML frontmatter; everything below the fence is the post body:
---
title: My First Post
datePublished: 2024-01-15
tags: [tutorial, javascript]
---
# Heading
Content here...
see also
npmjs.com/package/@kung-fu/minerva, moneta(3), proto(3)
@kung-fu2026-06-04MINERVA(1)
x51@cyberspace:~$ cd ~/@kung-fu █