|
1 | | -import { defineConfig } from 'vitepress' |
| 1 | +import assert from 'node:assert' |
| 2 | + |
| 3 | +import { defineConfig, type DefaultTheme } from 'vitepress' |
2 | 4 | import * as footnote from 'markdown-it-footnote' |
3 | 5 |
|
4 | | -import { generate_index_tex } from './theme/faq_data' |
| 6 | +import { generate_index_tex, generate_prev_next_links } from './theme/faq_data' |
5 | 7 | import LinkRender from './theme/link_render' |
6 | 8 |
|
7 | 9 | export default defineConfig({ |
@@ -83,6 +85,7 @@ export default defineConfig({ |
83 | 85 | { text: '将 LaTeX 转换为 Word', link: '/guide/converting-to-word' }, |
84 | 86 | { text: 'LaTeX 学习与使用资源', link: '/guide/resources' }, |
85 | 87 | { text: '常用命令', link: '/guide/commands' }, |
| 88 | + // `/faq/`会记于`*.tex`的注释中,需尽量简短,故不前缀`/guide/`;相关影响在`transformPageData`中修复 |
86 | 89 | { text: '疑难杂症', link: '/faq/' }, |
87 | 90 | ], |
88 | 91 | }, |
@@ -146,4 +149,24 @@ export default defineConfig({ |
146 | 149 | } |
147 | 150 | }, |
148 | 151 | buildEnd: generate_index_tex, |
| 152 | + transformPageData(page, context) { |
| 153 | + // Add pre/next links to `/faq/*` |
| 154 | + // https://vitepress.dev/reference/default-theme-prev-next-links |
| 155 | + if (page.relativePath === 'faq/index.md') { |
| 156 | + // 确认`sidebar`改得不太多 |
| 157 | + const sidebar = context.siteConfig.userConfig.themeConfig.sidebar['/guide'] as DefaultTheme.SidebarItem[] |
| 158 | + assert.ok(sidebar) |
| 159 | + const section = sidebar.at(-2) |
| 160 | + assert.strictEqual(section?.text, '常见问题') |
| 161 | + assert.strictEqual(section.items?.at(-1)?.link, '/faq/') |
| 162 | + |
| 163 | + // Fix pre/next links |
| 164 | + page.frontmatter.prev ??= section.items.at(-2) |
| 165 | + page.frontmatter.next ??= sidebar.at(-1)?.items?.at(0) |
| 166 | + } else if (page.relativePath.startsWith('faq/')) { |
| 167 | + const { prev, next } = generate_prev_next_links(page) |
| 168 | + page.frontmatter.prev ??= prev |
| 169 | + page.frontmatter.next ??= next |
| 170 | + } |
| 171 | + }, |
149 | 172 | }) |
0 commit comments