TextDiagramEditor 负责编辑草稿、预览、下载和提出保存请求。应用负责当前文档、持久化以及是否接受修改。工作台不直接写入你的编辑器或服务器。
样式与主题
从 @quirekit/text-diagram-editor/vue 导入组件,同时导入 @quirekit/text-diagram-editor/styles.css。界面控件还需要 @quirekit/unocss-preset 的生成样式,以及 @quirekit/ui/vue 的主题、语言和图标 Provider。
按设计系统开始使用配置 defineQuireKitUnoConfig、UnoCSS Vite 插件和 virtual:uno.css;本地预览中的设计站使用固定端口 3200。将 QuireThemeProvider、QuireLocaleProvider、QuireIconProvider 放在应用根,图标使用 @quirekit/ui 的 quireIconRegistry。本站已经由共享外壳配置这些 Provider。
完整可运行接入
先看 workspace/editor.vue:它在挂载后提供 ownerDocument,从宿主取得 request,再把两者交给工作台。点击保存后,宿主决定是否接受修改。
| 文件 | 要修改什么时查看 |
|---|---|
workspace/editor.vue | 组件挂载、保存与取消后的页面行为 |
recipes/session.ts | 当前对象、版本比较和本地存储 |
shared/locale.ts | 示例界面文案 |
shared/types.ts | 宿主共享类型 |
示例使用浏览器本地存储;替换 persist 回调可接到自己的同步本地事务。源码页签一次查阅一个文件。
组件合同
| 属性 / 事件 | 用途 |
|---|---|
request | 必填,包含基线 document、同步 commit 和 release |
ownerDocument | 必填,挂载后的浏览器 Document |
locale | 控件与新模板的语言;默认中文,支持英文 |
languages | 可选,仅开放已安装的语言;省略时为三种语言 |
titleEditable | 需要标题输入时显式设为 true;Markdown 宿主可设为 false |
saved | 宿主返回 saved 后触发,应用刷新基线或关闭工作区 |
cancel | 用户取消,应用释放请求并决定下一步 |
request.document 在组件创建时作为基线。切换到另一对象或接受保存后,先释放旧请求,再用新的 key 挂载组件。不要仅替换 request 期待当前草稿自动重置。
释放与 SSR
内嵌组件不会替应用释放宿主目标;在取消、重建或卸载时调用 request.release()。组件自身会释放预览和 CodeMirror。ownerDocument 在 onMounted 后赋值;Nuxt 通过 ClientOnly 或 .client.vue 页面边界挂载工作台,服务端不访问 document。
源码和预览必须一起提交,完整合同见保存与恢复。