generated from saicaca/fuwari
-
Notifications
You must be signed in to change notification settings - Fork 0
/
astro.config.mjs
80 lines (78 loc) · 1.99 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
import svelte from '@astrojs/svelte';
import tailwind from '@astrojs/tailwind';
import swup from '@swup/astro';
import Compress from 'astro-compress';
import icon from 'astro-icon';
import { defineConfig } from 'astro/config';
import Color from 'colorjs.io';
import rehypeAutolinkHeadings from 'rehype-autolink-headings';
import rehypeKatex from 'rehype-katex';
import rehypeSlug from 'rehype-slug';
import remarkMath from 'remark-math';
import { remarkReadingTime } from './src/plugins/remark-reading-time.mjs';
import sitemap from "@astrojs/sitemap";
const oklchToHex = str => {
const DEFAULT_HUE = 250;
const regex = /-?\d+(\.\d+)?/g;
const matches = str.string.match(regex);
const lch = [matches[0], matches[1], DEFAULT_HUE];
return new Color('oklch', lch).to('srgb').toString({
format: 'hex'
});
};
// https://astro.build/config
export default defineConfig({
site: 'https://blog.xiaohan-kaka.gay',
base: '/',
integrations: [tailwind(), swup({
theme: true,
animationClass: 'transition-',
containers: ['main'],
smoothScrolling: true,
cache: true,
preload: true,
accessibility: true,
globalInstance: true
}), icon({
include: {
'material-symbols': ['*'],
'fa6-brands': ['*'],
'fa6-regular': ['*'],
'fa6-solid': ['*']
}
}), Compress({
Image: false
}), svelte(), sitemap()],
markdown: {
remarkPlugins: [remarkMath, remarkReadingTime],
rehypePlugins: [rehypeKatex, rehypeSlug, [rehypeAutolinkHeadings, {
behavior: 'append',
properties: {
className: ['anchor']
},
content: {
type: 'element',
tagName: 'span',
properties: {
className: ['anchor-icon'],
'data-pagefind-ignore': true
},
children: [{
type: 'text',
value: '#'
}]
}
}]]
},
vite: {
css: {
preprocessorOptions: {
stylus: {
define: {
oklchToHex: oklchToHex
}
}
}
}
}
});