@velonor/theme 1.0.1 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/archive.data.ts +5 -2
- package/src/categories.data.ts +5 -2
- package/src/components/Archive.vue +2 -2
- package/src/components/UserCard.vue +2 -2
- package/src/composables/useCategories.ts +1 -1
- package/src/page-links.data.ts +5 -2
- package/src/posts.data.d.ts +5 -0
- package/src/tags.data.ts +5 -2
- package/src/types/posts-data.d.ts +7 -0
package/package.json
CHANGED
package/src/archive.data.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
import { createArchiveLoader } from '@velonor/engine/loader';
|
|
2
|
+
import type { ArchiveIndex } from '@velonor/engine/loader';
|
|
3
|
+
|
|
4
|
+
// VitePress injects `data` at build/dev time; this is for TS typing.
|
|
5
|
+
export const data = null as unknown as ArchiveIndex;
|
|
2
6
|
|
|
3
7
|
export default createArchiveLoader('posts/**/*.md');
|
|
4
|
-
|
package/src/categories.data.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
import { createCategoriesLoader } from '@velonor/engine/loader';
|
|
2
|
+
import type { CategoriesIndex } from '@velonor/engine/loader';
|
|
3
|
+
|
|
4
|
+
// VitePress injects `data` at build/dev time; this is for TS typing.
|
|
5
|
+
export const data = null as unknown as CategoriesIndex;
|
|
2
6
|
|
|
3
7
|
export default createCategoriesLoader('posts/**/*.md');
|
|
4
|
-
|
|
@@ -78,13 +78,14 @@
|
|
|
78
78
|
</ThemeLayout>
|
|
79
79
|
</template>
|
|
80
80
|
|
|
81
|
+
|
|
81
82
|
<script setup lang="ts">
|
|
82
|
-
import { data as archiveIndex } from '../archive.data';
|
|
83
83
|
import { withBase, useData } from 'vitepress';
|
|
84
84
|
import ThemeLayout from './ThemeLayout.vue';
|
|
85
85
|
import { type BlogPost, getLocalizedString } from '@velonor/engine';
|
|
86
86
|
import { computed } from 'vue';
|
|
87
87
|
import { data as pageLinks } from '../page-links.data';
|
|
88
|
+
import { data as archiveIndex } from '../archive.data';
|
|
88
89
|
|
|
89
90
|
interface MonthGroup {
|
|
90
91
|
month: number;
|
|
@@ -118,4 +119,3 @@ const formatMonthDay = (value: unknown) => {
|
|
|
118
119
|
return `${month}-${day}`;
|
|
119
120
|
};
|
|
120
121
|
</script>
|
|
121
|
-
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<div class="hidden md:flex w-full md:rounded-2xl p-6 flex-col justify-center items-center gap-2 dark:shadow-none shadow-lg border-2 border-[var(--blog-border-c)] bg-[var(--vp-c-blog-bg)]/95 backdrop-blur-md"
|
|
4
4
|
v-if="!props.isMobile && !userConfig?.hidden">
|
|
5
5
|
<!-- Avatar -->
|
|
6
|
-
<img :src="userConfig?.avatar" v-if="userConfig?.avatar" alt="avatar"
|
|
6
|
+
<img :src="typeof userConfig?.avatar === 'string' ? userConfig.avatar : userConfig?.avatar?.light || userConfig?.avatar?.dark" v-if="userConfig?.avatar" alt="avatar"
|
|
7
7
|
class="object-cover object-center w-24 h-24 rounded-full ring-2 ring-[var(--blog-border-c)]" />
|
|
8
8
|
<div class="mt-3" v-else></div>
|
|
9
9
|
<!-- Name -->
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
</div>
|
|
27
27
|
<!-- 移动端个人信息显示 -->
|
|
28
28
|
<div class="flex md:hidden justify-center items-center w-full mt-8 flex-col gap-3" v-else-if="!userConfig?.hidden">
|
|
29
|
-
<img :src="userConfig?.avatar" v-if="userConfig?.avatar" alt="avatar"
|
|
29
|
+
<img :src="typeof userConfig?.avatar === 'string' ? userConfig.avatar : userConfig?.avatar?.light || userConfig?.avatar?.dark" v-if="userConfig?.avatar" alt="avatar"
|
|
30
30
|
class="object-cover object-center w-32 rounded-full" />
|
|
31
31
|
<!-- 昵称 -->
|
|
32
32
|
<div class="text-2xl font-bold text-center">{{ userConfig?.name }}</div>
|
package/src/page-links.data.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
import { createPageLinksLoader } from '@velonor/engine/loader';
|
|
2
|
+
import type { PageLinks } from '@velonor/engine/loader';
|
|
3
|
+
|
|
4
|
+
// VitePress injects `data` at build/dev time; this is for TS typing.
|
|
5
|
+
export const data = null as unknown as PageLinks;
|
|
2
6
|
|
|
3
7
|
export default createPageLinksLoader(['**/*.md']);
|
|
4
|
-
|
package/src/tags.data.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
import { createTagsLoader } from '@velonor/engine/loader';
|
|
2
|
+
import type { TagsIndex } from '@velonor/engine/loader';
|
|
3
|
+
|
|
4
|
+
// VitePress injects `data` at build/dev time; this is for TS typing.
|
|
5
|
+
export const data = null as unknown as TagsIndex;
|
|
2
6
|
|
|
3
7
|
export default createTagsLoader('posts/**/*.md');
|
|
4
|
-
|