Marmite 静态站点生成技能
零配置的 Rust 静态站点生成器技能:把一个文件夹的 Markdown 变成完整博客网站,让 AI 代理代管建站、写作与发布的全流程。
技能主要在本地将 Markdown 构建为静态站点,数据流透明,无隐藏外发数据;atproto 认证明确要求 ATPROTO_APP_PASSWORD 环境变量,处理方式可见。扣分点:多处推荐 `curl | sh` 远程安装脚本与 `iwr | iex`,以及 `--set-theme` 可从任意 GitHub/GitLab/ZIP URL 下载并安装主题,构成供应链与任意代码执行风险,但未提供校验和、签名或确认/回滚机制;未扣至更低是因为这些行为均在文档中明示,无隐蔽性。
SKILL.md 与 references/cli-reference.md、config-reference.md 内部一致,命令、参数表和默认值相互吻合,关键路径(init、build、serve、new、theme)描述完整,可静态复现。扣分点:失败场景与错误反馈仅在参考文件中偶有提及(如别名冲突告警、内部链接校验),缺少系统的故障诊断说明;安装路径依赖外部网络与第三方脚本可用性,未给出失败时的诊断指引。
受众与场景清晰(用 Markdown 建博客/文档/作品集站),工作流分段明确,posts/pages 判定、多语言、边界行为(如翻译分组识别规则)描述细致,触发语义准确。扣分点:核心分发依赖 GitHub/marmite.blog/picsum/giscus 等境外服务,对中国大陆网络可达性未作说明;文档以英文为主,无中文支持声明。
信息架构分层良好:SKILL.md 主文档 + installation/frontmatter/config/content-organization/deployment/comment-system 等参考文档,含示例、FAQ 式对比表和已知限制说明,许可证元数据为 AGPL-3.0。扣分点:技能自身无版本号或变更记录,未声明与 marmite 二进制版本的对应关系;SKILL.md 文件在 Workspace Multi-Site 一节戛然而止(被截断),维护责任与更新路径未在技能文件内说明。
目标是把 markdown 文件夹变成可用网站,文档覆盖安装、创作、配置、主题、部署全链路,输出为可直接托管的静态文件,且强调零配置起步,边际价值明确。扣分点:静态评审未执行,代表性输出(生成的站点、marmite.、urls.)无法验证其正确性与完整度;部分高级功能(图片自动下载、图库、atproto)实际效果缺乏证据。
所有关键声明可回溯到仓库内源文件,事实与推断分离良好,配置默认值在 CLI 表与 config 参考间可交叉核对。扣分点:未见到针对技能关键路径的已提交测试或 CI 执行证据,无法独立复现核心结论;第三方佐证(marmite.blog 文档、发布版本)仅以链接形式存在,未在静态材料内验证。
- 安装步骤推荐 `curl -sS https://marmite.blog/install.sh | sh` 和 PowerShell `iwr | iex`,属于远程脚本直接执行,建议用户改用 cargo/pip/brew/Docker 等可校验渠道并在执行前审查脚本。
- `--set-theme` 支持从任意 URL(含 ZIP)下载安装主题,存在供应链风险;使用前应审查主题来源。
- atproto 发布需要账号应用密码(环境变量),注意凭据不要写入文件或日志。
- 评论系统(Giscus/Utterances/Disqus)与 picsum 图片下载均依赖境外服务,中国大陆网络环境下可能不可达或需代理。
- SKILL.md 文件在 Workspace 一节内容不完整(截断),多站点工作流应参考仓库内完整文档而非仅凭本技能文件。
- 本次为静态源码评审,未实际执行构建;所有功能有效性结论均为低置信度。
这个 Skill 能做什么,适合哪些场景?
Marmite 是一个用 Rust 编写的零配置静态站点生成器,将 Markdown 文件夹直接转换为完整网站,专为博主按时间顺序发布文章而设计。该技能封装了它的完整工作流:初始化站点、创建文章与页面、管理标签/作者/流/系列等多分类体系、自定义 Tera 模板与主题、图片优化与媒体管理。技能文档还内置了独特的'写作前先读站点元数据'流程,通过读取生成的 marmite. 和 urls. 来避免标签拼写错误、slug 冲突等问题。适合想用 Markdown 快速建博客、又希望 AI 辅助管理内容的用户。
读取输入文件夹中的 .md 文件,用 CommonMark 解析为 HTML,从 frontmatter 或文件名提取元数据,输出扁平的静态 HTML 站点到输出文件夹。具体包括:marmite <folder> --init-site 脚手架新项目;--new 创建带标签的新文章;--serve --watch 本地预览并热重载;读取 <output>/marmite.(全站清单)和 urls.(URL 清单)检查既有 slug、标签、作者、流和系列;生成 RSS、sitemap、标签/作者/流/系列页面;支持 Tera 模板自定义(--init-templates)、主题创建(--start-theme)、短代码、图库、图片自动缩放、atproto 发布以及内置的内容编辑器。
- 博主想从零开始建一个 Markdown 博客,运行 marmite . --init-site 后几分钟内即可本地预览
- 已有大量 Markdown 笔记的用户,直接对文件夹运行 marmite <folder> 即可生成站点,无需任何配置
- AI 代理辅助写作时,先读 marmite. 复用既有标签和 slug 命名规范,保持全站内容一致性
- 需要多语言站点的内容创作者,用语言流自动发现翻译并生成 hreflang SEO 标签
- 想深度定制外观的开发者,用 --init-templates 导出 Tera 模板或 --start-theme 创建完整主题
- 写多部分教程的作者,用 series 分类获得自动的上/下一篇导航
这个 Skill 有哪些优点和局限?
- 零配置即可启动,单二进制内嵌全部功能
- 技能内置'先读站点元数据再写作'流程,可有效防止标签拼写错误和 slug 冲突
- 功能覆盖完整工作流:脚手架、写作、模板、主题、图片优化、部署指南
- 内置 IndieWeb 微格式、多语言、图库、短代码等现代化特性
- 附带 10+ 个参考文档,安装方式覆盖 Linux/macOS/Windows/Docker
- 项目自述'追求简单',不要期待复杂特性;目标用户是博主而非通用 CMS 用户
- 输出默认是扁平 HTML 文件结构(如 ./name.html),子目录布局需用工作区模式
- AGPL-3.0 许可证对某些商业集成场景可能有约束
- 评论系统、数学公式、Mermaid 等部分功能依赖额外配置或外部脚本
如何安装这个 Skill?
先安装 marmite CLI(任选其一):curl -sS https://marmite.blog/install.sh | sh;pip install marmite;cargo install marmite;brew install marmite;或 docker run --rm -v $(pwd):/input ghcr.io/rochacbruno/marmite。然后在项目中安装本技能:marmite --skill-install(装入 .agents/skills/)或 marmite --skill-install-claude(装入 .claude/skills/),两者可同时执行。
如何使用这个 Skill?
新项目:mkdir mysite && cd mysite && marmite . --init-site && marmite . --serve --watch,浏览器打开本地服务器预览。写作前让代理先读 site/marmite. 和 site/urls.,确认既有标签、slug 和作者后再用 marmite . --new "标题" -t "标签1,标签2" 创建文章。已有 Markdown 的文件夹直接 marmite <folder> 即可构建。需要完整参考时查阅 references/ 目录下的 CLI、配置、frontmatter、模板等文档。
这个 Skill 与同类方案有什么区别?
项目 README 自己列举了同类工具:Cobalt、Zola、Zine,并将 Marmite 定位为'更简单'的选择——出发点是指向一个 Markdown 文件夹就能出站点,无需像其他 SSG 那样大量初始配置。