-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathastro.config.mjs
83 lines (79 loc) · 2.38 KB
/
astro.config.mjs
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
import { defineConfig } from 'astro/config';
// import mdx from '@astrojs/mdx';
// import sitemap from '@astrojs/sitemap';
import rehypeAutolinkHeadings from 'rehype-autolink-headings';
import rehypeWrapAll from 'rehype-wrap-all';
import rehypeRewrite from 'rehype-rewrite';
import remarkCodeTitles from "remark-flexible-code-titles";
import remarkUnwrapImages from 'remark-unwrap-images';
import rehypePrettyCode from 'rehype-pretty-code';
const prettyCodeOptions = {
theme: "github-dark",
onVisitLine(node) {
if (node.children.length === 0) {
node.children = [
{
type: "text",
value: " ",
},
];
}
},
onVisitHighlightedLine(node) {
node.properties.className.push("highlighted");
},
onVisitHighlightedWord(node) {
node.properties.className = ["word"];
},
tokensMap: {},
};
// https://astro.build/config
export default defineConfig({
site: 'https://blog.x7md.net',
redirects: {
'/about-me': '/about',
"/blog/[...slug]": "/posts/[...slug]"
},
markdown: {
syntaxHighlight: false,
remarkPlugins: [[remarkUnwrapImages, {}], [remarkCodeTitles, {}]],
rehypePlugins: [[rehypePrettyCode, prettyCodeOptions] ,[rehypeAutolinkHeadings, {
behavior: 'prepend'
},
],
// ['rehype-figure-for-img', {}],
[rehypeWrapAll, {
selector: 'img',
wrapper: 'figure data-img .text-center'
}],
[rehypeRewrite, {
rewrite: (node, index, parent) => {
// remove h2 footnote
if(node.properties?.id == 'footnote-label') {
node.children = [];
parent.children = parent.children.slice(1)
}
if(node.tagName == "img") {
// console.log(parent)
parent.children = [...parent.children, {
type: 'element',
tagName: "figcaption",
properties: {
class: "text-xs"
},
children: [
{
type: "element",
tagName: "small",
children: [
{type: 'text', value: node.properties.alt}
]
}
]
}]
}
}
}]
],
},
});