Crates.io | marmite |
lib.rs | marmite |
version | 0.2.5 |
source | src |
created_at | 2024-10-14 17:49:35.601371 |
updated_at | 2025-02-04 16:38:34.731658 |
description | Marmite is the easiest static site generator. |
homepage | https://rochacbruno.github.io/marmite |
repository | https://github.com/rochacbruno/marmite |
max_upload_size | |
id | 1408516 |
size | 8,967,303 |
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|json
tags:
(to group similar content together) and stream:
(to separate content in a different listing)date:
attribute to differentiate posts
from pages
Everything 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
[!IMPORTANT]
The directory containing your marmite project must be mapped to containers/input
If running inside the directory use$PWD:/input
The result will be generates in asite
folder 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.z
with 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
Read a tutorial on how to get started https://rochacbruno.github.io/marmite/getting-started.html and create your blog in minutes.
Read more on how to customize templates, add comments etc on https://rochacbruno.github.io/marmite/
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: