valaxy-theme-yun 0.19.13 → 0.20.0-beta.1
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/App.vue +30 -4
- package/client/constants/index.ts +13 -0
- package/components/ValaxyMain.vue +48 -52
- package/components/YunAside.vue +66 -43
- package/components/YunBackToTop.vue +11 -4
- package/components/YunBanner.vue +31 -15
- package/components/YunBg.vue +2 -0
- package/components/YunCard.vue +5 -1
- package/components/YunCategories.vue +14 -34
- package/components/YunCategory.vue +42 -11
- package/components/YunClassifyPopover.vue +59 -0
- package/components/YunCloud.vue +5 -10
- package/components/YunConfig.vue +2 -19
- package/components/YunDebug.vue +47 -0
- package/components/YunDock.vue +223 -0
- package/components/YunFooter.vue +56 -4
- package/components/YunFullscreenMenu.vue +57 -0
- package/components/YunGirlItem.vue +98 -0
- package/components/YunGirls.vue +2 -73
- package/components/YunGoDown.vue +8 -15
- package/components/YunLinkItem.vue +62 -0
- package/components/YunLinks.vue +15 -47
- package/components/YunNavMenu.vue +125 -0
- package/components/YunOutline.vue +1 -2
- package/components/YunOverlay.vue +31 -0
- package/components/YunOverview.vue +2 -74
- package/components/YunPageHeader.vue +1 -1
- package/components/YunPagination.vue +105 -0
- package/components/YunPostCard.vue +32 -3
- package/components/YunPostCategories.vue +3 -3
- package/components/YunPostCollapse.vue +7 -72
- package/components/YunPostCollapseItem.vue +137 -0
- package/components/YunPostDateMeta.vue +30 -0
- package/components/YunPostList.vue +6 -11
- package/components/YunPostMeta.vue +31 -39
- package/components/YunPostTags.vue +2 -2
- package/components/YunPostsInfo.vue +41 -0
- package/components/YunPrologue.vue +24 -0
- package/components/YunSearchBtn.vue +8 -6
- package/components/YunSelect.vue +1 -11
- package/components/YunSidebar.vue +7 -4
- package/components/YunSidebarCard.vue +10 -0
- package/components/YunSidebarNav.vue +0 -1
- package/components/YunSiteInfo.vue +72 -0
- package/components/YunSponsor.vue +21 -6
- package/components/animation/LineBurstEffects.vue +75 -0
- package/components/author/YunAuthorAvatar.vue +12 -0
- package/components/author/YunAuthorIntro.vue +11 -0
- package/components/author/YunAuthorName.vue +14 -0
- package/components/config/YunToggleDark.vue +37 -0
- package/components/layout/YunLayoutLeft.vue +12 -0
- package/components/layout/YunLayoutRight.vue +21 -0
- package/components/layout/YunLayoutWrapper.vue +17 -0
- package/components/menu/YunNavMenuItem.vue +22 -0
- package/components/menu/YunNavMenuTitle.vue +86 -0
- package/components/menu/YunPostClassifyNavItem.vue +30 -0
- package/components/page/YunPageHeaderGradient.vue +38 -0
- package/components/project/YunProjectCard.vue +94 -0
- package/components/project/YunProjectCollection.vue +15 -0
- package/components/project/YunProjectLinkItem.vue +60 -0
- package/components/project/YunProjectToggleButton.vue +16 -0
- package/components/project/YunProjects.vue +48 -0
- package/components/prologue/PrologueSocialIcon.vue +58 -0
- package/components/prologue/PrologueSocialLinks.vue +16 -0
- package/components/prologue/PrologueSquare.vue +144 -0
- package/components/prologue/YunAEFrame.vue +155 -0
- package/components/prologue/YunAERect.vue +127 -0
- package/components/site/YunFullscreenMenuItem.vue +26 -0
- package/components/site/YunFullscreenMenuList.vue +19 -0
- package/components/site/YunSiteLinkItem.vue +26 -0
- package/components/site/YunSiteLinks.vue +19 -0
- package/components/site/YunSiteTitle.vue +59 -0
- package/components/third/YunWalineMeta.vue +17 -5
- package/docs/zh-CN/config.md +0 -3
- package/layouts/archives.vue +33 -21
- package/layouts/categories.vue +43 -31
- package/layouts/default.vue +10 -5
- package/layouts/empty.vue +3 -0
- package/layouts/home.vue +12 -5
- package/layouts/post.vue +23 -20
- package/layouts/posts.vue +10 -0
- package/layouts/projects.vue +25 -0
- package/layouts/tags.vue +45 -41
- package/node/config.ts +2 -5
- package/package.json +10 -5
- package/pages/page/[page].vue +3 -6
- package/pages/posts/index.vue +11 -0
- package/setup/main.ts +51 -9
- package/stores/app.ts +25 -3
- package/styles/animations/index.scss +36 -0
- package/styles/common/markdown.scss +4 -0
- package/styles/css-vars.scss +19 -1
- package/styles/global.scss +8 -0
- package/styles/index.scss +1 -0
- package/styles/layout/index.scss +3 -0
- package/styles/modules/prologue.scss +1 -0
- package/styles/primevue/index.ts +7 -0
- package/styles/primevue/tooltip.scss +55 -0
- package/styles/primevue/tooltip.ts +14 -0
- package/styles/vars.scss +23 -2
- package/styles/widgets/banner.scss +26 -6
- package/types/index.d.ts +53 -5
- package/types/projects.ts +48 -0
- package/unocss.config.ts +1 -1
- package/utils/animation.ts +33 -0
- package/utils/index.ts +2 -0
@@ -0,0 +1,59 @@
|
|
1
|
+
<script setup lang="ts">
|
2
|
+
import { useSiteConfig } from 'valaxy'
|
3
|
+
import { useRouter } from 'vue-router'
|
4
|
+
|
5
|
+
const router = useRouter()
|
6
|
+
const siteConfig = useSiteConfig()
|
7
|
+
</script>
|
8
|
+
|
9
|
+
<template>
|
10
|
+
<RouterLink
|
11
|
+
v-if="router.hasRoute('/about/site')" to="/about/site"
|
12
|
+
class="site-name"
|
13
|
+
>
|
14
|
+
{{ siteConfig.title }}
|
15
|
+
</RouterLink>
|
16
|
+
<span v-else class="site-name">{{ siteConfig.title }}</span>
|
17
|
+
</template>
|
18
|
+
|
19
|
+
<style lang="scss">
|
20
|
+
.site-name {
|
21
|
+
--title-padding: -15px;
|
22
|
+
|
23
|
+
display: inline-flex;
|
24
|
+
color: var(--va-c-text);
|
25
|
+
position: relative;
|
26
|
+
|
27
|
+
&::before,
|
28
|
+
&::after {
|
29
|
+
content: "";
|
30
|
+
position: absolute;
|
31
|
+
width: 10px;
|
32
|
+
height: 10px;
|
33
|
+
opacity: 0;
|
34
|
+
border: 2px solid;
|
35
|
+
transition: 0.3s;
|
36
|
+
transition-timing-function: cubic-bezier(0.17, 0.67, 0.05, 1.29);
|
37
|
+
}
|
38
|
+
|
39
|
+
&::before {
|
40
|
+
top: 0;
|
41
|
+
left: var(--title-padding);
|
42
|
+
border-width: 2px 0 0 2px;
|
43
|
+
transform: translate3d(10px, 10px, 0);
|
44
|
+
}
|
45
|
+
|
46
|
+
&::after {
|
47
|
+
right: var(--title-padding);
|
48
|
+
bottom: 0;
|
49
|
+
border-width: 0 2px 2px 0;
|
50
|
+
transform: translate3d(-10px, -10px, 0);
|
51
|
+
}
|
52
|
+
|
53
|
+
&:hover::before,
|
54
|
+
&:hover::after {
|
55
|
+
opacity: 1;
|
56
|
+
transform: translate3d(0, 0, 0);
|
57
|
+
}
|
58
|
+
}
|
59
|
+
</style>
|
@@ -14,14 +14,26 @@ const { t } = useI18n()
|
|
14
14
|
</script>
|
15
15
|
|
16
16
|
<template>
|
17
|
-
<div v-if="addonWaline && addonWaline.options"
|
18
|
-
<div
|
17
|
+
<div v-if="addonWaline && addonWaline.options" class="inline-flex gap-4" text="sm" h="5">
|
18
|
+
<div
|
19
|
+
v-if="addonWaline.options.pageview" inline-flex justify="center" items="center"
|
20
|
+
:title="t('post.pageview_count')"
|
21
|
+
>
|
19
22
|
<div inline-flex i-ri-eye-line />
|
20
|
-
<span
|
23
|
+
<span
|
24
|
+
ml-1 inline-flex class="waline-pageview-count op-80"
|
25
|
+
:data-path="route.path"
|
26
|
+
/>
|
21
27
|
</div>
|
22
|
-
<div
|
28
|
+
<div
|
29
|
+
v-if="addonWaline.options.comment" inline-flex justify="center" items="center"
|
30
|
+
:title="t('post.comment_count')"
|
31
|
+
>
|
23
32
|
<div inline-flex i-ri-chat-4-line />
|
24
|
-
<span
|
33
|
+
<span
|
34
|
+
ml-1 inline-flex class="waline-comment-count op-80"
|
35
|
+
:data-path="route.path"
|
36
|
+
/>
|
25
37
|
</div>
|
26
38
|
</div>
|
27
39
|
</template>
|
package/docs/zh-CN/config.md
CHANGED
package/layouts/archives.vue
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
<script lang="ts" setup>
|
2
2
|
import { defineWebPage, useSchemaOrg } from '@unhead/schema-org'
|
3
3
|
import { useFrontmatter, usePostTitle, useSiteStore } from 'valaxy'
|
4
|
+
import { computed } from 'vue'
|
4
5
|
import { useI18n } from 'vue-i18n'
|
5
6
|
|
6
7
|
const { t } = useI18n()
|
@@ -15,28 +16,39 @@ useSchemaOrg([
|
|
15
16
|
'@type': 'CollectionPage',
|
16
17
|
}),
|
17
18
|
])
|
19
|
+
|
20
|
+
const pageIcon = computed(() => {
|
21
|
+
if (!frontmatter.value.icon)
|
22
|
+
// eslint-disable-next-line vue/no-side-effects-in-computed-properties
|
23
|
+
frontmatter.value.icon = 'i-ri-archive-line'
|
24
|
+
return frontmatter.value.icon
|
25
|
+
})
|
18
26
|
</script>
|
19
27
|
|
20
28
|
<template>
|
21
|
-
<
|
22
|
-
<
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
</
|
40
|
-
</
|
41
|
-
|
29
|
+
<YunLayoutWrapper>
|
30
|
+
<YunLayoutLeft />
|
31
|
+
|
32
|
+
<RouterView v-slot="{ Component }">
|
33
|
+
<component :is="Component">
|
34
|
+
<template #main-header>
|
35
|
+
<YunPageHeader
|
36
|
+
class="mt-8"
|
37
|
+
:title="title || t('menu.archives')"
|
38
|
+
:icon="pageIcon"
|
39
|
+
:color="frontmatter.color"
|
40
|
+
:page-title-class="frontmatter.pageTitleClass"
|
41
|
+
/>
|
42
|
+
</template>
|
43
|
+
<template #main-content>
|
44
|
+
<RouterView />
|
45
|
+
<YunPostCollapse :posts="site.postList" />
|
46
|
+
</template>
|
47
|
+
</component>
|
48
|
+
</RouterView>
|
49
|
+
|
50
|
+
<YunLayoutRight />
|
51
|
+
</YunLayoutWrapper>
|
52
|
+
|
53
|
+
<YunFooter />
|
42
54
|
</template>
|
package/layouts/categories.vue
CHANGED
@@ -14,6 +14,13 @@ const route = useRoute()
|
|
14
14
|
const curCategory = computed(() => (route.query.category as string || ''))
|
15
15
|
const categories = useCategories()
|
16
16
|
|
17
|
+
const pageIcon = computed(() => {
|
18
|
+
if (!frontmatter.value.icon)
|
19
|
+
// eslint-disable-next-line vue/no-side-effects-in-computed-properties
|
20
|
+
frontmatter.value.icon = 'i-ri-folder-2-line'
|
21
|
+
return frontmatter.value.icon
|
22
|
+
})
|
23
|
+
|
17
24
|
const posts = computed(() => {
|
18
25
|
const list = site.postList.filter((post) => {
|
19
26
|
if (post.categories && curCategory.value !== 'Uncategorized') {
|
@@ -39,38 +46,43 @@ useSchemaOrg([
|
|
39
46
|
</script>
|
40
47
|
|
41
48
|
<template>
|
42
|
-
<
|
43
|
-
<
|
44
|
-
</YunSidebar>
|
45
|
-
<YunSidebar v-else />
|
46
|
-
|
47
|
-
<RouterView v-slot="{ Component }">
|
48
|
-
<component :is="Component">
|
49
|
-
<template #main-header>
|
50
|
-
<YunPageHeader
|
51
|
-
:title="title || t('menu.categories')"
|
52
|
-
:icon="frontmatter.icon || 'i-ri-folder-2-line'"
|
53
|
-
:color="frontmatter.color"
|
54
|
-
:page-title-class="frontmatter.pageTitleClass"
|
55
|
-
/>
|
56
|
-
</template>
|
57
|
-
<template #main-content>
|
58
|
-
<div text="center" class="yun-text-light" p="2">
|
59
|
-
{{ t('counter.categories', Array.from(categories.children).length) }}
|
60
|
-
</div>
|
61
|
-
<YunCategories :categories="categories.children" />
|
62
|
-
<RouterView />
|
63
|
-
</template>
|
49
|
+
<YunLayoutWrapper>
|
50
|
+
<YunLayoutLeft />
|
64
51
|
|
65
|
-
|
66
|
-
|
52
|
+
<RouterView v-slot="{ Component }">
|
53
|
+
<component :is="Component">
|
54
|
+
<template #main-header>
|
67
55
|
<YunPageHeader
|
68
|
-
|
69
|
-
|
56
|
+
class="mt-8"
|
57
|
+
:title="title || t('menu.categories')"
|
58
|
+
:icon="pageIcon"
|
59
|
+
:color="frontmatter.color"
|
60
|
+
:page-title-class="frontmatter.pageTitleClass"
|
70
61
|
/>
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
62
|
+
</template>
|
63
|
+
<template #main-content>
|
64
|
+
<div text="center" class="yun-text-light" p="2">
|
65
|
+
{{ t('counter.categories', Array.from(categories.children).length) }}
|
66
|
+
</div>
|
67
|
+
<YunCategories :categories="categories.children" />
|
68
|
+
<RouterView />
|
69
|
+
</template>
|
70
|
+
|
71
|
+
<template #main-nav-before>
|
72
|
+
<YunCard v-if="curCategory" class="post-collapse-container" m="t-4" w="full">
|
73
|
+
<YunPageHeader
|
74
|
+
m="t-10"
|
75
|
+
:title="curCategory === 'Uncategorized' ? t('category.uncategorized') : curCategory.split('/').join(' / ')"
|
76
|
+
icon="i-ri-folder-open-line"
|
77
|
+
/>
|
78
|
+
<YunPostCollapse w="full" m="b-4" p="x-20 lt-sm:x-5" :posts="posts" />
|
79
|
+
</YunCard>
|
80
|
+
</template>
|
81
|
+
</component>
|
82
|
+
</RouterView>
|
83
|
+
|
84
|
+
<YunLayoutRight />
|
85
|
+
</YunLayoutWrapper>
|
86
|
+
|
87
|
+
<YunFooter />
|
76
88
|
</template>
|
package/layouts/default.vue
CHANGED
@@ -1,8 +1,13 @@
|
|
1
|
+
<script setup lang="ts">
|
2
|
+
// layout
|
3
|
+
</script>
|
4
|
+
|
1
5
|
<template>
|
2
|
-
<
|
3
|
-
<
|
4
|
-
|
5
|
-
|
6
|
+
<YunLayoutWrapper>
|
7
|
+
<YunLayoutLeft />
|
8
|
+
<RouterView />
|
9
|
+
<YunLayoutRight />
|
10
|
+
</YunLayoutWrapper>
|
6
11
|
|
7
|
-
<
|
12
|
+
<YunFooter />
|
8
13
|
</template>
|
package/layouts/home.vue
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
<script lang="ts" setup>
|
2
|
-
import { useLayout } from 'valaxy'
|
3
2
|
import { computed } from 'vue'
|
4
3
|
import { useRoute } from 'vue-router'
|
5
4
|
import { useYunAppStore } from '../stores'
|
@@ -7,7 +6,6 @@ import { useThemeConfig } from '../composables'
|
|
7
6
|
|
8
7
|
const yunStore = useYunAppStore()
|
9
8
|
const route = useRoute()
|
10
|
-
const isHome = useLayout('home')
|
11
9
|
const themeConfig = useThemeConfig()
|
12
10
|
|
13
11
|
const isPage = computed(() => route.path.startsWith('/page'))
|
@@ -21,18 +19,27 @@ const showNotice = computed(() => {
|
|
21
19
|
<template>
|
22
20
|
<main
|
23
21
|
class="yun-main flex-center"
|
24
|
-
:class="
|
22
|
+
:class="{
|
23
|
+
'pl-0': !yunStore.leftSidebar.isOpen,
|
24
|
+
'md:pl-$va-sidebar-width': yunStore.leftSidebar.isOpen,
|
25
|
+
'pt-36': isPage,
|
26
|
+
}" flex="~ col" w="full"
|
25
27
|
>
|
26
28
|
<YunSidebar :show-hamburger="true" />
|
27
29
|
|
28
30
|
<template v-if="!isPage">
|
29
|
-
<YunBanner
|
31
|
+
<YunBanner />
|
30
32
|
<YunSay v-if="themeConfig.say.enable" w="full" />
|
33
|
+
<YunPrologue class="absolute left-0 top-0 right-0 bottom-0" />
|
31
34
|
</template>
|
32
35
|
|
33
36
|
<YunNotice
|
34
37
|
v-if="showNotice"
|
35
|
-
|
38
|
+
class="mb-10"
|
39
|
+
:class="{
|
40
|
+
'mt-4': !isPage,
|
41
|
+
}"
|
42
|
+
:content="themeConfig.notice.content"
|
36
43
|
/>
|
37
44
|
|
38
45
|
<slot name="board" />
|
package/layouts/post.vue
CHANGED
@@ -41,27 +41,30 @@ useSchemaOrg(
|
|
41
41
|
</script>
|
42
42
|
|
43
43
|
<template>
|
44
|
-
<
|
45
|
-
<
|
46
|
-
</YunSidebar>
|
47
|
-
<YunSidebar v-else />
|
44
|
+
<YunLayoutWrapper>
|
45
|
+
<YunLayoutLeft />
|
48
46
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
<YunWalineMeta />
|
54
|
-
<YunPostCategoriesAndTags :frontmatter="frontmatter" />
|
55
|
-
</template>
|
47
|
+
<RouterView v-slot="{ Component }">
|
48
|
+
<component :is="Component">
|
49
|
+
<template #main-header-after>
|
50
|
+
<YunPostMeta :frontmatter="frontmatter" />
|
56
51
|
|
57
|
-
|
58
|
-
|
59
|
-
<ValaxyCopyright v-if="frontmatter.copyright || (frontmatter.copyright !== false && siteConfig.license.enabled)" :url="url" m="y-4" />
|
60
|
-
</template>
|
52
|
+
<YunPostCategoriesAndTags class="mt-2" :frontmatter="frontmatter" />
|
53
|
+
</template>
|
61
54
|
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
55
|
+
<template #main-content-after>
|
56
|
+
<YunSponsor v-if="showSponsor" m="t-6" />
|
57
|
+
<ValaxyCopyright v-if="frontmatter.copyright || (frontmatter.copyright !== false && siteConfig.license.enabled)" :url="url" m="y-4" />
|
58
|
+
</template>
|
59
|
+
|
60
|
+
<template #aside-custom>
|
61
|
+
<slot name="aside-custom" />
|
62
|
+
</template>
|
63
|
+
</component>
|
64
|
+
</RouterView>
|
65
|
+
|
66
|
+
<YunLayoutRight />
|
67
|
+
</YunLayoutWrapper>
|
68
|
+
|
69
|
+
<YunFooter />
|
67
70
|
</template>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<script setup lang="ts">
|
2
|
+
import { useFrontmatter, useSiteConfig } from 'valaxy'
|
3
|
+
|
4
|
+
// layout
|
5
|
+
const siteConfig = useSiteConfig()
|
6
|
+
const fm = useFrontmatter()
|
7
|
+
</script>
|
8
|
+
|
9
|
+
<template>
|
10
|
+
<YunLayoutWrapper>
|
11
|
+
<div flex="~ col">
|
12
|
+
<YunProjects />
|
13
|
+
<!-- <YunLayoutLeft /> -->
|
14
|
+
<!-- <RouterView /> -->
|
15
|
+
<!-- <YunLayoutRight /> -->
|
16
|
+
<YunSponsor class="mt-4" />
|
17
|
+
<YunComment
|
18
|
+
v-if="siteConfig.comment.enable && fm.comment !== false"
|
19
|
+
class="max-w-4xl m-auto"
|
20
|
+
/>
|
21
|
+
</div>
|
22
|
+
</YunLayoutWrapper>
|
23
|
+
|
24
|
+
<YunFooter />
|
25
|
+
</template>
|
package/layouts/tags.vue
CHANGED
@@ -58,46 +58,50 @@ const title = usePostTitle(frontmatter)
|
|
58
58
|
</script>
|
59
59
|
|
60
60
|
<template>
|
61
|
-
<
|
62
|
-
<
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
:page-title-class="frontmatter.pageTitleClass"
|
74
|
-
/>
|
75
|
-
</template>
|
76
|
-
<template #main-content>
|
77
|
-
<div class="yun-text-light" text="center" p="2">
|
78
|
-
{{ t('counter.tags', Array.from(tags).length) }}
|
79
|
-
</div>
|
80
|
-
|
81
|
-
<div class="justify-center items-end" flex="~ wrap" gap="1">
|
82
|
-
<YunLayoutPostTag
|
83
|
-
v-for="[key, tag] in Array.from(tags).sort()"
|
84
|
-
:key="key"
|
85
|
-
:title="key"
|
86
|
-
:count="tag.count"
|
87
|
-
:style="getTagStyle(tag.count)"
|
88
|
-
@click="displayTag(key.toString())"
|
61
|
+
<YunLayoutWrapper>
|
62
|
+
<YunLayoutLeft />
|
63
|
+
|
64
|
+
<RouterView v-slot="{ Component }">
|
65
|
+
<component :is="Component">
|
66
|
+
<template #main-header>
|
67
|
+
<YunPageHeader
|
68
|
+
class="mt-8"
|
69
|
+
:title="title || t('menu.tags')"
|
70
|
+
:icon="frontmatter.icon || 'i-ri-tag-line'"
|
71
|
+
:color="frontmatter.color"
|
72
|
+
:page-title-class="frontmatter.pageTitleClass"
|
89
73
|
/>
|
90
|
-
</
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
74
|
+
</template>
|
75
|
+
<template #main-content>
|
76
|
+
<div class="yun-text-light" text="center" p="2">
|
77
|
+
{{ t('counter.tags', Array.from(tags).length) }}
|
78
|
+
</div>
|
79
|
+
|
80
|
+
<div class="justify-center items-end" flex="~ wrap" gap="1">
|
81
|
+
<YunLayoutPostTag
|
82
|
+
v-for="[key, tag] in Array.from(tags).sort()"
|
83
|
+
:key="key"
|
84
|
+
:title="key"
|
85
|
+
:count="tag.count"
|
86
|
+
:style="getTagStyle(tag.count)"
|
87
|
+
@click="displayTag(key.toString())"
|
88
|
+
/>
|
89
|
+
</div>
|
90
|
+
|
91
|
+
<RouterView />
|
92
|
+
</template>
|
93
|
+
|
94
|
+
<template #main-nav-before>
|
95
|
+
<YunCard v-if="curTag" ref="collapse" m="t-4" w="full">
|
96
|
+
<YunPageHeader :title="curTag" icon="i-ri-hashtag" />
|
97
|
+
<YunPostCollapse w="full" m="b-4" p="x-20 lt-sm:x-5" :posts="posts" />
|
98
|
+
</YunCard>
|
99
|
+
</template>
|
100
|
+
</component>
|
101
|
+
</RouterView>
|
102
|
+
|
103
|
+
<YunLayoutRight />
|
104
|
+
</YunLayoutWrapper>
|
105
|
+
|
106
|
+
<YunFooter />
|
103
107
|
</template>
|
package/node/config.ts
CHANGED
@@ -15,9 +15,6 @@ export const defaultThemeConfig: ThemeConfig = {
|
|
15
15
|
banner: {
|
16
16
|
enable: true,
|
17
17
|
title: '云游君的小站',
|
18
|
-
cloud: {
|
19
|
-
enable: true,
|
20
|
-
},
|
21
18
|
},
|
22
19
|
|
23
20
|
bg_image: {
|
@@ -27,7 +24,7 @@ export const defaultThemeConfig: ThemeConfig = {
|
|
27
24
|
},
|
28
25
|
|
29
26
|
say: {
|
30
|
-
enable:
|
27
|
+
enable: false,
|
31
28
|
api: '',
|
32
29
|
// api: 'https://el-bot-api.elpsy.cn/api/words/young',
|
33
30
|
hitokoto: {
|
@@ -96,7 +93,7 @@ export const defaultThemeConfig: ThemeConfig = {
|
|
96
93
|
},
|
97
94
|
'twitter': {
|
98
95
|
color: '#1da1f2',
|
99
|
-
icon: 'i-ri-twitter-
|
96
|
+
icon: 'i-ri-twitter-x-fill',
|
100
97
|
},
|
101
98
|
'wechat': {
|
102
99
|
color: '#1AAD19',
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "valaxy-theme-yun",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.20.0-beta.1",
|
4
4
|
"author": {
|
5
5
|
"email": "me@yunyoujun.cn",
|
6
6
|
"name": "YunYouJun",
|
@@ -20,14 +20,19 @@
|
|
20
20
|
"main": "index.ts",
|
21
21
|
"module": "index.ts",
|
22
22
|
"dependencies": {
|
23
|
+
"@ctrl/tinycolor": "^4.1.0",
|
23
24
|
"@explosions/fireworks": "^0.0.2",
|
24
25
|
"@iconify-json/ant-design": "^1.2.1",
|
25
|
-
"@iconify-json/simple-icons": "^1.2.
|
26
|
-
"
|
26
|
+
"@iconify-json/simple-icons": "^1.2.5",
|
27
|
+
"@vueuse/motion": "^2.2.5",
|
28
|
+
"animejs": "^3.2.2",
|
29
|
+
"gsap": "^3.12.5",
|
30
|
+
"primevue": "^4.0.7",
|
31
|
+
"radix-vue": "^1.9.6"
|
27
32
|
},
|
28
33
|
"devDependencies": {
|
29
34
|
"@types/animejs": "^3.1.12",
|
30
|
-
"valaxy": "0.
|
31
|
-
"valaxy
|
35
|
+
"valaxy-addon-waline": "0.2.0",
|
36
|
+
"valaxy": "0.20.0-beta.1"
|
32
37
|
}
|
33
38
|
}
|
package/pages/page/[page].vue
CHANGED
@@ -1,11 +1,8 @@
|
|
1
1
|
<script setup lang="ts">
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
const route = useRoute()
|
6
|
-
const pageIndex = computed(() => Number.parseInt((route.params as { page: string }).page))
|
2
|
+
// dynamic page
|
3
|
+
// layout is home
|
7
4
|
</script>
|
8
5
|
|
9
6
|
<template>
|
10
|
-
<YunPostList
|
7
|
+
<YunPostList />
|
11
8
|
</template>
|