From 3313c7180509868df9d0a9d4836b1fbe0d2dc468 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Fri, 3 Apr 2026 07:10:12 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E5=BC=B9=E7=AA=97=E6=94=AF=E6=8C=81Markdown=E6=B8=B2=E6=9F=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- src/components/dialog/AboutDialog.vue | 118 ++++++++++++++++++++++++- src/components/misc/VersionHistory.vue | 98 +++++++++++++++++++- 3 files changed, 212 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index a527dc75..d33be017 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "moviepilot", - "version": "2.9.24", + "version": "2.9.25", "private": true, "type": "module", "bin": "dist/service.js", diff --git a/src/components/dialog/AboutDialog.vue b/src/components/dialog/AboutDialog.vue index 04ac0fdf..b700e4fe 100644 --- a/src/components/dialog/AboutDialog.vue +++ b/src/components/dialog/AboutDialog.vue @@ -2,6 +2,8 @@ import { formatDateDifference } from '@/@core/utils/formatters' import api from '@/api' import { clearCachesAndServiceWorker, reloadWithTimestamp } from '@/composables/useVersionChecker' +import MarkdownIt from 'markdown-it' +import mdLinkAttributes from 'markdown-it-link-attributes' import { useI18n } from 'vue-i18n' import { useDisplay } from 'vuetify' @@ -17,6 +19,21 @@ const emit = defineEmits(['close']) // 显示器 const display = useDisplay() +// 初始化 markdown-it +const md = new MarkdownIt({ + html: true, + linkify: true, + typographer: true, +}) + +// 插件:链接在新窗口打开 +md.use(mdLinkAttributes, { + attrs: { + target: '_blank', + rel: 'noopener noreferrer', + }, +}) + // 系统环境变量 const systemEnv = ref({}) @@ -70,7 +87,7 @@ const releaseDialogBody = ref('') // 打开日志对话框 function showReleaseDialog(title: string, body: string) { releaseDialogTitle.value = title - releaseDialogBody.value = body.replaceAll('\r\n', '
') + releaseDialogBody.value = body ? md.render(body) : '' releaseDialog.value = true } @@ -393,7 +410,7 @@ onMounted(() => { {{ releaseDialogTitle }} {{ t('setting.about.changelog') }} - + @@ -411,4 +428,101 @@ onMounted(() => { .section { margin-block: 0.5rem 2.5rem; } + +.markdown-body :deep(h1), +.markdown-body :deep(h2), +.markdown-body :deep(h3) { + margin-block: 0.5rem; + font-weight: 600; +} + +.markdown-body :deep(h1) { + font-size: 1.5rem; +} + +.markdown-body :deep(h2) { + font-size: 1.25rem; +} + +.markdown-body :deep(h3) { + font-size: 1.1rem; +} + +.markdown-body :deep(ul), +.markdown-body :deep(ol) { + padding-inline-start: 1.5rem; + margin-block: 0.5rem; +} + +.markdown-body :deep(li) { + margin-block: 0.25rem; +} + +.markdown-body :deep(p) { + margin-block: 0.5rem; +} + +.markdown-body :deep(a) { + color: rgb(99 102 241); + text-decoration: none; +} + +.markdown-body :deep(a:hover) { + text-decoration: underline; +} + +.markdown-body :deep(code) { + padding: 0.15rem 0.4rem; + border-radius: 0.25rem; + font-size: 0.875em; + background-color: rgba(127, 127, 127, 0.15); +} + +.markdown-body :deep(pre) { + padding: 0.75rem 1rem; + margin-block: 0.5rem; + overflow-x: auto; + border-radius: 0.375rem; + background-color: rgba(127, 127, 127, 0.15); +} + +.markdown-body :deep(pre code) { + padding: 0; + background-color: transparent; +} + +.markdown-body :deep(blockquote) { + padding-inline-start: 1rem; + margin-block: 0.5rem; + border-inline-start: 3px solid rgba(127, 127, 127, 0.4); + color: rgba(127, 127, 127, 0.8); +} + +.markdown-body :deep(hr) { + margin-block: 1rem; + border: none; + border-block-start: 1px solid rgba(127, 127, 127, 0.3); +} + +.markdown-body :deep(table) { + width: 100%; + margin-block: 0.5rem; + border-collapse: collapse; +} + +.markdown-body :deep(th), +.markdown-body :deep(td) { + padding: 0.4rem 0.75rem; + border: 1px solid rgba(127, 127, 127, 0.3); +} + +.markdown-body :deep(th) { + font-weight: 600; + background-color: rgba(127, 127, 127, 0.1); +} + +.markdown-body :deep(img) { + max-width: 100%; + height: auto; +} diff --git a/src/components/misc/VersionHistory.vue b/src/components/misc/VersionHistory.vue index c25f1b79..cafcba67 100644 --- a/src/components/misc/VersionHistory.vue +++ b/src/components/misc/VersionHistory.vue @@ -1,5 +1,28 @@