用 Markdown 做“AI 记忆库”,用 HTML 做“对外展示层”
你有没有遇到过这种崩溃瞬间:
- 文档越写越长,Markdown 看着像一面墙,读不动。
- 对外要发一篇“能看懂”的页面,排版要精致、要目录、要提示卡片、要交互。
- 版本对比一团糟:一改样式,全是 diff;AI 读进来还白白烧 token。
更稳的做法是:数据层用 Markdown 存“事实”和“记忆”,表现层用 HTML 做展示与交互。这套结构越做越顺,尤其适合 AI 产品、知识库、教程站、产品文档中心。
下面不讲玄学,直接给你能照着搭的方案。
这套架构到底在解决什么问题?
1)Markdown 适合当“原始数据”
Markdown 的优势很现实:
- 干净:事实内容就是事实内容,没一堆标签和样式噪音。
- 好版本控制:Git diff 很清楚,review 也轻松。
- AI 更爱吃:结构简单,token 不浪费。
- 可迁移:换工具也不怕被锁死。
一句话:Markdown 适合当 Memory。你要喂给 AI 的“事实、结论、规则、流程、FAQ”,尽量都在这里。
2)HTML 适合当“对外界面”
当内容一长,Markdown 的阅读体验就开始掉:
- 信息密度上不去(表格、卡片、分栏、折叠都难受)
- 视觉层级弱(用户扫一眼抓不到重点)
- 交互能力弱(目录定位、搜索、提示气泡、代码复制按钮)
HTML 这边就舒服了:
- 排版随你玩:卡片、栅格、侧边栏、固定目录
- 交互随你加:搜索、折叠、Tab、代码高亮、复制按钮
- “一键打开就能读”:用户体验直接拉满 ✅
3)为什么不直接用 HTML 当原始数据?
别这么干,真的会痛。
- 版本对比噪音爆炸:你只是改了一个 class,diff 像炸了。
- AI 上下文被污染:标签、样式、脚本混在一起,token 直接被吃空。
- 内容复用难:想导出成别的格式,成本上天。
更合理的姿势是:Markdown 存事实;渲染成 HTML 再发布。
你可以直接照抄的目录结构(推荐)
把“内容”与“展示”分开,目录就会很清爽:
project/
content/ # 只放 Markdown:事实、流程、知识
notes/
ai-product-arch.md
rag-checklist.md
specs/
api.md
glossary.md
assets/ # 图片、附件(尽量与内容解耦)
images/
files/
site/ # 构建产物:HTML(不要手改)
build/ # 构建脚本
package.json / etc.
你会发现一件很爽的事:
- content/ 里都是“真东西”,给 AI、给自己、给 Git。
- site/ 里都是“展示物”,坏了就重建,不心疼。
写 Markdown 的“AI 友好规范”(别偷懒)
目标只有一个:让内容既能被人读懂,也能被 AI 稳定解析。
建议的文档骨架
---
title: xxx
tags: [AI产品, 架构]
updated: 2026-05-11
---
# 结论一句话
## 适用场景
- ...
## 做法
### 步骤A
### 步骤B
## 示例
## 常见坑
## 参考
一些很实用的小规则
- 标题层级别跳:不要 H1 直接接 H4。
- 列表要“短句”:每行一件事,别写长段。
- 事实和观点分开写:比如用「事实:」「建议:」这种标记。
- 代码块标语言:
ts、bash 这种,后续渲染省事。
从 Markdown 渲染到 HTML:给你三条路线
你按团队规模和审美要求选就行。
路线 A:Obsidian 写作 + 静态站点发布(最省心)
适合:个人博客、团队知识库、对外文档。
可选工具:
- Obsidian(写作)
- MkDocs Material / Docusaurus / Astro / Next.js(渲染)
- GitHub Actions(自动构建)
- S3 + CloudFront(发布)
工作流长这样:
写 Markdown → Git 提交 → CI 构建 → 输出 HTML → 部署 → 用户打开就能看
路线 B:Markdown 为主,HTML 做“增强块”(对交互有执念)
适合:教程站、产品手册,需要折叠/卡片/提示块。
玩法:
- Markdown 里用扩展语法(admonition、tabs、mermaid)
- 构建时统一渲染成 HTML
你得到的效果是:内容仍然干净,页面体验又能打。
路线 C:同一份内容,给 AI 和给用户两套输出(专业团队常用)
适合:AI 产品、RAG、Agent 工程化。
- 给 AI:纯净 Markdown + 元数据(tags、来源、更新时间)
- 给用户:渲染后的 HTML + 搜索 + 目录 + 交互
一份内容,两种消费方式,各吃各的,不互相污染。
发布到 S3:一键打开的“丝滑体验”怎么做
你想要的效果是:用户点链接就开,不用登录、不用装客户端、不用等半天。
最小可行方案
- S3 开启静态网站托管
- 绑定域名(可选)
- 配 CloudFront 做 CDN(建议)
部署流程可以简单到:
- 构建产物输出到
site/ - 同步到 S3
常见命令(示意):
aws s3 sync site/ s3://your-bucket --delete
你会立刻得到两个收益:
- 页面打开速度快
- 发链接就能看,传播成本低
把 AI 接进来:让模型“吃 Markdown”,别吃 HTML
这里是关键点:检索与上下文,尽量基于 Markdown。
RAG/搜索索引建议
- 索引单位:按段落或小节切(用标题分隔)
- chunk 里保留:标题路径(H1/H2/H3)、tags、更新时间、来源链接
- 去掉:HTML 标签、样式类名、脚本
你会发现 token 账单明显变乖了。
一个很管用的策略:两份内容源
content/*.md:给 AI 的“净文本”site/*.html:给人的“阅读页”
AI 回答时引用 site 的链接,检索时吃 content 的文本。用户点击就能核对原文,闭环很自然。
避坑清单(踩过的人都懂)
- 别在 HTML 里写事实:一旦事实散落在 HTML,后面一定收不回来。
- 别手改构建产物:site/ 只允许自动生成。手改一次,就会改一辈子。
- 图片别乱丢:建议 assets/images/ 统一管理,Markdown 里用相对路径。
- 链接要可迁移:尽量用站内相对链接,少写硬编码域名。
- 版本控制别跟展示走:对比内容就对比 Markdown;HTML 的 diff 没意义。
- 长文别一页到底:拆成“可检索的小节”,对 AI 也更友好。
你今天就能做的落地动作(不折腾版)
- 用 Obsidian 建一个 vault,把“事实内容”搬进 Markdown。
- 定一套写作骨架(标题、场景、步骤、示例、避坑)。
- 选一个静态站点工具,把 content/ 渲染成 HTML。
- 部署到 S3(加 CloudFront 更爽)。
- RAG/Agent 的索引只吃 Markdown,引用返回给用户的是 HTML 链接。
搞定后你会很明显感觉到:
- 内容越多,系统越稳
- 文档越长,越容易读
- 迭代越快,版本越清楚
如果你愿意,我也可以按你现有的工具栈(Obsidian / Notion / 飞书 / GitBook / Next.js)给你配一套更贴合的流水线。🙂