marmite:841⭐の Rust 製静的ブログジェネレータ
静的ブログジェネレータの選択肢は多いが、大抵は設定が複雑だったり、大量のテンプレートファイルを管理する必要がある。marmite は別のアプローチを試みる:ゼロ設定・単一ファイル・執筆そのものに集中する。
プロジェクト概要
| 属性 | 内容 |
|---|---|
| GitHub | rochacbruno/marmite |
| Stars | 841 |
| 言語 | Rust |
| 特徴 | ゼロ設定・単一バイナリ・Markdown ネイティブ対応 |
| 最終更新 | 6日前 |
解決する問題
ブログ構築時によくある悩み:
- 設定の複雑さ:始めるのに大量の YAML/TOML が必要
- 依存関係の多さ:テーマ、プラグイン、ビルドチェーンが層になる
- デプロイの面倒さ:ローカルビルドとリモートデプロイが不一致になりがち
marmite の考え方は:1つのバイナリファイル + Markdown ファイル = 完成したブログ。設定ファイルは不要で、ディレクトリ構造がそのまま約定になる。
主な機能
単一ファイルデプロイ
ツール全体が1つの実行ファイル。外部依存がなく、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 |