diff --git a/package.json b/package.json index 1d3b48d..64bab09 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vlib-docsify", - "version": "0.2.0", + "version": "0.3.0", "description": "", "main": "dist/node/index.js", "typings": "types/index.d.ts", diff --git a/src/client/theme-default/components/NavBarLinks.ts b/src/client/theme-default/components/NavBarLinks.ts index d34b8c4..606c7a8 100644 --- a/src/client/theme-default/components/NavBarLinks.ts +++ b/src/client/theme-default/components/NavBarLinks.ts @@ -3,6 +3,7 @@ import { useSiteData, useSiteDataByRoute, useRoute } from 'vitepress' import NavBarLink from './NavBarLink.vue' import NavDropdownLink from './NavDropdownLink.vue' import { DefaultTheme } from '../config' +import { inBrowser } from '/@app/utils' const platforms = ['GitHub', 'GitLab', 'Bitbucket'].map( (platform) => [platform, new RegExp(platform, 'i')] as const @@ -52,21 +53,30 @@ export default { return null } + // index.html + const base = siteData.value.base.endsWith('/') + ? siteData.value.base.slice(0, -1) + : siteData.value.base + + // inBrowser router + const routerPath = inBrowser ? route.path.slice(base.length) : route.path + const currentLangBase = localeKeys.find((v) => { if (v === '/') { return false } - return route.path.startsWith(v) + return routerPath.startsWith(v) }) const currentContentPath = currentLangBase - ? route.path.substring(currentLangBase.length - 1) - : route.path + ? routerPath.substring(currentLangBase.length - 1) + : routerPath const candidates = localeKeys.map((v) => { return { text: locales[v].label || locales[v].lang, - link: `${v}${currentContentPath}` + link: `${v.slice(0, -1)}${currentContentPath}` } }) + console.log(candidates) const currentLangKey = currentLangBase ? currentLangBase : '/' const selectText = locales[currentLangKey].selectText diff --git a/src/node/build/render.ts b/src/node/build/render.ts index bc95095..bd5f8fb 100644 --- a/src/node/build/render.ts +++ b/src/node/build/render.ts @@ -32,6 +32,8 @@ export async function renderPage( const virtualPage = localeFile(langToPrefix, resolveAlias(page, userAlias)) const routePath = `/${virtualPage.replace(/\.md$/, '')}` const siteData = resolveSiteDataByRoute(config.site, routePath) + // const base = config.site.base.slice(0, -1) + console.log('go -> ' + routePath) router.go(routePath) // lazy require server-renderer for production build const content = await require('@vue/server-renderer').renderToString(app)