)]}'
{
  "commit": "736c70f77feb116f6a031393f5ad45e84a8a6a1b",
  "tree": "9b601c893accd8091cec656ce0bcd9b2bfba4252",
  "parents": [
    "842d5492aa874886b4bc03aae71c9ae469e81cf8"
  ],
  "author": {
    "name": "Mingyu Chen (Rayner)",
    "email": "morningman.cmy@gmail.com",
    "time": "Tue Nov 10 22:09:05 2026 +0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Nov 10 22:09:05 2026 +0800"
  },
  "message": "[blog] Add five technical posts and automate Recent posts (#4606)\n\nAdds five complete English technical posts and replaces the fixed\narticle-footer recommendations with the latest published posts from\nDocusaurus blog metadata.\n\n## Changes\n\n- Add articles covering Lance vector search, incremental computing in\nDoris 5.0, Lance lazy materialization, Doris + Vane, and Peer Read.\nInclude 34 compressed images, with new covers and English versions of\nChinese diagrams and charts. Remove commercial promotion while retaining\nthe anonymized Doris cloud service benchmark.\n- Generate Recent posts automatically by publication date, showing up to\nfour articles and excluding the current article, drafts, and unlisted\nposts. Preserve native localized links and English fallback titles.\n- Update the publishing guide and localized section headings. Refresh\nthe affected translation target digests without changing source hashes\nor review status.\n\n## Validation\n\n- All five posts passed Docusaurus Markdown compilation, front matter,\nheading, local image, and link checks.\n- `node --test config/recent-blogs-plugin.test.cjs`: 4 tests passed,\ncovering ordering, visibility, localization, duplicate routes, empty\nlists, and newly added articles.\n- Verified English and Chinese navigation, current-article exclusion,\npublication-date hot reload, mobile layout, theme tokens, and\ntranslation publication-state checks in local development.\n- `git diff --check` passed. No production site build was run, following\nthe blog publishing guide.\n\n## Versions\n\nNot applicable: this PR changes blog content and shared blog rendering,\nwith no versioned documentation changes.\n\n- [ ] dev\n- [ ] 4.x\n- [ ] 3.x\n- [ ] 2.1 or older (not covered by version/language sync gate)\n\n## Languages\n\n- [x] Chinese\n- [x] English\n\nThe articles are English translations of the supplied Chinese sources.\nSection headings are updated for Chinese, Japanese, Korean, and Russian;\nno localized article copies are added.\n\n## Docs Checklist\n\n- [x] Checked by AI\n- [x] Test Cases Built\n- [x] Updated required version and language counterparts, or explained\nwhy not\n- [x] If only one language changed, confirmed whether source/translation\ncounterparts need sync\n\n---------\n\nCo-authored-by: morningman \u003cmoringman@apache.org\u003e",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1218c985e1a7e620222b3bd8244f426dc759d392",
      "new_mode": 33188,
      "new_path": "blog/apache-doris-4-2-peer-read-cache-sharing.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4e7cf179d4601c0462484f12220ffabbdd471295",
      "new_mode": 33188,
      "new_path": "blog/apache-doris-5-incremental-computing.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "26d2341e7881030cd9544e037552fa0248c3f25c",
      "new_mode": 33188,
      "new_path": "blog/apache-doris-lance-lazy-materialization.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "72f94982b37a1b610a83ef84b96d4bbc2872d126",
      "new_mode": 33188,
      "new_path": "blog/apache-doris-lance-vector-search.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5a79a07cf57a2fec8a5069be9a368504ee92c8b0",
      "new_mode": 33188,
      "new_path": "blog/apache-doris-vane-multimodal-analytics.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4114ab020e49ab7b2999ec2f30dc1bbffa8aa9b7",
      "new_mode": 33188,
      "new_path": "config/recent-blogs-plugin.cjs"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "dbacd70990054ee3ce3c0c62b33782623717bba8",
      "new_mode": 33188,
      "new_path": "config/recent-blogs-plugin.test.cjs"
    },
    {
      "type": "modify",
      "old_id": "8a4db8cfecef436cb00eb1ba74b247dcdb63855b",
      "old_mode": 33188,
      "old_path": "doc-tools/HOW-TO-ADD-BLOG.md",
      "new_id": "60e7012a0a8d09dd3477ee3ca357b9a6b2fdbd52",
      "new_mode": 33188,
      "new_path": "doc-tools/HOW-TO-ADD-BLOG.md"
    },
    {
      "type": "modify",
      "old_id": "7dcd543340d8961c49fcbd4e80f26503a5ddd6e6",
      "old_mode": 33188,
      "old_path": "docusaurus.config.js",
      "new_id": "ee582fe161a1c505579c4aec5a8170fe131959c5",
      "new_mode": 33188,
      "new_path": "docusaurus.config.js"
    },
    {
      "type": "modify",
      "old_id": "1d0c809b572b954e8514c452d6ffde6d6bdc917b",
      "old_mode": 33188,
      "old_path": "i18n/ja/code.json",
      "new_id": "492e821248cae146885bc85db40a086fc8ed6269",
      "new_mode": 33188,
      "new_path": "i18n/ja/code.json"
    },
    {
      "type": "modify",
      "old_id": "908da4470420854788607970be6ff3060cd9e3aa",
      "old_mode": 33188,
      "old_path": "i18n/ko/code.json",
      "new_id": "e701e63e587260abb0ae5bf4413421caa966355d",
      "new_mode": 33188,
      "new_path": "i18n/ko/code.json"
    },
    {
      "type": "modify",
      "old_id": "80a2aca46b3771fa40e7e91a2ac515e92fe32ba3",
      "old_mode": 33188,
      "old_path": "i18n/ru/code.json",
      "new_id": "4190ec2862abe5cd36f732c574eec8f263d28d53",
      "new_mode": 33188,
      "new_path": "i18n/ru/code.json"
    },
    {
      "type": "modify",
      "old_id": "4fcf6ed846046f68c8f93e9c4e5a8413d9a5de85",
      "old_mode": 33188,
      "old_path": "i18n/zh-CN/code.json",
      "new_id": "d1cbe187fd29f87888d1ea9ecd8c3f6ad092349c",
      "new_mode": 33188,
      "new_path": "i18n/zh-CN/code.json"
    },
    {
      "type": "modify",
      "old_id": "8491d51a1243437225500ec646bfac8a5387fd4a",
      "old_mode": 33188,
      "old_path": "src/components/recent-blogs/index.tsx",
      "new_id": "5123890af20e8093d00e3c47be5290150436e646",
      "new_mode": 33188,
      "new_path": "src/components/recent-blogs/index.tsx"
    },
    {
      "type": "delete",
      "old_id": "c8d1f21ed5845d7e25220712b89a686c2c7417e6",
      "old_mode": 33188,
      "old_path": "src/components/recent-blogs/recent-blogs.data.ts",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2338edb471281f6f81bd82db6c0242d885760164",
      "new_mode": 33188,
      "new_path": "static/images/blogs/apache-doris-4-2-peer-read-cache-sharing/cache-islands.jpg"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3b0bb66c702811ec71c64903a2027d0cfe05dac6",
      "new_mode": 33188,
      "new_path": "static/images/blogs/apache-doris-4-2-peer-read-cache-sharing/cover.jpg"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9d109182579fbfbeda5f093ae049fdaa84e71108",
      "new_mode": 33188,
      "new_path": "static/images/blogs/apache-doris-4-2-peer-read-cache-sharing/fill-compute-group.jpg"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "501d613ce52fa76c4367a6ad1f08d3ebc4ead60f",
      "new_mode": 33188,
      "new_path": "static/images/blogs/apache-doris-4-2-peer-read-cache-sharing/peer-read-flow.jpg"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6ebbf0a5083be0d030d9c2de3369088230a8c5cb",
      "new_mode": 33188,
      "new_path": "static/images/blogs/apache-doris-4-2-peer-read-cache-sharing/point-query-results.png"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "29751fda66c3c133c8d6ea3a430edc406b5372a3",
      "new_mode": 33188,
      "new_path": "static/images/blogs/apache-doris-4-2-peer-read-cache-sharing/race-timeline.jpg"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f12911769d9826db122db16e0ec7034f5927d985",
      "new_mode": 33188,
      "new_path": "static/images/blogs/apache-doris-4-2-peer-read-cache-sharing/tpch-cold-read.jpg"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "042ff55b490754be9629131e70df1f05843e68c1",
      "new_mode": 33188,
      "new_path": "static/images/blogs/apache-doris-5-incremental-computing/changelog-and-streams.jpg"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c42169b2d7b53fc9f6440150fc84ffb04cce6b34",
      "new_mode": 33188,
      "new_path": "static/images/blogs/apache-doris-5-incremental-computing/cover.jpg"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a6c49a155bfcddb3690b371efed355dc46d9d431",
      "new_mode": 33188,
      "new_path": "static/images/blogs/apache-doris-5-incremental-computing/customer-order-table.jpg"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d96789ff066c83dfbd20168c2e6a7755245ba54e",
      "new_mode": 33188,
      "new_path": "static/images/blogs/apache-doris-5-incremental-computing/flink-changelog.jpg"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "14620a85fe8c4fbb0303f94d74b1445b5df1b8de",
      "new_mode": 33188,
      "new_path": "static/images/blogs/apache-doris-5-incremental-computing/ivm.jpg"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "058899be7a5dd3e14daa82295d62696c28415956",
      "new_mode": 33188,
      "new_path": "static/images/blogs/apache-doris-5-incremental-computing/order-metrics.jpg"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fdd80cdd46dac5f9ad3f33389836df95002e2707",
      "new_mode": 33188,
      "new_path": "static/images/blogs/apache-doris-5-incremental-computing/pilot.jpg"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "68d07b4a626603a411772bd91e838ef815cdfae3",
      "new_mode": 33188,
      "new_path": "static/images/blogs/apache-doris-5-incremental-computing/selection-guide.jpg"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0489af9aa1543ba08d52aa73ed87118944862374",
      "new_mode": 33188,
      "new_path": "static/images/blogs/apache-doris-5-incremental-computing/warehouse-layers.jpg"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2c2fb06873dcb13b2215e9489caa89c04a54ee95",
      "new_mode": 33188,
      "new_path": "static/images/blogs/apache-doris-lance-lazy-materialization/column-eligibility.jpg"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4ec74279f6492c8eb491febcecd0a7649a81730b",
      "new_mode": 33188,
      "new_path": "static/images/blogs/apache-doris-lance-lazy-materialization/cover.jpg"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "af97b843eade8109d4b7b33587eafcb7e5cde8b7",
      "new_mode": 33188,
      "new_path": "static/images/blogs/apache-doris-lance-lazy-materialization/distributed-architecture.jpg"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "16baf3c011d00e330639d883ab669e4d251a745c",
      "new_mode": 33188,
      "new_path": "static/images/blogs/apache-doris-lance-lazy-materialization/eager-vs-two-phase.jpg"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "95a6975c88c61a3fc0653cddd2a0635b4a4634bc",
      "new_mode": 33188,
      "new_path": "static/images/blogs/apache-doris-lance-lazy-materialization/first-execution-benchmark.png"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ab25b6eb22522d35b44fadd6ee1883e8caf799b7",
      "new_mode": 33188,
      "new_path": "static/images/blogs/apache-doris-lance-lazy-materialization/minimum-time-benchmark.png"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c74eafa254cbeb25d1efd81fed54199396e74c4d",
      "new_mode": 33188,
      "new_path": "static/images/blogs/apache-doris-lance-lazy-materialization/row-id-fetch.jpg"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "375a89695d1948a7d17604291cf52251ae15ddf5",
      "new_mode": 33188,
      "new_path": "static/images/blogs/apache-doris-lance-vector-search/architecture.jpg"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0d43f7ddacf7a5a17e35021d2287ba0d5346a1a2",
      "new_mode": 33188,
      "new_path": "static/images/blogs/apache-doris-lance-vector-search/benchmark-matrix.png"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8d74c9e023cc5f0e360d3eef437ead27947ac7c7",
      "new_mode": 33188,
      "new_path": "static/images/blogs/apache-doris-lance-vector-search/billion-record-benchmark.png"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8975e8e3ad6e050d93a0d0d12b79b47a5d014936",
      "new_mode": 33188,
      "new_path": "static/images/blogs/apache-doris-lance-vector-search/caching.jpg"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "70a6402d34677ecfea0705692f399f607128e26e",
      "new_mode": 33188,
      "new_path": "static/images/blogs/apache-doris-lance-vector-search/cover.jpg"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "be4f5363e04fb9c141f155e7704daf235fe2a075",
      "new_mode": 33188,
      "new_path": "static/images/blogs/apache-doris-lance-vector-search/late-materialization.jpg"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5a132ce8dace608ed44997310c5214e9d3c200b0",
      "new_mode": 33188,
      "new_path": "static/images/blogs/apache-doris-lance-vector-search/parallel-search.jpg"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1d752de6d7d0c3d290e2a7912413d2987836e65a",
      "new_mode": 33188,
      "new_path": "static/images/blogs/apache-doris-lance-vector-search/prefiltering.jpg"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9b92441c3130e9b1f4524088c71b435fe7cf30c6",
      "new_mode": 33188,
      "new_path": "static/images/blogs/apache-doris-lance-vector-search/search-to-analysis.jpg"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "98a733d3366b3227a09a2c14b78e206f9c8b62db",
      "new_mode": 33188,
      "new_path": "static/images/blogs/apache-doris-vane-multimodal-analytics/cover.jpg"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "70f657b8413776c420e016229bdf657787750d02",
      "new_mode": 33188,
      "new_path": "static/images/blogs/apache-doris-vane-multimodal-analytics/multimodal-data-flow.png"
    },
    {
      "type": "modify",
      "old_id": "9a2168d4c0cd6b688aff00e410c5a03b517237a0",
      "old_mode": 33188,
      "old_path": "translations/pages/state.json",
      "new_id": "e5e0cdb0a5f24e688935f1d431ac47bc7ce2dcdd",
      "new_mode": 33188,
      "new_path": "translations/pages/state.json"
    }
  ]
}
