| Crates.io | marmite |
| lib.rs | marmite |
| version | 0.2.7 |
| created_at | 2024-10-14 17:49:35.601371+00 |
| updated_at | 2025-12-22 22:35:41.155255+00 |
| description | Marmite is the easiest static site generator. |
| homepage | https://marmite.blog |
| repository | https://github.com/rochacbruno/marmite |
| max_upload_size | |
| id | 1408516 |
| size | 827,528 |
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.
It does "one" simple thing only:
.md files on the input directory.CommonMark parse it to HTML content.frontmatter or filename.html file for each page.output folder.It also handles generating or copying static/ and media/ to the output dir.
./{name}.html|rss|jsontags: (to group similar content together) and stream: (to separate content in a different listing)date: attribute to differentiate posts from pagesEverything embedded in a single binary.
Zero-Config to get started.
Common-mark + Github Flavoured Markdown + Extensions.
Raw HTML allowed.
Emojis :smile:, spoiler ||secret||.
Wikilinks [[name|url]] and Obsidian links [[page]].
Backlinks.
Tags.
Multi authors.
Multi streams.
Pagination.
Static Search Index.
RSS Feeds.
Built-in HTTP server.
Auto rebuild when content changes.
Built-in theme
og: tags.CLI to start a new theme from scratch
Install with cargo
cargo binstall marmite
or
cargo install marmite
Or download the pre-built binary from the releases
Homebrew (macOS/Linux)
brew install marmite
Arch Linux (AUR)
yay -S marmite-bin
FreeBSD
pkg install marmite
[!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
[!INFO]
By default will run:latest, Add:x.y.zwith the version you want to run.
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
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>
Read a tutorial on how to get started https://marmite.blog/getting-started.html and create your blog in minutes.
Read more on how to customize templates, add comments etc on https://marmite.blog/
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: