From 3918df5bfd0692a48da4d48bbee35535b9b25f60 Mon Sep 17 00:00:00 2001 From: Sakurasan <26715255+Sakurasan@users.noreply.github.com> Date: Mon, 21 Sep 2026 22:42:47 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BC=96=E8=BE=91=E5=99=A8=20Markdown=20?= =?UTF-8?q?=E5=B7=A5=E5=85=B7=E6=A0=8F=20+=20=E5=90=8E=E5=8F=B0=E4=B8=BB?= =?UTF-8?q?=E9=A2=98=E5=88=87=E6=8D=A2=E7=A7=BB=E5=85=A5=E4=BE=A7=E6=A0=8F?= =?UTF-8?q?=20footer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - EditorView:新增工具栏(粗体/斜体/删除线/行内码/代码块/链接/图片等选区插入),移除封面 URL 输入框 - AdminLayout:删除无样式的 .theme-zone,ThemeSwitcher 并入 footer 行(左账号信息、右主题按钮) --- frontend/src/admin/AdminLayout.vue | 10 +- frontend/src/admin/EditorView.vue | 287 ++++++++++++++++++++++++++--- frontend/src/styles.css | 89 ++++++++- 3 files changed, 351 insertions(+), 35 deletions(-) diff --git a/frontend/src/admin/AdminLayout.vue b/frontend/src/admin/AdminLayout.vue index ab56572..cbdff79 100644 --- a/frontend/src/admin/AdminLayout.vue +++ b/frontend/src/admin/AdminLayout.vue @@ -128,12 +128,12 @@ watch(() => route.path, () => loadCounts()) 查看前台 -
回车或失焦即生效;前台卡片与详情页头图会用到。
+{{ form.kind === 'short' ? '短文' : '长文' }}
diff --git a/frontend/src/styles.css b/frontend/src/styles.css index 2093117..97d3cf0 100644 --- a/frontend/src/styles.css +++ b/frontend/src/styles.css @@ -1161,6 +1161,14 @@ h4 { padding: 14px 18px; font-size: 12.5px; color: var(--admin-muted); + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; +} + +.admin-side .footer .meta { + min-width: 0; } .admin-side .footer .who { @@ -1868,7 +1876,7 @@ h4 { width: 100%; min-height: 460px; border: 1px solid var(--admin-line); - border-radius: 0 3px 3px 3px; + border-radius: 3px; background: var(--admin-card); padding: 18px 22px; font-family: var(--mono); @@ -1883,6 +1891,85 @@ h4 { border-color: var(--admin-accent); } +/* ---------- 工具栏:Markdown 模式 ---------- */ + +.toolbar { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 10px; + padding: 6px 8px; + border: 1px solid var(--admin-line); + border-bottom: 0; + border-radius: 3px 3px 0 0; + background: var(--admin-paper-sunken); +} + +.tb-group { + display: inline-flex; + align-items: center; + gap: 2px; +} + +.tb-group + .tb-group { + border-left: 1px solid var(--admin-line); + padding-left: 10px; + margin-left: 2px; +} + +.tb-label { + font-size: 11px; + letter-spacing: 0.06em; + color: var(--admin-muted); + margin-right: 4px; + text-transform: uppercase; +} + +.tb-btn { + width: 28px; + height: 28px; + border: 1px solid transparent; + border-radius: 3px; + background: transparent; + color: var(--admin-ink-soft); + cursor: pointer; + font-size: 12.5px; + display: inline-flex; + align-items: center; + justify-content: center; + padding: 0; + transition: color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease; +} + +.tb-btn:hover { + background: var(--admin-card); + border-color: var(--admin-line); + color: var(--admin-ink); +} + +.tb-btn.italic { + font-style: italic; +} + +.tb-btn.mono { + font-family: var(--mono); + font-size: 11.5px; +} + +.tb-popover { + display: flex; + gap: 6px; + padding: 8px; + border: 1px solid var(--admin-line); + border-top: 0; + background: var(--admin-paper-sunken); +} + +.tb-popover .input { + flex: 1; + font-size: 13px; +} + .outline { position: sticky; top: 84px;