@mini-dev/markdown-core
v0.0.1
Published
小程序里 LLM 流式 markdown 渲染库 —— 小程序 + 流式优先,性能是护城河
Maintainers
Readme
@mini-dev/markdown-core
小程序里 LLM 流式 Markdown 渲染库的核心包。增量解析 + Patch Diff + 局部 setData,避免逐 chunk 全量重渲染。
平台无关:core 只持端无关契约(PlatformAdapter / AdapterNode / MixedSegment 等类型),各端 adapter 独立成包。微信端见 @mini-dev/markdown-adapter-wechat;支付宝 / 抖音 adapter 可按同构各自独立成包。
1. 安装
npm i @mini-dev/markdown-core小程序侧安装后在开发者工具执行「工具 → 构建 npm」,工具会读 package.json 的 "miniprogram": "dist/cjs" 字段取产物。
2. 最小示例
const { createMarkdown } = require('@mini-dev/markdown-core');
const { createWeChatAdapter } = require('@mini-dev/markdown-adapter-wechat');
const md = createMarkdown();
const adapter = createWeChatAdapter();
// 静态渲染
const segments = adapter.irToMixedSegments(md.render(md.parse('# Hello\n\n正文')));
// 流式渲染
const stream = md.stream();
stream.on((patch) => {
if (patch.kind === 'update') {
// 异步回填:只替换 segments[patch.index]
} else {
// splice:按 [changedFrom, END) 整体替换
}
});
stream.push('# Hel');
stream.push('lo\n\n正文');
stream.flush();irToMixedSegments() 产出 rich-text / component / inline 三类段,页面模板按段分派(示例见仓库 sample-wechat/miniprogram/components/md-view/)。
3. 插件
md.use(plugin); // 或 createMarkdown({ plugins: [plugin] })Plugin 一种形状收三个扩展点:rules(块解析规则)、transformPlugins(ast→ast)、rendererOverrides(渲染覆盖,同 type 折叠成 next 链)。
官方支持包:
@mini-dev/markdown-adapter-wechat—— 微信 rich-text 适配器@mini-dev/markdown-math—— 数学公式(MathJax TeX→SVG)@mini-dev/markdown-mermaid—— Mermaid 图(外部预渲染 SVG / 无服务降级)@mini-dev/markdown-highlight—— 代码块语法高亮(Prism,长块 seal-only)
4. 文档
5. License
MIT
