From 3cc0fa9bf6c6f0b166cc38fe977ab3085a7b83e2 Mon Sep 17 00:00:00 2001 From: unanmed <1319491857@qq.com> Date: Thu, 29 Oct 2026 20:26:02 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E9=AA=8C=E8=AF=81=E6=B8=B2=E6=9F=93?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E5=8F=AF=E4=BB=A5=E5=B5=8C=E5=85=A5=E6=96=87?= =?UTF-8?q?=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/demos/basicRender.vue | 50 ++++++++ docs/.vitepress/components/demos/uiSystem.vue | 120 ++++++++++++++++++ docs/.vitepress/components/renderDemo.vue | 84 ++++++++++++ docs/.vitepress/config.ts | 45 ++++++- docs/poc/render-demo.md | 26 ++++ docs/tsconfig.json | 16 +++ 6 files changed, 340 insertions(+), 1 deletion(-) create mode 100644 docs/.vitepress/components/demos/basicRender.vue create mode 100644 docs/.vitepress/components/demos/uiSystem.vue create mode 100644 docs/.vitepress/components/renderDemo.vue create mode 100644 docs/poc/render-demo.md create mode 100644 docs/tsconfig.json diff --git a/docs/.vitepress/components/demos/basicRender.vue b/docs/.vitepress/components/demos/basicRender.vue new file mode 100644 index 0000000..1577085 --- /dev/null +++ b/docs/.vitepress/components/demos/basicRender.vue @@ -0,0 +1,50 @@ + + + diff --git a/docs/.vitepress/components/demos/uiSystem.vue b/docs/.vitepress/components/demos/uiSystem.vue new file mode 100644 index 0000000..6cf03bc --- /dev/null +++ b/docs/.vitepress/components/demos/uiSystem.vue @@ -0,0 +1,120 @@ + + + diff --git a/docs/.vitepress/components/renderDemo.vue b/docs/.vitepress/components/renderDemo.vue new file mode 100644 index 0000000..8ed38a8 --- /dev/null +++ b/docs/.vitepress/components/renderDemo.vue @@ -0,0 +1,84 @@ + + + diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index a4b3502..4d66cfc 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -1,7 +1,30 @@ import { defineConfig } from 'vitepress'; import { MermaidMarkdown, MermaidPlugin } from 'vitepress-plugin-mermaid'; +import vuejsx from '@vitejs/plugin-vue-jsx'; import { join } from 'path'; +/** 文档站内的自定义渲染标签,与主站 vite.config.ts 保持一致 */ +const custom = [ + 'container', + 'custom', + 'text', + 'image', + 'shader', + 'comment', + 'custom-container', + 'map-render', + 'animate', + 'damage', + 'graphics', + 'icon', + 'winskin' +]; + +/** 判断一个标签是否为自定义渲染标签 */ +function isCustomElement(tag: string): boolean { + return custom.includes(tag) || tag.startsWith('g-'); +} + // https://vitepress.dev/reference/site-config export default defineConfig({ title: 'HTML5 魔塔样板 V2.B', @@ -298,9 +321,29 @@ export default defineConfig({ label: '中文' } }, + vue: { + template: { + compilerOptions: { + isCustomElement + } + } + }, vite: { // @ts-expect-error 类型错误 - plugins: [MermaidPlugin()], + plugins: [MermaidPlugin(), vuejsx({ isCustomElement })], + resolve: { + alias: [ + { + find: /^@motajs\/(.+)$/, + replacement: `${process.cwd()}/packages/$1/src` + }, + { + find: /^@user\/(.+)$/, + replacement: `${process.cwd()}/packages-user/$1/src` + } + ], + dedupe: ['vue'] + }, optimizeDeps: { include: ['mermaid'] }, diff --git a/docs/poc/render-demo.md b/docs/poc/render-demo.md new file mode 100644 index 0000000..04c95ac --- /dev/null +++ b/docs/poc/render-demo.md @@ -0,0 +1,26 @@ +# 渲染器内嵌演示(临时技术验证) + +本页是「文档内嵌可运行示例」的**临时技术验证页**,不进入导航;POC 通过后再由用户决定是否保留。 + +## 覆盖范围 + +- 渲染基础:容器、矩形、圆、文字,以及点击图形后计数与颜色的变化。 +- UISystem:`UIController` 打开 / 关闭一个最小 UI,页面上的栈长度与打开状态随之变化。 + +两个示例都只在浏览器中挂载;构建期预渲染会跳过它们,因此不会触碰 `document`。 + + + + + + + + diff --git a/docs/tsconfig.json b/docs/tsconfig.json new file mode 100644 index 0000000..07705ee --- /dev/null +++ b/docs/tsconfig.json @@ -0,0 +1,16 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "baseUrl": "..", + "ignoreDeprecations": "6.0", + "paths": { + "@motajs/*": ["./packages/*/src"], + "@user/*": ["./packages-user/*/src"] + } + }, + "include": [ + "./.vitepress/**/*.ts", + "./.vitepress/**/*.vue", + "../src/types/vite-env.d.ts" + ] +}