The .cn site exists for Chinese readers, so the unprefixed routes should
serve Chinese there. Rspress omits the prefix for the default locale, so
this also moves the routes:
.com .cn
English / /en-gb/
Chinese /zh-hans/ /
- Make the default locale a per-target value rather than a constant, and
move the localePrefix helper inside createConfig so a prefix can no
longer be hardcoded elsewhere.
- Build the sitemap priority map from localePrefix. The keys are full
route paths, so the previous hardcoded "/zh-hans/..." entries would
have silently stopped matching on .cn.
- Widen the nav Home activeMatch to cover either prefixed home, since the
two targets put a different locale behind the prefix.
Note: README.md also carries the licence wording changed in the next
commit — a single file's hunks cannot be split non-interactively.
- Split the config into a createConfig(target) factory plus a thin .cn
wrapper, so the two deployments differ in one place. The .cn build
points canonical, hreflang, og:url, sitemap and robots at that origin,
and omits social links that are not reachable from mainland China.
- Generate sitemap.xml and robots.txt per target. robots.txt is written
at build time because one static file cannot carry the right origin for
both domains.
- Emit per-page canonical, hreflang and Open Graph tags. og:title and
friends are left to the theme, which already emits them and does not
de-duplicate against site-level head entries.
- Redirect the retired /projects/ paths on Vercel, before the CN redirect
so those visitors get a single hop.
- Translate GitLab Operations article from Chinese to British English
- Add comprehensive Gravatar usage guide with code examples in both locales
- Fix heading levels on notification pages (h1 -> h2)
- Enable line numbers in code blocks via rspress config