-
Notifications
You must be signed in to change notification settings - Fork 1
/
mdsvex.config.js
49 lines (40 loc) · 1.02 KB
/
mdsvex.config.js
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
import { defineMDSveXConfig as defineConfig } from 'mdsvex';
import { visit } from 'unist-util-visit';
const config = defineConfig({
extensions: ['.svelte.md', '.md', '.svx'],
smartypants: {
dashes: 'oldschool'
},
remarkPlugins: [
() => {
return (tree, file) => {
let summary = [];
let summaryLength = 0;
visit(tree, 'text', (node) => {
if (summaryLength >= 100) {
return;
}
const remainingLength = 100 - summaryLength;
let text = node.value.trim();
// new text would surpass summaryLength
if (text.length > remainingLength) {
// check for next ' ' after remainingLength
const index = text.indexOf(' ', remainingLength);
if (index > 0) {
text = text.substring(0, index);
}
}
summaryLength += text.length;
summary.push(text);
});
// add summary to frontmatter data
if (!file.data.fm) {
file.data.fm = {};
}
file.data.fm.summary = summary.join(' ');
};
}
],
rehypePlugins: []
});
export default config;