-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathastro.config.ts
85 lines (84 loc) · 2.46 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
77
78
79
80
81
82
83
84
85
import mdx from '@astrojs/mdx'
import preact from '@astrojs/preact'
import { defineConfig } from 'astro/config'
import { h } from 'hastscript'
import rehypeAutolinkHeadings from 'rehype-autolink-headings'
import rehypeSlug from 'rehype-slug'
import rehypeKatex from 'rehype-katex'
import remarkMath from 'remark-math'
import remarkGfm from 'remark-gfm'
import inspectUrls from "@jsdevtools/rehype-url-inspector";
// https://astro.build/config
export default defineConfig({
integrations: [
mdx(),
preact(),
],
site: 'https://juxt.pro/',
markdown: {
shikiConfig: {
theme: 'css-variables'
},
remarkPlugins: [remarkMath, remarkGfm],
rehypePlugins: [
rehypeSlug,
rehypeKatex,
rehypeAutolinkHeadings,
[
rehypeAutolinkHeadings,
{
behavior: 'prepend',
properties: {
ariaHidden: true,
tabIndex: -1,
class: 'slug-a'
},
// Add svg for heading links
content: () => [
h(
'svg',
{
class: 'slug-svg',
viewBox: '0 0 16 16',
version: '1.1',
width: '1.5rem',
height: '1.5rem'
},
[
h('path', {
fillRule: 'evenodd',
d: 'M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z'
})
]
)
]
}
],
[
inspectUrls,
{
selectors: ["a[href]"],
inspectEach: (url) => {
// Ignore hash links
if (url.node.properties.href.startsWith("#")) {
return;
}
var href = new URL(url.node.properties.href, "https://juxt.pro/");
// Add target blank to external links
if (href.host !== "juxt.pro") {
url.node.properties.target = "_blank";
url.node.properties.rel = "noopener noreferrer";
}
}
}
]
]
},
vite: {
build: {
rollupOptions: {
external: ['/pagefind/pagefind.js'],
}
}
}
})