Merge pull request #155 from pengzhanbo/fix-notes

perf(theme): redirect locales page
This commit is contained in:
pengzhanbo 2024-08-27 05:55:21 +08:00 committed by GitHub
commit befd779ed5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 6 additions and 12 deletions

View File

@ -3,7 +3,6 @@ import { computed } from 'vue'
import { normalizeLink } from '../utils/index.js'
import { useThemeData } from './theme-data.js'
import { useData } from './data.js'
import { getSidebarFirstLink, useSidebarData } from './sidebar.js'
import { useBlogPageData } from './page.js'
export function useLangs({
@ -12,7 +11,6 @@ export function useLangs({
const theme = useThemeData()
const { page } = useData()
const routeLocale = useRouteLocale()
const sidebar = useSidebarData()
const { isBlogPost } = useBlogPageData()
const currentLang = computed(() => {
@ -24,7 +22,10 @@ export function useLangs({
})
const getPageLink = (locale: string) => {
const pagePath = page.value.path.slice(routeLocale.value.length)
const filepath = page.value.filePathRelative
? `/${page.value.filePathRelative}`
: page.value.path
const pagePath = filepath.slice(routeLocale.value.length)
const targetPath = normalizeLink(locale, pagePath)
const { notFound, path } = resolveRoute(targetPath)
if (!notFound)
@ -34,14 +35,6 @@ export function useLangs({
if (isBlogPost.value && blog !== false)
return withBase(blog?.link || normalizeLink(locale, 'blog/'))
const sidebarList = sidebar.value
if (sidebarList.length > 0) {
const link = getSidebarFirstLink(sidebarList)
if (link)
return link
}
const home = withBase(theme.value.home || '/')
const fallbackResolve = resolveRoute(withBase(locale))
return fallbackResolve.notFound ? home : fallbackResolve.path

View File

@ -147,7 +147,7 @@ export function resolveOptions(
const note = findNote(relativePath)
const prefix = notes?.link || ''
const args: string[] = [
locale,
prefix.startsWith(locale) ? '/' : locale,
prefix,
note?.link || '',
]

View File

@ -78,6 +78,7 @@ export function plumeTheme(options: PlumeThemeOptions = {}): Theme {
await prepareData(app)
})
const { localeOptions } = await waitForConfigLoaded()
await waitForAutoFrontmatter()
await prepareThemeData(app, localeOptions)
await prepareData(app)
},