newechoes/astro.config.mjs

72 lines
1.9 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// @ts-check
import { defineConfig } from "astro/config";
import tailwindcss from "@tailwindcss/vite";
import mdx from "@astrojs/mdx";
import react from "@astrojs/react";
import rehypeExternalLinks from "rehype-external-links";
import { SITE_URL } from "./src/consts";
import compressor from "astro-compressor";
import vercel from "@astrojs/vercel";
import { articleIndexerIntegration } from "./src/plugins/build-article-index.js";
import { rehypeCodeBlocks } from "./src/plugins/rehype-code-blocks.js";
import { rehypeTables } from "./src/plugins/rehype-tables.js";
import { customSitemapIntegration } from "./src/plugins/sitemap-integration.js";
// https://astro.build/config
export default defineConfig({
site: SITE_URL,
output: "static",
trailingSlash: "ignore",
build: {
format: "directory",
},
vite: {
plugins: [tailwindcss()],
},
integrations: [
// 使用Astro官方的MDX支持
mdx(),
react(),
// 使用文章索引生成器
articleIndexerIntegration(),
customSitemapIntegration(),
// 添加压缩插件 (必须放在最后位置)
compressor()
],
// Markdown 配置 - 使用官方语法高亮
markdown: {
// 配置语法高亮
syntaxHighlight: {
// 使用shiki作为高亮器
type: 'shiki',
// 排除mermaid语言不进行高亮处理
excludeLangs: ['mermaid']
},
// Shiki主题配置
shikiConfig: {
// 默认主题 - 必须设置,但最终会被替换为 light/dark 主题
theme: 'github-light',
// 定义明亮和暗黑主题
themes: {
light: 'github-light',
dark: 'github-dark'
},
// 启用代码换行
wrap: true
},
rehypePlugins: [
[rehypeExternalLinks, { target: '_blank', rel: ['nofollow', 'noopener', 'noreferrer'] }],
rehypeCodeBlocks,
rehypeTables
],
gfm: true,
},
adapter: vercel(),
});