valaxy 0.7.6 → 0.8.0
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/README.md +4 -0
- package/client/README.md +3 -0
- package/client/components/ValaxyCopyright.vue +1 -1
- package/client/components/ValaxyMd.vue +2 -4
- package/client/components/ValaxyOverlay.vue +2 -2
- package/client/components/ValaxySidebar.vue +1 -2
- package/client/composables/comments/twikoo.ts +25 -1
- package/client/composables/comments/waline.ts +32 -23
- package/client/composables/{copy-code.ts → features/copy-code.ts} +0 -0
- package/client/composables/features/index.ts +1 -0
- package/client/composables/index.ts +2 -1
- package/client/composables/outline.ts +1 -1
- package/client/composables/post.ts +1 -1
- package/client/composables/widgets/aplayer.ts +10 -5
- package/client/index.ts +2 -0
- package/client/modules/nprogress.ts +1 -1
- package/client/modules/pinia.ts +1 -1
- package/client/modules/valaxy.ts +1 -1
- package/client/scaffolds/post.md +6 -0
- package/client/styles/common/code.scss +1 -1
- package/client/styles/common/scrollbar.scss +1 -1
- package/client/{types.ts → types/index.ts} +0 -0
- package/client/utils/cdn.ts +1 -0
- package/client/utils/index.ts +1 -0
- package/dist/{chunk-HP2UOVSL.mjs → chunk-ER6SQ4ZW.mjs} +204 -204
- package/dist/{chunk-BTP4CLJN.js → chunk-VGABMGJA.js} +203 -203
- package/dist/config-60c840d8.d.ts +202 -0
- package/dist/node/cli.js +11 -11
- package/dist/node/cli.mjs +11 -11
- package/dist/node/index.d.ts +140 -15
- package/dist/node/index.js +1 -1
- package/dist/node/index.mjs +1 -1
- package/dist/types/index.d.ts +154 -10
- package/index.d.ts +5 -1
- package/package.json +14 -9
- package/types/config.ts +218 -0
- package/types/data.ts +31 -0
- package/types/index.ts +3 -0
- package/types/posts.ts +133 -0
- package/client/app/data.ts +0 -0
- package/client/components/ValaxyRightSidebar.vue +0 -73
- package/client/components/ValaxyToc.vue +0 -140
- package/client/modules/README.md +0 -11
- package/client/pages/README.md +0 -20
- package/client/shims.d.ts +0 -42
- package/client.d.ts +0 -2
- package/dist/index-df14d281.d.ts +0 -462
package/README.md
CHANGED
|
@@ -4,6 +4,10 @@
|
|
|
4
4
|
|
|
5
5
|
Read [YunYouJun/valaxy](https://github.com/YunYouJun/valaxy) for more info.
|
|
6
6
|
|
|
7
|
+
## Creating customized templates
|
|
8
|
+
|
|
9
|
+
Learn how to creating customized templates in [here](./docs/en/creating-templates.md)
|
|
10
|
+
|
|
7
11
|
## FAQ
|
|
8
12
|
|
|
9
13
|
- `exports`: `src/index.ts` for virtual module
|
package/client/README.md
ADDED
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
<script lang="ts" setup>
|
|
2
|
-
import type { Post } from 'valaxy'
|
|
3
2
|
import { onMounted, ref } from 'vue'
|
|
4
3
|
import { useI18n } from 'vue-i18n'
|
|
5
|
-
import { useAplayer, useCodePen } from '
|
|
6
|
-
import {
|
|
7
|
-
import { wrapTable } from '~/utils'
|
|
4
|
+
import { useAplayer, useCodePen, useCopyCode, wrapTable } from '..'
|
|
5
|
+
import type { Post } from '../../types'
|
|
8
6
|
|
|
9
7
|
const props = defineProps<{
|
|
10
8
|
frontmatter: Post
|
|
@@ -15,8 +15,8 @@ withDefaults(defineProps<{
|
|
|
15
15
|
<style lang="scss">
|
|
16
16
|
@use "sass:map";
|
|
17
17
|
|
|
18
|
-
@use "
|
|
19
|
-
@use "
|
|
18
|
+
@use "valaxy/client/styles/vars" as *;
|
|
19
|
+
@use "valaxy/client/styles/mixins" as *;
|
|
20
20
|
|
|
21
21
|
.va-overlay {
|
|
22
22
|
background-color: rgba(0, 0, 0, 0.3);
|
|
@@ -1,8 +1,32 @@
|
|
|
1
1
|
import { isClient, useScriptTag } from '@vueuse/core'
|
|
2
|
+
import { computed } from 'vue'
|
|
2
3
|
import { useI18n } from 'vue-i18n'
|
|
3
4
|
import { useRoute } from 'vue-router'
|
|
5
|
+
import { useConfig } from '../..'
|
|
4
6
|
|
|
7
|
+
declare global {
|
|
8
|
+
interface Window {
|
|
9
|
+
// extend the window
|
|
10
|
+
twikoo: {
|
|
11
|
+
init: (options: {
|
|
12
|
+
envId: string
|
|
13
|
+
el: string
|
|
14
|
+
} | any) => any
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* A simple, safe, free comment system.
|
|
21
|
+
* @public
|
|
22
|
+
* @see https://github.com/imaegoo/twikoo
|
|
23
|
+
* @see https://twikoo.js.org/
|
|
24
|
+
* @param options
|
|
25
|
+
*/
|
|
5
26
|
export function useTwikoo(options: {} = {}) {
|
|
27
|
+
const config = useConfig()
|
|
28
|
+
const cdnPrefix = computed(() => config.value.cdn.prefix)
|
|
29
|
+
|
|
6
30
|
const route = useRoute()
|
|
7
31
|
const { locale } = useI18n()
|
|
8
32
|
|
|
@@ -25,7 +49,7 @@ export function useTwikoo(options: {} = {}) {
|
|
|
25
49
|
}
|
|
26
50
|
|
|
27
51
|
// 直接使用 CDN
|
|
28
|
-
useScriptTag(
|
|
52
|
+
useScriptTag(`${cdnPrefix.value}twikoo@1.5.1/dist/twikoo.all.min.js`, () => {
|
|
29
53
|
initTwikoo(options)
|
|
30
54
|
})
|
|
31
55
|
}
|
|
@@ -1,21 +1,34 @@
|
|
|
1
|
-
import { isClient
|
|
2
|
-
import {
|
|
3
|
-
import { onUnmounted, watch } from 'vue'
|
|
1
|
+
import { isClient } from '@vueuse/core'
|
|
2
|
+
import { onMounted, onUnmounted, watch } from 'vue'
|
|
4
3
|
import { useI18n } from 'vue-i18n'
|
|
5
4
|
import { useRoute } from 'vue-router'
|
|
6
5
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
6
|
+
import type { WalineInitOptions, WalineInstance } from '@waline/client'
|
|
7
|
+
|
|
8
|
+
import '@waline/client/dist/waline.css'
|
|
9
|
+
import { cdnPrefix } from '../../utils'
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* A Simple, Safe Comment System.
|
|
13
|
+
* @public
|
|
14
|
+
* @see https://github.com/walinejs/waline
|
|
15
|
+
* @see https://waline.js.org/
|
|
16
|
+
* @param options
|
|
17
|
+
* @returns
|
|
18
|
+
*/
|
|
19
|
+
export function useWaline(options: {} = {}, cdn = cdnPrefix) {
|
|
20
|
+
if (!isClient)
|
|
21
|
+
return
|
|
13
22
|
|
|
14
23
|
const route = useRoute()
|
|
15
24
|
|
|
16
25
|
const { locale } = useI18n()
|
|
17
26
|
|
|
18
|
-
let waline:
|
|
27
|
+
let waline: WalineInstance | null | undefined
|
|
28
|
+
|
|
29
|
+
onMounted(() => {
|
|
30
|
+
initWaline(options)
|
|
31
|
+
})
|
|
19
32
|
|
|
20
33
|
/**
|
|
21
34
|
* init waline
|
|
@@ -23,28 +36,24 @@ export function useWaline(options: {} = {}) {
|
|
|
23
36
|
* @returns
|
|
24
37
|
*/
|
|
25
38
|
function initWaline(options: {} = {}) {
|
|
26
|
-
|
|
27
|
-
return
|
|
28
|
-
|
|
29
|
-
const defaultOptions = {
|
|
39
|
+
const defaultOptions: WalineInitOptions = {
|
|
30
40
|
el: '.comment #waline',
|
|
41
|
+
serverURL: '',
|
|
31
42
|
lang: locale.value,
|
|
32
43
|
dark: 'html.dark',
|
|
33
44
|
emoji: [
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
45
|
+
`${cdn}@waline/emojis/bilibili/`,
|
|
46
|
+
`${cdn}@waline/emojis/qq/`,
|
|
47
|
+
`${cdn}@waline/emojis/weibo/`,
|
|
37
48
|
],
|
|
38
49
|
path: route.path,
|
|
39
50
|
}
|
|
40
51
|
const walineOptions = Object.assign(defaultOptions, options)
|
|
41
|
-
return window.Waline.init(walineOptions)
|
|
42
|
-
}
|
|
43
52
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}
|
|
53
|
+
import('@waline/client').then(({ init }) => {
|
|
54
|
+
waline = init(walineOptions)
|
|
55
|
+
})
|
|
56
|
+
}
|
|
48
57
|
|
|
49
58
|
watch(() => route.path, (path) => {
|
|
50
59
|
if (!waline)
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './copy-code'
|
|
@@ -5,7 +5,7 @@ export * from './tag'
|
|
|
5
5
|
|
|
6
6
|
// common
|
|
7
7
|
export * from './common'
|
|
8
|
-
|
|
8
|
+
export * from './features'
|
|
9
9
|
export * from './helper'
|
|
10
10
|
export * from './dark'
|
|
11
11
|
export * from './layout'
|
|
@@ -13,6 +13,7 @@ export * from './widgets'
|
|
|
13
13
|
export * from './locale'
|
|
14
14
|
|
|
15
15
|
export * from './sidebar'
|
|
16
|
+
export * from './outline'
|
|
16
17
|
|
|
17
18
|
// comment
|
|
18
19
|
export * from './comments'
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Ref } from 'vue'
|
|
2
2
|
import { onMounted, onUnmounted, onUpdated } from 'vue'
|
|
3
|
+
import { throttleAndDebounce } from '../utils'
|
|
3
4
|
import type { Header } from '../../types'
|
|
4
|
-
import { throttleAndDebounce } from '~/utils'
|
|
5
5
|
|
|
6
6
|
interface HeaderWithChildren extends Header {
|
|
7
7
|
children?: Header[]
|
|
@@ -2,8 +2,8 @@ import type { Ref } from 'vue'
|
|
|
2
2
|
import { computed } from 'vue'
|
|
3
3
|
import { useRoute, useRouter } from 'vue-router'
|
|
4
4
|
import { useI18n } from 'vue-i18n'
|
|
5
|
-
import { sortByDate } from '../utils'
|
|
6
5
|
import type { Post } from '../../types'
|
|
6
|
+
import { sortByDate } from '../utils'
|
|
7
7
|
|
|
8
8
|
export const usePostTitle = (post: Ref<Post>) => {
|
|
9
9
|
const { locale } = useI18n()
|
|
@@ -1,23 +1,28 @@
|
|
|
1
1
|
import { useScriptTag } from '@vueuse/core'
|
|
2
2
|
import { useHead } from '@vueuse/head'
|
|
3
|
+
import { computed } from 'vue'
|
|
4
|
+
import { useConfig } from '../..'
|
|
3
5
|
|
|
4
6
|
/**
|
|
5
7
|
* use MetingJS and Aplayer
|
|
6
|
-
* https://github.com/MoePlayer/APlayer
|
|
7
|
-
* https://github.com/metowolf/MetingJS
|
|
8
|
+
* @see https://github.com/MoePlayer/APlayer
|
|
9
|
+
* @see https://github.com/metowolf/MetingJS
|
|
8
10
|
*/
|
|
9
11
|
export function useAplayer() {
|
|
12
|
+
const config = useConfig()
|
|
13
|
+
const cdnPrefix = computed(() => config.value.cdn.prefix)
|
|
14
|
+
|
|
10
15
|
useHead({
|
|
11
16
|
link: [
|
|
12
17
|
{
|
|
13
18
|
rel: 'stylesheet',
|
|
14
|
-
href:
|
|
19
|
+
href: `${cdnPrefix.value}aplayer/dist/APlayer.min.css`,
|
|
15
20
|
},
|
|
16
21
|
],
|
|
17
22
|
})
|
|
18
23
|
|
|
19
24
|
// load meting after aplayer
|
|
20
|
-
useScriptTag(
|
|
21
|
-
useScriptTag(
|
|
25
|
+
useScriptTag(`${cdnPrefix.value}aplayer/dist/APlayer.min.js`, () => {
|
|
26
|
+
useScriptTag(`${cdnPrefix.value}meting@2/dist/Meting.min.js`)
|
|
22
27
|
})
|
|
23
28
|
}
|
package/client/index.ts
CHANGED
package/client/modules/pinia.ts
CHANGED
package/client/modules/valaxy.ts
CHANGED
|
@@ -15,7 +15,7 @@ import type { PageDataPayload } from '../../types'
|
|
|
15
15
|
import { initConfig, valaxyConfigSymbol } from '../config'
|
|
16
16
|
import { ensureSuffix } from '@antfu/utils'
|
|
17
17
|
|
|
18
|
-
import type { UserModule } from '
|
|
18
|
+
import type { UserModule } from 'valaxy/client/types'
|
|
19
19
|
|
|
20
20
|
// @ts-expect-error virtual
|
|
21
21
|
import messages from '/@valaxyjs/locales'
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const cdnPrefix = 'https://npm.elemecdn.com/'
|
package/client/utils/index.ts
CHANGED