Files
portfolio/astro.config.ts
2025-05-01 02:34:23 +03:00

113 lines
2.7 KiB
TypeScript

import { defineConfig } from 'astro/config'
import mdx from '@astrojs/mdx'
import react from '@astrojs/react'
import sitemap from '@astrojs/sitemap'
import icon from 'astro-icon'
import expressiveCode from 'astro-expressive-code'
import { rehypeHeadingIds } from '@astrojs/markdown-remark'
import rehypeExternalLinks from 'rehype-external-links'
import rehypeKatex from 'rehype-katex'
import rehypePrettyCode from 'rehype-pretty-code'
import remarkEmoji from 'remark-emoji'
import remarkMath from 'remark-math'
import remarkSectionize from 'remark-sectionize'
import rehypeDocument from 'rehype-document'
import { pluginCollapsibleSections } from '@expressive-code/plugin-collapsible-sections'
import { pluginLineNumbers } from '@expressive-code/plugin-line-numbers'
import tailwindcss from '@tailwindcss/vite'
import vercel from '@astrojs/vercel';
export default defineConfig({
site: 'https://www.cojocarudavid.me',
integrations: [
expressiveCode({
themes: ['catppuccin-latte', 'ayu-dark'],
plugins: [pluginCollapsibleSections(), pluginLineNumbers()],
useDarkModeMediaQuery: true,
defaultProps: {
wrap: true,
collapseStyle: 'collapsible-auto',
overridesByLang: {
'ansi,bat,bash,batch,cmd,console,powershell,ps,ps1,psd1,psm1,sh,shell,shellscript,shellsession,text,zsh':
{
showLineNumbers: true,
},
},
},
}),
mdx(),
react(),
sitemap(),
icon(),
],
vite: {
plugins: [tailwindcss()],
optimizeDeps: {
exclude: ["satori", "satori-html"],
include: [
"react",
"react-dom",
"clsx",
"framer-motion",
"lucide-react",
"lodash.debounce",
"@radix-ui/react-icons",
"@radix-ui/react-avatar",
"@radix-ui/react-dropdown-menu",
"@radix-ui/react-scroll-area",
"@radix-ui/react-separator",
"@radix-ui/react-slot"
]
},
},
server: {
port: 3000,
host: true,
},
devToolbar: {
enabled: false,
},
markdown: {
syntaxHighlight: false,
rehypePlugins: [
[
rehypeDocument,
{
css: 'https://cdn.jsdelivr.net/npm/katex@0.16.21/dist/katex.min.css',
},
],
[
rehypeExternalLinks,
{
target: '_blank',
rel: ['nofollow', 'noreferrer', 'noopener'],
},
],
rehypeHeadingIds,
rehypeKatex,
[
rehypePrettyCode,
{
theme: {
light: 'catppuccin-latte',
dark: 'ayu-dark',
},
},
],
],
remarkPlugins: [remarkMath, remarkEmoji, remarkSectionize],
},
adapter: vercel()
})