From 23f12fc8667d460207af3afb77e0a184ee72cade Mon Sep 17 00:00:00 2001 From: fullstack-bot Date: Thu, 24 Sep 2026 23:32:50 +0800 Subject: [PATCH] fix(knowledge): render DB dynamic articles via markdown safe renderer A: dynamic knowledge-articles content goes through marked instead of raw v-html (escape-first, no new deps). B: plain-text fallback normalize (bracket headings, circled numbers to ordered list, blank lines, key-number bold, idempotent). C: detail-content styles for h2/h3/pre/blockquote/paragraph spacing. D: dialog width 700 to 860, content padding, in-dialog scroll. Task: project-20260924-knowledge-dialog-render-fullstack --- frontend/src/utils/knowledgeRender.ts | 154 ++++++++++++++++++++++++++ frontend/src/views/CMAKnowledge.vue | 39 ++++--- 2 files changed, 179 insertions(+), 14 deletions(-) create mode 100644 frontend/src/utils/knowledgeRender.ts diff --git a/frontend/src/utils/knowledgeRender.ts b/frontend/src/utils/knowledgeRender.ts new file mode 100644 index 00000000..6826b3d4 --- /dev/null +++ b/frontend/src/utils/knowledgeRender.ts @@ -0,0 +1,154 @@ +/** + * 知识库文章渲染(2026-09-24 knowledge-dialog-render) + * + * 口径: + * - md 单一来源(后端 /api/cma/docs 运行期读 md 目录)沿用页面既有渲染器: + * 正文可能含内联 HTML(如 ),**不得转义**,否则颜色会丢。 + * - DB 动态知识库文章(/knowledge-articles):先做纯文本规范化,再交给「原始 HTML 一律降级为纯文本」 + * 的 marked 实例渲染 ⇒ 任何