diff --git a/astro.config.mjs b/astro.config.mjs index 2ee6be1..a267f04 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -13,6 +13,7 @@ export default defineConfig({ site: baseUrl, trailingSlash: 'never', compressHTML: false, + output: 'server', adapter: node({ mode: 'standalone', diff --git a/src/i18n/utils.ts b/src/i18n/utils.ts index 55cd76d..19720cc 100644 --- a/src/i18n/utils.ts +++ b/src/i18n/utils.ts @@ -1,4 +1,4 @@ -import { defaultLocale, type Locale, localeCodes, ui } from '.'; +import { defaultLocale, type Locale, ui } from '.'; export function getLocaleFromUrl(url: URL): Locale { const [, lang] = url.pathname.split('/'); @@ -29,9 +29,5 @@ export function removeTrailingSlash(string: string) { return string.replace(/(?:\/+(\?))/, '$1').replace(/\/+$/, ''); } -export function generateLangStaticPaths() { - return localeCodes.map((l) => ({ params: { lang: l } })); -} - export const getPostSlug = (postId: string) => postId.split('/').slice(0, -1).join('/'); export const getPostLang = (postId: string) => postId.split('/').at(-1)!; diff --git a/src/layouts/Journal.astro b/src/layouts/Journal.astro index c513b85..edf2687 100644 --- a/src/layouts/Journal.astro +++ b/src/layouts/Journal.astro @@ -1,6 +1,4 @@ --- -export const prerender = false; - import Footer from '@components/Footer.astro'; import Navbar from '@components/Navbar.astro'; import { getLocaleFromUrl } from '@i18n'; diff --git a/src/pages/404.astro b/src/pages/404.astro index bfb2d1d..d2a55ee 100644 --- a/src/pages/404.astro +++ b/src/pages/404.astro @@ -1,7 +1,4 @@ --- -// to enable localization -export const prerender = false; - import Button from '@components/Button.astro'; import { getLocaleFromUrl, useTranslations, useTranslatedPaths } from '@i18n'; import Layout from 'src/layouts/Layout.astro'; diff --git a/src/pages/[...route].astro b/src/pages/[...route].astro index e05ac01..3eb629a 100644 --- a/src/pages/[...route].astro +++ b/src/pages/[...route].astro @@ -1,7 +1,4 @@ --- -// server route -export const prerender = false; - import { defaultLocale, localeCodes, removeTrailingSlash, useTranslatedPaths } from '@i18n'; import { handleRedirect } from '../redirects'; diff --git a/src/pages/[lang]/blog/[...slug].astro b/src/pages/[lang]/blog/[...slug].astro index 551c428..579105d 100644 --- a/src/pages/[lang]/blog/[...slug].astro +++ b/src/pages/[lang]/blog/[...slug].astro @@ -1,22 +1,8 @@ --- -import { render } from 'astro:content'; -import { getCollection } from 'astro:content'; -import Blog from '../../../layouts/Blog.astro'; -import { getLocaleFromUrl, getPostLang, getPostSlug, localeCodes, useTranslations } from '@i18n'; import Callout from '@components/Callout.astro'; - -// generate all possible slugs for both langs (if either is unavailable, fallback) -export async function getStaticPaths() { - const posts = await getCollection('blog'); - - const slugs = new Set(posts.map((post) => getPostSlug(post.id))); - - return Array.from(slugs).flatMap((slug) => { - return localeCodes.map((lang) => ({ - params: { lang, slug }, - })); - }); -} +import { getLocaleFromUrl, getPostLang, getPostSlug, useTranslations } from '@i18n'; +import { getCollection, render } from 'astro:content'; +import Blog from '../../../layouts/Blog.astro'; const { slug } = Astro.params; const lang = getLocaleFromUrl(Astro.url); diff --git a/src/pages/[lang]/blog/index.astro b/src/pages/[lang]/blog/index.astro index 44a8a68..2c6f1d1 100644 --- a/src/pages/[lang]/blog/index.astro +++ b/src/pages/[lang]/blog/index.astro @@ -1,12 +1,9 @@ --- -export const getStaticPaths = generateLangStaticPaths; - import Globe from '@assets/icons/globe.svg'; import RSS from '@assets/icons/rss.svg'; import MetaImageBlog from '@assets/meta-images/blog.webp'; import Button from '@components/Button.astro'; import { - generateLangStaticPaths, getLocaleFromUrl, getPostLang, getPostSlug, diff --git a/src/pages/[lang]/blog/rss.xml.ts b/src/pages/[lang]/blog/rss.xml.ts index 5e64a20..8963c09 100644 --- a/src/pages/[lang]/blog/rss.xml.ts +++ b/src/pages/[lang]/blog/rss.xml.ts @@ -8,8 +8,6 @@ import { } from '@i18n'; import { getCollection } from 'astro:content'; -export const prerender = false; - export async function GET(context: Astro) { const lang = getLocaleFromUrl(context.url); const t = useTranslations(lang); diff --git a/src/pages/[lang]/contact/index.astro b/src/pages/[lang]/contact/index.astro index 126ad81..2ae278c 100644 --- a/src/pages/[lang]/contact/index.astro +++ b/src/pages/[lang]/contact/index.astro @@ -1,6 +1,4 @@ --- -export const prerender = false; - import Bluesky from '@assets/icons/bluesky.svg'; import Codeberg from '@assets/icons/codeberg.svg'; import Email from '@assets/icons/email.svg'; diff --git a/src/pages/[lang]/index.astro b/src/pages/[lang]/index.astro index c8a34f8..67615c8 100644 --- a/src/pages/[lang]/index.astro +++ b/src/pages/[lang]/index.astro @@ -1,6 +1,4 @@ --- -export const getStaticPaths = generateLangStaticPaths; - import Briefcase from '@assets/icons/briefcase.svg'; import MetaImageEn from '@assets/meta-images/index-en.webp'; import MetaImageFr from '@assets/meta-images/index-fr.webp'; @@ -14,12 +12,7 @@ import Uniten2 from '@assets/project-images/uniten-2.webp'; import Uniten3 from '@assets/project-images/uniten-3.webp'; import Button from '@components/Button.astro'; import ProjectCard from '@components/ProjectCard.astro'; -import { - generateLangStaticPaths, - getLocaleFromUrl, - useTranslatedPaths, - useTranslations, -} from '@i18n'; +import { getLocaleFromUrl, useTranslatedPaths, useTranslations } from '@i18n'; import Layout from '../../layouts/Layout.astro'; import Avatar from './_Avatar.astro'; import { atpClient } from '@atp/client'; @@ -171,8 +164,6 @@ function constructOpenTo(listOT: Exclude) { /> - - diff --git a/src/pages/[lang]/journal/index.astro b/src/pages/[lang]/journal/index.astro index e0ae89f..9a58644 100644 --- a/src/pages/[lang]/journal/index.astro +++ b/src/pages/[lang]/journal/index.astro @@ -1,6 +1,4 @@ --- -export const prerender = false; - import { getLocaleFromUrl, getPostSlug, useTranslations } from '@i18n'; import { getCollection, render } from 'astro:content'; import Journal from 'src/layouts/Journal.astro'; diff --git a/src/pages/[lang]/login/callback.ts b/src/pages/[lang]/login/callback.ts index 76d8277..9207afb 100644 --- a/src/pages/[lang]/login/callback.ts +++ b/src/pages/[lang]/login/callback.ts @@ -1,8 +1,6 @@ import { authedAtp, oauthClient } from '@atp/client'; import type { APIRoute } from 'astro'; -export const prerender = false; - export const GET = (async (context) => { const { session } = await oauthClient.callback(context.url.searchParams); diff --git a/src/pages/[lang]/login/index.astro b/src/pages/[lang]/login/index.astro index b8ac0c4..4c4aac8 100644 --- a/src/pages/[lang]/login/index.astro +++ b/src/pages/[lang]/login/index.astro @@ -1,6 +1,4 @@ --- -export const prerender = false; - import { authedAtp, oauthClient } from '@atp/client'; import bskyProfile from '@atp/lexicons/app/bsky/actor/profile.js'; import { getBlobCidString } from '@atproto/lex';