diff --git a/package-lock.json b/package-lock.json index 2dce99e..1876155 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,8 +10,10 @@ "dependencies": { "@svgdotjs/svg.js": "^3.2.4", "@types/lodash": "^4.17.16", + "all": "^0.0.0", "lodash": "^4.17.21", "log-symbols": "^7.0.0", + "marked": "^12.0.0", "mathjs": "^14.4.0", "pinia": "^3.0.1", "tinypool": "^1.0.2", @@ -1993,6 +1995,12 @@ "dev": true, "license": "MIT" }, + "node_modules/all": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/all/-/all-0.0.0.tgz", + "integrity": "sha512-0oKlfNVv2d+d7c1gwjGspzgbwot47PGQ4b3v1ccx4mR8l9P/Y6E6Dr/yE8lNT63EcAKEbHo6UG3odDpC/NQcKw==", + "license": "MIT" + }, "node_modules/ansi-styles": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", @@ -3061,6 +3069,18 @@ "@jridgewell/sourcemap-codec": "^1.5.0" } }, + "node_modules/marked": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/marked/-/marked-12.0.2.tgz", + "integrity": "sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q==", + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 18" + } + }, "node_modules/mathjs": { "version": "14.4.0", "resolved": "https://registry.npmjs.org/mathjs/-/mathjs-14.4.0.tgz", diff --git a/package.json b/package.json index 85e520b..8aab200 100644 --- a/package.json +++ b/package.json @@ -16,8 +16,10 @@ "dependencies": { "@svgdotjs/svg.js": "^3.2.4", "@types/lodash": "^4.17.16", + "all": "^0.0.0", "lodash": "^4.17.21", "log-symbols": "^7.0.0", + "marked": "^12.0.0", "mathjs": "^14.4.0", "pinia": "^3.0.1", "tinypool": "^1.0.2", diff --git a/src/components/DiagramCanvas.vue b/src/components/DiagramCanvas.vue index a6432e5..a30b287 100644 --- a/src/components/DiagramCanvas.vue +++ b/src/components/DiagramCanvas.vue @@ -3,8 +3,7 @@ @mousedown="handleCanvasMouseDown" @mousedown.middle.prevent="startMiddleDrag" @wheel.prevent="onZoom" - @contextmenu.prevent="handleContextMenu"> - + @contextmenu.prevent="handleContextMenu">
@@ -148,11 +152,12 @@ function handleContextMenu(e: MouseEvent) { } // 定义组件发出的事件 -const emit = defineEmits(['diagram-updated', 'component-selected', 'component-moved', 'component-delete', 'wire-created', 'wire-deleted', 'load-component-module', 'open-components']); +const emit = defineEmits(['diagram-updated', 'component-selected', 'component-moved', 'component-delete', 'wire-created', 'wire-deleted', 'load-component-module', 'open-components', 'toggle-doc-panel']); // 定义组件接受的属性 const props = defineProps<{ - componentModules: Record + componentModules: Record; + showDocPanel?: boolean; // 添加属性接收文档面板的显示状态 }>(); // --- 画布状态 --- diff --git a/src/components/MarkdownRenderer.vue b/src/components/MarkdownRenderer.vue new file mode 100644 index 0000000..8e631a2 --- /dev/null +++ b/src/components/MarkdownRenderer.vue @@ -0,0 +1,207 @@ + + + + + diff --git a/src/views/ProjectView.vue b/src/views/ProjectView.vue index b1a2e12..f93a4a9 100644 --- a/src/views/ProjectView.vue +++ b/src/views/ProjectView.vue @@ -1,13 +1,12 @@