marmite:841⭐的 Rust 静态博客生成器
静态博客生成器的选择很多,但大多数要么配置复杂,要么需要维护大量模板文件。marmite 尝试走另一条路:零配置、单文件、专注写作本身。
项目概览
| 属性 | 内容 |
|---|---|
| GitHub | rochacbruno/marmite |
| Stars | 841 |
| 语言 | Rust |
| 特点 | 零配置、单二进制文件、Markdown 原生支持 |
| 最后更新 | 6天前 |
它解决了什么问题
搭建博客时,常见的痛点包括:
- 配置复杂:需要写大量 YAML/TOML 才能开始
- 依赖过多:主题、插件、构建链层层依赖
- 部署繁琐:本地构建和远程部署经常不一致
marmite 的思路是:一个二进制文件 + Markdown 文件 = 完整博客。不需要配置文件,目录结构即约定。
核心特性
单文件部署
整个工具就是一个可执行文件,无外部依赖。下载即用,适合各种 CI/CD 场景。
目录即内容
my-blog/
├── content/ # Markdown 文件放这里
│ ├── hello-world.md
│ └── another-post.md
└── marmite # 可执行文件
运行 ./marmite content output 即可生成静态站点。
内置功能完备
- RSS/Atom 订阅自动生成
- 标签云和归档页面
- 代码高亮
- 图片懒加载
- Open Graph 元标签
- 暗色/亮色模式切换
不需要安装插件,这些都是默认行为。
主题可扩展
虽然不强制使用主题,但可以通过模板目录覆盖默认样式。支持 Tera 模板引擎,熟悉 Jinja2 的开发者上手很快。
快速开始
# 下载(Linux/macOS)
curl -L -o marmite https://github.com/rochacbruno/marmite/releases/latest/download/marmite-x86_64-unknown-linux-gnu
chmod +x marmite
# 创建博客
mkdir my-blog && cd my-blog
mkdir content
echo "# Hello World" > content/hello.md
# 生成站点
./marmite content output --serve
访问 http://localhost:8080 即可预览。
与其他工具对比
| 工具 | Stars | 特点 |
|---|---|---|
| Hugo | 78k | 速度极快,功能全面,但配置复杂 |
| Zola | 17k | Rust 实现,功能丰富,需要配置文件 |
| Jekyll | 49k | GitHub Pages 原生支持,依赖 Ruby |
| marmite | 841 | 零配置,单文件,专注博客场景 |
Hugo 和 Zola 更适合复杂站点,marmite 适合只想写 Markdown 的人。
适用场景
- 个人博客/技术笔记
- 项目文档
- 快速搭建临时展示页面
- 希望减少维护负担的内容站点
注意事项
- 项目较新(2024年10月创建),API 可能有变动
- AGPL-3.0 协议,商用需注意
- 主题生态尚未成熟,需要深度定制可能要自己写模板
总结
marmite 不试图解决所有问题,而是专注做好一件事:把 Markdown 变成博客。如果你厌倦了维护博客系统的配置和依赖,它值得一试。
| 属性 | 内容 |
|---|---|
| 仓库 | https://github.com/rochacbruno/marmite |
| 许可证 | AGPL-3.0 |
| 语言 | Rust |
| 维护者 | @rochacbruno |