diff --git a/dashboard/package.json b/dashboard/package.json index 439cee5c5..d4c0ef485 100644 --- a/dashboard/package.json +++ b/dashboard/package.json @@ -14,7 +14,6 @@ }, "dependencies": { "@guolao/vue-monaco-editor": "^1.5.4", - "@mdit/plugin-katex": "^0.24.1", "@tiptap/starter-kit": "2.1.7", "@tiptap/vue-3": "2.1.7", "apexcharts": "3.42.0", @@ -22,11 +21,13 @@ "axios-mock-adapter": "^1.22.0", "chance": "1.1.11", "date-fns": "2.30.0", + "dompurify": "^3.3.1", "event-source-polyfill": "^1.0.31", "highlight.js": "^11.11.1", "js-md5": "^0.8.3", "katex": "^0.16.27", "lodash": "4.17.21", + "markdown-it": "^14.1.0", "markstream-vue": "0.0.3-beta.7", "mermaid": "^11.12.2", "pinia": "2.1.6", @@ -49,6 +50,8 @@ "@mdi/font": "7.2.96", "@rushstack/eslint-patch": "1.3.3", "@types/chance": "1.1.3", + "@types/dompurify": "^3.0.5", + "@types/markdown-it": "^14.1.2", "@types/node": "^20.5.7", "@vitejs/plugin-vue": "4.3.3", "@vue/eslint-config-prettier": "8.0.0", @@ -65,4 +68,4 @@ "vue-tsc": "1.8.8", "vuetify-loader": "^2.0.0-alpha.9" } -} +} \ No newline at end of file diff --git a/dashboard/src/components/shared/ReadmeDialog.vue b/dashboard/src/components/shared/ReadmeDialog.vue index 12b57363c..04ab7afd1 100644 --- a/dashboard/src/components/shared/ReadmeDialog.vue +++ b/dashboard/src/components/shared/ReadmeDialog.vue @@ -1,29 +1,37 @@ - - +:deep(.markdown-body details) { + margin-bottom: 16px; + border: 1px solid var(--v-theme-border); + border-radius: 6px; + padding: 8px 12px; + background-color: var(--v-theme-surface); +} + +:deep(.markdown-body details[open]) { + padding-bottom: 12px; +} +:deep(.markdown-body summary) { + cursor: pointer; + font-weight: 600; + padding: 4px 0; + list-style: none; + display: flex; + align-items: center; + gap: 6px; +} + +:deep(.markdown-body summary::before) { + content: "▶"; + font-size: 0.75em; + transition: transform 0.2s ease; +} +:deep(.markdown-body details[open] summary::before) { + transform: rotate(90deg); +} +:deep(.markdown-body summary::-webkit-details-marker) { + display: none; +} +:deep(.markdown-body details > *:not(summary)) { + margin-top: 12px; +} + +:deep(.markdown-body .hljs-keyword), +:deep(.markdown-body .hljs-selector-tag), +:deep(.markdown-body .hljs-title), +:deep(.markdown-body .hljs-section), +:deep(.markdown-body .hljs-doctag), +:deep(.markdown-body .hljs-name), +:deep(.markdown-body .hljs-strong) { + font-weight: bold; +} + diff --git a/dashboard/src/i18n/locales/en-US/core/common.json b/dashboard/src/i18n/locales/en-US/core/common.json index a8c27bdc8..787c24669 100644 --- a/dashboard/src/i18n/locales/en-US/core/common.json +++ b/dashboard/src/i18n/locales/en-US/core/common.json @@ -3,6 +3,7 @@ "cancel": "Cancel", "close": "Close", "copy": "Copy", + "copied": "Copied", "delete": "Delete", "edit": "Edit", "add": "Add", diff --git a/dashboard/src/i18n/locales/zh-CN/core/common.json b/dashboard/src/i18n/locales/zh-CN/core/common.json index 4e1712f40..658a93338 100644 --- a/dashboard/src/i18n/locales/zh-CN/core/common.json +++ b/dashboard/src/i18n/locales/zh-CN/core/common.json @@ -3,6 +3,7 @@ "cancel": "取消", "close": "关闭", "copy": "复制", + "copied": "已复制", "delete": "删除", "edit": "编辑", "add": "添加",