feat: scaffold Astro 7 with Tailwind 4, MDX, sitemap, node adapter and tooling

- Tailwind v4 via @tailwindcss/vite + typography plugin
- astro-icon (Tabler), self-hosted Rubik/Inter, RSS, Pagefind postbuild
- Prettier (astro + tailwind plugins), editorconfig
- new:post script with Turkish-aware slugify

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-16 00:25:29 +03:00
parent 0caf91fc0e
commit c5e0b009ca
13 changed files with 2943 additions and 82 deletions
+25
View File
@@ -0,0 +1,25 @@
const TR_MAP: Record<string, string> = {
ç: 'c',
ğ: 'g',
ı: 'i',
İ: 'i',
ö: 'o',
ş: 's',
ü: 'u',
Ç: 'c',
Ğ: 'g',
Ö: 'o',
Ş: 's',
Ü: 'u',
};
/** Turkish-aware slugify: "Çift Bant Anten" → "cift-bant-anten". */
export function slugify(input: string): string {
return input
.replace(/[çğıİöşüÇĞÖŞÜ]/g, (ch) => TR_MAP[ch] ?? ch)
.normalize('NFKD')
.replace(/[̀-ͯ]/g, '')
.toLowerCase()
.replace(/[^a-z0-9]+/g, '-')
.replace(/^-+|-+$/g, '');
}
+13 -12
View File
@@ -1,16 +1,17 @@
---
// Temporary placeholder; replaced by the real home page in stage 3.
import '../styles/global.css';
---
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<link rel="icon" href="/favicon.ico" />
<meta name="viewport" content="width=device-width" />
<meta name="generator" content={Astro.generator} />
<title>Astro</title>
</head>
<body>
<h1>Astro</h1>
</body>
<html lang="tr">
<head>
<meta charset="utf-8" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<meta name="viewport" content="width=device-width" />
<meta name="generator" content={Astro.generator} />
<title>TA1SPH</title>
</head>
<body>
<h1 class="p-8 text-4xl font-black">TA1SPH</h1>
</body>
</html>
+2
View File
@@ -0,0 +1,2 @@
@import 'tailwindcss';
@plugin '@tailwindcss/typography';