-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmdsvex.config.js
More file actions
49 lines (47 loc) · 1.49 KB
/
mdsvex.config.js
File metadata and controls
49 lines (47 loc) · 1.49 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
import rehypeAutolinkHeadings from 'rehype-autolink-headings';
import rehypeKatexSvelte from 'rehype-katex-svelte';
import rehypeSlug from 'rehype-slug';
import remarkMath from 'remark-math';
import remarkGfm from 'remark-gfm';
import remarkGemoji from 'remark-gemoji';
import remarkEmbedder from '@remark-embedder/core';
import oembedTransformer from '@remark-embedder/transformer-oembed';
// import enhancedImage from '@lzinga/mdsvex-enhanced-image';
import rehypeFigure from 'rehype-figure';
import rehypeExternalLinks from 'rehype-external-links';
import { createHighlighter } from '@svelte-dev/pretty-code';
import { remarkReadingTime } from './src/lib/remarkReadingTime.js';
const config = {
extensions: ['.md'],
highlight: {
highlighter: createHighlighter({
// keepBackground: false,
theme: 'github-dark'
})
},
smartypants: {
dashes: 'oldschool'
},
remarkPlugins: [
remarkReadingTime,
remarkMath,
remarkGfm,
remarkGemoji,
[remarkEmbedder.default, {
transformers: [oembedTransformer.default],
handleError: ({ error, url }) => {
console.error(`Failed to embed ${url}:`, error);
return `<a href="${url}">${url}</a>`;
}
}]
// [enhancedImage, { attributes: { loading: 'lazy', fetchpriority: 'low' } }]
],
rehypePlugins: [
rehypeKatexSvelte,
rehypeSlug,
rehypeFigure,
[rehypeExternalLinks, { target: ['_blank'], rel: ['noopener noreferrer'] }],
[rehypeAutolinkHeadings, { behavior: 'append', content: { type: 'text', value: '#' } }]
]
};
export default config;