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

66 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 关于 MeNav
MeNav 是一个用于生成**个人导航站**的项目:
- **构建期**:使用 Node.js 作为静态站点生成器SSG把配置与内容渲染为 `dist/`
- **运行时**:输出一份轻量的浏览器 runtime用于页面交互与增强。
这页用于放置项目的说明与使用要点(你也可以改成自己的“关于”页面)。
## 适合谁
- 想要一个**可自托管、可版本管理**的导航页/起始页
- 希望用 **YAML + Markdown** 管理站点结构与内容
- 更偏好“生成静态文件再部署”,而不是运行时依赖服务端
## 快速开始
```bash
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 版本管理
- 变更后跑一遍:
```bash
npm run check
```
(会依次执行语法检查、测试与构建)