[blog] Add five technical posts and automate Recent posts (#4606)

Adds five complete English technical posts and replaces the fixed
article-footer recommendations with the latest published posts from
Docusaurus blog metadata.

## Changes

- Add articles covering Lance vector search, incremental computing in
Doris 5.0, Lance lazy materialization, Doris + Vane, and Peer Read.
Include 34 compressed images, with new covers and English versions of
Chinese diagrams and charts. Remove commercial promotion while retaining
the anonymized Doris cloud service benchmark.
- Generate Recent posts automatically by publication date, showing up to
four articles and excluding the current article, drafts, and unlisted
posts. Preserve native localized links and English fallback titles.
- Update the publishing guide and localized section headings. Refresh
the affected translation target digests without changing source hashes
or review status.

## Validation

- All five posts passed Docusaurus Markdown compilation, front matter,
heading, local image, and link checks.
- `node --test config/recent-blogs-plugin.test.cjs`: 4 tests passed,
covering ordering, visibility, localization, duplicate routes, empty
lists, and newly added articles.
- Verified English and Chinese navigation, current-article exclusion,
publication-date hot reload, mobile layout, theme tokens, and
translation publication-state checks in local development.
- `git diff --check` passed. No production site build was run, following
the blog publishing guide.

## Versions

Not applicable: this PR changes blog content and shared blog rendering,
with no versioned documentation changes.

- [ ] dev
- [ ] 4.x
- [ ] 3.x
- [ ] 2.1 or older (not covered by version/language sync gate)

## Languages

- [x] Chinese
- [x] English

The articles are English translations of the supplied Chinese sources.
Section headings are updated for Chinese, Japanese, Korean, and Russian;
no localized article copies are added.

## Docs Checklist

- [x] Checked by AI
- [x] Test Cases Built
- [x] Updated required version and language counterparts, or explained
why not
- [x] If only one language changed, confirmed whether source/translation
counterparts need sync

---------

Co-authored-by: morningman <moringman@apache.org>
50 files changed
tree: 9b601c893accd8091cec656ce0bcd9b2bfba4252
  1. .docs-governance/
  2. .github/
  3. .vscode/
  4. archived_docs/
  5. blog/
  6. community/
  7. config/
  8. course/
  9. deprecated-docs/
  10. developer_docs/
  11. doc-tools/
  12. docs/
  13. i18n/
  14. plan-doc/
  15. releasenotes/
  16. scripts/
  17. shared/
  18. src/
  19. static/
  20. templates/
  21. translations/
  22. userCases/
  23. versioned_docs/
  24. versioned_sidebars/
  25. website-quality-governance/
  26. .asf-site.yaml
  27. .asf.yaml
  28. .dlc.json
  29. .gitignore
  30. .gitmodules
  31. .markdownlint.json
  32. .prettierrc.js
  33. AGENTS.md
  34. author.yml
  35. auto_correct_format.py
  36. build-docs.sh
  37. build.sh
  38. buildVersions.json
  39. check_all_deadlink.py
  40. check_docs_version_diff.py
  41. check_move.py
  42. check_move_global.py
  43. cspell.json
  44. docusaurus.config.js
  45. LICENSE
  46. local_build_docs.sh
  47. local_dev.sh
  48. local_dev_next.sh
  49. modify-deadlink.py
  50. package.json
  51. README.md
  52. sidebars.ts
  53. sidebarsCommunity.json
  54. sidebarsCourse.ts
  55. sidebarsReleases.json
  56. store_format_v3.md
  57. tailwind.config.js
  58. TOC.md
  59. tsconfig.json
  60. versions.json
  61. yarn.lock
README.md

Apache Doris Website

Source code for doris.apache.org, built with Docusaurus 3.

Quick Start

Prerequisites

  • Node.js >= 18
  • Yarn

Local Development

Use local_dev.sh to run the site locally. It handles dependency installation, version filtering, and memory settings automatically.

# Start English dev server (default: only 'current' version, 2 GB memory)
./local_dev.sh

# Start Chinese dev server
./local_dev.sh start-zh

# Start on a custom port
./local_dev.sh start --port 8080

# Build a specific doc version
./local_dev.sh start --versions "4.x"

# Build English docs (production build)
./local_dev.sh build

# Build all locales (en + zh-CN)
./local_dev.sh build-all

# Clean build artifacts and caches
./local_dev.sh clean

Run ./local_dev.sh help for all available commands and options.

Production Build

export NODE_OPTIONS=--max-old-space-size=8192
yarn install
yarn docusaurus build --locale en --locale zh-CN

The output is generated in the build/ directory.

Directory Structure

.
├── docs/                         # Current (dev) version docs (English)
├── versioned_docs/
│   ├── version-4.x/              # 4.x version docs (English)
│   └── version-3.x/              # 3.x version docs (English)
├── i18n/zh-CN/
│   └── docusaurus-plugin-content-docs/
│       ├── current/              # Current (dev) version docs (Chinese)
│       ├── version-4.x/          # 4.x version docs (Chinese)
│       └── version-3.x/          # 3.x version docs (Chinese)
├── archived_docs/                # Frozen 2.1, 2.0, and 1.2 sources
│   ├── versioned_docs/          # Archived English docs
│   ├── i18n/zh-CN/             # Archived Chinese docs and translation metadata
│   └── versioned_sidebars/     # Archived sidebars
├── blog/                         # Blog posts
├── community/                    # Community docs
├── src/                          # React components and pages
├── static/                       # Static assets (images, JS, CSS)
├── sidebars.ts                   # Sidebar for current (dev) docs
├── versioned_sidebars/           # Sidebar files per version
│   ├── version-4.x-sidebars.json
│   └── version-3.x-sidebars.json
├── sidebarsCommunity.json        # Sidebar for community docs
├── versions.json                 # Active doc versions
├── docusaurus.config.js          # Docusaurus configuration
└── local_dev.sh                  # Local development helper script

Contributing Documentation

For general contribution guidelines, see:

Editing Docs

When modifying docs, you typically need to update both the English and Chinese versions in the corresponding directories:

VersionEnglishChineseSidebar
Current (dev)docs/i18n/zh-CN/.../current/sidebars.ts
4.xversioned_docs/version-4.x/i18n/zh-CN/.../version-4.x/versioned_sidebars/version-4.x-sidebars.json
3.xversioned_docs/version-3.x/i18n/zh-CN/.../version-3.x/versioned_sidebars/version-3.x-sidebars.json

Versions 2.1, 2.0, and 1.2 are archived and no longer maintained. Their sources and sidebar metadata are kept in archived_docs/ for historical reference, redirects, and PDF exports. Make documentation updates only in the active versions above; do not restore the archived version directories to the active documentation trees. Published PDFs remain available at /archived-docs.

Note: When adding a new page, you must also add its path to the corresponding sidebar file, otherwise it will not appear in the navigation.

Editing Blog Posts

Blog posts are located in the blog/ directory. Submit a PR to add or modify blog content.

Editing Community Docs

Community docs are in community/, with navigation controlled by sidebarsCommunity.json. Chinese community content lives under i18n/zh-CN/docusaurus-plugin-content-docs-community/.

Images

All images are stored in static/images/. Use hyphens to separate words in filenames (e.g., query-profile-example.png).

![Description of the image](/images/my-screenshot.png)

CI / Deployment

The site is deployed via GitHub Actions:

WorkflowTriggerDescription
cron-deploy-website.ymlPush to master; daily at 01:00 UTCBuilds and deploys the site; the daily run refreshes dynamic data and provides a fallback
manual-deploy-website.ymlManualDeploy from a specified branch
build-check.ymlOn PRValidates the build passes (incrementally by detected version)