mbcp/docs/.vitepress/config/common.ts

158 lines
5.4 KiB
TypeScript
Raw Permalink Normal View History

2024-08-31 07:54:41 +08:00
// 共有配置项导入index用
2024-08-28 11:56:19 +08:00
import {defineConfig} from 'vitepress'
2024-08-29 19:00:01 +08:00
import {generateSidebar} from 'vitepress-sidebar';
2024-09-06 15:42:16 +08:00
import {useData} from "vitepress";
2024-08-29 19:00:01 +08:00
import {zh} from "./zh";
import {en} from "./en";
import {ja} from "./ja";
import {zht} from "./zht";
2024-08-28 11:38:46 +08:00
2024-08-29 19:00:01 +08:00
let defaultLocale = 'zh';
const commonSidebarOptions = {
collapsed: true,
convertSameNameSubFileToGroupIndexPage: true,
useTitleFromFrontmatter: true,
2024-09-04 19:21:28 +08:00
2024-08-30 14:29:58 +08:00
useFolderTitleFromIndexFile: true,
useFolderLinkFromIndexFile: true,
2024-08-29 19:00:01 +08:00
includeFolderIndexFile: true,
2024-08-30 17:56:01 +08:00
rootGroupText: 'MBCP',
2024-08-29 19:00:01 +08:00
}
2024-08-30 17:56:01 +08:00
/**
* Generate sidebar config
* multiple languages and sections
* @returns {any[]}
*/
function generateSidebarConfig(): any[] {
let sections = ["api", "refer", "guide"]
let languages = ['zh', 'en', 'ja', 'zht']
let ret = []
for (let language of languages) {
for (let section of sections) {
if (language === defaultLocale) {
ret.push({
basePath: `/${section}/`,
scanStartPath: `${language}/${section}`,
resolvePath: `/${section}/`,
...commonSidebarOptions
})
} else {
ret.push({
basePath: `/${language}/${section}/`,
scanStartPath: `${language}/${section}`,
resolvePath: `/${language}/${section}/`,
...commonSidebarOptions
})
}
}
}
return ret
}
console.log(generateSidebarConfig())
2024-08-28 11:38:46 +08:00
export const common = defineConfig({
2024-08-31 06:06:32 +08:00
head: [
2024-08-31 07:31:06 +08:00
['link', {rel: 'icon', type: 'image/svg+xml', href: '/mbcp-logo.svg'}],
['link', {rel: 'stylesheet', href: 'https://fonts.font.im/css?family=Cousine:400,400i,700,700i|Poppins:100,100i,200,200i,300,300i,400,400i,500,500i,600,600i,700,700i,800,800i,900,900i'}],
2024-08-31 06:06:32 +08:00
],
2024-08-29 19:00:01 +08:00
markdown: {
math: true
},
rewrites: {
[`${defaultLocale}/:rest*`]: ":rest*",
2024-08-28 12:02:30 +08:00
},
2024-08-28 11:38:46 +08:00
themeConfig: {
2024-08-31 06:06:32 +08:00
logo: '/mbcp-logo.svg',
2024-08-29 19:00:01 +08:00
sidebar: generateSidebar(
[
2024-08-30 17:56:01 +08:00
...generateSidebarConfig()
2024-08-29 19:00:01 +08:00
]
),
2024-08-28 11:38:46 +08:00
socialLinks: [
{icon: 'github', link: 'https://github.com/snowykami/mbcp'}
2024-08-29 19:00:01 +08:00
],
2024-08-31 07:54:41 +08:00
search: {
provider: 'local',
options: {
locales: {
root: {
translations: {
button: {
buttonText: '搜索文档',
buttonAriaLabel: '打开搜索框',
},
modal: {
noResultsText: '没有找到搜索结果',
resetButtonTitle: '清除查询条件',
footer: {
selectText: '选择',
navigateText: '切换',
}
}
},
},
en: {
translations: {
button: {
buttonText: 'Search',
buttonAriaLabel: 'Search',
},
modal: {
noResultsText: 'No results found',
resetButtonTitle: 'Reset search query',
footer: {
selectText: 'Select',
navigateText: 'Navigate',
}
}
}
},
zht: {
translations: {
button: {
buttonText: '搜索文檔',
buttonAriaLabel: '打開搜索框',
},
modal: {
noResultsText: '沒有找到搜索結果',
resetButtonTitle: '清除查詢條件',
footer: {
selectText: '選擇',
navigateText: '切換',
}
}
}
},
ja: {
translations: {
button: {
buttonText: '検索',
buttonAriaLabel: '検索を開く',
},
modal: {
noResultsText: '検索結果が見つかりません',
resetButtonTitle: 'リセット',
footer: {
selectText: '選択',
navigateText: '移動',
}
}
}
}
}
}
}
2024-08-30 14:29:58 +08:00
},
sitemap: {
hostname: 'https://mbcp.sfkm.me'
2024-08-29 19:00:01 +08:00
},
2024-08-31 07:54:41 +08:00
lastUpdated: true,
2024-08-29 19:00:01 +08:00
locales: {
root: {label: "简体中文", ...zh},
en: {label: "English", ...en},
ja: {label: "日本語", ...ja},
zht: {label: "繁體中文", ...zht},
2024-08-28 11:38:46 +08:00
},
})