[blog] Add Doris Summit 2026 recap (#4608)

Publish the complete English Doris Summit 2026 recap at
`/blog/doris-summit-2026-recap`, authored by Apache Doris · Mingyu Chen
and dated November 11, 2026, with the recap video at the start of the
article.

The article includes four compressed content images, an 1800 × 766
cover, and a local video poster. It preserves the supplied text and
recording links and includes the required metadata, image alt text, and
ASF license header.

The reusable `YouTube` component initially shows the local poster and a
play button. Activation creates the YouTube iframe in place, so the
initial page makes no YouTube requests. The component uses existing
theme tokens, supports keyboard activation and focus transfer, and
provides a direct YouTube link. It adds no dependencies or video
binaries. Registering it in the MDX component map makes it available to
other MDX pages; converting this post to `.mdx` preserves its URL.

## Validation

- Article link lint passed without errors or warnings; external links
were reported without fetching. SEO lint reported no findings.
- Confirmed the original body and publication metadata are preserved and
local image references resolve.
- Development server compiled successfully; the article, cover, and
activated YouTube embed returned HTTP 200.
- Automated local Chrome checks confirmed zero YouTube requests before
activation, keyboard activation and focus transfer, responsive desktop
and mobile layouts, theme token rendering across eight brand themes, and
no page JavaScript errors.
- Inspected desktop and mobile screenshots.
- `git diff --check` passed. No production build was run, following
`doc-tools/HOW-TO-ADD-BLOG.md`.

## Versions

Not applicable: this is a Blog post and a shared MDX component; there
are no versioned documentation content changes.

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

## Languages

- [ ] Chinese
- [x] English

The request covers the English article only. No translated post or
versioned documentation counterparts are required. The shared component
marks its interface strings for translation through Docusaurus.

## Docs Checklist

- [x] Checked by AI
- [ ] 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

Validation used static checks and an automated local browser check; no
permanent test files were added. Blog discovery is automatic, and the
article URL is unchanged.

---------

Co-authored-by: morningman <moringman@apache.org>
11 files changed
tree: 6feee62d2445e035310351c786c1cd0ccb76e860
  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)