feat(templates):新增 Markdown 内容页支持
新增 template: content:构建期使用 markdown-it 将本地Markdown 渲染为 HTML(禁用 raw HTML/图片),并按MeNav的URLscheme白名单策略对链接做安全降级
This commit is contained in:
65
content/about.md
Normal file
65
content/about.md
Normal file
@@ -0,0 +1,65 @@
|
||||
# 关于 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
|
||||
```
|
||||
|
||||
(会依次执行语法检查、测试与构建)
|
||||
Reference in New Issue
Block a user