-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathastro.config.ts
More file actions
76 lines (74 loc) · 2.07 KB
/
astro.config.ts
File metadata and controls
76 lines (74 loc) · 2.07 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
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, passthroughImageService } from 'astro/config'
import sitemap from '@astrojs/sitemap'
import tailwind from '@astrojs/tailwind'
import mdx from '@astrojs/mdx'
import shiki, { type RehypeShikiOptions } from '@shikijs/rehype'
import rehypeShiftHeading, {
type Options as RehypeShiftOptions,
} from 'rehype-shift-heading'
import icon from 'astro-icon'
import { h } from 'hastscript'
import org from './src/lib/astro-org'
import { replaceOrgLinks } from './src/lib/plugins'
export default defineConfig({
trailingSlash: 'always',
prefetch: true,
site: 'https://venikx.com',
image: {
service: passthroughImageService(),
},
markdown: {
syntaxHighlight: 'prism',
},
integrations: [
mdx(),
icon({
include: {
jam: ['menu', 'close'],
carbon: ['logo-github', 'logo-linkedin', 'email'],
},
}),
org({
uniorgPlugins: [replaceOrgLinks],
rehypePlugins: [
[rehypeShiftHeading, { shift: 1 } as RehypeShiftOptions],
[shiki, { theme: 'synthwave-84' } as RehypeShikiOptions],
],
uniorgRehypeOptions: {
handlers: {
'example-block': (org) => {
return h('pre.example', [{ type: 'text', value: org.value }])
},
'src-block': function (org) {
const snippet = h(
'pre.src-block',
{},
h(
'code',
{
className: org.language
? `language-${org.language}`
: undefined,
},
org.value
)
)
const captions: any[] = Array.isArray(org.affiliated.CAPTION)
? org.affiliated.CAPTION.flat()
: []
if (captions.length <= 0) {
return snippet
} else {
const figcaption = h('figcaption', captions[0]!.value)
return h('figure', [snippet, figcaption])
}
},
},
},
}),
tailwind({
applyBaseStyles: false,
}),
sitemap(),
],
})