Files
blog2025/astro.config.ts

56 lines
1.6 KiB
TypeScript

import { defineConfig } from 'astro/config'
import mdx from '@astrojs/mdx'
import sitemap from '@astrojs/sitemap'
import playformInline from '@playform/inline'
import remarkMath from 'remark-math'
import remarkDirective from 'remark-directive'
import rehypeKatex from 'rehype-katex'
import remarkEmbeddedMedia from './src/plugins/remark-embedded-media.mjs'
import remarkReadingTime from './src/plugins/remark-reading-time.mjs'
import rehypeCleanup from './src/plugins/rehype-cleanup.mjs'
import rehypeImageProcessor from './src/plugins/rehype-image-processor.mjs'
import rehypeCopyCode from './src/plugins/rehype-copy-code.mjs'
import remarkTOC from './src/plugins/remark-toc.mjs'
import { themeConfig } from './src/config'
import { imageConfig } from './src/utils/image-config'
import path from 'path'
import nodeAdapter from '@astrojs/node'
export default defineConfig({
adapter: nodeAdapter({
mode: 'standalone'
}), // Set adapter for deployment
site: themeConfig.site.website,
image: {
service: {
entrypoint: 'astro/assets/services/sharp',
config: imageConfig
}
},
markdown: {
shikiConfig: {
theme: 'kanagawa-dragon',
wrap: false
},
remarkPlugins: [remarkMath, remarkDirective, remarkEmbeddedMedia, remarkReadingTime, remarkTOC],
rehypePlugins: [rehypeKatex, rehypeCleanup, rehypeImageProcessor, rehypeCopyCode]
},
integrations: [
playformInline({
Exclude: [(file) => file.toLowerCase().includes('katex')]
}),
mdx(),
sitemap()
],
vite: {
resolve: {
alias: {
'@': path.resolve('./src')
}
}
},
devToolbar: {
enabled: false
}
})