新增 template: content:构建期使用 markdown-it 将本地Markdown 渲染为 HTML(禁用 raw HTML/图片),并按MeNav的URLscheme白名单策略对链接做安全降级
66 lines
2.1 KiB
Markdown
66 lines
2.1 KiB
Markdown
# 关于 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
|
||
```
|
||
|
||
(会依次执行语法检查、测试与构建)
|