diff --git a/app/assets/scss/markdown/green.scss b/app/assets/scss/markdown/green.scss
index 871f046..3e14c73 100644
--- a/app/assets/scss/markdown/green.scss
+++ b/app/assets/scss/markdown/green.scss
@@ -32,7 +32,7 @@
--markdown-padding: 1.6em;
}
-.dark .markdown-body {
+:where(.dark, [data-theme='dark'], [data-color-mode='dark']) .markdown-body {
--color-fg-default: #e5e7eb;
--color-fg-muted: #c0c7d1;
--color-fg-subtle: #9ca3af;
@@ -293,7 +293,7 @@
@include chinese;
}
-.dark .markdown-body.green {
+:where(.dark, [data-theme='dark'], [data-color-mode='dark']) .markdown-body.green {
.code-block-wrapper {
border-color: var(--code-border);
background: var(--code-bg);
diff --git a/app/assets/scss/markdown/highlight.scss b/app/assets/scss/markdown/highlight.scss
index 8b4081b..3cfa842 100644
--- a/app/assets/scss/markdown/highlight.scss
+++ b/app/assets/scss/markdown/highlight.scss
@@ -3,6 +3,7 @@
pre {
code.hljs {
color: #1f2937;
+ background: transparent;
}
.hljs-comment,
@@ -52,11 +53,12 @@
}
}
-.dark .markdown-body {
+:where(.dark, [data-theme='dark'], [data-color-mode='dark']) .markdown-body {
.code-block-wrapper {
pre {
code.hljs {
color: #e5e7eb;
+ background: transparent;
}
.hljs-comment,
diff --git a/app/pages/@[publicSlug]/about/index.vue b/app/pages/@[publicSlug]/about/index.vue
index 37cb7d4..140f8fc 100644
--- a/app/pages/@[publicSlug]/about/index.vue
+++ b/app/pages/@[publicSlug]/about/index.vue
@@ -64,10 +64,5 @@ usePageTitle(() =>
class="prose prose-neutral dark:prose-invert max-w-none prose-img:rounded-lg"
v-html="renderedBio"
/>
-
-
- 返回主页
-
-
diff --git a/app/pages/@[publicSlug]/posts/[postSlug].vue b/app/pages/@[publicSlug]/posts/[postSlug].vue
index e2e6d01..4b13c24 100644
--- a/app/pages/@[publicSlug]/posts/[postSlug].vue
+++ b/app/pages/@[publicSlug]/posts/[postSlug].vue
@@ -116,9 +116,6 @@ function exportMarkdown(): void {
-
- ← 返回主页
-
) => {
-
-
-
- 返回首页
-
-
-
diff --git a/app/pages/me/admin/media-storage.vue b/app/pages/me/admin/media-storage.vue
index ece5c46..80f26e3 100644
--- a/app/pages/me/admin/media-storage.vue
+++ b/app/pages/me/admin/media-storage.vue
@@ -201,9 +201,6 @@ onMounted(async () => {
对有引用但缺文件的记录可使用重新上传按原 storage_key 写回 WebP,不破坏文章/资料中的链接。
-
- 返回控制台
-
diff --git a/app/pages/me/media/orphans.vue b/app/pages/me/media/orphans.vue
index d2ff9f7..f318aa7 100644
--- a/app/pages/me/media/orphans.vue
+++ b/app/pages/me/media/orphans.vue
@@ -165,9 +165,6 @@ async function executeDelete() {
未被任何文章引用的上传图片;宽限期结束后可删除。
-
- 返回控制台
-
diff --git a/app/pages/me/posts/[id].vue b/app/pages/me/posts/[id].vue
index 0e00bc2..9ef0640 100644
--- a/app/pages/me/posts/[id].vue
+++ b/app/pages/me/posts/[id].vue
@@ -26,6 +26,9 @@ const visibilityItems = [
const bodyLength = computed(() => state.bodyMarkdown.trim().length)
const publicPostHref = computed(() => {
+ if (state.visibility !== 'public') {
+ return `/me/posts/preview/${id.value}`
+ }
const ps = user.value?.publicSlug
if (!ps || !state.slug) {
return ''
@@ -158,12 +161,6 @@ async function copyShareUrl() {
>
详情
-
- 返回列表
-
-
@@ -271,9 +268,6 @@ async function copyShareUrl() {
保存文章
-
- 取消并返回
-
删除文章
diff --git a/app/pages/me/posts/index.vue b/app/pages/me/posts/index.vue
index be065c4..6b403cd 100644
--- a/app/pages/me/posts/index.vue
+++ b/app/pages/me/posts/index.vue
@@ -3,7 +3,8 @@ import { useAuthSession } from '../../../composables/useAuthSession'
usePageTitle('我的文章')
-type Row = { id: number; title: string; slug: string; visibility: string }
+type Visibility = 'private' | 'unlisted' | 'public'
+type Row = { id: number; title: string; slug: string; visibility: Visibility }
type ViewMode = 'list' | 'card'
const posts = ref([])
@@ -26,12 +27,15 @@ onMounted(() => {
void load()
})
-function postDetailHref(slug: string) {
+function postDetailHref(post: Row) {
+ if (post.visibility !== 'public') {
+ return `/me/posts/preview/${post.id}`
+ }
const ps = user.value?.publicSlug
- if (!ps || !slug) {
+ if (!ps || !post.slug) {
return ''
}
- return `/@${ps}/posts/${encodeURIComponent(slug)}`
+ return `/@${ps}/posts/${encodeURIComponent(post.slug)}`
}
function visibilityLabel(visibility: string) {
@@ -52,8 +56,9 @@ function visibilityLabel(visibility: string) {
文章
-
+
卡片
-
+
新建
@@ -98,8 +104,8 @@ function visibilityLabel(visibility: string) {
创建文章
-
- 取消并返回
-
diff --git a/app/pages/me/posts/preview/[id].vue b/app/pages/me/posts/preview/[id].vue
new file mode 100644
index 0000000..32dd3ab
--- /dev/null
+++ b/app/pages/me/posts/preview/[id].vue
@@ -0,0 +1,101 @@
+
+
+
+
+
+ 加载中…
+
+
+
+
+
+ {{ visibilityLabel }}
+
+
+ 编辑
+
+
+
+
![]()
+
+
+ 发布于
+
+
+
+ {{ data.title }}
+
+
+ {{ data.excerpt }}
+
+
+
+
+
diff --git a/app/pages/register/index.vue b/app/pages/register/index.vue
index 9f55492..8123958 100644
--- a/app/pages/register/index.vue
+++ b/app/pages/register/index.vue
@@ -119,13 +119,6 @@ const onSubmit = async (_event: FormSubmitEvent) => {
-
-
-
- 返回首页
-
-
-
diff --git a/packages/drizzle-pkg/db.sqlite b/packages/drizzle-pkg/db.sqlite
index 4bc0c41..7a72564 100644
Binary files a/packages/drizzle-pkg/db.sqlite and b/packages/drizzle-pkg/db.sqlite differ