Marmite
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.
Key Features
- 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 - 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
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
- 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
- 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
Please consider giving a ☆ on Marmite Github repository, that helps a lot!
Comments