diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md index 6d9e871..de4d167 100644 --- a/ARCHITECTURE.md +++ b/ARCHITECTURE.md @@ -40,7 +40,7 @@ graph TD - `apps/website`:面向用户的 Web 应用(Vue 3.6 SPA)。内部分层见 `docs/frontend.md` - `apps/docs`:面向论坛用户的 VitePress 帮助站,使用默认主题和独立静态构建,不依赖主站运行 - `packages/api`:CC98 API 的 Zod schema、operation registry、OpenAPI JSON 和验证工具 -- `packages/ubb`:UBB 解析器,核心产出是 AST(`parseUbb`),附带 HTML 和 Markdown 两个导出器。只读不做编辑器 +- `packages/ubb`:框架无关的 UBB 解析和输出工具。标签注册器定义 UBB 方言,泛型 renderer 把 AST 转成调用方选择的输出类型,包内提供 HTML 和 Markdown 预设。只读不做编辑器 - `packages/utils`:TypeScript 工具包脚手架,当前仅有占位代码,尚未投入使用 网站的富内容渲染分为语法适配层和共享 UI 层: @@ -56,7 +56,7 @@ flowchart LR remark --> universe ``` -`packages/ubb` 只负责解析和标签契约,不依赖 Vue。`apps/website` 解释 UBB AST 和 Markdown MDAST,并集中处理 URL 安全、图片计数、媒体开关等渲染策略。Markdown 编辑器使用 Milkdown,编辑和阅读共享 remark 语法体系。 +`packages/ubb` 不依赖 Vue。`createUbbRegistry` 登记标签名和解析模式,`createRenderer` 登记每个标签的输出 handler。默认 HTML 和 Markdown 导出器都是泛型 renderer 的字符串预设。`apps/website` 通过同一泛型 renderer 注册 Vue handler 输出 VNode,并集中处理 URL 安全、图片计数和媒体开关。Markdown 编辑器使用 Milkdown,编辑和阅读共享 remark 语法体系。 ## 依赖方向 diff --git a/apps/website/src/components/rich-content/ContentRenderer.vue b/apps/website/src/components/rich-content/ContentRenderer.vue index 4f48319..ae1eaac 100644 --- a/apps/website/src/components/rich-content/ContentRenderer.vue +++ b/apps/website/src/components/rich-content/ContentRenderer.vue @@ -1,5 +1,5 @@