From 6bfa1b3cb4e2eb22aa01aa0a6aa9b62aecf6e139 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=9B=AE=E6=A3=83?= Date: Sat, 17 Aug 2024 18:49:18 +0800 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20=E5=85=AC=E5=91=8A?= =?UTF-8?q?=E8=A7=A3=E6=9E=90=E9=87=8D=E6=9E=84=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/css/anno-parser.css | 75 ----------- src/components/anno/ta-parser.vue | 3 + src/components/anno/ta-table.vue | 16 +++ src/components/post/tp-text.vue | 3 +- src/components/post/tp-texts.vue | 4 + src/views/t-anno.vue | 29 +++- src/web/utils/TGUtils.ts | 2 - src/web/utils/annoParser.ts | 211 ++++++++++++++++++++++++++---- src/web/utils/parseAnno.ts | 119 ----------------- 9 files changed, 234 insertions(+), 228 deletions(-) delete mode 100644 src/assets/css/anno-parser.css create mode 100644 src/components/anno/ta-table.vue delete mode 100644 src/web/utils/parseAnno.ts diff --git a/src/assets/css/anno-parser.css b/src/assets/css/anno-parser.css deleted file mode 100644 index 85aab65d..00000000 --- a/src/assets/css/anno-parser.css +++ /dev/null @@ -1,75 +0,0 @@ -/* - * @file assets/css/post-parser.css - * @description 游戏公告解析 css - * @since Beta v0.5.0 - */ - -.anno-body { - width: 800px; - margin: 0 auto; - font-family: var(--font-text); -} - -.anno-title, -.anno-subtitle { - color: var(--common-text-title); - font-family: var(--font-title); -} - -.anno-title { - font-size: 20px; -} - -.anno-subtitle { - font-size: 16px; - opacity: 0.6; -} - -.anno-img { - width: 800px; - max-width: 100%; - height: auto; - border-radius: 10px; - margin: 10px auto; -} - -.anno-content { - line-height: 2; -} - -.anno-content :deep(a) { - color: #00c3ff; - cursor: pointer; - text-decoration: underline solid #00c3ff; - text-underline-position: under; - transform: translateY(2px); -} - -.anno-content :deep(p) { - line-height: 2; -} - -.anno-content :deep(details) { - padding: 10px; - border: 1px var(--common-shadow-2) solid; - border-radius: 10px; - margin: 10px; -} - -.anno-content :deep(details) div { - margin-left: 10px; -} - -.anno-content :deep(details) ::marker { - color: var(--tgc-pink-1); - content: "✧"; -} - -.anno-content :deep(ol) { - list-style: "✧"; -} - -.anno-content :deep(td) { - padding-left: 10px; - line-height: 2; -} diff --git a/src/components/anno/ta-parser.vue b/src/components/anno/ta-parser.vue index 8f365ebe..4ebf47bc 100644 --- a/src/components/anno/ta-parser.vue +++ b/src/components/anno/ta-parser.vue @@ -14,6 +14,8 @@ import TpText from "../post/tp-text.vue"; import TpTexts from "../post/tp-texts.vue"; import TpUnknown from "../post/tp-unknown.vue"; +import TaTable from "./ta-table.vue"; + interface TaParserProps { data: TGApp.BBS.Announcement.ContentItem; } @@ -25,6 +27,7 @@ function getTaName(ta: TGApp.Plugins.Mys.SctPost.Base) { if (typeof ta.insert === "string") return TpText; if ("image" in ta.insert) return TpImage; if ("backup_text" in ta.insert) return TpBackupText; + if ("table" in ta.insert) return TaTable; return TpUnknown; } diff --git a/src/components/anno/ta-table.vue b/src/components/anno/ta-table.vue new file mode 100644 index 00000000..23adb0d9 --- /dev/null +++ b/src/components/anno/ta-table.vue @@ -0,0 +1,16 @@ + + diff --git a/src/components/post/tp-text.vue b/src/components/post/tp-text.vue index f14a7c2f..1be8e7fb 100644 --- a/src/components/post/tp-text.vue +++ b/src/components/post/tp-text.vue @@ -47,7 +47,6 @@ const props = defineProps(); const mode = ref("text"); const localEmojis = ref(localStorage.getItem("emojis")); const emojis = ref([]); -const router = useRouter(); console.log("tpText", JSON.stringify(props.data.insert), toRaw(props.data)?.attributes); @@ -100,7 +99,7 @@ async function toLink() { const link = props.data.attributes.link; const isPost = await parsePost(link); if (isPost !== false) { - await router.push({ + await useRouter().push({ name: "帖子详情", params: { post_id: isPost, diff --git a/src/components/post/tp-texts.vue b/src/components/post/tp-texts.vue index 08bb1c28..0cda695f 100644 --- a/src/components/post/tp-texts.vue +++ b/src/components/post/tp-texts.vue @@ -12,6 +12,7 @@ import { StyleValue } from "vue"; import type { Component } from "vue"; +import TpImage from "./tp-image.vue"; import TpMention, { type TpMention as TpMentionType } from "./tp-mention.vue"; import TpText, { type TpText as TpTextType } from "./tp-text.vue"; @@ -29,6 +30,9 @@ function getComp(text: TpTextType | TpMentionType): Component { if (typeof text.insert === "string") { return TpText; } + if ("image" in text.insert) { + return TpImage; + } return TpMention; } diff --git a/src/views/t-anno.vue b/src/views/t-anno.vue index 763bd579..29bc8f2b 100644 --- a/src/views/t-anno.vue +++ b/src/views/t-anno.vue @@ -1,5 +1,3 @@ - -