快速入口

在线体验/Demo:https://rbetree.github.io/menav/

开源仓库:https://github.com/rbetree/menav

一句话介绍

MeNav 是一个用 Node.js 在构建期把「YAML 配置 + Handlebars 模板」渲染为纯静态站点的个人导航站生成器,可直接部署到 GitHub Pages 等静态托管。

解决什么

导航条目一多,手工维护 HTML、Notion 或浏览器书签就会遇到“难搜索、难归类、难迁移、难版本管理”的问题。MeNav 把站点结构抽象成可版本化的配置文件:内容变更用 Git 追踪,构建产物只是一份 dist/ 静态文件;需要离线构建时还能通过离线 dev 模式避免刷新联网缓存,保证生成结果可复现。

工程上,它把“生成器入口”和“站点内容”分开:生成入口固定在 src/generator.js(内部实现位于 src/generator/main.js),模板与页面组件集中在 templates/;而用户的站点内容与页面结构建议放在 config/user/**,避免直接改默认配置导致升级困难。对于书签迁移,导入脚本会将浏览器导出的 HTML 书签转换为 config/user/pages/bookmarks.yml,后续可以继续在 YAML 中做整理与分类。

另外,仓库提供 sync-articles / sync-projects 等同步脚本,用于在构建期刷新需要联网的数据;如果你希望完全离线或追求更强的可复现性,可以使用 npm run dev:offline 跳过联网缓存刷新,把站点构建限制在本地配置与模板范围内。

核心亮点

  • 配置驱动:页面与模块拆分在 config/**,适合长期迭代与迁移
  • 构建期生成:输出纯静态 dist/,部署到 Pages/Vercel/CF Pages 即可访问
  • 书签导入:把浏览器导出的 HTML 书签转换为站点配置(脚本:npm run import-bookmarks
  • 开发/离线模式:npm run dev 刷新联网缓存;npm run dev:offline 可离线启动
  • 与 MarksVault 扩展联动:支持书签自动推送到仓库,驱动导航站自动更新

快速开始

git clone https://github.com/rbetree/menav.git
cd menav
npm ci
npm run dev

需要生成静态站点时运行 npm run build(产物在 dist/)。

如果你计划部署到 GitHub Pages,README 提供了“Fork → 启用 Actions → 配置 Pages”的最短路径;需要容器化运行时也可以参考仓库内的 Docker 相关文件与说明,统一以静态文件交付。