valaxy-theme-hairy 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (121) hide show
  1. package/LICENSE +21 -21
  2. package/client/index.ts +1 -1
  3. package/components/HairyBody.vue +49 -49
  4. package/components/HairyCodepen.vue +40 -40
  5. package/components/HairyComment.vue +33 -33
  6. package/components/HairyContainer.vue +17 -17
  7. package/components/HairyDrawer.vue +44 -44
  8. package/components/HairyFooter.vue +62 -62
  9. package/components/HairyHeader.vue +32 -32
  10. package/components/HairyImage.vue +15 -15
  11. package/components/HairyImageGroup.vue +65 -65
  12. package/components/HairyNavbar.vue +56 -56
  13. package/components/HairyPageArchives.vue +59 -59
  14. package/components/HairyPageTags.vue +48 -48
  15. package/components/HairyPosts.vue +54 -54
  16. package/components/HairySearch.vue +201 -201
  17. package/components/HairySidebar.vue +30 -30
  18. package/components/HairyTabbar.vue +56 -56
  19. package/components/PageTags.vue +48 -48
  20. package/components/ValaxyMain.vue +45 -45
  21. package/components/navbar/HairyNav.vue +16 -16
  22. package/components/navbar/HairyNavExpand.vue +12 -12
  23. package/components/navbar/HairyNavItem.vue +35 -35
  24. package/components/navbar/HairyNavbarBackground.vue +7 -7
  25. package/components/navbar/HairyNavbarSearch.vue +8 -8
  26. package/components/navbar/HairyNavbarTitle.vue +15 -15
  27. package/components/navbar/HairyNavbarToggleDark.vue +22 -22
  28. package/components/parts/HairyBreadcrumb.vue +51 -51
  29. package/components/parts/HairyBreadcrumbItem.vue +11 -11
  30. package/components/parts/HairyFootFish.js +352 -352
  31. package/components/parts/HairyFootFish.vue +38 -38
  32. package/components/parts/HairyHeadHero.vue +34 -34
  33. package/components/parts/HairyHeadWaves.vue +67 -67
  34. package/components/parts/HairyImageGlobal.vue +51 -51
  35. package/components/parts/HairyImageViewer.vue +23 -23
  36. package/components/parts/HairyLink.vue +21 -21
  37. package/components/parts/HairyMenu.vue +16 -16
  38. package/components/parts/HairyMenuItem.vue +47 -47
  39. package/components/parts/HairyOutline.vue +99 -99
  40. package/components/parts/HairyOutlineItem.vue +48 -48
  41. package/components/parts/HairySocialLinks.vue +27 -27
  42. package/components/parts/HairyTimelineContent.vue +39 -39
  43. package/components/parts/HairyUserNav.vue +95 -95
  44. package/components/parts/HairyUserStats.vue +18 -18
  45. package/components/posts/HairyArticleImage.vue +126 -126
  46. package/components/posts/HairyArticleSeries.vue +89 -89
  47. package/components/posts/HairyArticleText.vue +43 -43
  48. package/components/posts/HairyPostFooter.vue +15 -15
  49. package/components/posts/HairyPostImageList.vue +27 -27
  50. package/components/posts/HairyPostTextsList.vue +22 -22
  51. package/components/posts/HairyPostToggleLayout.vue +36 -36
  52. package/components/third/HairyAlgoliaSearch.vue +17 -17
  53. package/components/third/HairyFuseSearch.vue +10 -10
  54. package/components/third/HairyFuseSearchDialog.vue +32 -32
  55. package/components/third/HairyFuseSearchDropdown.vue +77 -77
  56. package/components/third/HairyFuseSearchFooter.vue +28 -28
  57. package/components/third/HairyFuseSearchHeader.vue +30 -30
  58. package/components/third/HairyFuseSearchHit.vue +52 -52
  59. package/components/third/HairySearchBtnDisplay.vue +29 -29
  60. package/components/third/HairySearchBtnInput.vue +20 -20
  61. package/components/third/HairySearchBtnKeys.vue +19 -19
  62. package/components/third/HairySwiperCarousel.vue +45 -45
  63. package/composables/archives.ts +48 -48
  64. package/composables/category.ts +43 -43
  65. package/composables/config.ts +11 -11
  66. package/composables/dark.ts +13 -13
  67. package/composables/fuse.ts +60 -60
  68. package/composables/index.ts +7 -7
  69. package/composables/layout.ts +16 -16
  70. package/composables/outline.ts +49 -49
  71. package/composables/tags.ts +36 -36
  72. package/layouts/archive-month.vue +13 -13
  73. package/layouts/archive-year.vue +13 -13
  74. package/layouts/archives.vue +11 -11
  75. package/layouts/categories.vue +13 -13
  76. package/layouts/default.vue +13 -15
  77. package/layouts/home.vue +33 -33
  78. package/layouts/post.vue +54 -54
  79. package/layouts/tag.vue +10 -10
  80. package/layouts/tags.vue +10 -14
  81. package/library/loading.scss +535 -535
  82. package/library/loading.ts +60 -60
  83. package/library/scroll.ts +22 -22
  84. package/locales/en.yml +1 -1
  85. package/locales/zh-CN.yml +1 -1
  86. package/node/images/default.json +139 -139
  87. package/node/images/index.ts +46 -46
  88. package/node/images/shims.d.ts +8 -8
  89. package/node/index.ts +2 -2
  90. package/node/theme/index.ts +78 -78
  91. package/package.json +1 -1
  92. package/pages/archives/[year]/[month]/index.vue +48 -48
  93. package/pages/archives/[year]/index.vue +73 -73
  94. package/pages/archives/index.md +6 -0
  95. package/pages/categories/[...its].vue +108 -108
  96. package/pages/index.vue +8 -8
  97. package/pages/page/[page].vue +12 -12
  98. package/pages/tags/[tag]/index.vue +38 -38
  99. package/pages/tags/index.md +7 -0
  100. package/setup/main.ts +9 -9
  101. package/store/index.ts +1 -1
  102. package/store/modules/global.ts +12 -12
  103. package/styles/components/aplayer.scss +75 -75
  104. package/styles/components/index.scss +3 -3
  105. package/styles/components/markdown.scss +89 -89
  106. package/styles/components/nprogress.scss +15 -15
  107. package/styles/components/scrollbar.scss +25 -25
  108. package/styles/css-vars.scss +171 -171
  109. package/styles/element-plus/index.scss +1 -1
  110. package/styles/element-plus/tabs.scss +25 -25
  111. package/styles/element-plus/timeline.scss +18 -18
  112. package/styles/font-face.scss +19 -19
  113. package/styles/global.scss +38 -38
  114. package/styles/index.scss +3 -3
  115. package/tsconfig.json +27 -27
  116. package/types/index.d.ts +163 -163
  117. package/unocss.config.ts +43 -43
  118. package/utils/index.ts +37 -37
  119. package/valaxy.config.ts +26 -26
  120. package/pages/archives/index.vue +0 -6
  121. package/pages/tags/index.vue +0 -6
