This repository contains the Apache Fory website and documentation site source (Docusaurus).
It is not the Fory core serialization library itself.
Primary responsibilities:
- Official homepage and marketing content (
src/pages+ custom components) - Documentation (multi-version, multi-language)
- Blog
- Community, download, and related pages
Core objective: stable static site publishing plus high-quality documentation and Chinese localization maintenance.
- Framework: Docusaurus 3 (React 18 + TypeScript)
- Styling and motion: CSS Modules, Tailwind (partial usage), AOS, Framer Motion
- Search:
docusaurus-lunr-search - Node requirement:
>=18
Common commands (package.json):
npm run start/npm run start-en/npm run start-zhnpm run build(runsprebuildfirst)npm run docusaurus docs:version <ver>(wrapped command with i18n version copy support)npm run typecheck
Key directories:
docs/: current docs (current/dev)versioned_docs/version-*/: historical docs by versionversioned_sidebars/: sidebars for versioned docsi18n/zh-CN/docusaurus-plugin-content-docs/: Chinese docs (current+version-*)blog/: blog contentsrc/pages/: homepage, users page, download page, security page, etc.src/theme/: Docusaurus theme overrides (notably blog rendering behavior)src/plugin/redirect.js: site redirect logicscripts/: docs versioning and i18n helper scripts.github/workflows/: CI/CD pipelines
Current docs footprint (rough file count):
docs/: 158versioned_docs/: 333i18n/zh-CN/docusaurus-plugin-content-docs/: 500
versions.jsoncurrently includes:0.15, 0.14, 0.13, 0.12, 0.11, 0.10- In
docusaurus.config.ts,docs.lastVersion = "0.15" - The current docs label is
dev(current)
Recommended versioning entry point:
- Use
npm run docusaurus docs:version <ver> - This invokes
scripts/docusaurus-with-i18n.sh - After native Docusaurus versioning, the wrapper copies each locale’s
current/toversion-<ver>/
Enabled locales:
en-US(default)zh-CN
Chinese docs paths:
i18n/zh-CN/docusaurus-plugin-content-docs/current/i18n/zh-CN/docusaurus-plugin-content-docs/version-*/
Chinese top-level sidebar labels are managed in:
i18n/zh-CN/docusaurus-plugin-content-docs/current.json
Prebuild step:
scripts/copy-i18n-fallback.sh- It fills missing Chinese files for
specificationandbenchmarksfrom English sources (rsync --ignore-existing) to prevent broken links
This means Chinese docs may be a mix of translated content and English fallback files.
- The homepage is composed of custom sections (Hero, Features, language cards, code carousel)
src/plugin/redirect.jshas built-in redirects:fury.apache.org->fory.apache.org- Old routes
/docs/.../docs/{guide|introduction|start}-> cleaned routes
- Blog theme overrides:
- List pages prefer frontmatter
descriptionas summary - Post detail pages remove the global blog sidebar for a focused reading layout
- List pages prefer frontmatter
lint.yml- Markdown lint (
markdownlint-cli) - YAML lint (
yamllint)
- Markdown lint (
link-check.yml- Workflow exists, but link-check steps are currently commented out (not effectively running)
deploy.yml- Runs on push to
mainand on pull requests - Calls
scripts/unified-docs/script.py - Runs
npm run download-avatars+npm run build - Publishes to
deploybranch for non-PR events (peaceiris/actions-gh-pages)
- Runs on push to
CONTRIBUTING.mdstates thatdocs/guideanddocs/specificationare mainly synced fromapache/fory.
For those sections, confirm whether changes should go to the mainapache/foryrepo instead.scripts/unified-docs/script.pyusesi18n/eu-US/...paths (noten-US); treat this as existing behavior and validate intent before changing.- Since link-check is not effectively active, external link regressions may pass PR checks.
- The repo has substantial versioned/mirrored docs; avoid accidental bulk edits in
versioned_docsandi18n/version-*.
- Before editing docs, scope the target explicitly:
docs/currentversioned_docs/version-*i18n/zh-CN/currenti18n/zh-CN/version-*
- For Chinese translation tasks:
- Follow
skills/translate-docs-zh/SKILL.md - Use terminology from
skills/translate-docs-zh/references/terminology.md - Do not use external translation tools/APIs/websites
- Follow
- When changing top-level sidebar categories (Introduction/Start/Schema IDL & Compiler/Guide):
- Update
sidebars.ts - Update
i18n/zh-CN/docusaurus-plugin-content-docs/current.json(and version JSON files if needed)
- Update
- Minimum pre-commit validation:
npm run buildnpm run typecheck- Manually verify critical routes:
/,/docs,/zh-CN/docs,/blog