Marmite
Markdown makes sites - A Static Site Generator for Blogs
Install / Use
/learn @rochacbruno/MarmiteREADME
Marmite
<img src="https://github.com/rochacbruno/marmite/raw/main/assets/_resized/logo_160x120.png" align="left" alt="marmite">Marmite [Markdown makes sites] is a very! simple static site generator.
I'm a big user of other SSGs but it is frequently frustrating that it takes so much setup to get started.
Just having a directory of markdown files and running a single command sounds really useful.
— Michael, marmite user.
How it works
It does "one" simple thing only:
- Reads all
.mdfiles on theinputdirectory. - Using
CommonMarkparse it toHTMLcontent. - Extract optional metadata from
frontmatterorfilename. - Generated
htmlfile for each page. - Outputs the rendered static site to the
outputfolder.
It also handles generating or copying static/ and media/ to the output dir.
Before you start, you should know
- Marmite is meant to be simple, don't expect complex features
- Marmite is for bloggers, so writing and publishing articles in chronological order is the main use case.
- The generated static site is a flat HTML site, no subpaths, all content is published in extension ending URLS ex:
./{name}.html|rss|json - There are only 2 taxonomies
tags:(to group similar content together) andstream:(to separate content in a different listing) - Marmite uses the
date:attribute to differentiatepostsfrompages
Features
- Everything embedded in a single binary.
- Zero-Config to get started.
- optionally fully configurable
- Common-mark + Github Flavoured Markdown + Extensions.
- Raw HTML allowed.
- Emojis
:smile:, spoiler||secret||. - Wikilinks
[[name|url]]and Obsidian links[[page]]. - Backlinks.
- Tags.
- Multi authors.
- Author profile page
- Multi streams.
- Separate content in different listing
- Pagination.
- Static Search Index.
- RSS Feeds.
- Multiple feeds (index, tags, authors, streams)
- Built-in HTTP server.
- Auto rebuild when content changes.
- Built-in theme
- Light and Dark modes.
- Multiple colorschemes
- Fully responsive
- Spotlight Search.
- Easy to replace the index page and add custom CSS/JS
- Easy to customize the templates
- Math and Mermaid diagrams.
- Syntax Highlight.
- Commenting system integration.
- Banner images and
og:tags.
- CLI to start a new theme from scratch
Installation
Install with cargo
cargo binstall marmite
or
cargo install marmite
Or download the pre-built binary from the releases
Alternative installation methods
<details> <summary>Package managers</summary>Homebrew (macOS/Linux)
brew install marmite
Arch Linux (AUR)
yay -S marmite-bin
FreeBSD
pkg install marmite
</details>
<details>
<summary>Or use docker</summary>
[!IMPORTANT]
The directory containing your marmite project must be mapped to containers/input
If running inside the directory use$PWD:/inputThe result will be generates in asitefolder inside the input dir.
Build
$ docker run -v $PWD:/input ghcr.io/rochacbruno/marmite
Site generated at: site/
Serve (just add port mapping and the --serve)
$ docker run -p 8000:8000 -v $PWD:/input ghcr.io/rochacbruno/marmite --serve
</details>[!INFO]
By default will run:latest, Add:x.y.zwith the version you want to run.
Usage
It's simple, really!
$ marmite folder_with_markdown_files path_to_generated_site
Site generated at path_to_generated_site/
CLI
❯ marmite --help
Marmite is the easiest static site generator.
Usage: marmite [OPTIONS] <INPUT_FOLDER> <OUTPUT_FOLDER>
Arguments:
<INPUT_FOLDER> Input folder containing markdown files
<OUTPUT_FOLDER> Output folder to generate the site
Options:
--serve Serve the site with a built-in HTTP server
--watch Detect changes and rebuild the site automatically
--bind <BIND> Address to bind the server [default: localhost:8000]
--config <CONFIG> Path to custom configuration file [default: marmite.yaml]
--debug Print debug messages Deprecated: Use -vv for debug messages
--init-templates Initialize templates in the project
--start-theme Initialize a theme with templates and static assets
--generate-config Generate the configuration file
-v, --verbose... Verbosity level (0-4) [default: 0 warn] options: -v: info,-vv: debug,-vvv: trace,-vvvv: trace all
-h, --help Print help
-V, --version Print version
Live reload in development
When running with --serve --watch, Marmite exposes a WebSocket-based live reload helper. Add this snippet to your base template so the browser refreshes after each rebuild:
<script src="/__marmite__/livereload.js"></script>
Getting started
Read a tutorial on how to get started https://marmite.blog/getting-started.html and create your blog in minutes.
Docs
Read more on how to customize templates, add comments etc on https://marmite.blog/
That's all!
Marmite is very simple.
If this simplicity does not suit your needs, there are other awesome static site generators.
Here are some that I recommend:
Related Skills
himalaya
339.1kCLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).
node-connect
339.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
coding-agent
339.1kDelegate coding tasks to Codex, Claude Code, or Pi agents via background process
