- 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.
- Add SiteFooter, rendered through the Layout bottom slot so it appears on
every page type. themeConfig.footer is deliberately left unset: setting
it would render the built-in HomeFooter as well, on the home page only.
- Add a frontmatter-driven section system (advantages, contentGrid,
techStack, cases and cta) with a single ordered array, so bands can be
reordered or removed without touching code.
- Bands render only when they have content, so an unfilled page degrades
to its heading rather than showing empty boxes.
- Add a SHOW_COPY_PLACEHOLDERS flag for drafting, false by default.
Frees /products/ for the product page and makes the open-source archive
explicit, rather than leaving two sections that both look like "projects".
- Move the directory in both locales and update the 18 internal links
pointing into it.
- Rework helix for the GitHub layout: server/ and web/ are directories in
a single repository there, not the two separate repositories Gitea had.
The "fork both repositories" step and the section wording follow.
- Correct helix's stated Java version to 21, which is what the build
actually targets.
- Pin TypeScript as a direct dependency. It was only present transitively
via typescript-eslint, so nothing enforced tsconfig.json and nine
latent type errors had gone unnoticed.
- Add `pnpm typecheck` (`tsc --noEmit`) and document it.
- Add .npmrc with engine-strict, so the declared Node and pnpm ranges
are actually enforced.
- Ignore doc_build/ in ESLint. It was unignored and reported 1650 errors
from build output, which made lint unusable as a gate.
- Refresh README, CLAUDE.md, AGENTS.md and CONTRIBUTING.md to match the
current structure, build targets and navigation rules.
Both pipelines are unused — GitLab CI is no longer in use, and the Gitea
workflow was never enabled. Deployment is currently run by hand, so no
replacement automation is added here.
- Add @JsonUnwrapped and @JsonAnyGetter usage examples with code
- Include comparison table for choosing between annotations
- Sync content across zh-hans and en-gb versions
- Add en-gb and zh-hans project pages covering installation, usage, and marketplace creation
- Add CCSM entry to projects index under new Developer Tools section
Add a Kbd component with macOS special key support (⌘, ⌥, ⌃, ⇧, etc.),
export it from theme/index.tsx for use in MDX files.
Add blog posts (EN + ZH) documenting the IntelliJ IDEA application.yaml
schema validation bug caused by an overly broad fileMatch pattern in
SchemaStore, along with the quick fix.
Add English and Chinese docs for the OnixByte Toolbox monorepo covering
all six modules: common-toolbox, crypto-toolbox, math-toolbox, tuple,
identity-generator, and version-catalogue.
Add English and Chinese docs for the Delta Force Guide full-stack app
(Spring Boot backend + React frontend) with architecture, API reference,
and live site link.