Skip to content

Commit 1ebca82

Browse files
committed
Refine nav locale and sidebar behavior
1 parent 3d43460 commit 1ebca82

3 files changed

Lines changed: 47 additions & 6 deletions

File tree

docs/.vitepress/config.mts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,7 @@ const zhResourceItems = [
3636
{ text: "资料库总览", link: "/zh/resources/" },
3737
{ text: "中文模板", link: "/zh/resources/templates/" },
3838
{ text: "中文参考", link: "/zh/resources/reference/" },
39-
{ text: "高级资源包", link: "/zh/resources/openai-advanced/" },
40-
{ text: "English Templates", link: "/en/resources/templates/" },
41-
{ text: "English Reference", link: "/en/resources/reference/" }
39+
{ text: "高级资源包", link: "/zh/resources/openai-advanced/" }
4240
];
4341

4442
const enLectureItems = [
@@ -71,9 +69,7 @@ const enResourceItems = [
7169
{ text: "Overview", link: "/en/resources/" },
7270
{ text: "English Templates", link: "/en/resources/templates/" },
7371
{ text: "English Reference", link: "/en/resources/reference/" },
74-
{ text: "Advanced Pack", link: "/en/resources/openai-advanced/" },
75-
{ text: "中文模板", link: "/zh/resources/templates/" },
76-
{ text: "中文参考", link: "/zh/resources/reference/" }
72+
{ text: "Advanced Pack", link: "/en/resources/openai-advanced/" }
7773
];
7874

7975
export default withMermaid(

docs/.vitepress/theme/index.js

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,42 @@ import './style.css'
33

44
let rootEnglishLabel = 'English'
55

6+
function dedupeLocaleMenuLinks() {
7+
if (typeof document === 'undefined') return
8+
9+
const containers = document.querySelectorAll(
10+
'.VPNavBarTranslations .items, .VPNavBarExtra .group.translations, .VPNavScreenTranslations .list'
11+
)
12+
13+
for (const container of containers) {
14+
const seen = new Set()
15+
const links = container.querySelectorAll('a[href]')
16+
17+
for (const link of links) {
18+
const label = link.textContent?.trim() || ''
19+
const href = link.getAttribute('href') || ''
20+
const key = `${label}::${href}`
21+
22+
if (seen.has(key)) {
23+
const removable = link.closest('.VPMenuLink, .item')
24+
removable?.remove()
25+
continue
26+
}
27+
28+
seen.add(key)
29+
}
30+
}
31+
}
32+
33+
function queueLocaleMenuDedupe() {
34+
if (typeof window === 'undefined') return
35+
window.requestAnimationFrame(() => {
36+
window.requestAnimationFrame(() => {
37+
dedupeLocaleMenuLinks()
38+
})
39+
})
40+
}
41+
642
function syncRootLocaleLabel(siteData, href = '') {
743
const locales = siteData.value?.locales
844
if (!locales?.root || !locales?.zh) return
@@ -28,10 +64,12 @@ export default {
2864
extends: DefaultTheme,
2965
enhanceApp(ctx) {
3066
syncRootLocaleLabel(ctx.siteData)
67+
queueLocaleMenuDedupe()
3168

3269
const previous = ctx.router.onAfterRouteChange
3370
ctx.router.onAfterRouteChange = async (to) => {
3471
syncRootLocaleLabel(ctx.siteData, to)
72+
queueLocaleMenuDedupe()
3573
if (previous) {
3674
await previous(to)
3775
}

docs/.vitepress/theme/style.css

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -481,6 +481,13 @@
481481
background-color: #FFFFFF !important;
482482
}
483483

484+
@media (min-width: 768px) {
485+
.VPNavBarSocialLinks {
486+
display: flex !important;
487+
align-items: center;
488+
}
489+
}
490+
484491
/* ---------- Tables ---------- */
485492
.vp-doc table {
486493
border-collapse: collapse;

0 commit comments

Comments
 (0)