| Files | Last commit | Last update |
|---|---|---|
feat(render): 接入共享 Markdown 渲染内核,修复 Mermaid 静默降级 渲染链路改为与志睿源官网(zry-cms)共用同一份内核,页面不再保留本地 DOM 逐块构造的渲染实现(同一套解析逻辑此前被写了两遍): md 原文 ──renderHtml()──▶ HTML ──enhance()──▶ 图形水合 → 可放大 ▲ ▲ shared/md/md-core.js shared/md/md-enhance.js 主要变更 -------- * 新增 shared/md/:md-core.js(解析 + HTML 生成,浏览器/Node 双侧可用)、 md-enhance.js(Mermaid 水合、SVG 白名单清洗、放大查看器)、md-enhance.css、 PARSING-SPEC.md(各端行为对齐依据)与 test/(跨端一致性用例) * 新增 vendor/mermaid/:内置 Mermaid 10.9.8(MIT),纯离线渲染、零网络请求, 与 HarmonyOS / Android 端内置的是同一份构建产物 * 路径改写:对共享内核的引用由线上布局(../../shared/)改为本仓库同级(../shared/); 页面里指向站点专用的 /shared/js/wx-id.js 引用已删除(阅读器不需要该能力) 修复 ---- * Mermaid 图形块全部静默降级成源码:mermaid.min.js 是经典脚本,把引擎赋给顶层 var __esbuild_esm_mermaid,末尾再执行 globalThis.mermaid = ....default。 顶层 var 在经典脚本里落在全局作用域,但被当作模块 import 时只存在于模块作用域, 于是末尾那句对 undefined 取 .default 抛 TypeError → 模块求值失败 → 动态 import 被拒。 症状隐蔽:enhance() 仍返回 {graphs:4, ok:4},但 DOM 里 .mermaid-block 内没有 <svg>。 改为经 <script> 按经典脚本加载、onload 后读 globalThis.mermaid 再默认导出。 验收:流程图 / 时序图 / 饼图三张图均渲染出真实 SVG(viewBox 已按真实 getBBox 重算)。 * index.html 中 app.js 的内容哈希版本号未随代码改动同步(仍指向旧值), 会导致老访客命中 30 天强缓存拿到旧脚本;已重算为实际 md5。 文档 ---- * README 重写:目录结构、渲染内核单一真源图解、Mermaid 引擎为何必须用经典脚本加载、 缓存版本号规则、四端(鸿蒙 / Android / WEB / 官网内核)对照表 * NOTICE 补充第三方组件声明(Mermaid,MIT) | 1 month ago | |
feat(render): 接入共享 Markdown 渲染内核,修复 Mermaid 静默降级 渲染链路改为与志睿源官网(zry-cms)共用同一份内核,页面不再保留本地 DOM 逐块构造的渲染实现(同一套解析逻辑此前被写了两遍): md 原文 ──renderHtml()──▶ HTML ──enhance()──▶ 图形水合 → 可放大 ▲ ▲ shared/md/md-core.js shared/md/md-enhance.js 主要变更 -------- * 新增 shared/md/:md-core.js(解析 + HTML 生成,浏览器/Node 双侧可用)、 md-enhance.js(Mermaid 水合、SVG 白名单清洗、放大查看器)、md-enhance.css、 PARSING-SPEC.md(各端行为对齐依据)与 test/(跨端一致性用例) * 新增 vendor/mermaid/:内置 Mermaid 10.9.8(MIT),纯离线渲染、零网络请求, 与 HarmonyOS / Android 端内置的是同一份构建产物 * 路径改写:对共享内核的引用由线上布局(../../shared/)改为本仓库同级(../shared/); 页面里指向站点专用的 /shared/js/wx-id.js 引用已删除(阅读器不需要该能力) 修复 ---- * Mermaid 图形块全部静默降级成源码:mermaid.min.js 是经典脚本,把引擎赋给顶层 var __esbuild_esm_mermaid,末尾再执行 globalThis.mermaid = ....default。 顶层 var 在经典脚本里落在全局作用域,但被当作模块 import 时只存在于模块作用域, 于是末尾那句对 undefined 取 .default 抛 TypeError → 模块求值失败 → 动态 import 被拒。 症状隐蔽:enhance() 仍返回 {graphs:4, ok:4},但 DOM 里 .mermaid-block 内没有 <svg>。 改为经 <script> 按经典脚本加载、onload 后读 globalThis.mermaid 再默认导出。 验收:流程图 / 时序图 / 饼图三张图均渲染出真实 SVG(viewBox 已按真实 getBBox 重算)。 * index.html 中 app.js 的内容哈希版本号未随代码改动同步(仍指向旧值), 会导致老访客命中 30 天强缓存拿到旧脚本;已重算为实际 md5。 文档 ---- * README 重写:目录结构、渲染内核单一真源图解、Mermaid 引擎为何必须用经典脚本加载、 缓存版本号规则、四端(鸿蒙 / Android / WEB / 官网内核)对照表 * NOTICE 补充第三方组件声明(Mermaid,MIT) | 1 month ago |
| Files | Last commit | Last update |
|---|---|---|
| 1 month ago | ||
| 1 month ago |