@@ -1,12 +1,12 @@
1
- <script setup lang="ts">
2
-
3
- </script>
4
-
5
- <template>
6
- <HairyPosts :pagination="true" :cur-page="parseInt(String($route.params.page))" />
7
- </template>
8
-
9
- <route lang="yaml">
10
- meta:
11
- layout: home
12
- </route>
1
+ <script setup lang="ts">
2
+
3
+ </script>
4
+
5
+ <template>
6
+ <HairyPosts :pagination="true" :cur-page="parseInt(String($route.params.page))" />
7
+ </template>
8
+
9
+ <route lang="yaml">
10
+ meta:
11
+ layout: home
12
+ </route>
@@ -1,38 +1,38 @@
1
- <script lang="ts" setup>
2
- import { computed } from 'vue'
3
- import { usePostList } from 'valaxy'
4
- import { ElTimeline, ElTimelineItem } from 'element-plus/es/components/timeline/index'
5
- import { useRoute } from 'vue-router'
6
-
7
- const tag = computed(() => useRoute().params.tag)
8
-
9
- const posts = computed<any[]>(() =>
10
- usePostList().value.filter(post => post.tags?.includes(tag.value as string)),
11
- )
12
- </script>
13
-
14
- <template>
15
- <HairyBreadcrumb class="mb-5" size="large" after="标签">
16
- <HairyBreadcrumbItem to="/">
17
- 首页
18
- </HairyBreadcrumbItem>
19
- <HairyBreadcrumbItem>
20
- {{ tag }}
21
- </HairyBreadcrumbItem>
22
- </HairyBreadcrumb>
23
- <ElTimeline>
24
- <ElTimelineItem
25
- v-for="(item, index) in posts"
26
- :key="index"
27
- hollow
28
- size="large"
29
- >
30
- <HairyTimelineContent :post="item" />
31
- </ElTimelineItem>
32
- </ElTimeline>
33
- </template>
34
-
35
- <route lang="yaml">
36
- meta:
37
- layout: tag
38
- </route>
1
+ <script lang="ts" setup>
2
+ import { computed } from 'vue'
3
+ import { usePostList } from 'valaxy'
4
+ import { ElTimeline, ElTimelineItem } from 'element-plus'
5
+ import { useRoute } from 'vue-router'
6
+
7
+ const tag = computed(() => useRoute().params.tag)
8
+
9
+ const posts = computed<any[]>(() =>
10
+ usePostList().value.filter(post => post.tags?.includes(tag.value as string)),
11
+ )
12
+ </script>
13
+
14
+ <template>
15
+ <HairyBreadcrumb class="mb-5" size="large" after="标签">
16
+ <HairyBreadcrumbItem to="/">
17
+ 首页
18
+ </HairyBreadcrumbItem>
19
+ <HairyBreadcrumbItem>
20
+ {{ tag }}
21
+ </HairyBreadcrumbItem>
22
+ </HairyBreadcrumb>
23
+ <ElTimeline>
24
+ <ElTimelineItem
25
+ v-for="(item, index) in posts"
26
+ :key="index"
27
+ hollow
28
+ size="large"
29
+ >
30
+ <HairyTimelineContent :post="item" />
31
+ </ElTimelineItem>
32
+ </ElTimeline>
33
+ </template>
34
+
35
+ <route lang="yaml">
36
+ meta:
37
+ layout: tag
38
+ </route>
@@ -0,0 +1,7 @@
1
+ ---
2
+ layout: tags
3
+ # title: 云游的小标签
4
+ icon: i-ri-price-tag-3-line
5
+ nav: false
6
+ # comment: false
7
+ ---
package/setup/main.ts CHANGED
@@ -1,9 +1,9 @@
1
- import { defineAppSetup } from 'valaxy'
2
-
3
- // import { install as installScroll } from '../modules/scroll'
4
- import { install as installLoading } from '../library/loading'
5
-
6
- export default defineAppSetup((ctx) => {
7
- // installScroll(ctx)
8
- installLoading(ctx)
9
- })
1
+ import { defineAppSetup } from 'valaxy'
2
+
3
+ // import { install as installScroll } from '../modules/scroll'
4
+ import { install as installLoading } from '../library/loading'
5
+
6
+ export default defineAppSetup((ctx) => {
7
+ // installScroll(ctx)
8
+ installLoading(ctx)
9
+ })
package/store/index.ts CHANGED
@@ -1 +1 @@
1
- export * from './modules/global'
1
+ export * from './modules/global'
@@ -1,12 +1,12 @@
1
- import { defineStore } from 'pinia'
2
- import { ref } from 'vue'
3
-
4
- export const useGlobalStore = defineStore('global', () => {
5
- const headerRef = ref<HTMLDivElement>()
6
- const showDrawer = ref(false)
7
-
8
- return {
9
- headerRef,
10
- showDrawer,
11
- }
12
- })
1
+ import { defineStore } from 'pinia'
2
+ import { ref } from 'vue'
3
+
4
+ export const useGlobalStore = defineStore('global', () => {
5
+ const headerRef = ref<HTMLDivElement>()
6
+ const showDrawer = ref(false)
7
+
8
+ return {
9
+ headerRef,
10
+ showDrawer,
11
+ }
12
+ })
@@ -1,76 +1,76 @@
1
- .aplayer.aplayer-fixed .aplayer-list,
2
- .aplayer .aplayer-info {
3
- font-family: var(--hy-font-family-seto);
4
- }
5
-
6
- .dark {
7
- .aplayer {
8
- background: #2B2B2B;
9
- padding: 6px;
10
- color: #c2c2c2;
11
- }
12
-
13
-
14
-
15
- .aplayer.aplayer-fixed .aplayer-body {
16
- background-color: #2B2B2B;
17
- }
18
-
19
- .aplayer.aplayer-fixed .aplayer-info {
20
- border: none;
21
- }
22
-
23
- .aplayer .aplayer-miniswitcher {
24
- background: #bebebe;
25
- }
26
-
27
- .aplayer.aplayer-fixed .aplayer-list {
28
- border: none;
29
- }
30
-
31
- .aplayer .aplayer-list ol {
32
- padding-right: 4px;
33
- }
34
-
35
- .aplayer .aplayer-list ol li.aplayer-list-light {
36
- background-color: #404040;
37
- color: var(--hy-c-primary);
38
-
39
- .aplayer-list-cur {
40
- background-color: var(--hy-c-primary) !important;
41
- }
42
- }
43
-
44
- .aplayer .aplayer-list ol li {
45
- border: none;
46
-
47
- &:hover {
48
- background: #373737;
49
- }
50
- }
51
-
52
- .aplayer .aplayer-list ol li:nth-child(2n) {
53
- background: #2F2F2F;
54
-
55
- &:hover {
56
- background: #373737;
57
- }
58
- }
59
-
60
- .aplayer .aplayer-list ol li .aplayer-list-index,
61
- .aplayer .aplayer-list ol li .aplayer-list-author {
62
- color: #8C8C8C;
63
- }
64
-
65
- .aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon:hover path {
66
- fill: #d9d9d9 !important;
67
- }
68
-
69
- .aplayer .aplayer-miniswitcher .aplayer-icon:hover path {
70
- // fill: #c2c2c2;
71
- }
72
-
73
- .aplayer-pic {
74
- // border-radius: 4px;
75
- }
1
+ .aplayer.aplayer-fixed .aplayer-list,
2
+ .aplayer .aplayer-info {
3
+ font-family: var(--hy-font-family-seto);
4
+ }
5
+
6
+ .dark {
7
+ .aplayer {
8
+ background: #2B2B2B;
9
+ padding: 6px;
10
+ color: #c2c2c2;
11
+ }
12
+
13
+
14
+
15
+ .aplayer.aplayer-fixed .aplayer-body {
16
+ background-color: #2B2B2B;
17
+ }
18
+
19
+ .aplayer.aplayer-fixed .aplayer-info {
20
+ border: none;
21
+ }
22
+
23
+ .aplayer .aplayer-miniswitcher {
24
+ background: #bebebe;
25
+ }
26
+
27
+ .aplayer.aplayer-fixed .aplayer-list {
28
+ border: none;
29
+ }
30
+
31
+ .aplayer .aplayer-list ol {
32
+ padding-right: 4px;
33
+ }
34
+
35
+ .aplayer .aplayer-list ol li.aplayer-list-light {
36
+ background-color: #404040;
37
+ color: var(--hy-c-primary);
38
+
39
+ .aplayer-list-cur {
40
+ background-color: var(--hy-c-primary) !important;
41
+ }
42
+ }
43
+
44
+ .aplayer .aplayer-list ol li {
45
+ border: none;
46
+
47
+ &:hover {
48
+ background: #373737;
49
+ }
50
+ }
51
+
52
+ .aplayer .aplayer-list ol li:nth-child(2n) {
53
+ background: #2F2F2F;
54
+
55
+ &:hover {
56
+ background: #373737;
57
+ }
58
+ }
59
+
60
+ .aplayer .aplayer-list ol li .aplayer-list-index,
61
+ .aplayer .aplayer-list ol li .aplayer-list-author {
62
+ color: #8C8C8C;
63
+ }
64
+
65
+ .aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon:hover path {
66
+ fill: #d9d9d9 !important;
67
+ }
68
+
69
+ .aplayer .aplayer-miniswitcher .aplayer-icon:hover path {
70
+ // fill: #c2c2c2;
71
+ }
72
+
73
+ .aplayer-pic {
74
+ // border-radius: 4px;
75
+ }
76
76
  }
@@ -1,4 +1,4 @@
1
- @import "./aplayer.scss";
2
- @import "./scrollbar.scss";
3
- @import "./markdown.scss";
1
+ @import "./aplayer.scss";
2
+ @import "./scrollbar.scss";
3
+ @import "./markdown.scss";
4
4
  @import "./nprogress.scss";
@@ -1,90 +1,90 @@
1
- @forward 'valaxy/client/styles/mixins/index.scss';
2
-
3
- .markdown-body {
4
- --c-toc-link: var(--hy-c-text-light);
5
- }
6
-
7
- html.dark {
8
- .markdown-body {
9
- --c-toc-link: var(--hy-c-text-dark);
10
- }
11
- }
12
-
13
- .markdown-body {
14
- word-wrap: break-word;
15
-
16
- h2,
17
- a {
18
- color: var(--hy-c-primary);
19
- }
20
-
21
- h1,
22
- h2,
23
- h3,
24
- h4,
25
- h5,
26
- h6 {
27
- font-family: var(--hy-font-serif);
28
- font-weight: 900;
29
- }
30
-
31
- ul {
32
- li>p {
33
- margin-bottom: 0;
34
- }
35
- }
36
- }
37
-
38
-
39
- .markdown-body :not(pre)>code {
40
- padding: 3px 6px;
41
- font-size: 0.85rem;
42
- color: var(--hy-c-text-code);
43
- background: var(--hy-c-bg-mute);
44
- border-radius: 3px;
45
- }
46
-
47
- .markdown-body div[class*=language-] pre {
48
- max-width: calc(100vw - 56px);
49
- }
50
-
51
- .markdown-body div[class*=language-] {
52
- width: 100%;
53
- }
54
-
55
- @media screen and (max-width: 640px) {
56
- .markdown-body div[class*=language-] {
57
- margin: auto;
58
- }
59
- }
60
-
61
-
62
- .prose :where(:not(pre) > code):not(:where(.not-prose, .not-prose *))::before,
63
- .prose :where(:not(pre) > code):not(:where(.not-prose, .not-prose *))::after {
64
- content: none !important;
65
- }
66
-
67
- .custom-block.tip {
68
- background-color: rgba(200, 200, 200, 0.1);
69
- border-color: var(--hy-c-primary);
70
- padding: 0.5rem 1rem;
71
- }
72
-
73
- .markdown-body {
74
- --un-prose-borders: var(--hy-c-primary);
75
- }
76
-
77
- .markdown-body div[class*=language-] pre {
78
- max-width: none;
79
- }
80
-
81
- .prose :where(blockquote):not(:where(.not-prose, .not-prose *)) {
82
- background: rgba(200, 200, 200, 0.1);
83
- @apply py-1px;
84
-
85
- font-size: 15px;
86
-
87
- >p {
88
- margin: 0.5rem 0;
89
- }
1
+ @forward 'valaxy/client/styles/mixins/index.scss';
2
+
3
+ .markdown-body {
4
+ --c-toc-link: var(--hy-c-text-light);
5
+ }
6
+
7
+ html.dark {
8
+ .markdown-body {
9
+ --c-toc-link: var(--hy-c-text-dark);
10
+ }
11
+ }
12
+
13
+ .markdown-body {
14
+ word-wrap: break-word;
15
+
16
+ h2,
17
+ a {
18
+ color: var(--hy-c-primary);
19
+ }
20
+
21
+ h1,
22
+ h2,
23
+ h3,
24
+ h4,
25
+ h5,
26
+ h6 {
27
+ font-family: var(--hy-font-serif);
28
+ font-weight: 900;
29
+ }
30
+
31
+ ul {
32
+ li>p {
33
+ margin-bottom: 0;
34
+ }
35
+ }
36
+ }
37
+
38
+
39
+ .markdown-body :not(pre)>code {
40
+ padding: 3px 6px;
41
+ font-size: 0.85rem;
42
+ color: var(--hy-c-text-code);
43
+ background: var(--hy-c-bg-mute);
44
+ border-radius: 3px;
45
+ }
46
+
47
+ .markdown-body div[class*=language-] pre {
48
+ max-width: calc(100vw - 56px);
49
+ }
50
+
51
+ .markdown-body div[class*=language-] {
52
+ width: 100%;
53
+ }
54
+
55
+ @media screen and (max-width: 640px) {
56
+ .markdown-body div[class*=language-] {
57
+ margin: auto;
58
+ }
59
+ }
60
+
61
+
62
+ .prose :where(:not(pre) > code):not(:where(.not-prose, .not-prose *))::before,
63
+ .prose :where(:not(pre) > code):not(:where(.not-prose, .not-prose *))::after {
64
+ content: none !important;
65
+ }
66
+
67
+ .custom-block.tip {
68
+ background-color: rgba(200, 200, 200, 0.1);
69
+ border-color: var(--hy-c-primary);
70
+ padding: 0.5rem 1rem;
71
+ }
72
+
73
+ .markdown-body {
74
+ --un-prose-borders: var(--hy-c-primary);
75
+ }
76
+
77
+ .markdown-body div[class*=language-] pre {
78
+ max-width: none;
79
+ }
80
+
81
+ .prose :where(blockquote):not(:where(.not-prose, .not-prose *)) {
82
+ background: rgba(200, 200, 200, 0.1);
83
+ @apply py-1px;
84
+
85
+ font-size: 15px;
86
+
87
+ >p {
88
+ margin: 0.5rem 0;
89
+ }
90
90
  }
@@ -1,16 +1,16 @@
1
- #nprogress {
2
- pointer-events: none;
3
-
4
- .bar {
5
- top: 0;
6
- // margin-top: -5px;
7
- height: 5px;
8
- opacity: 0.75;
9
- background: var(--hy-c-primary);
10
- position: fixed;
11
- z-index: 1031;
12
- left: 0;
13
- width: 100%;
14
- border-radius: 5px;
15
- }
1
+ #nprogress {
2
+ pointer-events: none;
3
+
4
+ .bar {
5
+ top: 0;
6
+ // margin-top: -5px;
7
+ height: 5px;
8
+ opacity: 0.75;
9
+ background: var(--hy-c-primary);
10
+ position: fixed;
11
+ z-index: 1031;
12
+ left: 0;
13
+ width: 100%;
14
+ border-radius: 5px;
15
+ }
16
16
  }
@@ -1,26 +1,26 @@
1
- ::-webkit-scrollbar {
2
- width: 8px;
3
- height: 8px;
4
- }
5
-
6
- ::-webkit-scrollbar-track {
7
- border-radius: 2px;
8
- background-color: rgba(255, 255, 255, 0.1);
9
- }
10
-
11
- ::-webkit-scrollbar-thumb {
12
- border-radius: 2px;
13
- background-color: rgba(122, 122, 122, 0.3);
14
-
15
- &:window-inactive {
16
- background-color: rgba(122, 122, 122, 0.3);
17
- }
18
-
19
- &:hover {
20
- background-color: rgba(#1bc9a6, 0.7);
21
- }
22
-
23
- &:active {
24
- background-color: rgba(#1bc9a6, 0.9);
25
- }
1
+ ::-webkit-scrollbar {
2
+ width: 8px;
3
+ height: 8px;
4
+ }
5
+
6
+ ::-webkit-scrollbar-track {
7
+ border-radius: 2px;
8
+ background-color: rgba(255, 255, 255, 0.1);
9
+ }
10
+
11
+ ::-webkit-scrollbar-thumb {
12
+ border-radius: 2px;
13
+ background-color: rgba(122, 122, 122, 0.3);
14
+
15
+ &:window-inactive {
16
+ background-color: rgba(122, 122, 122, 0.3);
17
+ }
18
+
19
+ &:hover {
20
+ background-color: rgba(#1bc9a6, 0.7);
21
+ }
22
+
23
+ &:active {
24
+ background-color: rgba(#1bc9a6, 0.9);
25
+ }
26
26
  }