导入要保留来源类型以选对渲染链
症状与根因
| 现象 | 根因 |
|---|---|
| 知识库里的剪藏内容格式和剪藏区不一样 | 订阅导入时把 HTML 正文直接塞进 content_md,于是走了 Markdown 渲染链 |
| 同一个剪藏,从「已有剪藏」导入是对的,从「订阅」导入是错的 | 两条导入路径给的正文格式不同(前者已是解析后的正文格式),但落库字段相同 |
格式与字段是两件事:content_html 和 content_md 不是可互换的容器。剪藏解析器会把网页转成适合 ClipReader 的正文格式;跳过这一步直接落库,等于把 HTML 当成 Markdown 读。
判断与做法
- 落库时要保留来源类型(如
kind: 'note' | 'clip' | 'html'),它决定打开时用哪个渲染器 —— 图标、阅读器、滚动行为都跟着这个类型走。 - 多来源入口必须收敛到同一个「归一化」步骤:不管从剪藏导入还是从订阅导入,都先转成该类型对应的正文格式,再落同一个字段。否则每加一条导入路径就会多一种格式事故。
- 症状「格式不对」先问:这条内容是从哪个入口进来的?它进来时是什么格式? 而不是先怀疑渲染器。
相关
- 文章元信息用发布日期而非创建日期 —— 同一条入库链路的元信息侧:要单独存的字段也要在抓取阶段一并提取
- 清洗合并会破坏源格式语义 —— 同为「格式语义在管道中静默丢失」,那条讲合并环节,这条讲导入环节
- 入库前先分层清洗 —— 归一化步骤就是清洗层该做的事
- 兼容fallback会让内容重复渲染 —— 另一类「渲染链选择错误」的后果