Skip to content

Commit 888e03d

Browse files
committed
modify nav-bar and add VersionPicker
1 parent 55bad03 commit 888e03d

File tree

4 files changed

+83
-2
lines changed

4 files changed

+83
-2
lines changed

docs/src/.vitepress/config.mts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,18 @@ import { tabsMarkdownPlugin } from 'vitepress-plugin-tabs'
33
import mathjax3 from "markdown-it-mathjax3";
44
import footnote from "markdown-it-footnote";
55

6+
const navTemp = {
7+
nav: 'REPLACE_ME_DOCUMENTER_VITEPRESS',
8+
}
9+
10+
const nav = [
11+
...navTemp.nav,
12+
{ text: 'Benchmarks', link: 'https://qutip.org/QuantumToolbox.jl/benchmarks/' },
13+
{
14+
component: 'VersionPicker'
15+
}
16+
]
17+
618
// https://vitepress.dev/reference/site-config
719
export default defineConfig({
820
base: 'REPLACE_ME_DOCUMENTER_VITEPRESS',// TODO: replace this in makedocs!
@@ -35,7 +47,7 @@ export default defineConfig({
3547
detailedView: true
3648
}
3749
},
38-
nav: 'REPLACE_ME_DOCUMENTER_VITEPRESS',
50+
nav,
3951
sidebar: 'REPLACE_ME_DOCUMENTER_VITEPRESS',
4052
editLink: 'REPLACE_ME_DOCUMENTER_VITEPRESS',
4153
socialLinks: [
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
<!-- Adapted from https://github.com/MakieOrg/Makie.jl/blob/master/docs/src/.vitepress/theme/VersionPicker.vue -->
2+
3+
<script setup lang="ts">
4+
import { computed, ref, onMounted } from 'vue'
5+
import { useRoute } from 'vitepress'
6+
import VPNavBarMenuGroup from 'vitepress/dist/client/theme-default/components/VPNavBarMenuGroup.vue'
7+
import VPNavScreenMenuGroup from 'vitepress/dist/client/theme-default/components/VPNavScreenMenuGroup.vue'
8+
9+
const props = defineProps<{
10+
screenMenu?: boolean
11+
}>()
12+
13+
const route = useRoute()
14+
15+
const versions = ref([]);
16+
const currentVersion = ref('Versions');
17+
18+
const waitForGlobalDocumenterVars = () => {
19+
return new Promise((resolve) => {
20+
const checkInterval = setInterval(() => {
21+
if (window.DOC_VERSIONS && window.DOCUMENTER_CURRENT_VERSION) {
22+
clearInterval(checkInterval);
23+
resolve({
24+
versions: window.DOC_VERSIONS,
25+
currentVersion: window.DOCUMENTER_CURRENT_VERSION
26+
});
27+
}
28+
}, 100); // Check every 100ms
29+
});
30+
};
31+
32+
onMounted(async () => {
33+
const globalvars = await waitForGlobalDocumenterVars();
34+
versions.value = globalvars.versions.map((v) => {
35+
return {text: v, link: `${window.location.origin}/${v}/`}
36+
});
37+
currentVersion.value = globalvars.currentVersion;
38+
});
39+
40+
</script>
41+
42+
<template>
43+
<VPNavBarMenuGroup
44+
v-if="!screenMenu"
45+
:item="{ text: currentVersion, items: versions }"
46+
class="VPVersionPicker"
47+
/>
48+
<VPNavScreenMenuGroup
49+
v-else
50+
:text="currentVersion"
51+
:items="versions"
52+
class="VPVersionPicker"
53+
/>
54+
</template>
55+
56+
<style scoped>
57+
.VPVersionPicker :deep(button .text) {
58+
color: var(--vp-c-text-1) !important;
59+
}
60+
61+
.VPVersionPicker:hover :deep(button .text) {
62+
color: var(--vp-c-text-2) !important;
63+
}
64+
</style>

docs/src/.vitepress/theme/index.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import { h } from 'vue'
33
import type { Theme } from 'vitepress'
44
import DefaultTheme from 'vitepress/theme'
5+
import VersionPicker from "./VersionPicker.vue"
56

67
import { enhanceAppWithTabs } from 'vitepress-plugin-tabs/client'
78
import './style.css'
@@ -14,6 +15,7 @@ export default {
1415
})
1516
},
1617
enhanceApp({ app, router, siteData }) {
17-
enhanceAppWithTabs(app)
18+
enhanceAppWithTabs(app);
19+
app.component('VersionPicker', VersionPicker);
1820
}
1921
} satisfies Theme

docs/src/.vitepress/theme/style.css

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,10 +95,13 @@ code {
9595
#9558B2 30%,
9696
#CB3C33);
9797

98+
--vp-home-hero-image-background-image: none; /* remove the blur background */
99+
/* (default setting)
98100
--vp-home-hero-image-background-image: linear-gradient(-45deg,
99101
#9558B2 30%,
100102
#389826 30%,
101103
#CB3C33);
104+
*/
102105
--vp-home-hero-image-filter: blur(40px);
103106
}
104107

0 commit comments

Comments
 (0)