You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fesod.apache.org by gi...@apache.org on 2026/02/25 15:21:03 UTC
(fesod) branch gh-pages updated (56eb8c40 -> 3436ff65)
This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a change to branch gh-pages
in repository https://gitbox.apache.org/repos/asf/fesod.git
discard 56eb8c40 deploy: c35b92b3e2879841f5bde1961d8978ee67927597
new 3436ff65 deploy: cb15574727a9c8f6a32903e6d25afc5ab368fff0
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (56eb8c40)
\
N -- N -- N refs/heads/gh-pages (3436ff65)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
404.html | 2 +-
assets/js/{8293.ab9a5e8b.js => 1236.db21968b.js} | 2 +-
assets/js/{7188.88d8a3b3.js => 7188.0726257f.js} | 4 ++--
.../js/{7188.88d8a3b3.js.LICENSE.txt => 7188.0726257f.js.LICENSE.txt} | 0
assets/js/{runtime~main.0bcb7823.js => runtime~main.6121cea4.js} | 2 +-
blog/2025/09/17/fesod-entered-apache-incubator/index.html | 2 +-
blog/archive/index.html | 2 +-
blog/authors/index.html | 2 +-
blog/index.html | 2 +-
blog/tags/announcement/index.html | 2 +-
blog/tags/index.html | 2 +-
community/brand/index.html | 2 +-
community/committer/become-committer/index.html | 2 +-
community/committer/icla/index.html | 2 +-
community/committer/onboarding/index.html | 2 +-
community/contribution/code-review-guide/index.html | 2 +-
community/contribution/commit-format/index.html | 2 +-
community/contribution/contribute-code/index.html | 2 +-
community/contribution/contribute-doc/index.html | 2 +-
community/contribution/index.html | 2 +-
community/feedback/index.html | 2 +-
community/index.html | 2 +-
community/maturity/index.html | 2 +-
community/pmc/become-pmc-member/index.html | 2 +-
community/pmc/nominate-committer/index.html | 2 +-
community/pmc/onboarding/index.html | 2 +-
community/release/release-version/index.html | 2 +-
community/release/verify-release/index.html | 2 +-
community/security/index.html | 2 +-
docs/download/index.html | 2 +-
docs/index.html | 2 +-
docs/migration/from-fastexcel/index.html | 2 +-
docs/quickstart/guide/index.html | 2 +-
docs/quickstart/simple-example/index.html | 2 +-
docs/sheet/fill/index.html | 2 +-
docs/sheet/help/annotation/index.html | 2 +-
docs/sheet/help/core-class/index.html | 2 +-
docs/sheet/help/faq/index.html | 2 +-
docs/sheet/help/large-data/index.html | 2 +-
docs/sheet/help/parameter/index.html | 2 +-
docs/sheet/read/converter/index.html | 2 +-
docs/sheet/read/csv/index.html | 2 +-
docs/sheet/read/exception/index.html | 2 +-
docs/sheet/read/extra/index.html | 2 +-
docs/sheet/read/head/index.html | 2 +-
docs/sheet/read/num-rows/index.html | 2 +-
docs/sheet/read/pojo/index.html | 2 +-
docs/sheet/read/sheet/index.html | 2 +-
docs/sheet/read/simple/index.html | 2 +-
docs/sheet/read/spring/index.html | 2 +-
docs/sheet/write/csv/index.html | 2 +-
docs/sheet/write/extra/index.html | 2 +-
docs/sheet/write/format/index.html | 2 +-
docs/sheet/write/head/index.html | 2 +-
docs/sheet/write/image/index.html | 2 +-
docs/sheet/write/pojo/index.html | 2 +-
docs/sheet/write/sheet/index.html | 2 +-
docs/sheet/write/simple/index.html | 2 +-
docs/sheet/write/spring/index.html | 2 +-
docs/sheet/write/style/index.html | 2 +-
index.html | 2 +-
search/index.html | 2 +-
team/index.html | 2 +-
zh-cn/404.html | 2 +-
zh-cn/assets/js/{8293.ab9a5e8b.js => 1236.db21968b.js} | 2 +-
zh-cn/assets/js/{4807.c5018e50.js => 4807.84f1ffb3.js} | 4 ++--
.../js/{4807.c5018e50.js.LICENSE.txt => 4807.84f1ffb3.js.LICENSE.txt} | 0
.../assets/js/{runtime~main.19933859.js => runtime~main.1ab0801f.js} | 2 +-
zh-cn/blog/2025/09/17/fesod-entered-apache-incubator/index.html | 2 +-
zh-cn/blog/archive/index.html | 2 +-
zh-cn/blog/authors/index.html | 2 +-
zh-cn/blog/index.html | 2 +-
zh-cn/blog/tags/announcement/index.html | 2 +-
zh-cn/blog/tags/index.html | 2 +-
zh-cn/community/brand/index.html | 2 +-
zh-cn/community/committer/become-committer/index.html | 2 +-
zh-cn/community/committer/icla/index.html | 2 +-
zh-cn/community/committer/onboarding/index.html | 2 +-
zh-cn/community/contribution/code-review-guide/index.html | 2 +-
zh-cn/community/contribution/commit-format/index.html | 2 +-
zh-cn/community/contribution/contribute-code/index.html | 2 +-
zh-cn/community/contribution/contribute-doc/index.html | 2 +-
zh-cn/community/contribution/index.html | 2 +-
zh-cn/community/feedback/index.html | 2 +-
zh-cn/community/index.html | 2 +-
zh-cn/community/maturity/index.html | 2 +-
zh-cn/community/pmc/become-pmc-member/index.html | 2 +-
zh-cn/community/pmc/nominate-committer/index.html | 2 +-
zh-cn/community/pmc/onboarding/index.html | 2 +-
zh-cn/community/release/release-version/index.html | 2 +-
zh-cn/community/release/verify-release/index.html | 2 +-
zh-cn/community/security/index.html | 2 +-
zh-cn/docs/download/index.html | 2 +-
zh-cn/docs/index.html | 2 +-
zh-cn/docs/migration/from-fastexcel/index.html | 2 +-
zh-cn/docs/quickstart/guide/index.html | 2 +-
zh-cn/docs/quickstart/simple-example/index.html | 2 +-
zh-cn/docs/sheet/fill/index.html | 2 +-
zh-cn/docs/sheet/help/annotation/index.html | 2 +-
zh-cn/docs/sheet/help/core-class/index.html | 2 +-
zh-cn/docs/sheet/help/faq/index.html | 2 +-
zh-cn/docs/sheet/help/large-data/index.html | 2 +-
zh-cn/docs/sheet/help/parameter/index.html | 2 +-
zh-cn/docs/sheet/read/converter/index.html | 2 +-
zh-cn/docs/sheet/read/csv/index.html | 2 +-
zh-cn/docs/sheet/read/exception/index.html | 2 +-
zh-cn/docs/sheet/read/extra/index.html | 2 +-
zh-cn/docs/sheet/read/head/index.html | 2 +-
zh-cn/docs/sheet/read/num-rows/index.html | 2 +-
zh-cn/docs/sheet/read/pojo/index.html | 2 +-
zh-cn/docs/sheet/read/sheet/index.html | 2 +-
zh-cn/docs/sheet/read/simple/index.html | 2 +-
zh-cn/docs/sheet/read/spring/index.html | 2 +-
zh-cn/docs/sheet/write/csv/index.html | 2 +-
zh-cn/docs/sheet/write/extra/index.html | 2 +-
zh-cn/docs/sheet/write/format/index.html | 2 +-
zh-cn/docs/sheet/write/head/index.html | 2 +-
zh-cn/docs/sheet/write/image/index.html | 2 +-
zh-cn/docs/sheet/write/pojo/index.html | 2 +-
zh-cn/docs/sheet/write/sheet/index.html | 2 +-
zh-cn/docs/sheet/write/simple/index.html | 2 +-
zh-cn/docs/sheet/write/spring/index.html | 2 +-
zh-cn/docs/sheet/write/style/index.html | 2 +-
zh-cn/index.html | 2 +-
zh-cn/search/index.html | 2 +-
zh-cn/team/index.html | 2 +-
126 files changed, 126 insertions(+), 126 deletions(-)
rename assets/js/{8293.ab9a5e8b.js => 1236.db21968b.js} (99%)
rename assets/js/{7188.88d8a3b3.js => 7188.0726257f.js} (99%)
rename assets/js/{7188.88d8a3b3.js.LICENSE.txt => 7188.0726257f.js.LICENSE.txt} (100%)
rename assets/js/{runtime~main.0bcb7823.js => runtime~main.6121cea4.js} (81%)
rename zh-cn/assets/js/{8293.ab9a5e8b.js => 1236.db21968b.js} (99%)
rename zh-cn/assets/js/{4807.c5018e50.js => 4807.84f1ffb3.js} (99%)
rename zh-cn/assets/js/{4807.c5018e50.js.LICENSE.txt => 4807.84f1ffb3.js.LICENSE.txt} (100%)
rename zh-cn/assets/js/{runtime~main.19933859.js => runtime~main.1ab0801f.js} (59%)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@fesod.apache.org
For additional commands, e-mail: commits-help@fesod.apache.org
(fesod) 01/01: deploy: cb15574727a9c8f6a32903e6d25afc5ab368fff0
Posted by gi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a commit to branch gh-pages
in repository https://gitbox.apache.org/repos/asf/fesod.git
commit 3436ff6576277a73478439f2a15f6cfb1439287b
Author: psxjoy <ps...@users.noreply.github.com>
AuthorDate: Wed Feb 25 15:20:57 2026 +0000
deploy: cb15574727a9c8f6a32903e6d25afc5ab368fff0
---
.asf.yaml | 52 +++
.nojekyll | 0
404.html | 25 ++
assets/css/styles.72156a30.css | 1 +
...fesod-logo-e09e531bdeeb40e7484aaa6dba7f672f.png | Bin 0 -> 40755 bytes
...fesod-logo-e965e5189d96bd03fa69a35f3d899546.svg | 1 +
...-logo-icon-3285667fcb12e822454e1e8bc1296eed.png | Bin 0 -> 15935 bytes
...-logo-icon-fe2b95b7518918c8494bba4f27944e16.svg | 1 +
...StyleWrite-daf422cde61cef375e3a694c3c64a0cb.png | Bin 0 -> 56825 bytes
...mmentWrite-d6757c6db4d4ee3ba71d9df3904e489f.png | Bin 0 -> 53531 bytes
...ble_result-21cb25bd329df76baf680fd0f94ef43b.png | Bin 0 -> 31232 bytes
...ill_result-3908e6375dce9ca1e29fdcc1eb7ba0b6.png | Bin 0 -> 32716 bytes
...xHeadWrite-ee9a9996adfccb73ce2bd8fd03bda05d.png | Bin 0 -> 56538 bytes
...eFill_file-ba1c7222a9c310e389363a04777fa279.png | Bin 0 -> 18904 bytes
...ill_result-94a945a637d60e2b0e8c055c83f92d8e.png | Bin 0 -> 49857 bytes
...erterWrite-3246357a06c3ba04afb519b820c19bb2.png | Bin 0 -> 80499 bytes
...ndlerWrite-c05ff79257df5ba72a311793a6e9db60.png | Bin 0 -> 53697 bytes
...cHeadWrite-b33468bf605a16abf195c740309137e3.png | Bin 0 -> 63141 bytes
...cludeWrite-bea7b205e7748fd8b55311383c344df1.png | Bin 0 -> 32442 bytes
...il-setting-64fa2bef013a1817489ee6195d293a97.png | Bin 0 -> 166719 bytes
...StyleWrite-082ae37a51bd9252f6900ab754387401.png | Bin 0 -> 39403 bytes
...ill_result-6c236308703bda3338b429425b18c2a4.png | Bin 0 -> 14550 bytes
.../icla-01-83a226e824e1b9a9d08813f21b882e31.png | Bin 0 -> 41209 bytes
.../icla-02-e761fe1f9d7c718f085b70b9fba8fc39.png | Bin 0 -> 47829 bytes
.../icla-03-c8df2f12ca6b2bc591a4e73aced61280.png | Bin 0 -> 64617 bytes
.../icla-04-4925b6c82e6383ae69d9e1b0b92d2145.png | Bin 0 -> 21166 bytes
.../imgWrite-3ef200f147e8e4f0cf2bb83c82256ce9.png | Bin 0 -> 40697 bytes
...indexWrite-bb3b8cbf0c5a06371b7fa9917fb3cd33.png | Bin 0 -> 56419 bytes
...ink-github-d7d62b2548477c375730056807eacc89.png | Bin 0 -> 30463 bytes
...ill_result-c126158195ba15c7ad37c143c1f2940b.png | Bin 0 -> 37910 bytes
...mergeWrite-976e024ef4e1613c6dab373937cc56ff.png | Bin 0 -> 48814 bytes
...ModelWrite-3d55fb6adc6efbc37febcf23526f89c8.png | Bin 0 -> 65511 bytes
...eatedWrite-1d4a6ee40db8a53e80ac1330fc50e79a.png | Bin 0 -> 56050 bytes
...set-passwd-e8828118db9277c6fe25a82a5a0bb3da.png | Bin 0 -> 180046 bytes
...-committer-20873b578f8c3b1853cd24d52171ca44.png | Bin 0 -> 14561 bytes
...tableWrite-1b3814878a3fc0ef244f767899675190.png | Bin 0 -> 109269 bytes
...eightWrite-77c049fb68d1ac806c1ba21e82c45f45.png | Bin 0 -> 58569 bytes
...lDataWrite-4dacef4c542b683bc9477c595ba19c4c.png | Bin 0 -> 26177 bytes
assets/js/0058b4c6.f4b7c191.js | 1 +
assets/js/01a85c17.d5835bd3.js | 1 +
assets/js/035672d3.36aef3eb.js | 1 +
assets/js/0fc1e0ab.196fb0d8.js | 1 +
assets/js/1024.78cf4982.js | 1 +
assets/js/10e1fcd2.c6c27bfe.js | 1 +
assets/js/1146.11a60ee4.js | 1 +
assets/js/1236.db21968b.js | 1 +
assets/js/1288.771018c8.js | 1 +
assets/js/138e0e15.d55cec6c.js | 1 +
assets/js/1416.54f4a54c.js | 1 +
assets/js/1597.20a48039.js | 1 +
assets/js/17896441.ab580b05.js | 1 +
assets/js/1a4e3797.d954a506.js | 1 +
assets/js/213c1e68.1fd31914.js | 1 +
assets/js/214.0255b187.js | 1 +
assets/js/2374.4da46005.js | 1 +
assets/js/2489.9a0aa92d.js | 1 +
assets/js/257.49af7587.js | 1 +
assets/js/2665.159f73c8.js | 1 +
assets/js/299aa024.de201f58.js | 1 +
assets/js/2c1e9c28.a5af2d71.js | 1 +
assets/js/3157.9e5d5098.js | 1 +
assets/js/3399376c.dcafeb77.js | 1 +
assets/js/34338452.f01a29ae.js | 1 +
assets/js/3459.b326c4d4.js | 1 +
assets/js/3508.261c092d.js | 1 +
assets/js/3577.52bb2b08.js | 1 +
assets/js/35aaf8c2.3a037251.js | 1 +
assets/js/3637.f7b1c1df.js | 1 +
assets/js/36994c47.3ef3ca34.js | 1 +
assets/js/3842.95371aea.js | 1 +
assets/js/3a2db09e.c32a2be7.js | 1 +
assets/js/3cb2f586.00b90dcb.js | 1 +
assets/js/3ff09b31.632e0500.js | 1 +
assets/js/417.52dd59d7.js | 1 +
assets/js/4383cab8.c4d68455.js | 1 +
assets/js/4567.56257026.js | 1 +
assets/js/4962.24701da4.js | 1 +
assets/js/498dc5b3.cc36f903.js | 1 +
assets/js/4a783ec1.72cb9fe5.js | 1 +
assets/js/5053.da121256.js | 1 +
assets/js/5292.490f3d73.js | 1 +
assets/js/531.dfba543b.js | 1 +
assets/js/5340.3a117119.js | 1 +
assets/js/536.9af12178.js | 1 +
assets/js/5495.8e4f6547.js | 1 +
assets/js/54d6a969.5b1a1693.js | 1 +
assets/js/5514.a23a67ac.js | 1 +
assets/js/5742f295.eb045651.js | 1 +
assets/js/5771c448.1cb28ce4.js | 1 +
assets/js/57b9d056.b5eead99.js | 1 +
assets/js/587.9ab4f2e1.js | 1 +
assets/js/5961.4939a221.js | 1 +
assets/js/5dfaa6dd.94fa5f1f.js | 1 +
assets/js/5e95c892.261f1fe8.js | 1 +
assets/js/621db11d.b70003b1.js | 1 +
assets/js/6270108c.c747b49d.js | 1 +
assets/js/638.9927b1dd.js | 2 +
assets/js/638.9927b1dd.js.LICENSE.txt | 9 +
assets/js/64ca138b.382e9486.js | 1 +
assets/js/66e7b107.6e9b6b36.js | 1 +
assets/js/6769.7a4327e0.js | 1 +
assets/js/6788.298e96c2.js | 2 +
assets/js/6788.298e96c2.js.LICENSE.txt | 76 ++++
assets/js/6875c492.d259fcb3.js | 1 +
assets/js/7002.7f63721d.js | 1 +
assets/js/7188.0726257f.js | 2 +
assets/js/7188.0726257f.js.LICENSE.txt | 1 +
assets/js/7217.c978d074.js | 1 +
assets/js/7307.f197f92b.js | 1 +
assets/js/7431.0bed9ba2.js | 1 +
assets/js/7494.ecc4a6d0.js | 1 +
assets/js/777.6b5fb956.js | 1 +
assets/js/7827.8c68bd62.js | 1 +
assets/js/814f3328.5a7dc7a4.js | 1 +
assets/js/8177.afd47023.js | 1 +
assets/js/8218.c66e12a5.js | 1 +
assets/js/83b4fe73.d1568cad.js | 1 +
assets/js/84450331.0ffd14ad.js | 1 +
assets/js/87165530.e823c329.js | 1 +
assets/js/8751.51cea8d9.js | 1 +
assets/js/8775.16908ee5.js | 1 +
assets/js/8ccf8dfc.e9978bea.js | 1 +
assets/js/903f555a.ff919b37.js | 1 +
assets/js/9056.59050bcd.js | 1 +
assets/js/908b89db.06165241.js | 1 +
assets/js/9111.9d1e0289.js | 1 +
assets/js/9400.a130969c.js | 1 +
assets/js/9407.fc553778.js | 1 +
assets/js/98b2b410.9bdbb0ca.js | 1 +
assets/js/9951.6a056cb2.js | 2 +
assets/js/9951.6a056cb2.js.LICENSE.txt | 1 +
assets/js/9b316f1b.c7830875.js | 1 +
assets/js/9d86e7fa.fd1f8399.js | 1 +
assets/js/9e4087bc.ad88494e.js | 1 +
assets/js/a0cc137d.11d3ac1b.js | 1 +
assets/js/a2915123.d0951102.js | 1 +
assets/js/a3e235df.af670227.js | 1 +
assets/js/a4b4544e.fe734537.js | 1 +
assets/js/a6aa9e1f.1204c21e.js | 1 +
assets/js/a7456010.6632754d.js | 1 +
assets/js/a7bd4aaa.574af4c1.js | 1 +
assets/js/a8dd066c.aa344b94.js | 1 +
assets/js/a94703ab.7bf2e5a8.js | 1 +
assets/js/aba21aa0.9a1fa3c5.js | 1 +
assets/js/abce2868.c543f22c.js | 1 +
assets/js/acecf23e.00e0664e.js | 1 +
assets/js/ae338ae9.ce2d9c8d.js | 1 +
assets/js/c15d9823.7b90f58f.js | 1 +
assets/js/c3aa4345.bd54d0c2.js | 1 +
assets/js/c4f5d8e4.2ebdc0d3.js | 1 +
assets/js/c639369e.5ed38b22.js | 1 +
assets/js/c9de33a5.731b0b44.js | 1 +
assets/js/ccc49370.ae195661.js | 1 +
assets/js/cfa642a3.217b6819.js | 1 +
assets/js/d2436a2b.8f688944.js | 1 +
assets/js/d5273c26.9a53c20c.js | 1 +
assets/js/d55aa8bb.67774ed3.js | 1 +
assets/js/de3da009.9b02b55a.js | 1 +
assets/js/e0719818.d59443b3.js | 1 +
assets/js/e1dda140.df46f5b3.js | 1 +
assets/js/e2f5eafd.4bfb052c.js | 1 +
assets/js/ea334bcf.ab33d9e4.js | 1 +
assets/js/edc931f8.5c7207d6.js | 1 +
assets/js/ef8b811a.6cd7a582.js | 1 +
assets/js/f81c1134.ea6d8f73.js | 1 +
assets/js/f9e23376.52879edf.js | 1 +
assets/js/fae1940b.e29ab397.js | 1 +
assets/js/fe9a19b4.d832a94c.js | 1 +
assets/js/ff3732e9.fc673461.js | 1 +
assets/js/main.70490860.js | 2 +
assets/js/main.70490860.js.LICENSE.txt | 138 +++++++
assets/js/runtime~main.6121cea4.js | 1 +
.../17/fesod-entered-apache-incubator/index.html | 25 ++
blog/archive/index.html | 25 ++
blog/atom.xml | 19 +
blog/authors/index.html | 25 ++
blog/feed.json | 19 +
blog/index.html | 25 ++
blog/rss.xml | 21 +
blog/tags/announcement/index.html | 25 ++
blog/tags/index.html | 25 ++
community/brand/index.html | 30 ++
community/committer/become-committer/index.html | 88 ++++
community/committer/icla/index.html | 84 ++++
community/committer/onboarding/index.html | 74 ++++
.../contribution/code-review-guide/index.html | 54 +++
community/contribution/commit-format/index.html | 55 +++
community/contribution/contribute-code/index.html | 83 ++++
community/contribution/contribute-doc/index.html | 75 ++++
community/contribution/index.html | 83 ++++
community/feedback/index.html | 68 ++++
community/index.html | 87 ++++
community/maturity/index.html | 317 +++++++++++++++
community/pmc/become-pmc-member/index.html | 54 +++
community/pmc/nominate-committer/index.html | 88 ++++
community/pmc/onboarding/index.html | 42 ++
community/release/release-version/index.html | 130 ++++++
community/release/verify-release/index.html | 109 +++++
community/security/index.html | 43 ++
docs/download/index.html | 138 +++++++
docs/index.html | 53 +++
docs/migration/from-fastexcel/index.html | 214 ++++++++++
docs/quickstart/guide/index.html | 96 +++++
docs/quickstart/simple-example/index.html | 31 ++
docs/sheet/fill/index.html | 88 ++++
docs/sheet/help/annotation/index.html | 369 +++++++++++++++++
docs/sheet/help/core-class/index.html | 390 ++++++++++++++++++
docs/sheet/help/faq/index.html | 299 ++++++++++++++
docs/sheet/help/large-data/index.html | 68 ++++
docs/sheet/help/parameter/index.html | 443 +++++++++++++++++++++
docs/sheet/read/converter/index.html | 36 ++
docs/sheet/read/csv/index.html | 108 +++++
docs/sheet/read/exception/index.html | 32 ++
docs/sheet/read/extra/index.html | 49 +++
docs/sheet/read/head/index.html | 46 +++
docs/sheet/read/num-rows/index.html | 39 ++
docs/sheet/read/pojo/index.html | 51 +++
docs/sheet/read/sheet/index.html | 55 +++
docs/sheet/read/simple/index.html | 74 ++++
docs/sheet/read/spring/index.html | 55 +++
docs/sheet/write/csv/index.html | 108 +++++
docs/sheet/write/extra/index.html | 82 ++++
docs/sheet/write/format/index.html | 35 ++
docs/sheet/write/head/index.html | 61 +++
docs/sheet/write/image/index.html | 35 ++
docs/sheet/write/pojo/index.html | 55 +++
docs/sheet/write/sheet/index.html | 52 +++
docs/sheet/write/simple/index.html | 43 ++
docs/sheet/write/spring/index.html | 32 ++
docs/sheet/write/style/index.html | 69 ++++
img/apache-incubator.svg | 155 +++++++
img/community/gmail-setting.png | Bin 0 -> 166719 bytes
img/community/icla-01.png | Bin 0 -> 41209 bytes
img/community/icla-02.png | Bin 0 -> 47829 bytes
img/community/icla-03.png | Bin 0 -> 64617 bytes
img/community/icla-04.png | Bin 0 -> 21166 bytes
img/community/link-github.png | Bin 0 -> 30463 bytes
img/community/reset-passwd.png | Bin 0 -> 180046 bytes
img/community/roster-add-committer.png | Bin 0 -> 14561 bytes
img/docs/fill/complexFillWithTable_file.png | Bin 0 -> 8097 bytes
img/docs/fill/complexFillWithTable_result.png | Bin 0 -> 31232 bytes
img/docs/fill/complexFill_file.png | Bin 0 -> 9104 bytes
img/docs/fill/complexFill_result.png | Bin 0 -> 32716 bytes
img/docs/fill/compositeFill_file.png | Bin 0 -> 18904 bytes
img/docs/fill/compositeFill_result.png | Bin 0 -> 49857 bytes
img/docs/fill/horizontalFill_file.png | Bin 0 -> 7897 bytes
img/docs/fill/horizontalFill_result.png | Bin 0 -> 14550 bytes
img/docs/fill/listFill_file.png | Bin 0 -> 4782 bytes
img/docs/fill/listFill_result.png | Bin 0 -> 37910 bytes
img/docs/fill/simpleFill_file.png | Bin 0 -> 8953 bytes
img/docs/fill/simpleFill_result.png | Bin 0 -> 6655 bytes
img/docs/write/annotationStyleWrite.png | Bin 0 -> 56825 bytes
img/docs/write/commentWrite.png | Bin 0 -> 53531 bytes
img/docs/write/complexHeadWrite.png | Bin 0 -> 56538 bytes
img/docs/write/converterWrite.png | Bin 0 -> 80499 bytes
img/docs/write/customHandlerWrite.png | Bin 0 -> 53697 bytes
img/docs/write/dynamicHeadWrite.png | Bin 0 -> 63141 bytes
img/docs/write/excludeOrIncludeWrite.png | Bin 0 -> 32442 bytes
img/docs/write/handlerStyleWrite.png | Bin 0 -> 39403 bytes
img/docs/write/ignore_row.png | Bin 0 -> 31100 bytes
img/docs/write/imgWrite.png | Bin 0 -> 40697 bytes
img/docs/write/indexRow.png | Bin 0 -> 56637 bytes
img/docs/write/indexWrite.png | Bin 0 -> 56419 bytes
img/docs/write/mergeWrite.png | Bin 0 -> 48814 bytes
img/docs/write/noModelWrite.png | Bin 0 -> 65511 bytes
img/docs/write/repeatedWrite.png | Bin 0 -> 56050 bytes
img/docs/write/tableWrite.png | Bin 0 -> 109269 bytes
img/docs/write/templateWrite.png | Bin 0 -> 71970 bytes
img/docs/write/widthAndHeightWrite.png | Bin 0 -> 58569 bytes
img/docs/write/writeCellDataWrite.png | Bin 0 -> 26177 bytes
img/favicon.ico | Bin 0 -> 15406 bytes
img/github_icon.svg | 21 +
img/index/undraw_files.svg | 1 +
img/index/undraw_programming.svg | 125 ++++++
img/index/undraw_spreadsheet.svg | 1 +
img/logo/fesod-logo-icon-white.png | Bin 0 -> 13489 bytes
img/logo/fesod-logo-icon.png | Bin 0 -> 15935 bytes
img/logo/fesod-logo-icon.svg | 1 +
img/logo/fesod-logo-white-y.png | Bin 0 -> 28116 bytes
img/logo/fesod-logo-white.svg | 1 +
img/logo/fesod-logo-y.png | Bin 0 -> 29073 bytes
img/logo/fesod-logo.png | Bin 0 -> 40755 bytes
img/logo/fesod-logo.svg | 1 +
index.html | 26 ++
robots.txt | 2 +
search-index.json | 1 +
search/index.html | 25 ++
sitemap.xml | 1 +
team/index.html | 25 ++
zh-cn/.nojekyll | 0
zh-cn/404.html | 25 ++
zh-cn/assets/css/styles.72156a30.css | 1 +
...fesod-logo-e09e531bdeeb40e7484aaa6dba7f672f.png | Bin 0 -> 40755 bytes
...fesod-logo-e965e5189d96bd03fa69a35f3d899546.svg | 1 +
...-logo-icon-3285667fcb12e822454e1e8bc1296eed.png | Bin 0 -> 15935 bytes
...-logo-icon-fe2b95b7518918c8494bba4f27944e16.svg | 1 +
...StyleWrite-daf422cde61cef375e3a694c3c64a0cb.png | Bin 0 -> 56825 bytes
...mmentWrite-d6757c6db4d4ee3ba71d9df3904e489f.png | Bin 0 -> 53531 bytes
...ble_result-21cb25bd329df76baf680fd0f94ef43b.png | Bin 0 -> 31232 bytes
...ill_result-3908e6375dce9ca1e29fdcc1eb7ba0b6.png | Bin 0 -> 32716 bytes
...xHeadWrite-ee9a9996adfccb73ce2bd8fd03bda05d.png | Bin 0 -> 56538 bytes
...eFill_file-ba1c7222a9c310e389363a04777fa279.png | Bin 0 -> 18904 bytes
...ill_result-94a945a637d60e2b0e8c055c83f92d8e.png | Bin 0 -> 49857 bytes
...erterWrite-3246357a06c3ba04afb519b820c19bb2.png | Bin 0 -> 80499 bytes
...ndlerWrite-c05ff79257df5ba72a311793a6e9db60.png | Bin 0 -> 53697 bytes
...cHeadWrite-b33468bf605a16abf195c740309137e3.png | Bin 0 -> 63141 bytes
...cludeWrite-bea7b205e7748fd8b55311383c344df1.png | Bin 0 -> 32442 bytes
...il-setting-64fa2bef013a1817489ee6195d293a97.png | Bin 0 -> 166719 bytes
...StyleWrite-082ae37a51bd9252f6900ab754387401.png | Bin 0 -> 39403 bytes
...ill_result-6c236308703bda3338b429425b18c2a4.png | Bin 0 -> 14550 bytes
.../icla-01-83a226e824e1b9a9d08813f21b882e31.png | Bin 0 -> 41209 bytes
.../icla-02-e761fe1f9d7c718f085b70b9fba8fc39.png | Bin 0 -> 47829 bytes
.../icla-03-c8df2f12ca6b2bc591a4e73aced61280.png | Bin 0 -> 64617 bytes
.../icla-04-4925b6c82e6383ae69d9e1b0b92d2145.png | Bin 0 -> 21166 bytes
.../imgWrite-3ef200f147e8e4f0cf2bb83c82256ce9.png | Bin 0 -> 40697 bytes
...indexWrite-bb3b8cbf0c5a06371b7fa9917fb3cd33.png | Bin 0 -> 56419 bytes
...ink-github-d7d62b2548477c375730056807eacc89.png | Bin 0 -> 30463 bytes
...ill_result-c126158195ba15c7ad37c143c1f2940b.png | Bin 0 -> 37910 bytes
...mergeWrite-976e024ef4e1613c6dab373937cc56ff.png | Bin 0 -> 48814 bytes
...ModelWrite-3d55fb6adc6efbc37febcf23526f89c8.png | Bin 0 -> 65511 bytes
...eatedWrite-1d4a6ee40db8a53e80ac1330fc50e79a.png | Bin 0 -> 56050 bytes
...set-passwd-e8828118db9277c6fe25a82a5a0bb3da.png | Bin 0 -> 180046 bytes
...-committer-20873b578f8c3b1853cd24d52171ca44.png | Bin 0 -> 14561 bytes
...tableWrite-1b3814878a3fc0ef244f767899675190.png | Bin 0 -> 109269 bytes
...eightWrite-77c049fb68d1ac806c1ba21e82c45f45.png | Bin 0 -> 58569 bytes
...lDataWrite-4dacef4c542b683bc9477c595ba19c4c.png | Bin 0 -> 26177 bytes
zh-cn/assets/js/00e1230c.79e6a4d3.js | 1 +
zh-cn/assets/js/01a85c17.d5835bd3.js | 1 +
zh-cn/assets/js/026e6981.c7fa73ce.js | 1 +
zh-cn/assets/js/035672d3.36aef3eb.js | 1 +
zh-cn/assets/js/1024.78cf4982.js | 1 +
zh-cn/assets/js/1146.11a60ee4.js | 1 +
zh-cn/assets/js/1236.db21968b.js | 1 +
zh-cn/assets/js/1288.771018c8.js | 1 +
zh-cn/assets/js/138e0e15.d55cec6c.js | 1 +
zh-cn/assets/js/1416.54f4a54c.js | 1 +
zh-cn/assets/js/14fc6b04.69680751.js | 1 +
zh-cn/assets/js/1597.20a48039.js | 1 +
zh-cn/assets/js/17896441.ab580b05.js | 1 +
zh-cn/assets/js/18b1fbba.421f6c6d.js | 1 +
zh-cn/assets/js/1a3b291f.a02097a7.js | 1 +
zh-cn/assets/js/1a4e3797.d954a506.js | 1 +
zh-cn/assets/js/214.0255b187.js | 1 +
zh-cn/assets/js/2374.4da46005.js | 1 +
zh-cn/assets/js/23f7ca76.c36f6e8e.js | 1 +
zh-cn/assets/js/2489.9a0aa92d.js | 1 +
zh-cn/assets/js/2557682e.43e649cd.js | 1 +
zh-cn/assets/js/257.49af7587.js | 1 +
zh-cn/assets/js/2665.159f73c8.js | 1 +
zh-cn/assets/js/2bc519fb.05cd1a84.js | 1 +
zh-cn/assets/js/3157.9e5d5098.js | 1 +
zh-cn/assets/js/32d423f7.7a9baf70.js | 1 +
zh-cn/assets/js/33296af2.33db1dd7.js | 1 +
zh-cn/assets/js/3459.b326c4d4.js | 1 +
zh-cn/assets/js/3508.261c092d.js | 1 +
zh-cn/assets/js/3577.52bb2b08.js | 1 +
zh-cn/assets/js/35ef6288.d0409d4d.js | 1 +
zh-cn/assets/js/3637.f7b1c1df.js | 1 +
zh-cn/assets/js/3696a4b8.ea2c5ecd.js | 1 +
zh-cn/assets/js/36994c47.3ef3ca34.js | 1 +
zh-cn/assets/js/3842.95371aea.js | 1 +
zh-cn/assets/js/39832ed4.0d7fadb0.js | 1 +
zh-cn/assets/js/3a6abea9.4415d4fd.js | 1 +
zh-cn/assets/js/417.d2462c21.js | 1 +
zh-cn/assets/js/42f9ab63.8cc5f2bf.js | 1 +
zh-cn/assets/js/4567.56257026.js | 1 +
zh-cn/assets/js/4807.84f1ffb3.js | 2 +
zh-cn/assets/js/4807.84f1ffb3.js.LICENSE.txt | 1 +
zh-cn/assets/js/4962.24701da4.js | 1 +
zh-cn/assets/js/5053.da121256.js | 1 +
zh-cn/assets/js/516dc88b.0afc3687.js | 1 +
zh-cn/assets/js/5292.490f3d73.js | 1 +
zh-cn/assets/js/531.dfba543b.js | 1 +
zh-cn/assets/js/5340.3a117119.js | 1 +
zh-cn/assets/js/536.a9025e89.js | 1 +
zh-cn/assets/js/53c18be7.976bbdca.js | 1 +
zh-cn/assets/js/5495.8e4f6547.js | 1 +
zh-cn/assets/js/5514.a23a67ac.js | 1 +
zh-cn/assets/js/587.9ab4f2e1.js | 1 +
zh-cn/assets/js/5961.4939a221.js | 1 +
zh-cn/assets/js/5b656150.4c56d5ac.js | 1 +
zh-cn/assets/js/5e6cf37e.1f2442de.js | 1 +
zh-cn/assets/js/5e95c892.261f1fe8.js | 1 +
zh-cn/assets/js/5f5c637e.02d793f7.js | 1 +
zh-cn/assets/js/621db11d.b70003b1.js | 1 +
zh-cn/assets/js/638.9927b1dd.js | 2 +
zh-cn/assets/js/638.9927b1dd.js.LICENSE.txt | 9 +
zh-cn/assets/js/65556891.0badb6f1.js | 1 +
zh-cn/assets/js/6769.7a4327e0.js | 1 +
zh-cn/assets/js/6788.298e96c2.js | 2 +
zh-cn/assets/js/6788.298e96c2.js.LICENSE.txt | 76 ++++
zh-cn/assets/js/6875c492.d259fcb3.js | 1 +
zh-cn/assets/js/6e79d794.5d65303f.js | 1 +
zh-cn/assets/js/6ea91d84.0c303029.js | 1 +
zh-cn/assets/js/7002.7f63721d.js | 1 +
zh-cn/assets/js/70652f5d.2599023c.js | 1 +
zh-cn/assets/js/70f646db.33934632.js | 1 +
zh-cn/assets/js/7217.c978d074.js | 1 +
zh-cn/assets/js/7307.f197f92b.js | 1 +
zh-cn/assets/js/7431.0bed9ba2.js | 1 +
zh-cn/assets/js/7494.ecc4a6d0.js | 1 +
zh-cn/assets/js/777.6b5fb956.js | 1 +
zh-cn/assets/js/77ad7f28.be3cc654.js | 1 +
zh-cn/assets/js/7827.8c68bd62.js | 1 +
zh-cn/assets/js/7ab5af9c.9dbad7d9.js | 1 +
zh-cn/assets/js/7bacda60.a7c4ef8a.js | 1 +
zh-cn/assets/js/7c8dfedd.446922de.js | 1 +
zh-cn/assets/js/814f3328.2c672c70.js | 1 +
zh-cn/assets/js/8177.afd47023.js | 1 +
zh-cn/assets/js/8218.c66e12a5.js | 1 +
zh-cn/assets/js/84f1c788.15f3a061.js | 1 +
zh-cn/assets/js/8751.51cea8d9.js | 1 +
zh-cn/assets/js/8775.16908ee5.js | 1 +
zh-cn/assets/js/8a2aa126.4d1f8e6e.js | 1 +
zh-cn/assets/js/9056.59050bcd.js | 1 +
zh-cn/assets/js/9111.9d1e0289.js | 1 +
zh-cn/assets/js/92380f4a.e1052001.js | 1 +
zh-cn/assets/js/9400.a130969c.js | 1 +
zh-cn/assets/js/9407.fc553778.js | 1 +
zh-cn/assets/js/97fe7548.0c61da15.js | 1 +
zh-cn/assets/js/9904a28c.7e2a1ff2.js | 1 +
zh-cn/assets/js/9951.6a056cb2.js | 2 +
zh-cn/assets/js/9951.6a056cb2.js.LICENSE.txt | 1 +
zh-cn/assets/js/995798e3.cf543715.js | 1 +
zh-cn/assets/js/9e4087bc.ad88494e.js | 1 +
zh-cn/assets/js/a08ce007.299fe5c6.js | 1 +
zh-cn/assets/js/a1225c8b.e4fba9de.js | 1 +
zh-cn/assets/js/a2451e7a.629370a4.js | 1 +
zh-cn/assets/js/a6aa9e1f.1204c21e.js | 1 +
zh-cn/assets/js/a7456010.6632754d.js | 1 +
zh-cn/assets/js/a7bd4aaa.574af4c1.js | 1 +
zh-cn/assets/js/a94703ab.7bf2e5a8.js | 1 +
zh-cn/assets/js/aba21aa0.9a1fa3c5.js | 1 +
zh-cn/assets/js/acecf23e.0b6e1d2a.js | 1 +
zh-cn/assets/js/b2fa7a64.4e3b7150.js | 1 +
zh-cn/assets/js/b4229a02.28cfbe4b.js | 1 +
zh-cn/assets/js/bbd078df.f12db1ba.js | 1 +
zh-cn/assets/js/be2eec21.b2b9b66c.js | 1 +
zh-cn/assets/js/beba5e5e.fdb48398.js | 1 +
zh-cn/assets/js/bf80cbe7.8a98cd0a.js | 1 +
zh-cn/assets/js/c1ff7703.9d8d873c.js | 1 +
zh-cn/assets/js/c4f5d8e4.2ebdc0d3.js | 1 +
zh-cn/assets/js/ccc49370.ae195661.js | 1 +
zh-cn/assets/js/cd11f224.c7766d2d.js | 1 +
zh-cn/assets/js/d0f020bf.9dd0e66a.js | 1 +
zh-cn/assets/js/d58f16ca.fed31b3c.js | 1 +
zh-cn/assets/js/df5d2657.b6096e4d.js | 1 +
zh-cn/assets/js/e0719818.d59443b3.js | 1 +
zh-cn/assets/js/e3ca1761.e337b238.js | 1 +
zh-cn/assets/js/e7985601.0e1d248b.js | 1 +
zh-cn/assets/js/ea6ff1c0.093b21bc.js | 1 +
zh-cn/assets/js/ec6079f5.8512f8ee.js | 1 +
zh-cn/assets/js/f133e5e2.03d378ba.js | 1 +
zh-cn/assets/js/f341d759.50bfb2db.js | 1 +
zh-cn/assets/js/f7ff6690.dcefd1ba.js | 1 +
zh-cn/assets/js/f98e3ca9.4f233a49.js | 1 +
zh-cn/assets/js/fa69dec0.8383485e.js | 1 +
zh-cn/assets/js/main.00cf2c92.js | 2 +
zh-cn/assets/js/main.00cf2c92.js.LICENSE.txt | 138 +++++++
zh-cn/assets/js/runtime~main.1ab0801f.js | 1 +
.../17/fesod-entered-apache-incubator/index.html | 25 ++
zh-cn/blog/archive/index.html | 25 ++
zh-cn/blog/atom.xml | 19 +
zh-cn/blog/authors/index.html | 25 ++
zh-cn/blog/feed.json | 19 +
zh-cn/blog/index.html | 25 ++
zh-cn/blog/rss.xml | 21 +
zh-cn/blog/tags/announcement/index.html | 25 ++
zh-cn/blog/tags/index.html | 25 ++
zh-cn/community/brand/index.html | 30 ++
.../committer/become-committer/index.html | 72 ++++
zh-cn/community/committer/icla/index.html | 84 ++++
zh-cn/community/committer/onboarding/index.html | 74 ++++
.../contribution/code-review-guide/index.html | 54 +++
.../contribution/commit-format/index.html | 55 +++
.../contribution/contribute-code/index.html | 84 ++++
.../contribution/contribute-doc/index.html | 75 ++++
zh-cn/community/contribution/index.html | 80 ++++
zh-cn/community/feedback/index.html | 67 ++++
zh-cn/community/index.html | 84 ++++
zh-cn/community/maturity/index.html | 317 +++++++++++++++
zh-cn/community/pmc/become-pmc-member/index.html | 53 +++
zh-cn/community/pmc/nominate-committer/index.html | 84 ++++
zh-cn/community/pmc/onboarding/index.html | 42 ++
zh-cn/community/release/release-version/index.html | 149 +++++++
zh-cn/community/release/verify-release/index.html | 119 ++++++
zh-cn/community/security/index.html | 41 ++
zh-cn/docs/download/index.html | 136 +++++++
zh-cn/docs/index.html | 43 ++
zh-cn/docs/migration/from-fastexcel/index.html | 214 ++++++++++
zh-cn/docs/quickstart/guide/index.html | 92 +++++
zh-cn/docs/quickstart/simple-example/index.html | 31 ++
zh-cn/docs/sheet/fill/index.html | 87 ++++
zh-cn/docs/sheet/help/annotation/index.html | 363 +++++++++++++++++
zh-cn/docs/sheet/help/core-class/index.html | 369 +++++++++++++++++
zh-cn/docs/sheet/help/faq/index.html | 282 +++++++++++++
zh-cn/docs/sheet/help/large-data/index.html | 52 +++
zh-cn/docs/sheet/help/parameter/index.html | 443 +++++++++++++++++++++
zh-cn/docs/sheet/read/converter/index.html | 35 ++
zh-cn/docs/sheet/read/csv/index.html | 102 +++++
zh-cn/docs/sheet/read/exception/index.html | 32 ++
zh-cn/docs/sheet/read/extra/index.html | 49 +++
zh-cn/docs/sheet/read/head/index.html | 45 +++
zh-cn/docs/sheet/read/num-rows/index.html | 36 ++
zh-cn/docs/sheet/read/pojo/index.html | 48 +++
zh-cn/docs/sheet/read/sheet/index.html | 51 +++
zh-cn/docs/sheet/read/simple/index.html | 73 ++++
zh-cn/docs/sheet/read/spring/index.html | 50 +++
zh-cn/docs/sheet/write/csv/index.html | 102 +++++
zh-cn/docs/sheet/write/extra/index.html | 82 ++++
zh-cn/docs/sheet/write/format/index.html | 35 ++
zh-cn/docs/sheet/write/head/index.html | 61 +++
zh-cn/docs/sheet/write/image/index.html | 35 ++
zh-cn/docs/sheet/write/pojo/index.html | 54 +++
zh-cn/docs/sheet/write/sheet/index.html | 52 +++
zh-cn/docs/sheet/write/simple/index.html | 42 ++
zh-cn/docs/sheet/write/spring/index.html | 31 ++
zh-cn/docs/sheet/write/style/index.html | 68 ++++
zh-cn/img/apache-incubator.svg | 155 +++++++
zh-cn/img/community/gmail-setting.png | Bin 0 -> 166719 bytes
zh-cn/img/community/icla-01.png | Bin 0 -> 41209 bytes
zh-cn/img/community/icla-02.png | Bin 0 -> 47829 bytes
zh-cn/img/community/icla-03.png | Bin 0 -> 64617 bytes
zh-cn/img/community/icla-04.png | Bin 0 -> 21166 bytes
zh-cn/img/community/link-github.png | Bin 0 -> 30463 bytes
zh-cn/img/community/reset-passwd.png | Bin 0 -> 180046 bytes
zh-cn/img/community/roster-add-committer.png | Bin 0 -> 14561 bytes
zh-cn/img/docs/fill/complexFillWithTable_file.png | Bin 0 -> 8097 bytes
.../img/docs/fill/complexFillWithTable_result.png | Bin 0 -> 31232 bytes
zh-cn/img/docs/fill/complexFill_file.png | Bin 0 -> 9104 bytes
zh-cn/img/docs/fill/complexFill_result.png | Bin 0 -> 32716 bytes
zh-cn/img/docs/fill/compositeFill_file.png | Bin 0 -> 18904 bytes
zh-cn/img/docs/fill/compositeFill_result.png | Bin 0 -> 49857 bytes
zh-cn/img/docs/fill/horizontalFill_file.png | Bin 0 -> 7897 bytes
zh-cn/img/docs/fill/horizontalFill_result.png | Bin 0 -> 14550 bytes
zh-cn/img/docs/fill/listFill_file.png | Bin 0 -> 4782 bytes
zh-cn/img/docs/fill/listFill_result.png | Bin 0 -> 37910 bytes
zh-cn/img/docs/fill/simpleFill_file.png | Bin 0 -> 8953 bytes
zh-cn/img/docs/fill/simpleFill_result.png | Bin 0 -> 6655 bytes
zh-cn/img/docs/write/annotationStyleWrite.png | Bin 0 -> 56825 bytes
zh-cn/img/docs/write/commentWrite.png | Bin 0 -> 53531 bytes
zh-cn/img/docs/write/complexHeadWrite.png | Bin 0 -> 56538 bytes
zh-cn/img/docs/write/converterWrite.png | Bin 0 -> 80499 bytes
zh-cn/img/docs/write/customHandlerWrite.png | Bin 0 -> 53697 bytes
zh-cn/img/docs/write/dynamicHeadWrite.png | Bin 0 -> 63141 bytes
zh-cn/img/docs/write/excludeOrIncludeWrite.png | Bin 0 -> 32442 bytes
zh-cn/img/docs/write/handlerStyleWrite.png | Bin 0 -> 39403 bytes
zh-cn/img/docs/write/ignore_row.png | Bin 0 -> 31100 bytes
zh-cn/img/docs/write/imgWrite.png | Bin 0 -> 40697 bytes
zh-cn/img/docs/write/indexRow.png | Bin 0 -> 56637 bytes
zh-cn/img/docs/write/indexWrite.png | Bin 0 -> 56419 bytes
zh-cn/img/docs/write/mergeWrite.png | Bin 0 -> 48814 bytes
zh-cn/img/docs/write/noModelWrite.png | Bin 0 -> 65511 bytes
zh-cn/img/docs/write/repeatedWrite.png | Bin 0 -> 56050 bytes
zh-cn/img/docs/write/tableWrite.png | Bin 0 -> 109269 bytes
zh-cn/img/docs/write/templateWrite.png | Bin 0 -> 71970 bytes
zh-cn/img/docs/write/widthAndHeightWrite.png | Bin 0 -> 58569 bytes
zh-cn/img/docs/write/writeCellDataWrite.png | Bin 0 -> 26177 bytes
zh-cn/img/favicon.ico | Bin 0 -> 15406 bytes
zh-cn/img/github_icon.svg | 21 +
zh-cn/img/index/undraw_files.svg | 1 +
zh-cn/img/index/undraw_programming.svg | 125 ++++++
zh-cn/img/index/undraw_spreadsheet.svg | 1 +
zh-cn/img/logo/fesod-logo-icon-white.png | Bin 0 -> 13489 bytes
zh-cn/img/logo/fesod-logo-icon.png | Bin 0 -> 15935 bytes
zh-cn/img/logo/fesod-logo-icon.svg | 1 +
zh-cn/img/logo/fesod-logo-white-y.png | Bin 0 -> 28116 bytes
zh-cn/img/logo/fesod-logo-white.svg | 1 +
zh-cn/img/logo/fesod-logo-y.png | Bin 0 -> 29073 bytes
zh-cn/img/logo/fesod-logo.png | Bin 0 -> 40755 bytes
zh-cn/img/logo/fesod-logo.svg | 1 +
zh-cn/index.html | 25 ++
zh-cn/robots.txt | 2 +
zh-cn/search-index.json | 1 +
zh-cn/search/index.html | 25 ++
zh-cn/sitemap.xml | 1 +
zh-cn/team/index.html | 25 ++
577 files changed, 11644 insertions(+)
diff --git a/.asf.yaml b/.asf.yaml
new file mode 100644
index 00000000..563a2156
--- /dev/null
+++ b/.asf.yaml
@@ -0,0 +1,52 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+# All configurations could be found here: https://github.com/apache/infrastructure-asfyaml/
+
+github:
+ description: "Fast. Easy. Done. Processing spreadsheets without worrying about large files causing OOM."
+ homepage: https://fesod.apache.org
+ labels:
+ - java
+ - excel
+ - office
+ - poi
+ - xlsx
+ - xls
+ - csv
+ - fast-excel
+ - fastexcel
+ - easyexcel
+ enabled_merge_buttons:
+ squash: true
+ merge: false
+ rebase: false
+ protected_branches:
+ main:
+ required_pull_request_reviews:
+ dismiss_stale_reviews: true
+ required_approving_review_count: 1
+ dependabot_alerts: true
+ dependabot_updates: false
+notifications:
+ commits: commits@fesod.apache.org
+ issues: commits@fesod.apache.org
+ pullrequests: commits@fesod.apache.org
+ discussions: dev@fesod.apache.org
+
+publish:
+ whoami: gh-pages
diff --git a/.nojekyll b/.nojekyll
new file mode 100644
index 00000000..e69de29b
diff --git a/404.html b/404.html
new file mode 100644
index 00000000..9dcf4cd5
--- /dev/null
+++ b/404.html
@@ -0,0 +1,25 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="plugin-native plugin-id-default" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Page Not Found | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/404.html"><meta [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/assets/css/styles.72156a30.css b/assets/css/styles.72156a30.css
new file mode 100644
index 00000000..760ca6ad
--- /dev/null
+++ b/assets/css/styles.72156a30.css
@@ -0,0 +1 @@
+@layer docusaurus.infima,docusaurus.theme-common,docusaurus.theme-classic,docusaurus.core,docusaurus.plugin-debug,docusaurus.theme-mermaid,docusaurus.theme-live-codeblock,docusaurus.theme-search-algolia.docsearch,docusaurus.theme-search-algolia;@layer docusaurus.infima{.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown [...]
\ No newline at end of file
diff --git a/assets/files/fesod-logo-e09e531bdeeb40e7484aaa6dba7f672f.png b/assets/files/fesod-logo-e09e531bdeeb40e7484aaa6dba7f672f.png
new file mode 100644
index 00000000..f588317f
Binary files /dev/null and b/assets/files/fesod-logo-e09e531bdeeb40e7484aaa6dba7f672f.png differ
diff --git a/assets/files/fesod-logo-e965e5189d96bd03fa69a35f3d899546.svg b/assets/files/fesod-logo-e965e5189d96bd03fa69a35f3d899546.svg
new file mode 100644
index 00000000..2ffb9418
--- /dev/null
+++ b/assets/files/fesod-logo-e965e5189d96bd03fa69a35f3d899546.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="591" height="180" viewBox="0 0 591 180" fill="none"><path fill="#14824B" d="M95.8897 139.62L66.4027 110.133L66.4027 110.133C69.8119 113.542 69.812 119.07 66.4027 122.479L66.2471 122.635L51.8993 136.983C47.9944 140.887 47.9944 147.218 51.8993 151.123L68.1429 167.367C72.0478 171.272 78.3788 171.272 82.2836 167.367L95.8898 153.761C99.7946 149.856 99.7946 143.525 95.8897 139.62Z"></path><path fil [...]
\ No newline at end of file
diff --git a/assets/files/fesod-logo-icon-3285667fcb12e822454e1e8bc1296eed.png b/assets/files/fesod-logo-icon-3285667fcb12e822454e1e8bc1296eed.png
new file mode 100644
index 00000000..65d71cbc
Binary files /dev/null and b/assets/files/fesod-logo-icon-3285667fcb12e822454e1e8bc1296eed.png differ
diff --git a/assets/files/fesod-logo-icon-fe2b95b7518918c8494bba4f27944e16.svg b/assets/files/fesod-logo-icon-fe2b95b7518918c8494bba4f27944e16.svg
new file mode 100644
index 00000000..6c080ff8
--- /dev/null
+++ b/assets/files/fesod-logo-icon-fe2b95b7518918c8494bba4f27944e16.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="222" height="220" viewBox="0 0 222 220" fill="none"><path fill="#14824B" d="M113.324 163.939L81.7664 132.382L81.7664 132.382C85.415 136.03 85.4151 141.946 81.7665 145.595L81.6 145.761L66.2449 161.116C62.066 165.295 62.066 172.071 66.245 176.25L83.6291 193.634C87.8081 197.813 94.5836 197.813 98.7625 193.634L113.324 179.073C117.503 174.894 117.503 168.118 113.324 163.939Z"></path><path fill-rul [...]
\ No newline at end of file
diff --git a/assets/images/annotationStyleWrite-daf422cde61cef375e3a694c3c64a0cb.png b/assets/images/annotationStyleWrite-daf422cde61cef375e3a694c3c64a0cb.png
new file mode 100644
index 00000000..6aeb9fb5
Binary files /dev/null and b/assets/images/annotationStyleWrite-daf422cde61cef375e3a694c3c64a0cb.png differ
diff --git a/assets/images/commentWrite-d6757c6db4d4ee3ba71d9df3904e489f.png b/assets/images/commentWrite-d6757c6db4d4ee3ba71d9df3904e489f.png
new file mode 100644
index 00000000..9ffcb125
Binary files /dev/null and b/assets/images/commentWrite-d6757c6db4d4ee3ba71d9df3904e489f.png differ
diff --git a/assets/images/complexFillWithTable_result-21cb25bd329df76baf680fd0f94ef43b.png b/assets/images/complexFillWithTable_result-21cb25bd329df76baf680fd0f94ef43b.png
new file mode 100644
index 00000000..dc27781a
Binary files /dev/null and b/assets/images/complexFillWithTable_result-21cb25bd329df76baf680fd0f94ef43b.png differ
diff --git a/assets/images/complexFill_result-3908e6375dce9ca1e29fdcc1eb7ba0b6.png b/assets/images/complexFill_result-3908e6375dce9ca1e29fdcc1eb7ba0b6.png
new file mode 100644
index 00000000..0a9d289b
Binary files /dev/null and b/assets/images/complexFill_result-3908e6375dce9ca1e29fdcc1eb7ba0b6.png differ
diff --git a/assets/images/complexHeadWrite-ee9a9996adfccb73ce2bd8fd03bda05d.png b/assets/images/complexHeadWrite-ee9a9996adfccb73ce2bd8fd03bda05d.png
new file mode 100644
index 00000000..e52d0960
Binary files /dev/null and b/assets/images/complexHeadWrite-ee9a9996adfccb73ce2bd8fd03bda05d.png differ
diff --git a/assets/images/compositeFill_file-ba1c7222a9c310e389363a04777fa279.png b/assets/images/compositeFill_file-ba1c7222a9c310e389363a04777fa279.png
new file mode 100644
index 00000000..0e9f099f
Binary files /dev/null and b/assets/images/compositeFill_file-ba1c7222a9c310e389363a04777fa279.png differ
diff --git a/assets/images/compositeFill_result-94a945a637d60e2b0e8c055c83f92d8e.png b/assets/images/compositeFill_result-94a945a637d60e2b0e8c055c83f92d8e.png
new file mode 100644
index 00000000..316a0022
Binary files /dev/null and b/assets/images/compositeFill_result-94a945a637d60e2b0e8c055c83f92d8e.png differ
diff --git a/assets/images/converterWrite-3246357a06c3ba04afb519b820c19bb2.png b/assets/images/converterWrite-3246357a06c3ba04afb519b820c19bb2.png
new file mode 100644
index 00000000..90196e1a
Binary files /dev/null and b/assets/images/converterWrite-3246357a06c3ba04afb519b820c19bb2.png differ
diff --git a/assets/images/customHandlerWrite-c05ff79257df5ba72a311793a6e9db60.png b/assets/images/customHandlerWrite-c05ff79257df5ba72a311793a6e9db60.png
new file mode 100644
index 00000000..f263d02a
Binary files /dev/null and b/assets/images/customHandlerWrite-c05ff79257df5ba72a311793a6e9db60.png differ
diff --git a/assets/images/dynamicHeadWrite-b33468bf605a16abf195c740309137e3.png b/assets/images/dynamicHeadWrite-b33468bf605a16abf195c740309137e3.png
new file mode 100644
index 00000000..68430370
Binary files /dev/null and b/assets/images/dynamicHeadWrite-b33468bf605a16abf195c740309137e3.png differ
diff --git a/assets/images/excludeOrIncludeWrite-bea7b205e7748fd8b55311383c344df1.png b/assets/images/excludeOrIncludeWrite-bea7b205e7748fd8b55311383c344df1.png
new file mode 100644
index 00000000..8911e5fb
Binary files /dev/null and b/assets/images/excludeOrIncludeWrite-bea7b205e7748fd8b55311383c344df1.png differ
diff --git a/assets/images/gmail-setting-64fa2bef013a1817489ee6195d293a97.png b/assets/images/gmail-setting-64fa2bef013a1817489ee6195d293a97.png
new file mode 100644
index 00000000..95e69220
Binary files /dev/null and b/assets/images/gmail-setting-64fa2bef013a1817489ee6195d293a97.png differ
diff --git a/assets/images/handlerStyleWrite-082ae37a51bd9252f6900ab754387401.png b/assets/images/handlerStyleWrite-082ae37a51bd9252f6900ab754387401.png
new file mode 100644
index 00000000..7f6248f8
Binary files /dev/null and b/assets/images/handlerStyleWrite-082ae37a51bd9252f6900ab754387401.png differ
diff --git a/assets/images/horizontalFill_result-6c236308703bda3338b429425b18c2a4.png b/assets/images/horizontalFill_result-6c236308703bda3338b429425b18c2a4.png
new file mode 100644
index 00000000..e88053d0
Binary files /dev/null and b/assets/images/horizontalFill_result-6c236308703bda3338b429425b18c2a4.png differ
diff --git a/assets/images/icla-01-83a226e824e1b9a9d08813f21b882e31.png b/assets/images/icla-01-83a226e824e1b9a9d08813f21b882e31.png
new file mode 100644
index 00000000..af3bef05
Binary files /dev/null and b/assets/images/icla-01-83a226e824e1b9a9d08813f21b882e31.png differ
diff --git a/assets/images/icla-02-e761fe1f9d7c718f085b70b9fba8fc39.png b/assets/images/icla-02-e761fe1f9d7c718f085b70b9fba8fc39.png
new file mode 100644
index 00000000..f3b91411
Binary files /dev/null and b/assets/images/icla-02-e761fe1f9d7c718f085b70b9fba8fc39.png differ
diff --git a/assets/images/icla-03-c8df2f12ca6b2bc591a4e73aced61280.png b/assets/images/icla-03-c8df2f12ca6b2bc591a4e73aced61280.png
new file mode 100644
index 00000000..7b3da5a3
Binary files /dev/null and b/assets/images/icla-03-c8df2f12ca6b2bc591a4e73aced61280.png differ
diff --git a/assets/images/icla-04-4925b6c82e6383ae69d9e1b0b92d2145.png b/assets/images/icla-04-4925b6c82e6383ae69d9e1b0b92d2145.png
new file mode 100644
index 00000000..49445dd0
Binary files /dev/null and b/assets/images/icla-04-4925b6c82e6383ae69d9e1b0b92d2145.png differ
diff --git a/assets/images/imgWrite-3ef200f147e8e4f0cf2bb83c82256ce9.png b/assets/images/imgWrite-3ef200f147e8e4f0cf2bb83c82256ce9.png
new file mode 100644
index 00000000..9ad021d5
Binary files /dev/null and b/assets/images/imgWrite-3ef200f147e8e4f0cf2bb83c82256ce9.png differ
diff --git a/assets/images/indexWrite-bb3b8cbf0c5a06371b7fa9917fb3cd33.png b/assets/images/indexWrite-bb3b8cbf0c5a06371b7fa9917fb3cd33.png
new file mode 100644
index 00000000..238d9db8
Binary files /dev/null and b/assets/images/indexWrite-bb3b8cbf0c5a06371b7fa9917fb3cd33.png differ
diff --git a/assets/images/link-github-d7d62b2548477c375730056807eacc89.png b/assets/images/link-github-d7d62b2548477c375730056807eacc89.png
new file mode 100644
index 00000000..dce58cea
Binary files /dev/null and b/assets/images/link-github-d7d62b2548477c375730056807eacc89.png differ
diff --git a/assets/images/listFill_result-c126158195ba15c7ad37c143c1f2940b.png b/assets/images/listFill_result-c126158195ba15c7ad37c143c1f2940b.png
new file mode 100644
index 00000000..4cdd60d4
Binary files /dev/null and b/assets/images/listFill_result-c126158195ba15c7ad37c143c1f2940b.png differ
diff --git a/assets/images/mergeWrite-976e024ef4e1613c6dab373937cc56ff.png b/assets/images/mergeWrite-976e024ef4e1613c6dab373937cc56ff.png
new file mode 100644
index 00000000..0249c4f6
Binary files /dev/null and b/assets/images/mergeWrite-976e024ef4e1613c6dab373937cc56ff.png differ
diff --git a/assets/images/noModelWrite-3d55fb6adc6efbc37febcf23526f89c8.png b/assets/images/noModelWrite-3d55fb6adc6efbc37febcf23526f89c8.png
new file mode 100644
index 00000000..6a66c62d
Binary files /dev/null and b/assets/images/noModelWrite-3d55fb6adc6efbc37febcf23526f89c8.png differ
diff --git a/assets/images/repeatedWrite-1d4a6ee40db8a53e80ac1330fc50e79a.png b/assets/images/repeatedWrite-1d4a6ee40db8a53e80ac1330fc50e79a.png
new file mode 100644
index 00000000..df324c96
Binary files /dev/null and b/assets/images/repeatedWrite-1d4a6ee40db8a53e80ac1330fc50e79a.png differ
diff --git a/assets/images/reset-passwd-e8828118db9277c6fe25a82a5a0bb3da.png b/assets/images/reset-passwd-e8828118db9277c6fe25a82a5a0bb3da.png
new file mode 100644
index 00000000..b03d74c9
Binary files /dev/null and b/assets/images/reset-passwd-e8828118db9277c6fe25a82a5a0bb3da.png differ
diff --git a/assets/images/roster-add-committer-20873b578f8c3b1853cd24d52171ca44.png b/assets/images/roster-add-committer-20873b578f8c3b1853cd24d52171ca44.png
new file mode 100644
index 00000000..37e647f2
Binary files /dev/null and b/assets/images/roster-add-committer-20873b578f8c3b1853cd24d52171ca44.png differ
diff --git a/assets/images/tableWrite-1b3814878a3fc0ef244f767899675190.png b/assets/images/tableWrite-1b3814878a3fc0ef244f767899675190.png
new file mode 100644
index 00000000..e1b6f2a8
Binary files /dev/null and b/assets/images/tableWrite-1b3814878a3fc0ef244f767899675190.png differ
diff --git a/assets/images/widthAndHeightWrite-77c049fb68d1ac806c1ba21e82c45f45.png b/assets/images/widthAndHeightWrite-77c049fb68d1ac806c1ba21e82c45f45.png
new file mode 100644
index 00000000..167b5511
Binary files /dev/null and b/assets/images/widthAndHeightWrite-77c049fb68d1ac806c1ba21e82c45f45.png differ
diff --git a/assets/images/writeCellDataWrite-4dacef4c542b683bc9477c595ba19c4c.png b/assets/images/writeCellDataWrite-4dacef4c542b683bc9477c595ba19c4c.png
new file mode 100644
index 00000000..54b2666f
Binary files /dev/null and b/assets/images/writeCellDataWrite-4dacef4c542b683bc9477c595ba19c4c.png differ
diff --git a/assets/js/0058b4c6.f4b7c191.js b/assets/js/0058b4c6.f4b7c191.js
new file mode 100644
index 00000000..fb3caa35
--- /dev/null
+++ b/assets/js/0058b4c6.f4b7c191.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[849],{86164(e){e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"docs":[{"type":"link","href":"/docs/","label":"Introduction","docId":"introduce","unlisted":false},{"type":"category","label":"Quick Start","items":[{"type":"link","href":"/docs/quickstart/ [...]
\ No newline at end of file
diff --git a/assets/js/01a85c17.d5835bd3.js b/assets/js/01a85c17.d5835bd3.js
new file mode 100644
index 00000000..0f8f66a5
--- /dev/null
+++ b/assets/js/01a85c17.d5835bd3.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8209],{56998(e,t,a){a.d(t,{in:()=>c,OU:()=>P,Ki:()=>y,kJ:()=>b,x:()=>l,e7:()=>m,J_:()=>f,Gx:()=>k});var s=a(59471),n=a(97831),i=a(25001),r=a(62615);function l(){const e=(0,i.A)(),t=e?.data?.blogMetadata;if(!t)throw new Error("useBlogMetadata() can't be called on the current route because the blog metadata could not be found in route context");return t}const o=s.createContext(null);function c({children [...]
\ No newline at end of file
diff --git a/assets/js/035672d3.36aef3eb.js b/assets/js/035672d3.36aef3eb.js
new file mode 100644
index 00000000..402cf46b
--- /dev/null
+++ b/assets/js/035672d3.36aef3eb.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8885],{42948(A,I,e){e.d(I,{A:()=>E});e(59471);var s=e(61785),Q=e(62615);function E({children:A,fallback:I}){return(0,s.A)()?(0,Q.jsx)(Q.Fragment,{children:A?.()}):I??null}},60482(A,I,e){e.r(I),e.d(I,{default:()=>g});var s=e(59471),Q=e(42948);const E=JSON.parse('{"pmc":[{"githubId":"29803617","gitUrl":"https://github.com/dave2wave","name":"Dave Fisher","isMentor":true},{"githubId":"13284744","gitUrl":" [...]
\ No newline at end of file
diff --git a/assets/js/0fc1e0ab.196fb0d8.js b/assets/js/0fc1e0ab.196fb0d8.js
new file mode 100644
index 00000000..df9fb57a
--- /dev/null
+++ b/assets/js/0fc1e0ab.196fb0d8.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5911],{51732(e,n,i){i.r(n),i.d(n,{assets:()=>o,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"committer/icla","title":"Sign iCLA Guide","description":"\x3c!--","source":"@site/community/committer/icla.md","sourceDirName":"committer","slug":"/committer/icla","permalink":"/community/committer/icla","draft":false,"unlisted":false,"editUrl":"https: [...]
\ No newline at end of file
diff --git a/assets/js/1024.78cf4982.js b/assets/js/1024.78cf4982.js
new file mode 100644
index 00000000..68a05f06
--- /dev/null
+++ b/assets/js/1024.78cf4982.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1024],{91024(e,r,s){s.d(r,{diagram:()=>i});var a=s(51597),t=(s(38346),s(82094),s(59331),s(3254),s(70435),s(67597),s(1693),s(87158),s(12700),s(62823),s(98189),s(86798),s(76322)),i={parser:a._$,get db(){return new a.NM},renderer:a.Lh,styles:a.tM,init:(0,t.K2)(e=>{e.class||(e.class={}),e.class.arrowMarkerAbsolute=e.arrowMarkerAbsolute},"init")}}}]);
\ No newline at end of file
diff --git a/assets/js/10e1fcd2.c6c27bfe.js b/assets/js/10e1fcd2.c6c27bfe.js
new file mode 100644
index 00000000..849e37b7
--- /dev/null
+++ b/assets/js/10e1fcd2.c6c27bfe.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1469],{1597(e,i,n){n.r(i),n.d(i,{assets:()=>c,contentTitle:()=>s,default:()=>h,frontMatter:()=>r,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"committer/onboarding","title":"Onboarding","description":"\x3c!--","source":"@site/community/committer/onboarding.md","sourceDirName":"committer","slug":"/committer/onboarding","permalink":"/community/committer/onboarding","draft":false,"unlisted":false [...]
\ No newline at end of file
diff --git a/assets/js/1146.11a60ee4.js b/assets/js/1146.11a60ee4.js
new file mode 100644
index 00000000..328f5125
--- /dev/null
+++ b/assets/js/1146.11a60ee4.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1146],{81146(t,e,a){a.d(e,{diagram:()=>Pt});var n=a(89300),i=a(98189),r=a(86798),s=a(76322),l=a(7012),o=a(34674),h=function(){var t=(0,s.K2)(function(t,e,a,n){for(a=a||{},n=t.length;n--;a[t[n]]=e);return a},"o"),e=[1,24],a=[1,25],n=[1,26],i=[1,27],r=[1,28],l=[1,63],o=[1,64],h=[1,65],d=[1,66],u=[1,67],p=[1,68],y=[1,69],g=[1,29],f=[1,30],b=[1,31],x=[1,32],_=[1,33],m=[1,34],E=[1,35],S=[1,36],A=[1,37],C=[ [...]
\ No newline at end of file
diff --git a/assets/js/1236.db21968b.js b/assets/js/1236.db21968b.js
new file mode 100644
index 00000000..bab6f705
--- /dev/null
+++ b/assets/js/1236.db21968b.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1236],{81236(e,t,r){r.d(t,{default:()=>dn});class a{constructor(e,t,r){this.lexer=void 0,this.start=void 0,this.end=void 0,this.lexer=e,this.start=t,this.end=r}static range(e,t){return t?e&&e.loc&&t.loc&&e.loc.lexer===t.loc.lexer?new a(e.loc.lexer,e.loc.start,t.loc.end):null:e&&e.loc}}class n{constructor(e,t){this.text=void 0,this.loc=void 0,this.noexpand=void 0,this.treatAsRelax=void 0,this.text=e,th [...]
\ No newline at end of file
diff --git a/assets/js/1288.771018c8.js b/assets/js/1288.771018c8.js
new file mode 100644
index 00000000..d230c894
--- /dev/null
+++ b/assets/js/1288.771018c8.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1288],{80124(t,e,s){s.d(e,{A:()=>r});var i=s(46554),n=s(55385);const r=(t,e)=>i.A.lang.round(n.A.parse(t)[e])},82094(t,e,s){s.d(e,{A:()=>r});var i=s(76322),n=s(7012),r=(0,i.K2)((t,e)=>{let s;"sandbox"===e&&(s=(0,n.Ltv)("#i"+t));return("sandbox"===e?(0,n.Ltv)(s.nodes()[0].contentDocument.body):(0,n.Ltv)("body")).select(`[id="${t}"]`)},"getDiagramElement")},38346(t,e,s){s.d(e,{o:()=>i});var i=(0,s(76322 [...]
\ No newline at end of file
diff --git a/assets/js/138e0e15.d55cec6c.js b/assets/js/138e0e15.d55cec6c.js
new file mode 100644
index 00000000..627d8379
--- /dev/null
+++ b/assets/js/138e0e15.d55cec6c.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4921],{41597(s){s.exports=JSON.parse('{"name":"@easyops-cn/docusaurus-search-local","id":"default"}')}}]);
\ No newline at end of file
diff --git a/assets/js/1416.54f4a54c.js b/assets/js/1416.54f4a54c.js
new file mode 100644
index 00000000..973abc06
--- /dev/null
+++ b/assets/js/1416.54f4a54c.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1416],{51416(t,e,n){n.d(e,{diagram:()=>Y});var i=n(86798),s=n(76322),r=n(7012),a=n(13212),o=n(58480),c=n(81896),l=function(){var t=(0,s.K2)(function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},"o"),e=[6,8,10,11,12,14,16,17,20,21],n=[1,9],i=[1,10],r=[1,11],a=[1,12],o=[1,13],c=[1,16],l=[1,17],h={trace:(0,s.K2)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6 [...]
\ No newline at end of file
diff --git a/assets/js/1597.20a48039.js b/assets/js/1597.20a48039.js
new file mode 100644
index 00000000..a0731f7c
--- /dev/null
+++ b/assets/js/1597.20a48039.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1597],{82094(t,e,s){s.d(e,{A:()=>a});var i=s(76322),n=s(7012),a=(0,i.K2)((t,e)=>{let s;"sandbox"===e&&(s=(0,n.Ltv)("#i"+t));return("sandbox"===e?(0,n.Ltv)(s.nodes()[0].contentDocument.body):(0,n.Ltv)("body")).select(`[id="${t}"]`)},"getDiagramElement")},51597(t,e,s){s.d(e,{Lh:()=>T,NM:()=>m,_$:()=>d,tM:()=>b});var i=s(38346),n=s(82094),a=s(59331),r=s(3254),u=s(98189),l=s(86798),o=s(76322),c=s(7012),h= [...]
\ No newline at end of file
diff --git a/assets/js/17896441.ab580b05.js b/assets/js/17896441.ab580b05.js
new file mode 100644
index 00000000..c1301af3
--- /dev/null
+++ b/assets/js/17896441.ab580b05.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8401],{44746(e,n,t){t.d(n,{A:()=>c});t(59471);var s=t(13526),i=t(29454),a=t(6339),r=t(94979),o=t(62615);function l({className:e}){return(0,o.jsx)(r.A,{type:"caution",title:(0,o.jsx)(a.Rc,{}),className:(0,s.A)(e,i.G.common.unlistedBanner),children:(0,o.jsx)(a.Uh,{})})}function c(e){return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(a.AE,{}),(0,o.jsx)(l,{...e})]})}},1835(e,n,t){t.d(n,{A:()=>d});t(59471);v [...]
\ No newline at end of file
diff --git a/assets/js/1a4e3797.d954a506.js b/assets/js/1a4e3797.d954a506.js
new file mode 100644
index 00000000..fc786226
--- /dev/null
+++ b/assets/js/1a4e3797.d954a506.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2138],{58200(e,t,r){r.d(t,{W:()=>u});var s=r(59471),a=r(22488);const n=["zero","one","two","few","many","other"];function l(e){return n.filter(t=>e.includes(t))}const c={locale:"en",pluralForms:l(["one","other"]),select:e=>1===e?"one":"other"};function o(){const{i18n:{currentLocale:e}}=(0,a.A)();return(0,s.useMemo)(()=>{try{return function(e){const t=new Intl.PluralRules(e);return{locale:e,pluralForms [...]
\ No newline at end of file
diff --git a/assets/js/213c1e68.1fd31914.js b/assets/js/213c1e68.1fd31914.js
new file mode 100644
index 00000000..38f6ab03
--- /dev/null
+++ b/assets/js/213c1e68.1fd31914.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8118],{5125(e,n,s){s.r(n),s.d(n,{assets:()=>t,contentTitle:()=>a,default:()=>h,frontMatter:()=>l,metadata:()=>i,toc:()=>o});const i=JSON.parse('{"id":"release/verify-release","title":"How to Verify Release","description":"\x3c!--","source":"@site/community/release/verify-release.md","sourceDirName":"release","slug":"/release/verify-release","permalink":"/community/release/verify-release","draft":false [...]
\ No newline at end of file
diff --git a/assets/js/214.0255b187.js b/assets/js/214.0255b187.js
new file mode 100644
index 00000000..307575ee
--- /dev/null
+++ b/assets/js/214.0255b187.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[214],{70214(e,s,a){a.d(s,{createTreemapServices:()=>b.d});var b=a(89152);a(85472)}}]);
\ No newline at end of file
diff --git a/assets/js/2374.4da46005.js b/assets/js/2374.4da46005.js
new file mode 100644
index 00000000..c1bf8ddb
--- /dev/null
+++ b/assets/js/2374.4da46005.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2374],{82374(t,i,e){e.d(i,{diagram:()=>it});var s=e(24841),a=e(62823),n=e(98189),h=e(86798),o=e(76322),r=e(7012),l=function(){var t=(0,o.K2)(function(t,i,e,s){for(e=e||{},s=t.length;s--;e[t[s]]=i);return e},"o"),i=[1,10,12,14,16,18,19,21,23],e=[2,6],s=[1,3],a=[1,5],n=[1,6],h=[1,7],r=[1,5,10,12,14,16,18,19,21,23,34,35,36],l=[1,25],c=[1,26],g=[1,28],u=[1,29],x=[1,30],d=[1,31],p=[1,32],f=[1,33],y=[1,34], [...]
\ No newline at end of file
diff --git a/assets/js/2489.9a0aa92d.js b/assets/js/2489.9a0aa92d.js
new file mode 100644
index 00000000..ebbf3527
--- /dev/null
+++ b/assets/js/2489.9a0aa92d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2489],{42489(e,a,s){s.d(a,{createRadarServices:()=>b.f});var b=s(40535);s(85472)}}]);
\ No newline at end of file
diff --git a/assets/js/257.49af7587.js b/assets/js/257.49af7587.js
new file mode 100644
index 00000000..5c9fbf6e
--- /dev/null
+++ b/assets/js/257.49af7587.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[257],{82094(e,t,s){s.d(t,{A:()=>r});var i=s(76322),n=s(7012),r=(0,i.K2)((e,t)=>{let s;"sandbox"===t&&(s=(0,n.Ltv)("#i"+e));return("sandbox"===t?(0,n.Ltv)(s.nodes()[0].contentDocument.body):(0,n.Ltv)("body")).select(`[id="${e}"]`)},"getDiagramElement")},59331(e,t,s){s.d(t,{P:()=>r});var i=s(86798),n=s(76322),r=(0,n.K2)((e,t,s,r)=>{e.attr("class",s);const{width:c,height:o,x:h,y:u}=a(e,t);(0,i.a$)(e,o,c, [...]
\ No newline at end of file
diff --git a/assets/js/2665.159f73c8.js b/assets/js/2665.159f73c8.js
new file mode 100644
index 00000000..969bcc2b
--- /dev/null
+++ b/assets/js/2665.159f73c8.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2665],{31508(e,t,a){function i(e,t){e.accDescr&&t.setAccDescription?.(e.accDescr),e.accTitle&&t.setAccTitle?.(e.accTitle),e.title&&t.setDiagramTitle?.(e.title)}a.d(t,{S:()=>i}),(0,a(76322).K2)(i,"populateCommonDb")},52665(e,t,a){a.d(t,{diagram:()=>C});var i=a(24841),l=a(31508),n=a(98189),r=a(86798),s=a(76322),o=a(53157),c=a(7012),p=r.UI.pie,d={sections:new Map,showData:!1,config:p},u=d.sections,g=d.sh [...]
\ No newline at end of file
diff --git a/assets/js/299aa024.de201f58.js b/assets/js/299aa024.de201f58.js
new file mode 100644
index 00000000..ef8dcc71
--- /dev/null
+++ b/assets/js/299aa024.de201f58.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4807],{4527(e,n,i){i.r(n),i.d(n,{assets:()=>o,contentTitle:()=>a,default:()=>h,frontMatter:()=>d,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"quickstart/guide","title":"Guide","description":"\x3c!--","source":"@site/docs/quickstart/guide.md","sourceDirName":"quickstart","slug":"/quickstart/guide","permalink":"/docs/quickstart/guide","draft":false,"unlisted":false,"editUrl":"https://github.com [...]
\ No newline at end of file
diff --git a/assets/js/2c1e9c28.a5af2d71.js b/assets/js/2c1e9c28.a5af2d71.js
new file mode 100644
index 00000000..e3de9d6f
--- /dev/null
+++ b/assets/js/2c1e9c28.a5af2d71.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8274],{45351(e,t,i){i.r(t),i.d(t,{assets:()=>o,contentTitle:()=>l,default:()=>m,frontMatter:()=>r,metadata:()=>a,toc:()=>c});const a=JSON.parse('{"id":"sheet/write/image","title":"Image","description":"\x3c!--","source":"@site/docs/sheet/write/image.md","sourceDirName":"sheet/write","slug":"/sheet/write/image","permalink":"/docs/sheet/write/image","draft":false,"unlisted":false,"editUrl":"https://gith [...]
\ No newline at end of file
diff --git a/assets/js/3157.9e5d5098.js b/assets/js/3157.9e5d5098.js
new file mode 100644
index 00000000..a24f6a52
--- /dev/null
+++ b/assets/js/3157.9e5d5098.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3157],{13479(e,t,n){e.exports=n(80471)},80471(e,t,n){var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),i=this&&this.__exportStar||function(e,t [...]
\ No newline at end of file
diff --git a/assets/js/3399376c.dcafeb77.js b/assets/js/3399376c.dcafeb77.js
new file mode 100644
index 00000000..60e58632
--- /dev/null
+++ b/assets/js/3399376c.dcafeb77.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2712],{39097(e,t,a){a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>c,frontMatter:()=>s,metadata:()=>i,toc:()=>d});const i=JSON.parse('{"id":"sheet/help/large-data","title":"Large Data","description":"\x3c!--","source":"@site/docs/sheet/help/large-data.md","sourceDirName":"sheet/help","slug":"/sheet/help/large-data","permalink":"/docs/sheet/help/large-data","draft":false,"unlisted":false,"ed [...]
\ No newline at end of file
diff --git a/assets/js/34338452.f01a29ae.js b/assets/js/34338452.f01a29ae.js
new file mode 100644
index 00000000..07400df3
--- /dev/null
+++ b/assets/js/34338452.f01a29ae.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7145],{76967(e,t,i){i.r(t),i.d(t,{assets:()=>d,contentTitle:()=>l,default:()=>h,frontMatter:()=>a,metadata:()=>s,toc:()=>o});const s=JSON.parse('{"id":"sheet/write/simple","title":"Simple","description":"\x3c!--","source":"@site/docs/sheet/write/simple.md","sourceDirName":"sheet/write","slug":"/sheet/write/simple","permalink":"/docs/sheet/write/simple","draft":false,"unlisted":false,"editUrl":"https:/ [...]
\ No newline at end of file
diff --git a/assets/js/3459.b326c4d4.js b/assets/js/3459.b326c4d4.js
new file mode 100644
index 00000000..b3f2ce21
--- /dev/null
+++ b/assets/js/3459.b326c4d4.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3459],{3459(e,s,a){a.d(s,{createGitGraphServices:()=>b.b});var b=a(44808);a(85472)}}]);
\ No newline at end of file
diff --git a/assets/js/3508.261c092d.js b/assets/js/3508.261c092d.js
new file mode 100644
index 00000000..442dbf01
--- /dev/null
+++ b/assets/js/3508.261c092d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3508],{93508(e,n,t){t.d(n,{Zp:()=>Rn});var r=t(96215),o=t(21631),i=0;const u=function(e){var n=++i;return(0,o.A)(e)+n};var a=t(22633),s=t(73535),d=t(44551),c=Math.ceil,h=Math.max;const f=function(e,n,t,r){for(var o=-1,i=h(c((n-e)/(t||1)),0),u=Array(i);i--;)u[r?i:++o]=e,e+=t;return u};var l=t(57485),v=t(80367);const g=function(e){return function(n,t,r){return r&&"number"!=typeof r&&(0,l.A)(n,t,r)&&(t=r [...]
\ No newline at end of file
diff --git a/assets/js/3577.52bb2b08.js b/assets/js/3577.52bb2b08.js
new file mode 100644
index 00000000..e6186d40
--- /dev/null
+++ b/assets/js/3577.52bb2b08.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3577],{83577(e,r,t){t.d(r,{diagram:()=>i});var a=t(80587),s=(t(82094),t(59331),t(3254),t(70435),t(67597),t(1693),t(87158),t(12700),t(62823),t(98189),t(86798),t(76322)),i={parser:a.Zk,get db(){return new a.u4(2)},renderer:a.q7,styles:a.tM,init:(0,s.K2)(e=>{e.state||(e.state={}),e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute},"init")}}}]);
\ No newline at end of file
diff --git a/assets/js/35aaf8c2.3a037251.js b/assets/js/35aaf8c2.3a037251.js
new file mode 100644
index 00000000..36b01e44
--- /dev/null
+++ b/assets/js/35aaf8c2.3a037251.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9076],{79740(e,t,n){n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>s,toc:()=>c});const s=JSON.parse('{"id":"sheet/write/csv","title":"CSV","description":"\x3c!--","source":"@site/docs/sheet/write/csv.md","sourceDirName":"sheet/write","slug":"/sheet/write/csv","permalink":"/docs/sheet/write/csv","draft":false,"unlisted":false,"editUrl":"https://github.com/apa [...]
\ No newline at end of file
diff --git a/assets/js/3637.f7b1c1df.js b/assets/js/3637.f7b1c1df.js
new file mode 100644
index 00000000..b0b32ee0
--- /dev/null
+++ b/assets/js/3637.f7b1c1df.js
@@ -0,0 +1 @@
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3637],{16443(t){t.exports=function(){"use strict";return function(t,e){var n=e.prototype,i=n.format;n.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return i.bind(this)(t);var s=this.$utils(),r=(t||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,function(t){switch(t){case"Q":return Math.ceil((e.$M+1)/3);case"Do":return n.ordinal(e.$D);case"gggg":retu [...]
\ No newline at end of file
diff --git a/assets/js/36994c47.3ef3ca34.js b/assets/js/36994c47.3ef3ca34.js
new file mode 100644
index 00000000..d54a2cc0
--- /dev/null
+++ b/assets/js/36994c47.3ef3ca34.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9858],{45516(e){e.exports=JSON.parse('{"name":"docusaurus-plugin-content-blog","id":"default"}')}}]);
\ No newline at end of file
diff --git a/assets/js/3842.95371aea.js b/assets/js/3842.95371aea.js
new file mode 100644
index 00000000..4718e8f2
--- /dev/null
+++ b/assets/js/3842.95371aea.js
@@ -0,0 +1 @@
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3842],{57601(t,e,i){var n;n=function(t){return(()=>{"use strict";var e={45:(t,e,i)=>{var n={};n.layoutBase=i(551),n.CoSEConstants=i(806),n.CoSEEdge=i(767),n.CoSEGraph=i(880),n.CoSEGraphManager=i(578),n.CoSELayout=i(765),n.CoSENode=i(991),n.ConstraintHandler=i(902),t.exports=n},806:(t,e,i)=>{var n=i(551).FDLayoutConstants;function r(){}for(var o in n)r[o]=n[o];r.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,r.DEFAULT_RADIAL_S [...]
\ No newline at end of file
diff --git a/assets/js/3a2db09e.c32a2be7.js b/assets/js/3a2db09e.c32a2be7.js
new file mode 100644
index 00000000..25321154
--- /dev/null
+++ b/assets/js/3a2db09e.c32a2be7.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8121],{68070(e){e.exports=JSON.parse('{"tags":[{"label":"announcement","permalink":"/blog/tags/announcement","count":1}]}')}}]);
\ No newline at end of file
diff --git a/assets/js/3cb2f586.00b90dcb.js b/assets/js/3cb2f586.00b90dcb.js
new file mode 100644
index 00000000..c5f4ff61
--- /dev/null
+++ b/assets/js/3cb2f586.00b90dcb.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3364],{29063(e,n,t){t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>o,frontMatter:()=>i,metadata:()=>r,toc:()=>c});const r=JSON.parse('{"id":"sheet/help/parameter","title":"Parameter","description":"\x3c!--","source":"@site/docs/sheet/help/parameter.md","sourceDirName":"sheet/help","slug":"/sheet/help/parameter","permalink":"/docs/sheet/help/parameter","draft":false,"unlisted":false,"editUrl [...]
\ No newline at end of file
diff --git a/assets/js/3ff09b31.632e0500.js b/assets/js/3ff09b31.632e0500.js
new file mode 100644
index 00000000..55dfd1db
--- /dev/null
+++ b/assets/js/3ff09b31.632e0500.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5247],{22888(e,n,s){s.r(n),s.d(n,{assets:()=>i,contentTitle:()=>r,default:()=>h,frontMatter:()=>a,metadata:()=>t,toc:()=>o});const t=JSON.parse('{"id":"sheet/read/csv","title":"CSV","description":"\x3c!--","source":"@site/docs/sheet/read/csv.md","sourceDirName":"sheet/read","slug":"/sheet/read/csv","permalink":"/docs/sheet/read/csv","draft":false,"unlisted":false,"editUrl":"https://github.com/apache/f [...]
\ No newline at end of file
diff --git a/assets/js/417.52dd59d7.js b/assets/js/417.52dd59d7.js
new file mode 100644
index 00000000..3738c20f
--- /dev/null
+++ b/assets/js/417.52dd59d7.js
@@ -0,0 +1 @@
+(()=>{"use strict";var e,r,t={40417(e,r,t){t.d(r,{BH:()=>n,Ho:()=>p,IH:()=>i,sx:()=>a});var o=t(36430),s=t.n(o);t(84946)(s()),t(23026).A(s()),t(42537)(s());const a=[],n=["zh","en"],i="search-index{dir}.json?_=2a831bb9",p=1}},o={};function s(e){var r=o[e];if(void 0!==r)return r.exports;var a=o[e]={exports:{}};return t[e].call(a.exports,a,a.exports,s),a.exports}s.m=t,s.x=()=>{var e=s.O(void 0,[6788],()=>s(11730));return e=s.O(e)},e=[],s.O=(r,t,o,a)=>{if(!t){var n=1/0;for(c=0;c<e.length;c++ [...]
\ No newline at end of file
diff --git a/assets/js/4383cab8.c4d68455.js b/assets/js/4383cab8.c4d68455.js
new file mode 100644
index 00000000..bb4e50c1
--- /dev/null
+++ b/assets/js/4383cab8.c4d68455.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6405],{65044(e,n,t){t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>c,default:()=>h,frontMatter:()=>s,metadata:()=>o,toc:()=>a});const o=JSON.parse('{"id":"contribution/contribute-code","title":"Code Contribution","description":"\x3c!--","source":"@site/community/contribution/contribute-code.md","sourceDirName":"contribution","slug":"/contribution/contribute-code","permalink":"/community/contribution/cont [...]
\ No newline at end of file
diff --git a/assets/js/4567.56257026.js b/assets/js/4567.56257026.js
new file mode 100644
index 00000000..ec9b728e
--- /dev/null
+++ b/assets/js/4567.56257026.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4567],{14567(e,r,s){s.d(r,{diagram:()=>i});var a=s(51597),t=(s(38346),s(82094),s(59331),s(3254),s(70435),s(67597),s(1693),s(87158),s(12700),s(62823),s(98189),s(86798),s(76322)),i={parser:a._$,get db(){return new a.NM},renderer:a.Lh,styles:a.tM,init:(0,t.K2)(e=>{e.class||(e.class={}),e.class.arrowMarkerAbsolute=e.arrowMarkerAbsolute},"init")}}}]);
\ No newline at end of file
diff --git a/assets/js/4962.24701da4.js b/assets/js/4962.24701da4.js
new file mode 100644
index 00000000..51a333a0
--- /dev/null
+++ b/assets/js/4962.24701da4.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4962],{39513(t,n,r){r.d(n,{A:()=>a});var e=r(72716);const o=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this};const c=function(t){return this.__data__.has(t)};function u(t){var n=-1,r=null==t?0:t.length;for(this.__data__=new e.A;++n<r;)this.add(t[n])}u.prototype.add=u.prototype.push=o,u.prototype.has=c;const a=u},40298(t,n,r){r.d(n,{A:()=>e});const e=function(t,n){for(var r=-1, [...]
\ No newline at end of file
diff --git a/assets/js/498dc5b3.cc36f903.js b/assets/js/498dc5b3.cc36f903.js
new file mode 100644
index 00000000..f7637b33
--- /dev/null
+++ b/assets/js/498dc5b3.cc36f903.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9051],{75831(e,n,s){s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>t,metadata:()=>a,toc:()=>l});const a=JSON.parse('{"id":"release/release-version","title":"How to Release","description":"\x3c!--","source":"@site/community/release/release-version.md","sourceDirName":"release","slug":"/release/release-version","permalink":"/community/release/release-version","draft":false," [...]
\ No newline at end of file
diff --git a/assets/js/4a783ec1.72cb9fe5.js b/assets/js/4a783ec1.72cb9fe5.js
new file mode 100644
index 00000000..d7b2209e
--- /dev/null
+++ b/assets/js/4a783ec1.72cb9fe5.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1047],{13553(e,n,t){t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>r,default:()=>l,frontMatter:()=>s,metadata:()=>o,toc:()=>d});const o=JSON.parse('{"id":"pmc/nominate-committer","title":"Nominate Committer","description":"\x3c!--","source":"@site/community/pmc/nominate-committer.md","sourceDirName":"pmc","slug":"/pmc/nominate-committer","permalink":"/community/pmc/nominate-committer","draft":false,"unli [...]
\ No newline at end of file
diff --git a/assets/js/5053.da121256.js b/assets/js/5053.da121256.js
new file mode 100644
index 00000000..20752012
--- /dev/null
+++ b/assets/js/5053.da121256.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5053],{32131(e,t,i){i.d(t,{A:()=>r});i(59471);var n=i(13526),o=i(66671),s=i(24411),a=i(62615);function r({className:e}){return(0,a.jsx)("main",{className:(0,n.A)("container margin-vert--xl",e),children:(0,a.jsx)("div",{className:"row",children:(0,a.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,a.jsx)(s.A,{as:"h1",className:"hero__title",children:(0,a.jsx)(o.A,{id:"theme.NotFound.title [...]
\ No newline at end of file
diff --git a/assets/js/5292.490f3d73.js b/assets/js/5292.490f3d73.js
new file mode 100644
index 00000000..350f639f
--- /dev/null
+++ b/assets/js/5292.490f3d73.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5292],{82094(t,e,n){n.d(e,{A:()=>r});var i=n(76322),s=n(7012),r=(0,i.K2)((t,e)=>{let n;"sandbox"===e&&(n=(0,s.Ltv)("#i"+t));return("sandbox"===e?(0,s.Ltv)(n.nodes()[0].contentDocument.body):(0,s.Ltv)("body")).select(`[id="${t}"]`)},"getDiagramElement")},59331(t,e,n){n.d(e,{P:()=>r});var i=n(86798),s=n(76322),r=(0,s.K2)((t,e,n,r)=>{t.attr("class",n);const{width:c,height:h,x:l,y:d}=o(t,e);(0,i.a$)(t,h,c [...]
\ No newline at end of file
diff --git a/assets/js/531.dfba543b.js b/assets/js/531.dfba543b.js
new file mode 100644
index 00000000..e0ff9995
--- /dev/null
+++ b/assets/js/531.dfba543b.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[531],{60531(e,s,c){c.d(s,{createArchitectureServices:()=>i.S});var i=c(39543);c(85472)}}]);
\ No newline at end of file
diff --git a/assets/js/5340.3a117119.js b/assets/js/5340.3a117119.js
new file mode 100644
index 00000000..3c63e856
--- /dev/null
+++ b/assets/js/5340.3a117119.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5340],{85340(t,e,i){i.d(e,{diagram:()=>I});var a=i(86798),n=i(76322),s=i(7012),r=function(){var t=(0,n.K2)(function(t,e,i,a){for(i=i||{},a=t.length;a--;i[t[a]]=e);return i},"o"),e=[1,3],i=[1,4],a=[1,5],s=[1,6],r=[1,7],o=[1,4,5,10,12,13,14,18,25,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],l=[1,4,5,10,12,13,14,18,25,28,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],h [...]
\ No newline at end of file
diff --git a/assets/js/536.9af12178.js b/assets/js/536.9af12178.js
new file mode 100644
index 00000000..9b85bab4
--- /dev/null
+++ b/assets/js/536.9af12178.js
@@ -0,0 +1 @@
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[536],{42948(e,t,n){"use strict";n.d(t,{A:()=>r});n(59471);var s=n(61785),a=n(62615);function r({children:e,fallback:t}){return(0,s.A)()?(0,a.jsx)(a.Fragment,{children:e?.()}):t??null}},94979(e,t,n){"use strict";n.d(t,{A:()=>M});var s=n(59471),a=n(62615);function r(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=s.Children.toArray(e),n=t.find(e=>s.isValidElement(e)&&"mdxAdmonitionTitle"===e.type),r=t.filt [...]
\ No newline at end of file
diff --git a/assets/js/5495.8e4f6547.js b/assets/js/5495.8e4f6547.js
new file mode 100644
index 00000000..1645fb9a
--- /dev/null
+++ b/assets/js/5495.8e4f6547.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5495],{24024(e,n,t){t.d(n,{A:()=>i});var r=t(44474);const i=function(e){return(0,r.A)(e,4)}},15495(e,n,t){t.r(n),t.d(n,{render:()=>k});var r=t(70435),i=(t(67597),t(1693)),a=t(87158),o=(t(12700),t(62823),t(98189),t(86798)),d=t(76322),s=t(93508),c=t(47913),g=t(24024),l=t(44551);t(14036);function f(e){var n={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:h(e), [...]
\ No newline at end of file
diff --git a/assets/js/54d6a969.5b1a1693.js b/assets/js/54d6a969.5b1a1693.js
new file mode 100644
index 00000000..b37e792e
--- /dev/null
+++ b/assets/js/54d6a969.5b1a1693.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4699],{58146(e,n,s){s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>t,toc:()=>a});const t=JSON.parse('{"id":"sheet/help/faq","title":"FAQ","description":"\x3c!--","source":"@site/docs/sheet/help/faq.md","sourceDirName":"sheet/help","slug":"/sheet/help/faq","permalink":"/docs/sheet/help/faq","draft":false,"unlisted":false,"editUrl":"https://github.com/apache/f [...]
\ No newline at end of file
diff --git a/assets/js/5514.a23a67ac.js b/assets/js/5514.a23a67ac.js
new file mode 100644
index 00000000..fc0fddea
--- /dev/null
+++ b/assets/js/5514.a23a67ac.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5514],{35514(e,s,a){a.d(s,{createInfoServices:()=>b.v});var b=a(70845);a(85472)}}]);
\ No newline at end of file
diff --git a/assets/js/5742f295.eb045651.js b/assets/js/5742f295.eb045651.js
new file mode 100644
index 00000000..f3cf664d
--- /dev/null
+++ b/assets/js/5742f295.eb045651.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3991],{26549(e,a,n){n.r(a),n.d(a,{assets:()=>o,contentTitle:()=>s,default:()=>c,frontMatter:()=>i,metadata:()=>d,toc:()=>l});const d=JSON.parse('{"id":"sheet/read/head","title":"Head","description":"\x3c!--","source":"@site/docs/sheet/read/head.md","sourceDirName":"sheet/read","slug":"/sheet/read/head","permalink":"/docs/sheet/read/head","draft":false,"unlisted":false,"editUrl":"https://github.com/apa [...]
\ No newline at end of file
diff --git a/assets/js/5771c448.1cb28ce4.js b/assets/js/5771c448.1cb28ce4.js
new file mode 100644
index 00000000..41e96d08
--- /dev/null
+++ b/assets/js/5771c448.1cb28ce4.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5274],{96582(e,i,t){t.r(i),t.d(i,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>a,metadata:()=>n,toc:()=>d});const n=JSON.parse('{"id":"security","title":"Security","description":"\x3c!--","source":"@site/community/security.md","sourceDirName":".","slug":"/security","permalink":"/community/security","draft":false,"unlisted":false,"editUrl":"https://github.com/apache/fesod/edit/main/web [...]
\ No newline at end of file
diff --git a/assets/js/57b9d056.b5eead99.js b/assets/js/57b9d056.b5eead99.js
new file mode 100644
index 00000000..1c491953
--- /dev/null
+++ b/assets/js/57b9d056.b5eead99.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8529],{55049(e,n,t){t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>d,default:()=>p,frontMatter:()=>s,metadata:()=>i,toc:()=>o});const i=JSON.parse('{"id":"sheet/read/spring","title":"Spring","description":"\x3c!--","source":"@site/docs/sheet/read/spring.md","sourceDirName":"sheet/read","slug":"/sheet/read/spring","permalink":"/docs/sheet/read/spring","draft":false,"unlisted":false,"editUrl":"https://gith [...]
\ No newline at end of file
diff --git a/assets/js/587.9ab4f2e1.js b/assets/js/587.9ab4f2e1.js
new file mode 100644
index 00000000..e615778d
--- /dev/null
+++ b/assets/js/587.9ab4f2e1.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[587],{82094(t,e,s){s.d(e,{A:()=>r});var i=s(76322),n=s(7012),r=(0,i.K2)((t,e)=>{let s;"sandbox"===e&&(s=(0,n.Ltv)("#i"+t));return("sandbox"===e?(0,n.Ltv)(s.nodes()[0].contentDocument.body):(0,n.Ltv)("body")).select(`[id="${t}"]`)},"getDiagramElement")},80587(t,e,s){s.d(e,{Zk:()=>h,q7:()=>B,tM:()=>ot,u4:()=>rt});var i=s(82094),n=s(59331),r=s(3254),o=s(98189),a=s(86798),c=s(76322),l=function(){var t=(0, [...]
\ No newline at end of file
diff --git a/assets/js/5961.4939a221.js b/assets/js/5961.4939a221.js
new file mode 100644
index 00000000..073ebb76
--- /dev/null
+++ b/assets/js/5961.4939a221.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5961],{14036(t,e,r){r.d(e,{T:()=>f});var a=r(22633),s=r(47617),i=r(25773),n=r(48759),o=r(64308),l=r(96215),c=r(47913),d=r(20093),h=r(23307),g=r(97317),u=r(2244);const p=(0,h.A)(function(t){return(0,g.A)((0,d.A)(t,1,u.A,!0))});var y=r(38930),b=r(26642),x="\0";class f{constructor(t={}){this._isDirected=!Object.prototype.hasOwnProperty.call(t,"directed")||t.directed,this._isMultigraph=!!Object.prototype. [...]
\ No newline at end of file
diff --git a/assets/js/5dfaa6dd.94fa5f1f.js b/assets/js/5dfaa6dd.94fa5f1f.js
new file mode 100644
index 00000000..6128266a
--- /dev/null
+++ b/assets/js/5dfaa6dd.94fa5f1f.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9282],{72437(e,n,a){a.r(n),a.d(n,{assets:()=>o,contentTitle:()=>r,default:()=>h,frontMatter:()=>i,metadata:()=>t,toc:()=>d});const t=JSON.parse('{"id":"sheet/read/pojo","title":"POJO","description":"\x3c!--","source":"@site/docs/sheet/read/pojo.md","sourceDirName":"sheet/read","slug":"/sheet/read/pojo","permalink":"/docs/sheet/read/pojo","draft":false,"unlisted":false,"editUrl":"https://github.com/apa [...]
\ No newline at end of file
diff --git a/assets/js/5e95c892.261f1fe8.js b/assets/js/5e95c892.261f1fe8.js
new file mode 100644
index 00000000..2f40eada
--- /dev/null
+++ b/assets/js/5e95c892.261f1fe8.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9647],{69937(e,s,r){r.r(s),r.d(s,{default:()=>h});r(59471);var a=r(13526),t=r(29454),u=r(79145),c=r(47377),i=r(91488),l=r(62615);function h(e){return(0,l.jsx)(u.e3,{className:(0,a.A)(t.G.wrapper.docsPages),children:(0,l.jsx)(i.A,{children:(0,c.v)(e.route.routes)})})}}}]);
\ No newline at end of file
diff --git a/assets/js/621db11d.b70003b1.js b/assets/js/621db11d.b70003b1.js
new file mode 100644
index 00000000..d5d5be8a
--- /dev/null
+++ b/assets/js/621db11d.b70003b1.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4212],{6848(t,s,e){e.r(s),e.d(s,{default:()=>m});e(59471);var a=e(13526),o=e(79145),r=e(29454),u=e(55412),l=e(29214),n=e(5047),i=e(24411),h=e(50312);const c={authorListItem:"authorListItem_RyUW"};var g=e(62615);function p({author:t}){return(0,g.jsx)("li",{className:c.authorListItem,children:(0,g.jsx)(h.A,{as:"h2",author:t,count:t.count})})}function d({authors:t}){return(0,g.jsx)("section",{className:( [...]
\ No newline at end of file
diff --git a/assets/js/6270108c.c747b49d.js b/assets/js/6270108c.c747b49d.js
new file mode 100644
index 00000000..286de020
--- /dev/null
+++ b/assets/js/6270108c.c747b49d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1830],{19986(A,e,g){g.r(e),g.d(e,{assets:()=>I,contentTitle:()=>E,default:()=>V,frontMatter:()=>B,metadata:()=>C,toc:()=>n});const C=JSON.parse('{"id":"sheet/fill/fill","title":"Fill","description":"\x3c!--","source":"@site/docs/sheet/fill/fill.md","sourceDirName":"sheet/fill","slug":"/sheet/fill/","permalink":"/docs/sheet/fill/","draft":false,"unlisted":false,"editUrl":"https://github.com/apache/feso [...]
\ No newline at end of file
diff --git a/assets/js/638.9927b1dd.js b/assets/js/638.9927b1dd.js
new file mode 100644
index 00000000..4bbf7046
--- /dev/null
+++ b/assets/js/638.9927b1dd.js
@@ -0,0 +1,2 @@
+/*! For license information please see 638.9927b1dd.js.LICENSE.txt */
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[638],{70638(e,t,n){function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t,n){return t&&function(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,c(r.key [...]
\ No newline at end of file
diff --git a/assets/js/638.9927b1dd.js.LICENSE.txt b/assets/js/638.9927b1dd.js.LICENSE.txt
new file mode 100644
index 00000000..a9f6f124
--- /dev/null
+++ b/assets/js/638.9927b1dd.js.LICENSE.txt
@@ -0,0 +1,9 @@
+/*!
+Embeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable
+Copyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com)
+Licensed under The MIT License (http://opensource.org/licenses/MIT)
+*/
+
+/*! Bezier curve function generator. Copyright Gaetan Renaudeau. MIT License: http://en.wikipedia.org/wiki/MIT_License */
+
+/*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License */
diff --git a/assets/js/64ca138b.382e9486.js b/assets/js/64ca138b.382e9486.js
new file mode 100644
index 00000000..a4e1dcd3
--- /dev/null
+++ b/assets/js/64ca138b.382e9486.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3451],{41918(e,n,s){s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>l,frontMatter:()=>d,metadata:()=>t,toc:()=>a});const t=JSON.parse('{"id":"maturity","title":"Maturity","description":"\x3c!--","source":"@site/community/maturity.md","sourceDirName":".","slug":"/maturity","permalink":"/community/maturity","draft":false,"unlisted":false,"editUrl":"https://github.com/apache/fesod/edit/main/web [...]
\ No newline at end of file
diff --git a/assets/js/66e7b107.6e9b6b36.js b/assets/js/66e7b107.6e9b6b36.js
new file mode 100644
index 00000000..f40a7e6b
--- /dev/null
+++ b/assets/js/66e7b107.6e9b6b36.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1795],{45080(e,s,n){n.r(s),n.d(s,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"feedback","title":"Feedback","description":"\x3c!--","source":"@site/community/feedback.md","sourceDirName":".","slug":"/feedback","permalink":"/community/feedback","draft":false,"unlisted":false,"editUrl":"https://github.com/apache/fesod/edit/main/web [...]
\ No newline at end of file
diff --git a/assets/js/6769.7a4327e0.js b/assets/js/6769.7a4327e0.js
new file mode 100644
index 00000000..96503469
--- /dev/null
+++ b/assets/js/6769.7a4327e0.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6769],{38346(t,e,n){n.d(e,{o:()=>i});var i=(0,n(76322).K2)(()=>"\n /* Font Awesome icon styling - consolidated */\n .label-icon {\n display: inline-block;\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n }\n \n .node .label-icon path {\n fill: currentColor;\n stroke: revert;\n stroke-width: revert;\n }\n","getIconStyles")},89300(t,e,n){n.d(e,{CP:()=>h,HT:()= [...]
\ No newline at end of file
diff --git a/assets/js/6788.298e96c2.js b/assets/js/6788.298e96c2.js
new file mode 100644
index 00000000..a5faa574
--- /dev/null
+++ b/assets/js/6788.298e96c2.js
@@ -0,0 +1,2 @@
+/*! For license information please see 6788.298e96c2.js.LICENSE.txt */
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6788],{11730(e,t,r){"use strict";const n=Symbol("Comlink.proxy"),i=Symbol("Comlink.endpoint"),s=Symbol("Comlink.releaseProxy"),o=Symbol("Comlink.finalizer"),a=Symbol("Comlink.thrown"),u=e=>"object"==typeof e&&null!==e||"function"==typeof e,l={canHandle:e=>u(e)&&e[n],serialize(e){const{port1:t,port2:r}=new MessageChannel;return h(e,t),[r,[r]]},deserialize:e=>(e.start(),function(e,t){const r=new Map;return e.addEven [...]
\ No newline at end of file
diff --git a/assets/js/6788.298e96c2.js.LICENSE.txt b/assets/js/6788.298e96c2.js.LICENSE.txt
new file mode 100644
index 00000000..7e6757bb
--- /dev/null
+++ b/assets/js/6788.298e96c2.js.LICENSE.txt
@@ -0,0 +1,76 @@
+/*!
+ * Snowball JavaScript Library v0.3
+ * http://code.google.com/p/urim/
+ * http://snowball.tartarus.org/
+ *
+ * Copyright 2010, Oleg Mazko
+ * http://www.mozilla.org/MPL/
+ */
+
+/*!
+ * lunr.Builder
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.Index
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.Pipeline
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.Set
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.TokenSet
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.Vector
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.stemmer
+ * Copyright (C) 2020 Oliver Nightingale
+ * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt
+ */
+
+/*!
+ * lunr.stopWordFilter
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.tokenizer
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.trimmer
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.utils
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/**
+ * @license
+ * Copyright 2019 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9
+ * Copyright (C) 2020 Oliver Nightingale
+ * @license MIT
+ */
diff --git a/assets/js/6875c492.d259fcb3.js b/assets/js/6875c492.d259fcb3.js
new file mode 100644
index 00000000..4e116d16
--- /dev/null
+++ b/assets/js/6875c492.d259fcb3.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4813],{15169(e,t,s){s.d(t,{A:()=>r});s(59471);var n=s(66671),a=s(47790),i=s(62615);function r(e){const{metadata:t}=e,{previousPage:s,nextPage:r}=t;return(0,i.jsxs)("nav",{className:"pagination-nav","aria-label":(0,n.T)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"}),children:[s&&(0,i.jsx)(a.A,{permalink:s,title:(0,i.jsx [...]
\ No newline at end of file
diff --git a/assets/js/7002.7f63721d.js b/assets/js/7002.7f63721d.js
new file mode 100644
index 00000000..976de643
--- /dev/null
+++ b/assets/js/7002.7f63721d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7002],{31508(e,t,a){function l(e,t){e.accDescr&&t.setAccDescription?.(e.accDescr),e.accTitle&&t.setAccTitle?.(e.accTitle),e.title&&t.setDiagramTitle?.(e.title)}a.d(t,{S:()=>l}),(0,a(76322).K2)(l,"populateCommonDb")},59331(e,t,a){a.d(t,{P:()=>r});var l=a(86798),s=a(76322),r=(0,s.K2)((e,t,a,r)=>{e.attr("class",a);const{width:o,height:c,x:d,y:p}=n(e,t);(0,l.a$)(e,c,o,r);const h=i(d,p,o,c,t);e.attr("viewB [...]
\ No newline at end of file
diff --git a/assets/js/7188.0726257f.js b/assets/js/7188.0726257f.js
new file mode 100644
index 00000000..9d760c6b
--- /dev/null
+++ b/assets/js/7188.0726257f.js
@@ -0,0 +1,2 @@
+/*! For license information please see 7188.0726257f.js.LICENSE.txt */
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7188],{14371(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BLANK_URL=e.relativeFirstCharacters=e.whitespaceEscapeCharsRegex=e.urlSchemeRegex=e.ctrlCharactersRegex=e.htmlCtrlEntityRegex=e.htmlEntitiesRegex=e.invalidProtocolRegex=void 0,e.invalidProtocolRegex=/^([^\w]*)(javascript|data|vbscript)/im,e.htmlEntitiesRegex=/&#(\w+)(^\w|;)?/g,e.htmlCtrlEntityRegex=/&(newline|tab);/gi,e.ctrlCharacter [...]
\ No newline at end of file
diff --git a/assets/js/7188.0726257f.js.LICENSE.txt b/assets/js/7188.0726257f.js.LICENSE.txt
new file mode 100644
index 00000000..2d1bc565
--- /dev/null
+++ b/assets/js/7188.0726257f.js.LICENSE.txt
@@ -0,0 +1 @@
+/*! @license DOMPurify 3.3.1 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.3.1/LICENSE */
diff --git a/assets/js/7217.c978d074.js b/assets/js/7217.c978d074.js
new file mode 100644
index 00000000..4d654bfa
--- /dev/null
+++ b/assets/js/7217.c978d074.js
@@ -0,0 +1 @@
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7217],{20239(t,e,i){var r;r=function(t){return function(t){var e={};function i(r){if(e[r])return e[r].exports;var n=e[r]={i:r,l:!1,exports:{}};return t[r].call(n.exports,n,n.exports,i),n.l=!0,n.exports}return i.m=t,i.c=e,i.i=function(t){return t},i.d=function(t,e,r){i.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:r})},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:functio [...]
\ No newline at end of file
diff --git a/assets/js/7307.f197f92b.js b/assets/js/7307.f197f92b.js
new file mode 100644
index 00000000..5e112502
--- /dev/null
+++ b/assets/js/7307.f197f92b.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7307],{31508(t,e,a){function r(t,e){t.accDescr&&e.setAccDescription?.(t.accDescr),t.accTitle&&e.setAccTitle?.(t.accTitle),t.title&&e.setDiagramTitle?.(t.title)}a.d(e,{S:()=>r}),(0,a(76322).K2)(r,"populateCommonDb")},57307(t,e,a){a.d(e,{diagram:()=>z});var r=a(24841),n=a(31508),i=a(98189),s=a(86798),o=a(76322),l=a(53157),c={showLegend:!0,ticks:5,max:null,min:0,graticule:"circle"},d={axes:[],curves:[],o [...]
\ No newline at end of file
diff --git a/assets/js/7431.0bed9ba2.js b/assets/js/7431.0bed9ba2.js
new file mode 100644
index 00000000..87a0bb6c
--- /dev/null
+++ b/assets/js/7431.0bed9ba2.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7431],{87431(e,s,a){a.d(s,{createPacketServices:()=>b.$});var b=a(94440);a(85472)}}]);
\ No newline at end of file
diff --git a/assets/js/7494.ecc4a6d0.js b/assets/js/7494.ecc4a6d0.js
new file mode 100644
index 00000000..e9f415f8
--- /dev/null
+++ b/assets/js/7494.ecc4a6d0.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7494],{56998(e,t,s){s.d(t,{in:()=>c,OU:()=>A,Ki:()=>C,kJ:()=>f,x:()=>l,e7:()=>h,J_:()=>p,Gx:()=>k});var a=s(59471),n=s(97831),i=s(25001),r=s(62615);function l(){const e=(0,i.A)(),t=e?.data?.blogMetadata;if(!t)throw new Error("useBlogMetadata() can't be called on the current route because the blog metadata could not be found in route context");return t}const o=a.createContext(null);function c({children [...]
\ No newline at end of file
diff --git a/assets/js/777.6b5fb956.js b/assets/js/777.6b5fb956.js
new file mode 100644
index 00000000..c8174ace
--- /dev/null
+++ b/assets/js/777.6b5fb956.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[777],{60777(t,n,e){e.d(n,{diagram:()=>ct});var i=e(86798),s=e(76322),r=e(7012);function o(t,n){let e;if(void 0===n)for(const i of t)null!=i&&(e>i||void 0===e&&i>=i)&&(e=i);else{let i=-1;for(let s of t)null!=(s=n(s,++i,t))&&(e>s||void 0===e&&s>=s)&&(e=s)}return e}function c(t){return t.target.depth}function l(t,n){return t.sourceLinks.length?t.depth:n-1}function a(t,n){let e=0;if(void 0===n)for(let i o [...]
\ No newline at end of file
diff --git a/assets/js/7827.8c68bd62.js b/assets/js/7827.8c68bd62.js
new file mode 100644
index 00000000..f5bff7b7
--- /dev/null
+++ b/assets/js/7827.8c68bd62.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7827],{93325(t,e,a){a.d(e,{m:()=>s});var r=a(76322),s=class{constructor(t){this.init=t,this.records=this.init()}static{(0,r.K2)(this,"ImperativeState")}reset(){this.records=this.init()}}},89300(t,e,a){a.d(e,{CP:()=>h,HT:()=>p,PB:()=>d,aC:()=>l,lC:()=>o,m:()=>c,tk:()=>n});var r=a(86798),s=a(76322),i=a(34674),n=(0,s.K2)((t,e)=>{const a=t.append("rect");if(a.attr("x",e.x),a.attr("y",e.y),a.attr("fill",e. [...]
\ No newline at end of file
diff --git a/assets/js/814f3328.5a7dc7a4.js b/assets/js/814f3328.5a7dc7a4.js
new file mode 100644
index 00000000..b57aefbe
--- /dev/null
+++ b/assets/js/814f3328.5a7dc7a4.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7472],{55513(e){e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"Way to Go: Fesod successfully entered Apache Incubator","permalink":"/blog/2025/09/17/fesod-entered-apache-incubator","unlisted":false,"date":"2025-09-17T00:00:00.000Z"}]}')}}]);
\ No newline at end of file
diff --git a/assets/js/8177.afd47023.js b/assets/js/8177.afd47023.js
new file mode 100644
index 00000000..80cd4480
--- /dev/null
+++ b/assets/js/8177.afd47023.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8177],{8177(e,s,i){i.d(s,{createPieServices:()=>a.f});var a=i(33662);i(85472)}}]);
\ No newline at end of file
diff --git a/assets/js/8218.c66e12a5.js b/assets/js/8218.c66e12a5.js
new file mode 100644
index 00000000..3a57a070
--- /dev/null
+++ b/assets/js/8218.c66e12a5.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8218],{38346(t,e,n){n.d(e,{o:()=>i});var i=(0,n(76322).K2)(()=>"\n /* Font Awesome icon styling - consolidated */\n .label-icon {\n display: inline-block;\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n }\n \n .node .label-icon path {\n fill: currentColor;\n stroke: revert;\n stroke-width: revert;\n }\n","getIconStyles")},38218(t,e,n){n.d(e,{diagram:()=>I}) [...]
\ No newline at end of file
diff --git a/assets/js/83b4fe73.d1568cad.js b/assets/js/83b4fe73.d1568cad.js
new file mode 100644
index 00000000..57a711e7
--- /dev/null
+++ b/assets/js/83b4fe73.d1568cad.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2519],{85888(e,n,i){i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>c,default:()=>u,frontMatter:()=>s,metadata:()=>t,toc:()=>m});const t=JSON.parse('{"id":"pmc/become-pmc-member","title":"Become A PPMC member","description":"\x3c!--","source":"@site/community/pmc/become-pmc-member.md","sourceDirName":"pmc","slug":"/pmc/become-pmc-member","permalink":"/community/pmc/become-pmc-member","draft":false,"unlist [...]
\ No newline at end of file
diff --git a/assets/js/84450331.0ffd14ad.js b/assets/js/84450331.0ffd14ad.js
new file mode 100644
index 00000000..1c7e33bb
--- /dev/null
+++ b/assets/js/84450331.0ffd14ad.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2137],{52225(e,n,t){t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>c,frontMatter:()=>l,metadata:()=>a,toc:()=>d});const a=JSON.parse('{"id":"sheet/read/extra","title":"Extra","description":"\x3c!--","source":"@site/docs/sheet/read/extra.md","sourceDirName":"sheet/read","slug":"/sheet/read/extra","permalink":"/docs/sheet/read/extra","draft":false,"unlisted":false,"editUrl":"https://github.co [...]
\ No newline at end of file
diff --git a/assets/js/87165530.e823c329.js b/assets/js/87165530.e823c329.js
new file mode 100644
index 00000000..6c4157d5
--- /dev/null
+++ b/assets/js/87165530.e823c329.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8006],{82981(e,t,n){n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>s,default:()=>m,frontMatter:()=>i,metadata:()=>a,toc:()=>d});const a=JSON.parse('{"id":"sheet/write/extra","title":"Extra","description":"\x3c!--","source":"@site/docs/sheet/write/extra.md","sourceDirName":"sheet/write","slug":"/sheet/write/extra","permalink":"/docs/sheet/write/extra","draft":false,"unlisted":false,"editUrl":"https://gith [...]
\ No newline at end of file
diff --git a/assets/js/8751.51cea8d9.js b/assets/js/8751.51cea8d9.js
new file mode 100644
index 00000000..d9a3be7b
--- /dev/null
+++ b/assets/js/8751.51cea8d9.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8751],{18751(t,e,a){a.d(e,{diagram:()=>R});var i,n=a(80587),r=(a(82094),a(59331),a(3254),a(70435),a(67597),a(1693),a(87158),a(12700),a(62823),a(98189)),d=a(86798),s=a(76322),o=a(7012),g=a(93508),h=a(34654),p=(0,s.K2)(t=>t.append("circle").attr("class","start-state").attr("r",(0,d.D7)().state.sizeUnit).attr("cx",(0,d.D7)().state.padding+(0,d.D7)().state.sizeUnit).attr("cy",(0,d.D7)().state.padding+(0,d [...]
\ No newline at end of file
diff --git a/assets/js/8775.16908ee5.js b/assets/js/8775.16908ee5.js
new file mode 100644
index 00000000..6e380c9e
--- /dev/null
+++ b/assets/js/8775.16908ee5.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8775],{31508(t,r,e){function n(t,r){t.accDescr&&r.setAccDescription?.(t.accDescr),t.accTitle&&r.setAccTitle?.(t.accTitle),t.title&&r.setDiagramTitle?.(t.title)}e.d(r,{S:()=>n}),(0,e(76322).K2)(n,"populateCommonDb")},93325(t,r,e){e.d(r,{m:()=>o});var n=e(76322),o=class{constructor(t){this.init=t,this.records=this.init()}static{(0,n.K2)(this,"ImperativeState")}reset(){this.records=this.init()}}},88775(t [...]
\ No newline at end of file
diff --git a/assets/js/8ccf8dfc.e9978bea.js b/assets/js/8ccf8dfc.e9978bea.js
new file mode 100644
index 00000000..d8d04f8e
--- /dev/null
+++ b/assets/js/8ccf8dfc.e9978bea.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1506],{32065(e,n,s){s.r(n),s.d(n,{assets:()=>r,contentTitle:()=>l,default:()=>h,frontMatter:()=>d,metadata:()=>a,toc:()=>o});const a=JSON.parse('{"id":"sheet/read/simple","title":"Simple","description":"\x3c!--","source":"@site/docs/sheet/read/simple.md","sourceDirName":"sheet/read","slug":"/sheet/read/simple","permalink":"/docs/sheet/read/simple","draft":false,"unlisted":false,"editUrl":"https://gith [...]
\ No newline at end of file
diff --git a/assets/js/903f555a.ff919b37.js b/assets/js/903f555a.ff919b37.js
new file mode 100644
index 00000000..71fe0a41
--- /dev/null
+++ b/assets/js/903f555a.ff919b37.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1155],{54110(e,t,n){n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>l,frontMatter:()=>r,metadata:()=>o,toc:()=>u});var o=n(64098),a=n(62615),s=n(30416);const r={title:"Way to Go: Fesod successfully entered Apache Incubator",description:"Fesod successfully entered Apache Incubator.",tags:["announcement"]},c=void 0,i={authorsImageUrls:[]},u=[];function d(e){const t={a:"a",p:"p",...(0,s.R)(),.. [...]
\ No newline at end of file
diff --git a/assets/js/9056.59050bcd.js b/assets/js/9056.59050bcd.js
new file mode 100644
index 00000000..8d925bab
--- /dev/null
+++ b/assets/js/9056.59050bcd.js
@@ -0,0 +1 @@
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9056],{99056(){}}]);
\ No newline at end of file
diff --git a/assets/js/908b89db.06165241.js b/assets/js/908b89db.06165241.js
new file mode 100644
index 00000000..375d785d
--- /dev/null
+++ b/assets/js/908b89db.06165241.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9841],{49958(e,n,t){t.r(n),t.d(n,{assets:()=>h,contentTitle:()=>r,default:()=>c,frontMatter:()=>a,metadata:()=>s,toc:()=>l});const s=JSON.parse('{"id":"sheet/read/sheet","title":"Sheet","description":"\x3c!--","source":"@site/docs/sheet/read/sheet.md","sourceDirName":"sheet/read","slug":"/sheet/read/sheet","permalink":"/docs/sheet/read/sheet","draft":false,"unlisted":false,"editUrl":"https://github.co [...]
\ No newline at end of file
diff --git a/assets/js/9111.9d1e0289.js b/assets/js/9111.9d1e0289.js
new file mode 100644
index 00000000..d4a8b474
--- /dev/null
+++ b/assets/js/9111.9d1e0289.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9111],{59111(e,a,r){r.d(a,{diagram:()=>p});var t=r(68842),s=r(24841),n=r(86798),i=r(76322),d=r(53157),o={parse:(0,i.K2)(async e=>{const a=await(0,d.qg)("info",e);i.Rm.debug(a)},"parse")},g={version:t.n.version+""},p={parser:o,db:{getVersion:(0,i.K2)(()=>g.version,"getVersion")},renderer:{draw:(0,i.K2)((e,a,r)=>{i.Rm.debug("rendering info diagram\n"+e);const t=(0,s.D)(a);(0,n.a$)(t,100,400,!0);t.append [...]
\ No newline at end of file
diff --git a/assets/js/9400.a130969c.js b/assets/js/9400.a130969c.js
new file mode 100644
index 00000000..bfd5f300
--- /dev/null
+++ b/assets/js/9400.a130969c.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9400],{31508(t,e,a){function r(t,e){t.accDescr&&e.setAccDescription?.(t.accDescr),t.accTitle&&e.setAccTitle?.(t.accTitle),t.title&&e.setDiagramTitle?.(t.title)}a.d(e,{S:()=>r}),(0,a(76322).K2)(r,"populateCommonDb")},29400(t,e,a){a.d(e,{diagram:()=>m});var r=a(24841),i=a(31508),s=a(98189),o=a(86798),n=a(76322),l=a(53157),c=o.UI.packet,d=class{constructor(){this.packet=[],this.setAccTitle=o.SV,this.getA [...]
\ No newline at end of file
diff --git a/assets/js/9407.fc553778.js b/assets/js/9407.fc553778.js
new file mode 100644
index 00000000..02b3d807
--- /dev/null
+++ b/assets/js/9407.fc553778.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9407],{80124(t,e,i){i.d(e,{A:()=>r});var s=i(46554),n=i(55385);const r=(t,e)=>s.A.lang.round(n.A.parse(t)[e])},82094(t,e,i){i.d(e,{A:()=>r});var s=i(76322),n=i(7012),r=(0,s.K2)((t,e)=>{let i;"sandbox"===e&&(i=(0,n.Ltv)("#i"+t));return("sandbox"===e?(0,n.Ltv)(i.nodes()[0].contentDocument.body):(0,n.Ltv)("body")).select(`[id="${t}"]`)},"getDiagramElement")},59331(t,e,i){i.d(e,{P:()=>r});var s=i(86798),n [...]
\ No newline at end of file
diff --git a/assets/js/98b2b410.9bdbb0ca.js b/assets/js/98b2b410.9bdbb0ca.js
new file mode 100644
index 00000000..29becbcb
--- /dev/null
+++ b/assets/js/98b2b410.9bdbb0ca.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6381],{99441(e,n,t){t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>v,frontMatter:()=>s,metadata:()=>r,toc:()=>l});const r=JSON.parse('{"id":"sheet/read/converter","title":"Converter","description":"\x3c!--","source":"@site/docs/sheet/read/converter.md","sourceDirName":"sheet/read","slug":"/sheet/read/converter","permalink":"/docs/sheet/read/converter","draft":false,"unlisted":false,"editUrl [...]
\ No newline at end of file
diff --git a/assets/js/9951.6a056cb2.js b/assets/js/9951.6a056cb2.js
new file mode 100644
index 00000000..5778fedc
--- /dev/null
+++ b/assets/js/9951.6a056cb2.js
@@ -0,0 +1,2 @@
+/*! For license information please see 9951.6a056cb2.js.LICENSE.txt */
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9951],{29951(t,e,n){"use strict";t.exports=n(84848)},48920(t,e,n){"use strict";var i=n(96627),s={wrapper:{position:"relative",display:"inline-block"},hint:{position:"absolute",top:"0",left:"0",borderColor:"transparent",boxShadow:"none",opacity:"1"},input:{position:"relative",verticalAlign:"top",backgroundColor:"transparent"},inputWithNoHint:{position:"relative",verticalAlign:"top"},dropdown:{position:"absolute",to [...]
\ No newline at end of file
diff --git a/assets/js/9951.6a056cb2.js.LICENSE.txt b/assets/js/9951.6a056cb2.js.LICENSE.txt
new file mode 100644
index 00000000..4f7ccd8a
--- /dev/null
+++ b/assets/js/9951.6a056cb2.js.LICENSE.txt
@@ -0,0 +1 @@
+/*! https://mths.be/cssesc v3.0.0 by @mathias */
diff --git a/assets/js/9b316f1b.c7830875.js b/assets/js/9b316f1b.c7830875.js
new file mode 100644
index 00000000..83bc9559
--- /dev/null
+++ b/assets/js/9b316f1b.c7830875.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8755],{45187(e,t,i){i.r(t),i.d(t,{assets:()=>h,contentTitle:()=>a,default:()=>c,frontMatter:()=>s,metadata:()=>r,toc:()=>d});const r=JSON.parse('{"id":"sheet/write/sheet","title":"Sheet","description":"\x3c!--","source":"@site/docs/sheet/write/sheet.md","sourceDirName":"sheet/write","slug":"/sheet/write/sheet","permalink":"/docs/sheet/write/sheet","draft":false,"unlisted":false,"editUrl":"https://gith [...]
\ No newline at end of file
diff --git a/assets/js/9d86e7fa.fd1f8399.js b/assets/js/9d86e7fa.fd1f8399.js
new file mode 100644
index 00000000..471ead03
--- /dev/null
+++ b/assets/js/9d86e7fa.fd1f8399.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4129],{11136(a){a.exports=JSON.parse('{"tag":{"label":"announcement","permalink":"/blog/tags/announcement","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/announcement","page":1,"postsPerPage":15,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/9e4087bc.ad88494e.js b/assets/js/9e4087bc.ad88494e.js
new file mode 100644
index 00000000..146e03ed
--- /dev/null
+++ b/assets/js/9e4087bc.ad88494e.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2711],{13043(e,a,r){r.r(a),r.d(a,{default:()=>m});r(59471);var t=r(71248),s=r(66671),n=r(79145),i=r(61167),c=r(91488),l=r(24411),o=r(62615);function h({year:e,posts:a}){const r=(0,i.i)({day:"numeric",month:"long",timeZone:"UTC"});return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(l.A,{as:"h3",id:e,children:e}),(0,o.jsx)("ul",{children:a.map(e=>{return(0,o.jsx)("li",{children:(0,o.jsxs)(t.A,{to:e.metadat [...]
\ No newline at end of file
diff --git a/assets/js/a0cc137d.11d3ac1b.js b/assets/js/a0cc137d.11d3ac1b.js
new file mode 100644
index 00000000..cb02cf67
--- /dev/null
+++ b/assets/js/a0cc137d.11d3ac1b.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6407],{97194(e,t,n){n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>l,frontMatter:()=>r,metadata:()=>o,toc:()=>u});var o=n(64098),a=n(62615),s=n(30416);const r={title:"Way to Go: Fesod successfully entered Apache Incubator",description:"Fesod successfully entered Apache Incubator.",tags:["announcement"]},c=void 0,i={authorsImageUrls:[]},u=[];function d(e){const t={a:"a",p:"p",...(0,s.R)(),.. [...]
\ No newline at end of file
diff --git a/assets/js/a2915123.d0951102.js b/assets/js/a2915123.d0951102.js
new file mode 100644
index 00000000..0cfc3701
--- /dev/null
+++ b/assets/js/a2915123.d0951102.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8955],{53592(e,t,n){n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>o,default:()=>c,frontMatter:()=>d,metadata:()=>s,toc:()=>l});const s=JSON.parse('{"id":"sheet/read/num-rows","title":"Rows","description":"\x3c!--","source":"@site/docs/sheet/read/num-rows.md","sourceDirName":"sheet/read","slug":"/sheet/read/num-rows","permalink":"/docs/sheet/read/num-rows","draft":false,"unlisted":false,"editUrl":"https: [...]
\ No newline at end of file
diff --git a/assets/js/a3e235df.af670227.js b/assets/js/a3e235df.af670227.js
new file mode 100644
index 00000000..d304a1c8
--- /dev/null
+++ b/assets/js/a3e235df.af670227.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9120],{42312(e,n,t){t.r(n),t.d(n,{assets:()=>i,contentTitle:()=>o,default:()=>a,frontMatter:()=>l,metadata:()=>d,toc:()=>h});const d=JSON.parse('{"id":"sheet/help/annotation","title":"Annotation","description":"\x3c!--","source":"@site/docs/sheet/help/annotation.md","sourceDirName":"sheet/help","slug":"/sheet/help/annotation","permalink":"/docs/sheet/help/annotation","draft":false,"unlisted":false,"ed [...]
\ No newline at end of file
diff --git a/assets/js/a4b4544e.fe734537.js b/assets/js/a4b4544e.fe734537.js
new file mode 100644
index 00000000..6fe6561c
--- /dev/null
+++ b/assets/js/a4b4544e.fe734537.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2340],{80426(e,n,i){i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>c,default:()=>a,frontMatter:()=>r,metadata:()=>t,toc:()=>d});const t=JSON.parse('{"id":"contribution","title":"Contributor Guide","description":"\x3c!--","source":"@site/community/contribution.md","sourceDirName":".","slug":"/contribution","permalink":"/community/contribution","draft":false,"unlisted":false,"editUrl":"https://github.com/a [...]
\ No newline at end of file
diff --git a/assets/js/a6aa9e1f.1204c21e.js b/assets/js/a6aa9e1f.1204c21e.js
new file mode 100644
index 00000000..cd68859d
--- /dev/null
+++ b/assets/js/a6aa9e1f.1204c21e.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7643],{17257(e,t,s){s.r(t),s.d(t,{default:()=>j});s(59471);var a=s(13526),n=s(22488),r=s(79145),i=s(29454),l=s(29214),o=s(15169),c=s(5047),d=s(65668),m=s(3422),g=s(56998),u=s(62615);function h(e){const t=(0,g.kJ)(e);return(0,u.jsx)(m.A,{children:(0,u.jsx)("script",{type:"application/ld+json",children:JSON.stringify(t)})})}function x(e){const{metadata:t}=e,{siteConfig:{title:s}}=(0,n.A)(),{blogDescript [...]
\ No newline at end of file
diff --git a/assets/js/a7456010.6632754d.js b/assets/js/a7456010.6632754d.js
new file mode 100644
index 00000000..90906f40
--- /dev/null
+++ b/assets/js/a7456010.6632754d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1235],{88552(e){e.exports=JSON.parse('{"name":"docusaurus-plugin-content-pages","id":"default"}')}}]);
\ No newline at end of file
diff --git a/assets/js/a7bd4aaa.574af4c1.js b/assets/js/a7bd4aaa.574af4c1.js
new file mode 100644
index 00000000..f3e1dcae
--- /dev/null
+++ b/assets/js/a7bd4aaa.574af4c1.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7098],{92207(n,e,s){s.r(e),s.d(e,{default:()=>d});s(59471);var r=s(79145);function o(n,e){return`docs-${n}-${e}`}var t=s(62273),i=s(47377),c=s(5047),a=s(62615);function u(n){const{version:e}=n;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(c.A,{version:e.version,tag:o(e.pluginId,e.version)}),(0,a.jsx)(r.be,{children:e.noIndex&&(0,a.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})]})}functi [...]
\ No newline at end of file
diff --git a/assets/js/a8dd066c.aa344b94.js b/assets/js/a8dd066c.aa344b94.js
new file mode 100644
index 00000000..66eb5853
--- /dev/null
+++ b/assets/js/a8dd066c.aa344b94.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7587],{32929(e,i,n){n.r(i),n.d(i,{assets:()=>d,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>t,toc:()=>a});const t=JSON.parse('{"id":"sheet/write/pojo","title":"POJO","description":"\x3c!--","source":"@site/docs/sheet/write/pojo.md","sourceDirName":"sheet/write","slug":"/sheet/write/pojo","permalink":"/docs/sheet/write/pojo","draft":false,"unlisted":false,"editUrl":"https://github.co [...]
\ No newline at end of file
diff --git a/assets/js/a94703ab.7bf2e5a8.js b/assets/js/a94703ab.7bf2e5a8.js
new file mode 100644
index 00000000..c9a5585f
--- /dev/null
+++ b/assets/js/a94703ab.7bf2e5a8.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9048],{59252(e,t,n){n.r(t),n.d(t,{default:()=>Se});var a=n(59471),i=n(13526),s=n(79145),o=n(29454),l=n(41196),r=n(56785),c=n(66671),d=n(82173),u=n(22043);const m="backToTopButton_91RE",b="backToTopButtonShow_KvXX";var h=n(62615);function p(){const{shown:e,scrollToTop:t}=function({threshold:e}){const[t,n]=(0,a.useState)(!1),i=(0,a.useRef)(!1),{startScroll:s,cancelScroll:o}=(0,d.gk)();return(0,d.Mq)(({s [...]
\ No newline at end of file
diff --git a/assets/js/aba21aa0.9a1fa3c5.js b/assets/js/aba21aa0.9a1fa3c5.js
new file mode 100644
index 00000000..52cd0a89
--- /dev/null
+++ b/assets/js/aba21aa0.9a1fa3c5.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5742],{27093(e){e.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]);
\ No newline at end of file
diff --git a/assets/js/abce2868.c543f22c.js b/assets/js/abce2868.c543f22c.js
new file mode 100644
index 00000000..7e081351
--- /dev/null
+++ b/assets/js/abce2868.c543f22c.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8586],{88764(e,i,n){n.r(i),n.d(i,{assets:()=>d,contentTitle:()=>l,default:()=>h,frontMatter:()=>a,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"sheet/write/head","title":"Head","description":"\x3c!--","source":"@site/docs/sheet/write/head.md","sourceDirName":"sheet/write","slug":"/sheet/write/head","permalink":"/docs/sheet/write/head","draft":false,"unlisted":false,"editUrl":"https://github.co [...]
\ No newline at end of file
diff --git a/assets/js/acecf23e.00e0664e.js b/assets/js/acecf23e.00e0664e.js
new file mode 100644
index 00000000..17ede5bb
--- /dev/null
+++ b/assets/js/acecf23e.00e0664e.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1903],{1912(s){s.exports=JSON.parse('{"blogBasePath":"/blog","blogTitle":"Blog","authorsListPath":"/blog/authors"}')}}]);
\ No newline at end of file
diff --git a/assets/js/ae338ae9.ce2d9c8d.js b/assets/js/ae338ae9.ce2d9c8d.js
new file mode 100644
index 00000000..c8a2e20a
--- /dev/null
+++ b/assets/js/ae338ae9.ce2d9c8d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8984],{45834(e,n,t){t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>l,default:()=>h,frontMatter:()=>a,metadata:()=>s,toc:()=>o});const s=JSON.parse('{"id":"sheet/help/core-class","title":"Core Class","description":"\x3c!--","source":"@site/docs/sheet/help/core-class.md","sourceDirName":"sheet/help","slug":"/sheet/help/core-class","permalink":"/docs/sheet/help/core-class","draft":false,"unlisted":false,"ed [...]
\ No newline at end of file
diff --git a/assets/js/c15d9823.7b90f58f.js b/assets/js/c15d9823.7b90f58f.js
new file mode 100644
index 00000000..6d29c4e2
--- /dev/null
+++ b/assets/js/c15d9823.7b90f58f.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8146],{29328(e){e.exports=JSON.parse('{"metadata":{"permalink":"/blog","page":1,"postsPerPage":15,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/c3aa4345.bd54d0c2.js b/assets/js/c3aa4345.bd54d0c2.js
new file mode 100644
index 00000000..5cf5b5d3
--- /dev/null
+++ b/assets/js/c3aa4345.bd54d0c2.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7105],{67243(e,n,i){i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>c,default:()=>u,frontMatter:()=>s,metadata:()=>t,toc:()=>a});const t=JSON.parse('{"id":"contribution/contribute-doc","title":"Docs Contribution","description":"\x3c!--","source":"@site/community/contribution/contribute-doc.md","sourceDirName":"contribution","slug":"/contribution/contribute-doc","permalink":"/community/contribution/contrib [...]
\ No newline at end of file
diff --git a/assets/js/c4f5d8e4.2ebdc0d3.js b/assets/js/c4f5d8e4.2ebdc0d3.js
new file mode 100644
index 00000000..7000c246
--- /dev/null
+++ b/assets/js/c4f5d8e4.2ebdc0d3.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2634],{41601(e,a,t){t.d(a,{A:()=>R});var l,r,n,c,h,i,f,m,d,s,o,g,E,p,x,w,M=t(59471);function v(){return v=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var l in t)({}).hasOwnProperty.call(t,l)&&(e[l]=t[l])}return e},v.apply(null,arguments)}const R=({title:e,titleId:a,...t})=>M.createElement("svg",v({xmlns:"http://www.w3.org/2000/svg",width:10 [...]
\ No newline at end of file
diff --git a/assets/js/c639369e.5ed38b22.js b/assets/js/c639369e.5ed38b22.js
new file mode 100644
index 00000000..3a31ab5d
--- /dev/null
+++ b/assets/js/c639369e.5ed38b22.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7637],{72391(e,t,a){a.r(t),a.d(t,{assets:()=>d,contentTitle:()=>l,default:()=>c,frontMatter:()=>r,metadata:()=>n,toc:()=>o});const n=JSON.parse('{"id":"quickstart/simple-example","title":"Simple example","description":"\x3c!--","source":"@site/docs/quickstart/example.md","sourceDirName":"quickstart","slug":"/quickstart/simple-example","permalink":"/docs/quickstart/simple-example","draft":false,"unlist [...]
\ No newline at end of file
diff --git a/assets/js/c9de33a5.731b0b44.js b/assets/js/c9de33a5.731b0b44.js
new file mode 100644
index 00000000..fb606e64
--- /dev/null
+++ b/assets/js/c9de33a5.731b0b44.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3026],{28086(e,t,i){i.r(t),i.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>m,frontMatter:()=>r,metadata:()=>n,toc:()=>d});const n=JSON.parse('{"id":"contribution/commit-format","title":"Commit Format Specification","description":"\x3c!--","source":"@site/community/contribution/commit-format.md","sourceDirName":"contribution","slug":"/contribution/commit-format","permalink":"/community/contribution/ [...]
\ No newline at end of file
diff --git a/assets/js/ccc49370.ae195661.js b/assets/js/ccc49370.ae195661.js
new file mode 100644
index 00000000..83608ba9
--- /dev/null
+++ b/assets/js/ccc49370.ae195661.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3249],{31718(e,t,n){n.d(t,{A:()=>U});n(59471);var a=n(13526),s=n(56998),i=n(62615);function r({children:e,className:t}){return(0,i.jsx)("article",{className:t,children:e})}var o=n(71248);const l="title_Ksug";function c({className:e}){const{metadata:t,isBlogPostPage:n}=(0,s.e7)(),{permalink:r,title:c}=t,d=n?"h1":"h2";return(0,i.jsx)(d,{className:(0,a.A)(l,e),children:n?c:(0,i.jsx)(o.A,{to:r,children:c} [...]
\ No newline at end of file
diff --git a/assets/js/cfa642a3.217b6819.js b/assets/js/cfa642a3.217b6819.js
new file mode 100644
index 00000000..757a39df
--- /dev/null
+++ b/assets/js/cfa642a3.217b6819.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4823],{41554(e,i,t){t.r(i),t.d(i,{assets:()=>c,contentTitle:()=>a,default:()=>m,frontMatter:()=>r,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"pmc/onboarding","title":"Onboarding","description":"\x3c!--","source":"@site/community/pmc/onboarding.md","sourceDirName":"pmc","slug":"/pmc/onboarding","permalink":"/community/pmc/onboarding","draft":false,"unlisted":false,"editUrl":"https://github.co [...]
\ No newline at end of file
diff --git a/assets/js/d2436a2b.8f688944.js b/assets/js/d2436a2b.8f688944.js
new file mode 100644
index 00000000..6be2c4de
--- /dev/null
+++ b/assets/js/d2436a2b.8f688944.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[837],{19112(e){e.exports=JSON.parse('{"version":{"pluginId":"community","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"community":[{"type":"link","href":"/community/","label":"Join Community","docId":"index","unlisted":false},{"type":"link","href":"/community/maturity","label":"Maturity","docId":"maturity [...]
\ No newline at end of file
diff --git a/assets/js/d5273c26.9a53c20c.js b/assets/js/d5273c26.9a53c20c.js
new file mode 100644
index 00000000..fd5a4b1f
--- /dev/null
+++ b/assets/js/d5273c26.9a53c20c.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6717],{26876(M,N,D){D.r(N),D.d(N,{assets:()=>A,contentTitle:()=>T,default:()=>O,frontMatter:()=>z,metadata:()=>j,toc:()=>u});const j=JSON.parse('{"id":"brand","title":"Brand","description":"\x3c!--","source":"@site/community/brand.md","sourceDirName":".","slug":"/brand","permalink":"/community/brand","draft":false,"unlisted":false,"editUrl":"https://github.com/apache/fesod/edit/main/website/community/ [...]
\ No newline at end of file
diff --git a/assets/js/d55aa8bb.67774ed3.js b/assets/js/d55aa8bb.67774ed3.js
new file mode 100644
index 00000000..4ecd962a
--- /dev/null
+++ b/assets/js/d55aa8bb.67774ed3.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4599],{59428(e,n,i){i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>d,default:()=>h,frontMatter:()=>a,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"migration/from-fastexcel","title":"From FastExcel","description":"Complete migration guide for transitioning from cn.idev FastExcel to Apache Fesod (Incubating)","source":"@site/docs/migration/from-fastexcel.md","sourceDirName":"migration","slug":"/mig [...]
\ No newline at end of file
diff --git a/assets/js/de3da009.9b02b55a.js b/assets/js/de3da009.9b02b55a.js
new file mode 100644
index 00000000..7750ddab
--- /dev/null
+++ b/assets/js/de3da009.9b02b55a.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[685],{76973(e,t,i){i.r(t),i.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>u,frontMatter:()=>s,metadata:()=>n,toc:()=>d});const n=JSON.parse('{"id":"contribution/code-review-guide","title":"Code Review Guidelines","description":"\x3c!--","source":"@site/community/contribution/code-review-guide.md","sourceDirName":"contribution","slug":"/contribution/code-review-guide","permalink":"/community/contrib [...]
\ No newline at end of file
diff --git a/assets/js/e0719818.d59443b3.js b/assets/js/e0719818.d59443b3.js
new file mode 100644
index 00000000..2d7c2402
--- /dev/null
+++ b/assets/js/e0719818.d59443b3.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5220],{68669(s){s.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"community"}')}}]);
\ No newline at end of file
diff --git a/assets/js/e1dda140.df46f5b3.js b/assets/js/e1dda140.df46f5b3.js
new file mode 100644
index 00000000..ffcaa2bf
--- /dev/null
+++ b/assets/js/e1dda140.df46f5b3.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[235],{88646(e,n,t){t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>c,frontMatter:()=>o,metadata:()=>r,toc:()=>d});const r=JSON.parse('{"id":"sheet/write/spring","title":"Spring","description":"\x3c!--","source":"@site/docs/sheet/write/spring.md","sourceDirName":"sheet/write","slug":"/sheet/write/spring","permalink":"/docs/sheet/write/spring","draft":false,"unlisted":false,"editUrl":"https:// [...]
\ No newline at end of file
diff --git a/assets/js/e2f5eafd.4bfb052c.js b/assets/js/e2f5eafd.4bfb052c.js
new file mode 100644
index 00000000..cf4cde7d
--- /dev/null
+++ b/assets/js/e2f5eafd.4bfb052c.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9373],{94650(e,n,t){t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>o,default:()=>p,frontMatter:()=>s,metadata:()=>a,toc:()=>l});const a=JSON.parse('{"id":"introduce","title":"Introduction","description":"\x3c!--","source":"@site/docs/introduce.md","sourceDirName":".","slug":"/","permalink":"/docs/","draft":false,"unlisted":false,"editUrl":"https://github.com/apache/fesod/edit/main/website/docs/introduce. [...]
\ No newline at end of file
diff --git a/assets/js/ea334bcf.ab33d9e4.js b/assets/js/ea334bcf.ab33d9e4.js
new file mode 100644
index 00000000..32395426
--- /dev/null
+++ b/assets/js/ea334bcf.ab33d9e4.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8258],{68799(e,n,t){t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>r,default:()=>x,frontMatter:()=>c,metadata:()=>o,toc:()=>d});const o=JSON.parse('{"id":"sheet/read/exception","title":"Exception","description":"\x3c!--","source":"@site/docs/sheet/read/exception.md","sourceDirName":"sheet/read","slug":"/sheet/read/exception","permalink":"/docs/sheet/read/exception","draft":false,"unlisted":false,"editUrl [...]
\ No newline at end of file
diff --git a/assets/js/edc931f8.5c7207d6.js b/assets/js/edc931f8.5c7207d6.js
new file mode 100644
index 00000000..f9cc29ea
--- /dev/null
+++ b/assets/js/edc931f8.5c7207d6.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2526],{7075(e,i,s){s.r(i),s.d(i,{assets:()=>a,contentTitle:()=>r,default:()=>h,frontMatter:()=>l,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"index","title":"Join Community","description":"\x3c!--","source":"@site/community/index.md","sourceDirName":".","slug":"/","permalink":"/community/","draft":false,"unlisted":false,"editUrl":"https://github.com/apache/fesod/edit/main/website/community/in [...]
\ No newline at end of file
diff --git a/assets/js/ef8b811a.6cd7a582.js b/assets/js/ef8b811a.6cd7a582.js
new file mode 100644
index 00000000..0d2e8277
--- /dev/null
+++ b/assets/js/ef8b811a.6cd7a582.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8947],{56600(A){A.exports=JSON.parse('{"authors":[{"name":"Dave Fisher","url":"https://github.com/dave2wave","socials":{"github":"https://github.com/dave2wave"},"imageURL":"data:image/png;base64,/9j/2wCEAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDIBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAGQAZAMBIgACEQEDEQH/x [...]
\ No newline at end of file
diff --git a/assets/js/f81c1134.ea6d8f73.js b/assets/js/f81c1134.ea6d8f73.js
new file mode 100644
index 00000000..3eaf9889
--- /dev/null
+++ b/assets/js/f81c1134.ea6d8f73.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8130],{77735(e){e.exports=JSON.parse('{"archive":{"blogPosts":[{"id":"/2025/09/17/fesod-entered-apache-incubator","metadata":{"permalink":"/blog/2025/09/17/fesod-entered-apache-incubator","editUrl":"https://github.com/apache/fesod/edit/main/website/blog/2025-09-17-fesod-entered-apache-incubator.md","source":"@site/blog/2025-09-17-fesod-entered-apache-incubator.md","title":"Way to Go: Fesod successfull [...]
\ No newline at end of file
diff --git a/assets/js/f9e23376.52879edf.js b/assets/js/f9e23376.52879edf.js
new file mode 100644
index 00000000..906cdaae
--- /dev/null
+++ b/assets/js/f9e23376.52879edf.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2840],{68332(e,n,t){t.r(n),t.d(n,{assets:()=>i,contentTitle:()=>c,default:()=>o,frontMatter:()=>r,metadata:()=>s,toc:()=>d});const s=JSON.parse('{"id":"download","title":"Download","description":"\x3c!--","source":"@site/docs/download.md","sourceDirName":".","slug":"/download","permalink":"/docs/download","draft":false,"unlisted":false,"editUrl":"https://github.com/apache/fesod/edit/main/website/docs/ [...]
\ No newline at end of file
diff --git a/assets/js/fae1940b.e29ab397.js b/assets/js/fae1940b.e29ab397.js
new file mode 100644
index 00000000..c62461ed
--- /dev/null
+++ b/assets/js/fae1940b.e29ab397.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1239],{86726(e,n,t){t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>c,default:()=>u,frontMatter:()=>r,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"id":"committer/become-committer","title":"Become A Committer","description":"\x3c!--","source":"@site/community/committer/become-committer.md","sourceDirName":"committer","slug":"/committer/become-committer","permalink":"/community/committer/become-committe [...]
\ No newline at end of file
diff --git a/assets/js/fe9a19b4.d832a94c.js b/assets/js/fe9a19b4.d832a94c.js
new file mode 100644
index 00000000..412f8dd1
--- /dev/null
+++ b/assets/js/fe9a19b4.d832a94c.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7698],{33573(e,t,r){r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"sheet/write/format","title":"Format","description":"\x3c!--","source":"@site/docs/sheet/write/format.md","sourceDirName":"sheet/write","slug":"/sheet/write/format","permalink":"/docs/sheet/write/format","draft":false,"unlisted":false,"editUrl":"https:/ [...]
\ No newline at end of file
diff --git a/assets/js/ff3732e9.fc673461.js b/assets/js/ff3732e9.fc673461.js
new file mode 100644
index 00000000..bc8db62b
--- /dev/null
+++ b/assets/js/ff3732e9.fc673461.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[820],{84905(e,t,n){n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>s,default:()=>h,frontMatter:()=>o,metadata:()=>l,toc:()=>d});const l=JSON.parse('{"id":"sheet/write/style","title":"Style","description":"\x3c!--","source":"@site/docs/sheet/write/style.md","sourceDirName":"sheet/write","slug":"/sheet/write/style","permalink":"/docs/sheet/write/style","draft":false,"unlisted":false,"editUrl":"https://githu [...]
\ No newline at end of file
diff --git a/assets/js/main.70490860.js b/assets/js/main.70490860.js
new file mode 100644
index 00000000..91ec1b4f
--- /dev/null
+++ b/assets/js/main.70490860.js
@@ -0,0 +1,2 @@
+/*! For license information please see main.70490860.js.LICENSE.txt */
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8792],{23010(e,t,n){var r={"./prism-bash":81022,"./prism-java":32912};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=23010},54887(e,t,n){"use strict";n.d(t,{mg:()=>J,vd:()=>Q});var r=n(59471),a=n(2736),o=n.n(a),i=n(34072),s=n.n(i),l=n(29 [...]
\ No newline at end of file
diff --git a/assets/js/main.70490860.js.LICENSE.txt b/assets/js/main.70490860.js.LICENSE.txt
new file mode 100644
index 00000000..f4d2c339
--- /dev/null
+++ b/assets/js/main.70490860.js.LICENSE.txt
@@ -0,0 +1,138 @@
+/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress
+ * @license MIT */
+
+/*!
+ * Snowball JavaScript Library v0.3
+ * http://code.google.com/p/urim/
+ * http://snowball.tartarus.org/
+ *
+ * Copyright 2010, Oleg Mazko
+ * http://www.mozilla.org/MPL/
+ */
+
+/*!
+ * lunr.Builder
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.Index
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.Pipeline
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.Set
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.TokenSet
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.Vector
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.stemmer
+ * Copyright (C) 2020 Oliver Nightingale
+ * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt
+ */
+
+/*!
+ * lunr.stopWordFilter
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.tokenizer
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.trimmer
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.utils
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/**
+ * @license
+ * Copyright 2019 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @license React
+ * react-dom-client.production.js
+ *
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/**
+ * @license React
+ * react-dom.production.js
+ *
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/**
+ * @license React
+ * react-jsx-runtime.production.js
+ *
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/**
+ * @license React
+ * react.production.js
+ *
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/**
+ * @license React
+ * scheduler.production.js
+ *
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/**
+ * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9
+ * Copyright (C) 2020 Oliver Nightingale
+ * @license MIT
+ */
+
+/** @license React v16.13.1
+ * react-is.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
diff --git a/assets/js/runtime~main.6121cea4.js b/assets/js/runtime~main.6121cea4.js
new file mode 100644
index 00000000..018c09d3
--- /dev/null
+++ b/assets/js/runtime~main.6121cea4.js
@@ -0,0 +1 @@
+(()=>{"use strict";var e,a,c,d,f,b={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var c=t[e]={exports:{}};return b[e].call(c.exports,c,c.exports,r),c.exports}r.m=b,e=[],r.O=(a,c,d,f)=>{if(!c){var b=1/0;for(i=0;i<e.length;i++){for(var[c,d,f]=e[i],t=!0,o=0;o<c.length;o++)(!1&f||b>=f)&&Object.keys(r.O).every(e=>r.O[e](c[o]))?c.splice(o--,1):(t=!1,f<b&&(b=f));if(t){e.splice(i--,1);var n=d();void 0!==n&&(a=n)}}return a}f=f||0;for(var i=e.length;i>0&&e[i-1][2]>f;i--)e[i]=e[i-1 [...]
\ No newline at end of file
diff --git a/blog/2025/09/17/fesod-entered-apache-incubator/index.html b/blog/2025/09/17/fesod-entered-apache-incubator/index.html
new file mode 100644
index 00000000..18e0c558
--- /dev/null
+++ b/blog/2025/09/17/fesod-entered-apache-incubator/index.html
@@ -0,0 +1,25 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="blog-wrapper blog-post-page plugin-blog plugin-id-default" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Way to Go: Fesod successfully entered Apache Incubator | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content=" [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/blog/archive/index.html b/blog/archive/index.html
new file mode 100644
index 00000000..1023831b
--- /dev/null
+++ b/blog/archive/index.html
@@ -0,0 +1,25 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="plugin-blog plugin-id-default" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Archive | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/blog/archive"><meta da [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/blog/atom.xml b/blog/atom.xml
new file mode 100644
index 00000000..324ea2c6
--- /dev/null
+++ b/blog/atom.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom">
+ <id>https://fesod.apache.org/blog</id>
+ <title>Apache Fesod (Incubating) Blog</title>
+ <updated>2025-09-17T00:00:00.000Z</updated>
+ <generator>https://github.com/jpmonette/feed</generator>
+ <link rel="alternate" href="https://fesod.apache.org/blog"/>
+ <subtitle>Apache Fesod (Incubating) Blog</subtitle>
+ <icon>https://fesod.apache.org/img/favicon.ico</icon>
+ <entry>
+ <title type="html"><![CDATA[Way to Go: Fesod successfully entered Apache Incubator]]></title>
+ <id>https://fesod.apache.org/blog/2025/09/17/fesod-entered-apache-incubator</id>
+ <link href="https://fesod.apache.org/blog/2025/09/17/fesod-entered-apache-incubator"/>
+ <updated>2025-09-17T00:00:00.000Z</updated>
+ <summary type="html"><![CDATA[Fesod successfully entered Apache Incubator.]]></summary>
+ <content type="html"><![CDATA[<p>On September 17th, 2025, the <a href="https://github.com/apache/fesod" target="_blank" rel="noopener noreferrer" class="">Fesod</a> project achieved a milestone by winning the approval to join the incubator of the <a href="https://www.apache.org/" target="_blank" rel="noopener noreferrer" class="">Apache Software Foundation</a> (ASF), the world's leading open source software organization. On September 25th, the Fesod project was officially transfe [...]
+ <category label="announcement" term="announcement"/>
+ </entry>
+</feed>
\ No newline at end of file
diff --git a/blog/authors/index.html b/blog/authors/index.html
new file mode 100644
index 00000000..e155457d
--- /dev/null
+++ b/blog/authors/index.html
@@ -0,0 +1,25 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="blog-wrapper blog-authors-list-page plugin-blog plugin-id-default" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Authors | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/blog/authors"><meta da [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/blog/feed.json b/blog/feed.json
new file mode 100644
index 00000000..6e21e20d
--- /dev/null
+++ b/blog/feed.json
@@ -0,0 +1,19 @@
+{
+ "version": "https://jsonfeed.org/version/1",
+ "title": "Apache Fesod (Incubating) Blog",
+ "home_page_url": "https://fesod.apache.org/blog",
+ "description": "Apache Fesod (Incubating) Blog",
+ "items": [
+ {
+ "id": "https://fesod.apache.org/blog/2025/09/17/fesod-entered-apache-incubator",
+ "content_html": "<p>On September 17th, 2025, the <a href=\"https://github.com/apache/fesod\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">Fesod</a> project achieved a milestone by winning the approval to join the incubator of the <a href=\"https://www.apache.org/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">Apache Software Foundation</a> (ASF), the world's leading open source software organization. On September 25th, the Fesod project was officially [...]
+ "url": "https://fesod.apache.org/blog/2025/09/17/fesod-entered-apache-incubator",
+ "title": "Way to Go: Fesod successfully entered Apache Incubator",
+ "summary": "Fesod successfully entered Apache Incubator.",
+ "date_modified": "2025-09-17T00:00:00.000Z",
+ "tags": [
+ "announcement"
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/blog/index.html b/blog/index.html
new file mode 100644
index 00000000..ed9822df
--- /dev/null
+++ b/blog/index.html
@@ -0,0 +1,25 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="blog-wrapper blog-list-page plugin-blog plugin-id-default" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Blog | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/blog"><meta data-rh="true [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/blog/rss.xml b/blog/rss.xml
new file mode 100644
index 00000000..b598605e
--- /dev/null
+++ b/blog/rss.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
+ <channel>
+ <title>Apache Fesod (Incubating) Blog</title>
+ <link>https://fesod.apache.org/blog</link>
+ <description>Apache Fesod (Incubating) Blog</description>
+ <lastBuildDate>Wed, 17 Sep 2025 00:00:00 GMT</lastBuildDate>
+ <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
+ <generator>https://github.com/jpmonette/feed</generator>
+ <language>en</language>
+ <item>
+ <title><![CDATA[Way to Go: Fesod successfully entered Apache Incubator]]></title>
+ <link>https://fesod.apache.org/blog/2025/09/17/fesod-entered-apache-incubator</link>
+ <guid>https://fesod.apache.org/blog/2025/09/17/fesod-entered-apache-incubator</guid>
+ <pubDate>Wed, 17 Sep 2025 00:00:00 GMT</pubDate>
+ <description><![CDATA[Fesod successfully entered Apache Incubator.]]></description>
+ <content:encoded><![CDATA[<p>On September 17th, 2025, the <a href="https://github.com/apache/fesod" target="_blank" rel="noopener noreferrer" class="">Fesod</a> project achieved a milestone by winning the approval to join the incubator of the <a href="https://www.apache.org/" target="_blank" rel="noopener noreferrer" class="">Apache Software Foundation</a> (ASF), the world's leading open source software organization. On September 25th, the Fesod project was officially transfe [...]
+ <category>announcement</category>
+ </item>
+ </channel>
+</rss>
\ No newline at end of file
diff --git a/blog/tags/announcement/index.html b/blog/tags/announcement/index.html
new file mode 100644
index 00000000..ab465b57
--- /dev/null
+++ b/blog/tags/announcement/index.html
@@ -0,0 +1,25 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="blog-wrapper blog-tags-post-list-page plugin-blog plugin-id-default" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">One post tagged with "announcement" | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://f [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/blog/tags/index.html b/blog/tags/index.html
new file mode 100644
index 00000000..4e2f8ef1
--- /dev/null
+++ b/blog/tags/index.html
@@ -0,0 +1,25 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="blog-wrapper blog-tags-list-page plugin-blog plugin-id-default" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Tags | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/blog/tags"><meta data-rh= [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/community/brand/index.html b/community/brand/index.html
new file mode 100644
index 00000000..d4bd7a96
--- /dev/null
+++ b/community/brand/index.html
@@ -0,0 +1,30 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-community docs-version-current docs-doc-page docs-doc-id-brand" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Brand | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/community/brand"><meta d [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p><img decoding="async" loading="lazy" alt="logo" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjIyIiBoZWlnaHQ9IjIyMCIgdmlld0JveD0iMCAwIDIyMiAyMjAiIGZpbGw9Im5vbmUiPjxwYXRoICAgICBmaWxsPSIjMTQ4MjRCIiAgZD0iTTExMy4zMjQgMTYzLjkzOUw4MS43NjY0IDEzMi4zODJMODEuNzY2NCAxMzIuMzgyQzg1LjQxNSAxMzYuMDMgODUuNDE1MSAxNDEuOTQ2IDgxLjc2NjUgMTQ1LjU5NUw4MS42IDE0NS43NjFMNjYuMjQ0OSAxNjEuMTE2QzYyLjA2NiAxNjUuMj [...]
+<p>Download: <a href="/assets/files/fesod-logo-icon-fe2b95b7518918c8494bba4f27944e16.svg" target="_blank" class="">SVG</a> | <a href="/assets/files/fesod-logo-icon-3285667fcb12e822454e1e8bc1296eed.png" target="_blank" class="">PNG</a></p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="brand-logo">Brand Logo<a href="#brand-logo" class="hash-link" aria-label="Direct link to Brand Logo" title="Direct link to Brand Logo" translate="no"></a></h2>
+<p><img decoding="async" loading="lazy" alt="logo" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iNTkxIiBoZWlnaHQ9IjE4MCIgdmlld0JveD0iMCAwIDU5MSAxODAiIGZpbGw9Im5vbmUiPjxwYXRoICAgICBmaWxsPSIjMTQ4MjRCIiAgZD0iTTk1Ljg4OTcgMTM5LjYyTDY2LjQwMjcgMTEwLjEzM0w2Ni40MDI3IDExMC4xMzNDNjkuODExOSAxMTMuNTQyIDY5LjgxMiAxMTkuMDcgNjYuNDAyNyAxMjIuNDc5TDY2LjI0NzEgMTIyLjYzNUw1MS44OTkzIDEzNi45ODNDNDcuOTk0NCAxND [...]
+<p>Download: <a href="/assets/files/fesod-logo-e965e5189d96bd03fa69a35f3d899546.svg" target="_blank" class="">SVG</a> | <a href="/assets/files/fesod-logo-e09e531bdeeb40e7484aaa6dba7f672f.png" target="_blank" class="">PNG</a></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_YM8j"><a href="https://github.com/apache/fesod/edit/main/website/community/brand.md" target="_blank" rel="noopener norefe [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/community/committer/become-committer/index.html b/community/committer/become-committer/index.html
new file mode 100644
index 00000000..fc377e68
--- /dev/null
+++ b/community/committer/become-committer/index.html
@@ -0,0 +1,88 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-community docs-version-current docs-doc-page docs-doc-id-committer/become-committer" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Become A Committer | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/community/c [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<ul>
+<li class=""><strong>(Co)mmunity</strong> - You can join us via our mailing list, issue
+trackers, discussions page to interact with community members, and
+share vision and knowledge</li>
+<li class=""><strong>(P)roject</strong> - a clear vision and consensus are needed</li>
+<li class=""><strong>(Do)cumentation</strong> - without it, the stuff remains only in the minds
+of the authors</li>
+<li class=""><strong>(C)ode</strong> - discussion goes nowhere without code</li>
+</ul>
+<p>Apache Fesod (Incubating) community strives to be meritocratic. Thus, once someone has contributed sufficiently to any area of CoPDoC they can be a candidate for committer-ship and at last voted in as an Apache Fesod (Incubating) committer. Being an Apache Fesod (Incubating) committer does not necessarily mean you must commit code with your commit privilege to the codebase, it means you are committed to the Apache Fesod (Incubating) project and are productively contributing to our com [...]
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="committer-requirements">Committer requirements<a href="#committer-requirements" class="hash-link" aria-label="Direct link to Committer requirements" title="Direct link to Committer requirements" translate="no"></a></h2>
+<p>There are no strict rules for becoming a committer or PPMC member.
+Candidates for new committers are typically people that are active
+contributors and community members. Anyway, if the rules can be
+clarified a little bit, it can somehow clear the doubts in the minds
+of contributors and make the community more transparent, reasonable,
+and fair.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="continuous-contributions">Continuous contributions<a href="#continuous-contributions" class="hash-link" aria-label="Direct link to Continuous contributions" title="Direct link to Continuous contributions" translate="no"></a></h3>
+<p>Committer candidates should have a decent amount of continuous
+engagements and contributions (fixing bugs, adding new features,
+writing documentation, maintaining issues boards, code review, or answering
+community questions) to Apache Fesod (Incubating).</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="quality-of-contributions">Quality of contributions<a href="#quality-of-contributions" class="hash-link" aria-label="Direct link to Quality of contributions" title="Direct link to Quality of contributions" translate="no"></a></h3>
+<ul>
+<li class="">A solid general understanding of the project</li>
+<li class="">Well tested, well-designed, following Apache Fesod (Incubating) coding
+standards, and simple patches.</li>
+<li class="">Well-organized and detailed user-oriented documentation.</li>
+</ul>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="community-involvement">Community involvement<a href="#community-involvement" class="hash-link" aria-label="Direct link to Community involvement" title="Direct link to Community involvement" translate="no"></a></h3>
+<ul>
+<li class="">Be active, courteous, and respectful on the dev mailing list and
+help mentor newer contributors
+and users.</li>
+<li class="">Be active, courteous, and respectful on the issue tracker for
+project maintenance</li>
+<li class="">Be active, courteous, and respectful for pull requests reviewing</li>
+<li class="">Be involved in the design road map discussions with a professional
+and diplomatic approach even if there is a disagreement</li>
+<li class="">Promoting the project by writing articles or holding events</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="routine">Routine<a href="#routine" class="hash-link" aria-label="Direct link to Routine" title="Direct link to Routine" translate="no"></a></h2>
+<ul>
+<li class="">Check the list of pull requests and issues to be processed in the community on a daily basis.
+<ul>
+<li class="">Including label issue, reply issue, close issue;</li>
+<li class="">Assign issue to the appropriate committer, namely assignee;</li>
+</ul>
+</li>
+<li class="">After a committer is assigned with an issue, the following work is required:
+<ul>
+<li class="">Estimate whether it is a long-term issue. If it is, please label it as pending;</li>
+<li class="">Add issue labels, such as bug, enhancement, discussion, etc;</li>
+<li class="">Add milestone.</li>
+</ul>
+</li>
+<li class="">Pull request that committer submits needs to add labels and milestone based on the type and release period.</li>
+<li class="">When committer reviewed and approved any pull request, committer could <code>squash and merge</code> to main branch. If there is any question you concerned about this pull request, please reply directly to the related issue.</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="benefits">Benefits<a href="#benefits" class="hash-link" aria-label="Direct link to Benefits" title="Direct link to Benefits" translate="no"></a></h2>
+<p>Every Apache Committer is eligible for a free license that grants them access to all the JetBrains IDEs such as IntelliJ IDEA, PyCharm, and other desktop tools.</p>
+<p>If you are an Apache Fesod (Incubating) Committer and still haven’t received a free JetBrains license, please use your <code>@apache.org</code> email address to <a href="https://www.jetbrains.com/shop/eform/apache?product=ALL" target="_blank" rel="noopener noreferrer" class="">All Products Packs for Apache committers</a> now for the subsequent development of Apache Fesod (Incubating).</p>
+<p>If you have obtained a free JetBrains subscription but it has expired, you can reactivate all product packs for free using your <code>@apache.org</code> email address by this link and click <code>Refresh license list</code> in your JetBrains desktop tools (e.g. IntelliJ IDEA) to refresh the subscription.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_YM8j"><a href="https://github.com/apa [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/community/committer/icla/index.html b/community/committer/icla/index.html
new file mode 100644
index 00000000..15d9b776
--- /dev/null
+++ b/community/committer/icla/index.html
@@ -0,0 +1,84 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-community docs-version-current docs-doc-page docs-doc-id-committer/icla" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Sign iCLA Guide | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/community/comm [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>The process of submitting iCLA are:</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="download">Download<a href="#download" class="hash-link" aria-label="Direct link to Download" title="Direct link to Download" translate="no"></a></h2>
+<p>Click the link <a href="https://www.apache.org/licenses/contributor-agreements.html#clas" target="_blank" rel="noopener noreferrer" class="">Contributor License Agreements</a> and find iCLA under the Contributor License Agreements section.</p>
+<p><img decoding="async" loading="lazy" alt="iCLA" src="/assets/images/icla-01-83a226e824e1b9a9d08813f21b882e31.png" width="784" height="201" class="img_VXcA"></p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="fill-the-content">Fill the content<a href="#fill-the-content" class="hash-link" aria-label="Direct link to Fill the content" title="Direct link to Fill the content" translate="no"></a></h2>
+<p><img decoding="async" loading="lazy" alt="iCLA" src="/assets/images/icla-02-e761fe1f9d7c718f085b70b9fba8fc39.png" width="858" height="398" class="img_VXcA"></p>
+<p>Fill in the following columns in English.</p>
+<ul>
+<li class="">
+<p>Full name</p>
+<p>Please fill in your real name. The given name comes first, followed by the surname. The first letter of each should be capitalized. (Note:Leave a space between family name and last name, remember capitalize the first letter, please write family name at first.)</p>
+</li>
+<li class="">
+<p>Public name:</p>
+<p>the public name should be a real name or pen name and not a user id.</p>
+</li>
+<li class="">
+<p>Postal Address:</p>
+<p>The English address is detailed down to the house number.</p>
+</li>
+<li class="">
+<p>Country:</p>
+<p>Please fill in your country.</p>
+</li>
+<li class="">
+<p>E-mail:</p>
+<p>Please fill in your personal email address.</p>
+</li>
+<li class="">
+<p>(optional) preferred Apache id(s)</p>
+<p>You need to choose a unique Apache ID that hasn't been taken. Check <a href="https://people.apache.org/committer-index.html" target="_blank" rel="noopener noreferrer" class="">ASF Committers by ID</a> to see which IDs are still available.</p>
+</li>
+<li class="">
+<p>(optional) notify project:</p>
+<p>Apache Fesod (Incubating)</p>
+</li>
+</ul>
+<p>Refer to this case</p>
+<p><img decoding="async" loading="lazy" alt="iCLA" src="/assets/images/icla-03-c8df2f12ca6b2bc591a4e73aced61280.png" width="721" height="393" class="img_VXcA"></p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="sign">Sign<a href="#sign" class="hash-link" aria-label="Direct link to Sign" title="Direct link to Sign" translate="no"></a></h2>
+<p><img decoding="async" loading="lazy" alt="iCLA" src="/assets/images/icla-04-4925b6c82e6383ae69d9e1b0b92d2145.png" width="685" height="112" class="img_VXcA"></p>
+<ul>
+<li class="">
+<p>Please sign:</p>
+<p>Apache only accept hand-written signature or gpg signature, here we suggest choosing hand-written way. Print the document and sign your name on the paper, or use electric pen.</p>
+</li>
+<li class="">
+<p>Date: Signing Date(yyyy-MM-dd)</p>
+</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="send-mail">Send mail<a href="#send-mail" class="hash-link" aria-label="Direct link to Send mail" title="Direct link to Send mail" translate="no"></a></h2>
+<p>Take a photo or scan the signed document into a PDF format, and rename it as "name-icla.pdf".</p>
+<p>Please send the email to <code>secretary@apache.org</code> and also forward it to <code>private@fesod.apache.org</code>. Attach the PDF to the email. For the email content, please refer to the following:</p>
+<div class="language-text codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-text codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain">Hello Apache,</span><br></span><span class="token-line" style="color:#393A34"><span class=" [...]
+<blockquote>
+<p>This email should include the details from the previous committer invitation correspondence. It is recommended to reply to the earlier email exchange, then modify the subject line and recipients accordingly.</p>
+</blockquote>
+<p>After waiting for some time, you will receive an email from <code>root@apache.org</code>.</p>
+<p>When you receive an email with the subject line: "Welcome to the Apache Software Foundation", congratulations! You have now obtained an Apache ID.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_YM8j"><a href="https://github.com/apache/fesod/edit/main/website/community/committer/icla.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentCol [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/community/committer/onboarding/index.html b/community/committer/onboarding/index.html
new file mode 100644
index 00000000..fbdc1264
--- /dev/null
+++ b/community/committer/onboarding/index.html
@@ -0,0 +1,74 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-community docs-version-current docs-doc-page docs-doc-id-committer/onboarding" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Onboarding | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/community/committer [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>If they decide in favor, they should select "Reply All" and express their decision. Please provide the reference content of this reply email:</p>
+<div class="language-text codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-text codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain">Hi, i accept. Thanks for invitation.</span><br></span></code></pre></div></div>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="submit-cla">Submit CLA<a href="#submit-cla" class="hash-link" aria-label="Direct link to Submit CLA" title="Direct link to Submit CLA" translate="no"></a></h2>
+<p>We require all contributors to sign a Contributor License Agreement (CLA). This step refers to <a class="" href="/community/committer/icla">Sign ICLA guide</a></p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="setup-asf-account">Setup ASF Account<a href="#setup-asf-account" class="hash-link" aria-label="Direct link to Setup ASF Account" title="Direct link to Setup ASF Account" translate="no"></a></h2>
+<p>Go to <a href="https://id.apache.org/reset/enter" target="_blank" rel="noopener noreferrer" class="">Apache Account Utility</a> and enter your Apache ID.</p>
+<p><img decoding="async" loading="lazy" alt="Reset Password" src="/assets/images/reset-passwd-e8828118db9277c6fe25a82a5a0bb3da.png" width="882" height="608" class="img_VXcA"></p>
+<p>After clicking "Send Email", a prompt will appear indicating that the email has been sent successfully. Then check your email and click the provided link to reset your password.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="link-asf-account-to-github">Link ASF Account to GitHub<a href="#link-asf-account-to-github" class="hash-link" aria-label="Direct link to Link ASF Account to GitHub" title="Direct link to Link ASF Account to GitHub" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="Link GitHub" src="/assets/images/link-github-d7d62b2548477c375730056807eacc89.png" width="681" height="178" class="img_VXcA"></p>
+<ol>
+<li class="">Navigate to <a href="https://gitbox.apache.org/boxer/" target="_blank" rel="noopener noreferrer" class="">ASF Boxer</a> and enter your Apache ID and password.</li>
+<li class="">Click "Link GitHub username to ASF id" and follow the given instructions to link your ASF account to GitHub.</li>
+<li class="">Check your email titled "[GitHub] @asfgit has invited you to join the @apache organization" and accept the invitation.</li>
+<li class="">Wait momentarily, and the website will refresh on its own.</li>
+<li class="">(If you do not enable 2FA on GitHub) Please follow the <a href="https://docs.github.com/en/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication" target="_blank" rel="noopener noreferrer" class="">instruction</a>.</li>
+</ol>
+<p>Your Apache ID and GitHub ID will now both appear on <a href="https://gitbox.apache.org/boxer/" target="_blank" rel="noopener noreferrer" class="">ASF Boxer</a>. Congrats on successfully linking your ASF account to GitHub!</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="email-settings">Email Settings<a href="#email-settings" class="hash-link" aria-label="Direct link to Email Settings" title="Direct link to Email Settings" translate="no"></a></h2>
+<p>You cannot work directly with your Apache email address. You must set up forwarding for this address.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="receive-email">Receive Email<a href="#receive-email" class="hash-link" aria-label="Direct link to Receive Email" title="Direct link to Receive Email" translate="no"></a></h3>
+<p>You can change your forwarding email address at <a href="https://id.apache.org/" target="_blank" rel="noopener noreferrer" class="">Apache Account Utility Platform</a></p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="send-email">Send Email<a href="#send-email" class="hash-link" aria-label="Direct link to Send Email" title="Direct link to Send Email" translate="no"></a></h3>
+<p>To send emails using your apache.org address, configure your email client to leverage the <code>mail-relay</code> service. For specifics, refer to <a href="https://infra.apache.org/committer-email.html" target="_blank" rel="noopener noreferrer" class="">this guide</a>.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="gmail">Gmail<a href="#gmail" class="hash-link" aria-label="Direct link to Gmail" title="Direct link to Gmail" translate="no"></a></h3>
+<ol>
+<li class="">Open Gmail settings and select "See all settings".</li>
+<li class="">Navigate to "Accounts and Import", then locate "Send mail as".</li>
+<li class="">Click "Add another email address" and enter your name and apache.org email address.</li>
+<li class="">Input the SMTP server information:
+<ul>
+<li class="">SMTP Server: mail-relay.apache.org</li>
+<li class="">Port: 587</li>
+<li class="">Username: your apache ID</li>
+<li class="">Password: your apache password</li>
+<li class="">Secured connection using TLS</li>
+</ul>
+</li>
+<li class="">Click "Add account" and you will receive an email from Gmail that need to confirm.</li>
+</ol>
+<p><img decoding="async" loading="lazy" alt="Gmail Setting" src="/assets/images/gmail-setting-64fa2bef013a1817489ee6195d293a97.png" width="772" height="418" class="img_VXcA"></p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="subscribe-to-mailing-list">Subscribe to Mailing List<a href="#subscribe-to-mailing-list" class="hash-link" aria-label="Direct link to Subscribe to Mailing List" title="Direct link to Subscribe to Mailing List" translate="no"></a></h3>
+<p>Please refer to <a class="" href="/community/#how-to-subscribe-to-a-mailing-list">Subscribe to Mailing List</a></p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="enable-2fa-on-github">Enable 2FA on GitHub<a href="#enable-2fa-on-github" class="hash-link" aria-label="Direct link to Enable 2FA on GitHub" title="Direct link to Enable 2FA on GitHub" translate="no"></a></h2>
+<p>Two-factor authentication (2FA) refers to the authentication method that combines both passport, and an object (credit card, SMS phone, token or biomarkers as fingerprint) to identify a user.
+To ensure the security of the committer’s account, we need you to enable 2FA to sign in and contribute codes on GitHub.</p>
+<p>More details, please refer to <a href="https://help.github.com/articles/requiring-two-factor-authentication-in-your-organization/" target="_blank" rel="noopener noreferrer" class="">2FA</a>.</p>
+<p>For detailed operations, please refer to <a href="https://help.github.com/articles/configuring-two-factor-authentication-via-a-totp-mobile-app/" target="_blank" rel="noopener noreferrer" class="">Enable Two Factor Authentication with TOTP</a>.</p>
+<p>After enabling 2FA, you need to sign in GitHub with the way of username/password + mobile phone authentication code.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_YM8j"><a href="https://github.com/apache/fesod/edit/main/website/community/committer/onboarding.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/community/contribution/code-review-guide/index.html b/community/contribution/code-review-guide/index.html
new file mode 100644
index 00000000..b43d186e
--- /dev/null
+++ b/community/contribution/code-review-guide/index.html
@@ -0,0 +1,54 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-community docs-version-current docs-doc-page docs-doc-id-contribution/code-review-guide" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Code Review Guidelines | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/communi [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<ul>
+<li class="">Contributors have a good contribution experience.</li>
+<li class="">Our reviews are structured and check all important aspects of a contribution.</li>
+<li class="">We make sure to keep a high code quality in Apache Fesod (Incubating).</li>
+<li class="">We avoid situations where contributors and reviewers spend a lot of time refining a contribution that gets rejected later.</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="code-review-guidelines">Code Review Guidelines<a href="#code-review-guidelines" class="hash-link" aria-label="Direct link to Code Review Guidelines" title="Direct link to Code Review Guidelines" translate="no"></a></h2>
+<ul>
+<li class="">Always maintain a high standard of review so that the quality of the entire product can be better guaranteed.</li>
+<li class="">Changes to the architecture or the user interface need to be fully discussed by the community. This can be either in a mail group or in a GitHub issue.</li>
+<li class="">Test coverage. The added logic needs to be covered by a corresponding test. When the old code for which there is no test is changed, this requirement can be appropriately relaxed.</li>
+<li class="">Documentation. Newly added features must be documented, otherwise such code is not allowed.</li>
+<li class="">Readability of the code. If reviewers are not very clear about the logic of the code, then you can ask the contributor to explain the logic. And writing sufficient comments in the code to explain the logic is encouraged.</li>
+<li class="">Try to give a clear conclusion at the end of your comments, "approve" or "change request". If it's a minor issue, you can just leave a comment.</li>
+<li class="">Recommend to submit a "+1 Comment" rather than a "+1 Approve" to indicate that it looks good to me but I am not sure whether this part of the function is correct. It needs someone else's approve.</li>
+<li class="">Respect each other and learn from each other. Maintain a polite tone when commenting, try to give reasons for the suggestions.</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="pr-review-guidelines">PR Review Guidelines<a href="#pr-review-guidelines" class="hash-link" aria-label="Direct link to PR Review Guidelines" title="Direct link to PR Review Guidelines" translate="no"></a></h2>
+<ul>
+<li class="">Check whether the contribution is sufficiently well-described to support a good review</li>
+<li class="">The reviewer needs to perform a code-level review.</li>
+<li class="">Once a reviewer has commented on a PR, they need to keep following up on subsequent changes to that PR.</li>
+<li class="">A PR must get at least a +1 approved from committer who is not the author.</li>
+<li class="">After the first +1 to the PR, wait at least one working day before merging. The main purpose is to wait for the rest of the community to come to review.</li>
+<li class="">For architecture or user interface changes, a PR needs to get at least 3 +1's to merge.</li>
+<li class="">Regression cases and CI tests should pass before merging.</li>
+<li class="">Select "squash and merge" to merge.</li>
+<li class="">When there is a disagreement about a modification, try to discuss the resolution. If the discussion doesn't work out, it can be resolved by a vote in <code>dev@fesod.apache.org</code> by the majority rules.</li>
+</ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_YM8j"><a href="https://github.com/apache/fesod/edit/main/website/community/contribution/code-review-guide.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_hRvp" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1. [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/community/contribution/commit-format/index.html b/community/contribution/commit-format/index.html
new file mode 100644
index 00000000..64bef09b
--- /dev/null
+++ b/community/contribution/commit-format/index.html
@@ -0,0 +1,55 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-community docs-version-current docs-doc-page docs-doc-id-contribution/commit-format" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Commit Format Specification | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/co [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="commit-rules">Commit Rules<a href="#commit-rules" class="hash-link" aria-label="Direct link to Commit Rules" title="Direct link to Commit Rules" translate="no"></a></h3>
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="commit-message">Commit Message<a href="#commit-message" class="hash-link" aria-label="Direct link to Commit Message" title="Direct link to Commit Message" translate="no"></a></h4>
+<p>Please ensure that commit messages are clear and descriptive, use <strong>English</strong>, and do not exceed 100 characters.</p>
+<p>The following types of commit messages are allowed and must follow the following format:</p>
+<ul>
+<li class=""><strong>docs</strong>: Update documentation, e.g., <code>docs: update README.md</code></li>
+<li class=""><strong>feature/feat</strong>: New features, e.g., <code>feature: support for xxx</code></li>
+<li class=""><strong>bugfix/fix</strong>: Bug fixes, e.g., <code>fix: fix NPE in the A class</code></li>
+<li class=""><strong>refactor</strong>: Code refactoring (no functional changes), e.g., <code>refactor: optimise data processing logic</code></li>
+<li class=""><strong>style</strong>: Code formatting, e.g., <code>style: update code style</code></li>
+<li class=""><strong>test</strong>: Adding or improving tests, e.g., <code>test: add new test cases</code></li>
+<li class=""><strong>chore</strong>: Changes to the build process or auxiliary tools, e.g., <code>chore: improve issue template</code></li>
+<li class=""><strong>dependency</strong>: Modifications to third-party dependency libraries, e.g., <code>dependency: upgrade poi version to 5.4.1</code></li>
+</ul>
+<p>Avoid using vague commit messages like:</p>
+<ul>
+<li class=""><del>fixed issue</del></li>
+<li class=""><del>update code</del></li>
+</ul>
+<p>For assistance, refer to <a href="http://chris.beams.io/posts/git-commit/" target="_blank" rel="noopener noreferrer" class="">How to Write a Git Commit Message</a>.</p>
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="commit-content">Commit Content<a href="#commit-content" class="hash-link" aria-label="Direct link to Commit Content" title="Direct link to Commit Content" translate="no"></a></h4>
+<p>Each commit should contain complete and reviewable changes, ensuring:</p>
+<ul>
+<li class="">Avoid committing overly large changes.</li>
+<li class="">Each commit content is independent and can pass CI tests.</li>
+</ul>
+<p>Also, ensure the correct Git user information is configured when committing:</p>
+<div class="language-bash codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-bash codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">git</span><span class="token plain"> config </span><span class="to [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="pr-description">PR Description<a href="#pr-description" class="hash-link" aria-label="Direct link to PR Description" title="Direct link to PR Description" translate="no"></a></h3>
+<p>To help reviewers quickly understand the content and purpose of the PR, use the <a href="https://github.com/apache/fesod/blob/main/.github/pull_request_template.md" target="_blank" rel="noopener noreferrer" class="">pull_request_template</a>. A detailed description greatly improves code review efficiency.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_YM8j"><a href="https://github.com/ap [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/community/contribution/contribute-code/index.html b/community/contribution/contribute-code/index.html
new file mode 100644
index 00000000..8952e809
--- /dev/null
+++ b/community/contribution/contribute-code/index.html
@@ -0,0 +1,83 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-community docs-version-current docs-doc-page docs-doc-id-contribution/contribute-code" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Code Contribution | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/community/co [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="workspace-preparation">Workspace Preparation<a href="#workspace-preparation" class="hash-link" aria-label="Direct link to Workspace Preparation" title="Direct link to Workspace Preparation" translate="no"></a></h2>
+<p>To develop this project, you need <strong>Maven 3.9 or above</strong> and <strong>JDK (Java Development Kit) 17 or above</strong>. However, you must use <strong>Java 1.8</strong> compatible language features during compilation to ensure this project can run in environments with Java 1.8 or above.</p>
+<blockquote>
+<p>You can use tools such as <a href="https://sdkman.io/" target="_blank" rel="noopener noreferrer" class="">SDKMAN</a> to configure multiple versions of the Java toolchain.</p>
+</blockquote>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="idea-settings">IDEA Settings<a href="#idea-settings" class="hash-link" aria-label="Direct link to IDEA Settings" title="Direct link to IDEA Settings" translate="no"></a></h2>
+<p>The following guidelines are for development using <code>IntelliJ IDEA</code>. Other versions may have some minor differences. Please follow all steps carefully.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="project-settings">Project Settings<a href="#project-settings" class="hash-link" aria-label="Direct link to Project Settings" title="Direct link to Project Settings" translate="no"></a></h3>
+<p>Set the project <a href="https://www.jetbrains.com/help/idea/project-settings-and-structure.html#language-level" target="_blank" rel="noopener noreferrer" class="">Language Level</a> to <code>8</code> to ensure backward compatibility.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="git-usage">Git Usage<a href="#git-usage" class="hash-link" aria-label="Direct link to Git Usage" title="Direct link to Git Usage" translate="no"></a></h2>
+<p>Ensure that you have registered a GitHub account and follow the steps below to configure your local development environment:</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="fork-the-repository">Fork the repository<a href="#fork-the-repository" class="hash-link" aria-label="Direct link to Fork the repository" title="Direct link to Fork the repository" translate="no"></a></h3>
+<p>Click the <code>Fork</code> button on the Fesod <a href="https://github.com/apache/fesod" target="_blank" rel="noopener noreferrer" class="">GitHub page</a> to copy the project to your GitHub account.</p>
+<div class="language-bash codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-bash codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain">https://github.com/</span><span class="token operator" style="color:#393A34"><</span><sp [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="clone-repository">Clone Repository<a href="#clone-repository" class="hash-link" aria-label="Direct link to Clone Repository" title="Direct link to Clone Repository" translate="no"></a></h3>
+<p>Run the following command to clone the forked project to your local machine:</p>
+<div class="language-bash codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-bash codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">git</span><span class="token plain"> clone git@github.com:</span>< [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="set-upstream-repository">Set Upstream Repository<a href="#set-upstream-repository" class="hash-link" aria-label="Direct link to Set Upstream Repository" title="Direct link to Set Upstream Repository" translate="no"></a></h3>
+<p>Set the official repository as <code>upstream</code> for easy synchronization of updates:</p>
+<div class="language-bash codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-bash codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">git</span><span class="token plain"> remote </span><span class="to [...]
+<p>Running <code>git remote -v</code> can verify if the configuration is correct.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="new-branches-to-modify">New branches to modify<a href="#new-branches-to-modify" class="hash-link" aria-label="Direct link to New branches to modify" title="Direct link to New branches to modify" translate="no"></a></h3>
+<p>Create a new branch to develop</p>
+<div class="language-bash codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-bash codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">git</span><span class="token plain"> checkout </span><span class=" [...]
+<p><strong>Note</strong>:</p>
+<ul>
+<li class="">You must create a new branch to develop features <code>git checkout -b feature-xxx</code>. It is not recommended to use the <code>main</code> branch for direct development</li>
+<li class=""><code><your_branch_name></code> name is customized for you.</li>
+</ul>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="submit-code-to-remote-branch">Submit code to remote branch<a href="#submit-code-to-remote-branch" class="hash-link" aria-label="Direct link to Submit code to remote branch" title="Direct link to Submit code to remote branch" translate="no"></a></h3>
+<p>After modifying the code locally, submit it to your own repository</p>
+<div class="language-bash codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-bash codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">git</span><span class="token plain"> commit </span><span class="to [...]
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="pull-request">Pull request<a href="#pull-request" class="hash-link" aria-label="Direct link to Pull request" title="Direct link to Pull request" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="new-pull-request">New pull request<a href="#new-pull-request" class="hash-link" aria-label="Direct link to New pull request" title="Direct link to New pull request" translate="no"></a></h3>
+<p>Submit changes to the remote repository, you can see a green button "Compare & pull request" on your repository page, click it.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="fill-commit-message">Fill Commit Message<a href="#fill-commit-message" class="hash-link" aria-label="Direct link to Fill Commit Message" title="Direct link to Fill Commit Message" translate="no"></a></h3>
+<p>Please refer to <a class="" href="/community/contribution/commit-format">Commit Format Specification</a> to fill in the summary and details of the comment, and then click Create pull request to create it.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="ready-for-review">Ready for review<a href="#ready-for-review" class="hash-link" aria-label="Direct link to Ready for review" title="Direct link to Ready for review" translate="no"></a></h3>
+<p>After successful creation, Then the community Committers will do CodeReview, and then he will discuss some details (design, implementation, performance, etc.) with you, afterward you can directly update the code in this branch according to the suggestions (no need to create a new PR). When this pr is approved, the commit will be merged into the main branch.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="branch-definition">Branch definition<a href="#branch-definition" class="hash-link" aria-label="Direct link to Branch definition" title="Direct link to Branch definition" translate="no"></a></h2>
+<p>All contributions should be based on the <code>main</code> development branch. Additionally, there are the following branch types:</p>
+<ul>
+<li class=""><strong>release branches</strong>: Used for version releases (e.g., <code>1.1.0</code>, <code>1.1.1</code>).</li>
+<li class=""><strong>feature branches</strong>: Used for developing major features.</li>
+<li class=""><strong>hotfix branches</strong>: Used for fixing critical bugs.</li>
+</ul>
+<p>When submitting a PR, please ensure that the changes are based on the <code>main</code> branch.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="compile">Compile<a href="#compile" class="hash-link" aria-label="Direct link to Compile" title="Direct link to Compile" translate="no"></a></h2>
+<p>Run the following command to compile</p>
+<div class="language-bash codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-bash codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain">mvn clean </span><span class="token function" style="color:#d73a49">install</span><span cla [...]
+<p>To speed up the build process, you can:</p>
+<ul>
+<li class="">Use <code>-DskipTests</code> to skip unit tests</li>
+<li class="">Use Maven's parallel build feature, e.g., <code>mvn clean install -DskipTests -T 1C</code></li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="code-style">Code Style<a href="#code-style" class="hash-link" aria-label="Direct link to Code Style" title="Direct link to Code Style" translate="no"></a></h2>
+<p>This project uses <a href="https://github.com/diffplug/spotless" target="_blank" rel="noopener noreferrer" class="">Spotless</a> as its code formatting tool. Please ensure you run the following command to automatically format your code before submitting:</p>
+<div class="language-bash codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-bash codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain">mvn spotless:apply</span><br></span></code></pre></div></div></div><footer class="theme-doc [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/community/contribution/contribute-doc/index.html b/community/contribution/contribute-doc/index.html
new file mode 100644
index 00000000..2909b18e
--- /dev/null
+++ b/community/contribution/contribute-doc/index.html
@@ -0,0 +1,75 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-community docs-version-current docs-doc-page docs-doc-id-contribution/contribute-doc" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Docs Contribution | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/community/co [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>The official website is built using <a href="https://docusaurus.io/" target="_blank" rel="noopener noreferrer" class="">Docusaurus</a>, and the documentation is maintained in the <a href="https://github.com/apache/fesod/tree/main/website" target="_blank" rel="noopener noreferrer" class="">website</a> directory.Please note that whether it is for historical versions or the latest version of the docs, all modifications should be submitted as pull requests on the <code>apache/fesod</code> [...]
+<p>For how to submit pull requests, please refer to</p>
+<ul>
+<li class=""><a class="" href="/community/contribution/contribute-code">Code Contribution</a></li>
+<li class=""><a class="" href="/community/contribution/commit-format">Commit Format Specification</a></li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="requirements">Requirements<a href="#requirements" class="hash-link" aria-label="Direct link to Requirements" title="Direct link to Requirements" translate="no"></a></h2>
+<ul>
+<li class=""><a href="https://nodejs.org/en/download/" target="_blank" rel="noopener noreferrer" class="">Node.js</a> version 20.0 or above (which can be checked by running <code>node -v</code>). You can use <a href="https://github.com/nvm-sh/nvm" target="_blank" rel="noopener noreferrer" class="">nvm</a> for managing multiple Node versions on a single machine installed.</li>
+<li class="">When installing Node.js, you are recommended to check all checkboxes related to dependencies.</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="directory-structure-description">Directory Structure Description<a href="#directory-structure-description" class="hash-link" aria-label="Direct link to Directory Structure Description" title="Direct link to Directory Structure Description" translate="no"></a></h2>
+<p>Docusaurus supports I18n. The main documentation directory structure that needs to be maintained is as follows:</p>
+<div class="language-bash codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-bash codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token builtin class-name">.</span><span class="token plain"></span><br></span><span class="token-line" s [...]
+<p>The directory structure for single-language documents is as follows:</p>
+<div class="language-bash codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-bash codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token builtin class-name">.</span><span class="token plain"></span><br></span><span class="token-line" s [...]
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="writing-guidelines">Writing Guidelines<a href="#writing-guidelines" class="hash-link" aria-label="Direct link to Writing Guidelines" title="Direct link to Writing Guidelines" translate="no"></a></h2>
+<ul>
+<li class="">Use file paths with the <code>.md</code> extension</li>
+</ul>
+<div class="language-markdown codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-markdown codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token url" style="color:#36acaa">[</span><span class="token url content" style="color:#36acaa">E [...]
+<ul>
+<li class="">Use paths relative to the docs/ directory</li>
+</ul>
+<div class="language-markdown codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-markdown codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token url" style="color:#36acaa">[</span><span class="token url content" style="color:#36acaa">E [...]
+<ul>
+<li class="">Image files must be stored in the <code>static/img</code> directory and referenced using relative directory paths.</li>
+</ul>
+<div class="language-markdown codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-markdown codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token url" style="color:#36acaa">[</span><span class="token url content" style="color:#36acaa">i [...]
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="preview-and-generate-static-files">Preview and generate static files<a href="#preview-and-generate-static-files" class="hash-link" aria-label="Direct link to Preview and generate static files" title="Direct link to Preview and generate static files" translate="no"></a></h2>
+<p>Enter the <code>website</code> directory and execute the command</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="installation">Installation<a href="#installation" class="hash-link" aria-label="Direct link to Installation" title="Direct link to Installation" translate="no"></a></h3>
+<div class="language-bash codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-bash codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">pnpm</span><span class="token plain"> </span><span class="token fu [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="local-development">Local Development<a href="#local-development" class="hash-link" aria-label="Direct link to Local Development" title="Direct link to Local Development" translate="no"></a></h3>
+<div class="language-bash codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-bash codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># English</span><span class="token plain"></span> [...]
+<p>This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.</p>
+<blockquote>
+<p>Only one language version can be run at a time.</p>
+</blockquote>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="buildoptional">Build(Optional)<a href="#buildoptional" class="hash-link" aria-label="Direct link to Build(Optional)" title="Direct link to Build(Optional)" translate="no"></a></h2>
+<div class="language-bash codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-bash codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">pnpm</span><span class="token plain"> build</span><br></span></cod [...]
+<p>This command generates static content into the <code>build</code> directory and can be served using any static contents hosting service.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="document-format-inspection">Document Format Inspection<a href="#document-format-inspection" class="hash-link" aria-label="Direct link to Document Format Inspection" title="Direct link to Document Format Inspection" translate="no"></a></h2>
+<p>We uses <a href="https://github.com/DavidAnson/markdownlint-cli2" target="_blank" rel="noopener noreferrer" class="">markdownlint-cli2</a> to check document formatting. After writing the relevant Markdown articles, you can run the following command locally to pre-check whether the Markdown formatting meets the requirements:</p>
+<div class="language-bash codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-bash codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token builtin class-name">cd</span><span class="token plain"> website</span><br></span><span class="toke [...]
+<ul>
+<li class="">For formatting rules for Markdown articles you can refer to: <a href="https://github.com/DavidAnson/markdownlint/blob/main/doc/Rules.md" target="_blank" rel="noopener noreferrer" class="">Markdown-lint-rules</a></li>
+<li class="">Markdown format configuration file in the project: <a href="https://github.com/apache/fesod/blob/main/website/.markdownlint-cli2.jsonc" target="_blank" rel="noopener noreferrer" class="">.markdownlint-cli2.jsonc</a></li>
+</ul>
+<hr></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_YM8j"><a href="https://github.com/apache/fesod/edit/main/website/community/contribution/contribute-doc.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_hRvp" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0. [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/community/contribution/index.html b/community/contribution/index.html
new file mode 100644
index 00000000..a90014c2
--- /dev/null
+++ b/community/contribution/index.html
@@ -0,0 +1,83 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-community docs-version-current docs-doc-page docs-doc-id-contribution" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Contributor Guide | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/community/co [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="contribution-directions">Contribution Directions<a href="#contribution-directions" class="hash-link" aria-label="Direct link to Contribution Directions" title="Direct link to Contribution Directions" translate="no"></a></h2>
+<p>There are many ways to contribute to this project:</p>
+<ul>
+<li class="">Fix typos</li>
+<li class="">Fix bugs</li>
+<li class="">Remove redundant code</li>
+<li class="">Add test cases</li>
+<li class="">Enhance functionality</li>
+<li class="">Add comments to improve code readability</li>
+<li class="">Optimize code structure</li>
+<li class="">Improve or refine documentation</li>
+</ul>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="principle">Principle<a href="#principle" class="hash-link" aria-label="Direct link to Principle" title="Direct link to Principle" translate="no"></a></h3>
+<ul>
+<li class="">Any pull request that contributes to the improvement of the project should be encouraged.</li>
+<li class="">Before contributing a new feature, please propose and discuss it in an <code>issue</code> or <code>discussion</code>. We will not merge features that have not been discussed and confirmed.</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="contribution-process">Contribution Process<a href="#contribution-process" class="hash-link" aria-label="Direct link to Contribution Process" title="Direct link to Contribution Process" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="find-tasks">Find tasks<a href="#find-tasks" class="hash-link" aria-label="Direct link to Find tasks" title="Direct link to Find tasks" translate="no"></a></h3>
+<p>Find the issue you are interested in! On our GitHub repo issue list, we often publish some issues with the label <code>good first issue</code> or <code>help wanted</code>. These issues welcome the help of contributors. Among them, <code>good first issues</code> tend to have low thresholds and are suitable for beginners.</p>
+<p>Of course, if you have a good idea, you can also propose it directly on GitHub Discussion or contact with community.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="discuss">Discuss<a href="#discuss" class="hash-link" aria-label="Direct link to Discuss" title="Direct link to Discuss" translate="no"></a></h3>
+<p>Please refer to <a class="" href="/community/feedback">Issue Feedback</a> to create an issue or discussion and endeavour to reach consensus.</p>
+<p><strong>Note</strong>: To request an issue, please note that it is not just a "please assign it to me", you need to explain your understanding of the issue, and your design, and if possible, you need to provide your POC code.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="implement">Implement<a href="#implement" class="hash-link" aria-label="Direct link to Implement" title="Direct link to Implement" translate="no"></a></h3>
+<p>Implement the change according to the approach agreed upon in the issue.</p>
+<ul>
+<li class="">Only start working on the implementation if there is consensus on the approach (e.g. you are assigned to the ticket)</li>
+<li class="">If you are newer, can refer to <a class="" href="/community/contribution/contribute-code">Code Contribution</a> to setup a dev environment.</li>
+</ul>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="review">Review<a href="#review" class="hash-link" aria-label="Direct link to Review" title="Direct link to Review" translate="no"></a></h3>
+<p>Create the pull request and work with the reviewer.</p>
+<ul>
+<li class="">Make sure no unrelated or unnecessary reformatting changes are included.</li>
+<li class="">After submitting the PR, the CI process will be triggered. Please make sure that it has passed the CI checks.</li>
+<li class="">Please ensure that the test passing.</li>
+<li class="">Please don't resolve conversation.</li>
+</ul>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="merge">Merge<a href="#merge" class="hash-link" aria-label="Direct link to Merge" title="Direct link to Merge" translate="no"></a></h3>
+<ul>
+<li class="">A committer of project checks if the contribution fulfills the requirements and merges the code to the codebase.</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="contribution-code">Contribution Code<a href="#contribution-code" class="hash-link" aria-label="Direct link to Contribution Code" title="Direct link to Contribution Code" translate="no"></a></h2>
+<p>All improvements can be implemented through Pull Request (PR). Before submitting a Pull Request.
+Please refer to <a class="" href="/community/contribution/contribute-code">Code Contribution</a> for information on how to contribute code.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="contribution-of-test-cases">Contribution of Test Cases<a href="#contribution-of-test-cases" class="hash-link" aria-label="Direct link to Contribution of Test Cases" title="Direct link to Contribution of Test Cases" translate="no"></a></h2>
+<p>Any contribution of test cases is encouraged, especially unit tests. It is recommended to create <code>XXXTest.java</code> files in the corresponding module's <code>test</code> directory, preferably using the <code>JUnit5</code> framework.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="contribution-document">Contribution Document<a href="#contribution-document" class="hash-link" aria-label="Direct link to Contribution Document" title="Direct link to Contribution Document" translate="no"></a></h2>
+<p>Documentation is an important component of the project official website and serves as a vital bridge between the project and the community. Please refer to <a class="" href="/community/contribution/contribute-doc">Docs Contribution</a> for information on how to contribute document.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="other-ways-to-contribute">Other Ways to Contribute<a href="#other-ways-to-contribute" class="hash-link" aria-label="Direct link to Other Ways to Contribute" title="Direct link to Other Ways to Contribute" translate="no"></a></h2>
+<p>Apart from directly contributing code, the following ways are also valuable support for Apache Fesod (Incubating):</p>
+<ul>
+<li class="">Answering other users' questions.</li>
+<li class="">Assisting in reviewing others' PRs.</li>
+<li class="">Providing improvement suggestions.</li>
+<li class="">Writing technical blogs to promote Apache Fesod (Incubating).</li>
+<li class="">Sharing project-related knowledge in the community.</li>
+</ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_YM8j"><a href="https://github.com/apache/fesod/edit/main/website/community/contribution.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_hRvp" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/community/feedback/index.html b/community/feedback/index.html
new file mode 100644
index 00000000..d306c55c
--- /dev/null
+++ b/community/feedback/index.html
@@ -0,0 +1,68 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-community docs-version-current docs-doc-page docs-doc-id-feedback" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Feedback | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/community/feedback">< [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="before-submitting">Before Submitting<a href="#before-submitting" class="hash-link" aria-label="Direct link to Before Submitting" title="Direct link to Before Submitting" translate="no"></a></h2>
+<p>Before creating a new issue, please ensure you have completed the following preparatory steps. This will help avoid duplicate work and save both your time and the maintainers' time.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="read-the-documentation">Read the Documentation<a href="#read-the-documentation" class="hash-link" aria-label="Direct link to Read the Documentation" title="Direct link to Read the Documentation" translate="no"></a></h3>
+<ul>
+<li class="">Please read the <code>README</code> file and the official documentation in the project to see if there are any solutions to the problems mentioned.</li>
+</ul>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="search-existing-issues">Search Existing Issues<a href="#search-existing-issues" class="hash-link" aria-label="Direct link to Search Existing Issues" title="Direct link to Search Existing Issues" translate="no"></a></h3>
+<ul>
+<li class="">Visit the <a href="https://github.com/apache/fesod/issues" target="_blank" rel="noopener noreferrer" class="">Issue List</a> and search for keywords.</li>
+<li class="">If you find a similar issue, please <strong>comment and provide additional details</strong> under that issue instead of creating a new one.</li>
+<li class="">If an unresolved issue is closed for some reason, please <strong>comment and provide additional details</strong> to reopen it.</li>
+</ul>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="update-to-the-latest-version">Update to the latest version<a href="#update-to-the-latest-version" class="hash-link" aria-label="Direct link to Update to the latest version" title="Direct link to Update to the latest version" translate="no"></a></h3>
+<p>Please make sure you are using the latest stable version of the project or the latest code from the main branch. Many issues have been resolved in newer versions.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="creating-a-new-issue">Creating a New Issue<a href="#creating-a-new-issue" class="hash-link" aria-label="Direct link to Creating a New Issue" title="Direct link to Creating a New Issue" translate="no"></a></h2>
+<p>If you confirm that your issue has not been reported, please submit a new issue through the <a href="https://github.com/apache/fesod/issues/new/choose" target="_blank" rel="noopener noreferrer" class="">NEW ISSUE</a> page.</p>
+<p><strong>Please use the issue template</strong> and provide as much information as possible, such as:</p>
+<ul>
+<li class="">Environment information (operating system, version used, etc.).</li>
+<li class="">Steps to reproduce the issue.</li>
+<li class="">Error logs or screenshots.</li>
+<li class="">Provide a minimal reproducible example.</li>
+</ul>
+<p>The following situations are appropriate for submitting a new issue:</p>
+<ul>
+<li class="">Bug reports</li>
+<li class="">New feature</li>
+<li class="">Performance issues</li>
+<li class="">Function proposals or design suggestions</li>
+<li class="">Documentation improvements</li>
+<li class="">Optimization of test coverage</li>
+<li class="">Need for technical support</li>
+<li class="">Other issues related to the project</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="notes">Notes<a href="#notes" class="hash-link" aria-label="Direct link to Notes" title="Direct link to Notes" translate="no"></a></h2>
+<ul>
+<li class="">The title of the issue should be clear and concise, written in <strong>English</strong>, and should be no longer than 50 characters.</li>
+<li class="">Please use polite language in the issue description and content.</li>
+<li class="">Each issue should focus on a single topic, please do not combine multiple issues into one.</li>
+<li class="">Unless a specific developer has been explicitly assigned to the issue in advance, please do not arbitrarily assign it to a particular developer.</li>
+<li class="">Do not include sensitive information such as passwords, keys, server addresses, or private data in the issue.</li>
+</ul>
+<p>Thank you for contributing to the improvement of the project! Every feedback you provide is the driving force behind our progress.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_YM8j"><a href="https://github.com/apache/fesod/edit/main/website/community/feedback.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewB [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/community/index.html b/community/index.html
new file mode 100644
index 00000000..88f33053
--- /dev/null
+++ b/community/index.html
@@ -0,0 +1,87 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-community docs-version-current docs-doc-page docs-doc-id-index" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Join Community | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/community/"><me [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="initial-contact">Initial contact<a href="#initial-contact" class="hash-link" aria-label="Direct link to Initial contact" title="Direct link to Initial contact" translate="no"></a></h2>
+<p>For the first time in Apache Fesod (Incubating) community, you can:</p>
+<ul>
+<li class="">Use our project and provide feedback.</li>
+<li class="">Provide us with the use-cases.</li>
+<li class="">Report bugs and submit patches.</li>
+<li class="">Contribute code, documentation.</li>
+<li class="">Subscribe to our mailing list.</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="mailing-list">Mailing list<a href="#mailing-list" class="hash-link" aria-label="Direct link to Mailing list" title="Direct link to Mailing list" translate="no"></a></h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Name</th><th>Desc</th><th>Subscribe</th><th>Unsubscribe</th><th>Post</th><th>Archive</th></tr></thead><tbody><tr><td><a href="mailto:dev@fesod.apache.org" target="_blank" rel="noopener noreferrer" class="">dev@fesod.apache.org</a></td><td>Development related discussions</td><td><a href="mailto:dev-subscribe@fesod.apache.org" target="_blank" rel="noopener noreferrer" class="">Subscribe</a></td><td><a href="mailto:dev-unsubscribe@fesod.apache.org" target="_blank" rel= [...]
+<p>Please make sure you are subscribed to the mailing list you are posting to!</p>
+<p>If you are not subscribed to the mailing list, your message will either be rejected or you won't receive the response.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="how-to-subscribe-to-a-mailing-list">How to subscribe to a mailing list<a href="#how-to-subscribe-to-a-mailing-list" class="hash-link" aria-label="Direct link to How to subscribe to a mailing list" title="Direct link to How to subscribe to a mailing list" translate="no"></a></h3>
+<p>Before you can post a message to a mailing list, you need to subscribe to the list first.</p>
+<ol>
+<li class="">Send an email without any contents or subject to <code>listname-subscribe@fesod.apache.org</code>. (replace listname with dev or commits)</li>
+<li class="">Wait till you receive an email with the subject <code>confirm subscribe to listname@fesod.apache.org</code>. Reply to that email, without editing the subject or including any contents.</li>
+<li class="">Wait till you receive an email with the subject <code>WELCOME to listname@fesod.apache.org</code>.</li>
+</ol>
+<p>If you email us with a code snippet, make sure that:</p>
+<ul>
+<li class="">you do not link to files in external services as such files can change, get deleted or the link might break and thus make an archived email thread useless</li>
+<li class="">you paste text instead of screenshots of text</li>
+<li class="">you keep formatting when pasting code to keep the code readable</li>
+<li class="">there are enough import statements to avoid ambiguities</li>
+</ul>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="post-plain-text-mails">Post Plain Text Mails<a href="#post-plain-text-mails" class="hash-link" aria-label="Direct link to Post Plain Text Mails" title="Direct link to Post Plain Text Mails" translate="no"></a></h3>
+<p>When posting to the mailing lists, please use plain text emails. <strong>Do not use HTML emails</strong>. HTML emails are more likely to be targeted as spam mails and rejected. It may get malformed through different mail clients and not easily readable by others.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="issues">Issues<a href="#issues" class="hash-link" aria-label="Direct link to Issues" title="Direct link to Issues" translate="no"></a></h2>
+<p>All issues will be tracked and handled through <a href="https://github.com/apache/fesod/issues" target="_blank" rel="noopener noreferrer" class="">GitHub Issues</a>.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="discussions">Discussions<a href="#discussions" class="hash-link" aria-label="Direct link to Discussions" title="Direct link to Discussions" translate="no"></a></h2>
+<p>For development discussions and user exchanges, please use <a href="https://github.com/apache/fesod/discussions" target="_blank" rel="noopener noreferrer" class="">GitHub Discussions</a>.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_YM8j"><a href="https://github.com/apache/fesod/edit/main/website/community/index.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page" [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/community/maturity/index.html b/community/maturity/index.html
new file mode 100644
index 00000000..9585bb72
--- /dev/null
+++ b/community/maturity/index.html
@@ -0,0 +1,317 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-community docs-version-current docs-doc-page docs-doc-id-maturity" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Maturity | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/community/maturity">< [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>The goals of this maturity model are to describe how Apache projects operate in a concise and high-level way, and to provide a basic framework that projects may choose to use to evaluate themselves.</p>
+<p>More details can be found <a href="https://community.apache.org/apache-way/apache-project-maturity-model.html" target="_blank" rel="noopener noreferrer" class="">Apache Project Maturity Model</a>.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="status-of-this-assessment">Status of this assessment<a href="#status-of-this-assessment" class="hash-link" aria-label="Direct link to Status of this assessment" title="Direct link to Status of this assessment" translate="no"></a></h2>
+<p>This assessment is evaluated during Fesod's Incubating.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="maturity-model-assessment">Maturity model assessment<a href="#maturity-model-assessment" class="hash-link" aria-label="Direct link to Maturity model assessment" title="Direct link to Maturity model assessment" translate="no"></a></h2>
+<p>The following table is filled according to the <a href="https://community.apache.org/apache-way/apache-project-maturity-model.html" target="_blank" rel="noopener noreferrer" class="">Apache Maturity Model</a>. Mentors and community members are welcome to comment and modify it.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code">Code<a href="#code" class="hash-link" aria-label="Direct link to Code" title="Direct link to Code" translate="no"></a></h3>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th><strong>ID</strong></th><th><strong>Description</strong></th><th><strong>Status</strong></th></tr></thead><tbody><tr><td><strong>CD10</strong></td><td>The project produces Open Source software for distribution to the public, at no charge.</td><td><strong>YES</strong> The project source code is licensed under the <code>Apache License 2.0</code>.</td></tr><tr><td><strong>CD20</strong></td><td>Anyone can easily discover and access the project's code.</td><td><stro [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="licenses-and-copyright">Licenses and Copyright<a href="#licenses-and-copyright" class="hash-link" aria-label="Direct link to Licenses and Copyright" title="Direct link to Licenses and Copyright" translate="no"></a></h3>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th><strong>ID</strong></th><th><strong>Description</strong></th><th><strong>Status</strong></th></tr></thead><tbody><tr><td><strong>LC10</strong></td><td>The Apache License, version 2.0, covers the released code.</td><td><strong>YES</strong> The <a href="https://github.com/apache/fesod/blob/main/LICENSE" target="_blank" rel="noopener noreferrer" class="">LICENSE</a> is in GitHub repository. And all source files are with APLv2 header, checked by <code>korandoru/hawkeye@ [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="releases">Releases<a href="#releases" class="hash-link" aria-label="Direct link to Releases" title="Direct link to Releases" translate="no"></a></h3>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th><strong>ID</strong></th><th><strong>Description</strong></th><th><strong>Status</strong></th></tr></thead><tbody><tr><td><strong>RE10</strong></td><td>Releases consist of source code, distributed using standard and open archive formats that are expected to stay readable in the long term.</td><td><strong>NO</strong> Source release is distributed via <a href="https://dist.apache.org/repos/dist/release/fesod/" target="_blank" rel="noopener noreferrer" class="">dist.apa [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="quality">Quality<a href="#quality" class="hash-link" aria-label="Direct link to Quality" title="Direct link to Quality" translate="no"></a></h3>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th><strong>ID</strong></th><th><strong>Description</strong></th><th><strong>Status</strong></th></tr></thead><tbody><tr><td><strong>QU10</strong></td><td>The project is open and honest about the quality of its code. Various levels of quality and maturity for various modules are natural and acceptable as long as they are clearly communicated.</td><td><strong>YES</strong> We encourage user to <a href="https://github.com/apache/fesod/issues" target="_blank" rel="noopener [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="community">Community<a href="#community" class="hash-link" aria-label="Direct link to Community" title="Direct link to Community" translate="no"></a></h3>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th><strong>ID</strong></th><th><strong>Description</strong></th><th><strong>Status</strong></th></tr></thead><tbody><tr><td><strong>CO10</strong></td><td>The project has a well-known homepage that points to all the information required to operate according to this maturity model.</td><td><strong>YES</strong> The <a href="https://fesod.apache.org/" target="_blank" rel="noopener noreferrer" class="">official website</a> includes all information user need to run Apache Fe [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="consensus-building">Consensus Building<a href="#consensus-building" class="hash-link" aria-label="Direct link to Consensus Building" title="Direct link to Consensus Building" translate="no"></a></h3>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th><strong>ID</strong></th><th><strong>Description</strong></th><th><strong>Status</strong></th></tr></thead><tbody><tr><td><strong>CS10</strong></td><td>The project maintains a public list of its contributors who have decision power. The project's PPMC (Project Management Committee) consists of those contributors.</td><td><strong>Yes</strong> See <a href="https://fesod.apache.org/team" target="_blank" rel="noopener noreferrer" class="">members</a> with all PPMC m [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="independence">Independence<a href="#independence" class="hash-link" aria-label="Direct link to Independence" title="Direct link to Independence" translate="no"></a></h3>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th><strong>ID</strong></th><th><strong>Description</strong></th><th><strong>Status</strong></th></tr></thead><tbody><tr><td><strong>IN10</strong></td><td>The project is independent from any corporate or organizational influence.</td><td><strong>YES</strong> The PPMC members and committer of Apache Fesod (Incubating) are from several different companies, and majority of them are NOT From the company that donated this project.</td></tr><tr><td><strong>IN20</strong></td> [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="trademark-and-branding">Trademark and Branding<a href="#trademark-and-branding" class="hash-link" aria-label="Direct link to Trademark and Branding" title="Direct link to Trademark and Branding" translate="no"></a></h3>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th><strong>ID</strong></th><th><strong>Description</strong></th><th><strong>Status</strong></th></tr></thead><tbody><tr><td><strong>TB10</strong></td><td>The project uses "Apache Fesod™" as the project and software product name consistently, with appropriate trademark attributions.</td><td><strong>YES</strong> The project uses appropriately the trademark symbol.</td></tr><tr><td><strong>IB20</strong></td><td>The project's primary homepage is at projectn [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/community/pmc/become-pmc-member/index.html b/community/pmc/become-pmc-member/index.html
new file mode 100644
index 00000000..dd1da33e
--- /dev/null
+++ b/community/pmc/become-pmc-member/index.html
@@ -0,0 +1,54 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-community docs-version-current docs-doc-page docs-doc-id-pmc/become-pmc-member" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Become A PPMC member | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/community [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<ul>
+<li class=""><strong>(Co)mmunity</strong> - You can join us via our mailing list, issue trackers, discussions page to interact with community members, and share vision and knowledge</li>
+<li class=""><strong>(P)roject</strong> - a clear vision and consensus are needed</li>
+<li class=""><strong>(Do)cumentation</strong> - without it, the stuff remains only in the minds of the authors</li>
+<li class=""><strong>(C)ode</strong> - discussion goes nowhere without code</li>
+</ul>
+<p>Apache Fesod (Incubating) community strives to be meritocratic. Thus, once someone has contributed sufficiently to any area of CoPDoC they can be a candidate for PPMC membership and at last voted in as an Apache Fesod (Incubating)
+PMC member. Being an Apache Fesod (Incubating) PPMC member does not necessarily mean you must commit code with your commit privilege to the codebase; it means you are committed to the Apache Fesod (Incubating) project and are productively contributing to our community's success.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="ppmc-member-requirements">PPMC member requirements<a href="#ppmc-member-requirements" class="hash-link" aria-label="Direct link to PPMC member requirements" title="Direct link to PPMC member requirements" translate="no"></a></h2>
+<p>There are no strict rules for becoming a committer or PPMC member.Candidates for new PPMC member are typically people that are active contributors and community members. Anyway, if the rules can be clarified a little bit, it can somehow clear the doubts in the minds of contributors and make the community more transparent, reasonable, and fair.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="continuous-contributions">Continuous contributions<a href="#continuous-contributions" class="hash-link" aria-label="Direct link to Continuous contributions" title="Direct link to Continuous contributions" translate="no"></a></h3>
+<p>PPMC member candidates should have a decent amount of continuous engagements and contributions (fixing bugs, adding new features, writing documentation, maintaining issues boards, code review, or answering community questions) to the Apache Fesod (Incubating).</p>
+<ul>
+<li class="">12+ months with activity and engagement.</li>
+</ul>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="quality-of-contributions">Quality of contributions<a href="#quality-of-contributions" class="hash-link" aria-label="Direct link to Quality of contributions" title="Direct link to Quality of contributions" translate="no"></a></h3>
+<ul>
+<li class="">A solid general understanding of the project</li>
+<li class="">Well tested, well-designed, following Apache Fesod coding standards, and simple patches.</li>
+<li class="">Well-organized and detailed user-oriented documentation.</li>
+</ul>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="community-involvement">Community involvement<a href="#community-involvement" class="hash-link" aria-label="Direct link to Community involvement" title="Direct link to Community involvement" translate="no"></a></h3>
+<ul>
+<li class="">Be active, courteous, and respectful on the dev mailing list and help mentor newer contributors and users.</li>
+<li class="">Be active, courteous, and respectful on the issue tracker for project maintenance</li>
+<li class="">Be active, courteous, and respectful for pull requests reviewing</li>
+<li class="">Be involved in the design road map discussions with a professional and diplomatic approach even if there is a disagreement</li>
+<li class="">Promoting the project by writing articles or holding events</li>
+</ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_YM8j"><a href="https://github.com/apache/fesod/edit/main/website/community/pmc/become-pmc-member.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_hRvp" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/community/pmc/nominate-committer/index.html b/community/pmc/nominate-committer/index.html
new file mode 100644
index 00000000..bf729686
--- /dev/null
+++ b/community/pmc/nominate-committer/index.html
@@ -0,0 +1,88 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-community docs-version-current docs-doc-page docs-doc-id-pmc/nominate-committer" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Nominate Committer | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/community/p [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="template">Template<a href="#template" class="hash-link" aria-label="Direct link to Template" title="Direct link to Template" translate="no"></a></h2>
+<p>Note that, there are three placeholder in template should be replaced before using</p>
+<ul>
+<li class="">CANDIDATE_NAME: The full name of the candidate.</li>
+<li class="">CANDIDATE_GITHUB_ID: The GitHub id of the candidate.</li>
+<li class="">NOMINATOR: The GitHub id of the candidate.</li>
+</ul>
+<div class="theme-admonition theme-admonition-note admonition_d7Mn alert alert--secondary"><div class="admonitionHeading_hRSR"><span class="admonitionIcon_S_uO"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.6 [...]
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="discuss">Discuss<a href="#discuss" class="hash-link" aria-label="Direct link to Discuss" title="Direct link to Discuss" translate="no"></a></h2>
+<p>If any PPMC member recognize someone has met our requirements and can be the potential committer, please start a
+discussion about the candidate via sending email to: <a href="mailto:private@fesod.apache.org" target="_blank" rel="noopener noreferrer" class="">private@fesod.apache.org</a>:</p>
+<p>Title:</p>
+<div class="language-text codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-text codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain">[DISCUSS] New committer: [CANDIDATE_NAME]</span><br></span></code></pre></div></div>
+<p>Content:</p>
+<div class="language-text codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-text codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain">Hi all,</span><br></span><span class="token-line" style="color:#393A34"><span class="token [...]
+<p>The discussion will last at least <strong>one week</strong>.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="start-a-vote">Start a vote<a href="#start-a-vote" class="hash-link" aria-label="Direct link to Start a vote" title="Direct link to Start a vote" translate="no"></a></h2>
+<p>If the proposed candidate seems to be received positively by a majority of those responding, please start a vote about
+the candidate via sending email to: <a href="mailto:private@fesod.apache.org" target="_blank" rel="noopener noreferrer" class="">private@fesod.apache.org</a>:</p>
+<p>Title:</p>
+<div class="language-text codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-text codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain">[VOTE] Add candidate ${CANDIDATE_NAME} as a new committer</span><br></span></code></pre></d [...]
+<p>Content:</p>
+<div class="language-text codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-text codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain">Hi all,</span><br></span><span class="token-line" style="color:#393A34"><span class="token [...]
+<p>Let the Vote thread run for <strong>one week</strong>.</p>
+<p>Note that, Voting ends one week from today, i.e.:</p>
+<ul>
+<li class=""><a href="https://www.timeanddate.com/counters/customcounter.html?year=YYYY&month=MM&day=DD" target="_blank" rel="noopener noreferrer" class="">midnight UTC on YYYY-MM-DD</a></li>
+<li class=""><a href="https://community.apache.org/newcommitter.html" target="_blank" rel="noopener noreferrer" class="">Apache Voting Guidelines</a></li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="close-vote">Close Vote<a href="#close-vote" class="hash-link" aria-label="Direct link to Close Vote" title="Direct link to Close Vote" translate="no"></a></h2>
+<p>After <strong>at least 3 +1 binding vote</strong> and <strong>no veto</strong>, claim the vote result:</p>
+<p>Title:</p>
+<div class="language-text codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-text codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain">[RESULT] [VOTE] Add candidate ${CANDIDATE_NAME} as a new committer</span><br></span></code> [...]
+<p>Content:</p>
+<div class="language-text codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-text codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain">Hi all,</span><br></span><span class="token-line" style="color:#393A34"><span class="token [...]
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="send-invitation-to-the-candidate">Send invitation to the candidate<a href="#send-invitation-to-the-candidate" class="hash-link" aria-label="Direct link to Send invitation to the candidate" title="Direct link to Send invitation to the candidate" translate="no"></a></h2>
+<p>If the vote result is positive, send an invitation to the candidate and cc <a href="mailto:private@fesod.apache.org" target="_blank" rel="noopener noreferrer" class="">private@fesod.apache.org</a>:</p>
+<p>Title:</p>
+<div class="language-text codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-text codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain">Invitation to become Apache Fesod (Incubating) Committer: ${CANDIDATE_NAME}</span><br></spa [...]
+<p>Content:</p>
+<div class="language-text codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-text codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain">Hello ${CANDIDATE_NAME},</span><br></span><span class="token-line" style="color:#393A34"><s [...]
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="the-candidate-accepts-the-invitation">The candidate accepts the invitation<a href="#the-candidate-accepts-the-invitation" class="hash-link" aria-label="Direct link to The candidate accepts the invitation" title="Direct link to The candidate accepts the invitation" translate="no"></a></h2>
+<p>If the invitation is accepted, the candidate will receive an email from the ASF.</p>
+<p>Title:</p>
+<div class="language-text codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-text codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain">Invitation to become Apache Fesod (Incubating) Committer: ${CANDIDATE_NAME}</span><br></spa [...]
+<p>Content:</p>
+<div class="language-text codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-text codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain">Welcome. Here are the next steps in becoming a project committer. After that</span><br></sp [...]
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="add-the-candidate-to-the-committer-list">Add the candidate to the committer list<a href="#add-the-candidate-to-the-committer-list" class="hash-link" aria-label="Direct link to Add the candidate to the committer list" title="Direct link to Add the candidate to the committer list" translate="no"></a></h2>
+<p>After the candidate accepts the invitation and the iCLA is recorded, add the candidate to the committer list
+by <a href="https://whimsy.apache.org/roster/committee/fesod" target="_blank" rel="noopener noreferrer" class="">whimsy roster tools</a></p>
+<p><img decoding="async" loading="lazy" alt="Roster" src="/assets/images/roster-add-committer-20873b578f8c3b1853cd24d52171ca44.png" width="461" height="146" class="img_VXcA"></p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="welcome-the-new-committer">Welcome the new committer<a href="#welcome-the-new-committer" class="hash-link" aria-label="Direct link to Welcome the new committer" title="Direct link to Welcome the new committer" translate="no"></a></h2>
+<p>Send a welcome email to the new committer.</p>
+<p>Title:</p>
+<div class="language-text codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-text codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain">Welcome, ${CANDIDATE_NAME}, New Committer!</span><br></span></code></pre></div></div>
+<p>Content:</p>
+<div class="language-text codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-text codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain">Hello, ${CANDIDATE_NAME},</span><br></span><span class="token-line" style="color:#393A34">< [...]
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="announcement">Announcement<a href="#announcement" class="hash-link" aria-label="Direct link to Announcement" title="Direct link to Announcement" translate="no"></a></h2>
+<p>Announcing the new committer in the <a href="mailto:dev@fesod.apache.org" target="_blank" rel="noopener noreferrer" class="">dev@fesod.apache.org</a> mailing list.</p>
+<p>Title:</p>
+<div class="language-text codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-text codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain">[ANNOUNCEMENT] New committer: ${CANDIDATE_NAME}</span><br></span></code></pre></div></div>
+<p>Content:</p>
+<div class="language-text codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-text codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain">The Podling Project Management Committee (PPMC) for Apache Fesod (Incubating)</span><br></s [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/community/pmc/onboarding/index.html b/community/pmc/onboarding/index.html
new file mode 100644
index 00000000..08a1f95a
--- /dev/null
+++ b/community/pmc/onboarding/index.html
@@ -0,0 +1,42 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-community docs-version-current docs-doc-page docs-doc-id-pmc/onboarding" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Onboarding | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/community/pmc/onboa [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>Upon receiving an invitation email from Apache Fesod (Incubating) PPMC, a new PPMC member should consider whether accepting.
+If they decide in favor, they should select <strong>"Reply All"</strong> and express their decision.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="subscribe-to-private-mailing-list">Subscribe to Private Mailing List<a href="#subscribe-to-private-mailing-list" class="hash-link" aria-label="Direct link to Subscribe to Private Mailing List" title="Direct link to Subscribe to Private Mailing List" translate="no"></a></h2>
+<ul>
+<li class="">Send email to <a href="mailto:private-subscribe@fesod.apache.org" target="_blank" rel="noopener noreferrer" class="">private-subscribe@fesod.apache.org</a></li>
+<li class="">You will receive an email with the subject <code>confirm subscribe to private@fesod.apache.org</code></li>
+<li class="">Reply to the email with "Confirm" in the body</li>
+</ul>
+<p>If you receive an email with the subject <code>WELCOME to private@fesod.apache.org</code>, you have successfully subscribed to the private mailing list.</p>
+<p>It's required for PPMC members to subscribe the private mailing list. The private list is only for confidential discussions that should not be made public, such as the suitability of a particular individual to become a committer or a member of the PPMC.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="dont-mix-private-and-public-lists-in-posts">Don’t mix private and public lists in posts<a href="#dont-mix-private-and-public-lists-in-posts" class="hash-link" aria-label="Direct link to Don’t mix private and public lists in posts" title="Direct link to Don’t mix private and public lists in posts" translate="no"></a></h3>
+<ul>
+<li class="">Don’t post to both the dev and private lists. Each member of the PPMC should be on the dev list, so posting to dev is sufficient.</li>
+<li class="">Likewise, don’t post to both the Incubator general and Incubator private lists. Each member of the IPMC is on the Incubator general list, so posting to the general list is sufficient.</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="read-ppmc-member-guide">Read PPMC Member Guide<a href="#read-ppmc-member-guide" class="hash-link" aria-label="Direct link to Read PPMC Member Guide" title="Direct link to Read PPMC Member Guide" translate="no"></a></h2>
+<p>Please read <a href="https://incubator.apache.org/guides/ppmc.html" target="_blank" rel="noopener noreferrer" class="">PPMC GUIDE</a> to know about the general responsibilities of Project Management Committee (PMC) members in managing our project and common how-to procedures for day to day maintenance.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_YM8j"><a href="https://github.com/apach [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/community/release/release-version/index.html b/community/release/release-version/index.html
new file mode 100644
index 00000000..1797038e
--- /dev/null
+++ b/community/release/release-version/index.html
@@ -0,0 +1,130 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-community docs-version-current docs-doc-page docs-doc-id-release/release-version" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">How to Release | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/community/relea [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="11-apache-release-documentation">1.1 Apache Release Documentation<a href="#11-apache-release-documentation" class="hash-link" aria-label="Direct link to 1.1 Apache Release Documentation" title="Direct link to 1.1 Apache Release Documentation" translate="no"></a></h2>
+<p>Refer to the following links to understand the ASF release process:</p>
+<ul>
+<li class=""><a href="http://www.apache.org/dev/release-publishing" target="_blank" rel="noopener noreferrer" class="">Apache Release Guide</a></li>
+<li class=""><a href="http://www.apache.org/dev/release.html" target="_blank" rel="noopener noreferrer" class="">Apache Release Policy</a></li>
+<li class=""><a href="http://www.apache.org/dev/publishing-maven-artifacts.html" target="_blank" rel="noopener noreferrer" class="">Maven Release Info</a></li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="12-pgp-signing">1.2 PGP Signing<a href="#12-pgp-signing" class="hash-link" aria-label="Direct link to 1.2 PGP Signing" title="Direct link to 1.2 PGP Signing" translate="no"></a></h2>
+<p>Follow the Apache Release Guide to sign the release version. Users can also use this signature to verify that the downloaded version has not been tampered with.</p>
+<p>Create a <code>pgp</code> key for release signing, using <strong><your Apache ID>@apache.org</strong> as the key USER-ID.</p>
+<p>For details, refer to <a href="https://infra.apache.org/release-signing" target="_blank" rel="noopener noreferrer" class="">Apache Releases Signing documentation</a> and <a href="http://www.apache.org/dev/openpgp.html" target="_blank" rel="noopener noreferrer" class="">Cryptography with OpenPGP</a>.</p>
+<p>Brief process for generating a key:</p>
+<ul>
+<li class="">
+<p>Generate a new <code>gpg</code> key using <code>gpg --full-gen-key</code>, setting the key length to 4096.</p>
+<p>Note: You can set it to never expire, or set an expiration date based on your needs. However, if it expires, you must update the public key in the <a href="https://dist.apache.org/repos/dist/dev/incubator/fesod/KEYS" target="_blank" rel="noopener noreferrer" class="">DEV KEYS file</a> and <a href="https://dist.apache.org/repos/dist/release/incubator/fesod/KEYS" target="_blank" rel="noopener noreferrer" class="">RELEASE KEYS file</a>.</p>
+</li>
+<li class="">
+<p>Upload the key to the public key server using <code>gpg --keyserver keys.openpgp.org --send-key <your key id></code>.</p>
+</li>
+</ul>
+<p>Note: If the server is inaccessible, you can upload the public key online via <a href="https://keyserver.ubuntu.com/" target="_blank" rel="noopener noreferrer" class="">OpenPGP Keyserver (ubuntu.com)</a>.</p>
+<div class="language-bash codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-bash codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># Use this command to find the keyid, e.g.: gpg - [...]
+<p>Convert the generated public and private keys to ASCII format:</p>
+<div class="language-bash codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-bash codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain">gpg </span><span class="token parameter variable" style="color:#36acaa">--armor</span><span [...]
+<p>View the key list:</p>
+<div class="language-bash codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-bash codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token punctuation" style="color:#393A34">[</span><span class="token plain">root@localhost ~</span><span [...]
+<p>Upload the public key to the public key server:</p>
+<div class="language-bash codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-bash codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token punctuation" style="color:#393A34">[</span><span class="token plain">root@localhost gpgtest</span> [...]
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="13-pom-configuration">1.3 POM Configuration<a href="#13-pom-configuration" class="hash-link" aria-label="Direct link to 1.3 POM Configuration" title="Direct link to 1.3 POM Configuration" translate="no"></a></h2>
+<p>Configure the POM file to deploy the version to the ASF Nexus repository.</p>
+<p>① Add Apache POM inheritance default settings:</p>
+<div class="language-xml codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-xml codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34"><</span><span class="token tag" style="color:#00009f">pare [...]
+<p>② Add key information to the Maven configuration file <code>settings.xml</code>:</p>
+<div class="language-xml codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-xml codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34"><</span><span class="token tag" style="color:#00009f">sett [...]
+<p><strong>Tips:</strong> It is recommended to use <a href="http://maven.apache.org/guides/mini/guide-encryption.html" target="_blank" rel="noopener noreferrer" class="">Maven's password encryption capabilities</a> to encrypt <code>gpg.passphrase</code>.</p>
+<h1>2. Release Process</h1>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="21-prepare-branch">2.1 Prepare Branch<a href="#21-prepare-branch" class="hash-link" aria-label="Direct link to 2.1 Prepare Branch" title="Direct link to 2.1 Prepare Branch" translate="no"></a></h2>
+<p>Create a new release branch from the main branch. For example, if you want to release version <code>${release_version}</code>, create a new branch <code>${release_version}</code> from the development branch. All modifications involving Release Candidates and tagging for <code>${release_version}</code> will be done on this branch. Ensure that all GitHub Actions CI checks pass on this branch. Finally, merge it back into the main branch after the release is complete.</p>
+<p>Example: If the Java SDK needs to release version <code>2.2.0-incubating</code>, create a new branch <code>release-2.2.0-incubating</code> from the <code>main</code> branch, and submit a commit on this branch replacing the Snapshot version number with the <code>2.2.0-incubating</code> version number.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="22-prepare-binary-and-source-packages">2.2 Prepare Binary and Source Packages<a href="#22-prepare-binary-and-source-packages" class="hash-link" aria-label="Direct link to 2.2 Prepare Binary and Source Packages" title="Direct link to 2.2 Prepare Binary and Source Packages" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="221-prepare-the-sdk-release-according-to-publishing-maven-artifacts-4-instructions">2.2.1 Prepare the SDK release according to <a href="https://infra.apache.org/publishing-maven-artifacts.html" target="_blank" rel="noopener noreferrer" class="">publishing maven artifacts</a> [4] instructions<a href="#221-prepare-the-sdk-release-according-to-publishing-maven-artifacts-4-instructions" class="hash-link" aria-label="Direct link to 221-prep [...]
+<div class="language-bash codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-bash codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain">mvn clean deploy -Papache-release </span><span class="token parameter variable" style="colo [...]
+<p>At this point, the Fesod SDK is published to the <a href="https://repository.apache.org/#stagingRepositories" target="_blank" rel="noopener noreferrer" class="">Staging Repository</a> (requires Apache account login). Find the released version (i.e., <code>${STAGING.RELEASE}</code>) and click <strong>Close</strong>.</p>
+<p>Note: If the close operation fails, it is likely because the public key corresponding to the signing key cannot be found on keys.openpgp.org. Please check via <a href="https://keyserver.ubuntu.com/" target="_blank" rel="noopener noreferrer" class="">OpenPGP Keyserver (ubuntu.com)</a>.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="222-package-source">2.2.2 Package Source<a href="#222-package-source" class="hash-link" aria-label="Direct link to 2.2.2 Package Source" title="Direct link to 2.2.2 Package Source" translate="no"></a></h3>
+<div class="theme-admonition theme-admonition-caution admonition_d7Mn alert alert--warning"><div class="admonitionHeading_hRSR"><span class="admonitionIcon_S_uO"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>Note</div [...]
+<blockquote>
+<p>Local files such as <code>node_modules</code>, IDE configurations (e.g., <code>.idea</code>, <code>.vscode</code>), or leftover empty directories from refactoring can accidentally be packaged into the <code>source-release.zip</code>. This will cause compliance issues (e.g., distributing unauthorized binaries) and lead to vote failures.</p>
+</blockquote>
+<p>You <strong>MUST</strong> perform the release process in a <strong>fresh git clone</strong> to ensure the artifacts are reproducible and clean.</p>
+<p><strong>Note</strong>: Do not open this directory with an IDE (like IntelliJ or VS Code) immediately, as it may generate configuration files or compilation caches. Run the Maven release commands directly from the terminal first.</p>
+<p>First, confirm that the current codebase is ready for release.</p>
+<div class="language-bash codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-bash codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># 1. Switch to the main branch and update</span>< [...]
+<p>Use <code>git archive</code> to ensure the source package is clean (excludes the .git directory or other ignored files).</p>
+<div class="language-bash codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-bash codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># 1. Export the source package</span><span class= [...]
+<blockquote>
+<p><strong>Note</strong>: The hash <code>e7546d11...</code> here corresponds to the commit hash of tag <code>2.0.0-incubating-rc1</code>.</p>
+</blockquote>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="223-sign-and-hash">2.2.3 Sign and Hash<a href="#223-sign-and-hash" class="hash-link" aria-label="Direct link to 2.2.3 Sign and Hash" title="Direct link to 2.2.3 Sign and Hash" translate="no"></a></h3>
+<p>Perform GPG signing and SHA512 calculation on the generated source package.</p>
+<div class="language-bash codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-bash codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># 1. GPG Signature (.asc)</span><span class="toke [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="224-upload-source-package-to-svn-upload-to-dist">2.2.4 Upload Source Package to SVN (Upload to Dist)<a href="#224-upload-source-package-to-svn-upload-to-dist" class="hash-link" aria-label="Direct link to 2.2.4 Upload Source Package to SVN (Upload to Dist)" title="Direct link to 2.2.4 Upload Source Package to SVN (Upload to Dist)" translate="no"></a></h3>
+<p>Upload the signed source package to the Apache development distribution area (<code>dist/dev</code>).</p>
+<div class="language-bash codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-bash codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># 1. Checkout SVN dev repository</span><span clas [...]
+<hr>
+<h1>3. Voting Phase</h1>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="31-internal-community-vote">3.1 Internal Community Vote<a href="#31-internal-community-vote" class="hash-link" aria-label="Direct link to 3.1 Internal Community Vote" title="Direct link to 3.1 Internal Community Vote" translate="no"></a></h2>
+<p><strong>The vote lasts for at least 72 hours and requires 3 +1 binding votes.</strong></p>
+<p>Send to:</p>
+<div class="language-mail codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-mail codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain">dev@fesod.apache.org</span><br></span><span class="token-line" style="color:#393A34"><span [...]
+<p>Subject:</p>
+<p><code>[VOTE]Release Apache Fesod (Incubating) x.x.x-RCN (RoundN)</code></p>
+<p>RC N and Round N: N represents the count, i.e., which round of voting for this version.</p>
+<p>Body:</p>
+<div class="language-text codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-text codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain">Hi Fesod Community,</span><br></span><span class="token-line" style="color:#393A34"><span c [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="312-complete-vote">3.1.2 Complete Vote<a href="#312-complete-vote" class="hash-link" aria-label="Direct link to 3.1.2 Complete Vote" title="Direct link to 3.1.2 Complete Vote" translate="no"></a></h3>
+<p>Publish the vote pass email.</p>
+<div class="language-text codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-text codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain">Hi Community,</span><br></span><span class="token-line" style="color:#393A34"><span class=" [...]
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="32-vote-in-incubator">3.2 Vote in Incubator<a href="#32-vote-in-incubator" class="hash-link" aria-label="Direct link to 3.2 Vote in Incubator" title="Direct link to 3.2 Vote in Incubator" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="321-vote-in-incubator">3.2.1 Vote in Incubator<a href="#321-vote-in-incubator" class="hash-link" aria-label="Direct link to 3.2.1 Vote in Incubator" title="Direct link to 3.2.1 Vote in Incubator" translate="no"></a></h3>
+<p>Similar to the community vote, but requires adding the community vote thread link to prove that consensus has been reached within the community.</p>
+<p>Send email to <code>general@incubator.apache.org</code></p>
+<p>Subject:</p>
+<p><code>[VOTE]Release Apache Fesod (Incubating) x.x.x-RCN</code></p>
+<p><strong>The vote lasts for at least 72 hours and requires 3 +1 binding votes.</strong></p>
+<div class="language-text codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-text codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain">Hello everyone,</span><br></span><span class="token-line" style="color:#393A34"><span class [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="322-announce-incubator-vote-result">3.2.2 Announce Incubator Vote Result<a href="#322-announce-incubator-vote-result" class="hash-link" aria-label="Direct link to 3.2.2 Announce Incubator Vote Result" title="Direct link to 3.2.2 Announce Incubator Vote Result" translate="no"></a></h3>
+<p>After 72 hours, if there are at least 3 passing votes and no opposing votes, send the result email referencing the following template.</p>
+<p>Send email to <code>general@incubator.apache.org</code></p>
+<p>Subject: <code>[RESULT][VOTE] Release Apache Fesod (incubating) x.x.x-RCN</code></p>
+<div class="language-text codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-text codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain">Hi Incubator PMC,</span><br></span><span class="token-line" style="color:#393A34"><span cla [...]
+<h1>4. Finalize Release</h1>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="41-release-version">4.1 Release Version<a href="#41-release-version" class="hash-link" aria-label="Direct link to 4.1 Release Version" title="Direct link to 4.1 Release Version" translate="no"></a></h2>
+<ol>
+<li class="">From the Apache Nexus repository, select the previously closed <strong>orgapachefesod-XXX</strong> and click the <code>Release</code> icon.</li>
+<li class="">Move the signature files, src, and bin from the dev path to the release path, referring to the following command:
+<code>svn mv https://dist.apache.org/repos/dist/dev/incubator/fesod/x.x.x-RCN https://dist.apache.org/repos/dist/release/incubator/fesod/x.x.x -m "Release Fesod X.X.X"</code></li>
+<li class="">Set the previous release note to "Set as the latest release" and submit.</li>
+<li class="">Update the x.x.x documentation on the Fesod official website, and add the corresponding download links for binary and source.</li>
+</ol>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="42-announcement">4.2 Announcement<a href="#42-announcement" class="hash-link" aria-label="Direct link to 4.2 Announcement" title="Direct link to 4.2 Announcement" translate="no"></a></h2>
+<p>Send email to <code>general@incubator.apache.org</code></p>
+<p>Subject: <code>[ANNOUNCE] Apache Fesod(Incubating) vx.x.x available</code></p>
+<div class="language-text codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-text codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain">Hi All,</span><br></span><span class="token-line" style="color:#393A34"><span class="token [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/community/release/verify-release/index.html b/community/release/verify-release/index.html
new file mode 100644
index 00000000..f98131c3
--- /dev/null
+++ b/community/release/verify-release/index.html
@@ -0,0 +1,109 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-community docs-version-current docs-doc-page docs-doc-id-release/verify-release" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">How to Verify Release | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/communit [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="1-download-the-release-candidate">1. Download the Release Candidate<a href="#1-download-the-release-candidate" class="hash-link" aria-label="Direct link to 1. Download the Release Candidate" title="Direct link to 1. Download the Release Candidate" translate="no"></a></h3>
+<blockquote>
+<p><strong>Prerequisite:</strong> Ensure you have <code>gpg</code> or <code>gpg2</code> installed.</p>
+</blockquote>
+<div class="theme-admonition theme-admonition-caution admonition_d7Mn alert alert--warning"><div class="admonitionHeading_hRSR"><span class="admonitionIcon_S_uO"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>Note</div [...]
+<p>Set environment variables for convenience (replace with actual versions):</p>
+<div class="language-shell codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-shell codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># Example: export RELEASE_VERSION=0.1.0</span>< [...]
+<p>Download the artifacts:</p>
+<div class="language-shell codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-shell codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># Option 1: SVN checkout (Recommended, includes [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="2-verify-compliance-and-integrity">2. Verify Compliance and Integrity<a href="#2-verify-compliance-and-integrity" class="hash-link" aria-label="Direct link to 2. Verify Compliance and Integrity" title="Direct link to 2. Verify Compliance and Integrity" translate="no"></a></h3>
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="21-check-package-completeness">2.1 Check Package Completeness<a href="#21-check-package-completeness" class="hash-link" aria-label="Direct link to 2.1 Check Package Completeness" title="Direct link to 2.1 Check Package Completeness" translate="no"></a></h4>
+<p>The uploaded artifacts must contain:</p>
+<ol>
+<li class=""><strong>Source Package</strong> (Required)</li>
+<li class=""><strong>Signature file</strong> (.asc, Required)</li>
+<li class=""><strong>Hash file</strong> (.sha512, Required)</li>
+</ol>
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="22-verify-gpg-signature">2.2 Verify GPG Signature<a href="#22-verify-gpg-signature" class="hash-link" aria-label="Direct link to 2.2 Verify GPG Signature" title="Direct link to 2.2 Verify GPG Signature" translate="no"></a></h4>
+<p><strong>2.2.1 Import KEYS</strong></p>
+<div class="language-shell codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-shell codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># Download KEYS</span><span class="token plain" [...]
+<p><strong>2.2.2 Trust the Public Key (Optional but Recommended)</strong></p>
+<div class="language-shell codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-shell codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># Find the Key ID used for this release</span>< [...]
+<p><strong>2.2.3 Verify the Signature</strong></p>
+<div class="language-shell codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-shell codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># Verify Source Package</span><span class="toke [...]
+<blockquote>
+<p><strong>Success Indicator:</strong> The output must include <strong><code>Good signature</code></strong>.</p>
+</blockquote>
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="23-verify-sha512-checksum">2.3 Verify SHA512 Checksum<a href="#23-verify-sha512-checksum" class="hash-link" aria-label="Direct link to 2.3 Verify SHA512 Checksum" title="Direct link to 2.3 Verify SHA512 Checksum" translate="no"></a></h4>
+<p><strong>Mac OS / Linux:</strong></p>
+<div class="language-shell codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-shell codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># Verify Source Package</span><span class="toke [...]
+<p><strong>Windows:</strong></p>
+<div class="language-shell codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-shell codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain">certUtil </span><span class="token parameter variable" style="color:#36acaa">-hashfile</s [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="3-check-source-package-content-crucial">3. Check Source Package Content (Crucial)<a href="#3-check-source-package-content-crucial" class="hash-link" aria-label="Direct link to 3. Check Source Package Content (Crucial)" title="Direct link to 3. Check Source Package Content (Crucial)" translate="no"></a></h3>
+<p>Extract the source package:</p>
+<div class="language-shell codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-shell codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">tar</span><span class="token plain"> </span><span class="token p [...]
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="31-incubator-specific-checks">3.1 Incubator Specific Checks<a href="#31-incubator-specific-checks" class="hash-link" aria-label="Direct link to 3.1 Incubator Specific Checks" title="Direct link to 3.1 Incubator Specific Checks" translate="no"></a></h4>
+<ul class="contains-task-list containsTaskList_tpzj">
+<li class="task-list-item"><input type="checkbox" disabled=""> <strong>DISCLAIMER:</strong> Ensure a <code>DISCLAIMER</code> (or <code>DISCLAIMER-WIP</code>) file exists in the root directory. This is mandatory for incubating projects.</li>
+</ul>
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="32-asf-license-header-check-rat">3.2 ASF License Header Check (RAT)<a href="#32-asf-license-header-check-rat" class="hash-link" aria-label="Direct link to 3.2 ASF License Header Check (RAT)" title="Direct link to 3.2 ASF License Header Check (RAT)" translate="no"></a></h4>
+<p>Run the Apache RAT (Release Audit Tool) check:</p>
+<div class="language-shell codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-shell codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># Run RAT check</span><span class="token plain" [...]
+<p><strong>Check the report (<code>target/rat.txt</code>):</strong></p>
+<ul>
+<li class=""><strong>Unapproved Licenses:</strong> Must be <strong>0</strong>.</li>
+<li class=""><strong>Binaries:</strong> Should be <strong>0</strong> (Source packages should not contain compiled jars/classes).</li>
+</ul>
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="33-compilation-verification">3.3 Compilation Verification<a href="#33-compilation-verification" class="hash-link" aria-label="Direct link to 3.3 Compilation Verification" title="Direct link to 3.3 Compilation Verification" translate="no"></a></h4>
+<p>Ensure the source code compiles successfully.</p>
+<div class="language-shell codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-shell codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># This may take time depending on network to do [...]
+<p><strong>Checklist:</strong></p>
+<ul class="contains-task-list containsTaskList_tpzj">
+<li class="task-list-item"><input type="checkbox" disabled=""> Build Success.</li>
+<li class="task-list-item"><input type="checkbox" disabled=""> No unexpected binary files in the source tree.</li>
+</ul>
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="34-license-and-notice">3.4 License and Notice<a href="#34-license-and-notice" class="hash-link" aria-label="Direct link to 3.4 License and Notice" title="Direct link to 3.4 License and Notice" translate="no"></a></h4>
+<p>Manually check the following files in the root directory:</p>
+<ul class="contains-task-list containsTaskList_tpzj">
+<li class="task-list-item"><input type="checkbox" disabled=""> <strong>LICENSE:</strong> Exists and contains the Apache License 2.0.</li>
+<li class="task-list-item"><input type="checkbox" disabled=""> <strong>NOTICE:</strong></li>
+<li class="">
+<ul>
+<li class="">Exists.</li>
+</ul>
+</li>
+<li class="">
+<ul>
+<li class="">Copyright year is current (e.g., includes 2025/2026).</li>
+</ul>
+</li>
+<li class="">
+<ul>
+<li class="">Contains required attributions for bundled dependencies (if any).</li>
+</ul>
+</li>
+<li class="task-list-item"><input type="checkbox" disabled=""> <strong>DISCLAIMER:</strong> Exists.</li>
+</ul>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="4-email-reply-templates">4. Email Reply Templates<a href="#4-email-reply-templates" class="hash-link" aria-label="Direct link to 4. Email Reply Templates" title="Direct link to 4. Email Reply Templates" translate="no"></a></h3>
+<p>After verification, reply to the vote thread on <code>dev@fesod.apache.org</code>.</p>
+<div class="theme-admonition theme-admonition-tip admonition_d7Mn alert alert--success"><div class="admonitionHeading_hRSR"><span class="admonitionIcon_S_uO"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.6 [...]
+<p><strong>Template for PPMC Members:</strong></p>
+<div class="language-text codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-text codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain">+1 (binding)</span><br></span><span class="token-line" style="color:#393A34"><span class="t [...]
+<p><strong>Template for Contributors (Non-PPMC):</strong></p>
+<div class="language-text codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-text codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain">+1 (non-binding)</span><br></span><span class="token-line" style="color:#393A34"><span clas [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/community/security/index.html b/community/security/index.html
new file mode 100644
index 00000000..d3c3cead
--- /dev/null
+++ b/community/security/index.html
@@ -0,0 +1,43 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-community docs-version-current docs-doc-page docs-doc-id-security" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Security | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/community/security">< [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>If you have any concerns regarding Apache Fesod (Incubating)’s security, or you discover a vulnerability or potential threat, please don’t hesitate to get in touch with the <a href="http://www.apache.org/security/" target="_blank" rel="noopener noreferrer" class="">Apache Security Team</a> by dropping an email at <a href="mailto:security@apache.org" target="_blank" rel="noopener noreferrer" class="">security@apache.org</a>.</p>
+<p>Please specify the project name as "Apache Fesod (Incubating)" in the email, and provide a description of the relevant problem or potential threat. You are also urged to recommend how to reproduce and replicate the issue.</p>
+<p>The Apache Security Team and the Apache Fesod (Incubating) community will get back to you after assessing and analyzing the findings.</p>
+<p><strong>Please note</strong> that the security issue should be reported on the security email first, before disclosing it on any public domain.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="advisories-for-dependencies">Advisories for Dependencies<a href="#advisories-for-dependencies" class="hash-link" aria-label="Direct link to Advisories for Dependencies" title="Direct link to Advisories for Dependencies" translate="no"></a></h2>
+<p>Many organizations employ security scanning tools to identify components with known security advisories. Although we strongly recommend these tools as they can alert users to potential risks, they often generate false positives. This occurs because a vulnerable dependency may not necessarily impact Apache Fesod (Incubating) if used in a non-exploitable manner.</p>
+<p>Therefore, advisories regarding Apache Fesod (Incubating)'s dependencies are not automatically considered critical. However, if additional analysis indicates that Apache Fesod (Incubating) might be affected by a dependency's vulnerability, please report your findings privately to <a href="mailto:security@apache.org" target="_blank" rel="noopener noreferrer" class="">security@apache.org</a>.</p>
+<p>If a dependency advisory is identified, please:</p>
+<ol>
+<li class="">Verify if our DependencyCheck suppressions contain relevant details.</li>
+<li class="">Check our issue tracker for discussions regarding this advisory.</li>
+<li class="">Conduct your own analysis to determine whether Apache Fesod (Incubating) is affected.
+<ul>
+<li class="">If affected, report your findings privately through <a href="mailto:security@apache.org" target="_blank" rel="noopener noreferrer" class="">security@apache.org</a>.</li>
+<li class="">If not affected, please contribute by updating the DependencyCheck suppression list, clearly documenting why Apache Fesod (Incubating) is not impacted.</li>
+</ul>
+</li>
+</ol></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_YM8j"><a href="https://github.com/apache/fesod/edit/main/website/community/security.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_hRvp" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/download/index.html b/docs/download/index.html
new file mode 100644
index 00000000..8a2a483c
--- /dev/null
+++ b/docs/download/index.html
@@ -0,0 +1,138 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-download" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Download | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/download"><meta [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+downloaded from the ASF distribution site. Binary artifacts are available through Maven Central.</p>
+<header><h1>How to Use Apache Fesod (Incubating)</h1></header>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="using-maven-central-recommended">Using Maven Central (Recommended)<a href="#using-maven-central-recommended" class="hash-link" aria-label="Direct link to Using Maven Central (Recommended)" title="Direct link to Using Maven Central (Recommended)" translate="no"></a></h2>
+<p>For most users, simply add the dependency to your project:</p>
+<div class="theme-admonition theme-admonition-tip admonition_d7Mn alert alert--success"><div class="admonitionHeading_hRSR"><span class="admonitionIcon_S_uO"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.6 [...]
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="available-modules">Available Modules<a href="#available-modules" class="hash-link" aria-label="Direct link to Available Modules" title="Direct link to Available Modules" translate="no"></a></h2>
+<ul>
+<li class=""><strong>fesod-sheet</strong> - Core module for Excel/CSV processing (recommended for most users)</li>
+<li class=""><strong>fesod-bom</strong> - Bill of Materials for dependency management</li>
+<li class=""><strong>fesod-common</strong> - Common utilities (automatically included with fesod-sheet)</li>
+<li class=""><strong>fesod-shaded</strong> - Shaded dependencies to avoid conflicts (automatically included with fesod-sheet)</li>
+</ul>
+<h1>Apache Source Releases</h1>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="the-latest-release">The Latest Release<a href="#the-latest-release" class="hash-link" aria-label="Direct link to The Latest Release" title="Direct link to The Latest Release" translate="no"></a></h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th style="text-align:center">Version</th><th style="text-align:center">Date</th><th style="text-align:center">Source Download</th><th style="text-align:center">Release Notes</th></tr></thead><tbody><tr><td style="text-align:center">2.0.1-incubating</td><td style="text-align:center">2026-02-11</td><td style="text-align:center"><a href="https://downloads.apache.org/incubator/fesod/2.0.1-incubating/" target="_blank" rel="noopener noreferrer" class="">Source</a> (<a href=" [...]
+<h1>Previous Releases (Non-Apache)</h1>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="all-archived-releases">All archived releases<a href="#all-archived-releases" class="hash-link" aria-label="Direct link to All archived releases" title="Direct link to All archived releases" translate="no"></a></h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th style="text-align:center">Version</th><th style="text-align:center">Date</th><th style="text-align:center">Download</th><th style="text-align:center">Release notes</th></tr></thead><tbody><tr><td style="text-align:center">1.3.0</td><td style="text-align:center">2025-08-23</td><td style="text-align:center"><a href="https://repo1.maven.org/maven2/cn/idev/excel/fastexcel/1.3.0/fastexcel-1.3.0.jar" target="_blank" rel="noopener noreferrer" class="">fastexcel-1.3.0.jar</ [...]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th style="text-align:center">Version</th><th style="text-align:center">Date</th><th style="text-align:center">Download</th><th style="text-align:center">Release notes</th></tr></thead><tbody><tr><td style="text-align:center">1.2.0</td><td style="text-align:center">2025-04-14</td><td style="text-align:center"><a href="https://repo1.maven.org/maven2/cn/idev/excel/fastexcel/1.2.0/fastexcel-1.2.0.jar" target="_blank" rel="noopener noreferrer" class="">fastexcel-1.2.0.jar</ [...]
+<h1>Verifying Apache Releases</h1>
+<p>All Apache releases must be verified before use. Follow these steps to verify the integrity and authenticity of the
+source release:</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="download-verification-files">Download Verification Files<a href="#download-verification-files" class="hash-link" aria-label="Direct link to Download Verification Files" title="Direct link to Download Verification Files" translate="no"></a></h2>
+<p>Download the <a href="https://downloads.apache.org/incubator/fesod/KEYS" target="_blank" rel="noopener noreferrer" class="">KEYS</a> file containing the public keys used for signing
+releases.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="verify-signature">Verify Signature<a href="#verify-signature" class="hash-link" aria-label="Direct link to Verify Signature" title="Direct link to Verify Signature" translate="no"></a></h2>
+<ol>
+<li class="">
+<p>Import the KEYS file to your GPG keyring:</p>
+<div class="language-bash codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-bash codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain">gpg </span><span class="token parameter variable" style="color:#36acaa">--import</span><spa [...]
+</li>
+<li class="">
+<p>Download the source release, .asc signature file, and .sha512 checksum file.</p>
+</li>
+<li class="">
+<p>Verify the GPG signature:</p>
+</li>
+</ol>
+<div class="language-bash codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-bash codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain">gpg </span><span class="token parameter variable" style="color:#36acaa">--verify</span><spa [...]
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="verify-checksum">Verify Checksum<a href="#verify-checksum" class="hash-link" aria-label="Direct link to Verify Checksum" title="Direct link to Verify Checksum" translate="no"></a></h2>
+<p>Verify the SHA-512 checksum:</p>
+<div class="language-bash codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-bash codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain">shasum </span><span class="token parameter variable" style="color:#36acaa">-a</span><span c [...]
+<p>Or on Linux:</p>
+<div class="language-bash codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-bash codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain">sha512sum </span><span class="token parameter variable" style="color:#36acaa">-c</span><spa [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/index.html b/docs/index.html
new file mode 100644
index 00000000..b29dcfc4
--- /dev/null
+++ b/docs/index.html
@@ -0,0 +1,53 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-introduce" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Introduction | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/"><meta data [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="introduction">Introduction<a href="#introduction" class="hash-link" aria-label="Direct link to Introduction" title="Direct link to Introduction" translate="no"></a></h2>
+<p><strong>Apache Fesod (Incubating)</strong> is a high-performance and memory-efficient Java library for reading and writing
+spreadsheet
+files, designed to simplify development and ensure reliability.</p>
+<p>Apache Fesod (Incubating) can provide developers and enterprises with great freedom and flexibility. We plan to
+introduce more new features in the future to continually enhance user experience and tool usability. Apache Fesod (
+Incubating) is committed to being your best choice for handling spreadsheet files.</p>
+<p>The name fesod(pronounced <code>/ˈfɛsɒd/</code>), an acronym for "fast easy spreadsheet and other documents" expresses the
+project's origin, background and vision.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="features">Features<a href="#features" class="hash-link" aria-label="Direct link to Features" title="Direct link to Features" translate="no"></a></h3>
+<ul>
+<li class=""><strong>High-performance Reading and Writing</strong>: Apache Fesod (Incubating) focuses on performance optimization, capable of
+efficiently handling large-scale spreadsheet data. Compared to some traditional spreadsheet processing libraries, it
+can
+significantly reduce memory consumption.</li>
+<li class=""><strong>Simplicity and Ease of Use</strong>: The library offers a simple and intuitive API, allowing developers to easily integrate
+it into projects, whether for simple spreadsheet operations or complex data processing.</li>
+<li class=""><strong>Stream Operations</strong>: Apache Fesod (Incubating) supports stream reading, minimizing the problem of loading large
+amounts of data at once. This design is especially important when dealing with hundreds of thousands or even millions
+of rows of data.</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="example">Example<a href="#example" class="hash-link" aria-label="Direct link to Example" title="Direct link to Example" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="read">Read<a href="#read" class="hash-link" aria-label="Direct link to Read" title="Direct link to Read" translate="no"></a></h3>
+<p>Below is an example of reading a spreadsheet document:</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">// Implement the ReadListener interface to set up [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="write">Write<a href="#write" class="hash-link" aria-label="Direct link to Write" title="Direct link to Write" translate="no"></a></h3>
+<p>Below is a simple example of creating a spreadsheet document:</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">// Sample data class</span><span class="token pla [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/migration/from-fastexcel/index.html b/docs/migration/from-fastexcel/index.html
new file mode 100644
index 00000000..f2c78bb1
--- /dev/null
+++ b/docs/migration/from-fastexcel/index.html
@@ -0,0 +1,214 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-migration/from-fastexcel" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">From FastExcel | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/migration/ [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h2>
+<p>This guide provides a comprehensive roadmap for migrating applications from cn.idev FastExcel library to Apache Fesod (Incubating). Apache Fesod (Incubating) is the evolution of this project, now under the Apache Software Foundation (Incubating), offering the same high-performance Excel processing capabilities with enhanced community support and long-term sustainability.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="why-migrate">Why Migrate?<a href="#why-migrate" class="hash-link" aria-label="Direct link to Why Migrate?" title="Direct link to Why Migrate?" translate="no"></a></h3>
+<ul>
+<li class=""><strong>Apache Foundation Support</strong>: Apache Fesod (Incubating) is now part of the Apache Software Foundation, ensuring long-term maintenance and community-driven development</li>
+<li class=""><strong>Seamless Transition</strong>: The API remains virtually identical, requiring minimal code changes</li>
+<li class=""><strong>Enhanced Branding</strong>: Unified naming conventions under the Apache Fesod (Incubating) umbrella</li>
+<li class=""><strong>Continued Innovation</strong>: Access to future enhancements and features under active Apache governance</li>
+<li class=""><strong>Backward Compatibility</strong>: Deprecated aliases (FastExcel) are temporarily maintained for gradual migration</li>
+</ul>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="migration-scope">Migration Scope<a href="#migration-scope" class="hash-link" aria-label="Direct link to Migration Scope" title="Direct link to Migration Scope" translate="no"></a></h3>
+<p>This migration primarily involves:</p>
+<ol>
+<li class="">Updating Maven/Gradle dependencies</li>
+<li class="">Replacing deprecated class names with FesodSheet</li>
+<li class="">Updating package imports</li>
+<li class="">Verifying functionality through comprehensive testing</li>
+</ol>
+<p>The core API, annotations, and processing logic remain unchanged, ensuring a low-risk migration path.</p>
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="migration-steps">Migration Steps<a href="#migration-steps" class="hash-link" aria-label="Direct link to Migration Steps" title="Direct link to Migration Steps" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="step-1-update-dependencies">Step 1: Update Dependencies<a href="#step-1-update-dependencies" class="hash-link" aria-label="Direct link to Step 1: Update Dependencies" title="Direct link to Step 1: Update Dependencies" translate="no"></a></h3>
+<p>Replace your existing dependency with Apache Fesod (Incubating):</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Source</th><th>GroupId</th><th>ArtifactId</th><th>Version</th></tr></thead><tbody><tr><td><strong>cn.idev FastExcel</strong></td><td>cn.idev.excel</td><td>fastexcel</td><td>1.3.0</td></tr><tr><td><strong>Apache Fesod (Incubating)</strong> ✅</td><td>org.apache.fesod</td><td>fesod-sheet</td><td>2.0.0-incubating+</td></tr></tbody></table>
+<p><strong>Maven:</strong></p>
+<div class="language-xml codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-xml codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34"><</span><span class="token tag" style="color:#00009f">depe [...]
+<p><strong>Gradle:</strong></p>
+<div class="language-gradle codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-gradle codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain">implementation 'org.apache.fesod:fesod-sheet:2.0.0-incubating'</span><br></sp [...]
+<blockquote>
+<p><strong>Note</strong>: The <code>fesod-sheet</code> module is the core module for Excel/CSV processing. It automatically includes the necessary dependencies (<code>fesod-common</code> and <code>fesod-shaded</code>).</p>
+</blockquote>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="step-2-package-import-updates">Step 2: Package Import Updates<a href="#step-2-package-import-updates" class="hash-link" aria-label="Direct link to Step 2: Package Import Updates" title="Direct link to Step 2: Package Import Updates" translate="no"></a></h3>
+<p>Update all import statements to use the new Apache Fesod (Incubating) package structure.</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Old Package (Deprecated)</th><th>New Package (Required)</th></tr></thead><tbody><tr><td>cn.idev.excel.*</td><td>org.apache.fesod.sheet.*</td></tr></tbody></table>
+<p><strong>Common Import Replacements:</strong></p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Before</th><th>After</th></tr></thead><tbody><tr><td>import cn.idev.excel.FastExcel;</td><td>import org.apache.fesod.sheet.FesodSheet;</td></tr><tr><td>import cn.idev.excel.FastExcelFactory;</td><td>import org.apache.fesod.sheet.FesodSheet;</td></tr><tr><td>import cn.idev.excel.ExcelReader;</td><td>import org.apache.fesod.sheet.ExcelReader;</td></tr><tr><td>import cn.idev.excel.ExcelWriter;</td><td>import org.apache.fesod.sheet.ExcelWriter;</td></tr><tr><td>import c [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="step-3-class-name-migration">Step 3: Class Name Migration<a href="#step-3-class-name-migration" class="hash-link" aria-label="Direct link to Step 3: Class Name Migration" title="Direct link to Step 3: Class Name Migration" translate="no"></a></h3>
+<p>Replace deprecated entry point classes with FesodSheet.</p>
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="migration-from-fastexcelfastexcelfactory">Migration from FastExcel/FastExcelFactory<a href="#migration-from-fastexcelfastexcelfactory" class="hash-link" aria-label="Direct link to Migration from FastExcel/FastExcelFactory" title="Direct link to Migration from FastExcel/FastExcelFactory" translate="no"></a></h4>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Operation</th><th>Before (FastExcel)</th><th>After (FesodSheet)</th></tr></thead><tbody><tr><td><strong>Simple Read</strong></td><td>FastExcel.read(file, Data.class, listener)</td><td>FesodSheet.read(file, Data.class, listener)</td></tr><tr><td><strong>Simple Write</strong></td><td>FastExcel.write(file, Data.class)</td><td>FesodSheet.write(file, Data.class)</td></tr><tr><td><strong>Read Sheet</strong></td><td>FastExcelFactory.readSheet(0)</td><td>FesodSheet.readShee [...]
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="migration-strategies">Migration Strategies<a href="#migration-strategies" class="hash-link" aria-label="Direct link to Migration Strategies" title="Direct link to Migration Strategies" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="gradual-migration-recommended">Gradual Migration (Recommended)<a href="#gradual-migration-recommended" class="hash-link" aria-label="Direct link to Gradual Migration (Recommended)" title="Direct link to Gradual Migration (Recommended)" translate="no"></a></h3>
+<p>Utilize the deprecated alias classes for a phased migration approach.</p>
+<p><strong>Phase 1: Dependency Update Only</strong></p>
+<ul>
+<li class="">Update Maven/Gradle dependency to Apache Fesod (Incubating)</li>
+<li class="">Keep using FastExcel classes (now deprecated aliases)</li>
+<li class="">Update package imports only</li>
+<li class="">Run comprehensive tests to verify compatibility</li>
+</ul>
+<p><strong>Phase 2: Class Name Migration</strong></p>
+<ul>
+<li class="">Progressively replace deprecated classes with FesodSheet</li>
+<li class="">Use IDE refactoring tools for bulk renaming</li>
+<li class="">Migrate module by module or feature by feature</li>
+<li class="">Maintain thorough test coverage throughout</li>
+</ul>
+<p><strong>Phase 3: Cleanup</strong></p>
+<ul>
+<li class="">Remove all references to deprecated classes</li>
+<li class="">Resolve deprecation warnings</li>
+<li class="">Update documentation and code comments</li>
+</ul>
+<p><strong>Benefits:</strong></p>
+<ul>
+<li class="">Lower risk through incremental changes</li>
+<li class="">Easier rollback if issues arise</li>
+<li class="">Minimal disruption to ongoing development</li>
+<li class="">Allows time for thorough testing at each phase</li>
+</ul>
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="conclusion">Conclusion<a href="#conclusion" class="hash-link" aria-label="Direct link to Conclusion" title="Direct link to Conclusion" translate="no"></a></h2>
+<p>Migrating from cn.idev FastExcel to Apache Fesod (Incubating) is a straightforward process due to the high degree of API compatibility and backward-compatible deprecated aliases. The primary effort involves updating dependency declarations and package imports, with minimal to no logic changes required.</p>
+<p>The gradual migration strategy, supported by the temporary deprecated aliases (FastExcel, FastExcelFactory), allows teams to migrate at their own pace while maintaining full functionality.</p>
+<p>By following this guide, organizations can seamlessly transition to Apache Fesod (Incubating) and benefit from the long-term sustainability and community support of the Apache Software Foundation ecosystem.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_YM8j"><a href="https://github.com/apache/fesod/edit/main/website/docs/migration/from-fastexcel.md" target="_blank" rel="noopener norefer [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/quickstart/guide/index.html b/docs/quickstart/guide/index.html
new file mode 100644
index 00000000..087f210f
--- /dev/null
+++ b/docs/quickstart/guide/index.html
@@ -0,0 +1,96 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-quickstart/guide" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Guide | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/quickstart/guide">< [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="compatibility-information">Compatibility Information<a href="#compatibility-information" class="hash-link" aria-label="Direct link to Compatibility Information" title="Direct link to Compatibility Information" translate="no"></a></h2>
+<p>The following table lists the minimum Java language version requirements for each version of the Apache Fesod(
+Incubating) library:</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Version</th><th>JDK Version Support Range</th><th>Notes</th></tr></thead><tbody><tr><td>2.0.1-incubating</td><td>JDK8 - JDK25</td><td>Apache Incubator release</td></tr><tr><td>2.0.0-incubating</td><td>JDK8 - JDK25</td><td>NA(not available)</td></tr><tr><td>1.3.x</td><td>JDK8 - JDK25</td><td>Non-Apache release</td></tr><tr><td>1.2.x</td><td>JDK8 - JDK21</td><td>Non-Apache release</td></tr><tr><td>1.1.x</td><td>JDK8 - JDK21</td><td>Non-Apache release</td></tr><tr><td> [...]
+<p>We strongly recommend using the latest version of Apache Fesod(Incubating), as performance optimizations, bug fixes, and
+new features
+in the latest version will enhance your experience.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="dependencies">Dependencies<a href="#dependencies" class="hash-link" aria-label="Direct link to Dependencies" title="Direct link to Dependencies" translate="no"></a></h3>
+<p>Apache Fesod(Incubating) uses the following key dependencies:</p>
+<ul>
+<li class=""><strong>Apache POI 5.5.1</strong> - For Excel file processing</li>
+<li class=""><strong>Apache Commons CSV 1.14.1</strong> - For CSV file support</li>
+<li class=""><strong>Ehcache 3.9.11</strong> - For caching functionality</li>
+</ul>
+<blockquote>
+<p>If your project already includes POI-related components, you may need to manually exclude POI-related jar files to
+avoid version conflicts.</p>
+</blockquote>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="version-update">Version Update<a href="#version-update" class="hash-link" aria-label="Direct link to Version Update" title="Direct link to Version Update" translate="no"></a></h2>
+<p>For detailed update logs, refer
+to <a href="https://github.com/apache/fesod/releases" target="_blank" rel="noopener noreferrer" class="">Details of version updates</a>. You can also find all
+available versions in the <a href="https://mvnrepository.com/artifact/org.apache.fesod/fesod" target="_blank" rel="noopener noreferrer" class="">Maven Central Repository</a>.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="maven">Maven<a href="#maven" class="hash-link" aria-label="Direct link to Maven" title="Direct link to Maven" translate="no"></a></h2>
+<p>If you are using Maven for project building, add the following configuration in the <code>pom.xml</code> file:</p>
+<div class="language-xml codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-xml codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34" [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="alternative-using-bom-for-version-management">Alternative: Using BOM for Version Management<a href="#alternative-using-bom-for-version-management" class="hash-link" aria-label="Direct link to Alternative: Using BOM for Version Management" title="Direct link to Alternative: Using BOM for Version Management" translate="no"></a></h3>
+<p>For better dependency management, you can use the Fesod BOM:</p>
+<div class="language-xml codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-xml codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34" [...]
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="gradle">Gradle<a href="#gradle" class="hash-link" aria-label="Direct link to Gradle" title="Direct link to Gradle" translate="no"></a></h2>
+<p>If you are using Gradle for project building, add the following configuration in the <code>build.gradle</code> file:</p>
+<div class="language-gradle codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-gradle codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain">dependencies {</span><br></span><span class="token-line" style="color:#393A34"><span cl [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/quickstart/simple-example/index.html b/docs/quickstart/simple-example/index.html
new file mode 100644
index 00000000..60f18d8b
--- /dev/null
+++ b/docs/quickstart/simple-example/index.html
@@ -0,0 +1,31 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-quickstart/simple-example" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Simple example | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/quickstart [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="read-the-spreadsheet">Read the spreadsheet<a href="#read-the-spreadsheet" class="hash-link" aria-label="Direct link to Read the spreadsheet" title="Direct link to Read the spreadsheet" translate="no"></a></h3>
+<p>Below is an example of reading a spreadsheet document:</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">// Implement the ReadListener interface to set up [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="write-the-spreadsheet">Write the spreadsheet<a href="#write-the-spreadsheet" class="hash-link" aria-label="Direct link to Write the spreadsheet" title="Direct link to Write the spreadsheet" translate="no"></a></h3>
+<p>Below is a simple example of creating a spreadsheet document:</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">// Sample data class</span><span class="token pla [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/sheet/fill/index.html b/docs/sheet/fill/index.html
new file mode 100644
index 00000000..0719c46d
--- /dev/null
+++ b/docs/sheet/fill/index.html
@@ -0,0 +1,88 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-sheet/fill/fill" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Fill | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/sheet/fill/"><meta d [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This section explains how to use Fesod to fill data into files.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="simple-fill">Simple Fill<a href="#simple-fill" class="hash-link" aria-label="Direct link to Simple Fill" title="Direct link to Simple Fill" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Fill data into spreadsheet based on a template file using objects or Map.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="pojo-class">POJO Class<a href="#pojo-class" class="hash-link" aria-label="Direct link to POJO Class" title="Direct link to POJO Class" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example">Code Example<a href="#code-example" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="template">Template<a href="#template" class="hash-link" aria-label="Direct link to Template" title="Direct link to Template" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAsIAAABkCAYAAACMyFYDAAAABWZkRUNSJJPjAOWrYpkAACKvSURBVHgB5cRjtCVn2oDh+3mravPY57RtxLYzM0kGydi2bdu2EYxi22bbPH2szap6n2/Vj7PWXr06mWimZ773x3Xxohe/TF3mMpf9J7zoJS9Tl7nMVS96ycvVZS5z2X/KC1/yCnXZv4sBcJnLXPbvhgCAy1zmIhAAXOYylz3bQNibIgC47N/FALjMZS77d0EgAeAyl7kIBACXucxlzzYQAFz2n2YAXOYyl/07IADgMpe5CIQEgMtc5rKnC4THA7A3BQBc9u9kAFzmMpe5zGUuc5nLXLY/gPCvADwZCiQAXPbvZgBc5jKXPdsQAHCZy1wEAoDLXOayfwcF9gbgsv8UY8M [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="result">Result<a href="#result" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlUAAABZCAYAAAAXW9HgAAAABWZkRUNSJJPjAOWrYpkAABm1SURBVHgB5cRjtCVn2oDh+3mravPY57RtxLYzM0kGydi2bdu2EYxi22bbPH2szap6n2/Vj7PWXr06mWimZ773x3Xxohe/TPflne9+r376M5/Rr33ta+qy/eXTn/mMvvPd79UXvfhl+u/ywnNfou94xzv0U5/6lH7ta19Tlz1dn/rUp/Qd73iHvvDcl+iLXvwyTbzoJS/Tvb3zPe/VT33qU/q1r31NXeYyl7nMZS4yAPuyu3cPj61ex933PYjL9pfHVq9jd+8eAP5dxBh6+4dYtXYDd9/3IC57ulat3UBv/xBiDAAIAOxtd+8eVq3bwN33P4jLXPb/1d33P4TLXOayx2M [...]
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="fill-list">Fill List<a href="#fill-list" class="hash-link" aria-label="Direct link to Fill List" title="Direct link to Fill List" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview-1">Overview<a href="#overview-1" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Fill multiple data items into a template list, supporting in-memory batch operations and file cache batch filling.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example-1">Code Example<a href="#code-example-1" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="template-1">Template<a href="#template-1" class="hash-link" aria-label="Direct link to Template" title="Direct link to Template" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAVcAAABOCAYAAACUn1X/AAAABWZkRUNSJJPjAOWrYpkAABJkSURBVHgB5cRjtCVn2oDh+3mravPY57RtxLYzM0kGydi2bdu2EYxi22bbPH2szap6n2/Vj7PWXr06mWimZ773x3Xxohe/TF3mMpf9u7zoJS9Tl7lsbwbAZS5z2b8DAgAuc9nejA3L/CedfsqJ2LCMy57I6aeciA3LuOw/6fRTTsSGZZ4Ntlrm/5vTTz4RWy3jsify4hc+n6a6HPtiAP6TPM8DwGVPxPM8AFz2n+R5HgAueyKe5wHgsiciIgDsiwH4T/J9HwCXPRHf9wFw2X+S7/sAuOyJ+L4PgMueiIgAsC8G4D/J8zwAXPZEPM8DwGX/SZ7nAeCyJ+J5HgAueyIiAsC [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="result-1">Result<a href="#result-1" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/listFill_result-c126158195ba15c7ad37c143c1f2940b.png" width="445" height="432" class="img_VXcA"></p>
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="complex-fill">Complex Fill<a href="#complex-fill" class="hash-link" aria-label="Direct link to Complex Fill" title="Direct link to Complex Fill" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview-2">Overview<a href="#overview-2" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Fill various data types in a template, including lists and regular variables.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example-2">Code Example<a href="#code-example-2" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="template-2">Template<a href="#template-2" class="hash-link" aria-label="Direct link to Template" title="Direct link to Template" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfcAAACICAYAAAD6dqKHAAAABWZkRUNSJJPjAOWrYpkAACNGSURBVHgB5cRjtCVn2oDh+3mravPY57RtxLYzM0kGydi2bdu2EYxi22bbPH2szap6n2/Vj7PWXr06mWimZ773x3Xxohe/TF3mMpf9u7zoJS9Tl7nMVS96ycvVZf+tDIDLXOYyl7nMZS5zkQFwmctc9u+AAIDLXOYiEABc9t/K2LDMf9Lpp5yIDcu47ImcfsqJ2LCMy/6TTj/lRGxY5tlgq2Vc9v/R6SefiK2WcdkTsdUS/ymnn3wCtlrCZU/k9JNPwFZLTDIA/0me5wHgsifieR4ALvtP8jwPAJe57F/xPA8Al/238DwPAJc9Ec/zAJhkAP6TfN8HwGVPxPd9AFz2n+T [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="result-2">Result<a href="#result-2" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/complexFill_result-3908e6375dce9ca1e29fdcc1eb7ba0b6.png" width="502" height="471" class="img_VXcA"></p>
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="complex-fill-with-large-data">Complex Fill with Large Data<a href="#complex-fill-with-large-data" class="hash-link" aria-label="Direct link to Complex Fill with Large Data" title="Direct link to Complex Fill with Large Data" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview-3">Overview<a href="#overview-3" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Optimize performance for filling large data, ensuring the template list is at the last row, and subsequent data is
+filled using <code>WriteTable</code>.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example-3">Code Example<a href="#code-example-3" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="template-3">Template<a href="#template-3" class="hash-link" aria-label="Direct link to Template" title="Direct link to Template" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfYAAAB7CAYAAACGsqIOAAAABWZkRUNSJJPjAOWrYpkAAB9XSURBVHgB5cRjtCVn2oDh+3mravPY57RtxLYzM0kGydi2bdu2EYxi22bbPH2szap6n2/Vj7PWXr06mWimZ773x3Xxohe/TJ/IO9/9Xv30Zz6jX/va19Rl+8unP/MZfee736svevHL9N/lhee+RN/xjnfopz71Kf3a176mLnu6PvWpT+k73vEOfeG5L9EXvfhlmnjRS16me3vne96rn/rUp/RrX/uausxlLnPZf5IBeCK7e/fw2Op13H3fg7hsf3ls9Tp29+4B4N9FjKG3f4hVazdw930P4rKna9XaDfT2DyHGAIAAwN529+5h1boN3H3/g7jMZf9f3X3/Q7jsv4kBcJn [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="result-3">Result<a href="#result-3" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/complexFillWithTable_result-21cb25bd329df76baf680fd0f94ef43b.png" width="495" height="469" class="img_VXcA"></p>
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="horizontal-fill">Horizontal Fill<a href="#horizontal-fill" class="hash-link" aria-label="Direct link to Horizontal Fill" title="Direct link to Horizontal Fill" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview-4">Overview<a href="#overview-4" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Fill list data horizontally, suitable for scenarios with dynamic column numbers.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example-4">Code Example<a href="#code-example-4" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="template-4">Template<a href="#template-4" class="hash-link" aria-label="Direct link to Template" title="Direct link to Template" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAaoAAACHCAYAAABHyh2qAAAABWZkRUNSJJPjAOWrYpkAAB6PSURBVHgB5cRjtCVn2oDh+3mravPY57RtxLYzM0kGydi2bdu2EYxi22bbPH2szap6n2/Vj7PWXr06mWimZ773x3Xxohe/TF3mMpc9m170kpepy1zmshe95OX6n2IAXOYylz1bEABwmctcBEIC4D/FALjMZS5zmctc9r/MALjMZS57NiAA4DKXuQgEgP80Y8My/06nn3IiNizjMpf9f3T6KSdiwzK2WsZlj+f0k0/EVsu47ImcfvKJ2GqZ/0W2WuLf7fSTT8BWS9QyAP9OnucB4DKX/X/keR4ALnsinucB4LIn4nkeAC57Ip7nAVDLAPw7+b4PgMtc9v+R7/sAuOyJ+L4 [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="result-4">Result<a href="#result-4" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/horizontalFill_result-6c236308703bda3338b429425b18c2a4.png" width="853" height="135" class="img_VXcA"></p>
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="fill-multiple-lists-together">Fill Multiple Lists Together<a href="#fill-multiple-lists-together" class="hash-link" aria-label="Direct link to Fill Multiple Lists Together" title="Direct link to Fill Multiple Lists Together" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview-5">Overview<a href="#overview-5" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Support filling multiple lists simultaneously, with prefixes to differentiate between lists.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example-5">Code Example<a href="#code-example-5" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="template-5">Template<a href="#template-5" class="hash-link" aria-label="Direct link to Template" title="Direct link to Template" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/compositeFill_file-ba1c7222a9c310e389363a04777fa279.png" width="847" height="242" class="img_VXcA"></p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="result-5">Result<a href="#result-5" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/compositeFill_result-94a945a637d60e2b0e8c055c83f92d8e.png" width="922" height="601" class="img_VXcA"></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_YM8j"><a href="https://github.com/apache/fesod/edit/main/website/docs/sheet/fill/fill.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="cu [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/sheet/help/annotation/index.html b/docs/sheet/help/annotation/index.html
new file mode 100644
index 00000000..352ae5a0
--- /dev/null
+++ b/docs/sheet/help/annotation/index.html
@@ -0,0 +1,369 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-sheet/help/annotation" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Annotation | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/sheet/help/ann [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This section describes how to read annotations provided in the project.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="entity-class-annotations">Entity Class Annotations<a href="#entity-class-annotations" class="hash-link" aria-label="Direct link to Entity Class Annotations" title="Direct link to Entity Class Annotations" translate="no"></a></h2>
+<p>Entity classes are the foundation of read and write operations. FesodSheet provides various annotations to help
+developers easily define fields and formats.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="excelproperty"><code>@ExcelProperty</code><a href="#excelproperty" class="hash-link" aria-label="Direct link to excelproperty" title="Direct link to excelproperty" translate="no"></a></h3>
+<p>Defines the column name in spreadsheet and the field name to map. Specific parameters are as follows:</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Name</th><th>Default Value</th><th>Description</th></tr></thead><tbody><tr><td>value</td><td>Empty</td><td>Used to match the header in spreadsheet, must be fully matched. If there are multiple header rows, it will match the last row header.</td></tr><tr><td>order</td><td>Integer.MAX_VALUE</td><td>Higher priority than <code>value</code>, will match the order of entities and data in spreadsheet according to the order of <code>order</code>.</td></tr><tr><td>index</td>< [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="excelignore"><code>@ExcelIgnore</code><a href="#excelignore" class="hash-link" aria-label="Direct link to excelignore" title="Direct link to excelignore" translate="no"></a></h3>
+<p>By default, all fields will match spreadsheet. Adding this annotation will ignore the field.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="excelignoreunannotated"><code>@ExcelIgnoreUnannotated</code><a href="#excelignoreunannotated" class="hash-link" aria-label="Direct link to excelignoreunannotated" title="Direct link to excelignoreunannotated" translate="no"></a></h3>
+<p>By default, all properties without the <code>@ExcelProperty</code> annotation are involved in read/write operations. Properties
+with this annotation are not involved in read/write operations.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="datetimeformat"><code>@DateTimeFormat</code><a href="#datetimeformat" class="hash-link" aria-label="Direct link to datetimeformat" title="Direct link to datetimeformat" translate="no"></a></h3>
+<p>Date conversion: When using <code>String</code> to receive data in spreadsheet date format, this annotation will be called. The
+parameters are as follows:</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Name</th><th>Default Value</th><th>Description</th></tr></thead><tbody><tr><td>value</td><td>Empty</td><td>Refer to <code>java.text.SimpleDateFormat</code> .</td></tr><tr><td>use1904windowing</td><td>Automatically selected</td><td>In spreadsheet, time is stored as a double-precision floating-point number starting from 1900, but sometimes the default start date is 1904, so set this value to change the default start date to 1904.</td></tr></tbody></table>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="numberformat"><code>@NumberFormat</code><a href="#numberformat" class="hash-link" aria-label="Direct link to numberformat" title="Direct link to numberformat" translate="no"></a></h3>
+<p>Number conversion, using <code>String</code> to receive data in spreadsheet number format will trigger this annotation.</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Name</th><th>Default Value</th><th>Description</th></tr></thead><tbody><tr><td>value</td><td>Empty</td><td>Refer to <code>java.text.DecimalFormat</code>.</td></tr><tr><td>roundingMode</td><td>RoundingMode.HALF_UP</td><td>Set the rounding mode when formatting</td></tr></tbody></table>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="columnwidth"><code>@ColumnWidth</code><a href="#columnwidth" class="hash-link" aria-label="Direct link to columnwidth" title="Direct link to columnwidth" translate="no"></a></h3>
+<p>Specifies the column width.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="headrowheight--contentrowheight"><code>@HeadRowHeight</code> & <code>@ContentRowHeight</code><a href="#headrowheight--contentrowheight" class="hash-link" aria-label="Direct link to headrowheight--contentrowheight" title="Direct link to headrowheight--contentrowheight" translate="no"></a></h3>
+<p>Specifies the height of the header rows (<code>@HeadRowHeight</code>) or the content rows (<code>@ContentRowHeight</code>). The
+parameters are as follows:</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Name</th><th>Default Value</th><th>Description</th></tr></thead><tbody><tr><td>value</td><td>-1</td><td>Set the height. <code>-1</code> indicates automatic height setting.</td></tr></tbody></table>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="headfontstyle--contentfontstyle"><code>@HeadFontStyle</code> & <code>@ContentFontStyle</code><a href="#headfontstyle--contentfontstyle" class="hash-link" aria-label="Direct link to headfontstyle--contentfontstyle" title="Direct link to headfontstyle--contentfontstyle" translate="no"></a></h3>
+<p>Customizes the font style for headers (<code>@HeadFontStyle</code>) or content data (<code>@ContentFontStyle</code>). The
+parameters are as follows:</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Name</th><th>Default Value</th><th>Description</th></tr></thead><tbody><tr><td>fontName</td><td>Empty</td><td>The name for the font (e.g., "Arial").</td></tr><tr><td>fontHeightInPoints</td><td>-1</td><td>Set font height.</td></tr><tr><td>italic</td><td>BooleanEnum.DEFAULT</td><td>Whether to use italics.</td></tr><tr><td>strikeout</td><td>BooleanEnum.DEFAULT</td><td>Whether to use a strikeout horizontal line through the text.</td></tr><tr><td>color</td><td> [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="headstyle--contentstyle"><code>@HeadStyle</code> & <code>@ContentStyle</code><a href="#headstyle--contentstyle" class="hash-link" aria-label="Direct link to headstyle--contentstyle" title="Direct link to headstyle--contentstyle" translate="no"></a></h3>
+<p>Customizes the cell style (borders, alignment, colors...) for header data (<code>@HeadStyle</code>) or content data (<code>@ContentStyle</code>).
+The parameters are as follows:</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Name</th><th>Default Value</th><th>Description</th></tr></thead><tbody><tr><td>dataFormat</td><td>-1</td><td>Set the data format (must be a valid format defined at <code>org.apache.poi.ss.usermodel.BuiltinFormats</code>).</td></tr><tr><td>hidden</td><td>BooleanEnum.DEFAULT</td><td>set the cell to be hidden. <strong>Note: This only takes effect if the sheet is protected.</strong></td></tr><tr><td>locked</td><td>BooleanEnum.DEFAULT</td><td>Set the cell to be locked. < [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="contentloopmerge"><code>@ContentLoopMerge</code><a href="#contentloopmerge" class="hash-link" aria-label="Direct link to contentloopmerge" title="Direct link to contentloopmerge" translate="no"></a></h3>
+<p>Defines a loop merge strategy for content cells. The parameters are as follows:</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Name</th><th>Default Value</th><th>Description</th></tr></thead><tbody><tr><td>eachRow</td><td>1</td><td>The number of rows to include in each merge loop.</td></tr><tr><td>columnExtend</td><td>1</td><td>The number of columns to extend the merge.</td></tr></tbody></table>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="onceabsolutemerge"><code>@OnceAbsoluteMerge</code><a href="#onceabsolutemerge" class="hash-link" aria-label="Direct link to onceabsolutemerge" title="Direct link to onceabsolutemerge" translate="no"></a></h3>
+<p>Defines a one-time absolute merge region. The parameters are as follows:</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Name</th><th>Default Value</th><th>Description</th></tr></thead><tbody><tr><td>firstRowIndex</td><td>-1</td><td>The index of the first row to merge.</td></tr><tr><td>lastRowIndex</td><td>-1</td><td>The index of the last row to merge.</td></tr><tr><td>firstColumnIndex</td><td>-1</td><td>The index of the first column to merge.</td></tr><tr><td>lastColumnIndex</td><td>-1</td><td>The index of the last column to merge.</td></tr></tbody></table></div><footer class="theme- [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/sheet/help/core-class/index.html b/docs/sheet/help/core-class/index.html
new file mode 100644
index 00000000..07e13498
--- /dev/null
+++ b/docs/sheet/help/core-class/index.html
@@ -0,0 +1,390 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-sheet/help/core-class" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Core Class | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/sheet/help/cor [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This section introduces the core classes in the project.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h2>
+<p>If you use this project for custom read/write operations, you need to understand its important concepts and classes.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="core-concepts">Core Concepts<a href="#core-concepts" class="hash-link" aria-label="Direct link to Core Concepts" title="Direct link to Core Concepts" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="fesodsheet">FesodSheet<a href="#fesodsheet" class="hash-link" aria-label="Direct link to FesodSheet" title="Direct link to FesodSheet" translate="no"></a></h3>
+<p>Entry class used to start various operations</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="multiple-builders">Multiple Builders<a href="#multiple-builders" class="hash-link" aria-label="Direct link to Multiple Builders" title="Direct link to Multiple Builders" translate="no"></a></h3>
+<p>There are corresponding Builder classes for read and write operations:</p>
+<ul>
+<li class=""><strong><code>ExcelReaderBuilder</code> and <code>ExcelWriterBuilder</code></strong>:Constructs a <code>ReadWorkbook</code> or <code>WriteWorkbook</code>, which can be
+understood as an spreadsheet object; only one spreadsheet needs to be constructed</li>
+<li class=""><strong><code>ExcelReaderSheetBuilder</code> and <code>ExcelWriterSheetBuilder</code></strong>:Constructs a <code>ReadSheet</code> or <code>WriteSheet</code> object, which can
+be understood as a page in spreadsheet; each page needs to be constructed</li>
+<li class=""><strong><code>CsvReaderBuilder</code> and <code>CsvWriterBuilder</code></strong>:Construct the CsvFormat required internally.</li>
+</ul>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="readlistener">ReadListener<a href="#readlistener" class="hash-link" aria-label="Direct link to ReadListener" title="Direct link to ReadListener" translate="no"></a></h3>
+<p>Called to handle data after each row is read</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="writehandler">WriteHandler<a href="#writehandler" class="hash-link" aria-label="Direct link to WriteHandler" title="Direct link to WriteHandler" translate="no"></a></h3>
+<p>Called to handle data for each operation, including creating cells, creating tables, etc.</p>
+<p>All configurations are inherited. The configuration of <code>Workbook</code> will be inherited by <code>Sheet</code>, so when setting
+parameters in FesodSheet, the scope is the entire sheet before the <code>FesodSheet.sheet()</code> method, and the scope is the
+entire csv before the <code>FesodSheet.csv()</code> method.</p>
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="writehandler-1">WriteHandler<a href="#writehandler-1" class="hash-link" aria-label="Direct link to WriteHandler" title="Direct link to WriteHandler" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview-1">Overview<a href="#overview-1" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p><code>WriteHandler</code> is an interface provided by FesodSheet for intercepting the writing process when writing to a spreadsheet
+file, allowing developers to customize operations such as setting cell styles, merging cells, adding hyperlinks,
+inserting comments, etc. By implementing <code>WriteHandler</code>, developers can have precise control over the writing process to
+meet complex business requirements.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="writehandler-interface-categories">WriteHandler Interface Categories<a href="#writehandler-interface-categories" class="hash-link" aria-label="Direct link to WriteHandler Interface Categories" title="Direct link to WriteHandler Interface Categories" translate="no"></a></h3>
+<p>FesodSheet provides the following WriteHandler interfaces for handling different writing scenarios:</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Interface Name</th><th>Description</th></tr></thead><tbody><tr><td><strong>CellWriteHandler</strong></td><td>Interceptor at the cell level, allows custom operations on cell data and styles.</td></tr><tr><td><strong>RowWriteHandler</strong></td><td>Row-level interceptor, used to perform additional operations after row data is written.</td></tr><tr><td><strong>SheetWriteHandler</strong></td><td>Worksheet-level interceptor, used to set worksheet-level properties (such [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="use">Use<a href="#use" class="hash-link" aria-label="Direct link to Use" title="Direct link to Use" translate="no"></a></h3>
+<ol>
+<li class="">
+<p>Implement the corresponding <code>WriteHandler</code> interface:</p>
+<ul>
+<li class="">Choose the appropriate interface (<code>CellWriteHandler</code>, <code>RowWriteHandler</code>, or <code>SheetWriteHandler</code>).</li>
+<li class="">Implement the methods in the interface, defining custom logic in the methods.</li>
+</ul>
+</li>
+<li class="">
+<p>Register the WriteHandler:</p>
+<ul>
+<li class="">Register your custom WriteHandler when calling <code>FesodSheet.write()</code> using <code>.registerWriteHandler()</code>.</li>
+</ul>
+</li>
+</ol>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="example">Example<a href="#example" class="hash-link" aria-label="Direct link to Example" title="Direct link to Example" translate="no"></a></h3>
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="set-cell-style">Set Cell Style<a href="#set-cell-style" class="hash-link" aria-label="Direct link to Set Cell Style" title="Direct link to Set Cell Style" translate="no"></a></h4>
+<p>Set the background color to yellow and font color to blue for all content cells.</p>
+<p>Customise a <code>CellWriteHandler</code></p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<p>Register and Use</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="inserting-comments">Inserting Comments<a href="#inserting-comments" class="hash-link" aria-label="Direct link to Inserting Comments" title="Direct link to Inserting Comments" translate="no"></a></h4>
+<p>Insert a comment for the first row, second column of the header.</p>
+<p>Customise a <code>RowWriteHandler</code></p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<p>Register and Use</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="adding-dropdown-lists">Adding Dropdown Lists<a href="#adding-dropdown-lists" class="hash-link" aria-label="Direct link to Adding Dropdown Lists" title="Direct link to Adding Dropdown Lists" translate="no"></a></h4>
+<p>Add a dropdown list for the first column of the first two rows.</p>
+<p>Customise a <code>SheetWriteHandler</code></p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<p>Register and Use</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="readlistener-1">ReadListener<a href="#readlistener-1" class="hash-link" aria-label="Direct link to ReadListener" title="Direct link to ReadListener" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview-2">Overview<a href="#overview-2" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p><code>ReadListener</code> is an interface provided by FesodSheet for processing each row of data when reading a spreadsheet file.
+It is
+one of the core components of FesodSheet, allowing developers to implement custom logic to handle data rows, process
+headers, and even perform specific operations after reading is complete.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="methods">Methods<a href="#methods" class="hash-link" aria-label="Direct link to Methods" title="Direct link to Methods" translate="no"></a></h3>
+<p><code>ReadListener</code> is a generic interface, where the generic type is the type of object to be read (e.g., <code>DemoData</code>). Its
+core methods are as follows:</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Method Name</th><th>Description</th></tr></thead><tbody><tr><td><code>void invoke(T data, AnalysisContext context)</code></td><td>Triggered when a line of data is read. <code>data</code> is the parsed current line object, and <code>context</code> contains the read context information.</td></tr><tr><td><code>void doAfterAllAnalysed(AnalysisContext context)</code></td><td>Called after all data parsing is complete, it can be used for resource release or statistical dat [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="use-cases">Use Cases<a href="#use-cases" class="hash-link" aria-label="Direct link to Use Cases" title="Direct link to Use Cases" translate="no"></a></h3>
+<ul>
+<li class=""><strong>Simplify code</strong>: Suitable for simple row-by-row processing, reducing control over memory and processing logic.</li>
+<li class=""><strong>Exception handling</strong>: Able to capture and handle exceptions during the reading process.</li>
+</ul>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="implementation-steps">Implementation Steps<a href="#implementation-steps" class="hash-link" aria-label="Direct link to Implementation Steps" title="Direct link to Implementation Steps" translate="no"></a></h3>
+<ol>
+<li class="">
+<p>Implement the <code>ReadListener</code> interface:</p>
+<ul>
+<li class="">Use an entity class as the generic type (e.g., <code>ReadListener<DemoData></code>).</li>
+<li class="">Implement the core methods and add data processing logic as needed.</li>
+</ul>
+</li>
+<li class="">
+<p>Register the custom <code>ReadListener</code> during reading:</p>
+<ul>
+<li class="">When calling the <code>FesodSheet.read()</code> method, pass in the custom listener instance.</li>
+</ul>
+</li>
+</ol>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="example-1">Example<a href="#example-1" class="hash-link" aria-label="Direct link to Example" title="Direct link to Example" translate="no"></a></h3>
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="process-row-data">Process Row Data<a href="#process-row-data" class="hash-link" aria-label="Direct link to Process Row Data" title="Direct link to Process Row Data" translate="no"></a></h4>
+<p>Customise a <code>ReadListener</code></p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<p>Use</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="processing-table-headers">Processing Table Headers<a href="#processing-table-headers" class="hash-link" aria-label="Direct link to Processing Table Headers" title="Direct link to Processing Table Headers" translate="no"></a></h4>
+<p>Customise a <code>ReadListener</code></p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<p>Use</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="handling-exceptions">Handling Exceptions<a href="#handling-exceptions" class="hash-link" aria-label="Direct link to Handling Exceptions" title="Direct link to Handling Exceptions" translate="no"></a></h4>
+<p>Customise a <code>ReadListener</code></p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<p>Use</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="pagination">Pagination<a href="#pagination" class="hash-link" aria-label="Direct link to Pagination" title="Direct link to Pagination" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<blockquote>
+<p><strong>Note</strong>:</p>
+<ul>
+<li class=""><code>PageReadListener</code> is a convenient utility class provided by FesodSheet that supports batch processing based on
+pagination.</li>
+<li class="">The default page size is 1, which can be specified using the constructor.</li>
+</ul>
+</blockquote>
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="analysiseventlistener">AnalysisEventListener<a href="#analysiseventlistener" class="hash-link" aria-label="Direct link to AnalysisEventListener" title="Direct link to AnalysisEventListener" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview-3">Overview<a href="#overview-3" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p><code>AnalysisEventListener</code> is the core listener used in FesodSheet for processing spreadsheet data. It is based on an
+event-driven
+mechanism, allowing developers to perform custom operations when reading each row of data and to perform corresponding
+processing after all data has been parsed. It is typically used for streaming large amounts of data and is suitable for
+scenarios that require processing large data volumes and performing batch operations (such as batch insertion into a
+database).</p>
+<p>Core Features:</p>
+<ul>
+<li class=""><strong>Line-by-line reading</strong>: <code>AnalysisEventListener</code> reads data from spreadsheet files line by line, executing the
+<code>invoke</code>
+method when reading each line of data, making it suitable for streaming processing.</li>
+<li class=""><strong>Memory control</strong>: You can set <code>BATCH_COUNT</code> to control the amount of data processed each time, preventing memory
+overflow.</li>
+<li class=""><strong>Batch Processing</strong>: You can cache a certain amount of data and process it in batches, suitable for scenarios with
+large data volumes.</li>
+<li class=""><strong>Event-Driven</strong>: The <code>invoke</code> method is called when reading each row of data; after all data has been read, the
+<code>doAfterAllAnalysed</code> method is called.</li>
+</ul>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="methods-1">Methods<a href="#methods-1" class="hash-link" aria-label="Direct link to Methods" title="Direct link to Methods" translate="no"></a></h3>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Method Name</th><th>Description</th></tr></thead><tbody><tr><td><code>invoke(T data, AnalysisContext context)</code></td><td>Triggered when a line of data is read. <code>data</code> is the parsed current line object, and <code>context</code> contains the read context information.</td></tr><tr><td><code>doAfterAllAnalysed(AnalysisContext context)</code></td><td>Called after all data parsing is complete, used for resource cleanup or post-processing of batch operations [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="use-cases-1">Use Cases<a href="#use-cases-1" class="hash-link" aria-label="Direct link to Use Cases" title="Direct link to Use Cases" translate="no"></a></h3>
+<ul>
+<li class=""><strong>Streaming Data Processing</strong>: For example, when reading large amounts of data, you can process the data as you read
+it, reducing memory consumption.</li>
+<li class=""><strong>Batch insertion into a database</strong>: For example, batch processing row data from spreadsheet and storing it in a
+database.</li>
+</ul>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="implementation-steps-1">Implementation Steps<a href="#implementation-steps-1" class="hash-link" aria-label="Direct link to Implementation Steps" title="Direct link to Implementation Steps" translate="no"></a></h3>
+<ol>
+<li class="">Inherit from <code>AnalysisEventListener</code> and implement its methods.</li>
+<li class="">Pass in a custom listener during reading and register it using <code>FesodSheet.read()</code>.</li>
+</ol>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="example-2">Example<a href="#example-2" class="hash-link" aria-label="Direct link to Example" title="Direct link to Example" translate="no"></a></h3>
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="process-each-row-of-data-and-batch-import-into-the-database">Process each row of data and batch import into the database<a href="#process-each-row-of-data-and-batch-import-into-the-database" class="hash-link" aria-label="Direct link to Process each row of data and batch import into the database" title="Direct link to Process each row of data and batch import into the database" translate="no"></a></h4>
+<p>Inherit <code>AnalysisEventListener</code></p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<p>Use</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="processing-table-headers-1">Processing Table Headers<a href="#processing-table-headers-1" class="hash-link" aria-label="Direct link to Processing Table Headers" title="Direct link to Processing Table Headers" translate="no"></a></h4>
+<p>You can use the <code>invokeHead</code> method to obtain header information for handling dynamic header scenarios or for
+customising header data parsing.</p>
+<p>Inherit <code>AnalysisEventListener</code></p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<p>Use</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="handling-exceptions-1">Handling Exceptions<a href="#handling-exceptions-1" class="hash-link" aria-label="Direct link to Handling Exceptions" title="Direct link to Handling Exceptions" translate="no"></a></h4>
+<p>The <code>onException</code> method is provided so that developers can catch exceptions during reading and handle them (e.g., log
+errors, skip error lines, etc.).</p>
+<p>Inherit <code>AnalysisEventListener</code></p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<p>Use</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="compared-to-readlistener">Compared to ReadListener<a href="#compared-to-readlistener" class="hash-link" aria-label="Direct link to Compared to ReadListener" title="Direct link to Compared to ReadListener" translate="no"></a></h3>
+<p><code>AnalysisEventListener</code> and <code>ReadListener</code> are both interfaces provided by FesodSheet, designed to allow developers to
+perform customised processing when reading spreadsheet files. However, they have some key differences in terms of
+functionality and use cases.</p>
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="different">Different<a href="#different" class="hash-link" aria-label="Direct link to Different" title="Direct link to Different" translate="no"></a></h4>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Features</th><th><code>AnalysisEventListener</code></th><th><code>ReadListener</code></th></tr></thead><tbody><tr><td><strong>Interface Design</strong></td><td>Event-driven, processes each row of data and saves batch data</td><td>Callback interface, simplifies processing, suitable for simple use</td></tr><tr><td><strong>Memory Control</strong></td><td>Controls memory usage via <code>BATCH_COUNT</code>, suitable for large data volume processing</td><td>No dedicated m [...]
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="how-to-choose">How to choose<a href="#how-to-choose" class="hash-link" aria-label="Direct link to How to choose" title="Direct link to How to choose" translate="no"></a></h4>
+<p>Use <code>AnalysisEventListener</code>:</p>
+<ul>
+<li class="">If you need to control memory consumption, batch process data, or handle complex read logic (such as paginated reading
+or batch writing to a database).</li>
+<li class="">Suitable for processing large datasets, offering greater flexibility.</li>
+</ul>
+<p>Use <code>ReadListener</code>:</p>
+<ul>
+<li class="">If you want to simplify your code and do not have complex memory control requirements, and only need to handle the
+logic for each row of data.</li>
+<li class="">Suitable for simple spreadsheet data reading and exception handling scenarios.</li>
+</ul>
+<p>In summary, <code>ReadListener</code> is a more simplified interface suitable for simpler scenarios, while <code>AnalysisEventListener</code>
+offers greater control and scalability, making it suitable for complex data processing requirements. Developers can
+choose the appropriate listener based on their actual needs.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="converter">Converter<a href="#converter" class="hash-link" aria-label="Direct link to Converter" title="Direct link to Converter" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview-4">Overview<a href="#overview-4" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p><code>Converter</code> is an interface provided by FesodSheet for converting data when processing spreadsheet files. It allows
+developers
+to customise operations by implementing the <code>Converter</code> interface to define custom data conversion logic.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="methods-2">Methods<a href="#methods-2" class="hash-link" aria-label="Direct link to Methods" title="Direct link to Methods" translate="no"></a></h3>
+<p><code>Converter</code> is a generic interface, and the generic type is the object type to be converted (such as <code>Date</code>). Its core
+methods are as follows:</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Method Name</th><th>Description</th></tr></thead><tbody><tr><td><code>Class<?> supportJavaTypeKey()</code><em>(Optional)</em></td><td>Returns the supported Java object types.</td></tr><tr><td><code>CellDataTypeEnum supportExcelTypeKey()</code><em>(Optional)</em></td><td>Returns the supported cell types, enumerated as CellDataTypeEnum.</td></tr><tr><td><code>T convertToJavaData(ReadCellData<?> cellData, ExcelContentProperty contentProperty, GlobalConfigur [...]
+<p>FesodSheet provides many commonly used type converters by default, which are already registered in
+<code>DefaultConverterLoader</code>.</p>
+<p>You can customise converters, but the types must not overlap with the default types. When registering types, use
+<code>ConverterKeyBuild.buildKey(converter.supportJavaTypeKey(), converter.supportExcelTypeKey())</code> as the key value.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="use-cases-2">Use Cases<a href="#use-cases-2" class="hash-link" aria-label="Direct link to Use Cases" title="Direct link to Use Cases" translate="no"></a></h3>
+<ul>
+<li class=""><strong>Data Conversion</strong>: Convert spreadsheet data, such as converting dates to strings, converting strings to dates, etc.</li>
+</ul>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="implementation-steps-2">Implementation Steps<a href="#implementation-steps-2" class="hash-link" aria-label="Direct link to Implementation Steps" title="Direct link to Implementation Steps" translate="no"></a></h3>
+<ol>
+<li class="">Implement the <code>Converter</code> interface and its methods.</li>
+<li class="">Pass in a custom converter when reading or writing.</li>
+</ol>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="example-3">Example<a href="#example-3" class="hash-link" aria-label="Direct link to Example" title="Direct link to Example" translate="no"></a></h3>
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="timestampnumber-converter">TimestampNumber Converter<a href="#timestampnumber-converter" class="hash-link" aria-label="Direct link to TimestampNumber Converter" title="Direct link to TimestampNumber Converter" translate="no"></a></h4>
+<p>Implement <code>Converter</code></p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<p>Use</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/sheet/help/faq/index.html b/docs/sheet/help/faq/index.html
new file mode 100644
index 00000000..994c429f
--- /dev/null
+++ b/docs/sheet/help/faq/index.html
@@ -0,0 +1,299 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-sheet/help/faq" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">FAQ | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/sheet/help/faq"><meta [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This section describes common issues that may arise when using this project.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="feature-limitations">Feature Limitations<a href="#feature-limitations" class="hash-link" aria-label="Direct link to Feature Limitations" title="Direct link to Feature Limitations" translate="no"></a></h2>
+<ul>
+<li class=""><strong>Q:</strong> What functions does FesodSheet support? What functions are not supported?</li>
+<li class=""><strong>A:</strong> FesodSheet supports efficient reading and writing operations for spreadsheet files, including support for CSV
+format.
+Unsupported functions include concurrent writing to a single file, reading and writing image macros, etc.</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="choosing-write-operations">Choosing Write Operations<a href="#choosing-write-operations" class="hash-link" aria-label="Direct link to Choosing Write Operations" title="Direct link to Choosing Write Operations" translate="no"></a></h2>
+<ul>
+<li class=""><strong>Q:</strong> When writing to spreadsheet, when should I choose the fill mode and when should I choose direct writing?</li>
+<li class=""><strong>A:</strong> For complex export content, it is recommended to use template filling; for simple format scenarios, direct
+writing is more efficient.</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="lombok-annotations">Lombok Annotations<a href="#lombok-annotations" class="hash-link" aria-label="Direct link to Lombok Annotations" title="Direct link to Lombok Annotations" translate="no"></a></h2>
+<ul>
+<li class=""><strong>Q:</strong> What is the role of Lombok annotations in using FesodSheet?</li>
+<li class=""><strong>A:</strong> Commonly used Lombok annotations in entity classes such as <code>@Getter</code>, <code>@Setter</code>, <code>@EqualsAndHashCode</code> are used
+to automatically generate getter, setter methods, equals, and hashCode methods. If you do not want to use these
+auto-generated methods, you can implement them yourself.</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="field-matching">Field Matching<a href="#field-matching" class="hash-link" aria-label="Direct link to Field Matching" title="Direct link to Field Matching" translate="no"></a></h2>
+<ul>
+<li class=""><strong>Q:</strong> How to solve the problem of some fields not being read or written correctly?</li>
+<li class=""><strong>A:</strong> Ensure that the entity class fields follow the camel case naming convention, avoid using
+<code>@Accessors(chain = true)</code>, and recommend using <code>@Builder</code> instead. Also, ensure that the entity class uses the
+<code>@ExcelProperty</code> annotation to mark the fields participating in reading and writing.</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="compatibility-issues">Compatibility Issues<a href="#compatibility-issues" class="hash-link" aria-label="Direct link to Compatibility Issues" title="Direct link to Compatibility Issues" translate="no"></a></h2>
+<ul>
+<li class=""><strong>Q:</strong> What should I do if I encounter compatibility issues when using FesodSheet?</li>
+<li class=""><strong>A:</strong> Common compatibility issues include <code>NoSuchMethodException</code>, <code>ClassNotFoundException</code>, <code>NoClassDefFoundError</code>,
+etc., usually caused by jar conflicts. It is recommended to check and clean up dependencies in the project to ensure
+that the version of FesodSheet used is compatible with other libraries in the project.</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="online-deployment">Online Deployment<a href="#online-deployment" class="hash-link" aria-label="Direct link to Online Deployment" title="Direct link to Online Deployment" translate="no"></a></h2>
+<ul>
+<li class=""><strong>Q:</strong> Why are there issues in the online environment when it runs fine locally?</li>
+<li class=""><strong>A:</strong> In most cases, this is due to the lack of necessary font libraries in the online environment. You can solve
+this problem by installing font libraries (such as <code>dejavu-sans-fonts</code> and <code>fontconfig</code>) or enabling memory processing
+mode.</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="concurrent-reading">Concurrent Reading<a href="#concurrent-reading" class="hash-link" aria-label="Direct link to Concurrent Reading" title="Direct link to Concurrent Reading" translate="no"></a></h2>
+<ul>
+<li class=""><strong>Q:</strong> Why shouldn't the Listener be managed by Spring?</li>
+<li class=""><strong>A:</strong> Listeners should not be managed by Spring because this would cause the Listener to become a singleton, which
+may lead to data confusion when reading files concurrently. A new Listener instance should be created each time a file
+is read.</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="performance-optimization">Performance Optimization<a href="#performance-optimization" class="hash-link" aria-label="Direct link to Performance Optimization" title="Direct link to Performance Optimization" translate="no"></a></h2>
+<ul>
+<li class=""><strong>Q:</strong> For large files over 10M, what reading strategies does FesodSheet provide?</li>
+<li class=""><strong>A:</strong> FesodSheet supports default large file processing strategies, as well as customizable high-speed modes and
+optimization settings for high concurrency and super large files.</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="writing-and-format-setting">Writing and Format Setting<a href="#writing-and-format-setting" class="hash-link" aria-label="Direct link to Writing and Format Setting" title="Direct link to Writing and Format Setting" translate="no"></a></h2>
+<ul>
+<li class=""><strong>Q:</strong> How to set cell formats?</li>
+<li class=""><strong>A:</strong> You can set cell formats by using annotations such as <code>@ContentStyle</code> on entity class properties, for example,
+numeric formats, date formats, etc.</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="export-issues">Export Issues<a href="#export-issues" class="hash-link" aria-label="Direct link to Export Issues" title="Direct link to Export Issues" translate="no"></a></h2>
+<ul>
+<li class=""><strong>Q:</strong> How to resolve the issue of spreadsheet files exported cannot be opened or prompt for repair?</li>
+<li class=""><strong>A:</strong> This is usually caused by frontend frameworks or backend interceptors modifying the file stream. It is
+recommended to test local exports first, ensure the backend logic is correct, and then investigate frontend and
+network-related issues.</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="large-file-reading-optimization">Large File Reading Optimization<a href="#large-file-reading-optimization" class="hash-link" aria-label="Direct link to Large File Reading Optimization" title="Direct link to Large File Reading Optimization" translate="no"></a></h2>
+<ul>
+<li class=""><strong>Q:</strong> How does FesodSheet optimize memory usage when reading large files?</li>
+<li class=""><strong>A:</strong> FesodSheet automatically determines the processing method for large files. For files with shared strings
+exceeding 5MB, a file storage strategy is used to reduce memory usage. You can enable ultra-fast mode by setting the
+<code>readCache</code> parameter, but this will increase memory consumption.</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="concurrent-processing">Concurrent Processing<a href="#concurrent-processing" class="hash-link" aria-label="Direct link to Concurrent Processing" title="Direct link to Concurrent Processing" translate="no"></a></h2>
+<ul>
+<li class=""><strong>Q:</strong> How to efficiently read spreadsheet files in a high-concurrency environment?</li>
+<li class=""><strong>A:</strong> In a high-concurrency environment, you can optimize reading performance using <code>SimpleReadCacheSelector</code>. By
+setting the <code>maxUseMapCacheSize</code> and <code>maxCacheActivateBatchCount</code> parameters, you can control the cache strategy for
+shared strings, improve hit rates, and reduce file read delays.</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="field-mapping">Field Mapping<a href="#field-mapping" class="hash-link" aria-label="Direct link to Field Mapping" title="Direct link to Field Mapping" translate="no"></a></h2>
+<ul>
+<li class="">
+<p><strong>Q:</strong> How to handle cases where entity class fields do not match spreadsheet column names?</p>
+</li>
+<li class="">
+<p><strong>A:</strong> You can use the <code>@ExcelProperty</code> annotation to specify the correspondence between entity class fields and
+spreadsheet column names. For example:</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@ExcelProperty</span><span class="token punctuation" [...]
+</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="data-validation">Data Validation<a href="#data-validation" class="hash-link" aria-label="Direct link to Data Validation" title="Direct link to Data Validation" translate="no"></a></h2>
+<ul>
+<li class="">
+<p><strong>Q:</strong> How to validate data when reading spreadsheet data?</p>
+</li>
+<li class="">
+<p><strong>A:</strong> Data validation logic can be implemented in the <code>ReadListener</code>. For example:</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token k [...]
+</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="custom-styles">Custom Styles<a href="#custom-styles" class="hash-link" aria-label="Direct link to Custom Styles" title="Direct link to Custom Styles" translate="no"></a></h2>
+<ul>
+<li class="">
+<p><strong>Q:</strong> How to customize cell styles?</p>
+</li>
+<li class="">
+<p><strong>A:</strong> You can customize cell styles by implementing the <code>WriteHandler</code> interface. For example:</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token k [...]
+</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="fill-mode">Fill Mode<a href="#fill-mode" class="hash-link" aria-label="Direct link to Fill Mode" title="Direct link to Fill Mode" translate="no"></a></h2>
+<ul>
+<li class="">
+<p><strong>Q:</strong> How to solve the issue of fields not being replaced in fill mode?</p>
+</li>
+<li class="">
+<p><strong>A:</strong> Using the <code>inMemory(true)</code> parameter can ensure correct field replacement. For example:</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token class-name">FesodSheet</span><span class="token punctuation" style="color:#393A34">.</span><span c [...]
+</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="error-handling">Error Handling<a href="#error-handling" class="hash-link" aria-label="Direct link to Error Handling" title="Direct link to Error Handling" translate="no"></a></h2>
+<ul>
+<li class="">
+<p><strong>Q:</strong> How to handle exceptions thrown during the reading process?</p>
+</li>
+<li class="">
+<p><strong>A:</strong> Exceptions can be caught and handled in the <code>ReadListener</code>. For example:</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token k [...]
+</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="dependency-conflict">Dependency Conflict<a href="#dependency-conflict" class="hash-link" aria-label="Direct link to Dependency Conflict" title="Direct link to Dependency Conflict" translate="no"></a></h2>
+<ul>
+<li class=""><strong>Q:</strong> How to resolve dependency conflict issues?</li>
+<li class=""><strong>A:</strong> Common dependency conflicts include POI, ehcache, commons-io, etc. It is recommended to check the dependency
+tree in the project, ensure that the versions used are compatible with FesodSheet. You can use the Maven
+<code>dependency:tree</code> command to view the dependency tree.</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="performance-monitoring">Performance Monitoring<a href="#performance-monitoring" class="hash-link" aria-label="Direct link to Performance Monitoring" title="Direct link to Performance Monitoring" translate="no"></a></h2>
+<ul>
+<li class="">
+<p><strong>Q:</strong> How to monitor the performance of FesodSheet?</p>
+</li>
+<li class="">
+<p><strong>A:</strong> You can monitor the performance of FesodSheet by enabling debug logging. For example:</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token class-name">LoggerContext</span><span class="token plain"> lc </span><span class="token operator" [...]
+</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="multi-sheet-reading">Multi-Sheet Reading<a href="#multi-sheet-reading" class="hash-link" aria-label="Direct link to Multi-Sheet Reading" title="Direct link to Multi-Sheet Reading" translate="no"></a></h2>
+<ul>
+<li class="">
+<p><strong>Q:</strong> How to monitor the performance of FesodSheet?</p>
+</li>
+<li class="">
+<p><strong>A:</strong> You can monitor the performance of FesodSheet by enabling debug logging. For example:</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token class-name">FesodSheet</span><span class="token punctuation" style="color:#393A34">.</span><span c [...]
+<p>Alternatively, you can get information on all sheets before reading:</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token class-name">ExcelReader</span><span class="token plain"> excelReader </span><span class="token ope [...]
+</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="get-total-rows">Get Total Rows<a href="#get-total-rows" class="hash-link" aria-label="Direct link to Get Total Rows" title="Direct link to Get Total Rows" translate="no"></a></h2>
+<ul>
+<li class="">
+<p><strong>Q:</strong> How to get the total number of rows in a spreadsheet file?</p>
+</li>
+<li class="">
+<p><strong>A:</strong> You can use <code>analysisContext.readSheetHolder().getApproximateTotalRowNumber()</code> method in the listener to get an
+approximate number of rows. For example:</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Override</span><span class="token plain"></span><br [...]
+</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="memory-mode">Memory Mode<a href="#memory-mode" class="hash-link" aria-label="Direct link to Memory Mode" title="Direct link to Memory Mode" translate="no"></a></h2>
+<ul>
+<li class="">
+<p><strong>Q:</strong> How to use memory mode to process spreadsheet files?</p>
+</li>
+<li class="">
+<p><strong>A:</strong> Memory mode is suitable for processing smaller files and can significantly improve processing speed. For
+example:</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token class-name">FesodSheet</span><span class="token punctuation" style="color:#393A34">.</span><span c [...]
+</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="read-csv-files">Read CSV Files<a href="#read-csv-files" class="hash-link" aria-label="Direct link to Read CSV Files" title="Direct link to Read CSV Files" translate="no"></a></h2>
+<ul>
+<li class="">
+<p><strong>Q:</strong> How to read CSV files and modify the delimiter?</p>
+</li>
+<li class="">
+<p><strong>A:</strong> You can modify the delimiter of CSV files by setting <code>CsvFormat</code>. For example:</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token class-name">FesodSheet</span><span class="token punctuation" style="color:#393A34">.</span><span c [...]
+</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="custom-read-listener">Custom Read Listener<a href="#custom-read-listener" class="hash-link" aria-label="Direct link to Custom Read Listener" title="Direct link to Custom Read Listener" translate="no"></a></h2>
+<ul>
+<li class="">
+<p><strong>Q:</strong> How to customize the read listener?</p>
+</li>
+<li class="">
+<p><strong>A:</strong> You can inherit the <code>AnalysisEventListener</code> class and implement your own logic. For example:</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token k [...]
+</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="ignore-unannotated-fields-during-reading">Ignore Unannotated Fields During Reading<a href="#ignore-unannotated-fields-during-reading" class="hash-link" aria-label="Direct link to Ignore Unannotated Fields During Reading" title="Direct link to Ignore Unannotated Fields During Reading" translate="no"></a></h2>
+<ul>
+<li class="">
+<p><strong>Q:</strong> How to ignore fields not annotated with <code>@ExcelProperty</code> during reading?</p>
+</li>
+<li class="">
+<p><strong>A:</strong> Add the <code>@ExcelIgnoreUnannotated</code> annotation at the top of the class. For example:</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Data</span><span class="token plain"></span><br></s [...]
+</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="set-header-style-during-export">Set Header Style During Export<a href="#set-header-style-during-export" class="hash-link" aria-label="Direct link to Set Header Style During Export" title="Direct link to Set Header Style During Export" translate="no"></a></h2>
+<ul>
+<li class="">
+<p><strong>Q:</strong> How to set header style during export?</p>
+</li>
+<li class="">
+<p><strong>A:</strong> You can customize the header style by implementing the <code>WriteHandler</code> interface. For example:</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token k [...]
+</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="set-cell-data-format-during-export">Set Cell Data Format During Export<a href="#set-cell-data-format-during-export" class="hash-link" aria-label="Direct link to Set Cell Data Format During Export" title="Direct link to Set Cell Data Format During Export" translate="no"></a></h2>
+<ul>
+<li class="">
+<p><strong>Q:</strong> How to set the data format of cells during export?</p>
+</li>
+<li class="">
+<p><strong>A:</strong> You can set the data format by using the <code>@ContentStyle</code> annotation on entity class properties. For example:</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@ExcelProperty</span><span class="token punctuation" [...]
+</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="merge-cells-during-export">Merge Cells During Export<a href="#merge-cells-during-export" class="hash-link" aria-label="Direct link to Merge Cells During Export" title="Direct link to Merge Cells During Export" translate="no"></a></h2>
+<ul>
+<li class="">
+<p><strong>Q:</strong> How to merge cells during export?</p>
+</li>
+<li class="">
+<p><strong>A:</strong> You can customize the logic for merging cells by implementing the <code>WriteHandler</code> interface. For example:</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token k [...]
+</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="set-font-during-export">Set Font During Export<a href="#set-font-during-export" class="hash-link" aria-label="Direct link to Set Font During Export" title="Direct link to Set Font During Export" translate="no"></a></h2>
+<ul>
+<li class="">
+<p><strong>Q:</strong> How to set the font of cells during export?</p>
+</li>
+<li class="">
+<p><strong>A:</strong> You can set the font by creating a <code>Font</code> object and applying it to the <code>CellStyle</code>. For example:</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token k [...]
+</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="handle-null-values-during-reading">Handle Null Values During Reading<a href="#handle-null-values-during-reading" class="hash-link" aria-label="Direct link to Handle Null Values During Reading" title="Direct link to Handle Null Values During Reading" translate="no"></a></h2>
+<ul>
+<li class="">
+<p><strong>Q:</strong> How to handle null values during reading?</p>
+</li>
+<li class="">
+<p><strong>A:</strong> You can handle null values in the <code>ReadListener</code>. For example:</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token k [...]
+</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="data-filtering-during-reading">Data Filtering During Reading<a href="#data-filtering-during-reading" class="hash-link" aria-label="Direct link to Data Filtering During Reading" title="Direct link to Data Filtering During Reading" translate="no"></a></h2>
+<ul>
+<li class="">
+<p><strong>Q:</strong> How to filter data during reading?</p>
+</li>
+<li class="">
+<p><strong>A:</strong> You can implement filtering logic in the <code>ReadListener</code>. For example:</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token k [...]
+</li>
+</ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_YM8j"><a href="https://github.com/apache/fesod/edit/main/website/docs/sheet/help/faq.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_hRvp" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9 [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/sheet/help/large-data/index.html b/docs/sheet/help/large-data/index.html
new file mode 100644
index 00000000..c78a49c2
--- /dev/null
+++ b/docs/sheet/help/large-data/index.html
@@ -0,0 +1,68 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-sheet/help/large-data" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Large Data | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/sheet/help/lar [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="reading">Reading<a href="#reading" class="hash-link" aria-label="Direct link to Reading" title="Direct link to Reading" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>When reading files larger than 10 MB, Microsoft Excel 03 is unable to handle them and consumes significantly more
+memory. Microsoft Excel 2007 introduces the concept
+of <a href="https://learn.microsoft.com/en-us/office/open-xml/spreadsheet/working-with-the-shared-string-table" target="_blank" rel="noopener noreferrer" class="">Shared Strings</a>,
+which can consume a significant amount of memory.
+If all shared strings are loaded into memory, the memory usage can be approximately 3 to 10 times the size of the spreadsheet
+file. Therefore, FesodSheet uses a strategy of first storing the file and then deserialising it to read the data,
+thereby
+saving memory. Of course, after deserialising the file, efficiency will decrease by approximately 30-50% (this is not
+fixed and depends on the hit rate, which may exceed 100%).</p>
+<p>If the read efficiency is acceptable, use the default setting. The permanent memory usage (for the entire process of
+reading a single spreadsheet file) generally does not exceed 50MB (most likely around 30MB), and the remaining temporary
+memory is quickly recycled by the garbage collector.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="default-policy">Default Policy<a href="#default-policy" class="hash-link" aria-label="Direct link to Default Policy" title="Direct link to Default Policy" translate="no"></a></h3>
+<p>By default, large file processing is automatically determined. Shared strings under 5M are stored in memory, which
+occupies approximately 15-50M of memory. Strings over 5M are stored in files, and file storage also requires additional
+memory to store temporary shared strings, with a default of 20M. Apart from the memory used by shared strings, other
+memory usage is minimal, so it can be estimated at 10MB. Therefore, the default of approximately 30MB is sufficient to
+read an extremely large file.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="configure-memory">Configure Memory<a href="#configure-memory" class="hash-link" aria-label="Direct link to Configure Memory" title="Direct link to Configure Memory" translate="no"></a></h3>
+<p>If you want to customise the settings, first determine how much memory you are willing to allocate for reading a very
+large spreadsheet file.
+For example, if you want the spreadsheet file to occupy a maximum of 100MB of memory during the reading process (this is the
+permanent memory usage during reading, not including memory immediately reclaimed by the young generation), then set the
+size of the shared string stored in the file to 20MB (less than 20MB is stored in memory, more than 20MB is stored in a
+temporary file), and then set the memory size occupied by the temporary shared string when stored in the file to
+approximately 90MB.</p>
+<p>If the maximum number of file entries is only a few hundred thousand, and the spreadsheet file is only a few dozen megabytes,
+and there is no high concurrency, and memory is sufficient,</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">// Force memory storage, so a 20M spreadsheet fil [...]
+<p>High concurrency requirements, and often involve extremely large files.</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">// The first parameter specifies how many MB of s [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="about-maxcacheactivatesize">About maxCacheActivateSize<a href="#about-maxcacheactivatesize" class="hash-link" aria-label="Direct link to About maxCacheActivateSize" title="Direct link to About maxCacheActivateSize" translate="no"></a></h3>
+<p>When using file storage, FesodSheet splits the shared string into batches of <strong>1000</strong> items and then stores them in file
+storage. Spreadsheets typically read shared strings in sequential order, so by default, 1000 entries (approximately 20MB) are
+kept in memory. If a match is found, the data is returned directly; if not, the file is read. Therefore, the size should
+not be set too small, as this makes it difficult to find a match and results in constant file reads. Conversely, setting
+it too large can consume excessive memory.</p>
+<p>To determine whether <code>maxCacheActivateSize</code> needs adjustment, enabling <code>debug</code> logs will output <code>Already put :4000000</code>
+as the last value, which can be estimated to be 4 million. Then, checking <code>Cache misses count:4001</code> yields a value of
+4,000. <code>4 million / 4,000 = 1,000</code> indicates that <code>maxCacheActivateSize</code> is already very reasonable. If the value is
+less than 500, there is a significant issue. Values between 500 and 1000 should be acceptable.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_YM8j"><a href="https://github.com/apache/fesod/edit/main/website/docs/sheet/help/large-data.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_ [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/sheet/help/parameter/index.html b/docs/sheet/help/parameter/index.html
new file mode 100644
index 00000000..3c167171
--- /dev/null
+++ b/docs/sheet/help/parameter/index.html
@@ -0,0 +1,443 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-sheet/help/parameter" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Parameter | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/sheet/help/para [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This section introduces the parameters used in the project.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="class-diagram">Class Diagram<a href="#class-diagram" class="hash-link" aria-label="Direct link to Class Diagram" title="Direct link to Class Diagram" translate="no"></a></h2>
+<!-- -->
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="general-parameters">General Parameters<a href="#general-parameters" class="hash-link" aria-label="Direct link to General Parameters" title="Direct link to General Parameters" translate="no"></a></h2>
+<p>All parameters inherit from <code>BasicParameter</code>.</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Name</th><th>Default Value</th><th>Description</th></tr></thead><tbody><tr><td>head</td><td>Empty</td><td>Choose one of <code>head</code> or <code>clazz</code>. Reads the list corresponding to the file header and matches the data based on the list. It is recommended to use class.</td></tr><tr><td>clazz</td><td>Empty</td><td>Choose one of <code>head</code> or <code>clazz</code>. Reads the class corresponding to the file header, and annotations can also be used. If ne [...]
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="reading-operations">Reading Operations<a href="#reading-operations" class="hash-link" aria-label="Direct link to Reading Operations" title="Direct link to Reading Operations" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="readbasicparameter">ReadBasicParameter<a href="#readbasicparameter" class="hash-link" aria-label="Direct link to ReadBasicParameter" title="Direct link to ReadBasicParameter" translate="no"></a></h3>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Name</th><th>Default Value</th><th>Description</th></tr></thead><tbody><tr><td>customReadListenerList</td><td>Empty</td><td>Can register multiple listeners. When reading spreadsheet, the listener's methods will be continuously called.</td></tr><tr><td>headRowNumber</td><td>1</td><td>The number of rows in the header of spreadsheet, default is 1 row.</td></tr></tbody></table>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="readworkbook">ReadWorkbook<a href="#readworkbook" class="hash-link" aria-label="Direct link to ReadWorkbook" title="Direct link to ReadWorkbook" translate="no"></a></h3>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Name</th><th>Default Value</th><th>Description</th></tr></thead><tbody><tr><td>excelType</td><td>Empty</td><td>The current type of spreadsheet, supports XLS, XLSX, CSV.</td></tr><tr><td>inputStream</td><td>Empty</td><td>Choose between <code>file</code> and <code>inputStream</code>. Reads the file stream. If a stream is received, it is used directly. If not, it is recommended to use the <code>file</code> parameter. Using <code>inputStream</code> will help create temp [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="readsheet">ReadSheet<a href="#readsheet" class="hash-link" aria-label="Direct link to ReadSheet" title="Direct link to ReadSheet" translate="no"></a></h3>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Name</th><th>Default Value</th><th>Description</th></tr></thead><tbody><tr><td>sheetNo</td><td>0</td><td>The code of the Sheet to be read, recommended to use this to specify which Sheet to read.</td></tr><tr><td>sheetName</td><td>Empty</td><td>Match the Sheet by name.</td></tr><tr><td>sheetHidden</td><td>false</td><td>Normal Hidden Status</td></tr><tr><td>sheetVeryHidden</td><td>false</td><td>Absolute Hidden State</td></tr><tr><td>numRows</td><td>0</td><td>Read the [...]
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="writing-operations">Writing Operations<a href="#writing-operations" class="hash-link" aria-label="Direct link to Writing Operations" title="Direct link to Writing Operations" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="writebasicparameter">WriteBasicParameter<a href="#writebasicparameter" class="hash-link" aria-label="Direct link to WriteBasicParameter" title="Direct link to WriteBasicParameter" translate="no"></a></h3>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Name</th><th>Default Value</th><th>Description</th></tr></thead><tbody><tr><td>customWriteHandlerList</td><td>Empty</td><td>Writing handler. Can implement <code>WorkbookWriteHandler</code>, <code>SheetWriteHandler</code>, <code>RowWriteHandler</code>, <code>CellWriteHandler</code>, which will be called at different stages of writing to spreadsheet.</td></tr><tr><td>relativeHeadRowIndex</td><td>0</td><td>Number of rows to leave blank above spreadsheet.</td></tr><tr>< [...]
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="header-merge-strategy">Header Merge Strategy<a href="#header-merge-strategy" class="hash-link" aria-label="Direct link to Header Merge Strategy" title="Direct link to Header Merge Strategy" translate="no"></a></h4>
+<p>The <code>headerMergeStrategy</code> parameter provides fine-grained control over how headers are merged:</p>
+<ul>
+<li class=""><strong>NONE</strong>: No automatic merging is performed.</li>
+<li class=""><strong>HORIZONTAL_ONLY</strong>: Only merges cells horizontally (same row).</li>
+<li class=""><strong>VERTICAL_ONLY</strong>: Only merges cells vertically (same column).</li>
+<li class=""><strong>FULL_RECTANGLE</strong>: Only merges complete rectangular regions where all cells have the same name.</li>
+<li class=""><strong>AUTO</strong>: Automatic merging (default behavior for backward compatibility).</li>
+</ul>
+<p><strong>Example</strong>:</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token class-name">FesodSheet</span><span class="token punctuation" style="color:#393A34">.</span><span c [...]
+<p><strong>Note</strong>: If <code>headerMergeStrategy</code> is not set, the behavior is determined by <code>automaticMergeHead</code>:</p>
+<ul>
+<li class=""><code>automaticMergeHead == true</code> → <code>HeaderMergeStrategy.AUTO</code></li>
+<li class=""><code>automaticMergeHead == false</code> → <code>HeaderMergeStrategy.NONE</code></li>
+</ul>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="writeworkbook">WriteWorkbook<a href="#writeworkbook" class="hash-link" aria-label="Direct link to WriteWorkbook" title="Direct link to WriteWorkbook" translate="no"></a></h3>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Name</th><th>Default Value</th><th>Description</th></tr></thead><tbody><tr><td>excelType</td><td>Empty</td><td>The current type of spreadsheet, supports XLS, XLSX, CSV.</td></tr><tr><td>outputStream</td><td>Empty</td><td>Choose between <code>file</code> and <code>outputStream</code>. Writes the file stream.</td></tr><tr><td>file</td><td>Empty</td><td>Choose between <code>outputStream</code> and <code>file</code>. Writes the file.</td></tr><tr><td>templateInputStream [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="writesheet">WriteSheet<a href="#writesheet" class="hash-link" aria-label="Direct link to WriteSheet" title="Direct link to WriteSheet" translate="no"></a></h3>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Name</th><th>Default Value</th><th>Description</th></tr></thead><tbody><tr><td>sheetNo</td><td>0</td><td>Code of the Sheet to be written.</td></tr><tr><td>sheetName</td><td>Empty</td><td>Name of the Sheet to be written, defaults to <code>sheetNo</code>.</td></tr></tbody></table>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="writetable">WriteTable<a href="#writetable" class="hash-link" aria-label="Direct link to WriteTable" title="Direct link to WriteTable" translate="no"></a></h3>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Name</th><th>Default Value</th><th>Description</th></tr></thead><tbody><tr><td>tableNo</td><td>0</td><td>Code of the table to be written.</td></tr></tbody></table></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_YM8j"><a href="https://github.com/apache/fesod/edit/main/website/docs/sheet/help/parameter.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/sheet/read/converter/index.html b/docs/sheet/read/converter/index.html
new file mode 100644
index 00000000..fbd75243
--- /dev/null
+++ b/docs/sheet/read/converter/index.html
@@ -0,0 +1,36 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-sheet/read/converter" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Converter | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/sheet/read/conv [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>Fesod supports date, number, and custom format conversions.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h2>
+<p>During usage, we may need to convert read or written data into specific formats. Fesod provides a flexible converter
+mechanism that allows users to define custom data conversion rules to meet various business requirements.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="example">Example<a href="#example" class="hash-link" aria-label="Direct link to Example" title="Direct link to Example" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="pojo-class">POJO Class<a href="#pojo-class" class="hash-link" aria-label="Direct link to POJO Class" title="Direct link to POJO Class" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="converter">Converter<a href="#converter" class="hash-link" aria-label="Direct link to Converter" title="Direct link to Converter" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token k [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example">Code Example<a href="#code-example" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/sheet/read/csv/index.html b/docs/sheet/read/csv/index.html
new file mode 100644
index 00000000..3a4504c5
--- /dev/null
+++ b/docs/sheet/read/csv/index.html
@@ -0,0 +1,108 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-sheet/read/csv" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">CSV | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/sheet/read/csv"><meta [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This chapter introduces how to use Fesod to read custom CSV files.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h2>
+<p>Fesod reads CSV files through different parameter configurations. It
+uses <a href="https://commons.apache.org/proper/commons-csv" target="_blank" rel="noopener noreferrer" class="">Apache Commons CSV</a> as the underlying implementation and also
+supports direct configuration
+through <a href="https://commons.apache.org/proper/commons-csv/apidocs/org/apache/commons/csv/CSVFormat.html" target="_blank" rel="noopener noreferrer" class="">CSVFormat</a>
+settings to achieve reading objectives.</p>
+<p>The main parameters are as follows:</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th style="text-align:left">Name</th><th style="text-align:left">Default Value</th><th style="text-align:left">Description</th></tr></thead><tbody><tr><td style="text-align:left"><code>delimiter</code></td><td style="text-align:left"><code>,</code> (comma)</td><td style="text-align:left">Field delimiter. It's recommended to use predefined constants from <code>CsvConstant</code>, such as <code>CsvConstant.AT</code>(<code>@</code>), <code>CsvConstant.TAB</code>, etc. [...]
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="parameter-details-and-examples">Parameter Details and Examples<a href="#parameter-details-and-examples" class="hash-link" aria-label="Direct link to Parameter Details and Examples" title="Direct link to Parameter Details and Examples" translate="no"></a></h2>
+<p>The following sections will explain each parameter in detail with code examples.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="delimiter">delimiter<a href="#delimiter" class="hash-link" aria-label="Direct link to delimiter" title="Direct link to delimiter" translate="no"></a></h3>
+<p><code>delimiter</code> specifies the field separator in CSV files. The default value is a comma <code>,</code>.
+Additionally, Fesod provides constants in <code>CsvConstant</code> to simplify usage.</p>
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example">Code Example<a href="#code-example" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h4>
+<p>If the CSV file uses <code>\u0000</code> as the separator, you can configure it as follows:</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="quote">quote<a href="#quote" class="hash-link" aria-label="Direct link to quote" title="Direct link to quote" translate="no"></a></h3>
+<p><code>quote</code> specifies the quote character that wraps fields. The default value is double quote <code>"</code>.
+This should be set when field content contains delimiters or line breaks.</p>
+<blockquote>
+<p>Note: This cannot be the same as the <code>recordSeparator</code> setting. It's recommended to use in combination with
+<code>QuoteMode</code>.</p>
+</blockquote>
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example-1">Code Example<a href="#code-example-1" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="recordseparator">recordSeparator<a href="#recordseparator" class="hash-link" aria-label="Direct link to recordSeparator" title="Direct link to recordSeparator" translate="no"></a></h3>
+<p><code>recordSeparator</code> specifies the line separator in the file. Different operating systems may use different line
+separators (for example, Windows uses <code>CRLF</code>, while Unix/Linux uses <code>LF</code>).</p>
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example-2">Code Example<a href="#code-example-2" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="nullstring">nullString<a href="#nullstring" class="hash-link" aria-label="Direct link to nullString" title="Direct link to nullString" translate="no"></a></h3>
+<p><code>nullString</code> defines a specific string in the file that represents <code>null</code> values. For example, you can parse the string
+<code>"N/A"</code> as a <code>null</code> object.</p>
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example-3">Code Example<a href="#code-example-3" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="escape">escape<a href="#escape" class="hash-link" aria-label="Direct link to escape" title="Direct link to escape" translate="no"></a></h3>
+<p><code>escape</code> specifies an escape character that can be used when quote characters (<code>quote</code>) appear within field values.</p>
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example-4">Code Example<a href="#code-example-4" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="csvformat-configuration-details-and-examples">CSVFormat Configuration Details and Examples<a href="#csvformat-configuration-details-and-examples" class="hash-link" aria-label="Direct link to CSVFormat Configuration Details and Examples" title="Direct link to CSVFormat Configuration Details and Examples" translate="no"></a></h2>
+<p>Supports directly building a <code>CSVFormat</code> object.</p>
+<blockquote>
+<p>Fesod currently still supports this approach, but it's not the most recommended usage method.</p>
+</blockquote>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example-5">Code Example<a href="#code-example-5" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/sheet/read/exception/index.html b/docs/sheet/read/exception/index.html
new file mode 100644
index 00000000..688ceab4
--- /dev/null
+++ b/docs/sheet/read/exception/index.html
@@ -0,0 +1,32 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-sheet/read/exception" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Exception | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/sheet/read/exce [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This chapter introduces how to handle exceptions.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h2>
+<p>Handle data conversion or other reading exceptions by overriding the <code>onException</code> method in the listener.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="data-listener">Data Listener<a href="#data-listener" class="hash-link" aria-label="Direct link to Data Listener" title="Direct link to Data Listener" translate="no"></a></h2>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example">Code Example<a href="#code-example" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h2>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/sheet/read/extra/index.html b/docs/sheet/read/extra/index.html
new file mode 100644
index 00000000..8ff2fe1e
--- /dev/null
+++ b/docs/sheet/read/extra/index.html
@@ -0,0 +1,49 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-sheet/read/extra" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Extra | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/sheet/read/extra">< [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This chapter introduces how to read extra information such as comments, hyperlinks, merged cells, etc.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="comments">Comments<a href="#comments" class="hash-link" aria-label="Direct link to Comments" title="Direct link to Comments" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Read extra comment information.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="data-listener">Data Listener<a href="#data-listener" class="hash-link" aria-label="Direct link to Data Listener" title="Direct link to Data Listener" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example">Code Example<a href="#code-example" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="hyperlinks">Hyperlinks<a href="#hyperlinks" class="hash-link" aria-label="Direct link to Hyperlinks" title="Direct link to Hyperlinks" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview-1">Overview<a href="#overview-1" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Read extra hyperlink information.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="data-listener-1">Data Listener<a href="#data-listener-1" class="hash-link" aria-label="Direct link to Data Listener" title="Direct link to Data Listener" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example-1">Code Example<a href="#code-example-1" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="merged-cells">Merged Cells<a href="#merged-cells" class="hash-link" aria-label="Direct link to Merged Cells" title="Direct link to Merged Cells" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview-2">Overview<a href="#overview-2" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Read merged cell range information.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="data-listener-2">Data Listener<a href="#data-listener-2" class="hash-link" aria-label="Direct link to Data Listener" title="Direct link to Data Listener" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example-2">Code Example<a href="#code-example-2" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/sheet/read/head/index.html b/docs/sheet/read/head/index.html
new file mode 100644
index 00000000..8b117190
--- /dev/null
+++ b/docs/sheet/read/head/index.html
@@ -0,0 +1,46 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-sheet/read/head" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Head | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/sheet/read/head"><me [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This chapter introduces how to read header data from the spreadsheet files.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="reading-header-data">Reading Header Data<a href="#reading-header-data" class="hash-link" aria-label="Direct link to Reading Header Data" title="Direct link to Reading Header Data" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>You can obtain header information by overriding the <code>invokeHead</code> method in the listener.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="data-listener">Data Listener<a href="#data-listener" class="hash-link" aria-label="Direct link to Data Listener" title="Direct link to Data Listener" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example">Code Example<a href="#code-example" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="multi-row-header-reading">Multi-Row Header Reading<a href="#multi-row-header-reading" class="hash-link" aria-label="Direct link to Multi-Row Header Reading" title="Direct link to Multi-Row Header Reading" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview-1">Overview<a href="#overview-1" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Parse multi-row headers by setting the <code>headRowNumber</code> parameter or automatically based on header annotations in entity
+classes.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example-1">Code Example<a href="#code-example-1" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="header-pojo">Header POJO<a href="#header-pojo" class="hash-link" aria-label="Direct link to Header POJO" title="Direct link to Header POJO" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview-2">Overview<a href="#overview-2" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Set header POJO using the <code>head()</code> method.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example-2">Code Example<a href="#code-example-2" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/sheet/read/num-rows/index.html b/docs/sheet/read/num-rows/index.html
new file mode 100644
index 00000000..0dcfb29e
--- /dev/null
+++ b/docs/sheet/read/num-rows/index.html
@@ -0,0 +1,39 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-sheet/read/num-rows" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Rows | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/sheet/read/num-rows" [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This chapter introduces how to read a specified number of rows.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h2>
+<p>During data analysis and processing, quickly viewing the first few rows of a spreadsheet file can help us better
+understand the data structure and content.
+By default, Fesod reads all data from the entire spreadsheet file.
+However, by setting the <code>numRows</code> parameter, you can limit the number of rows to read. 0 means no limit on the number of
+rows, i.e., read all rows. The row count includes header rows.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="all-sheets">All Sheets<a href="#all-sheets" class="hash-link" aria-label="Direct link to All Sheets" title="Direct link to All Sheets" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example">Code Example<a href="#code-example" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="single-sheet">Single Sheet<a href="#single-sheet" class="hash-link" aria-label="Direct link to Single Sheet" title="Direct link to Single Sheet" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example-1">Code Example<a href="#code-example-1" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/sheet/read/pojo/index.html b/docs/sheet/read/pojo/index.html
new file mode 100644
index 00000000..3590beee
--- /dev/null
+++ b/docs/sheet/read/pojo/index.html
@@ -0,0 +1,51 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-sheet/read/pojo" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">POJO | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/sheet/read/pojo"><me [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This chapter introduces how to read data by configuring POJO classes.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="reading-by-column-name-or-column-index">Reading by Column Name or Column Index<a href="#reading-by-column-name-or-column-index" class="hash-link" aria-label="Direct link to Reading by Column Name or Column Index" title="Direct link to Reading by Column Name or Column Index" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>You can read spreadsheet data by specifying <strong>column names</strong> or <strong>column indexes</strong>. This makes interaction with
+dynamically generated spreadsheet files more flexible.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="example-code">Example Code<a href="#example-code" class="hash-link" aria-label="Direct link to Example Code" title="Direct link to Example Code" translate="no"></a></h3>
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="pojo-class">POJO Class<a href="#pojo-class" class="hash-link" aria-label="Direct link to POJO Class" title="Direct link to POJO Class" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="代码示例">代码示例<a href="#代码示例" class="hash-link" aria-label="Direct link to 代码示例" title="Direct link to 代码示例" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="cell-objects">Cell Objects<a href="#cell-objects" class="hash-link" aria-label="Direct link to Cell Objects" title="Direct link to Cell Objects" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview-1">Overview<a href="#overview-1" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Use the <code>CellData</code> type to receive cell data to support formulas and various cell formats.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="pojo-class-1">POJO Class<a href="#pojo-class-1" class="hash-link" aria-label="Direct link to POJO Class" title="Direct link to POJO Class" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example">Code Example<a href="#code-example" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="without-pojo-classes-and-listeners">Without POJO Classes and Listeners<a href="#without-pojo-classes-and-listeners" class="hash-link" aria-label="Direct link to Without POJO Classes and Listeners" title="Direct link to Without POJO Classes and Listeners" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview-2">Overview<a href="#overview-2" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Fesod supports reading spreadsheet files directly without defining POJO classes, using <code>Map<Integer, String></code> to read
+data
+directly.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="data-listener">Data Listener<a href="#data-listener" class="hash-link" aria-label="Direct link to Data Listener" title="Direct link to Data Listener" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/sheet/read/sheet/index.html b/docs/sheet/read/sheet/index.html
new file mode 100644
index 00000000..4b043cd4
--- /dev/null
+++ b/docs/sheet/read/sheet/index.html
@@ -0,0 +1,55 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-sheet/read/sheet" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Sheet | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/sheet/read/sheet">< [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This chapter introduces how to configure Sheets to read data.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="reading-multiple-sheets">Reading Multiple Sheets<a href="#reading-multiple-sheets" class="hash-link" aria-label="Direct link to Reading Multiple Sheets" title="Direct link to Reading Multiple Sheets" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>You can read multiple sheets from a spreadsheet file, but the same sheet cannot be read repeatedly.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example">Code Example<a href="#code-example" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="reading-all-sheets">Reading All Sheets<a href="#reading-all-sheets" class="hash-link" aria-label="Direct link to Reading All Sheets" title="Direct link to Reading All Sheets" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="reading-specific-sheets">Reading Specific Sheets<a href="#reading-specific-sheets" class="hash-link" aria-label="Direct link to Reading Specific Sheets" title="Direct link to Reading Specific Sheets" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview-1">Overview<a href="#overview-1" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>You can read a specific sheet from a spreadsheet file, supporting specification by sheet index or name.</p>
+<blockquote>
+<p><strong>Note:</strong> Sheet names are limited to 31 characters in Microsoft Excel. When reading sheets by name, use the actual
+sheet name that appears in the Microsoft Excel file.</p>
+</blockquote>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example-1">Code Example<a href="#code-example-1" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="ignoring-hidden-sheets">Ignoring Hidden Sheets<a href="#ignoring-hidden-sheets" class="hash-link" aria-label="Direct link to Ignoring Hidden Sheets" title="Direct link to Ignoring Hidden Sheets" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview-2">Overview<a href="#overview-2" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>By setting the <code>ignoreHiddenSheet</code> parameter to true, data from sheets in "hidden" state will not be read.
+This supports both <strong>"normal hidden"</strong> and <strong>"very hidden"</strong> states.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example-2">Code Example<a href="#code-example-2" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<blockquote>
+<p>In Microsoft Excel, Sheets have two hidden states: "normal hidden (xlSheetHidden)" and "very hidden (
+xlSheetVeryHidden)". Very hidden can be set through <code>VBA</code>, and in this case, the hidden sheet cannot be unhidden
+through
+the "Unhide" operation.</p>
+</blockquote></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_YM8j"><a href="https://github.com/apache/fesod/edit/main/website/docs/sheet/read/sheet.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_hRvp" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0 [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/sheet/read/simple/index.html b/docs/sheet/read/simple/index.html
new file mode 100644
index 00000000..5b4cb789
--- /dev/null
+++ b/docs/sheet/read/simple/index.html
@@ -0,0 +1,74 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-sheet/read/simple" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Simple | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/sheet/read/simple" [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This chapter introduces how to use this project to perform simple spreadsheet reading operations.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="data-listeners">Data Listeners<a href="#data-listeners" class="hash-link" aria-label="Direct link to Data Listeners" title="Direct link to Data Listeners" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Fesod provides a listener mechanism for processing each row of data while reading spreadsheet files.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="usage">Usage<a href="#usage" class="hash-link" aria-label="Direct link to Usage" title="Direct link to Usage" translate="no"></a></h3>
+<p>Data listeners need to be instantiated and support various usage patterns.</p>
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="instantiation">Instantiation<a href="#instantiation" class="hash-link" aria-label="Direct link to Instantiation" title="Direct link to Instantiation" translate="no"></a></h4>
+<p>Listeners cannot be managed by Spring and must be re-instantiated each time a spreadsheet file is read.</p>
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="lambda-expressions"><code>Lambda</code> Expressions<a href="#lambda-expressions" class="hash-link" aria-label="Direct link to lambda-expressions" title="Direct link to lambda-expressions" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="anonymous-inner-classes">Anonymous Inner Classes<a href="#anonymous-inner-classes" class="hash-link" aria-label="Direct link to Anonymous Inner Classes" title="Direct link to Anonymous Inner Classes" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="data-listeners-1">Data Listeners<a href="#data-listeners-1" class="hash-link" aria-label="Direct link to Data Listeners" title="Direct link to Data Listeners" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="pojo-classes-and-listeners">POJO Classes and Listeners<a href="#pojo-classes-and-listeners" class="hash-link" aria-label="Direct link to POJO Classes and Listeners" title="Direct link to POJO Classes and Listeners" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview-1">Overview<a href="#overview-1" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Fesod provides a simple way to read spreadsheet files. Users only need to define a POJO class to represent the data
+structure, then read data through Fesod's listener mechanism.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="pojo-class">POJO Class<a href="#pojo-class" class="hash-link" aria-label="Direct link to POJO Class" title="Direct link to POJO Class" translate="no"></a></h3>
+<p>The <code>DemoData</code> POJO class corresponding to the spreadsheet structure:</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="data-listener">Data Listener<a href="#data-listener" class="hash-link" aria-label="Direct link to Data Listener" title="Direct link to Data Listener" translate="no"></a></h3>
+<p><code>DemoDataListener</code> is a custom listener used to process data read from spreadsheet.</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example">Code Example<a href="#code-example" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="without-pojo-classes-and-listeners">Without POJO Classes and Listeners<a href="#without-pojo-classes-and-listeners" class="hash-link" aria-label="Direct link to Without POJO Classes and Listeners" title="Direct link to Without POJO Classes and Listeners" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview-2">Overview<a href="#overview-2" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Fesod supports reading spreadsheet files directly without defining POJO classes, using <code>Map<Integer, String></code> to read
+data directly, where the key is the <strong>column index</strong> and the value is the <strong>cell data</strong>.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="data-listener-1">Data Listener<a href="#data-listener-1" class="hash-link" aria-label="Direct link to Data Listener" title="Direct link to Data Listener" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="synchronous-reading">Synchronous Reading<a href="#synchronous-reading" class="hash-link" aria-label="Direct link to Synchronous Reading" title="Direct link to Synchronous Reading" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview-3">Overview<a href="#overview-3" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Use the <code>doReadSync</code> method to directly read spreadsheet data into a list <strong>in memory</strong>. This method is recommended for
+scenarios with <strong>small data volumes</strong>. The read data can be either a list of POJO objects or a list of Maps.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="pojo-class-1">POJO Class<a href="#pojo-class-1" class="hash-link" aria-label="Direct link to POJO Class" title="Direct link to POJO Class" translate="no"></a></h3>
+<p>The <code>DemoData</code> POJO class corresponding to the spreadsheet structure:</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-examples">Code Examples<a href="#code-examples" class="hash-link" aria-label="Direct link to Code Examples" title="Direct link to Code Examples" translate="no"></a></h3>
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="reading-as-pojo-object-list">Reading as POJO Object List<a href="#reading-as-pojo-object-list" class="hash-link" aria-label="Direct link to Reading as POJO Object List" title="Direct link to Reading as POJO Object List" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="reading-as-map-list">Reading as Map List<a href="#reading-as-map-list" class="hash-link" aria-label="Direct link to Reading as Map List" title="Direct link to Reading as Map List" translate="no"></a></h4>
+<p>When not using POJOs, each row can be read as a Map, where the key is the column index and the value is the cell
+content.</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/sheet/read/spring/index.html b/docs/sheet/read/spring/index.html
new file mode 100644
index 00000000..3fd63660
--- /dev/null
+++ b/docs/sheet/read/spring/index.html
@@ -0,0 +1,55 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-sheet/read/spring" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Spring | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/sheet/read/spring" [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This chapter introduces how to integrate and use Fesod in the Spring framework to handle spreadsheet files uploaded by
+users.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h2>
+<p>By creating RESTful API endpoints, users can upload spreadsheet files using HTTP requests, and the server uses Fesod to
+parse the data.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="environment-dependencies">Environment Dependencies<a href="#environment-dependencies" class="hash-link" aria-label="Direct link to Environment Dependencies" title="Direct link to Environment Dependencies" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="maven">Maven<a href="#maven" class="hash-link" aria-label="Direct link to Maven" title="Direct link to Maven" translate="no"></a></h3>
+<p>Ensure the necessary dependencies are included in your pom.xml file:</p>
+<div class="language-xml codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-xml codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34" [...]
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="creating-upload-endpoints">Creating Upload Endpoints<a href="#creating-upload-endpoints" class="hash-link" aria-label="Direct link to Creating Upload Endpoints" title="Direct link to Creating Upload Endpoints" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="pojo-class">POJO Class<a href="#pojo-class" class="hash-link" aria-label="Direct link to POJO Class" title="Direct link to POJO Class" translate="no"></a></h3>
+<p>First, define a POJO class for mapping spreadsheet data:</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="data-listener">Data Listener<a href="#data-listener" class="hash-link" aria-label="Direct link to Data Listener" title="Direct link to Data Listener" translate="no"></a></h3>
+<p>Create a listener to handle each row of data:</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="spring-controller">Spring Controller<a href="#spring-controller" class="hash-link" aria-label="Direct link to Spring Controller" title="Direct link to Spring Controller" translate="no"></a></h3>
+<p>Create a controller to handle file upload requests:</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="complex-scenarios">Complex Scenarios<a href="#complex-scenarios" class="hash-link" aria-label="Direct link to Complex Scenarios" title="Direct link to Complex Scenarios" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="multi-template-parsing">Multi-Template Parsing<a href="#multi-template-parsing" class="hash-link" aria-label="Direct link to Multi-Template Parsing" title="Direct link to Multi-Template Parsing" translate="no"></a></h3>
+<p>By defining multiple different model classes and processing methods within the same listener, you can extend support for
+multi-template parsing as needed.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="exception-handling">Exception Handling<a href="#exception-handling" class="hash-link" aria-label="Direct link to Exception Handling" title="Direct link to Exception Handling" translate="no"></a></h3>
+<p>To improve user experience and ensure program robustness, exception handling logic needs to be added during data
+processing.
+You can override the <code>onException</code> method in custom listeners for detailed exception handling.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="practical-applications">Practical Applications<a href="#practical-applications" class="hash-link" aria-label="Direct link to Practical Applications" title="Direct link to Practical Applications" translate="no"></a></h3>
+<p>In real-world scenarios, parsed data may be stored in a database.
+Database interaction logic can be implemented in the <code>doAfterAllAnalysed</code> method to ensure data persistence.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_YM8j"><a href="https://github.com/apache/fesod/edit/main/website/docs/sheet/read/spring.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/sheet/write/csv/index.html b/docs/sheet/write/csv/index.html
new file mode 100644
index 00000000..909279c3
--- /dev/null
+++ b/docs/sheet/write/csv/index.html
@@ -0,0 +1,108 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-sheet/write/csv" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">CSV | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/sheet/write/csv"><met [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This chapter introduces how to use Fesod to write custom CSV files.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h2>
+<p>Fesod writes CSV files through different parameter configurations. It
+uses <a href="https://commons.apache.org/proper/commons-csv" target="_blank" rel="noopener noreferrer" class="">Apache Commons CSV</a> as the underlying implementation and also
+supports direct configuration
+through <a href="https://commons.apache.org/proper/commons-csv/apidocs/org/apache/commons/csv/CSVFormat.html" target="_blank" rel="noopener noreferrer" class="">CSVFormat</a>
+settings to achieve writing objectives.</p>
+<p>The main parameters are as follows:</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th style="text-align:left">Name</th><th style="text-align:left">Default Value</th><th style="text-align:left">Description</th></tr></thead><tbody><tr><td style="text-align:left"><code>delimiter</code></td><td style="text-align:left"><code>,</code> (comma)</td><td style="text-align:left">Field delimiter. It's recommended to use predefined constants from <code>CsvConstant</code>, such as <code>CsvConstant.AT</code> (<code>@</code>), <code>CsvConstant.TAB</code>, etc [...]
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="parameter-details-and-examples">Parameter Details and Examples<a href="#parameter-details-and-examples" class="hash-link" aria-label="Direct link to Parameter Details and Examples" title="Direct link to Parameter Details and Examples" translate="no"></a></h2>
+<p>The following sections will explain each parameter in detail with code examples.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="delimiter">delimiter<a href="#delimiter" class="hash-link" aria-label="Direct link to delimiter" title="Direct link to delimiter" translate="no"></a></h3>
+<p><code>delimiter</code> specifies the field separator in CSV files. The default value is a comma <code>,</code>. Additionally, Fesod
+provides constants in <code>CsvConstant</code> to simplify usage.</p>
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example">Code Example<a href="#code-example" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h4>
+<p>If the CSV file uses <code>\u0000</code> as the separator, you can configure it as follows:</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="quote">quote<a href="#quote" class="hash-link" aria-label="Direct link to quote" title="Direct link to quote" translate="no"></a></h3>
+<p><code>quote</code> specifies the quote character that wraps fields. The default value is double quote <code>"</code>. This should be set when
+field content contains delimiters or line breaks.</p>
+<blockquote>
+<p>Note: This cannot be the same as the <code>recordSeparator</code> setting. It's recommended to use in combination with
+<code>QuoteMode</code>.</p>
+</blockquote>
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example-1">Code Example<a href="#code-example-1" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="recordseparator">recordSeparator<a href="#recordseparator" class="hash-link" aria-label="Direct link to recordSeparator" title="Direct link to recordSeparator" translate="no"></a></h3>
+<p><code>recordSeparator</code> specifies the line separator in the file. Different operating systems may use different line
+separators (for example, Windows uses <code>CRLF</code>, while Unix/Linux uses <code>LF</code>).</p>
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example-2">Code Example<a href="#code-example-2" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="nullstring">nullString<a href="#nullstring" class="hash-link" aria-label="Direct link to nullString" title="Direct link to nullString" translate="no"></a></h3>
+<p><code>nullString</code> is used to replace <code>null</code> values with a specific string when writing to the file.
+For example, you can replace <code>null</code> objects with the string <code>"N/A"</code>.</p>
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example-3">Code Example<a href="#code-example-3" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="escape">escape<a href="#escape" class="hash-link" aria-label="Direct link to escape" title="Direct link to escape" translate="no"></a></h3>
+<p><code>escape</code> specifies the escape character. When <code>escape</code> is used, the output CSV will preserve and display the content.</p>
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example-4">Code Example<a href="#code-example-4" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="csvformat-configuration-details-and-examples">CSVFormat Configuration Details and Examples<a href="#csvformat-configuration-details-and-examples" class="hash-link" aria-label="Direct link to CSVFormat Configuration Details and Examples" title="Direct link to CSVFormat Configuration Details and Examples" translate="no"></a></h2>
+<p>Supports directly building a <code>CSVFormat</code> object.</p>
+<blockquote>
+<p>Fesod currently still supports this approach, but it's not the most recommended usage method.</p>
+</blockquote>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example-5">Code Example<a href="#code-example-5" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/sheet/write/extra/index.html b/docs/sheet/write/extra/index.html
new file mode 100644
index 00000000..a7c2d8c5
--- /dev/null
+++ b/docs/sheet/write/extra/index.html
@@ -0,0 +1,82 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-sheet/write/extra" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Extra | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/sheet/write/extra"> [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This chapter introduces how to write extra information such as comments, hyperlinks, formulas, merged cells, etc.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="comments">Comments<a href="#comments" class="hash-link" aria-label="Direct link to Comments" title="Direct link to Comments" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Add comments to specific cells through interceptors, suitable for annotations or special reminders.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example">Code Example<a href="#code-example" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<p>Custom interceptor</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<p>Usage</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="result">Result<a href="#result" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/commentWrite-d6757c6db4d4ee3ba71d9df3904e489f.png" width="364" height="295" class="img_VXcA"></p>
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="hyperlinks">Hyperlinks<a href="#hyperlinks" class="hash-link" aria-label="Direct link to Hyperlinks" title="Direct link to Hyperlinks" translate="no"></a></h2>
+<p>Write extra hyperlink information</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="pojo-class">POJO Class<a href="#pojo-class" class="hash-link" aria-label="Direct link to POJO Class" title="Direct link to POJO Class" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Getter</span><span class="token plain"></span><br>< [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example-1">Code Example<a href="#code-example-1" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="result-1">Result<a href="#result-1" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/writeCellDataWrite-4dacef4c542b683bc9477c595ba19c4c.png" width="576" height="158" class="img_VXcA"></p>
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="formulas">Formulas<a href="#formulas" class="hash-link" aria-label="Direct link to Formulas" title="Direct link to Formulas" translate="no"></a></h2>
+<p>Write extra formula information</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="pojo-class-1">POJO Class<a href="#pojo-class-1" class="hash-link" aria-label="Direct link to POJO Class" title="Direct link to POJO Class" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Getter</span><span class="token plain"></span><br>< [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example-2">Code Example<a href="#code-example-2" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="result-2">Result<a href="#result-2" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/writeCellDataWrite-4dacef4c542b683bc9477c595ba19c4c.png" width="576" height="158" class="img_VXcA"></p>
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="template-based-writing">Template-based Writing<a href="#template-based-writing" class="hash-link" aria-label="Direct link to Template-based Writing" title="Direct link to Template-based Writing" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview-1">Overview<a href="#overview-1" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Supports using existing template files and filling data into templates, suitable for standardized output.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example-3">Code Example<a href="#code-example-3" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="merged-cells">Merged Cells<a href="#merged-cells" class="hash-link" aria-label="Direct link to Merged Cells" title="Direct link to Merged Cells" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview-2">Overview<a href="#overview-2" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Supports merged cells through annotations or custom merge strategies.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example-4">Code Example<a href="#code-example-4" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<p>Annotation approach</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Getter</span><span class="token plain"></span><br>< [...]
+<p>Custom merge strategy</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token k [...]
+<p>Usage</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="result-3">Result<a href="#result-3" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/mergeWrite-976e024ef4e1613c6dab373937cc56ff.png" width="384" height="291" class="img_VXcA"></p>
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="custom-interceptors">Custom Interceptors<a href="#custom-interceptors" class="hash-link" aria-label="Direct link to Custom Interceptors" title="Direct link to Custom Interceptors" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview-3">Overview<a href="#overview-3" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Implement custom logic (such as adding dropdowns) through interceptor operations.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example-5">Code Example<a href="#code-example-5" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<p>Setting dropdowns</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token k [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="result-4">Result<a href="#result-4" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/customHandlerWrite-c05ff79257df5ba72a311793a6e9db60.png" width="387" height="299" class="img_VXcA"></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_YM8j"><a href="https://github.com/apache/fesod/edit/main/website/docs/sheet/write/extra.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="cu [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/sheet/write/format/index.html b/docs/sheet/write/format/index.html
new file mode 100644
index 00000000..d2d22ded
--- /dev/null
+++ b/docs/sheet/write/format/index.html
@@ -0,0 +1,35 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-sheet/write/format" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Format | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/sheet/write/format [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This chapter introduces data formatting when writing data.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="custom-format-writing">Custom Format Writing<a href="#custom-format-writing" class="hash-link" aria-label="Direct link to Custom Format Writing" title="Direct link to Custom Format Writing" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Supports date, number, or other custom formats through annotations.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="pojo-class">POJO Class<a href="#pojo-class" class="hash-link" aria-label="Direct link to POJO Class" title="Direct link to POJO Class" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Getter</span><span class="token plain"></span><br>< [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example">Code Example<a href="#code-example" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="result">Result<a href="#result" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/converterWrite-3246357a06c3ba04afb519b820c19bb2.png" width="497" height="293" class="img_VXcA"></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_YM8j"><a href="https://github.com/apache/fesod/edit/main/website/docs/sheet/write/format.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="curre [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/sheet/write/head/index.html b/docs/sheet/write/head/index.html
new file mode 100644
index 00000000..450062fd
--- /dev/null
+++ b/docs/sheet/write/head/index.html
@@ -0,0 +1,61 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-sheet/write/head" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Head | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/sheet/write/head"><m [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This chapter introduces how to write header data in spreadsheet.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="complex-header-writing">Complex Header Writing<a href="#complex-header-writing" class="hash-link" aria-label="Direct link to Complex Header Writing" title="Direct link to Complex Header Writing" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Supports setting multi-level headers by specifying main titles and subtitles through the <code>@ExcelProperty</code> annotation.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="pojo-class">POJO Class<a href="#pojo-class" class="hash-link" aria-label="Direct link to POJO Class" title="Direct link to POJO Class" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example">Code Example<a href="#code-example" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="result">Result<a href="#result" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/complexHeadWrite-ee9a9996adfccb73ce2bd8fd03bda05d.png" width="518" height="299" class="img_VXcA"></p>
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="dynamic-header-writing">Dynamic Header Writing<a href="#dynamic-header-writing" class="hash-link" aria-label="Direct link to Dynamic Header Writing" title="Direct link to Dynamic Header Writing" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview-1">Overview<a href="#overview-1" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Generate dynamic headers in real-time, suitable for scenarios where header content changes dynamically.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example-1">Code Example<a href="#code-example-1" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="result-1">Result<a href="#result-1" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/dynamicHeadWrite-b33468bf605a16abf195c740309137e3.png" width="383" height="318" class="img_VXcA"></p>
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="header-merge-strategy">Header Merge Strategy<a href="#header-merge-strategy" class="hash-link" aria-label="Direct link to Header Merge Strategy" title="Direct link to Header Merge Strategy" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview-2">Overview<a href="#overview-2" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>By default, Fesod automatically merges header cells with the same name. However, you can control the merge behavior using the <code>headerMergeStrategy</code> parameter.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="merge-strategies">Merge Strategies<a href="#merge-strategies" class="hash-link" aria-label="Direct link to Merge Strategies" title="Direct link to Merge Strategies" translate="no"></a></h3>
+<ul>
+<li class=""><strong>NONE</strong>: No automatic merging is performed.</li>
+<li class=""><strong>HORIZONTAL_ONLY</strong>: Only merges cells horizontally (same row).</li>
+<li class=""><strong>VERTICAL_ONLY</strong>: Only merges cells vertically (same column).</li>
+<li class=""><strong>FULL_RECTANGLE</strong>: Only merges complete rectangular regions where all cells have the same name.</li>
+<li class=""><strong>AUTO</strong>: Automatic merging (default).</li>
+</ul>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example-2">Code Example<a href="#code-example-2" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="common-use-cases">Common Use Cases<a href="#common-use-cases" class="hash-link" aria-label="Direct link to Common Use Cases" title="Direct link to Common Use Cases" translate="no"></a></h3>
+<p><strong>Disable merging</strong>: Use <code>NONE</code> to completely disable automatic merging:</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token class-name">FesodSheet</span><span class="token punctuation" style="color:#393A34">.</span><span c [...]
+<p><strong>Note</strong>: The old <code>automaticMergeHead</code> parameter is still supported for backward compatibility. When <code>headerMergeStrategy</code> is not set, the behavior is determined by <code>automaticMergeHead</code>.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_YM8j"><a href="https://github.com/apache/fesod/edit/main/website/docs/sheet/write/head.md" target="_blank" rel [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/sheet/write/image/index.html b/docs/sheet/write/image/index.html
new file mode 100644
index 00000000..98c95d7d
--- /dev/null
+++ b/docs/sheet/write/image/index.html
@@ -0,0 +1,35 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-sheet/write/image" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Image | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/sheet/write/image"> [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This chapter introduces how to export files containing images.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="image-export">Image Export<a href="#image-export" class="hash-link" aria-label="Direct link to Image Export" title="Direct link to Image Export" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Supports exporting images through various methods including files, streams, byte arrays, URLs, etc.</p>
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="pojo-class">POJO Class<a href="#pojo-class" class="hash-link" aria-label="Direct link to POJO Class" title="Direct link to POJO Class" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example">Code Example<a href="#code-example" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="result">Result<a href="#result" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/imgWrite-3ef200f147e8e4f0cf2bb83c82256ce9.png" width="751" height="300" class="img_VXcA"></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_YM8j"><a href="https://github.com/apache/fesod/edit/main/website/docs/sheet/write/image.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/sheet/write/pojo/index.html b/docs/sheet/write/pojo/index.html
new file mode 100644
index 00000000..b7a6938d
--- /dev/null
+++ b/docs/sheet/write/pojo/index.html
@@ -0,0 +1,55 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-sheet/write/pojo" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">POJO | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/sheet/write/pojo"><m [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This chapter introduces how to write data by configuring POJO classes.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="export-only-specified-columns-based-on-parameters">Export Only Specified Columns Based on Parameters<a href="#export-only-specified-columns-based-on-parameters" class="hash-link" aria-label="Direct link to Export Only Specified Columns Based on Parameters" title="Direct link to Export Only Specified Columns Based on Parameters" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Dynamically select columns to export by setting a collection of column names, supporting ignoring columns or exporting
+only specific columns.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-examples">Code Examples<a href="#code-examples" class="hash-link" aria-label="Direct link to Code Examples" title="Direct link to Code Examples" translate="no"></a></h3>
+<p>Ignore specified columns</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<p>Export only specified columns</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="result">Result<a href="#result" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/excludeOrIncludeWrite-bea7b205e7748fd8b55311383c344df1.png" width="246" height="297" class="img_VXcA"></p>
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="specify-column-order-for-writing">Specify Column Order for Writing<a href="#specify-column-order-for-writing" class="hash-link" aria-label="Direct link to Specify Column Order for Writing" title="Direct link to Specify Column Order for Writing" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview-1">Overview<a href="#overview-1" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Specify column order using the <code>index</code> attribute of the <code>@ExcelProperty</code> annotation.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="pojo-class">POJO Class<a href="#pojo-class" class="hash-link" aria-label="Direct link to POJO Class" title="Direct link to POJO Class" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Getter</span><span class="token plain"></span><br>< [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example">Code Example<a href="#code-example" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="result-1">Result<a href="#result-1" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/indexWrite-bb3b8cbf0c5a06371b7fa9917fb3cd33.png" width="439" height="299" class="img_VXcA"></p>
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="writing-without-creating-objects">Writing Without Creating Objects<a href="#writing-without-creating-objects" class="hash-link" aria-label="Direct link to Writing Without Creating Objects" title="Direct link to Writing Without Creating Objects" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview-2">Overview<a href="#overview-2" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Write data directly using <code>List<List<String>></code> to define headers and data without creating entity classes.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example-1">Code Example<a href="#code-example-1" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="result-2">Result<a href="#result-2" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/noModelWrite-3d55fb6adc6efbc37febcf23526f89c8.png" width="384" height="356" class="img_VXcA"></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_YM8j"><a href="https://github.com/apache/fesod/edit/main/website/docs/sheet/write/pojo.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentCo [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/sheet/write/sheet/index.html b/docs/sheet/write/sheet/index.html
new file mode 100644
index 00000000..753ff17d
--- /dev/null
+++ b/docs/sheet/write/sheet/index.html
@@ -0,0 +1,52 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-sheet/write/sheet" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Sheet | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/sheet/write/sheet"> [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This chapter introduces how to configure Sheets to write data.</p>
+<blockquote>
+<p><strong>Note:</strong> Microsoft Excel limits sheet names to 31 characters. Longer names are automatically trimmed with a warning logged.</p>
+</blockquote>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="writing-to-the-same-sheet">Writing to the Same Sheet<a href="#writing-to-the-same-sheet" class="hash-link" aria-label="Direct link to Writing to the Same Sheet" title="Direct link to Writing to the Same Sheet" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Write data in batches to the same Sheet.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example">Code Example<a href="#code-example" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="result">Result<a href="#result" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/repeatedWrite-1d4a6ee40db8a53e80ac1330fc50e79a.png" width="386" height="298" class="img_VXcA"></p>
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="writing-to-multiple-sheets">Writing to Multiple Sheets<a href="#writing-to-multiple-sheets" class="hash-link" aria-label="Direct link to Writing to Multiple Sheets" title="Direct link to Writing to Multiple Sheets" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview-1">Overview<a href="#overview-1" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Write data in batches to multiple Sheets, enabling paginated writing for large data volumes.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example-1">Code Example<a href="#code-example-1" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="result-1">Result<a href="#result-1" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/repeatedWrite-1d4a6ee40db8a53e80ac1330fc50e79a.png" width="386" height="298" class="img_VXcA"></p>
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="writing-using-tables">Writing Using Tables<a href="#writing-using-tables" class="hash-link" aria-label="Direct link to Writing Using Tables" title="Direct link to Writing Using Tables" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview-2">Overview<a href="#overview-2" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Supports using multiple Tables within a single Sheet for segmented writing.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example-2">Code Example<a href="#code-example-2" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="result-2">Result<a href="#result-2" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/tableWrite-1b3814878a3fc0ef244f767899675190.png" width="370" height="545" class="img_VXcA"></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_YM8j"><a href="https://github.com/apache/fesod/edit/main/website/docs/sheet/write/sheet.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentCol [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/sheet/write/simple/index.html b/docs/sheet/write/simple/index.html
new file mode 100644
index 00000000..5a797a30
--- /dev/null
+++ b/docs/sheet/write/simple/index.html
@@ -0,0 +1,43 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-sheet/write/simple" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Simple | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/sheet/write/simple [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This chapter introduces how to use Fesod to perform simple spreadsheet writing operations.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h2>
+<p>Use Fesod for simple spreadsheet data writing to quickly write entity objects to spreadsheet files.
+This is the most basic and commonly used writing approach.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="code-examples">Code Examples<a href="#code-examples" class="hash-link" aria-label="Direct link to Code Examples" title="Direct link to Code Examples" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="pojo-class">POJO Class<a href="#pojo-class" class="hash-link" aria-label="Direct link to POJO Class" title="Direct link to POJO Class" translate="no"></a></h3>
+<p>The <code>DemoData</code> POJO class corresponding to the spreadsheet structure:</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="data-list">Data List<a href="#data-list" class="hash-link" aria-label="Direct link to Data List" title="Direct link to Data List" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">private</span><span class="token plain"> </span><span class="token [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="writing-methods">Writing Methods<a href="#writing-methods" class="hash-link" aria-label="Direct link to Writing Methods" title="Direct link to Writing Methods" translate="no"></a></h3>
+<p>Fesod provides multiple writing methods, including <code>Lambda</code> expressions, data lists, <code>ExcelWriter</code> objects, etc.</p>
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="lambda-expression"><code>Lambda</code> Expression<a href="#lambda-expression" class="hash-link" aria-label="Direct link to lambda-expression" title="Direct link to lambda-expression" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="data-list-1">Data List<a href="#data-list-1" class="hash-link" aria-label="Direct link to Data List" title="Direct link to Data List" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h4 class="anchor anchorTargetStickyNavbar_l_sM" id="excelwriter-object"><code>ExcelWriter</code> Object<a href="#excelwriter-object" class="hash-link" aria-label="Direct link to excelwriter-object" title="Direct link to excelwriter-object" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/sheet/write/spring/index.html b/docs/sheet/write/spring/index.html
new file mode 100644
index 00000000..c201552d
--- /dev/null
+++ b/docs/sheet/write/spring/index.html
@@ -0,0 +1,32 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-sheet/write/spring" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Spring | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/sheet/write/spring [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This chapter introduces how to integrate and use Fesod in the Spring framework to generate spreadsheet files.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="spring-controller-example">Spring Controller Example<a href="#spring-controller-example" class="hash-link" aria-label="Direct link to Spring Controller Example" title="Direct link to Spring Controller Example" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>In Spring Boot projects, you can generate spreadsheet files and provide download functionality through HTTP interfaces,
+making it convenient to use Fesod in web environments.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example">Code Example<a href="#code-example" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/sheet/write/style/index.html b/docs/sheet/write/style/index.html
new file mode 100644
index 00000000..b34f9639
--- /dev/null
+++ b/docs/sheet/write/style/index.html
@@ -0,0 +1,69 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-sheet/write/style" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Style | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/docs/sheet/write/style"> [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>This chapter introduces style settings when writing data.</p>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="annotations">Annotations<a href="#annotations" class="hash-link" aria-label="Direct link to Annotations" title="Direct link to Annotations" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview">Overview<a href="#overview" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Set cell styles through annotations in entity classes, including font, background color, row height, etc.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="pojo-class">POJO Class<a href="#pojo-class" class="hash-link" aria-label="Direct link to POJO Class" title="Direct link to POJO Class" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Getter</span><span class="token plain"></span><br>< [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example">Code Example<a href="#code-example" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A3 [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="result">Result<a href="#result" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/annotationStyleWrite-daf422cde61cef375e3a694c3c64a0cb.png" width="529" height="427" class="img_VXcA"></p>
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="built-in-interceptors">Built-in Interceptors<a href="#built-in-interceptors" class="hash-link" aria-label="Direct link to Built-in Interceptors" title="Direct link to Built-in Interceptors" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview-1">Overview<a href="#overview-1" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Use <code>HorizontalCellStyleStrategy</code> to set styles for headers and content separately.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example-1">Code Example<a href="#code-example-1" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="result-1">Result<a href="#result-1" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/handlerStyleWrite-082ae37a51bd9252f6900ab754387401.png" width="345" height="288" class="img_VXcA"></p>
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="custom-interceptors">Custom Interceptors<a href="#custom-interceptors" class="hash-link" aria-label="Direct link to Custom Interceptors" title="Direct link to Custom Interceptors" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview-2">Overview<a href="#overview-2" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>If existing strategies cannot meet requirements, you can implement the <code>CellWriteHandler</code> interface for complete custom
+control over styling.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example-2">Code Example<a href="#code-example-2" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<p>Custom interceptor</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<p>Usage</p>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="custom-poi-styles">Custom POI Styles<a href="#custom-poi-styles" class="hash-link" aria-label="Direct link to Custom POI Styles" title="Direct link to Custom POI Styles" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview-3">Overview<a href="#overview-3" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Directly manipulate POI's <code>CellStyle</code>, suitable for precise style control.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example-3">Code Example<a href="#code-example-3" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_l_sM" id="column-width-and-row-height">Column Width and Row Height<a href="#column-width-and-row-height" class="hash-link" aria-label="Direct link to Column Width and Row Height" title="Direct link to Column Width and Row Height" translate="no"></a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="overview-4">Overview<a href="#overview-4" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Control column width and row height through annotations, suitable for scenarios with specific table format requirements.</p>
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="pojo-class-1">POJO Class<a href="#pojo-class-1" class="hash-link" aria-label="Direct link to POJO Class" title="Direct link to POJO Class" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Getter</span><span class="token plain"></span><br>< [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="code-example-4">Code Example<a href="#code-example-4" class="hash-link" aria-label="Direct link to Code Example" title="Direct link to Code Example" translate="no"></a></h3>
+<div class="language-java codeBlockContainer_huE5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_oko_"><pre tabindex="0" class="prism-code language-java codeBlock_BBgU thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_t9f9"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h3 class="anchor anchorTargetStickyNavbar_l_sM" id="result-2">Result<a href="#result-2" class="hash-link" aria-label="Direct link to Result" title="Direct link to Result" translate="no"></a></h3>
+<p><img decoding="async" loading="lazy" alt="img" src="/assets/images/widthAndHeightWrite-77c049fb68d1ac806c1ba21e82c45f45.png" width="905" height="284" class="img_VXcA"></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_YM8j"><a href="https://github.com/apache/fesod/edit/main/website/docs/sheet/write/style.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="c [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/img/apache-incubator.svg b/img/apache-incubator.svg
new file mode 100644
index 00000000..aed990f5
--- /dev/null
+++ b/img/apache-incubator.svg
@@ -0,0 +1,155 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ version="1.1"
+ id="Layer_1"
+ x="0px"
+ y="0px"
+ width="473.26367"
+ height="110.21871"
+ viewBox="0 0 473.26367 110.21871"
+ enable-background="new 0 0 1000 1000"
+ xml:space="preserve"
+ sodipodi:docname="incubator.svg"
+ inkscape:version="0.92.3 (2405546, 2018-03-11)"><metadata
+ id="metadata3643"><rdf:RDF><cc:Work
+ rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
+ id="defs3641" /><sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="3726"
+ inkscape:window-height="2049"
+ id="namedview3639"
+ showgrid="false"
+ fit-margin-top="0"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0"
+ inkscape:zoom="1.888"
+ inkscape:cx="236.59168"
+ inkscape:cy="55.071238"
+ inkscape:window-x="114"
+ inkscape:window-y="55"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="Layer_1" />
+
+
+<polygon
+ points="711.434,471.942 728.517,471.942 728.517,473.944 711.434,473.944 711.434,485.958 730.646,485.958 730.646,487.96 709.219,487.96 709.219,458.14 730.434,458.14 730.434,460.142 711.434,460.142 "
+ id="polygon3599"
+ style="clip-rule:evenodd;fill-rule:evenodd"
+ transform="translate(-263.40832,-444.85252)" />
+<polygon
+ points="662.357,458.14 664.572,458.14 664.572,487.96 662.357,487.96 662.357,473.987 643.272,473.987 643.272,487.96 641.057,487.96 641.057,458.14 643.272,458.14 643.272,471.985 662.357,471.985 "
+ id="polygon3601"
+ style="clip-rule:evenodd;fill-rule:evenodd"
+ transform="translate(-263.40832,-444.85252)" />
+<path
+ d="m 323.92968,43.619476 c -2.131,0 -4.104,-0.398 -5.922,-1.193 -1.817,-0.795 -3.387,-1.882 -4.707,-3.259 -1.321,-1.377 -2.351,-3.003 -3.089,-4.878 -0.738,-1.874 -1.107,-3.876 -1.107,-6.006 v -0.085 c 0,-2.102 0.376,-4.089 1.129,-5.964 0.752,-1.875 1.788,-3.515 3.109,-4.92 1.32,-1.406 2.89,-2.513 4.707,-3.323 1.818,-0.81 3.806,-1.214 5.965,-1.214 1.335,0 2.542,0.114 3.62,0.341 1.08,0.228 2.081,0.554 3.004,0.98 0.923,0.426 1.789,0.93 2.599,1.512 0.81,0.583 1.598,1.229 2.364,1.938 l -1. [...]
+ id="path3603"
+ inkscape:connector-curvature="0"
+ style="clip-rule:evenodd;fill-rule:evenodd" />
+<path
+ d="m 252.31768,13.074476 h 2.13 l 13.888,30.033 h -2.428 l -3.792,-8.35 h -17.594 l -3.792,8.35 h -2.3 z m 8.86,19.681 -7.838,-17.253 -7.881,17.253 z"
+ id="path3605"
+ inkscape:connector-curvature="0"
+ style="clip-rule:evenodd;fill-rule:evenodd" />
+<path
+ d="m 176.74268,13.287476 h 10.821 c 1.647,0 3.145,0.206 4.494,0.618 1.349,0.412 2.514,1.008 3.493,1.789 0.98,0.781 1.74,1.732 2.279,2.854 0.54,1.122 0.81,2.407 0.81,3.855 v 0.085 c 0,1.562 -0.313,2.939 -0.937,4.132 -0.625,1.193 -1.47,2.187 -2.535,2.982 -1.065,0.795 -2.3,1.392 -3.706,1.789 -1.406,0.398 -2.889,0.597 -4.452,0.597 h -8.051 v 11.119 h -2.215 v -29.82 z m 10.395,16.699 c 1.392,0 2.655,-0.17 3.792,-0.511 1.136,-0.348 2.108,-0.838 2.918,-1.484 0.81,-0.639 1.441,-1.42 1.896,-2 [...]
+ id="path3607"
+ inkscape:connector-curvature="0"
+ style="clip-rule:evenodd;fill-rule:evenodd" />
+<path
+ d="m 118.63568,13.074476 h 2.13 l 13.888,30.033 h -2.428 l -3.792,-8.35 h -17.594 l -3.792,8.35 h -2.301 z m 8.861,19.681 -7.839,-17.253 -7.881,17.253 z"
+ id="path3609"
+ inkscape:connector-curvature="0"
+ style="clip-rule:evenodd;fill-rule:evenodd" />
+<path
+ d="m 471.26168,70.853476 c 0,7.213 -3.147,11.758 -9.443,13.634 l 11.445,15.886004 h -9.382 l -10.444,-14.697004 h -9.693 v 14.697004 h -7.38 V 56.657476 h 16.261 c 6.671,0 11.444,1.126 14.322,3.377 2.875,2.252 4.314,5.858 4.314,10.819 z m -18.324,8.131 c 4.169,0 7.005,-0.646 8.506,-1.939 1.501,-1.292 2.251,-3.366 2.251,-6.223 0,-2.855 -0.771,-4.815 -2.313,-5.878 -1.543,-1.064 -4.295,-1.596 -8.256,-1.596 h -9.381 v 15.636 z"
+ id="path3611"
+ inkscape:connector-curvature="0"
+ style="clip-rule:evenodd;fill-rule:evenodd" />
+<path
+ d="m 422.12968,94.337476 c -4.419,4.315 -9.881,6.473004 -16.386,6.473004 -6.504,0 -11.966,-2.157004 -16.385,-6.473004 -4.42,-4.315 -6.63,-9.694 -6.63,-16.136 0,-6.442 2.21,-11.82 6.63,-16.136 4.419,-4.314 9.881,-6.473 16.385,-6.473 6.505,0 11.967,2.158 16.386,6.473 4.42,4.315 6.63,9.694 6.63,16.136 0,6.442 -2.21,11.821 -6.63,16.136 z m -5.409,-27.361 c -2.981,-3.086 -6.64,-4.628 -10.977,-4.628 -4.336,0 -7.994,1.542 -10.976,4.628 -2.98,3.085 -4.472,6.827 -4.472,11.226 0,4.399 1.491,8.1 [...]
+ id="path3613"
+ inkscape:connector-curvature="0"
+ style="clip-rule:evenodd;fill-rule:evenodd" />
+<polygon
+ points="609.952,508.264 609.952,501.51 643.849,501.51 643.849,508.264 630.591,508.264 630.591,545.226 623.211,545.226 623.211,508.264 "
+ id="polygon3615"
+ style="clip-rule:evenodd;fill-rule:evenodd"
+ transform="translate(-263.40832,-444.85252)" />
+<path
+ d="m 315.61168,90.428476 -4.378,9.944004 h -7.88 l 19.263,-43.716004 h 7.88 l 19.263,43.716004 h -7.88 l -4.379,-9.944004 z m 18.886,-6.817 -7.942,-18.011 -7.942,18.011 z"
+ id="path3617"
+ inkscape:connector-curvature="0"
+ style="clip-rule:evenodd;fill-rule:evenodd" />
+<path
+ d="m 286.61768,100.37348 h -19.138 V 56.657476 h 17.012 c 2.96,0 5.514,0.354 7.661,1.063 2.146,0.709 3.741,1.668 4.784,2.878 2.001,2.251 3.002,4.795 3.002,7.63 0,3.418 -1.084,5.962 -3.253,7.63 -0.792,0.584 -1.334,0.948 -1.626,1.094 -0.292,0.146 -0.813,0.386 -1.563,0.72 2.71,0.584 4.868,1.803 6.474,3.658 1.604,1.855 2.407,4.159 2.407,6.911 0,3.043 -1.042,5.732 -3.127,8.067 -2.46,2.709 -6.671,4.065004 -12.633,4.065004 z m -11.757,-6.818004 h 11.57 c 2.71,0 4.784,-0.427 6.223,-1.281 1.43 [...]
+ id="path3619"
+ inkscape:connector-curvature="0"
+ style="clip-rule:evenodd;fill-rule:evenodd" />
+<path
+ d="m 230.98168,90.366476 c 2.001,2.335 4.711,3.502 8.13,3.502 3.419,0 6.129,-1.167 8.13,-3.502 2.002,-2.335 3.002,-5.504 3.002,-9.506 v -24.203 h 7.38 v 24.516 c 0,6.296 -1.729,11.143 -5.19,14.541 -3.461,3.397 -7.901,5.097004 -13.321,5.097004 -5.42,0 -9.861,-1.699004 -13.321,-5.097004 -3.461,-3.398 -5.191,-8.245 -5.191,-14.541 v -24.516 h 7.38 v 24.203 c -0.001,4.002 1,7.171 3.001,9.506 z"
+ id="path3621"
+ inkscape:connector-curvature="0"
+ style="clip-rule:evenodd;fill-rule:evenodd" />
+<path
+ d="m 196.79768,93.680476 c 2.543,0 4.732,-0.427 6.567,-1.281 1.834,-0.855 3.752,-2.221 5.753,-4.097 l 4.753,4.878 c -4.628,5.128 -10.247,7.692004 -16.854,7.692004 -6.609,0 -12.091,-2.126004 -16.448,-6.379004 -4.357,-4.253 -6.536,-9.632 -6.536,-16.136 0,-6.504 2.22,-11.924 6.661,-16.26 4.44,-4.337 10.048,-6.505 16.823,-6.505 6.775,0 12.435,2.502 16.979,7.505 l -4.69,5.129 c -2.084,-2.002 -4.055,-3.398 -5.91,-4.19 -1.855,-0.792 -4.034,-1.188 -6.536,-1.188 -4.419,0 -8.13,1.428 -11.132,4. [...]
+ id="path3623"
+ inkscape:connector-curvature="0"
+ style="clip-rule:evenodd;fill-rule:evenodd" />
+<polygon
+ points="397.065,513.33 397.065,545.226 389.686,545.226 389.686,501.51 397.065,501.51 422.456,534.155 422.456,501.51 429.836,501.51 429.836,545.226 421.831,545.226 "
+ id="polygon3625"
+ style="clip-rule:evenodd;fill-rule:evenodd"
+ transform="translate(-263.40832,-444.85252)" />
+<rect
+ x="108.47866"
+ y="56.657494"
+ width="7.3790002"
+ height="43.716"
+ id="rect3627"
+ style="clip-rule:evenodd;fill-rule:evenodd" />
+<linearGradient
+ id="SVGID_1_"
+ gradientUnits="userSpaceOnUse"
+ x1="298.37161"
+ y1="547.52728"
+ x2="313.06451"
+ y2="470.18271"
+ gradientTransform="translate(-263.40832,-444.85252)">
+ <stop
+ offset="0"
+ style="stop-color:#1A1853"
+ id="stop3629" />
+ <stop
+ offset="0.5"
+ style="stop-color:#CA2026"
+ id="stop3631" />
+ <stop
+ offset="1"
+ style="stop-color:#F8991D"
+ id="stop3633" />
+</linearGradient>
+<path
+ d="m 44.922678,15.104476 c -0.003,-0.324 -0.008,-0.649 -0.016,-0.978 0.067,0.107 0.256,0.435 0.569,0.978 z m -11.763,34.23 c -3.432,6.382 -5.389,13.041 -5.889,19.971 -0.445,6.171 0.222,11.492 2.021,15.953 0.246,0.607 0.484,1.168 0.722,1.688 -1.422,-1.006 -2.779,-2.055 -4.073,-3.149 -0.109,-0.086 -0.188,-0.122 -0.238,-0.109 1.699,2.717 3.816,5.179 6.354,7.387 0.392,0.342 1.046,0.504 1.207,1.007 0.459,1.443 -0.789,14.400004 3.219,17.419004 2.549,1.918 13.815,-0.494 17.293,-1.617 18.147, [...]
+ id="path3636"
+ inkscape:connector-curvature="0"
+ style="clip-rule:evenodd;fill:url(#SVGID_1_);fill-rule:evenodd" />
+</svg>
\ No newline at end of file
diff --git a/img/community/gmail-setting.png b/img/community/gmail-setting.png
new file mode 100644
index 00000000..95e69220
Binary files /dev/null and b/img/community/gmail-setting.png differ
diff --git a/img/community/icla-01.png b/img/community/icla-01.png
new file mode 100644
index 00000000..af3bef05
Binary files /dev/null and b/img/community/icla-01.png differ
diff --git a/img/community/icla-02.png b/img/community/icla-02.png
new file mode 100644
index 00000000..f3b91411
Binary files /dev/null and b/img/community/icla-02.png differ
diff --git a/img/community/icla-03.png b/img/community/icla-03.png
new file mode 100644
index 00000000..7b3da5a3
Binary files /dev/null and b/img/community/icla-03.png differ
diff --git a/img/community/icla-04.png b/img/community/icla-04.png
new file mode 100644
index 00000000..49445dd0
Binary files /dev/null and b/img/community/icla-04.png differ
diff --git a/img/community/link-github.png b/img/community/link-github.png
new file mode 100644
index 00000000..dce58cea
Binary files /dev/null and b/img/community/link-github.png differ
diff --git a/img/community/reset-passwd.png b/img/community/reset-passwd.png
new file mode 100644
index 00000000..b03d74c9
Binary files /dev/null and b/img/community/reset-passwd.png differ
diff --git a/img/community/roster-add-committer.png b/img/community/roster-add-committer.png
new file mode 100644
index 00000000..37e647f2
Binary files /dev/null and b/img/community/roster-add-committer.png differ
diff --git a/img/docs/fill/complexFillWithTable_file.png b/img/docs/fill/complexFillWithTable_file.png
new file mode 100644
index 00000000..a87a3e75
Binary files /dev/null and b/img/docs/fill/complexFillWithTable_file.png differ
diff --git a/img/docs/fill/complexFillWithTable_result.png b/img/docs/fill/complexFillWithTable_result.png
new file mode 100644
index 00000000..dc27781a
Binary files /dev/null and b/img/docs/fill/complexFillWithTable_result.png differ
diff --git a/img/docs/fill/complexFill_file.png b/img/docs/fill/complexFill_file.png
new file mode 100644
index 00000000..b2540ed2
Binary files /dev/null and b/img/docs/fill/complexFill_file.png differ
diff --git a/img/docs/fill/complexFill_result.png b/img/docs/fill/complexFill_result.png
new file mode 100644
index 00000000..0a9d289b
Binary files /dev/null and b/img/docs/fill/complexFill_result.png differ
diff --git a/img/docs/fill/compositeFill_file.png b/img/docs/fill/compositeFill_file.png
new file mode 100644
index 00000000..0e9f099f
Binary files /dev/null and b/img/docs/fill/compositeFill_file.png differ
diff --git a/img/docs/fill/compositeFill_result.png b/img/docs/fill/compositeFill_result.png
new file mode 100644
index 00000000..316a0022
Binary files /dev/null and b/img/docs/fill/compositeFill_result.png differ
diff --git a/img/docs/fill/horizontalFill_file.png b/img/docs/fill/horizontalFill_file.png
new file mode 100644
index 00000000..70af032d
Binary files /dev/null and b/img/docs/fill/horizontalFill_file.png differ
diff --git a/img/docs/fill/horizontalFill_result.png b/img/docs/fill/horizontalFill_result.png
new file mode 100644
index 00000000..e88053d0
Binary files /dev/null and b/img/docs/fill/horizontalFill_result.png differ
diff --git a/img/docs/fill/listFill_file.png b/img/docs/fill/listFill_file.png
new file mode 100644
index 00000000..8ebb7555
Binary files /dev/null and b/img/docs/fill/listFill_file.png differ
diff --git a/img/docs/fill/listFill_result.png b/img/docs/fill/listFill_result.png
new file mode 100644
index 00000000..4cdd60d4
Binary files /dev/null and b/img/docs/fill/listFill_result.png differ
diff --git a/img/docs/fill/simpleFill_file.png b/img/docs/fill/simpleFill_file.png
new file mode 100644
index 00000000..e393bad9
Binary files /dev/null and b/img/docs/fill/simpleFill_file.png differ
diff --git a/img/docs/fill/simpleFill_result.png b/img/docs/fill/simpleFill_result.png
new file mode 100644
index 00000000..1936c0e6
Binary files /dev/null and b/img/docs/fill/simpleFill_result.png differ
diff --git a/img/docs/write/annotationStyleWrite.png b/img/docs/write/annotationStyleWrite.png
new file mode 100644
index 00000000..6aeb9fb5
Binary files /dev/null and b/img/docs/write/annotationStyleWrite.png differ
diff --git a/img/docs/write/commentWrite.png b/img/docs/write/commentWrite.png
new file mode 100644
index 00000000..9ffcb125
Binary files /dev/null and b/img/docs/write/commentWrite.png differ
diff --git a/img/docs/write/complexHeadWrite.png b/img/docs/write/complexHeadWrite.png
new file mode 100644
index 00000000..e52d0960
Binary files /dev/null and b/img/docs/write/complexHeadWrite.png differ
diff --git a/img/docs/write/converterWrite.png b/img/docs/write/converterWrite.png
new file mode 100644
index 00000000..90196e1a
Binary files /dev/null and b/img/docs/write/converterWrite.png differ
diff --git a/img/docs/write/customHandlerWrite.png b/img/docs/write/customHandlerWrite.png
new file mode 100644
index 00000000..f263d02a
Binary files /dev/null and b/img/docs/write/customHandlerWrite.png differ
diff --git a/img/docs/write/dynamicHeadWrite.png b/img/docs/write/dynamicHeadWrite.png
new file mode 100644
index 00000000..68430370
Binary files /dev/null and b/img/docs/write/dynamicHeadWrite.png differ
diff --git a/img/docs/write/excludeOrIncludeWrite.png b/img/docs/write/excludeOrIncludeWrite.png
new file mode 100644
index 00000000..8911e5fb
Binary files /dev/null and b/img/docs/write/excludeOrIncludeWrite.png differ
diff --git a/img/docs/write/handlerStyleWrite.png b/img/docs/write/handlerStyleWrite.png
new file mode 100644
index 00000000..7f6248f8
Binary files /dev/null and b/img/docs/write/handlerStyleWrite.png differ
diff --git a/img/docs/write/ignore_row.png b/img/docs/write/ignore_row.png
new file mode 100644
index 00000000..1017b472
Binary files /dev/null and b/img/docs/write/ignore_row.png differ
diff --git a/img/docs/write/imgWrite.png b/img/docs/write/imgWrite.png
new file mode 100644
index 00000000..9ad021d5
Binary files /dev/null and b/img/docs/write/imgWrite.png differ
diff --git a/img/docs/write/indexRow.png b/img/docs/write/indexRow.png
new file mode 100644
index 00000000..0010cc07
Binary files /dev/null and b/img/docs/write/indexRow.png differ
diff --git a/img/docs/write/indexWrite.png b/img/docs/write/indexWrite.png
new file mode 100644
index 00000000..238d9db8
Binary files /dev/null and b/img/docs/write/indexWrite.png differ
diff --git a/img/docs/write/mergeWrite.png b/img/docs/write/mergeWrite.png
new file mode 100644
index 00000000..0249c4f6
Binary files /dev/null and b/img/docs/write/mergeWrite.png differ
diff --git a/img/docs/write/noModelWrite.png b/img/docs/write/noModelWrite.png
new file mode 100644
index 00000000..6a66c62d
Binary files /dev/null and b/img/docs/write/noModelWrite.png differ
diff --git a/img/docs/write/repeatedWrite.png b/img/docs/write/repeatedWrite.png
new file mode 100644
index 00000000..df324c96
Binary files /dev/null and b/img/docs/write/repeatedWrite.png differ
diff --git a/img/docs/write/tableWrite.png b/img/docs/write/tableWrite.png
new file mode 100644
index 00000000..e1b6f2a8
Binary files /dev/null and b/img/docs/write/tableWrite.png differ
diff --git a/img/docs/write/templateWrite.png b/img/docs/write/templateWrite.png
new file mode 100644
index 00000000..f378efb4
Binary files /dev/null and b/img/docs/write/templateWrite.png differ
diff --git a/img/docs/write/widthAndHeightWrite.png b/img/docs/write/widthAndHeightWrite.png
new file mode 100644
index 00000000..167b5511
Binary files /dev/null and b/img/docs/write/widthAndHeightWrite.png differ
diff --git a/img/docs/write/writeCellDataWrite.png b/img/docs/write/writeCellDataWrite.png
new file mode 100644
index 00000000..54b2666f
Binary files /dev/null and b/img/docs/write/writeCellDataWrite.png differ
diff --git a/img/favicon.ico b/img/favicon.ico
new file mode 100644
index 00000000..0726b91c
Binary files /dev/null and b/img/favicon.ico differ
diff --git a/img/github_icon.svg b/img/github_icon.svg
new file mode 100644
index 00000000..93ebbeca
--- /dev/null
+++ b/img/github_icon.svg
@@ -0,0 +1,21 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" fill="black">
+ <path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285 [...]
+</svg>
\ No newline at end of file
diff --git a/img/index/undraw_files.svg b/img/index/undraw_files.svg
new file mode 100644
index 00000000..16039dd0
--- /dev/null
+++ b/img/index/undraw_files.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="1008.92039" height="607.44997" viewBox="0 0 1008.92039 607.44997" xmlns:xlink="http://www.w3.org/1999/xlink" role="img" artist="Katerina Limpitsouni" source="https://undraw.co/"><path d="M1104.46,620.305a15.34,15.34,0,0,1-15.25952,15.42H417.8a15.34,15.34,0,0,1-15.26-15.41955V161.695a15.34,15.34,0,0,1,15.25958-15.42H1089.2a15.34,15.34,0,0,1,15.26,15.41957h0V620.305Z" transform="translate(-95.53981 -146.27502)" fill="#e6e6e6"/><path d="M1096.5 [...]
\ No newline at end of file
diff --git a/img/index/undraw_programming.svg b/img/index/undraw_programming.svg
new file mode 100644
index 00000000..f8189de9
--- /dev/null
+++ b/img/index/undraw_programming.svg
@@ -0,0 +1,125 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="882.126" height="576.272" viewBox="0 0 882.126 576.272" xmlns:xlink="http://www.w3.org/1999/xlink" role="img" artist="Katerina Limpitsouni" source="https://undraw.co/">
+ <g id="Group_138" data-name="Group 138" transform="translate(-519 -251.864)">
+ <g id="Group_137" data-name="Group 137">
+ <path id="Path_1240-340" data-name="Path 1240" d="M958.821,382.941,907.537,402.1,893.89,367.923l36.505-12.787C931.953,364.095,939.352,378.718,958.821,382.941Z" transform="matrix(0.914, 0.407, -0.407, 0.914, 46.029, -113.727)" fill="#ffb8b8"/>
+ <circle id="Ellipse_405" data-name="Ellipse 405" cx="26.701" cy="26.701" r="26.701" transform="translate(928.774 296.429)" fill="#fd6584"/>
+ <path id="Path_2166-341" data-name="Path 2166" d="M655.233,220.487a13.235,13.235,0,0,0-11.17-9.29,1.078,1.078,0,0,0-.18,0,1.418,1.418,0,0,0-.22-.05c-8.94-1.16-18.88,1.66-25.57,7.8a23.958,23.958,0,0,0-5.83,8.04,12.917,12.917,0,0,0-10.83-5.28,13.184,13.184,0,0,0-11.8,9.51,1.526,1.526,0,0,0,.69,1.69,6.674,6.674,0,0,0,2.79,1.42c2.21.47,4.44.9,6.67,1.29q6.54,1.14,13.15,1.85,4.365.465,8.75.74c6.04.38,12.11.47,18.16.28,3-.1,5.88-.2,8.62-1.52a12.8,12.8,0,0,0,4.95-4.31,14.548,14.548,0,0,0,1 [...]
+ <path id="Path_2167-342" data-name="Path 2167" d="M600.3,259.387a13.65,13.65,0,0,0-.56-3.3,13.26,13.26,0,0,0-11.18-9.29.966.966,0,0,0-.17,0,1.884,1.884,0,0,0-.23-.05,33.193,33.193,0,0,0-14.69,1.51c-7.26,2.43-13.63,7.33-16.7,14.33a12.922,12.922,0,0,0-10.84-5.28,13.184,13.184,0,0,0-11.8,9.51,1.555,1.555,0,0,0,.69,1.69,6.733,6.733,0,0,0,2.79,1.42c2.22.47,4.44.9,6.68,1.29q6.54,1.14,13.14,1.85a195.168,195.168,0,0,0,26.92,1.02c2.99-.1,5.88-.2,8.62-1.52a12.77,12.77,0,0,0,4.94-4.31,14.265, [...]
+ <path id="Path_2170-343" data-name="Path 2170" d="M895.47,639.046H792.093a167.922,167.922,0,0,1,.149-24.858c4.131-51.094,31.929-99.768,73.868-129.241-5.359,19.09-2.6,38.069,2.977,57.122-.781.26-1.563.484-2.27.781a46.236,46.236,0,0,0-15.294,9.378c-1.228,1.154-2.53,2.828-1.9,4.428.558,1.34,2.233,1.786,3.684,2.084,3.5.67,7,1.34,10.457,1.972,2.791.558,5.582,1.079,8.373,1.637,1.3.223,2.6.484,3.907.744.186.447.3.856.484,1.265,6.549,18.048,13.694,36.245,17.044,54.74a127.806,127.806,0,0,1, [...]
+ <path id="Path_2172-344" data-name="Path 2172" d="M424.08,571.318c-17.565,10.68-28.729,27.2-37.846,45.7a46.743,46.743,0,0,0-21.249,11.164c-1.265,1.154-2.568,2.828-1.9,4.428.558,1.34,2.233,1.786,3.684,2.084,3.461.67,7,1.34,10.457,1.972-.335.782-.67,1.6-1,2.382H260.12A164.175,164.175,0,0,1,277.573,619.1c1.377-1.377,2.791-2.679,4.242-4.019a173.651,173.651,0,0,1,50.238-31.706,176.734,176.734,0,0,1,92.028-12.057Z" transform="translate(360 90)" fill="#f2f2f2"/>
+ <path id="Path_2174-345" data-name="Path 2174" d="M664.33,595.644l92.37,8.2.99.09V209.794l-.99-.69a288.324,288.324,0,0,0-62.01-32.94l-4.72,65.1-.43,5.96-4.67,64.56-1.44,19.86-18.93,261.7Z" transform="translate(360 90)" fill="#f2f2f2"/>
+ <path id="Path_2175-346" data-name="Path 2175" d="M435.9,202.454c-.66.42-1.32.84-1.98,1.28v400.2l1.98-.18,91.37-8.11-.17-2.3-18.93-261.7-1.44-19.86-4.67-64.56-.43-5.96-4.95-68.27a287.689,287.689,0,0,0-60.78,29.46Z" transform="translate(360 90)" fill="#f2f2f2"/>
+ <path id="Path_2176-347" data-name="Path 2176" d="M433.92,203.734c-1.33.86-2.66,1.74-3.97,2.63v403.03c0,10.07,5.97,18.51,13.95,20.66a15.251,15.251,0,0,0,4,.53H744.7a15.117,15.117,0,0,0,3.99-.53,17.06,17.06,0,0,0,7.78-4.66,22.919,22.919,0,0,0,6.18-16V213.374c-1.64-1.21-3.29-2.41-4.96-3.58l-.99-.69v400.29a16.113,16.113,0,0,1-.46,3.85c-1.41,5.95-6.06,10.31-11.54,10.31H447.9c-6.62,0-12-6.35-12-14.16V202.454C435.24,202.874,434.58,203.294,433.92,203.734Z" transform="translate(360 90)" fi [...]
+ <rect id="Rectangle_484" data-name="Rectangle 484" width="326.752" height="5.959" transform="translate(792.922 331.268)" fill="#f2f2f2"/>
+ <path id="Path_2177-348" data-name="Path 2177" d="M659.6,165.254c-1.98-.49-3.96-.95-5.96-1.38v161.81h5.96Z" transform="translate(360 90)" fill="#f2f2f2"/>
+ <path id="Path_2178-349" data-name="Path 2178" d="M538.96,161.864c-1.99.37-3.98.75-5.96,1.16v162.66h5.96Z" transform="translate(360 90)" fill="#f2f2f2"/>
+ <path id="Path_2179-350" data-name="Path 2179" d="M368.86,620.154a26.712,26.712,0,0,0,1.93,9.98,25.539,25.539,0,0,0,1.75,3.56,27.1,27.1,0,0,0,3.02,4.18,26.76,26.76,0,0,0,20.12,9.11H786.99a26.82,26.82,0,0,0,0-53.64H395.68A26.846,26.846,0,0,0,368.86,620.154Z" transform="translate(360 90)" fill="#f2f2f2"/>
+ <rect id="Rectangle_485" data-name="Rectangle 485" width="324.766" height="19.863" transform="translate(1117.688 421.646) rotate(180)" fill="#f2f2f2"/>
+ <path id="Path_2180-351" data-name="Path 2180" d="M581.4,305.824H609.21a10.925,10.925,0,0,1-10.925,10.925h-5.959A10.925,10.925,0,0,1,581.4,305.824h0Z" transform="translate(1550.611 712.572) rotate(180)" fill="#f2f2f2"/>
+ <path id="Path_2181-352" data-name="Path 2181" d="M159.92,635.474a292.039,292.039,0,0,0,28.749,28.95H1013.3a292.039,292.039,0,0,0,28.749-28.95Z" transform="translate(359.08 90)" fill="#f2f2f2"/>
+ <path id="Path_2182-353" data-name="Path 2182" d="M556.61,538.664v102.56h71.85V538.664a3.448,3.448,0,0,0-2.43-3.3,3.174,3.174,0,0,0-1.03-.16H560.08A3.463,3.463,0,0,0,556.61,538.664Zm28.04,35.24a7.67,7.67,0,1,1,15.34,0v11.9a7.67,7.67,0,1,1-15.34,0Z" transform="translate(360 90)" fill="#e6e6e6"/>
+ <path id="Path_2183-354" data-name="Path 2183" d="M556.39,637.944v9.89a1.946,1.946,0,0,0,1.93,1.94h68.43a1.94,1.94,0,0,0,1.93-1.94v-9.89Z" transform="translate(360 90)" fill="#3f3d56"/>
+ <path id="Path_2184-355" data-name="Path 2184" d="M443.58,384.144V571.4a9.007,9.007,0,0,0,9,9h277.5a9.007,9.007,0,0,0,9-9V384.144a9.012,9.012,0,0,0-9-8.99H452.58a9.011,9.011,0,0,0-9,8.99Z" transform="translate(360 90)" fill="#3f3d56"/>
+ <path id="Path_2185-356" data-name="Path 2185" d="M450.09,386.474v182.62a4.818,4.818,0,0,0,4.81,4.81H727.77a4.818,4.818,0,0,0,4.81-4.81V386.474a4.82,4.82,0,0,0-4.81-4.82H454.9a4.821,4.821,0,0,0-4.81,4.82Z" transform="translate(360 90)" fill="#f2f2f2"/>
+ <path id="Path_2186-357" data-name="Path 2186" d="M505.73,652.1a2.948,2.948,0,0,0,2.32,1.11H670.39a2.987,2.987,0,0,0,2.92-3.6l-2.52-11.97a2.993,2.993,0,0,0-1.86-2.17,2.9,2.9,0,0,0-1.06-.2H510.56a2.894,2.894,0,0,0-1.06.2,2.992,2.992,0,0,0-1.86,2.17l-2.52,11.97a2.985,2.985,0,0,0,.61,2.49Z" transform="translate(360 90)" fill="#2f2e41"/>
+ <rect id="Rectangle_486" data-name="Rectangle 486" width="5" height="3" rx="0.488" transform="translate(1026.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_487" data-name="Rectangle 487" width="5" height="3" rx="0.488" transform="translate(1016.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_488" data-name="Rectangle 488" width="5" height="3" rx="0.488" transform="translate(1006.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_489" data-name="Rectangle 489" width="5" height="3" rx="0.488" transform="translate(996.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_490" data-name="Rectangle 490" width="5" height="3" rx="0.488" transform="translate(986.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_491" data-name="Rectangle 491" width="5" height="3" rx="0.488" transform="translate(976.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_492" data-name="Rectangle 492" width="5" height="3" rx="0.488" transform="translate(966.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_493" data-name="Rectangle 493" width="5" height="3" rx="0.488" transform="translate(956.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_494" data-name="Rectangle 494" width="5" height="3" rx="0.488" transform="translate(946.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_495" data-name="Rectangle 495" width="5" height="3" rx="0.488" transform="translate(936.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_496" data-name="Rectangle 496" width="5" height="3" rx="0.488" transform="translate(926.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_497" data-name="Rectangle 497" width="5" height="3" rx="0.488" transform="translate(916.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_498" data-name="Rectangle 498" width="5" height="3" rx="0.488" transform="translate(906.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_499" data-name="Rectangle 499" width="5" height="3" rx="0.488" transform="translate(896.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_500" data-name="Rectangle 500" width="5" height="3" rx="0.488" transform="translate(886.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_501" data-name="Rectangle 501" width="5" height="3" rx="0.488" transform="translate(876.717 730.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_502" data-name="Rectangle 502" width="5" height="3" rx="0.488" transform="translate(1026.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_503" data-name="Rectangle 503" width="5" height="3" rx="0.488" transform="translate(1016.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_504" data-name="Rectangle 504" width="5" height="3" rx="0.488" transform="translate(1006.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_505" data-name="Rectangle 505" width="5" height="3" rx="0.488" transform="translate(996.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_506" data-name="Rectangle 506" width="5" height="3" rx="0.488" transform="translate(986.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_507" data-name="Rectangle 507" width="5" height="3" rx="0.488" transform="translate(976.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_508" data-name="Rectangle 508" width="5" height="3" rx="0.488" transform="translate(966.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_509" data-name="Rectangle 509" width="5" height="3" rx="0.488" transform="translate(956.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_510" data-name="Rectangle 510" width="5" height="3" rx="0.488" transform="translate(946.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_511" data-name="Rectangle 511" width="5" height="3" rx="0.488" transform="translate(936.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_512" data-name="Rectangle 512" width="5" height="3" rx="0.488" transform="translate(926.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_513" data-name="Rectangle 513" width="5" height="3" rx="0.488" transform="translate(916.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_514" data-name="Rectangle 514" width="5" height="3" rx="0.488" transform="translate(906.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_515" data-name="Rectangle 515" width="5" height="3" rx="0.488" transform="translate(896.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_516" data-name="Rectangle 516" width="5" height="3" rx="0.488" transform="translate(886.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_517" data-name="Rectangle 517" width="5" height="3" rx="0.488" transform="translate(876.835 735.43) rotate(180)" fill="#3f3d56"/>
+ <rect id="Rectangle_518" data-name="Rectangle 518" width="40" height="3" rx="0.488" transform="translate(978.835 741.43) rotate(180)" fill="#3f3d56"/>
+ <path id="Path_2187-358" data-name="Path 2187" d="M468.612,406.811H723.935a1.015,1.015,0,1,0,0-2.031H468.612a1.015,1.015,0,1,0,0,2.031Z" transform="translate(360 90)" fill="#3f3d56"/>
+ <ellipse id="Ellipse_406" data-name="Ellipse 406" cx="5.95" cy="6.083" rx="5.95" ry="6.083" transform="translate(1060.604 477.43)" fill="#3f3d56"/>
+ <ellipse id="Ellipse_407" data-name="Ellipse 407" cx="5.95" cy="6.083" rx="5.95" ry="6.083" transform="translate(1040.049 477.43)" fill="#3f3d56"/>
+ <ellipse id="Ellipse_408" data-name="Ellipse 408" cx="5.95" cy="6.083" rx="5.95" ry="6.083" transform="translate(1019.493 477.43)" fill="#3f3d56"/>
+ <path id="Path_2188-359" data-name="Path 2188" d="M479.9,390.044a1.1,1.1,0,0,0,1.09,1.1h14.6a1.105,1.105,0,0,0,0-2.21h-14.6a1.1,1.1,0,0,0-1.09,1.11Z" transform="translate(360 90)" fill="#3f3d56"/>
+ <path id="Path_2189-360" data-name="Path 2189" d="M479.9,394.194a1.1,1.1,0,0,0,1.09,1.1h14.6a1.105,1.105,0,0,0,0-2.21h-14.6a1.1,1.1,0,0,0-1.09,1.11Z" transform="translate(360 90)" fill="#3f3d56"/>
+ <path id="Path_2190-361" data-name="Path 2190" d="M479.9,398.334a1.1,1.1,0,0,0,1.09,1.11h14.6a1.105,1.105,0,0,0,0-2.21h-14.6A1.1,1.1,0,0,0,479.9,398.334Z" transform="translate(360 90)" fill="#3f3d56"/>
+ <rect id="Rectangle_519" data-name="Rectangle 519" width="11.006" height="5.76" rx="2.88" transform="translate(836.286 520.407)" fill="#2e8555"/>
+ <rect id="Rectangle_520" data-name="Rectangle 520" width="11.006" height="5.76" rx="2.88" transform="translate(896.286 520.407)" fill="#2e8555"/>
+ <rect id="Rectangle_521" data-name="Rectangle 521" width="11.006" height="5.76" rx="2.88" transform="translate(913.286 520.407)" fill="#2e8555"/>
+ <rect id="Rectangle_522" data-name="Rectangle 522" width="38.366" height="5.76" rx="2.88" transform="translate(852.606 519.927)" fill="#2e8555"/>
+ <rect id="Rectangle_523" data-name="Rectangle 523" width="38.366" height="5.76" rx="2.88" transform="translate(932.606 519.927)" fill="#2e8555"/>
+ <rect id="Rectangle_524" data-name="Rectangle 524" width="11.006" height="5.76" rx="2.88" transform="translate(852.286 533.407)" fill="#2e8555"/>
+ <rect id="Rectangle_525" data-name="Rectangle 525" width="11.006" height="5.76" rx="2.88" transform="translate(912.286 533.407)" fill="#2e8555"/>
+ <rect id="Rectangle_526" data-name="Rectangle 526" width="11.006" height="5.76" rx="2.88" transform="translate(929.286 533.407)" fill="#2e8555"/>
+ <rect id="Rectangle_527" data-name="Rectangle 527" width="38.366" height="5.76" rx="2.88" transform="translate(868.606 532.927)" fill="#2e8555"/>
+ <rect id="Rectangle_528" data-name="Rectangle 528" width="38.366" height="5.76" rx="2.88" transform="translate(948.606 532.927)" fill="#2e8555"/>
+ <rect id="Rectangle_529" data-name="Rectangle 529" width="11.006" height="5.76" rx="2.88" transform="translate(868.286 546.407)" fill="#2e8555"/>
+ <rect id="Rectangle_530" data-name="Rectangle 530" width="11.006" height="5.76" rx="2.88" transform="translate(928.286 546.407)" fill="#2e8555"/>
+ <rect id="Rectangle_531" data-name="Rectangle 531" width="11.006" height="5.76" rx="2.88" transform="translate(945.286 546.407)" fill="#2e8555"/>
+ <rect id="Rectangle_532" data-name="Rectangle 532" width="38.366" height="5.76" rx="2.88" transform="translate(884.606 545.927)" fill="#2e8555"/>
+ <rect id="Rectangle_533" data-name="Rectangle 533" width="38.366" height="5.76" rx="2.88" transform="translate(964.606 545.927)" fill="#2e8555"/>
+ <rect id="Rectangle_534" data-name="Rectangle 534" width="11.006" height="5.76" rx="2.88" transform="translate(884.286 559.407)" fill="#2e8555"/>
+ <rect id="Rectangle_535" data-name="Rectangle 535" width="11.006" height="5.76" rx="2.88" transform="translate(944.286 559.407)" fill="#2e8555"/>
+ <rect id="Rectangle_536" data-name="Rectangle 536" width="11.006" height="5.76" rx="2.88" transform="translate(961.286 559.407)" fill="#2e8555"/>
+ <rect id="Rectangle_537" data-name="Rectangle 537" width="38.366" height="5.76" rx="2.88" transform="translate(900.606 558.927)" fill="#2e8555"/>
+ <rect id="Rectangle_538" data-name="Rectangle 538" width="11.006" height="5.76" rx="2.88" transform="translate(896.286 611.101)" fill="#2e8555"/>
+ <rect id="Rectangle_539" data-name="Rectangle 539" width="11.006" height="5.76" rx="2.88" transform="translate(913.286 611.101)" fill="#2e8555"/>
+ <rect id="Rectangle_540" data-name="Rectangle 540" width="38.366" height="5.76" rx="2.88" transform="translate(932.606 611.581)" fill="#2e8555"/>
+ <rect id="Rectangle_541" data-name="Rectangle 541" width="11.006" height="5.76" rx="2.88" transform="translate(836.286 611.101)" fill="#2e8555"/>
+ <rect id="Rectangle_542" data-name="Rectangle 542" width="38.366" height="5.76" rx="2.88" transform="translate(852.606 611.581)" fill="#2e8555"/>
+ <rect id="Rectangle_543" data-name="Rectangle 543" width="11.006" height="5.76" rx="2.88" transform="translate(852.286 598.101)" fill="#2e8555"/>
+ <rect id="Rectangle_544" data-name="Rectangle 544" width="11.006" height="5.76" rx="2.88" transform="translate(912.286 598.101)" fill="#2e8555"/>
+ <rect id="Rectangle_545" data-name="Rectangle 545" width="11.006" height="5.76" rx="2.88" transform="translate(929.286 598.101)" fill="#2e8555"/>
+ <rect id="Rectangle_546" data-name="Rectangle 546" width="38.366" height="5.76" rx="2.88" transform="translate(868.606 598.581)" fill="#2e8555"/>
+ <rect id="Rectangle_547" data-name="Rectangle 547" width="11.006" height="5.76" rx="2.88" transform="translate(868.286 585.101)" fill="#2e8555"/>
+ <rect id="Rectangle_548" data-name="Rectangle 548" width="11.006" height="5.76" rx="2.88" transform="translate(928.286 585.101)" fill="#2e8555"/>
+ <rect id="Rectangle_549" data-name="Rectangle 549" width="11.006" height="5.76" rx="2.88" transform="translate(945.286 585.101)" fill="#2e8555"/>
+ <rect id="Rectangle_550" data-name="Rectangle 550" width="38.366" height="5.76" rx="2.88" transform="translate(884.606 585.581)" fill="#2e8555"/>
+ <rect id="Rectangle_551" data-name="Rectangle 551" width="11.006" height="5.76" rx="2.88" transform="translate(884.286 572.101)" fill="#2e8555"/>
+ <rect id="Rectangle_552" data-name="Rectangle 552" width="11.006" height="5.76" rx="2.88" transform="translate(944.286 572.101)" fill="#2e8555"/>
+ <rect id="Rectangle_553" data-name="Rectangle 553" width="11.006" height="5.76" rx="2.88" transform="translate(961.286 572.101)" fill="#2e8555"/>
+ <rect id="Rectangle_554" data-name="Rectangle 554" width="38.366" height="5.76" rx="2.88" transform="translate(900.606 572.581)" fill="#2e8555"/>
+ <path id="Path_2191-362" data-name="Path 2191" d="M509.832,707.816c-.22.11-.44.22-.66.32q-2.085,1.035-4.2,2.04-6.33,3.015-12.82,5.73a285.491,285.491,0,0,1-34.97,12.03c-2-12.47-3.94-41.88-5.8-63.51-.35-4.07-.7-7.86-1.05-11.21a97.15,97.15,0,0,0-1.89-13.08,4.359,4.359,0,0,0-.39-.97c.19,1.73.39,6.89.58,14.05.1,3.35.19,7.14.29,11.21.47,20.82.96,49.15,1.45,65.28-1.39.34-2.79.68-4.19,1-.88.21-1.77.41-2.66.6-1.08.24-2.16.48-3.24.7q-1.7.36-3.39.69a290.078,290.078,0,0,1-56.06,5.44c-1.25,0-2. [...]
+ <path id="Path_2192-363" data-name="Path 2192" d="M303.59,473.566l-8.5-32.792-7.5,28.3Z" transform="translate(519.92 251.864)" opacity="0.2"/>
+ <path id="Path_2193-364" data-name="Path 2193" d="M175.749,635.05a6.416,6.416,0,0,0,6.183,4.331l26.492-.682a6.328,6.328,0,0,0,5.981-4.657l3.749-40.087a9.8,9.8,0,0,0,4.238.871,9.661,9.661,0,1,0-.485-19.317,8.177,8.177,0,0,0-1.736.181,6.548,6.548,0,0,0-4.874-2.1l-40.751,1.052a5.858,5.858,0,0,0-1.005.125,6.365,6.365,0,0,0-4.873,8.265Zm43.173-43.817,2.668-9.553a6.506,6.506,0,0,0,.02-3.375c.129,0,.244-.062.373-.062a6.91,6.91,0,1,1,.324,13.817,6.505,6.505,0,0,1-3.385-.828Z" transform="tr [...]
+ <path id="Path_2194-365" data-name="Path 2194" d="M173.541,574.763c.868,4.964,10.629,8.454,22.366,7.847,10.793-.5,19.617-4.287,21.234-8.779a6.024,6.024,0,0,0-1.844-.246l-40.751,1.052A5.852,5.852,0,0,0,173.541,574.763Z" transform="translate(360 90)" fill="#090814"/>
+ <path id="Path_2195-366" data-name="Path 2195" d="M198.283,615.324a.625.625,0,0,0,.191-.084l7.281-4.766a.632.632,0,0,0,0-1.058l-7.568-4.957a.632.632,0,0,0-.693,1.058l6.759,4.427-6.472,4.237a.633.633,0,0,0,.5,1.143Z" transform="translate(363.097 86.083)" fill="#f2f2f2"/>
+ <path id="Path_2196-367" data-name="Path 2196" d="M190.721,615.743a.633.633,0,0,0,.16-1.162l-6.712-3.848,6.487-4.819a.632.632,0,0,0-.754-1.015l-7.263,5.395a.632.632,0,0,0,.062,1.057l7.55,4.328a.633.633,0,0,0,.47.064Z" transform="translate(359.16 86.194)" fill="#f2f2f2"/>
+ <path id="Path_2197-368" data-name="Path 2197" d="M199.817,620.145a.611.611,0,0,0,.173-.073.633.633,0,0,0,.212-.87l-10.322-16.97a.633.633,0,1,0-1.081.659l10.322,16.97a.633.633,0,0,0,.7.284Z" transform="translate(360.839 85.438)" fill="#f2f2f2"/>
+ <path id="Path_2198-369" data-name="Path 2198" d="M945.069,708.9c-.61.31-1.23.62-1.84.92-15.8,7.9-28.44,12.39-45.73,17.31-1.46-16.3-2.87-44.95-4.24-62.71-.36-4.61-.72-8.48-1.07-11.21a15.183,15.183,0,0,0-.88-4.25l.06,4.25.15,11.21.87,64.11a288.589,288.589,0,0,1-65.84,9.49c-1.16.03-2.3.05-3.4.07-.39.01-.77.02-1.15.02-1.25.01-2.49.02-3.74.02a289.272,289.272,0,0,1-69.54-8.43c.49-16.13.98-44.46,1.45-65.28.1-4.07.19-7.86.29-11.21.19-7.16.39-12.32.58-14.05a4.36,4.36,0,0,0-.39.97,97.15,97. [...]
+ <circle id="Ellipse_409" data-name="Ellipse 409" cx="50.836" cy="50.836" r="50.836" transform="translate(1126.038 497.186)" fill="#ffb9b9"/>
+ <path id="Path_2199-370" data-name="Path 2199" d="M575.659,473.566l8.5-32.792,7.5,28.3Z" transform="translate(519.92 251.864)" opacity="0.2"/>
+ <path id="Path_2200-371" data-name="Path 2200" d="M961.689,614.064c-3.04,41.88.11,60.32-16.67,94.85a286.162,286.162,0,0,1-47.52,18.22q-2.55.72-5.11,1.4a288.585,288.585,0,0,1-65.84,9.49c-1.16.03-2.3.05-3.4.07-.39.01-.77.02-1.15.02-1.25.01-2.49.02-3.74.02a289.272,289.272,0,0,1-69.54-8.43q-3.42-.84-6.81-1.77a285.473,285.473,0,0,1-34.97-12.03q-9-3.75-17.68-8.09c-1.31-.66-2.62-1.32-3.91-2-6.63-11.66-10.4-25.84-10.48-42.88C679.459,633.574,951.549,588.744,961.689,614.064Z" transform="tran [...]
+ <path id="Path_2201-372" data-name="Path 2201" d="M961.681,621.236c.155-2.593.329-5.271.531-8.06-10.14-25.32-282.23,19.51-286.82,48.87.013,2.692.128,5.3.321,7.855C686.829,640.922,945.318,598.314,961.681,621.236Z" transform="translate(360 90)" opacity="0.2"/>
+ <path id="Path_2202-373" data-name="Path 2202" d="M668.1,616.039l22.334-11.167-18.611-50.251-4.9-25.342a19.161,19.161,0,0,0-31.282-10.907h0a19.161,19.161,0,0,0-2.493,26.518l18.207,22.759Z" transform="translate(370.081 118.444)" fill="#ffb9b9"/>
+ <path id="Path_2203-374" data-name="Path 2203" d="M690.436,595.567l-29.778,14.889,22.6,70.809a30.977,30.977,0,0,0,22.336,20.716h0a30.977,30.977,0,0,0,33.737-14.2L799.254,585.07a31.62,31.62,0,0,0-10.2-42.982h0a31.62,31.62,0,0,0-45.3,12.765L707.187,632.79Z" transform="translate(360 90)" fill="#2e8555"/>
+ <circle id="Ellipse_410" data-name="Ellipse 410" cx="55.935" cy="55.935" r="55.935" transform="translate(673.493 483.48)" fill="#ffb9b9"/>
+ <path id="Path_2204-375" data-name="Path 2204" d="M314.164,410.87c4.548-6.13,11.085-10.488,16.085-16.255,2.743-3.164,5.021-6.75,8.106-9.582,5.73-5.263,13.744-7.42,21.52-7.688a54.3,54.3,0,0,1,44.331,21.038l12.194-7.149,4.817,12.68a7.391,7.391,0,0,1,11.264,9.248c.967-2.989,5.4-3.623,7.842-1.649s3.1,5.488,2.7,8.6a17.32,17.32,0,0,1-13.065,14.326c-5.3,1.182-11.477-.06-15.723,3.332-3.4,2.72-4.431,7.672-7.9,10.3-4.28,3.24-10.329,1.742-15.65,2.458-9.308,1.253-16.678,10.773-15.56,20.1-.842- [...]
+ <path id="Path_2205-376" data-name="Path 2205" d="M880.582,486.046c10.642-24.4,4.613-46.85-8.36-58.76v-.01c-5.1-11.43-11.88-20.25-19.64-22.32-3.75-2.41-7.39-5.24-11.43-6.68a14.887,14.887,0,0,0-11.68.53l-2.06-.55c-4.551-.651-.111.381-6.08-1.62-8.78-4.09-16.69-5.92-23.73-5.92-22.96,0-36.54,19.44-40.14,42.94l19.19,5.11,6.67-10.63-3.08,11.59,10.59,2.81c16.12,20.99-3.17,69.41-27.62,96.35q8.73-2.415,17.39-4.08l20.98-30.76-13,28c6.75-.99,15.36-.04,24.77,1.87,3.17-4.14,4.84-9.66,3.2-14.58a [...]
+ <path id="Path_2206-377" data-name="Path 2206" d="M887.505,403.054c7.795,17.453-7.933,24.96-22.341,24.748-13.019-.192-24.084-9.338-24.748-22.341a23.576,23.576,0,0,1,22.341-24.748C875.76,380.048,882.2,391.166,887.505,403.054Z" transform="translate(360 90)" fill="#090814"/>
+ <path id="Path_2207-378" data-name="Path 2207" d="M526.5,693.633l-13.442-23.177,44.7-35.052,18.583-20.282A19.644,19.644,0,0,1,595.51,609.2,20.352,20.352,0,0,1,610.1,623.35h0c3.145,10.7-2.478,22.045-12.712,25.657L568.51,659.2Z" transform="translate(358.634 88.636)" fill="#ffb9b9"/>
+ <path id="Path_2208-379" data-name="Path 2208" d="M535.182,686.466l-19.99,16.66-5.39,4.49-.63.52q-2.085,1.035-4.2,2.04-6.33,3.015-12.82,5.73a285.491,285.491,0,0,1-34.97,12.03q-3.39.93-6.81,1.77c-1.39.34-2.79.68-4.19,1-.88.21-1.77.41-2.66.6-1.08.24-2.16.48-3.24.7q-1.7.36-3.39.69a30.963,30.963,0,0,1-9.62-22.44c0-.27,0-.55.01-.83l3.21-82.33,1.42-36.49a31.618,31.618,0,0,1,31.69-30.78c.96,0,1.91.05,2.85.14.68.88,1.31,1.79,1.92,2.71,1.66,2.46,3.9,6.35,6.54,11.23,1.09,2.01,2.24,4.19,3.45, [...]
+ <path id="Path_2209-380" data-name="Path 2209" d="M524.222,662.936c-.01,1.7-.05,3.37-.14,5.02a97.238,97.238,0,0,1-1.58,13.56,79.141,79.141,0,0,1-7.31,21.61c-.46.91-.95,1.81-1.45,2.69-1.29.68-2.6,1.34-3.91,2-.22.11-.44.22-.66.32q-8.355,4.155-17.02,7.77a285.491,285.491,0,0,1-34.97,12.03q-3.39.93-6.81,1.77-6.675,1.65-13.48,2.99a290.068,290.068,0,0,1-56.06,5.44c-1.25,0-2.49-.01-3.74-.02-.38,0-.76-.01-1.15-.02-1.1-.02-2.24-.04-3.4-.07a288.588,288.588,0,0,1-65.84-9.49q-2.565-.675-5.11-1. [...]
+ <path id="Path_2210-381" data-name="Path 2210" d="M237.408,621.236c-.155-2.593-.329-5.271-.531-8.06,10.14-25.32,282.23,19.51,286.82,48.87-.013,2.692-.128,5.3-.321,7.855C512.26,640.922,253.77,598.314,237.408,621.236Z" transform="translate(360 90)" opacity="0.2"/>
+ </g>
+ </g>
+</svg>
\ No newline at end of file
diff --git a/img/index/undraw_spreadsheet.svg b/img/index/undraw_spreadsheet.svg
new file mode 100644
index 00000000..b7bc4ee6
--- /dev/null
+++ b/img/index/undraw_spreadsheet.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="840.77002" height="511.63" viewBox="0 0 840.77002 511.63" xmlns:xlink="http://www.w3.org/1999/xlink" role="img" artist="Katerina Limpitsouni" source="https://undraw.co/"><path d="M638.405,705.815c-.73-.79-1.46-1.58-2.17-2.38a122.82463,122.82463,0,0,1-16.39-22.95,97.25,97.25,0,0,1-10.22-28.63c-3.74-19.93-1.07-40.83,10.12-57.43q.41994-.63.87-1.26c.14.52.29,1.03.45,1.55a135.41037,135.41037,0,0,0,7.79,20.51c.23.52.48,1.03.74,1.54a142.15754,142.1 [...]
\ No newline at end of file
diff --git a/img/logo/fesod-logo-icon-white.png b/img/logo/fesod-logo-icon-white.png
new file mode 100644
index 00000000..8f2b95f4
Binary files /dev/null and b/img/logo/fesod-logo-icon-white.png differ
diff --git a/img/logo/fesod-logo-icon.png b/img/logo/fesod-logo-icon.png
new file mode 100644
index 00000000..65d71cbc
Binary files /dev/null and b/img/logo/fesod-logo-icon.png differ
diff --git a/img/logo/fesod-logo-icon.svg b/img/logo/fesod-logo-icon.svg
new file mode 100644
index 00000000..6c080ff8
--- /dev/null
+++ b/img/logo/fesod-logo-icon.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="222" height="220" viewBox="0 0 222 220" fill="none"><path fill="#14824B" d="M113.324 163.939L81.7664 132.382L81.7664 132.382C85.415 136.03 85.4151 141.946 81.7665 145.595L81.6 145.761L66.2449 161.116C62.066 165.295 62.066 172.071 66.245 176.25L83.6291 193.634C87.8081 197.813 94.5836 197.813 98.7625 193.634L113.324 179.073C117.503 174.894 117.503 168.118 113.324 163.939Z"></path><path fill-rul [...]
\ No newline at end of file
diff --git a/img/logo/fesod-logo-white-y.png b/img/logo/fesod-logo-white-y.png
new file mode 100644
index 00000000..127de495
Binary files /dev/null and b/img/logo/fesod-logo-white-y.png differ
diff --git a/img/logo/fesod-logo-white.svg b/img/logo/fesod-logo-white.svg
new file mode 100644
index 00000000..f9a4dc0a
--- /dev/null
+++ b/img/logo/fesod-logo-white.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="591" height="180" viewBox="0 0 591 180" fill="none"><path d="M152.613 81.3983L83.041 11.8267C78.7214 7.50709 72.0542 7.17239 68.1494 11.0772L53.2296 25.997C49.3249 29.9018 49.6525 36.576 53.9721 40.8956L66.2027 53.1262C66.1549 53.0762 66.1063 53.0266 66.0571 52.9774L124.295 111.215C128.199 115.12 128.199 121.451 124.295 125.355L120.362 129.289C120.397 129.254 120.433 129.219 120.468 129.184L153.362 [...]
\ No newline at end of file
diff --git a/img/logo/fesod-logo-y.png b/img/logo/fesod-logo-y.png
new file mode 100644
index 00000000..86ad4799
Binary files /dev/null and b/img/logo/fesod-logo-y.png differ
diff --git a/img/logo/fesod-logo.png b/img/logo/fesod-logo.png
new file mode 100644
index 00000000..f588317f
Binary files /dev/null and b/img/logo/fesod-logo.png differ
diff --git a/img/logo/fesod-logo.svg b/img/logo/fesod-logo.svg
new file mode 100644
index 00000000..2ffb9418
--- /dev/null
+++ b/img/logo/fesod-logo.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="591" height="180" viewBox="0 0 591 180" fill="none"><path fill="#14824B" d="M95.8897 139.62L66.4027 110.133L66.4027 110.133C69.8119 113.542 69.812 119.07 66.4027 122.479L66.2471 122.635L51.8993 136.983C47.9944 140.887 47.9944 147.218 51.8993 151.123L68.1429 167.367C72.0478 171.272 78.3788 171.272 82.2836 167.367L95.8898 153.761C99.7946 149.856 99.7946 143.525 95.8897 139.62Z"></path><path fil [...]
\ No newline at end of file
diff --git a/index.html b/index.html
new file mode 100644
index 00000000..bc49acfd
--- /dev/null
+++ b/index.html
@@ -0,0 +1,26 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="plugin-pages plugin-id-default" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Apache Fesod (Incubating)</title><meta data-rh="true" property="og:title" content="Apache Fesod (Incubating)"><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" propert [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+ Compared to some traditional spreadsheet processing libraries, it can significantly reduce memory consumption.</p></div></div><div class="col col--4"><div class="text--center"><svg xmlns="http://www.w3.org/2000/svg" width="882.126" height="576.272" viewBox="0 0 882.126 576.272" class="featureSvg_GfXr" role="img"><g data-name="Group 138"><g data-name="Group 137" transform="translate(-519 -251.864)"><path fill="#ffb8b8" d="m766.534 626.521-54.67-3.361 1.436-36.792 38.57 3.17c-2.223 8.823- [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/robots.txt b/robots.txt
new file mode 100644
index 00000000..eb053628
--- /dev/null
+++ b/robots.txt
@@ -0,0 +1,2 @@
+User-agent: *
+Disallow:
diff --git a/search-index.json b/search-index.json
new file mode 100644
index 00000000..561cd18d
--- /dev/null
+++ b/search-index.json
@@ -0,0 +1 @@
+[{"documents":[{"i":1,"t":"Way to Go: Fesod successfully entered Apache Incubator","u":"/blog/2025/09/17/fesod-entered-apache-incubator","b":["Blog"]},{"i":3,"t":"","u":"/blog/archive","b":["Blog"]},{"i":4,"t":"","u":"/blog/authors","b":["Blog"]},{"i":5,"t":"Join Community","u":"/community/","b":[]},{"i":7,"t":"Brand","u":"/community/brand","b":[]},{"i":9,"t":"Become A Committer","u":"/community/committer/become-committer","b":[]},{"i":11,"t":"Sign iCLA Guide","u":"/community/committer/i [...]
\ No newline at end of file
diff --git a/search/index.html b/search/index.html
new file mode 100644
index 00000000..c6853adb
--- /dev/null
+++ b/search/index.html
@@ -0,0 +1,25 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="plugin-@easyops-cn/docusaurus-search-local plugin-id-default" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Search the documentation</title><meta data-rh="true" property="og:title" content="Apache Fesod (Incubating)"><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/sitemap.xml b/sitemap.xml
new file mode 100644
index 00000000..948745e9
--- /dev/null
+++ b/sitemap.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://fesod.apache.org/blog</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://fesod.apache.org/blog/2025/09/17/fesod-ente [...]
\ No newline at end of file
diff --git a/team/index.html b/team/index.html
new file mode 100644
index 00000000..3090193d
--- /dev/null
+++ b/team/index.html
@@ -0,0 +1,25 @@
+<!doctype html>
+<html lang="en" dir="ltr" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">Apache Fesod (Incubating)</title><meta data-rh="true" property="og:title" content="Apache Fesod (Incubating)"><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" propert [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.6121cea4.js" defer="defer"></script>
+<script src="/assets/js/main.70490860.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/.nojekyll b/zh-cn/.nojekyll
new file mode 100644
index 00000000..e69de29b
diff --git a/zh-cn/404.html b/zh-cn/404.html
new file mode 100644
index 00000000..fece4603
--- /dev/null
+++ b/zh-cn/404.html
@@ -0,0 +1,25 @@
+<!doctype html>
+<html lang="zh-cn" dir="ltr" class="plugin-native plugin-id-default" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">找不到页面 | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/zh-cn/404.ht [...]
+<link rel="alternate" type="application/atom+xml" href="/zh-cn/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/zh-cn/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/zh-cn/assets/js/runtime~main.1ab0801f.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.00cf2c92.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/assets/css/styles.72156a30.css b/zh-cn/assets/css/styles.72156a30.css
new file mode 100644
index 00000000..760ca6ad
--- /dev/null
+++ b/zh-cn/assets/css/styles.72156a30.css
@@ -0,0 +1 @@
+@layer docusaurus.infima,docusaurus.theme-common,docusaurus.theme-classic,docusaurus.core,docusaurus.plugin-debug,docusaurus.theme-mermaid,docusaurus.theme-live-codeblock,docusaurus.theme-search-algolia.docsearch,docusaurus.theme-search-algolia;@layer docusaurus.infima{.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown [...]
\ No newline at end of file
diff --git a/zh-cn/assets/files/fesod-logo-e09e531bdeeb40e7484aaa6dba7f672f.png b/zh-cn/assets/files/fesod-logo-e09e531bdeeb40e7484aaa6dba7f672f.png
new file mode 100644
index 00000000..f588317f
Binary files /dev/null and b/zh-cn/assets/files/fesod-logo-e09e531bdeeb40e7484aaa6dba7f672f.png differ
diff --git a/zh-cn/assets/files/fesod-logo-e965e5189d96bd03fa69a35f3d899546.svg b/zh-cn/assets/files/fesod-logo-e965e5189d96bd03fa69a35f3d899546.svg
new file mode 100644
index 00000000..2ffb9418
--- /dev/null
+++ b/zh-cn/assets/files/fesod-logo-e965e5189d96bd03fa69a35f3d899546.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="591" height="180" viewBox="0 0 591 180" fill="none"><path fill="#14824B" d="M95.8897 139.62L66.4027 110.133L66.4027 110.133C69.8119 113.542 69.812 119.07 66.4027 122.479L66.2471 122.635L51.8993 136.983C47.9944 140.887 47.9944 147.218 51.8993 151.123L68.1429 167.367C72.0478 171.272 78.3788 171.272 82.2836 167.367L95.8898 153.761C99.7946 149.856 99.7946 143.525 95.8897 139.62Z"></path><path fil [...]
\ No newline at end of file
diff --git a/zh-cn/assets/files/fesod-logo-icon-3285667fcb12e822454e1e8bc1296eed.png b/zh-cn/assets/files/fesod-logo-icon-3285667fcb12e822454e1e8bc1296eed.png
new file mode 100644
index 00000000..65d71cbc
Binary files /dev/null and b/zh-cn/assets/files/fesod-logo-icon-3285667fcb12e822454e1e8bc1296eed.png differ
diff --git a/zh-cn/assets/files/fesod-logo-icon-fe2b95b7518918c8494bba4f27944e16.svg b/zh-cn/assets/files/fesod-logo-icon-fe2b95b7518918c8494bba4f27944e16.svg
new file mode 100644
index 00000000..6c080ff8
--- /dev/null
+++ b/zh-cn/assets/files/fesod-logo-icon-fe2b95b7518918c8494bba4f27944e16.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="222" height="220" viewBox="0 0 222 220" fill="none"><path fill="#14824B" d="M113.324 163.939L81.7664 132.382L81.7664 132.382C85.415 136.03 85.4151 141.946 81.7665 145.595L81.6 145.761L66.2449 161.116C62.066 165.295 62.066 172.071 66.245 176.25L83.6291 193.634C87.8081 197.813 94.5836 197.813 98.7625 193.634L113.324 179.073C117.503 174.894 117.503 168.118 113.324 163.939Z"></path><path fill-rul [...]
\ No newline at end of file
diff --git a/zh-cn/assets/images/annotationStyleWrite-daf422cde61cef375e3a694c3c64a0cb.png b/zh-cn/assets/images/annotationStyleWrite-daf422cde61cef375e3a694c3c64a0cb.png
new file mode 100644
index 00000000..6aeb9fb5
Binary files /dev/null and b/zh-cn/assets/images/annotationStyleWrite-daf422cde61cef375e3a694c3c64a0cb.png differ
diff --git a/zh-cn/assets/images/commentWrite-d6757c6db4d4ee3ba71d9df3904e489f.png b/zh-cn/assets/images/commentWrite-d6757c6db4d4ee3ba71d9df3904e489f.png
new file mode 100644
index 00000000..9ffcb125
Binary files /dev/null and b/zh-cn/assets/images/commentWrite-d6757c6db4d4ee3ba71d9df3904e489f.png differ
diff --git a/zh-cn/assets/images/complexFillWithTable_result-21cb25bd329df76baf680fd0f94ef43b.png b/zh-cn/assets/images/complexFillWithTable_result-21cb25bd329df76baf680fd0f94ef43b.png
new file mode 100644
index 00000000..dc27781a
Binary files /dev/null and b/zh-cn/assets/images/complexFillWithTable_result-21cb25bd329df76baf680fd0f94ef43b.png differ
diff --git a/zh-cn/assets/images/complexFill_result-3908e6375dce9ca1e29fdcc1eb7ba0b6.png b/zh-cn/assets/images/complexFill_result-3908e6375dce9ca1e29fdcc1eb7ba0b6.png
new file mode 100644
index 00000000..0a9d289b
Binary files /dev/null and b/zh-cn/assets/images/complexFill_result-3908e6375dce9ca1e29fdcc1eb7ba0b6.png differ
diff --git a/zh-cn/assets/images/complexHeadWrite-ee9a9996adfccb73ce2bd8fd03bda05d.png b/zh-cn/assets/images/complexHeadWrite-ee9a9996adfccb73ce2bd8fd03bda05d.png
new file mode 100644
index 00000000..e52d0960
Binary files /dev/null and b/zh-cn/assets/images/complexHeadWrite-ee9a9996adfccb73ce2bd8fd03bda05d.png differ
diff --git a/zh-cn/assets/images/compositeFill_file-ba1c7222a9c310e389363a04777fa279.png b/zh-cn/assets/images/compositeFill_file-ba1c7222a9c310e389363a04777fa279.png
new file mode 100644
index 00000000..0e9f099f
Binary files /dev/null and b/zh-cn/assets/images/compositeFill_file-ba1c7222a9c310e389363a04777fa279.png differ
diff --git a/zh-cn/assets/images/compositeFill_result-94a945a637d60e2b0e8c055c83f92d8e.png b/zh-cn/assets/images/compositeFill_result-94a945a637d60e2b0e8c055c83f92d8e.png
new file mode 100644
index 00000000..316a0022
Binary files /dev/null and b/zh-cn/assets/images/compositeFill_result-94a945a637d60e2b0e8c055c83f92d8e.png differ
diff --git a/zh-cn/assets/images/converterWrite-3246357a06c3ba04afb519b820c19bb2.png b/zh-cn/assets/images/converterWrite-3246357a06c3ba04afb519b820c19bb2.png
new file mode 100644
index 00000000..90196e1a
Binary files /dev/null and b/zh-cn/assets/images/converterWrite-3246357a06c3ba04afb519b820c19bb2.png differ
diff --git a/zh-cn/assets/images/customHandlerWrite-c05ff79257df5ba72a311793a6e9db60.png b/zh-cn/assets/images/customHandlerWrite-c05ff79257df5ba72a311793a6e9db60.png
new file mode 100644
index 00000000..f263d02a
Binary files /dev/null and b/zh-cn/assets/images/customHandlerWrite-c05ff79257df5ba72a311793a6e9db60.png differ
diff --git a/zh-cn/assets/images/dynamicHeadWrite-b33468bf605a16abf195c740309137e3.png b/zh-cn/assets/images/dynamicHeadWrite-b33468bf605a16abf195c740309137e3.png
new file mode 100644
index 00000000..68430370
Binary files /dev/null and b/zh-cn/assets/images/dynamicHeadWrite-b33468bf605a16abf195c740309137e3.png differ
diff --git a/zh-cn/assets/images/excludeOrIncludeWrite-bea7b205e7748fd8b55311383c344df1.png b/zh-cn/assets/images/excludeOrIncludeWrite-bea7b205e7748fd8b55311383c344df1.png
new file mode 100644
index 00000000..8911e5fb
Binary files /dev/null and b/zh-cn/assets/images/excludeOrIncludeWrite-bea7b205e7748fd8b55311383c344df1.png differ
diff --git a/zh-cn/assets/images/gmail-setting-64fa2bef013a1817489ee6195d293a97.png b/zh-cn/assets/images/gmail-setting-64fa2bef013a1817489ee6195d293a97.png
new file mode 100644
index 00000000..95e69220
Binary files /dev/null and b/zh-cn/assets/images/gmail-setting-64fa2bef013a1817489ee6195d293a97.png differ
diff --git a/zh-cn/assets/images/handlerStyleWrite-082ae37a51bd9252f6900ab754387401.png b/zh-cn/assets/images/handlerStyleWrite-082ae37a51bd9252f6900ab754387401.png
new file mode 100644
index 00000000..7f6248f8
Binary files /dev/null and b/zh-cn/assets/images/handlerStyleWrite-082ae37a51bd9252f6900ab754387401.png differ
diff --git a/zh-cn/assets/images/horizontalFill_result-6c236308703bda3338b429425b18c2a4.png b/zh-cn/assets/images/horizontalFill_result-6c236308703bda3338b429425b18c2a4.png
new file mode 100644
index 00000000..e88053d0
Binary files /dev/null and b/zh-cn/assets/images/horizontalFill_result-6c236308703bda3338b429425b18c2a4.png differ
diff --git a/zh-cn/assets/images/icla-01-83a226e824e1b9a9d08813f21b882e31.png b/zh-cn/assets/images/icla-01-83a226e824e1b9a9d08813f21b882e31.png
new file mode 100644
index 00000000..af3bef05
Binary files /dev/null and b/zh-cn/assets/images/icla-01-83a226e824e1b9a9d08813f21b882e31.png differ
diff --git a/zh-cn/assets/images/icla-02-e761fe1f9d7c718f085b70b9fba8fc39.png b/zh-cn/assets/images/icla-02-e761fe1f9d7c718f085b70b9fba8fc39.png
new file mode 100644
index 00000000..f3b91411
Binary files /dev/null and b/zh-cn/assets/images/icla-02-e761fe1f9d7c718f085b70b9fba8fc39.png differ
diff --git a/zh-cn/assets/images/icla-03-c8df2f12ca6b2bc591a4e73aced61280.png b/zh-cn/assets/images/icla-03-c8df2f12ca6b2bc591a4e73aced61280.png
new file mode 100644
index 00000000..7b3da5a3
Binary files /dev/null and b/zh-cn/assets/images/icla-03-c8df2f12ca6b2bc591a4e73aced61280.png differ
diff --git a/zh-cn/assets/images/icla-04-4925b6c82e6383ae69d9e1b0b92d2145.png b/zh-cn/assets/images/icla-04-4925b6c82e6383ae69d9e1b0b92d2145.png
new file mode 100644
index 00000000..49445dd0
Binary files /dev/null and b/zh-cn/assets/images/icla-04-4925b6c82e6383ae69d9e1b0b92d2145.png differ
diff --git a/zh-cn/assets/images/imgWrite-3ef200f147e8e4f0cf2bb83c82256ce9.png b/zh-cn/assets/images/imgWrite-3ef200f147e8e4f0cf2bb83c82256ce9.png
new file mode 100644
index 00000000..9ad021d5
Binary files /dev/null and b/zh-cn/assets/images/imgWrite-3ef200f147e8e4f0cf2bb83c82256ce9.png differ
diff --git a/zh-cn/assets/images/indexWrite-bb3b8cbf0c5a06371b7fa9917fb3cd33.png b/zh-cn/assets/images/indexWrite-bb3b8cbf0c5a06371b7fa9917fb3cd33.png
new file mode 100644
index 00000000..238d9db8
Binary files /dev/null and b/zh-cn/assets/images/indexWrite-bb3b8cbf0c5a06371b7fa9917fb3cd33.png differ
diff --git a/zh-cn/assets/images/link-github-d7d62b2548477c375730056807eacc89.png b/zh-cn/assets/images/link-github-d7d62b2548477c375730056807eacc89.png
new file mode 100644
index 00000000..dce58cea
Binary files /dev/null and b/zh-cn/assets/images/link-github-d7d62b2548477c375730056807eacc89.png differ
diff --git a/zh-cn/assets/images/listFill_result-c126158195ba15c7ad37c143c1f2940b.png b/zh-cn/assets/images/listFill_result-c126158195ba15c7ad37c143c1f2940b.png
new file mode 100644
index 00000000..4cdd60d4
Binary files /dev/null and b/zh-cn/assets/images/listFill_result-c126158195ba15c7ad37c143c1f2940b.png differ
diff --git a/zh-cn/assets/images/mergeWrite-976e024ef4e1613c6dab373937cc56ff.png b/zh-cn/assets/images/mergeWrite-976e024ef4e1613c6dab373937cc56ff.png
new file mode 100644
index 00000000..0249c4f6
Binary files /dev/null and b/zh-cn/assets/images/mergeWrite-976e024ef4e1613c6dab373937cc56ff.png differ
diff --git a/zh-cn/assets/images/noModelWrite-3d55fb6adc6efbc37febcf23526f89c8.png b/zh-cn/assets/images/noModelWrite-3d55fb6adc6efbc37febcf23526f89c8.png
new file mode 100644
index 00000000..6a66c62d
Binary files /dev/null and b/zh-cn/assets/images/noModelWrite-3d55fb6adc6efbc37febcf23526f89c8.png differ
diff --git a/zh-cn/assets/images/repeatedWrite-1d4a6ee40db8a53e80ac1330fc50e79a.png b/zh-cn/assets/images/repeatedWrite-1d4a6ee40db8a53e80ac1330fc50e79a.png
new file mode 100644
index 00000000..df324c96
Binary files /dev/null and b/zh-cn/assets/images/repeatedWrite-1d4a6ee40db8a53e80ac1330fc50e79a.png differ
diff --git a/zh-cn/assets/images/reset-passwd-e8828118db9277c6fe25a82a5a0bb3da.png b/zh-cn/assets/images/reset-passwd-e8828118db9277c6fe25a82a5a0bb3da.png
new file mode 100644
index 00000000..b03d74c9
Binary files /dev/null and b/zh-cn/assets/images/reset-passwd-e8828118db9277c6fe25a82a5a0bb3da.png differ
diff --git a/zh-cn/assets/images/roster-add-committer-20873b578f8c3b1853cd24d52171ca44.png b/zh-cn/assets/images/roster-add-committer-20873b578f8c3b1853cd24d52171ca44.png
new file mode 100644
index 00000000..37e647f2
Binary files /dev/null and b/zh-cn/assets/images/roster-add-committer-20873b578f8c3b1853cd24d52171ca44.png differ
diff --git a/zh-cn/assets/images/tableWrite-1b3814878a3fc0ef244f767899675190.png b/zh-cn/assets/images/tableWrite-1b3814878a3fc0ef244f767899675190.png
new file mode 100644
index 00000000..e1b6f2a8
Binary files /dev/null and b/zh-cn/assets/images/tableWrite-1b3814878a3fc0ef244f767899675190.png differ
diff --git a/zh-cn/assets/images/widthAndHeightWrite-77c049fb68d1ac806c1ba21e82c45f45.png b/zh-cn/assets/images/widthAndHeightWrite-77c049fb68d1ac806c1ba21e82c45f45.png
new file mode 100644
index 00000000..167b5511
Binary files /dev/null and b/zh-cn/assets/images/widthAndHeightWrite-77c049fb68d1ac806c1ba21e82c45f45.png differ
diff --git a/zh-cn/assets/images/writeCellDataWrite-4dacef4c542b683bc9477c595ba19c4c.png b/zh-cn/assets/images/writeCellDataWrite-4dacef4c542b683bc9477c595ba19c4c.png
new file mode 100644
index 00000000..54b2666f
Binary files /dev/null and b/zh-cn/assets/images/writeCellDataWrite-4dacef4c542b683bc9477c595ba19c4c.png differ
diff --git a/zh-cn/assets/js/00e1230c.79e6a4d3.js b/zh-cn/assets/js/00e1230c.79e6a4d3.js
new file mode 100644
index 00000000..6266a324
--- /dev/null
+++ b/zh-cn/assets/js/00e1230c.79e6a4d3.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6147],{59594(n,e,i){i.r(e),i.d(e,{assets:()=>d,contentTitle:()=>t,default:()=>h,frontMatter:()=>r,metadata:()=>c,toc:()=>o});const c=JSON.parse('{"id":"contribution/contribute-doc","title":"\u6587\u6863\u8d21\u732e\u6307\u5357","description":"\u672c\u6587\u6863\u8d21\u732e\u6307\u5357\u4e3b\u8981\u8bf4\u660e\u5982\u4f55\u4fee\u6539\u6587\u6863\u5e76\u8fdb\u884c\u8d21\u732e\u3002","source":"@site/i18n/ [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/01a85c17.d5835bd3.js b/zh-cn/assets/js/01a85c17.d5835bd3.js
new file mode 100644
index 00000000..0f8f66a5
--- /dev/null
+++ b/zh-cn/assets/js/01a85c17.d5835bd3.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8209],{56998(e,t,a){a.d(t,{in:()=>c,OU:()=>P,Ki:()=>y,kJ:()=>b,x:()=>l,e7:()=>m,J_:()=>f,Gx:()=>k});var s=a(59471),n=a(97831),i=a(25001),r=a(62615);function l(){const e=(0,i.A)(),t=e?.data?.blogMetadata;if(!t)throw new Error("useBlogMetadata() can't be called on the current route because the blog metadata could not be found in route context");return t}const o=s.createContext(null);function c({children [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/026e6981.c7fa73ce.js b/zh-cn/assets/js/026e6981.c7fa73ce.js
new file mode 100644
index 00000000..7501568d
--- /dev/null
+++ b/zh-cn/assets/js/026e6981.c7fa73ce.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1988],{47020(e,n,c){c.r(n),c.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>u,frontMatter:()=>s,metadata:()=>i,toc:()=>m});const i=JSON.parse('{"id":"pmc/become-pmc-member","title":"\u5982\u4f55\u6210\u4e3a PPMC \u6210\u5458","description":"\u4efb\u4f55\u652f\u6301\u793e\u533a\u5e76\u5728 CoPDoC \u9886\u57df\u4e2d\u5de5\u4f5c\u7684\u4eba\u90fd\u53ef\u4ee5\u6210\u4e3a Apache Fesod (Incubating) \u7684 [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/035672d3.36aef3eb.js b/zh-cn/assets/js/035672d3.36aef3eb.js
new file mode 100644
index 00000000..402cf46b
--- /dev/null
+++ b/zh-cn/assets/js/035672d3.36aef3eb.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8885],{42948(A,I,e){e.d(I,{A:()=>E});e(59471);var s=e(61785),Q=e(62615);function E({children:A,fallback:I}){return(0,s.A)()?(0,Q.jsx)(Q.Fragment,{children:A?.()}):I??null}},60482(A,I,e){e.r(I),e.d(I,{default:()=>g});var s=e(59471),Q=e(42948);const E=JSON.parse('{"pmc":[{"githubId":"29803617","gitUrl":"https://github.com/dave2wave","name":"Dave Fisher","isMentor":true},{"githubId":"13284744","gitUrl":" [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/1024.78cf4982.js b/zh-cn/assets/js/1024.78cf4982.js
new file mode 100644
index 00000000..68a05f06
--- /dev/null
+++ b/zh-cn/assets/js/1024.78cf4982.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1024],{91024(e,r,s){s.d(r,{diagram:()=>i});var a=s(51597),t=(s(38346),s(82094),s(59331),s(3254),s(70435),s(67597),s(1693),s(87158),s(12700),s(62823),s(98189),s(86798),s(76322)),i={parser:a._$,get db(){return new a.NM},renderer:a.Lh,styles:a.tM,init:(0,t.K2)(e=>{e.class||(e.class={}),e.class.arrowMarkerAbsolute=e.arrowMarkerAbsolute},"init")}}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/1146.11a60ee4.js b/zh-cn/assets/js/1146.11a60ee4.js
new file mode 100644
index 00000000..328f5125
--- /dev/null
+++ b/zh-cn/assets/js/1146.11a60ee4.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1146],{81146(t,e,a){a.d(e,{diagram:()=>Pt});var n=a(89300),i=a(98189),r=a(86798),s=a(76322),l=a(7012),o=a(34674),h=function(){var t=(0,s.K2)(function(t,e,a,n){for(a=a||{},n=t.length;n--;a[t[n]]=e);return a},"o"),e=[1,24],a=[1,25],n=[1,26],i=[1,27],r=[1,28],l=[1,63],o=[1,64],h=[1,65],d=[1,66],u=[1,67],p=[1,68],y=[1,69],g=[1,29],f=[1,30],b=[1,31],x=[1,32],_=[1,33],m=[1,34],E=[1,35],S=[1,36],A=[1,37],C=[ [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/1236.db21968b.js b/zh-cn/assets/js/1236.db21968b.js
new file mode 100644
index 00000000..bab6f705
--- /dev/null
+++ b/zh-cn/assets/js/1236.db21968b.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1236],{81236(e,t,r){r.d(t,{default:()=>dn});class a{constructor(e,t,r){this.lexer=void 0,this.start=void 0,this.end=void 0,this.lexer=e,this.start=t,this.end=r}static range(e,t){return t?e&&e.loc&&t.loc&&e.loc.lexer===t.loc.lexer?new a(e.loc.lexer,e.loc.start,t.loc.end):null:e&&e.loc}}class n{constructor(e,t){this.text=void 0,this.loc=void 0,this.noexpand=void 0,this.treatAsRelax=void 0,this.text=e,th [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/1288.771018c8.js b/zh-cn/assets/js/1288.771018c8.js
new file mode 100644
index 00000000..d230c894
--- /dev/null
+++ b/zh-cn/assets/js/1288.771018c8.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1288],{80124(t,e,s){s.d(e,{A:()=>r});var i=s(46554),n=s(55385);const r=(t,e)=>i.A.lang.round(n.A.parse(t)[e])},82094(t,e,s){s.d(e,{A:()=>r});var i=s(76322),n=s(7012),r=(0,i.K2)((t,e)=>{let s;"sandbox"===e&&(s=(0,n.Ltv)("#i"+t));return("sandbox"===e?(0,n.Ltv)(s.nodes()[0].contentDocument.body):(0,n.Ltv)("body")).select(`[id="${t}"]`)},"getDiagramElement")},38346(t,e,s){s.d(e,{o:()=>i});var i=(0,s(76322 [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/138e0e15.d55cec6c.js b/zh-cn/assets/js/138e0e15.d55cec6c.js
new file mode 100644
index 00000000..627d8379
--- /dev/null
+++ b/zh-cn/assets/js/138e0e15.d55cec6c.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4921],{41597(s){s.exports=JSON.parse('{"name":"@easyops-cn/docusaurus-search-local","id":"default"}')}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/1416.54f4a54c.js b/zh-cn/assets/js/1416.54f4a54c.js
new file mode 100644
index 00000000..973abc06
--- /dev/null
+++ b/zh-cn/assets/js/1416.54f4a54c.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1416],{51416(t,e,n){n.d(e,{diagram:()=>Y});var i=n(86798),s=n(76322),r=n(7012),a=n(13212),o=n(58480),c=n(81896),l=function(){var t=(0,s.K2)(function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},"o"),e=[6,8,10,11,12,14,16,17,20,21],n=[1,9],i=[1,10],r=[1,11],a=[1,12],o=[1,13],c=[1,16],l=[1,17],h={trace:(0,s.K2)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6 [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/14fc6b04.69680751.js b/zh-cn/assets/js/14fc6b04.69680751.js
new file mode 100644
index 00000000..27de6bc4
--- /dev/null
+++ b/zh-cn/assets/js/14fc6b04.69680751.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4065],{65701(e,t,n){n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>r,default:()=>p,frontMatter:()=>a,metadata:()=>o,toc:()=>i});var o=n(78208),s=n(62615),c=n(30416);const a={title:"\u5b98\u5ba3! Fesod \u6210\u529f\u8fdb\u5165 Apache \u5b75\u5316\u5668",description:"Fesod successfully entered Apache Incubator.",tags:["announcement"]},r=void 0,u={authorsImageUrls:[]},i=[];function d(e){const t={a:"a",p:"p" [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/1597.20a48039.js b/zh-cn/assets/js/1597.20a48039.js
new file mode 100644
index 00000000..a0731f7c
--- /dev/null
+++ b/zh-cn/assets/js/1597.20a48039.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1597],{82094(t,e,s){s.d(e,{A:()=>a});var i=s(76322),n=s(7012),a=(0,i.K2)((t,e)=>{let s;"sandbox"===e&&(s=(0,n.Ltv)("#i"+t));return("sandbox"===e?(0,n.Ltv)(s.nodes()[0].contentDocument.body):(0,n.Ltv)("body")).select(`[id="${t}"]`)},"getDiagramElement")},51597(t,e,s){s.d(e,{Lh:()=>T,NM:()=>m,_$:()=>d,tM:()=>b});var i=s(38346),n=s(82094),a=s(59331),r=s(3254),u=s(98189),l=s(86798),o=s(76322),c=s(7012),h= [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/17896441.ab580b05.js b/zh-cn/assets/js/17896441.ab580b05.js
new file mode 100644
index 00000000..c1301af3
--- /dev/null
+++ b/zh-cn/assets/js/17896441.ab580b05.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8401],{44746(e,n,t){t.d(n,{A:()=>c});t(59471);var s=t(13526),i=t(29454),a=t(6339),r=t(94979),o=t(62615);function l({className:e}){return(0,o.jsx)(r.A,{type:"caution",title:(0,o.jsx)(a.Rc,{}),className:(0,s.A)(e,i.G.common.unlistedBanner),children:(0,o.jsx)(a.Uh,{})})}function c(e){return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(a.AE,{}),(0,o.jsx)(l,{...e})]})}},1835(e,n,t){t.d(n,{A:()=>d});t(59471);v [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/18b1fbba.421f6c6d.js b/zh-cn/assets/js/18b1fbba.421f6c6d.js
new file mode 100644
index 00000000..0f489225
--- /dev/null
+++ b/zh-cn/assets/js/18b1fbba.421f6c6d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5508],{62319(e,n,t){t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>r,default:()=>d,frontMatter:()=>s,metadata:()=>o,toc:()=>h});const o=JSON.parse('{"id":"pmc/nominate-committer","title":"\u63d0\u540d\u65b0 Committer","description":"\u672c\u6587\u4ef6\u4e3b\u8981\u4ecb\u7ecdPPMC\u6210\u5458\u5982\u4f55\u63d0\u540d\u65b0\u63d0\u4ea4\u8005\u3002","source":"@site/i18n/zh-cn/docusaurus-plugin-content-docs-co [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/1a3b291f.a02097a7.js b/zh-cn/assets/js/1a3b291f.a02097a7.js
new file mode 100644
index 00000000..fa69c68d
--- /dev/null
+++ b/zh-cn/assets/js/1a3b291f.a02097a7.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5152],{73757(e,i,n){n.r(i),n.d(i,{assets:()=>a,contentTitle:()=>l,default:()=>d,frontMatter:()=>s,metadata:()=>t,toc:()=>h});const t=JSON.parse('{"id":"committer/onboarding","title":"Committer \u987b\u77e5","description":"\u6536\u5230 Apache Fesod (Incubating) PPMC \u7684\u9080\u8bf7\u90ae\u4ef6\u540e\uff0c\u65b0\u7684 Committer \u5e94\u8003\u8651\u662f\u5426\u63a5\u53d7\u9080\u8bf7\u3002","source":"@ [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/1a4e3797.d954a506.js b/zh-cn/assets/js/1a4e3797.d954a506.js
new file mode 100644
index 00000000..fc786226
--- /dev/null
+++ b/zh-cn/assets/js/1a4e3797.d954a506.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2138],{58200(e,t,r){r.d(t,{W:()=>u});var s=r(59471),a=r(22488);const n=["zero","one","two","few","many","other"];function l(e){return n.filter(t=>e.includes(t))}const c={locale:"en",pluralForms:l(["one","other"]),select:e=>1===e?"one":"other"};function o(){const{i18n:{currentLocale:e}}=(0,a.A)();return(0,s.useMemo)(()=>{try{return function(e){const t=new Intl.PluralRules(e);return{locale:e,pluralForms [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/214.0255b187.js b/zh-cn/assets/js/214.0255b187.js
new file mode 100644
index 00000000..307575ee
--- /dev/null
+++ b/zh-cn/assets/js/214.0255b187.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[214],{70214(e,s,a){a.d(s,{createTreemapServices:()=>b.d});var b=a(89152);a(85472)}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/2374.4da46005.js b/zh-cn/assets/js/2374.4da46005.js
new file mode 100644
index 00000000..c1bf8ddb
--- /dev/null
+++ b/zh-cn/assets/js/2374.4da46005.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2374],{82374(t,i,e){e.d(i,{diagram:()=>it});var s=e(24841),a=e(62823),n=e(98189),h=e(86798),o=e(76322),r=e(7012),l=function(){var t=(0,o.K2)(function(t,i,e,s){for(e=e||{},s=t.length;s--;e[t[s]]=i);return e},"o"),i=[1,10,12,14,16,18,19,21,23],e=[2,6],s=[1,3],a=[1,5],n=[1,6],h=[1,7],r=[1,5,10,12,14,16,18,19,21,23,34,35,36],l=[1,25],c=[1,26],g=[1,28],u=[1,29],x=[1,30],d=[1,31],p=[1,32],f=[1,33],y=[1,34], [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/23f7ca76.c36f6e8e.js b/zh-cn/assets/js/23f7ca76.c36f6e8e.js
new file mode 100644
index 00000000..b089177d
--- /dev/null
+++ b/zh-cn/assets/js/23f7ca76.c36f6e8e.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[240],{96902(e,n,t){t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>u,frontMatter:()=>r,metadata:()=>i,toc:()=>o});const i=JSON.parse('{"id":"introduce","title":"\u4ecb\u7ecd","description":"\u4ecb\u7ecd","source":"@site/i18n/zh-cn/docusaurus-plugin-content-docs/current/introduce.md","sourceDirName":".","slug":"/","permalink":"/zh-cn/docs/","draft":false,"unlisted":false,"editUrl":"https://gi [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/2489.9a0aa92d.js b/zh-cn/assets/js/2489.9a0aa92d.js
new file mode 100644
index 00000000..ebbf3527
--- /dev/null
+++ b/zh-cn/assets/js/2489.9a0aa92d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2489],{42489(e,a,s){s.d(a,{createRadarServices:()=>b.f});var b=s(40535);s(85472)}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/2557682e.43e649cd.js b/zh-cn/assets/js/2557682e.43e649cd.js
new file mode 100644
index 00000000..5a9d80a2
--- /dev/null
+++ b/zh-cn/assets/js/2557682e.43e649cd.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5633],{58672(A,g,e){e.r(g),e.d(g,{assets:()=>n,contentTitle:()=>I,default:()=>V,frontMatter:()=>E,metadata:()=>C,toc:()=>l});const C=JSON.parse('{"id":"sheet/fill/fill","title":"\u586b\u5145","description":"\u672c\u7ae0\u8282\u4ecb\u7ecd\u5982\u4f55\u4f7f\u7528 Fesod \u6765\u586b\u5145\u6570\u636e\u5230\u6587\u4ef6\u4e2d\u3002","source":"@site/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/fi [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/257.49af7587.js b/zh-cn/assets/js/257.49af7587.js
new file mode 100644
index 00000000..5c9fbf6e
--- /dev/null
+++ b/zh-cn/assets/js/257.49af7587.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[257],{82094(e,t,s){s.d(t,{A:()=>r});var i=s(76322),n=s(7012),r=(0,i.K2)((e,t)=>{let s;"sandbox"===t&&(s=(0,n.Ltv)("#i"+e));return("sandbox"===t?(0,n.Ltv)(s.nodes()[0].contentDocument.body):(0,n.Ltv)("body")).select(`[id="${e}"]`)},"getDiagramElement")},59331(e,t,s){s.d(t,{P:()=>r});var i=s(86798),n=s(76322),r=(0,n.K2)((e,t,s,r)=>{e.attr("class",s);const{width:c,height:o,x:h,y:u}=a(e,t);(0,i.a$)(e,o,c, [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/2665.159f73c8.js b/zh-cn/assets/js/2665.159f73c8.js
new file mode 100644
index 00000000..969bcc2b
--- /dev/null
+++ b/zh-cn/assets/js/2665.159f73c8.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2665],{31508(e,t,a){function i(e,t){e.accDescr&&t.setAccDescription?.(e.accDescr),e.accTitle&&t.setAccTitle?.(e.accTitle),e.title&&t.setDiagramTitle?.(e.title)}a.d(t,{S:()=>i}),(0,a(76322).K2)(i,"populateCommonDb")},52665(e,t,a){a.d(t,{diagram:()=>C});var i=a(24841),l=a(31508),n=a(98189),r=a(86798),s=a(76322),o=a(53157),c=a(7012),p=r.UI.pie,d={sections:new Map,showData:!1,config:p},u=d.sections,g=d.sh [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/2bc519fb.05cd1a84.js b/zh-cn/assets/js/2bc519fb.05cd1a84.js
new file mode 100644
index 00000000..1b0ac761
--- /dev/null
+++ b/zh-cn/assets/js/2bc519fb.05cd1a84.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4897],{99799(e,n,t){t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>s,default:()=>h,frontMatter:()=>r,metadata:()=>a,toc:()=>c});const a=JSON.parse('{"id":"sheet/write/extra","title":"\u989d\u5916\u4fe1\u606f","description":"\u672c\u7ae0\u8282\u5c06\u4ecb\u7ecd\u5982\u4f55\u5199\u5165\u989d\u5916\u7684\u4fe1\u606f\uff0c\u5982\u6279\u6ce8\u3001\u8d85\u94fe\u63a5\u3001\u516c\u5f0f\u3001\u5408\u5e76\u5355\u5 [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/3157.9e5d5098.js b/zh-cn/assets/js/3157.9e5d5098.js
new file mode 100644
index 00000000..a24f6a52
--- /dev/null
+++ b/zh-cn/assets/js/3157.9e5d5098.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3157],{13479(e,t,n){e.exports=n(80471)},80471(e,t,n){var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),i=this&&this.__exportStar||function(e,t [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/32d423f7.7a9baf70.js b/zh-cn/assets/js/32d423f7.7a9baf70.js
new file mode 100644
index 00000000..1755cc20
--- /dev/null
+++ b/zh-cn/assets/js/32d423f7.7a9baf70.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7844],{19892(a){a.exports=JSON.parse('{"tag":{"label":"announcement","permalink":"/zh-cn/blog/tags/announcement","allTagsPath":"/zh-cn/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/zh-cn/blog/tags/announcement","page":1,"postsPerPage":15,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/33296af2.33db1dd7.js b/zh-cn/assets/js/33296af2.33db1dd7.js
new file mode 100644
index 00000000..4620916a
--- /dev/null
+++ b/zh-cn/assets/js/33296af2.33db1dd7.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6733],{19067(e,t,i){i.r(t),i.d(t,{assets:()=>d,contentTitle:()=>h,default:()=>o,frontMatter:()=>s,metadata:()=>n,toc:()=>a});const n=JSON.parse('{"id":"sheet/write/sheet","title":"Sheet \u9875","description":"\u672c\u7ae0\u8282\u5c06\u4ecb\u7ecd\u8bbe\u7f6e Sheet \u6765\u5199\u5165\u6570\u636e\u7684\u4f7f\u7528\u3002","source":"@site/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/sheet. [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/3459.b326c4d4.js b/zh-cn/assets/js/3459.b326c4d4.js
new file mode 100644
index 00000000..b3f2ce21
--- /dev/null
+++ b/zh-cn/assets/js/3459.b326c4d4.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3459],{3459(e,s,a){a.d(s,{createGitGraphServices:()=>b.b});var b=a(44808);a(85472)}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/3508.261c092d.js b/zh-cn/assets/js/3508.261c092d.js
new file mode 100644
index 00000000..442dbf01
--- /dev/null
+++ b/zh-cn/assets/js/3508.261c092d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3508],{93508(e,n,t){t.d(n,{Zp:()=>Rn});var r=t(96215),o=t(21631),i=0;const u=function(e){var n=++i;return(0,o.A)(e)+n};var a=t(22633),s=t(73535),d=t(44551),c=Math.ceil,h=Math.max;const f=function(e,n,t,r){for(var o=-1,i=h(c((n-e)/(t||1)),0),u=Array(i);i--;)u[r?i:++o]=e,e+=t;return u};var l=t(57485),v=t(80367);const g=function(e){return function(n,t,r){return r&&"number"!=typeof r&&(0,l.A)(n,t,r)&&(t=r [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/3577.52bb2b08.js b/zh-cn/assets/js/3577.52bb2b08.js
new file mode 100644
index 00000000..e6186d40
--- /dev/null
+++ b/zh-cn/assets/js/3577.52bb2b08.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3577],{83577(e,r,t){t.d(r,{diagram:()=>i});var a=t(80587),s=(t(82094),t(59331),t(3254),t(70435),t(67597),t(1693),t(87158),t(12700),t(62823),t(98189),t(86798),t(76322)),i={parser:a.Zk,get db(){return new a.u4(2)},renderer:a.q7,styles:a.tM,init:(0,s.K2)(e=>{e.state||(e.state={}),e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute},"init")}}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/35ef6288.d0409d4d.js b/zh-cn/assets/js/35ef6288.d0409d4d.js
new file mode 100644
index 00000000..0afe220c
--- /dev/null
+++ b/zh-cn/assets/js/35ef6288.d0409d4d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9646],{82715(e,n,s){s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>d,default:()=>a,frontMatter:()=>r,metadata:()=>i,toc:()=>h});const i=JSON.parse('{"id":"index","title":"\u52a0\u5165\u793e\u533a","description":"\u975e\u5e38\u611f\u8c22\u60a8\u5bf9 Apache Fesod (Incubating) \u7684\u5173\u6ce8\u3002\u6bcf\u4e2a\u5fd7\u613f\u8005\u9879\u76ee\u7684\u529b\u91cf\u90fd\u6e90\u4e8e\u53c2\u4e0e\u5176\u4e2d\u7684 [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/3637.f7b1c1df.js b/zh-cn/assets/js/3637.f7b1c1df.js
new file mode 100644
index 00000000..b0b32ee0
--- /dev/null
+++ b/zh-cn/assets/js/3637.f7b1c1df.js
@@ -0,0 +1 @@
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3637],{16443(t){t.exports=function(){"use strict";return function(t,e){var n=e.prototype,i=n.format;n.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return i.bind(this)(t);var s=this.$utils(),r=(t||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,function(t){switch(t){case"Q":return Math.ceil((e.$M+1)/3);case"Do":return n.ordinal(e.$D);case"gggg":retu [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/3696a4b8.ea2c5ecd.js b/zh-cn/assets/js/3696a4b8.ea2c5ecd.js
new file mode 100644
index 00000000..6655ed9c
--- /dev/null
+++ b/zh-cn/assets/js/3696a4b8.ea2c5ecd.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[140],{16885(e,n,i){i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>t,toc:()=>m});const t=JSON.parse('{"id":"committer/become-committer","title":"\u5982\u4f55\u6210\u4e3a Committer","description":"\u4efb\u4f55\u652f\u6301\u793e\u533a\u5e76\u5728 CoPDoC \u9886\u57df\u4e2d\u5de5\u4f5c\u7684\u4eba\u90fd\u53ef\u4ee5\u6210\u4e3a Apache Fesod (Incubating) \u7684 Com [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/36994c47.3ef3ca34.js b/zh-cn/assets/js/36994c47.3ef3ca34.js
new file mode 100644
index 00000000..d54a2cc0
--- /dev/null
+++ b/zh-cn/assets/js/36994c47.3ef3ca34.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9858],{45516(e){e.exports=JSON.parse('{"name":"docusaurus-plugin-content-blog","id":"default"}')}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/3842.95371aea.js b/zh-cn/assets/js/3842.95371aea.js
new file mode 100644
index 00000000..4718e8f2
--- /dev/null
+++ b/zh-cn/assets/js/3842.95371aea.js
@@ -0,0 +1 @@
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3842],{57601(t,e,i){var n;n=function(t){return(()=>{"use strict";var e={45:(t,e,i)=>{var n={};n.layoutBase=i(551),n.CoSEConstants=i(806),n.CoSEEdge=i(767),n.CoSEGraph=i(880),n.CoSEGraphManager=i(578),n.CoSELayout=i(765),n.CoSENode=i(991),n.ConstraintHandler=i(902),t.exports=n},806:(t,e,i)=>{var n=i(551).FDLayoutConstants;function r(){}for(var o in n)r[o]=n[o];r.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,r.DEFAULT_RADIAL_S [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/39832ed4.0d7fadb0.js b/zh-cn/assets/js/39832ed4.0d7fadb0.js
new file mode 100644
index 00000000..ef11253c
--- /dev/null
+++ b/zh-cn/assets/js/39832ed4.0d7fadb0.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7315],{68548(A){A.exports=JSON.parse('{"authors":[{"name":"Dave Fisher","url":"https://github.com/dave2wave","socials":{"github":"https://github.com/dave2wave"},"imageURL":"data:image/png;base64,/9j/2wCEAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDIBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAGQAZAMBIgACEQEDEQH/x [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/3a6abea9.4415d4fd.js b/zh-cn/assets/js/3a6abea9.4415d4fd.js
new file mode 100644
index 00000000..38732291
--- /dev/null
+++ b/zh-cn/assets/js/3a6abea9.4415d4fd.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6173],{53302(e,t,n){n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>a,default:()=>h,frontMatter:()=>l,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"sheet/write/simple","title":"\u7b80\u5355\u5199\u5165","description":"\u672c\u7ae0\u8282\u4ecb\u7ecd\u5982\u4f55\u4f7f\u7528 Fesod \u5b8c\u6210\u7b80\u5355\u7535\u5b50\u8868\u683c\u5199\u5165","source":"@site/i18n/zh-cn/docusaurus-plugin-content-docs/c [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/417.d2462c21.js b/zh-cn/assets/js/417.d2462c21.js
new file mode 100644
index 00000000..085dd43b
--- /dev/null
+++ b/zh-cn/assets/js/417.d2462c21.js
@@ -0,0 +1 @@
+(()=>{"use strict";var e,r,t={40417(e,r,t){t.d(r,{BH:()=>n,Ho:()=>p,IH:()=>i,sx:()=>a});var o=t(36430),s=t.n(o);t(84946)(s()),t(23026).A(s()),t(42537)(s());const a=[],n=["zh","en"],i="search-index{dir}.json?_=2a831bb9",p=1}},o={};function s(e){var r=o[e];if(void 0!==r)return r.exports;var a=o[e]={exports:{}};return t[e].call(a.exports,a,a.exports,s),a.exports}s.m=t,s.x=()=>{var e=s.O(void 0,[6788],()=>s(11730));return e=s.O(e)},e=[],s.O=(r,t,o,a)=>{if(!t){var n=1/0;for(u=0;u<e.length;u++ [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/42f9ab63.8cc5f2bf.js b/zh-cn/assets/js/42f9ab63.8cc5f2bf.js
new file mode 100644
index 00000000..060a54cf
--- /dev/null
+++ b/zh-cn/assets/js/42f9ab63.8cc5f2bf.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3142],{56878(M,N,D){D.r(N),D.d(N,{assets:()=>A,contentTitle:()=>T,default:()=>i,frontMatter:()=>z,metadata:()=>j,toc:()=>u});const j=JSON.parse('{"id":"brand","title":"\u54c1\u724c","description":"Logo","source":"@site/i18n/zh-cn/docusaurus-plugin-content-docs-community/current/brand.md","sourceDirName":".","slug":"/brand","permalink":"/zh-cn/community/brand","draft":false,"unlisted":false,"editUrl":" [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/4567.56257026.js b/zh-cn/assets/js/4567.56257026.js
new file mode 100644
index 00000000..ec9b728e
--- /dev/null
+++ b/zh-cn/assets/js/4567.56257026.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4567],{14567(e,r,s){s.d(r,{diagram:()=>i});var a=s(51597),t=(s(38346),s(82094),s(59331),s(3254),s(70435),s(67597),s(1693),s(87158),s(12700),s(62823),s(98189),s(86798),s(76322)),i={parser:a._$,get db(){return new a.NM},renderer:a.Lh,styles:a.tM,init:(0,t.K2)(e=>{e.class||(e.class={}),e.class.arrowMarkerAbsolute=e.arrowMarkerAbsolute},"init")}}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/4807.84f1ffb3.js b/zh-cn/assets/js/4807.84f1ffb3.js
new file mode 100644
index 00000000..b46e8a1c
--- /dev/null
+++ b/zh-cn/assets/js/4807.84f1ffb3.js
@@ -0,0 +1,2 @@
+/*! For license information please see 4807.84f1ffb3.js.LICENSE.txt */
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4807],{14371(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BLANK_URL=e.relativeFirstCharacters=e.whitespaceEscapeCharsRegex=e.urlSchemeRegex=e.ctrlCharactersRegex=e.htmlCtrlEntityRegex=e.htmlEntitiesRegex=e.invalidProtocolRegex=void 0,e.invalidProtocolRegex=/^([^\w]*)(javascript|data|vbscript)/im,e.htmlEntitiesRegex=/&#(\w+)(^\w|;)?/g,e.htmlCtrlEntityRegex=/&(newline|tab);/gi,e.ctrlCharacter [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/4807.84f1ffb3.js.LICENSE.txt b/zh-cn/assets/js/4807.84f1ffb3.js.LICENSE.txt
new file mode 100644
index 00000000..2d1bc565
--- /dev/null
+++ b/zh-cn/assets/js/4807.84f1ffb3.js.LICENSE.txt
@@ -0,0 +1 @@
+/*! @license DOMPurify 3.3.1 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.3.1/LICENSE */
diff --git a/zh-cn/assets/js/4962.24701da4.js b/zh-cn/assets/js/4962.24701da4.js
new file mode 100644
index 00000000..51a333a0
--- /dev/null
+++ b/zh-cn/assets/js/4962.24701da4.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4962],{39513(t,n,r){r.d(n,{A:()=>a});var e=r(72716);const o=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this};const c=function(t){return this.__data__.has(t)};function u(t){var n=-1,r=null==t?0:t.length;for(this.__data__=new e.A;++n<r;)this.add(t[n])}u.prototype.add=u.prototype.push=o,u.prototype.has=c;const a=u},40298(t,n,r){r.d(n,{A:()=>e});const e=function(t,n){for(var r=-1, [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/5053.da121256.js b/zh-cn/assets/js/5053.da121256.js
new file mode 100644
index 00000000..20752012
--- /dev/null
+++ b/zh-cn/assets/js/5053.da121256.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5053],{32131(e,t,i){i.d(t,{A:()=>r});i(59471);var n=i(13526),o=i(66671),s=i(24411),a=i(62615);function r({className:e}){return(0,a.jsx)("main",{className:(0,n.A)("container margin-vert--xl",e),children:(0,a.jsx)("div",{className:"row",children:(0,a.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,a.jsx)(s.A,{as:"h1",className:"hero__title",children:(0,a.jsx)(o.A,{id:"theme.NotFound.title [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/516dc88b.0afc3687.js b/zh-cn/assets/js/516dc88b.0afc3687.js
new file mode 100644
index 00000000..68ecd716
--- /dev/null
+++ b/zh-cn/assets/js/516dc88b.0afc3687.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2388],{52929(e,n,i){i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>h,frontMatter:()=>o,metadata:()=>t,toc:()=>d});const t=JSON.parse('{"id":"contribution/code-review-guide","title":"Code Review \u6307\u5357","description":"\u672c\u6307\u5357\u9002\u7528\u4e8e\u6240\u6709\u5e0c\u671b\u534f\u52a9\u4ee3\u7801\u8d21\u732e\u8bc4\u5ba1\u7684\u63d0\u4ea4\u8005\u548c\u8d21\u732e\u8005\u3002\u611f\u [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/5292.490f3d73.js b/zh-cn/assets/js/5292.490f3d73.js
new file mode 100644
index 00000000..350f639f
--- /dev/null
+++ b/zh-cn/assets/js/5292.490f3d73.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5292],{82094(t,e,n){n.d(e,{A:()=>r});var i=n(76322),s=n(7012),r=(0,i.K2)((t,e)=>{let n;"sandbox"===e&&(n=(0,s.Ltv)("#i"+t));return("sandbox"===e?(0,s.Ltv)(n.nodes()[0].contentDocument.body):(0,s.Ltv)("body")).select(`[id="${t}"]`)},"getDiagramElement")},59331(t,e,n){n.d(e,{P:()=>r});var i=n(86798),s=n(76322),r=(0,s.K2)((t,e,n,r)=>{t.attr("class",n);const{width:c,height:h,x:l,y:d}=o(t,e);(0,i.a$)(t,h,c [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/531.dfba543b.js b/zh-cn/assets/js/531.dfba543b.js
new file mode 100644
index 00000000..e0ff9995
--- /dev/null
+++ b/zh-cn/assets/js/531.dfba543b.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[531],{60531(e,s,c){c.d(s,{createArchitectureServices:()=>i.S});var i=c(39543);c(85472)}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/5340.3a117119.js b/zh-cn/assets/js/5340.3a117119.js
new file mode 100644
index 00000000..3c63e856
--- /dev/null
+++ b/zh-cn/assets/js/5340.3a117119.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5340],{85340(t,e,i){i.d(e,{diagram:()=>I});var a=i(86798),n=i(76322),s=i(7012),r=function(){var t=(0,n.K2)(function(t,e,i,a){for(i=i||{},a=t.length;a--;i[t[a]]=e);return i},"o"),e=[1,3],i=[1,4],a=[1,5],s=[1,6],r=[1,7],o=[1,4,5,10,12,13,14,18,25,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],l=[1,4,5,10,12,13,14,18,25,28,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],h [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/536.a9025e89.js b/zh-cn/assets/js/536.a9025e89.js
new file mode 100644
index 00000000..a0c53e97
--- /dev/null
+++ b/zh-cn/assets/js/536.a9025e89.js
@@ -0,0 +1 @@
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[536],{42948(e,t,n){"use strict";n.d(t,{A:()=>r});n(59471);var s=n(61785),a=n(62615);function r({children:e,fallback:t}){return(0,s.A)()?(0,a.jsx)(a.Fragment,{children:e?.()}):t??null}},94979(e,t,n){"use strict";n.d(t,{A:()=>M});var s=n(59471),a=n(62615);function r(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=s.Children.toArray(e),n=t.find(e=>s.isValidElement(e)&&"mdxAdmonitionTitle"===e.type),r=t.filt [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/53c18be7.976bbdca.js b/zh-cn/assets/js/53c18be7.976bbdca.js
new file mode 100644
index 00000000..4e7a15e4
--- /dev/null
+++ b/zh-cn/assets/js/53c18be7.976bbdca.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1609],{88497(e,n,t){t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>r,toc:()=>l});const r=JSON.parse('{"id":"sheet/read/converter","title":"\u683c\u5f0f\u8f6c\u6362","description":"Fesod \u652f\u6301\u65e5\u671f\u3001\u6570\u5b57\u3001\u81ea\u5b9a\u4e49\u683c\u5f0f\u8f6c\u6362\u3002","source":"@site/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/read [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/5495.8e4f6547.js b/zh-cn/assets/js/5495.8e4f6547.js
new file mode 100644
index 00000000..1645fb9a
--- /dev/null
+++ b/zh-cn/assets/js/5495.8e4f6547.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5495],{24024(e,n,t){t.d(n,{A:()=>i});var r=t(44474);const i=function(e){return(0,r.A)(e,4)}},15495(e,n,t){t.r(n),t.d(n,{render:()=>k});var r=t(70435),i=(t(67597),t(1693)),a=t(87158),o=(t(12700),t(62823),t(98189),t(86798)),d=t(76322),s=t(93508),c=t(47913),g=t(24024),l=t(44551);t(14036);function f(e){var n={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:h(e), [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/5514.a23a67ac.js b/zh-cn/assets/js/5514.a23a67ac.js
new file mode 100644
index 00000000..fc0fddea
--- /dev/null
+++ b/zh-cn/assets/js/5514.a23a67ac.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5514],{35514(e,s,a){a.d(s,{createInfoServices:()=>b.v});var b=a(70845);a(85472)}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/587.9ab4f2e1.js b/zh-cn/assets/js/587.9ab4f2e1.js
new file mode 100644
index 00000000..e615778d
--- /dev/null
+++ b/zh-cn/assets/js/587.9ab4f2e1.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[587],{82094(t,e,s){s.d(e,{A:()=>r});var i=s(76322),n=s(7012),r=(0,i.K2)((t,e)=>{let s;"sandbox"===e&&(s=(0,n.Ltv)("#i"+t));return("sandbox"===e?(0,n.Ltv)(s.nodes()[0].contentDocument.body):(0,n.Ltv)("body")).select(`[id="${t}"]`)},"getDiagramElement")},80587(t,e,s){s.d(e,{Zk:()=>h,q7:()=>B,tM:()=>ot,u4:()=>rt});var i=s(82094),n=s(59331),r=s(3254),o=s(98189),a=s(86798),c=s(76322),l=function(){var t=(0, [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/5961.4939a221.js b/zh-cn/assets/js/5961.4939a221.js
new file mode 100644
index 00000000..073ebb76
--- /dev/null
+++ b/zh-cn/assets/js/5961.4939a221.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5961],{14036(t,e,r){r.d(e,{T:()=>f});var a=r(22633),s=r(47617),i=r(25773),n=r(48759),o=r(64308),l=r(96215),c=r(47913),d=r(20093),h=r(23307),g=r(97317),u=r(2244);const p=(0,h.A)(function(t){return(0,g.A)((0,d.A)(t,1,u.A,!0))});var y=r(38930),b=r(26642),x="\0";class f{constructor(t={}){this._isDirected=!Object.prototype.hasOwnProperty.call(t,"directed")||t.directed,this._isMultigraph=!!Object.prototype. [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/5b656150.4c56d5ac.js b/zh-cn/assets/js/5b656150.4c56d5ac.js
new file mode 100644
index 00000000..6c891662
--- /dev/null
+++ b/zh-cn/assets/js/5b656150.4c56d5ac.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9721],{90324(e,t,n){n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>o});const i=JSON.parse('{"id":"sheet/write/image","title":"\u56fe\u7247","description":"\u672c\u7ae0\u8282\u4ecb\u7ecd\u5982\u4f55\u5bfc\u51fa\u5305\u542b\u56fe\u7247\u7684\u6587\u4ef6\u3002","source":"@site/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/image.md","so [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/5e6cf37e.1f2442de.js b/zh-cn/assets/js/5e6cf37e.1f2442de.js
new file mode 100644
index 00000000..23509aec
--- /dev/null
+++ b/zh-cn/assets/js/5e6cf37e.1f2442de.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4601],{35310(e,n,i){i.r(n),i.d(n,{assets:()=>h,contentTitle:()=>l,default:()=>o,frontMatter:()=>r,metadata:()=>c,toc:()=>d});const c=JSON.parse('{"id":"committer/icla","title":"\u7b7e\u7f72 iCLA \u6307\u5357","description":"Apache CLA \u662f Apache\u8d21\u732e\u8005\u8bb8\u53ef\u534f\u8bae\u7684\u7f29\u5199\uff0c\u8be5\u534f\u8bae\u65e8\u5728\u660e\u786e\u754c\u5b9a\u5411ASF\u8d21\u732e\u77e5\u8bc6\u4 [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/5e95c892.261f1fe8.js b/zh-cn/assets/js/5e95c892.261f1fe8.js
new file mode 100644
index 00000000..2f40eada
--- /dev/null
+++ b/zh-cn/assets/js/5e95c892.261f1fe8.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9647],{69937(e,s,r){r.r(s),r.d(s,{default:()=>h});r(59471);var a=r(13526),t=r(29454),u=r(79145),c=r(47377),i=r(91488),l=r(62615);function h(e){return(0,l.jsx)(u.e3,{className:(0,a.A)(t.G.wrapper.docsPages),children:(0,l.jsx)(i.A,{children:(0,c.v)(e.route.routes)})})}}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/5f5c637e.02d793f7.js b/zh-cn/assets/js/5f5c637e.02d793f7.js
new file mode 100644
index 00000000..c1264f82
--- /dev/null
+++ b/zh-cn/assets/js/5f5c637e.02d793f7.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[739],{22148(e,n,t){t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>i,default:()=>a,frontMatter:()=>c,metadata:()=>s,toc:()=>o});const s=JSON.parse('{"id":"sheet/write/csv","title":"CSV","description":"\u672c\u7ae0\u8282\u4ecb\u7ecd\u5982\u4f55\u4f7f\u7528 Fesod \u6765\u5199\u5165\u81ea\u5b9a\u4e49 CSV \u6587\u4ef6\u3002","source":"@site/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/csv.md" [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/621db11d.b70003b1.js b/zh-cn/assets/js/621db11d.b70003b1.js
new file mode 100644
index 00000000..d5d5be8a
--- /dev/null
+++ b/zh-cn/assets/js/621db11d.b70003b1.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4212],{6848(t,s,e){e.r(s),e.d(s,{default:()=>m});e(59471);var a=e(13526),o=e(79145),r=e(29454),u=e(55412),l=e(29214),n=e(5047),i=e(24411),h=e(50312);const c={authorListItem:"authorListItem_RyUW"};var g=e(62615);function p({author:t}){return(0,g.jsx)("li",{className:c.authorListItem,children:(0,g.jsx)(h.A,{as:"h2",author:t,count:t.count})})}function d({authors:t}){return(0,g.jsx)("section",{className:( [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/638.9927b1dd.js b/zh-cn/assets/js/638.9927b1dd.js
new file mode 100644
index 00000000..4bbf7046
--- /dev/null
+++ b/zh-cn/assets/js/638.9927b1dd.js
@@ -0,0 +1,2 @@
+/*! For license information please see 638.9927b1dd.js.LICENSE.txt */
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[638],{70638(e,t,n){function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t,n){return t&&function(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,c(r.key [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/638.9927b1dd.js.LICENSE.txt b/zh-cn/assets/js/638.9927b1dd.js.LICENSE.txt
new file mode 100644
index 00000000..a9f6f124
--- /dev/null
+++ b/zh-cn/assets/js/638.9927b1dd.js.LICENSE.txt
@@ -0,0 +1,9 @@
+/*!
+Embeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable
+Copyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com)
+Licensed under The MIT License (http://opensource.org/licenses/MIT)
+*/
+
+/*! Bezier curve function generator. Copyright Gaetan Renaudeau. MIT License: http://en.wikipedia.org/wiki/MIT_License */
+
+/*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License */
diff --git a/zh-cn/assets/js/65556891.0badb6f1.js b/zh-cn/assets/js/65556891.0badb6f1.js
new file mode 100644
index 00000000..d86ba5b7
--- /dev/null
+++ b/zh-cn/assets/js/65556891.0badb6f1.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6750],{44752(e,n,i){i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>d,default:()=>h,frontMatter:()=>r,metadata:()=>t,toc:()=>a});const t=JSON.parse('{"id":"sheet/write/pojo","title":"\u5b9e\u4f53\u7c7b","description":"\u672c\u7ae0\u8282\u5c06\u4ecb\u7ecd\u901a\u8fc7\u8bbe\u7f6e POJO \u6765\u5199\u5165\u3002","source":"@site/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/pojo.md","sourceDirN [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/6769.7a4327e0.js b/zh-cn/assets/js/6769.7a4327e0.js
new file mode 100644
index 00000000..96503469
--- /dev/null
+++ b/zh-cn/assets/js/6769.7a4327e0.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6769],{38346(t,e,n){n.d(e,{o:()=>i});var i=(0,n(76322).K2)(()=>"\n /* Font Awesome icon styling - consolidated */\n .label-icon {\n display: inline-block;\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n }\n \n .node .label-icon path {\n fill: currentColor;\n stroke: revert;\n stroke-width: revert;\n }\n","getIconStyles")},89300(t,e,n){n.d(e,{CP:()=>h,HT:()= [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/6788.298e96c2.js b/zh-cn/assets/js/6788.298e96c2.js
new file mode 100644
index 00000000..a5faa574
--- /dev/null
+++ b/zh-cn/assets/js/6788.298e96c2.js
@@ -0,0 +1,2 @@
+/*! For license information please see 6788.298e96c2.js.LICENSE.txt */
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6788],{11730(e,t,r){"use strict";const n=Symbol("Comlink.proxy"),i=Symbol("Comlink.endpoint"),s=Symbol("Comlink.releaseProxy"),o=Symbol("Comlink.finalizer"),a=Symbol("Comlink.thrown"),u=e=>"object"==typeof e&&null!==e||"function"==typeof e,l={canHandle:e=>u(e)&&e[n],serialize(e){const{port1:t,port2:r}=new MessageChannel;return h(e,t),[r,[r]]},deserialize:e=>(e.start(),function(e,t){const r=new Map;return e.addEven [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/6788.298e96c2.js.LICENSE.txt b/zh-cn/assets/js/6788.298e96c2.js.LICENSE.txt
new file mode 100644
index 00000000..7e6757bb
--- /dev/null
+++ b/zh-cn/assets/js/6788.298e96c2.js.LICENSE.txt
@@ -0,0 +1,76 @@
+/*!
+ * Snowball JavaScript Library v0.3
+ * http://code.google.com/p/urim/
+ * http://snowball.tartarus.org/
+ *
+ * Copyright 2010, Oleg Mazko
+ * http://www.mozilla.org/MPL/
+ */
+
+/*!
+ * lunr.Builder
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.Index
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.Pipeline
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.Set
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.TokenSet
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.Vector
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.stemmer
+ * Copyright (C) 2020 Oliver Nightingale
+ * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt
+ */
+
+/*!
+ * lunr.stopWordFilter
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.tokenizer
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.trimmer
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.utils
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/**
+ * @license
+ * Copyright 2019 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9
+ * Copyright (C) 2020 Oliver Nightingale
+ * @license MIT
+ */
diff --git a/zh-cn/assets/js/6875c492.d259fcb3.js b/zh-cn/assets/js/6875c492.d259fcb3.js
new file mode 100644
index 00000000..4e116d16
--- /dev/null
+++ b/zh-cn/assets/js/6875c492.d259fcb3.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4813],{15169(e,t,s){s.d(t,{A:()=>r});s(59471);var n=s(66671),a=s(47790),i=s(62615);function r(e){const{metadata:t}=e,{previousPage:s,nextPage:r}=t;return(0,i.jsxs)("nav",{className:"pagination-nav","aria-label":(0,n.T)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"}),children:[s&&(0,i.jsx)(a.A,{permalink:s,title:(0,i.jsx [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/6e79d794.5d65303f.js b/zh-cn/assets/js/6e79d794.5d65303f.js
new file mode 100644
index 00000000..5b2baf76
--- /dev/null
+++ b/zh-cn/assets/js/6e79d794.5d65303f.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6156],{87033(e,n,i){i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>t,toc:()=>d});const t=JSON.parse('{"id":"contribution/commit-format","title":"Commit \u683c\u5f0f\u89c4\u8303","description":"\u6240\u6709\u6539\u8fdb\u63aa\u65bd\u5747\u53ef\u901a\u8fc7\u201c\u62c9\u53d6\u8bf7\u6c42\u201d\uff08PR\uff09\u6765\u5b9e\u73b0\u3002\u5728\u63d0\u4ea4\u62c9\u53d6\u8 [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/6ea91d84.0c303029.js b/zh-cn/assets/js/6ea91d84.0c303029.js
new file mode 100644
index 00000000..1d1e5d78
--- /dev/null
+++ b/zh-cn/assets/js/6ea91d84.0c303029.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9521],{50649(e,n,r){r.r(n),r.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>x,frontMatter:()=>l,metadata:()=>d,toc:()=>h});const d=JSON.parse('{"id":"sheet/help/parameter","title":"\u53c2\u6570","description":"\u672c\u7ae0\u8282\u4ecb\u7ecd\u4f7f\u7528 FesodSheet \u4e2d\u7684\u53c2\u6570\u3002","source":"@site/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/help/parameter.md","sourceDirName" [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/7002.7f63721d.js b/zh-cn/assets/js/7002.7f63721d.js
new file mode 100644
index 00000000..976de643
--- /dev/null
+++ b/zh-cn/assets/js/7002.7f63721d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7002],{31508(e,t,a){function l(e,t){e.accDescr&&t.setAccDescription?.(e.accDescr),e.accTitle&&t.setAccTitle?.(e.accTitle),e.title&&t.setDiagramTitle?.(e.title)}a.d(t,{S:()=>l}),(0,a(76322).K2)(l,"populateCommonDb")},59331(e,t,a){a.d(t,{P:()=>r});var l=a(86798),s=a(76322),r=(0,s.K2)((e,t,a,r)=>{e.attr("class",a);const{width:o,height:c,x:d,y:p}=n(e,t);(0,l.a$)(e,c,o,r);const h=i(d,p,o,c,t);e.attr("viewB [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/70652f5d.2599023c.js b/zh-cn/assets/js/70652f5d.2599023c.js
new file mode 100644
index 00000000..846ca48d
--- /dev/null
+++ b/zh-cn/assets/js/70652f5d.2599023c.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8226],{51413(n,e,i){i.r(e),i.d(e,{assets:()=>d,contentTitle:()=>r,default:()=>u,frontMatter:()=>t,metadata:()=>s,toc:()=>h});const s=JSON.parse('{"id":"feedback","title":"\u95ee\u9898\u53cd\u9988","description":"\u6211\u4eec\u975e\u5e38\u6b22\u8fce\u793e\u533a\u7528\u6237\u5bf9\u9879\u76ee\u63d0\u51fa\u5b9d\u8d35\u7684\u53cd\u9988\u548c\u610f\u89c1\u3002\u5982\u679c\u60a8\u5728\u4f7f\u7528\u8fc7\u7a0b [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/70f646db.33934632.js b/zh-cn/assets/js/70f646db.33934632.js
new file mode 100644
index 00000000..a9dbb473
--- /dev/null
+++ b/zh-cn/assets/js/70f646db.33934632.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2006],{81517(e,n,t){t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>l,frontMatter:()=>o,metadata:()=>s,toc:()=>a});const s=JSON.parse('{"id":"sheet/write/spring","title":"\u4e0e Spring \u96c6\u6210","description":"\u672c\u7ae0\u8282\u4ecb\u7ecd\u5982\u4f55\u5728 Spring \u6846\u67b6\u4e2d\u96c6\u6210\u548c\u4f7f\u7528 Fesod \u6765\u751f\u6210\u7535\u5b50\u8868\u683c\u6587\u4ef6\u3002","source [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/7217.c978d074.js b/zh-cn/assets/js/7217.c978d074.js
new file mode 100644
index 00000000..4d654bfa
--- /dev/null
+++ b/zh-cn/assets/js/7217.c978d074.js
@@ -0,0 +1 @@
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7217],{20239(t,e,i){var r;r=function(t){return function(t){var e={};function i(r){if(e[r])return e[r].exports;var n=e[r]={i:r,l:!1,exports:{}};return t[r].call(n.exports,n,n.exports,i),n.l=!0,n.exports}return i.m=t,i.c=e,i.i=function(t){return t},i.d=function(t,e,r){i.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:r})},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:functio [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/7307.f197f92b.js b/zh-cn/assets/js/7307.f197f92b.js
new file mode 100644
index 00000000..5e112502
--- /dev/null
+++ b/zh-cn/assets/js/7307.f197f92b.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7307],{31508(t,e,a){function r(t,e){t.accDescr&&e.setAccDescription?.(t.accDescr),t.accTitle&&e.setAccTitle?.(t.accTitle),t.title&&e.setDiagramTitle?.(t.title)}a.d(e,{S:()=>r}),(0,a(76322).K2)(r,"populateCommonDb")},57307(t,e,a){a.d(e,{diagram:()=>z});var r=a(24841),n=a(31508),i=a(98189),s=a(86798),o=a(76322),l=a(53157),c={showLegend:!0,ticks:5,max:null,min:0,graticule:"circle"},d={axes:[],curves:[],o [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/7431.0bed9ba2.js b/zh-cn/assets/js/7431.0bed9ba2.js
new file mode 100644
index 00000000..87a0bb6c
--- /dev/null
+++ b/zh-cn/assets/js/7431.0bed9ba2.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7431],{87431(e,s,a){a.d(s,{createPacketServices:()=>b.$});var b=a(94440);a(85472)}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/7494.ecc4a6d0.js b/zh-cn/assets/js/7494.ecc4a6d0.js
new file mode 100644
index 00000000..e9f415f8
--- /dev/null
+++ b/zh-cn/assets/js/7494.ecc4a6d0.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7494],{56998(e,t,s){s.d(t,{in:()=>c,OU:()=>A,Ki:()=>C,kJ:()=>f,x:()=>l,e7:()=>h,J_:()=>p,Gx:()=>k});var a=s(59471),n=s(97831),i=s(25001),r=s(62615);function l(){const e=(0,i.A)(),t=e?.data?.blogMetadata;if(!t)throw new Error("useBlogMetadata() can't be called on the current route because the blog metadata could not be found in route context");return t}const o=a.createContext(null);function c({children [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/777.6b5fb956.js b/zh-cn/assets/js/777.6b5fb956.js
new file mode 100644
index 00000000..c8174ace
--- /dev/null
+++ b/zh-cn/assets/js/777.6b5fb956.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[777],{60777(t,n,e){e.d(n,{diagram:()=>ct});var i=e(86798),s=e(76322),r=e(7012);function o(t,n){let e;if(void 0===n)for(const i of t)null!=i&&(e>i||void 0===e&&i>=i)&&(e=i);else{let i=-1;for(let s of t)null!=(s=n(s,++i,t))&&(e>s||void 0===e&&s>=s)&&(e=s)}return e}function c(t){return t.target.depth}function l(t,n){return t.sourceLinks.length?t.depth:n-1}function a(t,n){let e=0;if(void 0===n)for(let i o [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/77ad7f28.be3cc654.js b/zh-cn/assets/js/77ad7f28.be3cc654.js
new file mode 100644
index 00000000..431ea836
--- /dev/null
+++ b/zh-cn/assets/js/77ad7f28.be3cc654.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5863],{4467(e,n,t){t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>p,frontMatter:()=>d,metadata:()=>r,toc:()=>o});const r=JSON.parse('{"id":"sheet/read/spring","title":"\u4e0e Spring \u96c6\u6210","description":"\u672c\u7ae0\u8282\u4ecb\u7ecd\u5982\u4f55\u5728 Spring \u6846\u67b6\u4e2d\u96c6\u6210\u548c\u4f7f\u7528 Fesod \u6765\u5904\u7406\u7528\u6237\u4e0a\u4f20\u7684\u7535\u5b50\u8868\u683 [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/7827.8c68bd62.js b/zh-cn/assets/js/7827.8c68bd62.js
new file mode 100644
index 00000000..f5bff7b7
--- /dev/null
+++ b/zh-cn/assets/js/7827.8c68bd62.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7827],{93325(t,e,a){a.d(e,{m:()=>s});var r=a(76322),s=class{constructor(t){this.init=t,this.records=this.init()}static{(0,r.K2)(this,"ImperativeState")}reset(){this.records=this.init()}}},89300(t,e,a){a.d(e,{CP:()=>h,HT:()=>p,PB:()=>d,aC:()=>l,lC:()=>o,m:()=>c,tk:()=>n});var r=a(86798),s=a(76322),i=a(34674),n=(0,s.K2)((t,e)=>{const a=t.append("rect");if(a.attr("x",e.x),a.attr("y",e.y),a.attr("fill",e. [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/7ab5af9c.9dbad7d9.js b/zh-cn/assets/js/7ab5af9c.9dbad7d9.js
new file mode 100644
index 00000000..c2e47a47
--- /dev/null
+++ b/zh-cn/assets/js/7ab5af9c.9dbad7d9.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7705],{82807(e){e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"docs":[{"type":"link","href":"/zh-cn/docs/","label":"\u4ecb\u7ecd","docId":"introduce","unlisted":false},{"type":"category","label":"\u5feb\u901f\u5f00\u59cb","items":[{"type":"link","href [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/7bacda60.a7c4ef8a.js b/zh-cn/assets/js/7bacda60.a7c4ef8a.js
new file mode 100644
index 00000000..ba5d7a21
--- /dev/null
+++ b/zh-cn/assets/js/7bacda60.a7c4ef8a.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6815],{72185(e,t,n){n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>a,toc:()=>c});const a=JSON.parse('{"id":"quickstart/simple-example","title":"\u7b80\u5355\u793a\u4f8b","description":"Fesod Sheet \u793a\u4f8b","source":"@site/i18n/zh-cn/docusaurus-plugin-content-docs/current/quickstart/example.md","sourceDirName":"quickstart","slug":"/quickstart/simple-exam [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/7c8dfedd.446922de.js b/zh-cn/assets/js/7c8dfedd.446922de.js
new file mode 100644
index 00000000..6a07e6ec
--- /dev/null
+++ b/zh-cn/assets/js/7c8dfedd.446922de.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7418],{84827(e,n,d){d.r(n),d.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>o,frontMatter:()=>i,metadata:()=>c,toc:()=>a});const c=JSON.parse('{"id":"quickstart/guide","title":"\u6307\u5357","description":"\u517c\u5bb9\u8bf4\u660e","source":"@site/i18n/zh-cn/docusaurus-plugin-content-docs/current/quickstart/guide.md","sourceDirName":"quickstart","slug":"/quickstart/guide","permalink":"/zh-cn/docs/qu [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/814f3328.2c672c70.js b/zh-cn/assets/js/814f3328.2c672c70.js
new file mode 100644
index 00000000..b8b6f14e
--- /dev/null
+++ b/zh-cn/assets/js/814f3328.2c672c70.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7472],{55513(e){e.exports=JSON.parse('{"title":"\u6700\u8fd1\u66f4\u65b0","items":[{"title":"\u5b98\u5ba3! Fesod \u6210\u529f\u8fdb\u5165 Apache \u5b75\u5316\u5668","permalink":"/zh-cn/blog/2025/09/17/fesod-entered-apache-incubator","unlisted":false,"date":"2025-09-17T00:00:00.000Z"}]}')}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/8177.afd47023.js b/zh-cn/assets/js/8177.afd47023.js
new file mode 100644
index 00000000..80cd4480
--- /dev/null
+++ b/zh-cn/assets/js/8177.afd47023.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8177],{8177(e,s,i){i.d(s,{createPieServices:()=>a.f});var a=i(33662);i(85472)}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/8218.c66e12a5.js b/zh-cn/assets/js/8218.c66e12a5.js
new file mode 100644
index 00000000..3a57a070
--- /dev/null
+++ b/zh-cn/assets/js/8218.c66e12a5.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8218],{38346(t,e,n){n.d(e,{o:()=>i});var i=(0,n(76322).K2)(()=>"\n /* Font Awesome icon styling - consolidated */\n .label-icon {\n display: inline-block;\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n }\n \n .node .label-icon path {\n fill: currentColor;\n stroke: revert;\n stroke-width: revert;\n }\n","getIconStyles")},38218(t,e,n){n.d(e,{diagram:()=>I}) [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/84f1c788.15f3a061.js b/zh-cn/assets/js/84f1c788.15f3a061.js
new file mode 100644
index 00000000..58fbbd26
--- /dev/null
+++ b/zh-cn/assets/js/84f1c788.15f3a061.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7106],{32800(e,n,l){l.r(n),l.d(n,{assets:()=>c,contentTitle:()=>t,default:()=>o,frontMatter:()=>d,metadata:()=>s,toc:()=>h});const s=JSON.parse('{"id":"sheet/help/faq","title":"\u5e38\u89c1\u95ee\u9898","description":"\u672c\u7ae0\u8282\u4ecb\u7ecd\u4f7f\u7528 FesodSheet \u65f6\u53ef\u80fd\u9047\u5230\u7684\u5e38\u89c1\u95ee\u9898\u3002","source":"@site/i18n/zh-cn/docusaurus-plugin-content-docs/curren [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/8751.51cea8d9.js b/zh-cn/assets/js/8751.51cea8d9.js
new file mode 100644
index 00000000..d9a3be7b
--- /dev/null
+++ b/zh-cn/assets/js/8751.51cea8d9.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8751],{18751(t,e,a){a.d(e,{diagram:()=>R});var i,n=a(80587),r=(a(82094),a(59331),a(3254),a(70435),a(67597),a(1693),a(87158),a(12700),a(62823),a(98189)),d=a(86798),s=a(76322),o=a(7012),g=a(93508),h=a(34654),p=(0,s.K2)(t=>t.append("circle").attr("class","start-state").attr("r",(0,d.D7)().state.sizeUnit).attr("cx",(0,d.D7)().state.padding+(0,d.D7)().state.sizeUnit).attr("cy",(0,d.D7)().state.padding+(0,d [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/8775.16908ee5.js b/zh-cn/assets/js/8775.16908ee5.js
new file mode 100644
index 00000000..6e380c9e
--- /dev/null
+++ b/zh-cn/assets/js/8775.16908ee5.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8775],{31508(t,r,e){function n(t,r){t.accDescr&&r.setAccDescription?.(t.accDescr),t.accTitle&&r.setAccTitle?.(t.accTitle),t.title&&r.setDiagramTitle?.(t.title)}e.d(r,{S:()=>n}),(0,e(76322).K2)(n,"populateCommonDb")},93325(t,r,e){e.d(r,{m:()=>o});var n=e(76322),o=class{constructor(t){this.init=t,this.records=this.init()}static{(0,n.K2)(this,"ImperativeState")}reset(){this.records=this.init()}}},88775(t [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/8a2aa126.4d1f8e6e.js b/zh-cn/assets/js/8a2aa126.4d1f8e6e.js
new file mode 100644
index 00000000..ca8b97da
--- /dev/null
+++ b/zh-cn/assets/js/8a2aa126.4d1f8e6e.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1371],{78503(e){e.exports=JSON.parse('{"tags":[{"label":"announcement","permalink":"/zh-cn/blog/tags/announcement","count":1}]}')}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/9056.59050bcd.js b/zh-cn/assets/js/9056.59050bcd.js
new file mode 100644
index 00000000..8d925bab
--- /dev/null
+++ b/zh-cn/assets/js/9056.59050bcd.js
@@ -0,0 +1 @@
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9056],{99056(){}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/9111.9d1e0289.js b/zh-cn/assets/js/9111.9d1e0289.js
new file mode 100644
index 00000000..d4a8b474
--- /dev/null
+++ b/zh-cn/assets/js/9111.9d1e0289.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9111],{59111(e,a,r){r.d(a,{diagram:()=>p});var t=r(68842),s=r(24841),n=r(86798),i=r(76322),d=r(53157),o={parse:(0,i.K2)(async e=>{const a=await(0,d.qg)("info",e);i.Rm.debug(a)},"parse")},g={version:t.n.version+""},p={parser:o,db:{getVersion:(0,i.K2)(()=>g.version,"getVersion")},renderer:{draw:(0,i.K2)((e,a,r)=>{i.Rm.debug("rendering info diagram\n"+e);const t=(0,s.D)(a);(0,n.a$)(t,100,400,!0);t.append [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/92380f4a.e1052001.js b/zh-cn/assets/js/92380f4a.e1052001.js
new file mode 100644
index 00000000..656d6a54
--- /dev/null
+++ b/zh-cn/assets/js/92380f4a.e1052001.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6016],{52981(e,n,s){s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>d,default:()=>o,frontMatter:()=>r,metadata:()=>l,toc:()=>t});const l=JSON.parse('{"id":"release/verify-release","title":"\u5982\u4f55\u9a8c\u8bc1\u7248\u672c","description":"\u8be6\u7ec6\u68c0\u67e5\u5217\u8868\u8bf7\u53c2\u8003\u5b98\u65b9\u7684 Incubator Release Checklist\u3002","source":"@site/i18n/zh-cn/docusaurus-plugin-content-docs- [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/9400.a130969c.js b/zh-cn/assets/js/9400.a130969c.js
new file mode 100644
index 00000000..bfd5f300
--- /dev/null
+++ b/zh-cn/assets/js/9400.a130969c.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9400],{31508(t,e,a){function r(t,e){t.accDescr&&e.setAccDescription?.(t.accDescr),t.accTitle&&e.setAccTitle?.(t.accTitle),t.title&&e.setDiagramTitle?.(t.title)}a.d(e,{S:()=>r}),(0,a(76322).K2)(r,"populateCommonDb")},29400(t,e,a){a.d(e,{diagram:()=>m});var r=a(24841),i=a(31508),s=a(98189),o=a(86798),n=a(76322),l=a(53157),c=o.UI.packet,d=class{constructor(){this.packet=[],this.setAccTitle=o.SV,this.getA [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/9407.fc553778.js b/zh-cn/assets/js/9407.fc553778.js
new file mode 100644
index 00000000..02b3d807
--- /dev/null
+++ b/zh-cn/assets/js/9407.fc553778.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9407],{80124(t,e,i){i.d(e,{A:()=>r});var s=i(46554),n=i(55385);const r=(t,e)=>s.A.lang.round(n.A.parse(t)[e])},82094(t,e,i){i.d(e,{A:()=>r});var s=i(76322),n=i(7012),r=(0,s.K2)((t,e)=>{let i;"sandbox"===e&&(i=(0,n.Ltv)("#i"+t));return("sandbox"===e?(0,n.Ltv)(i.nodes()[0].contentDocument.body):(0,n.Ltv)("body")).select(`[id="${t}"]`)},"getDiagramElement")},59331(t,e,i){i.d(e,{P:()=>r});var s=i(86798),n [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/97fe7548.0c61da15.js b/zh-cn/assets/js/97fe7548.0c61da15.js
new file mode 100644
index 00000000..38cbedb1
--- /dev/null
+++ b/zh-cn/assets/js/97fe7548.0c61da15.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7324],{89787(e,t,n){n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>o,frontMatter:()=>r,metadata:()=>s,toc:()=>a});const s=JSON.parse('{"id":"sheet/read/sheet","title":"Sheet","description":"\u672c\u7ae0\u8282\u5c06\u4ecb\u7ecd\u8bbe\u7f6e Sheet \u6765\u8bfb\u53d6\u6570\u636e\u7684\u4f7f\u7528","source":"@site/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/read/sheet.md","sourceDirN [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/9904a28c.7e2a1ff2.js b/zh-cn/assets/js/9904a28c.7e2a1ff2.js
new file mode 100644
index 00000000..19651b00
--- /dev/null
+++ b/zh-cn/assets/js/9904a28c.7e2a1ff2.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5687],{78113(e,n,i){i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>d,default:()=>o,frontMatter:()=>l,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"sheet/write/head","title":"\u8868\u5934","description":"\u672c\u7ae0\u8282\u5c06\u4ecb\u7ecd\u5199\u5165\u7535\u5b50\u8868\u683c\u4e2d\u7684\u8868\u5934\u6570\u636e\u3002","source":"@site/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/he [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/9951.6a056cb2.js b/zh-cn/assets/js/9951.6a056cb2.js
new file mode 100644
index 00000000..5778fedc
--- /dev/null
+++ b/zh-cn/assets/js/9951.6a056cb2.js
@@ -0,0 +1,2 @@
+/*! For license information please see 9951.6a056cb2.js.LICENSE.txt */
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9951],{29951(t,e,n){"use strict";t.exports=n(84848)},48920(t,e,n){"use strict";var i=n(96627),s={wrapper:{position:"relative",display:"inline-block"},hint:{position:"absolute",top:"0",left:"0",borderColor:"transparent",boxShadow:"none",opacity:"1"},input:{position:"relative",verticalAlign:"top",backgroundColor:"transparent"},inputWithNoHint:{position:"relative",verticalAlign:"top"},dropdown:{position:"absolute",to [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/9951.6a056cb2.js.LICENSE.txt b/zh-cn/assets/js/9951.6a056cb2.js.LICENSE.txt
new file mode 100644
index 00000000..4f7ccd8a
--- /dev/null
+++ b/zh-cn/assets/js/9951.6a056cb2.js.LICENSE.txt
@@ -0,0 +1 @@
+/*! https://mths.be/cssesc v3.0.0 by @mathias */
diff --git a/zh-cn/assets/js/995798e3.cf543715.js b/zh-cn/assets/js/995798e3.cf543715.js
new file mode 100644
index 00000000..7ec50786
--- /dev/null
+++ b/zh-cn/assets/js/995798e3.cf543715.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9414],{35446(e,n,t){t.r(n),t.d(n,{assets:()=>i,contentTitle:()=>o,default:()=>l,frontMatter:()=>d,metadata:()=>s,toc:()=>c});const s=JSON.parse('{"id":"sheet/read/num-rows","title":"\u884c\u6570","description":"\u672c\u7ae0\u8282\u5c06\u4ecb\u7ecd\u8bfb\u53d6\u6307\u5b9a\u7684\u884c\u6570\u3002","source":"@site/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/read/num-rows.md","sourceDirName":" [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/9e4087bc.ad88494e.js b/zh-cn/assets/js/9e4087bc.ad88494e.js
new file mode 100644
index 00000000..146e03ed
--- /dev/null
+++ b/zh-cn/assets/js/9e4087bc.ad88494e.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2711],{13043(e,a,r){r.r(a),r.d(a,{default:()=>m});r(59471);var t=r(71248),s=r(66671),n=r(79145),i=r(61167),c=r(91488),l=r(24411),o=r(62615);function h({year:e,posts:a}){const r=(0,i.i)({day:"numeric",month:"long",timeZone:"UTC"});return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(l.A,{as:"h3",id:e,children:e}),(0,o.jsx)("ul",{children:a.map(e=>{return(0,o.jsx)("li",{children:(0,o.jsxs)(t.A,{to:e.metadat [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/a08ce007.299fe5c6.js b/zh-cn/assets/js/a08ce007.299fe5c6.js
new file mode 100644
index 00000000..fb41d45e
--- /dev/null
+++ b/zh-cn/assets/js/a08ce007.299fe5c6.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7439],{31193(e,n,s){s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>l,frontMatter:()=>d,metadata:()=>t,toc:()=>a});const t=JSON.parse('{"id":"maturity","title":"Maturity","description":"The goals of this maturity model are to describe how Apache projects operate in a concise and high-level way, and to provide a basic framework that projects may choose to use to evaluate themselves.","source" [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/a1225c8b.e4fba9de.js b/zh-cn/assets/js/a1225c8b.e4fba9de.js
new file mode 100644
index 00000000..2ca0970f
--- /dev/null
+++ b/zh-cn/assets/js/a1225c8b.e4fba9de.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[511],{37120(e,n,t){t.r(n),t.d(n,{assets:()=>i,contentTitle:()=>a,default:()=>x,frontMatter:()=>r,metadata:()=>s,toc:()=>d});const s=JSON.parse('{"id":"download","title":"\u4e0b\u8f7d","description":"\u8fd9\u662f Apache Fesod (Incubating) \u7684\u5b98\u65b9\u4e0b\u8f7d\u9875\u9762\u3002Apache Fesod \u63d0\u4f9b\u53ef\u4ece ASF \u53d1\u5e03\u7ad9\u70b9\u4e0b\u8f7d\u7684\u6e90\u7801\u53d1\u5e03\u3002\u4e [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/a2451e7a.629370a4.js b/zh-cn/assets/js/a2451e7a.629370a4.js
new file mode 100644
index 00000000..302fa922
--- /dev/null
+++ b/zh-cn/assets/js/a2451e7a.629370a4.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3173],{11599(n,e,d){d.r(e),d.d(e,{assets:()=>i,contentTitle:()=>c,default:()=>x,frontMatter:()=>l,metadata:()=>r,toc:()=>h});const r=JSON.parse('{"id":"sheet/help/annotation","title":"\u6ce8\u89e3","description":"\u672c\u7ae0\u8282\u4ecb\u7ecd\u8bfb\u53d6 FesodSheet \u4e2d\u63d0\u4f9b\u7684\u6ce8\u89e3\u3002","source":"@site/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/help/annotation.md"," [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/a6aa9e1f.1204c21e.js b/zh-cn/assets/js/a6aa9e1f.1204c21e.js
new file mode 100644
index 00000000..cd68859d
--- /dev/null
+++ b/zh-cn/assets/js/a6aa9e1f.1204c21e.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7643],{17257(e,t,s){s.r(t),s.d(t,{default:()=>j});s(59471);var a=s(13526),n=s(22488),r=s(79145),i=s(29454),l=s(29214),o=s(15169),c=s(5047),d=s(65668),m=s(3422),g=s(56998),u=s(62615);function h(e){const t=(0,g.kJ)(e);return(0,u.jsx)(m.A,{children:(0,u.jsx)("script",{type:"application/ld+json",children:JSON.stringify(t)})})}function x(e){const{metadata:t}=e,{siteConfig:{title:s}}=(0,n.A)(),{blogDescript [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/a7456010.6632754d.js b/zh-cn/assets/js/a7456010.6632754d.js
new file mode 100644
index 00000000..90906f40
--- /dev/null
+++ b/zh-cn/assets/js/a7456010.6632754d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1235],{88552(e){e.exports=JSON.parse('{"name":"docusaurus-plugin-content-pages","id":"default"}')}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/a7bd4aaa.574af4c1.js b/zh-cn/assets/js/a7bd4aaa.574af4c1.js
new file mode 100644
index 00000000..f3e1dcae
--- /dev/null
+++ b/zh-cn/assets/js/a7bd4aaa.574af4c1.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7098],{92207(n,e,s){s.r(e),s.d(e,{default:()=>d});s(59471);var r=s(79145);function o(n,e){return`docs-${n}-${e}`}var t=s(62273),i=s(47377),c=s(5047),a=s(62615);function u(n){const{version:e}=n;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(c.A,{version:e.version,tag:o(e.pluginId,e.version)}),(0,a.jsx)(r.be,{children:e.noIndex&&(0,a.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})]})}functi [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/a94703ab.7bf2e5a8.js b/zh-cn/assets/js/a94703ab.7bf2e5a8.js
new file mode 100644
index 00000000..c9a5585f
--- /dev/null
+++ b/zh-cn/assets/js/a94703ab.7bf2e5a8.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9048],{59252(e,t,n){n.r(t),n.d(t,{default:()=>Se});var a=n(59471),i=n(13526),s=n(79145),o=n(29454),l=n(41196),r=n(56785),c=n(66671),d=n(82173),u=n(22043);const m="backToTopButton_91RE",b="backToTopButtonShow_KvXX";var h=n(62615);function p(){const{shown:e,scrollToTop:t}=function({threshold:e}){const[t,n]=(0,a.useState)(!1),i=(0,a.useRef)(!1),{startScroll:s,cancelScroll:o}=(0,d.gk)();return(0,d.Mq)(({s [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/aba21aa0.9a1fa3c5.js b/zh-cn/assets/js/aba21aa0.9a1fa3c5.js
new file mode 100644
index 00000000..52cd0a89
--- /dev/null
+++ b/zh-cn/assets/js/aba21aa0.9a1fa3c5.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5742],{27093(e){e.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/acecf23e.0b6e1d2a.js b/zh-cn/assets/js/acecf23e.0b6e1d2a.js
new file mode 100644
index 00000000..197e40dd
--- /dev/null
+++ b/zh-cn/assets/js/acecf23e.0b6e1d2a.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1903],{1912(s){s.exports=JSON.parse('{"blogBasePath":"/zh-cn/blog","blogTitle":"Blog","authorsListPath":"/zh-cn/blog/authors"}')}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/b2fa7a64.4e3b7150.js b/zh-cn/assets/js/b2fa7a64.4e3b7150.js
new file mode 100644
index 00000000..d40e4a7a
--- /dev/null
+++ b/zh-cn/assets/js/b2fa7a64.4e3b7150.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8642],{69463(e){e.exports=JSON.parse('{"metadata":{"permalink":"/zh-cn/blog","page":1,"postsPerPage":15,"totalPages":1,"totalCount":1,"blogDescription":"\u535a\u5ba2","blogTitle":"\u535a\u5ba2"}}')}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/b4229a02.28cfbe4b.js b/zh-cn/assets/js/b4229a02.28cfbe4b.js
new file mode 100644
index 00000000..f0f83310
--- /dev/null
+++ b/zh-cn/assets/js/b4229a02.28cfbe4b.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9933],{76978(e,n,t){t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>r,default:()=>x,frontMatter:()=>s,metadata:()=>o,toc:()=>d});const o=JSON.parse('{"id":"sheet/read/exception","title":"\u5f02\u5e38\u5904\u7406","description":"\u672c\u7ae0\u8282\u5c06\u4ecb\u7ecd\u5982\u4f55\u5904\u7406\u5f02\u5e38\u3002","source":"@site/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/read/exception.md","sourceDi [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/bbd078df.f12db1ba.js b/zh-cn/assets/js/bbd078df.f12db1ba.js
new file mode 100644
index 00000000..826657d8
--- /dev/null
+++ b/zh-cn/assets/js/bbd078df.f12db1ba.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2080],{49946(e,n,l){l.r(n),l.d(n,{assets:()=>a,contentTitle:()=>r,default:()=>h,frontMatter:()=>d,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"sheet/help/core-class","title":"\u6838\u5fc3\u7c7b","description":"\u672c\u7ae0\u8282\u4ecb\u7ecd\u8bfb\u53d6 FesodSheet \u4e2d\u7684\u6838\u5fc3\u7c7b\u3002","source":"@site/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/help/core-class.md"," [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/be2eec21.b2b9b66c.js b/zh-cn/assets/js/be2eec21.b2b9b66c.js
new file mode 100644
index 00000000..5d4a2d2e
--- /dev/null
+++ b/zh-cn/assets/js/be2eec21.b2b9b66c.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3412],{13560(e){e.exports=JSON.parse('{"version":{"pluginId":"community","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"community":[{"type":"link","href":"/zh-cn/community/","label":"\u52a0\u5165\u793e\u533a","docId":"index","unlisted":false},{"type":"link","href":"/zh-cn/community/maturity","label":"Matu [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/beba5e5e.fdb48398.js b/zh-cn/assets/js/beba5e5e.fdb48398.js
new file mode 100644
index 00000000..7f468caa
--- /dev/null
+++ b/zh-cn/assets/js/beba5e5e.fdb48398.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1731],{39382(e){e.exports=JSON.parse('{"archive":{"blogPosts":[{"id":"/2025/09/17/fesod-entered-apache-incubator","metadata":{"permalink":"/zh-cn/blog/2025/09/17/fesod-entered-apache-incubator","editUrl":"https://github.com/apache/fesod/edit/main/website/i18n/zh-cn/docusaurus-plugin-content-blog/2025-09-17-fesod-entered-apache-incubator.md","source":"@site/i18n/zh-cn/docusaurus-plugin-content-blog/202 [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/bf80cbe7.8a98cd0a.js b/zh-cn/assets/js/bf80cbe7.8a98cd0a.js
new file mode 100644
index 00000000..1cc67b58
--- /dev/null
+++ b/zh-cn/assets/js/bf80cbe7.8a98cd0a.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1940],{56419(e,n,a){a.r(n),a.d(n,{assets:()=>o,contentTitle:()=>d,default:()=>h,frontMatter:()=>t,metadata:()=>i,toc:()=>r});const i=JSON.parse('{"id":"sheet/read/simple","title":"\u7b80\u5355\u8bfb\u53d6","description":"\u672c\u7ae0\u8282\u4ecb\u7ecd\u5982\u4f55\u4f7f\u7528 Fesod \u5b8c\u6210\u7b80\u5355\u7535\u5b50\u8868\u683c\u8bfb\u53d6","source":"@site/i18n/zh-cn/docusaurus-plugin-content-docs/cu [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/c1ff7703.9d8d873c.js b/zh-cn/assets/js/c1ff7703.9d8d873c.js
new file mode 100644
index 00000000..5520b081
--- /dev/null
+++ b/zh-cn/assets/js/c1ff7703.9d8d873c.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1918],{10954(e,n,i){i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>s,default:()=>p,frontMatter:()=>r,metadata:()=>t,toc:()=>d});const t=JSON.parse('{"id":"pmc/onboarding","title":"PPMC \u6210\u5458\u987b\u77e5","description":"\u672c\u6587\u4ef6\u4e3b\u8981\u4f5c\u4e3a Apache Fesod (Incubating)\u9879\u76ee\u65b0 PPMC \u6210\u5458\u7684\u5165\u95e8\u6307\u5357\u3002","source":"@site/i18n/zh-cn/docusaurus-p [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/c4f5d8e4.2ebdc0d3.js b/zh-cn/assets/js/c4f5d8e4.2ebdc0d3.js
new file mode 100644
index 00000000..7000c246
--- /dev/null
+++ b/zh-cn/assets/js/c4f5d8e4.2ebdc0d3.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2634],{41601(e,a,t){t.d(a,{A:()=>R});var l,r,n,c,h,i,f,m,d,s,o,g,E,p,x,w,M=t(59471);function v(){return v=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var l in t)({}).hasOwnProperty.call(t,l)&&(e[l]=t[l])}return e},v.apply(null,arguments)}const R=({title:e,titleId:a,...t})=>M.createElement("svg",v({xmlns:"http://www.w3.org/2000/svg",width:10 [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/ccc49370.ae195661.js b/zh-cn/assets/js/ccc49370.ae195661.js
new file mode 100644
index 00000000..83608ba9
--- /dev/null
+++ b/zh-cn/assets/js/ccc49370.ae195661.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3249],{31718(e,t,n){n.d(t,{A:()=>U});n(59471);var a=n(13526),s=n(56998),i=n(62615);function r({children:e,className:t}){return(0,i.jsx)("article",{className:t,children:e})}var o=n(71248);const l="title_Ksug";function c({className:e}){const{metadata:t,isBlogPostPage:n}=(0,s.e7)(),{permalink:r,title:c}=t,d=n?"h1":"h2";return(0,i.jsx)(d,{className:(0,a.A)(l,e),children:n?c:(0,i.jsx)(o.A,{to:r,children:c} [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/cd11f224.c7766d2d.js b/zh-cn/assets/js/cd11f224.c7766d2d.js
new file mode 100644
index 00000000..c2627a73
--- /dev/null
+++ b/zh-cn/assets/js/cd11f224.c7766d2d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2778],{96442(e,n,s){s.r(n),s.d(n,{assets:()=>o,contentTitle:()=>c,default:()=>h,frontMatter:()=>r,metadata:()=>t,toc:()=>i});const t=JSON.parse('{"id":"sheet/read/csv","title":"CSV","description":"\u672c\u7ae0\u8282\u4ecb\u7ecd\u5982\u4f55\u4f7f\u7528 Fesod \u6765\u8bfb\u53d6\u81ea\u5b9a\u4e49 CSV \u6587\u4ef6\u3002","source":"@site/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/read/csv.md", [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/d0f020bf.9dd0e66a.js b/zh-cn/assets/js/d0f020bf.9dd0e66a.js
new file mode 100644
index 00000000..8ad27d12
--- /dev/null
+++ b/zh-cn/assets/js/d0f020bf.9dd0e66a.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9635],{95269(e,n,t){t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>s,default:()=>h,frontMatter:()=>i,metadata:()=>a,toc:()=>o});const a=JSON.parse('{"id":"sheet/read/pojo","title":"\u5b9e\u4f53\u7c7b","description":"\u672c\u7ae0\u8282\u5c06\u4ecb\u7ecd\u901a\u8fc7\u8bbe\u7f6e POJO \u6765\u8bfb\u53d6\u6570\u636e\u7684\u4f7f\u7528","source":"@site/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/rea [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/d58f16ca.fed31b3c.js b/zh-cn/assets/js/d58f16ca.fed31b3c.js
new file mode 100644
index 00000000..e2cae43b
--- /dev/null
+++ b/zh-cn/assets/js/d58f16ca.fed31b3c.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3861],{41014(e,n,c){c.r(n),c.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>l,frontMatter:()=>r,metadata:()=>t,toc:()=>u});const t=JSON.parse('{"id":"security","title":"\u5b89\u5168","description":"Apache Software Foundation \u5728\u6d88\u9664\u5176\u8f6f\u4ef6\u9879\u76ee\u4e2d\u7684\u5b89\u5168\u95ee\u9898\u65b9\u9762\u91c7\u53d6\u4e86\u4e25\u683c\u7684\u7acb\u573a\u3002Apache Fesod (Incubating) \ [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/df5d2657.b6096e4d.js b/zh-cn/assets/js/df5d2657.b6096e4d.js
new file mode 100644
index 00000000..d06ca4f4
--- /dev/null
+++ b/zh-cn/assets/js/df5d2657.b6096e4d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7342],{45873(e,n,t){t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>s,default:()=>x,frontMatter:()=>l,metadata:()=>a,toc:()=>o});const a=JSON.parse('{"id":"sheet/read/extra","title":"\u989d\u5916\u4fe1\u606f","description":"\u672c\u7ae0\u8282\u5c06\u4ecb\u7ecd\u5982\u4f55\u8bfb\u53d6\u989d\u5916\u7684\u4fe1\u606f\uff0c\u5982\u6279\u6ce8\u3001\u8d85\u94fe\u63a5\u3001\u5408\u5e76\u5355\u5143\u683c\u7b49\u30 [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/e0719818.d59443b3.js b/zh-cn/assets/js/e0719818.d59443b3.js
new file mode 100644
index 00000000..2d7c2402
--- /dev/null
+++ b/zh-cn/assets/js/e0719818.d59443b3.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5220],{68669(s){s.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"community"}')}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/e3ca1761.e337b238.js b/zh-cn/assets/js/e3ca1761.e337b238.js
new file mode 100644
index 00000000..cb6ff7fb
--- /dev/null
+++ b/zh-cn/assets/js/e3ca1761.e337b238.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3100],{9724(e,n,s){s.r(n),s.d(n,{assets:()=>t,contentTitle:()=>o,default:()=>h,frontMatter:()=>c,metadata:()=>a,toc:()=>d});const a=JSON.parse('{"id":"release/release-version","title":"\u5982\u4f55\u53d1\u5e03\u7248\u672c","description":"1.1 Apache \u7248\u672c\u53d1\u5e03\u6587\u6863","source":"@site/i18n/zh-cn/docusaurus-plugin-content-docs-community/current/release/release-version.md","sourceDirNam [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/e7985601.0e1d248b.js b/zh-cn/assets/js/e7985601.0e1d248b.js
new file mode 100644
index 00000000..ba3d0aa7
--- /dev/null
+++ b/zh-cn/assets/js/e7985601.0e1d248b.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[764],{67031(n,e,i){i.r(e),i.d(e,{assets:()=>d,contentTitle:()=>r,default:()=>u,frontMatter:()=>t,metadata:()=>c,toc:()=>o});const c=JSON.parse('{"id":"contribution","title":"\u6982\u8ff0","description":"\u6b22\u8fce\u793e\u533a\u4e2d\u7684\u6bcf\u4e00\u4f4d\u7528\u6237\u548c\u5f00\u53d1\u8005\u6210\u4e3a\u8d21\u732e\u8005\u3002\u65e0\u8bba\u662f\u62a5\u544a\u95ee\u9898\u3001\u6539\u8fdb\u6587\u6863\u3 [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/ea6ff1c0.093b21bc.js b/zh-cn/assets/js/ea6ff1c0.093b21bc.js
new file mode 100644
index 00000000..03433342
--- /dev/null
+++ b/zh-cn/assets/js/ea6ff1c0.093b21bc.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7003],{87391(e,n,s){s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>i,default:()=>a,frontMatter:()=>r,metadata:()=>c,toc:()=>h});const c=JSON.parse('{"id":"migration/from-fastexcel","title":"\u4ece FastExcel \u8fc1\u79fb","description":"\u4ece cn.idev FastExcel \u8fc1\u79fb\u5230 Apache Fesod (Incubating) \u7684\u5b8c\u6574\u6307\u5357","source":"@site/i18n/zh-cn/docusaurus-plugin-content-docs/current/mig [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/ec6079f5.8512f8ee.js b/zh-cn/assets/js/ec6079f5.8512f8ee.js
new file mode 100644
index 00000000..8d0e8689
--- /dev/null
+++ b/zh-cn/assets/js/ec6079f5.8512f8ee.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6402],{72208(e,n,t){t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>s,default:()=>h,frontMatter:()=>o,metadata:()=>l,toc:()=>d});const l=JSON.parse('{"id":"sheet/write/style","title":"\u6837\u5f0f","description":"\u672c\u7ae0\u8282\u5c06\u4ecb\u7ecd\u5199\u5165\u6570\u636e\u65f6\u7684\u6837\u5f0f\u8bbe\u7f6e\u3002","source":"@site/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/style.md","so [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/f133e5e2.03d378ba.js b/zh-cn/assets/js/f133e5e2.03d378ba.js
new file mode 100644
index 00000000..85915894
--- /dev/null
+++ b/zh-cn/assets/js/f133e5e2.03d378ba.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[457],{79901(e,n,a){a.r(n),a.d(n,{assets:()=>r,contentTitle:()=>l,default:()=>h,frontMatter:()=>i,metadata:()=>d,toc:()=>o});const d=JSON.parse('{"id":"sheet/read/head","title":"\u8868\u5934","description":"\u672c\u7ae0\u8282\u5c06\u4ecb\u7ecd\u8bfb\u53d6\u7535\u5b50\u8868\u683c\u4e2d\u7684\u8868\u5934\u6570\u636e\u3002","source":"@site/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/read/head. [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/f341d759.50bfb2db.js b/zh-cn/assets/js/f341d759.50bfb2db.js
new file mode 100644
index 00000000..5a096681
--- /dev/null
+++ b/zh-cn/assets/js/f341d759.50bfb2db.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2282],{13089(e,n,t){t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>i,default:()=>o,frontMatter:()=>r,metadata:()=>a,toc:()=>l});const a=JSON.parse('{"id":"sheet/help/large-data","title":"\u5927\u6570\u636e\u91cf\u6587\u4ef6","description":"\u8bfb\u53d6","source":"@site/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/help/large-data.md","sourceDirName":"sheet/help","slug":"/sheet/help/large-data", [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/f7ff6690.dcefd1ba.js b/zh-cn/assets/js/f7ff6690.dcefd1ba.js
new file mode 100644
index 00000000..bd808f64
--- /dev/null
+++ b/zh-cn/assets/js/f7ff6690.dcefd1ba.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7065],{29025(e,n,i){i.r(n),i.d(n,{assets:()=>d,contentTitle:()=>t,default:()=>a,frontMatter:()=>r,metadata:()=>s,toc:()=>o});const s=JSON.parse('{"id":"contribution/contribute-code","title":"\u4ee3\u7801\u8d21\u732e\u6307\u5357","description":"\u672c\u8282\u5c06\u4ecb\u7ecd\u5982\u4f55\u4ece\u6e90\u4ee3\u7801\u6784\u5efa\u9879\u76ee\uff0c\u540c\u65f6\u4e5f\u4f1a\u8bf4\u660e\u5982\u4f55\u8d21\u732e\u4e [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/f98e3ca9.4f233a49.js b/zh-cn/assets/js/f98e3ca9.4f233a49.js
new file mode 100644
index 00000000..92f4e072
--- /dev/null
+++ b/zh-cn/assets/js/f98e3ca9.4f233a49.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7381],{78535(e,t,n){n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>r,default:()=>p,frontMatter:()=>a,metadata:()=>o,toc:()=>i});var o=n(78208),s=n(62615),c=n(30416);const a={title:"\u5b98\u5ba3! Fesod \u6210\u529f\u8fdb\u5165 Apache \u5b75\u5316\u5668",description:"Fesod successfully entered Apache Incubator.",tags:["announcement"]},r=void 0,u={authorsImageUrls:[]},i=[];function d(e){const t={a:"a",p:"p" [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/fa69dec0.8383485e.js b/zh-cn/assets/js/fa69dec0.8383485e.js
new file mode 100644
index 00000000..b8b877e1
--- /dev/null
+++ b/zh-cn/assets/js/fa69dec0.8383485e.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8167],{70450(e,t,n){n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>r,toc:()=>l});const r=JSON.parse('{"id":"sheet/write/format","title":"\u683c\u5f0f\u5316","description":"\u672c\u7ae0\u8282\u5c06\u4ecb\u7ecd\u5199\u5165\u6570\u636e\u65f6\u7684\u6570\u636e\u683c\u5f0f\u5316\u3002","source":"@site/i18n/zh-cn/docusaurus-plugin-content-docs/current/sheet/write/ [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/main.00cf2c92.js b/zh-cn/assets/js/main.00cf2c92.js
new file mode 100644
index 00000000..efdb8ed1
--- /dev/null
+++ b/zh-cn/assets/js/main.00cf2c92.js
@@ -0,0 +1,2 @@
+/*! For license information please see main.00cf2c92.js.LICENSE.txt */
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8792],{23010(e,t,n){var r={"./prism-bash":81022,"./prism-java":32912};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=23010},54887(e,t,n){"use strict";n.d(t,{mg:()=>J,vd:()=>Q});var r=n(59471),a=n(2736),o=n.n(a),i=n(34072),s=n.n(i),l=n(29 [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/main.00cf2c92.js.LICENSE.txt b/zh-cn/assets/js/main.00cf2c92.js.LICENSE.txt
new file mode 100644
index 00000000..f4d2c339
--- /dev/null
+++ b/zh-cn/assets/js/main.00cf2c92.js.LICENSE.txt
@@ -0,0 +1,138 @@
+/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress
+ * @license MIT */
+
+/*!
+ * Snowball JavaScript Library v0.3
+ * http://code.google.com/p/urim/
+ * http://snowball.tartarus.org/
+ *
+ * Copyright 2010, Oleg Mazko
+ * http://www.mozilla.org/MPL/
+ */
+
+/*!
+ * lunr.Builder
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.Index
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.Pipeline
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.Set
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.TokenSet
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.Vector
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.stemmer
+ * Copyright (C) 2020 Oliver Nightingale
+ * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt
+ */
+
+/*!
+ * lunr.stopWordFilter
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.tokenizer
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.trimmer
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/*!
+ * lunr.utils
+ * Copyright (C) 2020 Oliver Nightingale
+ */
+
+/**
+ * @license
+ * Copyright 2019 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/**
+ * @license React
+ * react-dom-client.production.js
+ *
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/**
+ * @license React
+ * react-dom.production.js
+ *
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/**
+ * @license React
+ * react-jsx-runtime.production.js
+ *
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/**
+ * @license React
+ * react.production.js
+ *
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/**
+ * @license React
+ * scheduler.production.js
+ *
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/**
+ * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9
+ * Copyright (C) 2020 Oliver Nightingale
+ * @license MIT
+ */
+
+/** @license React v16.13.1
+ * react-is.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
diff --git a/zh-cn/assets/js/runtime~main.1ab0801f.js b/zh-cn/assets/js/runtime~main.1ab0801f.js
new file mode 100644
index 00000000..ac41ca6b
--- /dev/null
+++ b/zh-cn/assets/js/runtime~main.1ab0801f.js
@@ -0,0 +1 @@
+(()=>{"use strict";var e,a,c,f,d,b={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var c=t[e]={exports:{}};return b[e].call(c.exports,c,c.exports,r),c.exports}r.m=b,e=[],r.O=(a,c,f,d)=>{if(!c){var b=1/0;for(i=0;i<e.length;i++){for(var[c,f,d]=e[i],t=!0,o=0;o<c.length;o++)(!1&d||b>=d)&&Object.keys(r.O).every(e=>r.O[e](c[o]))?c.splice(o--,1):(t=!1,d<b&&(b=d));if(t){e.splice(i--,1);var n=f();void 0!==n&&(a=n)}}return a}d=d||0;for(var i=e.length;i>0&&e[i-1][2]>d;i--)e[i]=e[i-1 [...]
\ No newline at end of file
diff --git a/zh-cn/blog/2025/09/17/fesod-entered-apache-incubator/index.html b/zh-cn/blog/2025/09/17/fesod-entered-apache-incubator/index.html
new file mode 100644
index 00000000..d0f1d1dd
--- /dev/null
+++ b/zh-cn/blog/2025/09/17/fesod-entered-apache-incubator/index.html
@@ -0,0 +1,25 @@
+<!doctype html>
+<html lang="zh-cn" dir="ltr" class="blog-wrapper blog-post-page plugin-blog plugin-id-default" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">官宣! Fesod 成功进入 Apache 孵化器 | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apa [...]
+<link rel="alternate" type="application/atom+xml" href="/zh-cn/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/zh-cn/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/zh-cn/assets/js/runtime~main.1ab0801f.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.00cf2c92.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/blog/archive/index.html b/zh-cn/blog/archive/index.html
new file mode 100644
index 00000000..42e6a1e7
--- /dev/null
+++ b/zh-cn/blog/archive/index.html
@@ -0,0 +1,25 @@
+<!doctype html>
+<html lang="zh-cn" dir="ltr" class="plugin-blog plugin-id-default" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">历史博文 | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/zh-cn/blog/ar [...]
+<link rel="alternate" type="application/atom+xml" href="/zh-cn/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/zh-cn/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/zh-cn/assets/js/runtime~main.1ab0801f.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.00cf2c92.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/blog/atom.xml b/zh-cn/blog/atom.xml
new file mode 100644
index 00000000..7e58d32f
--- /dev/null
+++ b/zh-cn/blog/atom.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom">
+ <id>https://fesod.apache.org/zh-cn/blog</id>
+ <title>Apache Fesod (Incubating) Blog</title>
+ <updated>2025-09-17T00:00:00.000Z</updated>
+ <generator>https://github.com/jpmonette/feed</generator>
+ <link rel="alternate" href="https://fesod.apache.org/zh-cn/blog"/>
+ <subtitle>Apache Fesod (Incubating) Blog</subtitle>
+ <icon>https://fesod.apache.org/zh-cn/img/favicon.ico</icon>
+ <entry>
+ <title type="html"><![CDATA[官宣! Fesod 成功进入 Apache 孵化器]]></title>
+ <id>https://fesod.apache.org/zh-cn/blog/2025/09/17/fesod-entered-apache-incubator</id>
+ <link href="https://fesod.apache.org/zh-cn/blog/2025/09/17/fesod-entered-apache-incubator"/>
+ <updated>2025-09-17T00:00:00.000Z</updated>
+ <summary type="html"><![CDATA[Fesod successfully entered Apache Incubator.]]></summary>
+ <content type="html"><![CDATA[<p><a href="https://github.com/apache/fesod" target="_blank" rel="noopener noreferrer" class="">Fesod</a> 于2025年09月17日顺利通过投票,正式成为了全球最大的开源基金会 <a href="https://www.apache.org/" target="_blank" rel="noopener noreferrer" class="">Apache 软件基金会</a> (ASF)的孵化项目。09月25日,Fesod 仓库正式迁移至 Apache 软件基金会。</p>]]></content>
+ <category label="announcement" term="announcement"/>
+ </entry>
+</feed>
\ No newline at end of file
diff --git a/zh-cn/blog/authors/index.html b/zh-cn/blog/authors/index.html
new file mode 100644
index 00000000..219b04b1
--- /dev/null
+++ b/zh-cn/blog/authors/index.html
@@ -0,0 +1,25 @@
+<!doctype html>
+<html lang="zh-cn" dir="ltr" class="blog-wrapper blog-authors-list-page plugin-blog plugin-id-default" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">作者 | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/zh-cn/blog/auth [...]
+<link rel="alternate" type="application/atom+xml" href="/zh-cn/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/zh-cn/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/zh-cn/assets/js/runtime~main.1ab0801f.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.00cf2c92.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/blog/feed.json b/zh-cn/blog/feed.json
new file mode 100644
index 00000000..340849ca
--- /dev/null
+++ b/zh-cn/blog/feed.json
@@ -0,0 +1,19 @@
+{
+ "version": "https://jsonfeed.org/version/1",
+ "title": "Apache Fesod (Incubating) Blog",
+ "home_page_url": "https://fesod.apache.org/zh-cn/blog",
+ "description": "Apache Fesod (Incubating) Blog",
+ "items": [
+ {
+ "id": "https://fesod.apache.org/zh-cn/blog/2025/09/17/fesod-entered-apache-incubator",
+ "content_html": "<p><a href=\"https://github.com/apache/fesod\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">Fesod</a> 于2025年09月17日顺利通过投票,正式成为了全球最大的开源基金会 <a href=\"https://www.apache.org/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">Apache 软件基金会</a> (ASF)的孵化项目。09月25日,Fesod 仓库正式迁移至 Apache 软件基金会。</p>",
+ "url": "https://fesod.apache.org/zh-cn/blog/2025/09/17/fesod-entered-apache-incubator",
+ "title": "官宣! Fesod 成功进入 Apache 孵化器",
+ "summary": "Fesod successfully entered Apache Incubator.",
+ "date_modified": "2025-09-17T00:00:00.000Z",
+ "tags": [
+ "announcement"
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/zh-cn/blog/index.html b/zh-cn/blog/index.html
new file mode 100644
index 00000000..c4bd5d80
--- /dev/null
+++ b/zh-cn/blog/index.html
@@ -0,0 +1,25 @@
+<!doctype html>
+<html lang="zh-cn" dir="ltr" class="blog-wrapper blog-list-page plugin-blog plugin-id-default" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">博客 | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apache.org/zh-cn/blog"><me [...]
+<link rel="alternate" type="application/atom+xml" href="/zh-cn/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/zh-cn/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/zh-cn/assets/js/runtime~main.1ab0801f.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.00cf2c92.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/blog/rss.xml b/zh-cn/blog/rss.xml
new file mode 100644
index 00000000..9f2c4bb0
--- /dev/null
+++ b/zh-cn/blog/rss.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
+ <channel>
+ <title>Apache Fesod (Incubating) Blog</title>
+ <link>https://fesod.apache.org/zh-cn/blog</link>
+ <description>Apache Fesod (Incubating) Blog</description>
+ <lastBuildDate>Wed, 17 Sep 2025 00:00:00 GMT</lastBuildDate>
+ <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
+ <generator>https://github.com/jpmonette/feed</generator>
+ <language>zh-cn</language>
+ <item>
+ <title><![CDATA[官宣! Fesod 成功进入 Apache 孵化器]]></title>
+ <link>https://fesod.apache.org/zh-cn/blog/2025/09/17/fesod-entered-apache-incubator</link>
+ <guid>https://fesod.apache.org/zh-cn/blog/2025/09/17/fesod-entered-apache-incubator</guid>
+ <pubDate>Wed, 17 Sep 2025 00:00:00 GMT</pubDate>
+ <description><![CDATA[Fesod successfully entered Apache Incubator.]]></description>
+ <content:encoded><![CDATA[<p><a href="https://github.com/apache/fesod" target="_blank" rel="noopener noreferrer" class="">Fesod</a> 于2025年09月17日顺利通过投票,正式成为了全球最大的开源基金会 <a href="https://www.apache.org/" target="_blank" rel="noopener noreferrer" class="">Apache 软件基金会</a> (ASF)的孵化项目。09月25日,Fesod 仓库正式迁移至 Apache 软件基金会。</p>]]></content:encoded>
+ <category>announcement</category>
+ </item>
+ </channel>
+</rss>
\ No newline at end of file
diff --git a/zh-cn/blog/tags/announcement/index.html b/zh-cn/blog/tags/announcement/index.html
new file mode 100644
index 00000000..7c27321d
--- /dev/null
+++ b/zh-cn/blog/tags/announcement/index.html
@@ -0,0 +1,25 @@
+<!doctype html>
+<html lang="zh-cn" dir="ltr" class="blog-wrapper blog-tags-post-list-page plugin-blog plugin-id-default" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">1 篇博文 含有标签「announcement」 | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/zh-cn/img/logo.svg"><meta data-rh="true" property="og:url" content="https://fesod.apac [...]
+<link rel="alternate" type="application/atom+xml" href="/zh-cn/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/zh-cn/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/zh-cn/assets/js/runtime~main.1ab0801f.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.00cf2c92.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/blog/tags/index.html b/zh-cn/blog/tags/index.html
new file mode 100644
index 00000000..76038610
--- /dev/null
+++ b/zh-cn/blog/tags/index.html
@@ -0,0 +1,25 @@
+<!doctype html>
+<html lang="zh-cn" dir="ltr" class="blog-wrapper blog-tags-list-page plugin-blog plugin-id-default" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
... 5785 lines suppressed ...
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@fesod.apache.org
For additional commands, e-mail: commits-help@fesod.apache.org