mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2026-06-01 21:14:49 +00:00
5ca3463bf6
Full rewrite of the docs site under app/[locale]/ with next-intl in localePrefix:"always" mode. Every page now exists at both /en/<path> and /es/<path>; the root / shows a meta-refresh + JS redirect to /<defaultLocale>/ so GitHub Pages serves something on the apex URL. Highlights: - 107 doc pages migrated to file-per-page JSON namespaces under messages/en/ and messages/es/. Spanish content is fully translated (no copy-of-English placeholders). - New documentation for the Active Suppressions section in the Settings tab and the per-event Dismiss dropdown in the Health Monitor modal. - New screenshots: dismiss-duration-dropdown.png and an updated health-suppression-settings.png. - Pagefind integrated for client-side search; index is built on every CI deploy (not committed). - RSS feeds: per-locale at /<locale>/rss.xml plus root /rss.xml for backward compat. - Removed the dead app/[locale]/guides/[slug]/ route — every guide now has its own static page and no markdown source remains. - Fixed orphan link /guides/nvidia -> /guides/nvidia-manual in docs/hardware/nvidia-host. - Removed obsolete components (footer2, calendar, drawer). Verified locally with `npm ci && npm run build`: 2804 files in out/, 231 pages indexed by pagefind, root redirect intact, both locale roots and the new Active Suppressions docs render OK.
39 lines
1.4 KiB
TypeScript
39 lines
1.4 KiB
TypeScript
import { routing } from "@/i18n/routing"
|
|
|
|
/**
|
|
* Root index — sends `/` to the default locale.
|
|
*
|
|
* With `output: "export"` we can't run a middleware that detects the
|
|
* browser's preferred locale and redirects accordingly. Instead the
|
|
* root URL renders a minimal HTML stub that points the browser at
|
|
* `/<defaultLocale>/` through three layers, in order of reliability:
|
|
*
|
|
* 1. `<meta http-equiv="refresh">` — works even without JavaScript,
|
|
* respected by every browser and most crawlers (Google honours
|
|
* it as a 301-equivalent when delay is 0).
|
|
* 2. `<link rel="canonical">` — tells search engines that the
|
|
* localized URL is the canonical one.
|
|
* 3. An inline `<script>` doing `location.replace(...)` — kicks in
|
|
* faster than the meta refresh when JS is enabled, and survives
|
|
* the rare browser that ignores the meta tag.
|
|
*/
|
|
export default function RootPage() {
|
|
const target = `/${routing.defaultLocale}/`
|
|
return (
|
|
<>
|
|
<meta httpEquiv="refresh" content={`0; url=${target}`} />
|
|
<link rel="canonical" href={target} />
|
|
<script
|
|
dangerouslySetInnerHTML={{
|
|
__html: `if (location.pathname === '/') { location.replace(${JSON.stringify(target)}); }`,
|
|
}}
|
|
/>
|
|
<noscript>
|
|
<p style={{ fontFamily: "system-ui, sans-serif", textAlign: "center", marginTop: "2rem" }}>
|
|
Redirecting to <a href={target}>{target}</a>…
|
|
</p>
|
|
</noscript>
|
|
</>
|
|
)
|
|
}
|