diff --git a/docs/components/AddonGallery.vue b/docs/components/AddonGallery.vue
index 691d6f255e..e678f44ae6 100644
--- a/docs/components/AddonGallery.vue
+++ b/docs/components/AddonGallery.vue
@@ -5,6 +5,7 @@ import { useI18n } from 'vue-i18n'
export interface ValaxyAddon {
icon: string
name: string
+ author: string | string[]
repo: string
desc: string
desc_zh: string
@@ -20,10 +21,19 @@ const props = withDefaults(defineProps<{
const { t } = useI18n()
const keyword = ref('')
const filteredAddons = computed(() => {
- return props.addons.filter((item) => {
- return item.name.includes(keyword.value) || item.tags?.some(t => t.includes(keyword.value))
- })
+ return props.addons
+ .filter(item => item.name.includes(keyword.value) || item.tags?.some(t => t.includes(keyword.value)))
+ .map((item) => {
+ if (typeof item.author === 'string')
+ return { ...item, author: [item.author] }
+
+ return item
+ })
})
+
+function handleTagClick(tag: string) {
+ keyword.value = tag
+}
@@ -42,7 +52,7 @@ const filteredAddons = computed(() => {
diff --git a/docs/components/AddonGalleryCard.vue b/docs/components/AddonGalleryCard.vue
index d3f7122cb3..b352e6930a 100644
--- a/docs/components/AddonGalleryCard.vue
+++ b/docs/components/AddonGalleryCard.vue
@@ -4,6 +4,12 @@ import type { ValaxyAddon } from './AddonGallery.vue'
defineProps<{
addon: ValaxyAddon
}>()
+
+const emit = defineEmits(['tagClick'])
+
+function handleTagClick(tag: string) {
+ emit('tagClick', tag)
+}
@@ -18,6 +24,13 @@ defineProps<{
{{ addon.name }}
+
+ By
+
+ {{ author }}
+ ,
+
+
@@ -41,7 +54,7 @@ defineProps<{
-
+
#{{ tag }}
diff --git a/docs/layouts/default.vue b/docs/layouts/default.vue
new file mode 100644
index 0000000000..f615dc7c6e
--- /dev/null
+++ b/docs/layouts/default.vue
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+ {{ t('post.contributors') }}
+
+
+
+
+
+
+
+
diff --git a/docs/locales/en.yml b/docs/locales/en.yml
index f30acedcba..4e0069a60c 100644
--- a/docs/locales/en.yml
+++ b/docs/locales/en.yml
@@ -97,3 +97,6 @@ toc:
base-config: Base Config
extend-config: Extend Config
unocss-options: UnoCSS Options
+
+post:
+ contributors: Contributors
diff --git a/docs/locales/zh-CN.yml b/docs/locales/zh-CN.yml
index ae7b0e7562..da08f9e330 100644
--- a/docs/locales/zh-CN.yml
+++ b/docs/locales/zh-CN.yml
@@ -97,3 +97,6 @@ toc:
base-config: 基础配置
extend-config: 扩展配置
unocss-options: UnoCSS 配置
+
+post:
+ contributors: 贡献者
diff --git a/docs/package.json b/docs/package.json
index 6523c30b6a..187d5559fc 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -17,6 +17,7 @@
"valaxy": "link:../packages/valaxy",
"valaxy-addon-algolia": "link:../packages/valaxy-addon-algolia",
"valaxy-addon-components": "workspace:*",
+ "valaxy-addon-git-log": "^0.1.0",
"valaxy-theme-press": "link:../packages/valaxy-theme-press"
},
"devDependencies": {
diff --git a/docs/pages/addons/gallery.md b/docs/pages/addons/gallery.md
index 7f5d2d8424..67c6c388a0 100644
--- a/docs/pages/addons/gallery.md
+++ b/docs/pages/addons/gallery.md
@@ -7,6 +7,7 @@ end: false
addons:
- name: valaxy-addon-algolia
+ author: YunYouJun
icon: i-ri-search-line
repo: https://github.com/YunYouJun/valaxy/tree/main/packages/valaxy-addon-algolia
desc: Algolia Search.
@@ -14,6 +15,7 @@ addons:
tags:
- search
- name: valaxy-addon-components
+ author: YunYouJun
icon: i-ri-apps-2-line
repo: https://github.com/YunYouJun/valaxy/tree/main/packages/valaxy-addon-components
desc: Common Components for Valaxy.
@@ -21,6 +23,7 @@ addons:
tags:
- component
- name: valaxy-addon-lightgallery
+ author: YunYouJun
icon: i-ri-image-line
repo: https://github.com/YunYouJun/valaxy/tree/main/packages/valaxy-addon-lightgallery
desc: LightGallery for Valaxy.
@@ -28,6 +31,7 @@ addons:
tags:
- image
- name: valaxy-addon-waline
+ author: YunYouJun
icon: i-ri-chat-3-line
repo: https://github.com/YunYouJun/valaxy/tree/main/packages/valaxy-addon-waline
desc: Waline comment.
@@ -35,6 +39,7 @@ addons:
tags:
- comment
- name: valaxy-addon-twikoo
+ author: YunYouJun
icon: i-ri-chat-3-line
repo: https://github.com/YunYouJun/valaxy/tree/main/packages/valaxy-addon-twikoo
desc: Twikoo comment.
@@ -42,6 +47,9 @@ addons:
tags:
- comment
- name: valaxy-addon-bangumi
+ author:
+ - yixiaojiu
+ - YunYouJun
icon: i-ri-film-line
repo: https://github.com/YunYouJun/valaxy/tree/main/packages/valaxy-addon-bangumi
desc: Display bilibili or bangumi watching list.
@@ -49,6 +57,9 @@ addons:
tags:
- video
- name: valaxy-addon-meting
+ author:
+ - YunYouJun
+ - yixiaojiu
icon: i-ri-music-2-line
repo: https://github.com/YunYouJun/valaxy/tree/main/packages/valaxy-addon-meting
desc: Global music player based on APlayer and MetingJS.
@@ -56,12 +67,38 @@ addons:
tags:
- music
- name: valaxy-addon-live2d
+ author: WRXinYue
icon: i-ri-magic-line
repo: https://github.com/valaxyjs/valaxy-addon-live2d
desc: Cute live2d mascot component.
desc_zh: 萌萌哒 live2d 看板娘组件
tags:
- magic
+ - name: valaxy-addon-git-log
+ author: WRXinYue
+ icon: i-ri-git-pull-request-line
+ repo: https://github.com/valaxyjs/valaxy-addon-git-log
+ desc: Integrates git logs into your page of Valaxy site.
+ desc_zh: 将 Git 日志集成到你的 Valaxy 网站页面中
+ tags:
+ - git-log
+ - name: valaxy-addon-hitokoto
+ author: WRXinYue
+ icon: i-ri-chat-quote-line
+ repo: https://github.com/valaxyjs/valaxy-addon-hitokoto
+ desc: Hitokoto Composition API for Valaxy.
+ desc_zh: 将一言(Hitokoto)API 集成于 Valaxy
+ tags:
+ - hitokoto
+ - name: valaxy-addon-vercount
+ author: WRXinYue
+ icon: i-ri-eye-line
+ repo: https://github.com/valaxyjs/valaxy-addon-vercount
+ desc: A Vercount API based counting plugin for Valaxy, serving as an alternative to Busuanzi counting.
+ desc_zh: 基于 Vercount API 实现的 Valaxy 计数插件, 用于不蒜子计数替代方案
+ tags:
+ - busuanzi
+ - vercount
---
diff --git a/docs/valaxy.config.ts b/docs/valaxy.config.ts
index 01ee439479..ad13fecc8e 100644
--- a/docs/valaxy.config.ts
+++ b/docs/valaxy.config.ts
@@ -3,6 +3,7 @@ import { defineValaxyConfig } from 'valaxy'
import type { PressTheme } from 'valaxy-theme-press'
import { addonAlgolia } from 'valaxy-addon-algolia'
import { addonComponents } from 'valaxy-addon-components'
+import { addonGitLog } from 'valaxy-addon-git-log'
const COMMIT_ID = process.env.CF_PAGES_COMMIT_SHA || process.env.COMMIT_REF
const commitRef = COMMIT_ID?.slice(0, 8) || 'dev'
@@ -39,6 +40,9 @@ export default defineValaxyConfig({
indexName: 'valaxysite',
}),
addonComponents(),
+ addonGitLog({
+ repositoryUrl: 'https://github.com/YunYouJun/valaxy.git',
+ }),
],
theme: 'press',
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index e37afefa97..ea12cdd825 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -224,6 +224,9 @@ importers:
valaxy-addon-components:
specifier: workspace:*
version: link:../packages/valaxy-addon-components
+ valaxy-addon-git-log:
+ specifier: ^0.1.0
+ version: 0.1.0(valaxy@packages+valaxy)
valaxy-theme-press:
specifier: link:../packages/valaxy-theme-press
version: link:../packages/valaxy-theme-press
@@ -269,7 +272,7 @@ importers:
dependencies:
'@rollup/pluginutils':
specifier: ^5.1.0
- version: 5.1.0(rollup@3.29.4)
+ version: 5.1.0(rollup@4.21.2)
axios:
specifier: ^1.7.7
version: 1.7.7(debug@4.3.7)
@@ -315,7 +318,7 @@ importers:
version: 2.0.0(sass@1.78.0)(typescript@5.5.4)(vue-tsc@2.0.17(typescript@5.5.4))
unplugin-vue-router:
specifier: ^0.10.7
- version: 0.10.7(rollup@3.29.4)(vue-router@4.4.3(vue@3.5.3(typescript@5.5.4)))(vue@3.5.3(typescript@5.5.4))
+ version: 0.10.7(rollup@4.21.2)(vue-router@4.4.3(vue@3.5.3(typescript@5.5.4)))(vue@3.5.3(typescript@5.5.4))
vite:
specifier: ^5.4.3
version: 5.4.3(@types/node@22.5.4)(sass@1.78.0)
@@ -2900,6 +2903,9 @@ packages:
birpc@0.2.17:
resolution: {integrity: sha512-+hkTxhot+dWsLpp3gia5AkVHIsKlZybNT5gIYiDlNzJrmYPcTM9k5/w2uaj3IPpd7LlEYpmCj4Jj1nC41VhDFg==}
+ blueimp-md5@2.19.0:
+ resolution: {integrity: sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==}
+
body-parser@1.20.2:
resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==}
engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
@@ -3989,6 +3995,10 @@ packages:
elkjs@0.9.3:
resolution: {integrity: sha512-f/ZeWvW/BCXbhGEf1Ujp29EASo/lk1FDnETgNKwJrsVvGZhUWCZyg3xLJjAsxfOmt8KjswHmI5EwCQcPMpOYhQ==}
+ email-validator@2.0.4:
+ resolution: {integrity: sha512-gYCwo7kh5S3IDyZPLZf6hSS0MnZT8QmJFqYvbqlDZSbwdZlY6QZWxJ4i/6UhITOJ4XzyI647Bm2MXKCLqnJ4nQ==}
+ engines: {node: '>4.0'}
+
emoji-regex@10.4.0:
resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==}
@@ -4644,6 +4654,11 @@ packages:
resolution: {integrity: sha512-GCOQdvm7XxV1S4U4CGrsdlEN37245eC8P9zaYCMr6K1BG0IPGy5lUwmJsEOGyl1GD6HXjOtl2keCP9asRBwNvA==}
engines: {node: '>= 10.x'}
+ gravatar@1.8.2:
+ resolution: {integrity: sha512-GdRwLM3oYpFQKy47MKuluw9hZ2gaCtiKPbDGdcDEuYDKlc8eNnW27KYL9LVbIDzEsx88WtDWQm2ClBcsgBnj6w==}
+ engines: {node: '>=10'}
+ hasBin: true
+
gray-matter@4.0.3:
resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==}
engines: {node: '>=6.0'}
@@ -6483,6 +6498,11 @@ packages:
resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==}
engines: {node: '>=0.6'}
+ querystring@0.2.0:
+ resolution: {integrity: sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==}
+ engines: {node: '>=0.4.x'}
+ deprecated: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
+
querystringify@2.2.0:
resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==}
@@ -7870,6 +7890,11 @@ packages:
peerDependencies:
valaxy: latest
+ valaxy-addon-git-log@0.1.0:
+ resolution: {integrity: sha512-H/dj9K1JHB5mIe3z9GPmBmu0KpK00AEOL6RoYr42QP9lhpHsoAwp9Il9oNIa5Hdc12eMIy8eNzEGoMHKievQBQ==}
+ peerDependencies:
+ valaxy: latest
+
valaxy@0.19.9:
resolution: {integrity: sha512-KFOXTez+AF3EhDHs1o+bpyZq1/IW0xziGl+qOZuqCyGksmzkds09+/eiMV3WMhBaZVtxKJesCj7sW9e4Op29mQ==}
engines: {node: ^14.18.0 || >=16.0.0}
@@ -10267,19 +10292,6 @@ snapshots:
'@volar/language-core': 2.2.5
path-browserify: 1.0.1
- '@vue-macros/common@1.12.2(rollup@3.29.4)(vue@3.5.3(typescript@5.5.4))':
- dependencies:
- '@babel/types': 7.25.6
- '@rollup/pluginutils': 5.1.0(rollup@3.29.4)
- '@vue/compiler-sfc': 3.5.3
- ast-kit: 1.1.0
- local-pkg: 0.5.0
- magic-string-ast: 0.6.2
- optionalDependencies:
- vue: 3.5.3(typescript@5.5.4)
- transitivePeerDependencies:
- - rollup
-
'@vue-macros/common@1.12.2(rollup@4.21.2)(vue@3.5.3(typescript@5.5.4))':
dependencies:
'@babel/types': 7.25.6
@@ -10797,6 +10809,8 @@ snapshots:
birpc@0.2.17: {}
+ blueimp-md5@2.19.0: {}
+
body-parser@1.20.2:
dependencies:
bytes: 3.1.2
@@ -12106,6 +12120,8 @@ snapshots:
elkjs@0.9.3: {}
+ email-validator@2.0.4: {}
+
emoji-regex@10.4.0: {}
emoji-regex@8.0.0: {}
@@ -13008,6 +13024,13 @@ snapshots:
graphql@15.9.0: {}
+ gravatar@1.8.2:
+ dependencies:
+ blueimp-md5: 2.19.0
+ email-validator: 2.0.4
+ querystring: 0.2.0
+ yargs: 15.4.1
+
gray-matter@4.0.3:
dependencies:
js-yaml: 3.14.1
@@ -14964,6 +14987,8 @@ snapshots:
dependencies:
side-channel: 1.0.6
+ querystring@0.2.0: {}
+
querystringify@2.2.0: {}
queue-microtask@1.2.3: {}
@@ -16556,29 +16581,6 @@ snapshots:
- rollup
- webpack-sources
- unplugin-vue-router@0.10.7(rollup@3.29.4)(vue-router@4.4.3(vue@3.5.3(typescript@5.5.4)))(vue@3.5.3(typescript@5.5.4)):
- dependencies:
- '@babel/types': 7.25.6
- '@rollup/pluginutils': 5.1.0(rollup@3.29.4)
- '@vue-macros/common': 1.12.2(rollup@3.29.4)(vue@3.5.3(typescript@5.5.4))
- ast-walker-scope: 0.6.2
- chokidar: 3.6.0
- fast-glob: 3.3.2
- json5: 2.2.3
- local-pkg: 0.5.0
- magic-string: 0.30.11
- mlly: 1.7.1
- pathe: 1.1.2
- scule: 1.3.0
- unplugin: 1.13.1
- yaml: 2.5.1
- optionalDependencies:
- vue-router: 4.4.3(vue@3.5.3(typescript@5.5.4))
- transitivePeerDependencies:
- - rollup
- - vue
- - webpack-sources
-
unplugin-vue-router@0.10.7(rollup@4.21.2)(vue-router@4.4.3(vue@3.5.3(typescript@5.5.4)))(vue@3.5.3(typescript@5.5.4)):
dependencies:
'@babel/types': 7.25.6
@@ -16684,6 +16686,11 @@ snapshots:
transitivePeerDependencies:
- marked
+ valaxy-addon-git-log@0.1.0(valaxy@packages+valaxy):
+ dependencies:
+ gravatar: 1.8.2
+ valaxy: link:packages/valaxy
+
valaxy@0.19.9(@babel/parser@7.25.6)(@types/markdown-it@14.1.2)(@types/node@22.5.4)(axios@1.7.7)(focus-trap@7.5.4)(postcss@8.4.45)(rollup@4.21.2)(typescript@5.5.4):
dependencies:
'@antfu/utils': 0.7.10