Marmite Documentation
📋 Table of Contents
Markdown Makes Sites
Marmite is a fast, minimal static site generator written in Rust that converts Markdown files into HTML websites. It's designed for simplicity and includes features like live reloading, RSS feeds, and a built-in development server.
Marmite is the easiest static site generator optimized for blogs. It doesn't require specific folder structure or complex configuration - the goal is that a blog can be generated simply by running Marmite on a folder with Markdown and media files. Written in Rust, it provides very fast builds with everything included in a single binary.
Quick Start
Install
$ curl -sS https://marmite.blog/install.sh | sh
or check installation guide for more install options
Start blogging
$ marmite myblog --init-site \
--name Mysite \
--tagline "My Articles and Notes" \
--colorscheme nord \
--toc true \
--enable-search true
$ marmite myblog --new "My First Blog Post" -t "new,post"
$ marmite myblog --serve
Documentation
Getting Started
- Why to use Marmite?: Learn about Marmite's features and design philosophy
- Getting Started: Quick start guide to create your first blog with Marmite
- Command Line Interface: Complete reference for all CLI commands and options
Content Creation
- Content Types and Taxonomy: Understanding posts, pages, tags, and streams
- Markdown Format: Supported markdown syntax and extensions
- Using Markdown to Customize Layout: Special markdown files for layout customization
- Streams Guide: Organizing content with streams
- Series Feature: Creating ordered content series
- Draft Posts Guide: Working with draft content
Configuration
- Configuration Reference: Complete reference for all marmite.yaml options
- Configurable Markdown Parser: Customizing markdown processing
- IndieWeb Compliance: Making your site IndieWeb compatible
Templates and Theming
- Customizing Templates: How to customize templates and create themes
- Template Reference: Tera template language reference
- Themes Feature: Using and creating custom themes
- Remote Themes: Installing themes from remote repositories
Features
- Image Optimization and Resizing: Automatic image resizing with parallel processing and incremental builds
- Image Gallery: Create and display image galleries with automatic thumbnail generation
- Shortcodes Guide: Using shortcodes to add dynamic content to posts and pages
- Shortcodes Demo: Examples of all available shortcodes including YouTube, Spotify, cards, and content listings
- Show URLs Dry Run Command: Preview all site URLs without building - perfect for verification and planning
- Automatic Sitemap Generation: Built-in sitemap.xml generation for better SEO with configurable options
- File Mapping Feature: Copy arbitrary files during site generation using configurable mappings
- Automatic Image Download: Auto-generating banner images
- Markdown Source Publishing: Publishing source files alongside HTML
- Link Checker with Lychee: Checking for broken links
- Enabling Comments: Adding comment systems to your blog
- Draft Posts Guide: Working with draft content and publishing workflow
Deployment
- Hosting: Deploying to GitHub Pages, Netlify, and other platforms
Community
- Contributors: List of project contributors
- Showcase: Sites built with Marmite
Tutorials
Python Tutorial Series
- Python Tutorial Part 1: Introduction to Python basics
- Python Tutorial Part 2: Control flow and functions
- Python Tutorial Part 3: Data structures and modules
Release Notes
- Marmite 0.2.6 Release Notes: Latest features and improvements
Optional
- About: About the project
- Pagination: How pagination works
- Content without metadata: Example of content without frontmatter
Key Features
- Image Optimization: Automatic image resizing with configurable max widths, parallel processing using all CPU cores, and incremental builds that skip unchanged images
- Shortcodes: Insert dynamic content using simple markers like
<!-- .youtube id=VIDEO_ID -->,<!-- .spotify url="album/ID" -->, or<!-- .card slug=content-slug --> - Enhanced Tera Functions: New template functions including
get_data_by_slug()for content lookup and enhancedgroup()function with sorting and limiting - Content Cards: Display linked previews of any content (posts, pages, tags, authors, series) with automatic data resolution
- External URL Support: Card shortcodes automatically detect and handle external URLs with proper targeting
- Template URL Functions: All shortcode templates use the
url_for()function for proper URL generation - URL Preview (Dry Run): Use
--show-urlscommand to preview all site URLs without building, perfect for verification and planning - Automatic Sitemap Generation: Built-in sitemap.xml generation for better SEO, enabled by default with support for absolute and relative URLs
- File Mapping: Copy arbitrary files during site generation with flexible source and destination patterns, supporting single files, directories, and glob patterns
- Themes: Complete theme system with remote theme installation and customization
- Series Support: Group related content in chronological order with automatic navigation
- Enhanced Streams: Filename-based stream detection with configurable display names
- Configurable Markdown Parser: Full control over CommonMark extensions and rendering options
- IndieWeb Compliance: Built-in microformats and semantic HTML for better web interoperability
- Navigation Links: Automatic next/previous post navigation with stream-aware linking
- Draft Content Management: Special handling of draft posts with filtering from feeds and search
- Related Content: Configurable related content and backlinks between posts
- Markdown Alerts: Support for GitHub-style callouts and alert boxes in markdown
Agents
Marmite ships with an embedded agent skill following the Agent Skills open format. AI coding agents (Claude Code, Codex, Gemini CLI, Cursor, and others) can use this skill to build, configure, and manage marmite sites.
Viewing the Skill
Print the embedded skill document to stdout:
$ marmite --skill
This outputs the full SKILL.md with workflows for project setup, content authoring, configuration, templates, themes, shortcodes, and deployment.
Installing the Skill
Install the skill into a project so agents discover it automatically. No input folder argument is needed - the skill is installed in the current directory by default.
For agents that follow the standard agent-skills pattern (Codex, Gemini CLI, Cursor, etc.):
$ marmite --skill-install
This creates .agents/skills/marmite/ with the SKILL.md and all reference files.
For Claude Code, which uses .claude/skills/ instead:
$ marmite --skill-install-claude
This creates .claude/skills/marmite/ with the same files.
Both flags can be combined to install for all agents at once:
$ marmite --skill-install --skill-install-claude
The installed structure:
.agents/skills/marmite/ # Standard agent-skills pattern
SKILL.md # Main skill document
references/
cli-reference.md # All CLI flags and options
installation.md # Installation methods
config-reference.md # Complete marmite.yaml reference
frontmatter.md # Content frontmatter fields
content-organization.md # Directory structure and taxonomy
markdown-format.md # Markdown syntax and extensions
tera-templates.md # Template system and variables
shortcodes.md # Shortcode creation and usage
deployment-guide.md # Hosting and deployment guides
comment-system.md # Comment system integration
.claude/skills/marmite/ # Claude Code
SKILL.md # Same files as above
references/ # Same references
How Agents Use It
Agents that support the agent-skills pattern load skills in three stages:
- Discovery - the agent reads the skill name and description from SKILL.md frontmatter
- Activation - when the task matches (e.g., "create a blog with marmite"), the agent reads the full SKILL.md
- Execution - the agent follows the workflows and loads reference files as needed for detailed information
Example Agent Interactions
With the skill installed, an agent can handle requests like:
- "Create a new marmite blog about cooking with search enabled and the dracula colorscheme"
- "Add a Python tutorial series with three parts"
- "Set up GitHub Pages deployment for this site"
- "Create a custom shortcode for embedding recipe cards"
- "Add Giscus comments to the blog"
- "Customize the homepage with a hero section and sidebar"
- "Create a new theme based on the default one"
The skill provides the agent with the exact commands, configuration fields, frontmatter syntax, and template variables needed to complete each task correctly.
Please consider giving a ☆ on Marmite Github repository, that helps a lot!
Comments