diff --git a/public/blog/en/index.html b/public/blog/en/index.html index 110046b..de36947 100644 --- a/public/blog/en/index.html +++ b/public/blog/en/index.html @@ -47,6 +47,7 @@ + diff --git a/public/blog/index.html b/public/blog/index.html index 8868c74..48754ff 100644 --- a/public/blog/index.html +++ b/public/blog/index.html @@ -47,6 +47,7 @@ + diff --git a/public/en/index.html b/public/en/index.html index c2e7eb5..53c0a4f 100644 --- a/public/en/index.html +++ b/public/en/index.html @@ -121,6 +121,7 @@ + diff --git a/public/equipe/en/index.html b/public/equipe/en/index.html index 2b9aaad..46e134a 100644 --- a/public/equipe/en/index.html +++ b/public/equipe/en/index.html @@ -57,6 +57,7 @@ + diff --git a/public/equipe/index.html b/public/equipe/index.html index 42a1f47..82c307e 100644 --- a/public/equipe/index.html +++ b/public/equipe/index.html @@ -57,6 +57,7 @@ + diff --git a/public/error.html b/public/error.html index 2dfacc9..5fa7315 100644 --- a/public/error.html +++ b/public/error.html @@ -10,6 +10,7 @@ + + + + ${siteHeader(lang)} + +
+
+

418

+

${sub}

+ +

${text}

+
+ + +
+

\u2191 \u2191 \u2193 \u2193 \u2190 \u2192 \u2190 \u2192 B A

+

${note}

+
+
+ +
+ + ${siteFooter(lang)} + + + +` +} + function errorPage(status: number, req?: Request): Response { const urlPath = req ? new URL(req.url).pathname : "/" const lang: "fr" | "en" = /^\/en(\/|$)/.test(urlPath) ? "en" : "fr" @@ -677,6 +779,7 @@ ${ldJson} + @@ -737,6 +840,7 @@ function newsIndex(lang: "fr" | "en"): string { + @@ -1316,6 +1420,16 @@ server = serve({ return new Response(body, { headers: { "Content-Type": "application/json; charset=utf-8", "Cache-Control": "no-cache" } }) } + // Œuf de Pâques : la théière (RFC 2324). Accessible par la séquence Konami. + const teaMatch = pathname.match(/^\/(?:418|(fr|en)\/418)(?:\/)?$/) + if (teaMatch) { + const lang: "fr" | "en" = teaMatch[1] === "en" ? "en" : detectLang(req) + return new Response(teapotPage(lang), { + status: 418, + headers: { "Content-Type": "text/html; charset=utf-8", "Cache-Control": "no-store" }, + }) + } + // Pages de documentation globale des API const docsMatch = pathname.match(/^\/docs\/([a-z0-9-]+)\/?$/) if (docsMatch) {