@mini-dev/markdown-adapter-wechat
v0.0.1
Published
minidev-markdown 的微信小程序适配器 —— RenderIR 落到微信 rich-text 节点树 + 组件段 + inline 段
Maintainers
Readme
@mini-dev/markdown-adapter-wechat
@mini-dev/markdown-core 的微信小程序适配器 —— 把平台无关的 RenderIR 落到微信 rich-text 节点树 + 自定义组件段 + 可点击 inline 段。
core 只持端无关契约(PlatformAdapter/AdapterNode/MixedSegment 等),各端 adapter 独立成包。本包是微信端实现;支付宝 / 抖音 adapter 可按同构各自独立成包。
1. 特性
- rich-text 节点树:
irToRichTextNodes(ir)→ 微信 rich-textnodes。 - 混合渲染:
irToMixedSegments(ir)→ 交替的 rich-text / component / inline 段,配合md-view容器按段分派。 - 可换肤样式表:
createWeChatAdapter(components, styles?)第二参覆盖DEFAULT_WECHAT_STYLES;rendererprops.style仍优先。 - 代码块横向滑动:
createWeChatAdapter(components, styles, { codeScroll: true })把 fenced code 单独成段,md-view套<scroll-view scroll-x>横滑。 - 失败可见降级:未注册组件 →
[<Type> k=v]文本占位,不静默吞。
2. 安装
npm i @mini-dev/markdown-core @mini-dev/markdown-adapter-wechat小程序侧执行「工具 → 构建 npm」(读 "miniprogram": "dist/cjs")。
3. 用法
const { createMarkdown } = require('@mini-dev/markdown-core');
const { createWeChatAdapter } = require('@mini-dev/markdown-adapter-wechat');
const md = createMarkdown();
const adapter = createWeChatAdapter();
adapter.registry.register('md-math', '/components/md-math/index');
const blocks = md.parse(source);
const nodes = adapter.irToRichTextNodes(md.render(blocks));流式见 core 的 MarkdownStream:每个 patch 经 adapter.irToMixedSegments(patch.instructions) 落到 md-view segments。
4. 文档
5. License
MIT
