Implement Astro features: React Islands, Server Endpoints, i18n, Partytown
Features added: - React integration with @astrojs/react - React components: DMRDashboard, MemberSearch - API endpoints: /api/repeaters.json, /api/dmr-contacts.json, /api/feed/[category].xml - i18n support for TR/EN locales with LanguageSwitcher component - Partytown enabled for third-party script optimization - Admin panel logo fixed (moved to public/images/) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
+42
-46
@@ -15,61 +15,57 @@ import astrowind from './vendor/integration';
|
||||
|
||||
import { readingTimeRemarkPlugin, responsiveTablesRehypePlugin, lazyImagesRehypePlugin } from './src/utils/frontmatter';
|
||||
|
||||
import react from '@astrojs/react';
|
||||
|
||||
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
||||
|
||||
const hasExternalScripts = false;
|
||||
const hasExternalScripts = true;
|
||||
const whenExternalScripts = (items: (() => AstroIntegration) | (() => AstroIntegration)[] = []) =>
|
||||
hasExternalScripts ? (Array.isArray(items) ? items.map((item) => item()) : [items()]) : [];
|
||||
|
||||
export default defineConfig({
|
||||
output: 'static',
|
||||
|
||||
integrations: [
|
||||
tailwind({
|
||||
applyBaseStyles: false,
|
||||
}),
|
||||
sitemap(),
|
||||
mdx(),
|
||||
icon({
|
||||
include: {
|
||||
tabler: ['*'],
|
||||
'flat-color-icons': [
|
||||
'template',
|
||||
'gallery',
|
||||
'approval',
|
||||
'document',
|
||||
'advertising',
|
||||
'currency-exchange',
|
||||
'voice-presentation',
|
||||
'business-contact',
|
||||
'database',
|
||||
],
|
||||
integrations: [tailwind({
|
||||
applyBaseStyles: false,
|
||||
}), sitemap(), mdx(), icon({
|
||||
include: {
|
||||
tabler: ['*'],
|
||||
'flat-color-icons': [
|
||||
'template',
|
||||
'gallery',
|
||||
'approval',
|
||||
'document',
|
||||
'advertising',
|
||||
'currency-exchange',
|
||||
'voice-presentation',
|
||||
'business-contact',
|
||||
'database',
|
||||
],
|
||||
},
|
||||
}), ...whenExternalScripts(() =>
|
||||
partytown({
|
||||
config: { forward: ['dataLayer.push'] },
|
||||
})
|
||||
), compress({
|
||||
CSS: true,
|
||||
HTML: {
|
||||
'html-minifier-terser': {
|
||||
removeAttributeQuotes: false,
|
||||
},
|
||||
}),
|
||||
},
|
||||
Image: true,
|
||||
JavaScript: true,
|
||||
SVG: true,
|
||||
Logger: 1,
|
||||
}), astrowind({
|
||||
config: './src/config.yaml',
|
||||
}), react()],
|
||||
|
||||
...whenExternalScripts(() =>
|
||||
partytown({
|
||||
config: { forward: ['dataLayer.push'] },
|
||||
})
|
||||
),
|
||||
|
||||
compress({
|
||||
CSS: true,
|
||||
HTML: {
|
||||
'html-minifier-terser': {
|
||||
removeAttributeQuotes: false,
|
||||
},
|
||||
},
|
||||
Image: true,
|
||||
JavaScript: true,
|
||||
SVG: true,
|
||||
Logger: 1,
|
||||
}),
|
||||
|
||||
astrowind({
|
||||
config: './src/config.yaml',
|
||||
}),
|
||||
],
|
||||
i18n: {
|
||||
defaultLocale: 'tr',
|
||||
locales: ['tr', 'en'],
|
||||
},
|
||||
|
||||
image: {
|
||||
domains: ['cdn.pixabay.com'],
|
||||
@@ -87,4 +83,4 @@ export default defineConfig({
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user