mirror of https://github.com/YunYouJun/valaxy
fix: on demand sub path for date-fns & not default load fuse
This commit is contained in:
parent
f18df8167b
commit
491ce4e83d
|
@ -16,6 +16,6 @@
|
|||
"valaxy-theme-custom": "workspace:*"
|
||||
},
|
||||
"devDependencies": {
|
||||
"typescript": "^5.6.3"
|
||||
"typescript": "^5.7.2"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"name": "valaxy-theme-custom",
|
||||
"version": "0.0.0",
|
||||
"private": true,
|
||||
"packageManager": "pnpm@9.13.2",
|
||||
"packageManager": "pnpm@9.14.2",
|
||||
"author": {
|
||||
"email": "me@yunyoujun.cn",
|
||||
"name": "YunYouJun",
|
||||
|
@ -23,6 +23,6 @@
|
|||
"types": "types/index.d.ts",
|
||||
"dependencies": {
|
||||
"@iconify-json/ant-design": "^1.2.2",
|
||||
"@iconify-json/simple-icons": "^1.2.11"
|
||||
"@iconify-json/simple-icons": "^1.2.13"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,9 +22,9 @@
|
|||
},
|
||||
"devDependencies": {
|
||||
"@iconify-json/carbon": "^1.2.4",
|
||||
"@iconify-json/simple-icons": "^1.2.11",
|
||||
"@iconify-json/simple-icons": "^1.2.13",
|
||||
"nodemon": "^3.1.7",
|
||||
"vite": "^5.4.11",
|
||||
"vite": "^6.0.0",
|
||||
"vitepress": "1.1.4"
|
||||
}
|
||||
}
|
||||
|
|
14
package.json
14
package.json
|
@ -3,7 +3,7 @@
|
|||
"type": "module",
|
||||
"version": "0.20.4",
|
||||
"private": true,
|
||||
"packageManager": "pnpm@9.13.2",
|
||||
"packageManager": "pnpm@9.14.2",
|
||||
"description": "📄 Vite & Vue powered static blog generator.",
|
||||
"author": {
|
||||
"email": "me@yunyoujun.cn",
|
||||
|
@ -82,13 +82,13 @@
|
|||
"@antfu/eslint-config": "2.17.0",
|
||||
"@iconify-json/logos": "^1.2.3",
|
||||
"@iconify-json/vscode-icons": "^1.2.2",
|
||||
"@microsoft/api-extractor": "^7.47.11",
|
||||
"@playwright/test": "^1.48.2",
|
||||
"@microsoft/api-extractor": "^7.48.0",
|
||||
"@playwright/test": "^1.49.0",
|
||||
"@types/debug": "^4.1.12",
|
||||
"@types/markdown-it-attrs": "^4.1.3",
|
||||
"@types/markdown-it-container": "^2.0.10",
|
||||
"@types/markdown-it-emoji": "^3.0.1",
|
||||
"@types/node": "^22.9.0",
|
||||
"@types/node": "^22.10.0",
|
||||
"@types/prompts": "^2.4.9",
|
||||
"@types/resolve": "^1.20.6",
|
||||
"bumpp": "^9.8.1",
|
||||
|
@ -96,7 +96,7 @@
|
|||
"decap-cms-app": "^3.4.0",
|
||||
"eslint": "^9.15.0",
|
||||
"https-localhost": "^4.7.1",
|
||||
"husky": "^9.1.6",
|
||||
"husky": "^9.1.7",
|
||||
"lint-staged": "^15.2.10",
|
||||
"npm-run-all": "^4.1.5",
|
||||
"prompts": "^2.4.2",
|
||||
|
@ -106,9 +106,9 @@
|
|||
"stylelint-config-standard-scss": "^13.1.0",
|
||||
"tsup": "^8.3.5",
|
||||
"tsx": "^4.19.2",
|
||||
"typescript": "^5.6.3",
|
||||
"typescript": "^5.7.2",
|
||||
"unbuild": "^2.0.0",
|
||||
"vitest": "^2.1.5",
|
||||
"vitest": "^2.1.6",
|
||||
"vue-tsc": "2.0.17",
|
||||
"zx": "^8.2.2"
|
||||
},
|
||||
|
|
|
@ -16,6 +16,6 @@
|
|||
"valaxy-theme-yun": "0.20.4"
|
||||
},
|
||||
"devDependencies": {
|
||||
"typescript": "^5.6.3"
|
||||
"typescript": "^5.7.2"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -29,8 +29,8 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"@rollup/pluginutils": "^5.1.3",
|
||||
"axios": "^1.7.7",
|
||||
"body-parser": "^1.20.3",
|
||||
"axios": "^1.7.8",
|
||||
"body-parser": "^2.0.1",
|
||||
"http-proxy-middleware": "^3.0.3",
|
||||
"js-yaml": "^4.1.0",
|
||||
"picocolors": "^1.1.1",
|
||||
|
@ -43,9 +43,9 @@
|
|||
"@types/splitpanes": "^2.2.6",
|
||||
"gray-matter": "^4.0.3",
|
||||
"splitpanes": "^3.1.5",
|
||||
"typescript": "^5.6.3",
|
||||
"typescript": "^5.7.2",
|
||||
"unbuild": "^2.0.0",
|
||||
"unplugin-vue-router": "^0.10.8",
|
||||
"vite": "^5.4.11"
|
||||
"vite": "^6.0.0"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<script lang="ts" setup>
|
||||
import { onMounted, ref } from 'vue'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import { differenceInSeconds } from 'date-fns'
|
||||
import { differenceInSeconds } from 'date-fns/differenceInSeconds'
|
||||
|
||||
const props = defineProps<{
|
||||
startTime: string
|
||||
|
|
|
@ -17,6 +17,6 @@
|
|||
"valaxy": "latest"
|
||||
},
|
||||
"dependencies": {
|
||||
"lightgallery": "^2.7.2"
|
||||
"lightgallery": "2.7.2"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,6 +19,6 @@
|
|||
"valaxy": "latest"
|
||||
},
|
||||
"dependencies": {
|
||||
"@waline/client": "^3.3.2"
|
||||
"@waline/client": "^3.4.0"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
<script lang="ts" setup>
|
||||
import { ref } from 'vue'
|
||||
import { ref, watch } from 'vue'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import { useFuseSearch } from 'valaxy'
|
||||
|
||||
import { isClient, onClickOutside, useScrollLock } from '@vueuse/core'
|
||||
|
||||
defineProps<{
|
||||
const props = defineProps<{
|
||||
open: boolean
|
||||
}>()
|
||||
const emit = defineEmits(['close'])
|
||||
|
@ -14,7 +14,7 @@ const input = ref('')
|
|||
|
||||
const isLocked = useScrollLock(isClient ? document.documentElement : null)
|
||||
const { t } = useI18n()
|
||||
const { results } = useFuseSearch(input)
|
||||
const { results, fetchFuseListData } = useFuseSearch(input)
|
||||
|
||||
const searchInputRef = ref<HTMLInputElement>()
|
||||
const searchContainer = ref<HTMLElement>()
|
||||
|
@ -22,6 +22,11 @@ const searchContainer = ref<HTMLElement>()
|
|||
onClickOutside(searchInputRef, () => {
|
||||
// emit('close')
|
||||
})
|
||||
|
||||
watch(() => props.open, () => {
|
||||
if (props.open)
|
||||
fetchFuseListData()
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
|
|
@ -3,7 +3,8 @@ import { computed, ref, watch } from 'vue'
|
|||
import { useFrontmatter } from 'valaxy'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
|
||||
import { differenceInMilliseconds, formatDistanceToNow } from 'date-fns'
|
||||
import { differenceInMilliseconds } from 'date-fns/differenceInMilliseconds'
|
||||
import { formatDistanceToNow } from 'date-fns/formatDistanceToNow'
|
||||
|
||||
const fm = useFrontmatter()
|
||||
const { t, locale } = useI18n()
|
||||
|
|
|
@ -4,7 +4,7 @@ import { useFrontmatter, useFullUrl, useSiteConfig } from 'valaxy'
|
|||
|
||||
import type { Article } from '@unhead/schema-org'
|
||||
import { defineArticle, useSchemaOrg } from '@unhead/schema-org'
|
||||
import { toDate } from 'date-fns'
|
||||
import { toDate } from 'date-fns/toDate'
|
||||
|
||||
const siteConfig = useSiteConfig()
|
||||
const frontmatter = useFrontmatter()
|
||||
|
|
|
@ -27,12 +27,12 @@
|
|||
"@ctrl/tinycolor": "^4.1.0",
|
||||
"@explosions/fireworks": "^0.1.0",
|
||||
"@iconify-json/ant-design": "^1.2.2",
|
||||
"@iconify-json/simple-icons": "^1.2.11",
|
||||
"@iconify-json/simple-icons": "^1.2.13",
|
||||
"@vueuse/motion": "^2.2.6",
|
||||
"animejs": "^3.2.2",
|
||||
"gsap": "^3.12.5",
|
||||
"primevue": "^4.2.2",
|
||||
"radix-vue": "^1.9.9"
|
||||
"primevue": "^4.2.3",
|
||||
"radix-vue": "^1.9.10"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/animejs": "^3.1.12",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import { isClient, useStorage } from '@vueuse/core'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import { setDefaultOptions } from 'date-fns'
|
||||
import { setDefaultOptions } from 'date-fns/setDefaultOptions'
|
||||
import { enUS, zhCN } from 'date-fns/locale'
|
||||
|
||||
export function useLocale() {
|
||||
|
|
|
@ -1 +1 @@
|
|||
export * from './fuse'
|
||||
export * from './useFuseSearch'
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { computed, onMounted, shallowRef } from 'vue'
|
||||
import { computed, shallowRef } from 'vue'
|
||||
import { useSiteConfig } from 'valaxy'
|
||||
import type { MaybeRefOrGetter } from '@vueuse/shared'
|
||||
import type { UseFuseOptions } from '@vueuse/integrations/useFuse'
|
||||
|
@ -31,12 +31,13 @@ export function useFuseSearch<T extends FuseListItem = FuseListItem>(
|
|||
// resultLimit: resultLimit.value,
|
||||
// matchAllWhenSearchEmpty: matchAllWhenSearchEmpty.value,
|
||||
}
|
||||
|
||||
const useFuseOptions = computed<UseFuseOptions<T>>(() => ({
|
||||
...defaultOptions,
|
||||
...options,
|
||||
}))
|
||||
|
||||
const ruse = useFuse<T>(search, fuseListData, useFuseOptions)
|
||||
const { fuse, results } = useFuse<T>(search, fuseListData, useFuseOptions)
|
||||
|
||||
async function fetchFuseListData(path?: string) {
|
||||
const fuseListDataPath = path
|
||||
|
@ -51,7 +52,10 @@ export function useFuseSearch<T extends FuseListItem = FuseListItem>(
|
|||
fuseListData.value = data
|
||||
}
|
||||
|
||||
onMounted(fetchFuseListData)
|
||||
return {
|
||||
fuse,
|
||||
results,
|
||||
|
||||
return ruse
|
||||
fetchFuseListData,
|
||||
}
|
||||
}
|
|
@ -1,6 +1,7 @@
|
|||
import type { ToDateOptionsWithTZ } from 'date-fns-tz'
|
||||
import { format as formatWithTZ, toZonedTime } from 'date-fns-tz'
|
||||
import { format, toDate } from 'date-fns'
|
||||
import { format } from 'date-fns/format'
|
||||
import { toDate } from 'date-fns/toDate'
|
||||
import { DateTime } from 'luxon'
|
||||
import type { Post } from '../../types'
|
||||
import { i18n } from '../modules/valaxy'
|
||||
|
|
|
@ -4,7 +4,7 @@ import { render } from 'ejs'
|
|||
import { ensureSuffix } from '@antfu/utils'
|
||||
import { consola } from 'consola'
|
||||
import { green, magenta } from 'picocolors'
|
||||
import { format } from 'date-fns'
|
||||
import { formatDate } from 'date-fns/format'
|
||||
import { exists } from './fs'
|
||||
import { getTemplate } from './scaffold'
|
||||
import { defaultPostTemplate, userRoot } from './constants'
|
||||
|
@ -67,5 +67,5 @@ async function genLayoutTemplate({
|
|||
|
||||
// 24h format
|
||||
const dateFormat = 'yyyy-MM-dd HH:mm:ss'
|
||||
return render(template, { title, layout, date: date ? format(new Date(), dateFormat) : '' })
|
||||
return render(template, { title, layout, date: date ? formatDate(new Date(), dateFormat) : '' })
|
||||
}
|
||||
|
|
|
@ -11,7 +11,7 @@ import consola from 'consola'
|
|||
import { colors } from 'consola/utils'
|
||||
|
||||
import { getBorderCharacters, table } from 'table'
|
||||
import { formatDate } from 'date-fns'
|
||||
import { formatDate } from 'date-fns/format'
|
||||
import ora from 'ora'
|
||||
|
||||
import { getCreatedTime, getUpdatedTime } from '../../utils/date'
|
||||
|
|
|
@ -47,7 +47,6 @@ const EXCLUDE = [
|
|||
'vue',
|
||||
// 'vue-i18n',
|
||||
'vue-router',
|
||||
'vue-demi',
|
||||
'@vue/devtools-api',
|
||||
|
||||
// addon, todo add externals for addon
|
||||
|
|
|
@ -64,23 +64,23 @@
|
|||
"dependencies": {
|
||||
"@antfu/install-pkg": "^0.4.1",
|
||||
"@antfu/utils": "^0.7.10",
|
||||
"@clack/prompts": "^0.8.1",
|
||||
"@clack/prompts": "^0.8.2",
|
||||
"@iconify-json/ri": "^1.2.3",
|
||||
"@intlify/unplugin-vue-i18n": "4",
|
||||
"@types/katex": "^0.16.7",
|
||||
"@types/luxon": "^3.4.2",
|
||||
"@unhead/addons": "^1.11.11",
|
||||
"@unhead/schema-org": "^1.11.11",
|
||||
"@unhead/vue": "^1.11.11",
|
||||
"@unhead/addons": "^1.11.13",
|
||||
"@unhead/schema-org": "^1.11.13",
|
||||
"@unhead/vue": "^1.11.13",
|
||||
"@valaxyjs/devtools": "workspace:*",
|
||||
"@valaxyjs/utils": "workspace:*",
|
||||
"@vitejs/plugin-vue": "^5.2.0",
|
||||
"@vitejs/plugin-vue": "^5.2.1",
|
||||
"@vue/devtools-api": "^7.6.4",
|
||||
"@vueuse/core": "^11.2.0",
|
||||
"@vueuse/integrations": "^11.2.0",
|
||||
"@vueuse/core": "12.0.0-beta.1",
|
||||
"@vueuse/integrations": "12.0.0-beta.1",
|
||||
"consola": "^3.2.3",
|
||||
"critters": "^0.0.25",
|
||||
"cross-spawn": "^7.0.5",
|
||||
"cross-spawn": "^7.0.6",
|
||||
"css-i18n": "^0.0.5",
|
||||
"date-fns": "^4.1.0",
|
||||
"date-fns-tz": "^3.2.0",
|
||||
|
@ -122,21 +122,21 @@
|
|||
"qrcode": "^1.5.4",
|
||||
"resolve-global": "^2.0.0",
|
||||
"sass": "^1.81.0",
|
||||
"shiki": "^1.23.0",
|
||||
"shiki": "^1.23.1",
|
||||
"star-markdown-css": "^0.5.3",
|
||||
"unocss": "^0.64.1",
|
||||
"unplugin-vue-components": "^0.27.4",
|
||||
"unplugin-vue-markdown": "^0.26.2",
|
||||
"unplugin-vue-router": "^0.10.8",
|
||||
"vanilla-lazyload": "^19.1.3",
|
||||
"vite": "^5.4.11",
|
||||
"vite": "^6.0.0",
|
||||
"vite-plugin-vue-devtools": "^7.6.4",
|
||||
"vite-plugin-vue-layouts": "^0.11.0",
|
||||
"vite-ssg": "^0.24.1",
|
||||
"vite-ssg-sitemap": "^0.8.1",
|
||||
"vue": "^3.5.13",
|
||||
"vue-i18n": "^10.0.4",
|
||||
"vue-router": "^4.4.5",
|
||||
"vue-router": "^4.5.0",
|
||||
"yargs": "^17.7.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
|
2999
pnpm-lock.yaml
2999
pnpm-lock.yaml
File diff suppressed because it is too large
Load Diff
|
@ -5,7 +5,7 @@ export default defineConfig({
|
|||
deps: {
|
||||
optimizer: {
|
||||
ssr: {
|
||||
include: ['@vue', '@vueuse', 'vue-demi'],
|
||||
include: ['@vue', '@vueuse'],
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
Loading…
Reference in New Issue