把 Markdown-Viewer 改造成静态博客
为什么要预生成 HTML
Markdown-Viewer 是纯前端渲染:加载 1.3 MB 的 script.js,在浏览器里把 md 转成 HTML。这对一个"查看器"没问题,但对博客是致命的——搜索引擎的爬虫不会执行 JavaScript,它看到的永远是一个空壳。
所以核心思路是:把渲染从浏览器搬到构建时。
渲染管线
核心只有三行:
const engine = new Marked({ gfm: true });
const html = engine.parse(markdown);
真正的价值在于围绕它的两件事:
- Frontmatter 解析 —— 用
js-yaml读---包裹的元数据 - 代码高亮 —— 用
highlight.js在构建时把代码块染色,前端零负担
构建时多做一秒,运行时少加载一兆。
目录
文章按 posts/<slug>.md 存放,构建脚本扫描目录、排序、生成:
- 首页列表
- 每篇文章的独立 HTML
- 分类页 / 标签页 / 归档页
sitemap.xml/feed.xml/robots.txt
| 产物 | 作用 |
|---|---|
p/<slug>/index.html |
可被搜索引擎索引的文章页 |
sitemap.xml |
主动提交给 Search Console |
feed.xml |
RSS 订阅 |