返回 slidev
nav-controls.ts
根目录 / packages / slidev / node / virtual / nav-controls.ts
1 import type { VirtualModuleTemplate } from './types'
2 import { existsSync } from 'node:fs'
3 import { join } from 'pathe'
4 import { toAtFS } from '../resolver'
5
6 export const templateNavControls: VirtualModuleTemplate = {
7 id: '/@slidev/custom-nav-controls',
8 getContent({ roots }) {
9 const components = roots
10 .flatMap((root) => {
11 return [
12 join(root, 'custom-nav-controls.vue'),
13 join(root, 'CustomNavControls.vue'),
14 ]
15 })
16 .filter(i => existsSync(i))
17
18 const imports = components.map((i, idx) => `import __n${idx} from '${toAtFS(i)}'`).join('\n')
19 const render = components.map((i, idx) => `h(__n${idx})`).join(',')
20
21 return `${imports}
22 import { h } from 'vue'
23 export default {
24 render: () => [${render}],
25 }`
26 },
27 }
28
28 lines TYPESCRIPT