Files
menav/content/about.md
rbetree 280d376bac feat(templates):新增 Markdown 内容页支持
新增 template: content:构建期使用 markdown-it 将本地Markdown 渲染为 HTML(禁用 raw HTML/图片),并按MeNav的URLscheme白名单策略对链接做安全降级
2026-01-20 18:23:32 +08:00

2.1 KiB
Raw Blame History

关于 MeNav

MeNav 是一个用于生成个人导航站的项目:

  • 构建期:使用 Node.js 作为静态站点生成器SSG把配置与内容渲染为 dist/
  • 运行时:输出一份轻量的浏览器 runtime用于页面交互与增强。

这页用于放置项目的说明与使用要点(你也可以改成自己的“关于”页面)。

适合谁

  • 想要一个可自托管、可版本管理的导航页/起始页
  • 希望用 YAML + Markdown 管理站点结构与内容
  • 更偏好“生成静态文件再部署”,而不是运行时依赖服务端

快速开始

npm install
npm run dev
  • npm run dev:本地开发(生成站点并启动本地服务)
  • npm run build:生成生产构建(输出到 dist/

项目结构(常用)

  • src/generator/构建期生成器Node.js
  • src/runtime/:浏览器 runtime最终会被打包到 dist/script.js
  • templates/Handlebars 模板
  • config/站点配置YAML
  • content/内容页Markdown例如本文件
  • dist/:构建输出(可直接部署)
  • dev/网络缓存gitignored

配置说明(概念)

  • MeNav 的站点配置以 config/ 下的 YAML 为主。
  • 注意:如果存在 config/user/,它会完全替换 config/_default/(不是 merge

内容页Markdown说明

  • 内容页的 Markdown 会在构建期渲染为 HTML。
  • 内容页通常用于:关于、帮助、使用说明、更新记录等。

安全与链接处理

MeNav 对链接会做安全处理(例如限制危险的 URL scheme以降低把不安全链接渲染到页面上的风险。

如果你在导航数据或内容页里粘贴了外部链接,建议优先使用 https://

部署

npm run build 后将生成的 dist/ 部署到任意静态站点托管即可(例如 Nginx、GitHub Pages、Cloudflare Pages 等)。

维护建议

  • 把你的配置、内容页都纳入 git 版本管理
  • 变更后跑一遍:
npm run check

(会依次执行语法检查、测试与构建)