site-library/astro.config.mjs
2025-08-19 19:49:55 +02:00

90 lines
2.1 KiB
JavaScript

import { defineConfig } from 'astro/config'
import tailwindcss from '@tailwindcss/vite'
import { imagetools } from "imagetools"
// import domainExpansion from '@domain-expansion/astro';
import react from "@astrojs/react"
import mdx from "@astrojs/mdx";
import { defineConfig } from 'astro/config';
import sitemap from "@astrojs/sitemap";
import { rehypeAccessibleEmojis } from 'rehype-accessible-emojis';
import getReadingTime from 'reading-time';
import { toString } from 'mdast-util-to-string';
export function remarkReadingTime() {
return function (tree, { data }) {
const textOnPage = toString(tree);
const readingTime = getReadingTime(textOnPage);
data.astro.frontmatter.minutesRead = readingTime.text;
};
}
//locales: ['en','es','fr','it','de'],
export default defineConfig({
site: 'https://creava.org',
devToolbar: {
enabled: false,
},
i18n: {
locales: ['en'],
defaultLocale: "en",
},
sidebar: [
{
label: 'How-To Guides',
items: [
{ label: 'All Guides', link: '/howtos' },
{ label: 'Browse by Category', link: '/howtos#categories' },
],
},
],
alias: {
"@base": "../polymech-site/src"
},
vite: {
resolve: {
alias: {
'@components': '/src/components',
'@layouts': '/src/layouts'
}
},
plugins: [
tailwindcss({
config: './tailwind.config.cjs',
jit: true
}),
],
build: {
target: 'esnext',
assetsDir: './assets',
modulePreload: { polyfill: false },
commonjsOptions: { esmExternals: true },
assetsInlineLimit: 1024,
sourcemap: false,
},
ssr: {
external: ['cacache', 'glob', 'xlsx', 'sharp', '@polymech/kbot-d']
}
},
markdown: {
drafts: true,
shikiConfig: {
theme: "github-light-default"
}
},
shikiConfig: {
wrap: true,
skipInline: false,
drafts: true
},
integrations: [
sitemap({}),
mdx({
rehypePlugins: [
rehypeAccessibleEmojis,
remarkReadingTime
],
}),
//AstroPWA({}),
react(),
imagetools
]
});