-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathastro.config.ts
76 lines (70 loc) · 2.85 KB
/
astro.config.ts
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
import { defineConfig } from "astro/config";
// https://astro.build/config
import tailwind from "@astrojs/tailwind";
// https://astro.build/config
import mdx from "@astrojs/mdx";
import rehypeRewrite from "rehype-rewrite";
import remarkGfm from "remark-gfm";
import type { Root, Element } from "hast";
// https://astro.build/config
// import vercel from "@astrojs/vercel/serverless";
// https://astro.build/config
// import netlify from "@astrojs/netlify/functions";
// https://astro.build/config
export default defineConfig({
site: 'https://lakshchakraborty.com',
markdown: {
drafts: true,
},
integrations: [
tailwind(),
mdx({
remarkPlugins: [remarkGfm],
rehypePlugins: [
[
rehypeRewrite,
{
selector: "h1",
rewrite: (node: Element, index: number, parent: Element) => {
const headingNum = parent.children
.filter((value) => {
return (
value.type === "element" &&
(value.tagName === "h1" ||
value.properties!.className === "md-heading")
);
})
.findIndex((value) => {
return value === node;
});
if (node.type === "element") {
const copy = JSON.parse(JSON.stringify(node));
node.tagName = "div";
node.properties!.className = "md-heading";
const newDiv: Element = {
type: "element",
tagName: "div",
children: [
{
type: "element",
tagName: "div",
children: [
{
type: "text",
value: String(headingNum + 1),
},
],
},
],
};
node.children = [newDiv, copy];
}
},
},
],
],
}),
],
// output: "server",
// adapter: vercel()
});