-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvelite.config.js
More file actions
54 lines (53 loc) · 1.4 KB
/
velite.config.js
File metadata and controls
54 lines (53 loc) · 1.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import { defineConfig, s } from 'velite';
import rehypePrettyCode from 'rehype-pretty-code';
import rehypeSlug from 'rehype-slug';
import { rehypePreMetadata } from '@/lib/rehype-pre-metadata.mjs';
import { REPOSITORIES } from './config/github';
export default defineConfig({
root: 'content',
mdx: {
rehypePlugins: [
rehypeSlug,
rehypePreMetadata,
[
rehypePrettyCode,
{
theme: {
dark: 'github-dark',
light: 'github-light',
},
keepBackground: false,
onVisitLine(node) {
if (node.children.length === 0) {
node.children = [{ type: 'text', value: ' ' }];
}
},
},
],
],
},
collections: {
docs: {
name: 'Doc',
pattern: '**/*.mdx',
schema: s
.object({
title: s.string(),
description: s.string().optional(),
slug: s.path(),
content: s.mdx(),
toc: s.toc(),
date: s.string().optional(),
raw: s.raw(),
})
.transform((data, { meta }) => {
const path = meta.path.replace(/\\/g, '/').replace(/.*content\//, 'content/');
return {
...data,
githubUrl: `${REPOSITORIES.WEBSITE}/blob/main/${path}`,
historyUrl: `${REPOSITORIES.WEBSITE}/commits/main/${path}`,
};
}),
},
},
});