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/01/15 15:56:31 UTC

(fesod) branch gh-pages updated (4f99746c -> 39364cfa)

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 4f99746c deploy: f83ee1f23b790d7c09aa77f62f34db11cd12276a
     new 39364cfa deploy: 55861aa5bb7061492f03d3b5af1049c5aaa6ebd2

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   (4f99746c)
            \
             N -- N -- N   refs/heads/gh-pages (39364cfa)

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/{638.4fbe4037.js => 638.9927b1dd.js}                        | 4 ++--
 .../js/{638.4fbe4037.js.LICENSE.txt => 638.9927b1dd.js.LICENSE.txt}   | 0
 assets/js/9344.7e657d2d.js                                            | 1 +
 assets/js/9344.dc246724.js                                            | 1 -
 assets/js/{runtime~main.e92076f1.js => runtime~main.b2bbf516.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/committer-onboarding/index.html                   | 2 +-
 community/committer/icla/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/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/23f7ca76.94e78b2b.js                                  | 1 -
 zh-cn/assets/js/23f7ca76.d0459c28.js                                  | 1 +
 zh-cn/assets/js/{638.4fbe4037.js => 638.9927b1dd.js}                  | 4 ++--
 .../js/{638.4fbe4037.js.LICENSE.txt => 638.9927b1dd.js.LICENSE.txt}   | 0
 zh-cn/assets/js/9344.35131e6a.js                                      | 1 +
 zh-cn/assets/js/9344.a493e725.js                                      | 1 -
 .../assets/js/{runtime~main.0143772f.js => runtime~main.54d84d6f.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/committer-onboarding/index.html             | 2 +-
 zh-cn/community/committer/icla/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/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                                                 | 4 ++--
 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.json                                               | 2 +-
 zh-cn/search/index.html                                               | 2 +-
 zh-cn/team/index.html                                                 | 2 +-
 131 files changed, 129 insertions(+), 129 deletions(-)
 rename assets/js/{638.4fbe4037.js => 638.9927b1dd.js} (53%)
 rename assets/js/{638.4fbe4037.js.LICENSE.txt => 638.9927b1dd.js.LICENSE.txt} (100%)
 create mode 100644 assets/js/9344.7e657d2d.js
 delete mode 100644 assets/js/9344.dc246724.js
 rename assets/js/{runtime~main.e92076f1.js => runtime~main.b2bbf516.js} (98%)
 delete mode 100644 zh-cn/assets/js/23f7ca76.94e78b2b.js
 create mode 100644 zh-cn/assets/js/23f7ca76.d0459c28.js
 rename zh-cn/assets/js/{638.4fbe4037.js => 638.9927b1dd.js} (53%)
 rename zh-cn/assets/js/{638.4fbe4037.js.LICENSE.txt => 638.9927b1dd.js.LICENSE.txt} (100%)
 create mode 100644 zh-cn/assets/js/9344.35131e6a.js
 delete mode 100644 zh-cn/assets/js/9344.a493e725.js
 rename zh-cn/assets/js/{runtime~main.0143772f.js => runtime~main.54d84d6f.js} (97%)


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@fesod.apache.org
For additional commands, e-mail: commits-help@fesod.apache.org


(fesod) 01/01: deploy: 55861aa5bb7061492f03d3b5af1049c5aaa6ebd2

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 39364cfaec641b0638910320f835a873c2a95c0f
Author: delei <de...@users.noreply.github.com>
AuthorDate: Thu Jan 15 15:56:25 2026 +0000

    deploy: 55861aa5bb7061492f03d3b5af1049c5aaa6ebd2
---
 .asf.yaml                                          |  52 +++
 .nojekyll                                          |   0
 404.html                                           |  25 ++
 assets/css/styles.b60a225f.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.86f1135a.js                     |   1 +
 assets/js/01a85c17.d8609b05.js                     |   1 +
 assets/js/035672d3.4a29fc5e.js                     |   1 +
 assets/js/0fc1e0ab.99eb09c6.js                     |   1 +
 assets/js/10e1fcd2.41754b5c.js                     |   1 +
 assets/js/1138.5e0cc3ce.js                         |   1 +
 assets/js/134.03ac30f8.js                          |   1 +
 assets/js/1370.4f78401d.js                         |   1 +
 assets/js/138e0e15.d55cec6c.js                     |   1 +
 assets/js/17896441.851a53eb.js                     |   1 +
 assets/js/1a4e3797.bda481d2.js                     |   1 +
 assets/js/2050.e450606d.js                         |   1 +
 assets/js/213c1e68.4df07278.js                     |   1 +
 assets/js/2180.e09aef91.js                         |   1 +
 assets/js/2327.3a4fdd3c.js                         |   1 +
 assets/js/2451.918970ce.js                         |   2 +
 assets/js/2451.918970ce.js.LICENSE.txt             |  76 ++++
 assets/js/2706.ad6cb2ab.js                         |   1 +
 assets/js/299aa024.44e25d7a.js                     |   1 +
 assets/js/2c1e9c28.504d7c1f.js                     |   1 +
 assets/js/3308.7ed0b814.js                         |   1 +
 assets/js/3346.1d00631c.js                         |   1 +
 assets/js/3399376c.6e6df21b.js                     |   1 +
 assets/js/34338452.e133ce0d.js                     |   1 +
 assets/js/35aaf8c2.e2f9fa99.js                     |   1 +
 assets/js/36994c47.3ef3ca34.js                     |   1 +
 assets/js/3725.7db046ed.js                         |   1 +
 assets/js/3767.19ed1c98.js                         |   1 +
 assets/js/3899.735e5d49.js                         |   1 +
 assets/js/3a2db09e.c32a2be7.js                     |   1 +
 assets/js/3cb2f586.d5dc1af7.js                     |   1 +
 assets/js/3ff09b31.87cd3291.js                     |   1 +
 assets/js/4167.b59abf84.js                         |   1 +
 assets/js/4359.4f52bbac.js                         |   1 +
 assets/js/4383cab8.e0c0e1b1.js                     |   1 +
 assets/js/4390.acadbd72.js                         |   1 +
 assets/js/4413.d7894937.js                         |   1 +
 assets/js/4453.a5e03112.js                         |   1 +
 assets/js/4632.789b7a38.js                         |   1 +
 assets/js/483.d60b17af.js                          |   1 +
 assets/js/4860.84e1296c.js                         |   1 +
 assets/js/4885.1bf14774.js                         |   1 +
 assets/js/498dc5b3.0992e829.js                     |   1 +
 assets/js/4a783ec1.eede30b7.js                     |   1 +
 assets/js/5168.a04df29a.js                         |   1 +
 assets/js/5179.0f56cb1b.js                         |   1 +
 assets/js/5182.e1a974b3.js                         |   1 +
 assets/js/54d6a969.08ac175d.js                     |   1 +
 assets/js/5742f295.e2c61ded.js                     |   1 +
 assets/js/5771c448.85bc11e1.js                     |   1 +
 assets/js/57b9d056.ad122e76.js                     |   1 +
 assets/js/5820.45fb341a.js                         |   1 +
 assets/js/5dfaa6dd.88f75b37.js                     |   1 +
 assets/js/5e95c892.9dfbf0d1.js                     |   1 +
 assets/js/6143.1a358e0a.js                         |   1 +
 assets/js/621db11d.4eda1efc.js                     |   1 +
 assets/js/6270108c.62bd3e0d.js                     |   1 +
 assets/js/6340.7e29156d.js                         |   1 +
 assets/js/6376.1224ed14.js                         |   1 +
 assets/js/638.9927b1dd.js                          |   2 +
 assets/js/638.9927b1dd.js.LICENSE.txt              |   9 +
 assets/js/64ca138b.439b5caa.js                     |   1 +
 assets/js/654.218e21d7.js                          |   1 +
 assets/js/6603.a0b87fa9.js                         |   1 +
 assets/js/66e7b107.d7068ca8.js                     |   1 +
 assets/js/6761.9403c842.js                         |   1 +
 assets/js/6873.9beaa798.js                         |   1 +
 assets/js/6875c492.fcdbaf31.js                     |   1 +
 assets/js/6961.cddc7e61.js                         |   1 +
 assets/js/7039.abab4d73.js                         |   1 +
 assets/js/7204.0c6d9d17.js                         |   1 +
 assets/js/7616.d0fe4958.js                         |   1 +
 assets/js/764.2e49bd34.js                          |   1 +
 assets/js/7666.ee0cc5af.js                         |   2 +
 assets/js/7666.ee0cc5af.js.LICENSE.txt             |   1 +
 assets/js/770.20146c3f.js                          |   1 +
 assets/js/7876.7a02153a.js                         |   1 +
 assets/js/8071.fd9f1544.js                         |   1 +
 assets/js/814f3328.5a7dc7a4.js                     |   1 +
 assets/js/83b4fe73.6f113875.js                     |   1 +
 assets/js/84450331.259b6eb9.js                     |   1 +
 assets/js/87165530.05e9bdab.js                     |   1 +
 assets/js/8907.e9f01efb.js                         |   1 +
 assets/js/8ccf8dfc.4f342e2d.js                     |   1 +
 assets/js/903f555a.0e9dcc5e.js                     |   1 +
 assets/js/9056.59050bcd.js                         |   1 +
 assets/js/908b89db.92630058.js                     |   1 +
 assets/js/9344.7e657d2d.js                         |   1 +
 assets/js/9569.a6887cc4.js                         |   1 +
 assets/js/967.7303b75f.js                          |   1 +
 assets/js/9748.5bce2a2a.js                         |   1 +
 assets/js/98b2b410.f4170412.js                     |   1 +
 assets/js/9951.2f90a075.js                         |   2 +
 assets/js/9951.2f90a075.js.LICENSE.txt             |   1 +
 assets/js/9b316f1b.11b0a998.js                     |   1 +
 assets/js/9d86e7fa.fd1f8399.js                     |   1 +
 assets/js/9e4087bc.cba3c088.js                     |   1 +
 assets/js/a0cc137d.e92dd17e.js                     |   1 +
 assets/js/a2915123.86a00359.js                     |   1 +
 assets/js/a3e235df.3106707f.js                     |   1 +
 assets/js/a4b4544e.312d39a3.js                     |   1 +
 assets/js/a6aa9e1f.bae5e4ee.js                     |   1 +
 assets/js/a7456010.6632754d.js                     |   1 +
 assets/js/a7bd4aaa.1aa88fa4.js                     |   1 +
 assets/js/a8dd066c.0e97ff22.js                     |   1 +
 assets/js/a94703ab.95bca685.js                     |   1 +
 assets/js/aba21aa0.9a1fa3c5.js                     |   1 +
 assets/js/abce2868.7b631f46.js                     |   1 +
 assets/js/acecf23e.00e0664e.js                     |   1 +
 assets/js/ae338ae9.11c26316.js                     |   1 +
 assets/js/c15d9823.7b90f58f.js                     |   1 +
 assets/js/c3aa4345.22fe7837.js                     |   1 +
 assets/js/c4f5d8e4.574e21fa.js                     |   1 +
 assets/js/c639369e.c653d6a0.js                     |   1 +
 assets/js/c9de33a5.f82ee9cb.js                     |   1 +
 assets/js/ccc49370.91b04aae.js                     |   1 +
 assets/js/cfa642a3.4da77b19.js                     |   1 +
 assets/js/d2436a2b.e299cbd9.js                     |   1 +
 assets/js/d5273c26.f1a5fa12.js                     |   1 +
 assets/js/d55aa8bb.fcf8a555.js                     |   1 +
 assets/js/de3da009.1151d0c6.js                     |   1 +
 assets/js/e0719818.d59443b3.js                     |   1 +
 assets/js/e1dda140.0fd4b7fb.js                     |   1 +
 assets/js/e2f5eafd.790b5289.js                     |   1 +
 assets/js/ea334bcf.c9bd049e.js                     |   1 +
 assets/js/edc931f8.1d1357fa.js                     |   1 +
 assets/js/ef8b811a.71f2d5cc.js                     |   1 +
 assets/js/f81c1134.ea6d8f73.js                     |   1 +
 assets/js/f9e23376.36a9e034.js                     |   1 +
 assets/js/fae1940b.3c6b40b4.js                     |   1 +
 assets/js/fe9a19b4.aac44e56.js                     |   1 +
 assets/js/ff3732e9.1af57cfa.js                     |   1 +
 assets/js/main.93c1d237.js                         |   2 +
 assets/js/main.93c1d237.js.LICENSE.txt             | 138 +++++++
 assets/js/runtime~main.b2bbf516.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 ++++
 .../committer/committer-onboarding/index.html      |  74 ++++
 community/committer/icla/index.html                |  84 ++++
 .../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/pmc-onboarding/index.html            |  42 ++
 community/release/release-version/index.html       | 124 ++++++
 community/release/verify-release/index.html        | 109 +++++
 community/security/index.html                      |  43 ++
 docs/download/index.html                           |  96 +++++
 docs/index.html                                    |  53 +++
 docs/migration/from-fastexcel/index.html           | 211 ++++++++++
 docs/quickstart/guide/index.html                   |  74 ++++
 docs/quickstart/simple-example/index.html          |  31 ++
 docs/sheet/fill/index.html                         |  88 ++++
 docs/sheet/help/annotation/index.html              | 116 ++++++
 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.b60a225f.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.6d3fe295.js               |   1 +
 zh-cn/assets/js/01a85c17.d8609b05.js               |   1 +
 zh-cn/assets/js/026e6981.eaf62ecd.js               |   1 +
 zh-cn/assets/js/035672d3.4a29fc5e.js               |   1 +
 zh-cn/assets/js/1138.5e0cc3ce.js                   |   1 +
 zh-cn/assets/js/134.03ac30f8.js                    |   1 +
 zh-cn/assets/js/1370.4f78401d.js                   |   1 +
 zh-cn/assets/js/138e0e15.d55cec6c.js               |   1 +
 zh-cn/assets/js/14fc6b04.f661606b.js               |   1 +
 zh-cn/assets/js/17896441.851a53eb.js               |   1 +
 zh-cn/assets/js/18b1fbba.2e632197.js               |   1 +
 zh-cn/assets/js/1a3b291f.3b66fa1f.js               |   1 +
 zh-cn/assets/js/1a4e3797.bda481d2.js               |   1 +
 zh-cn/assets/js/2050.e450606d.js                   |   1 +
 zh-cn/assets/js/2180.e09aef91.js                   |   1 +
 zh-cn/assets/js/2327.3a4fdd3c.js                   |   1 +
 zh-cn/assets/js/23f7ca76.d0459c28.js               |   1 +
 zh-cn/assets/js/2451.918970ce.js                   |   2 +
 zh-cn/assets/js/2451.918970ce.js.LICENSE.txt       |  76 ++++
 zh-cn/assets/js/2557682e.9d0f3bb0.js               |   1 +
 zh-cn/assets/js/2706.ad6cb2ab.js                   |   1 +
 zh-cn/assets/js/2bc519fb.9d8f48b4.js               |   1 +
 zh-cn/assets/js/32d423f7.7a9baf70.js               |   1 +
 zh-cn/assets/js/3308.7ed0b814.js                   |   1 +
 zh-cn/assets/js/33296af2.eed9d1c5.js               |   1 +
 zh-cn/assets/js/3346.1d00631c.js                   |   1 +
 zh-cn/assets/js/35ef6288.331783ef.js               |   1 +
 zh-cn/assets/js/3696a4b8.fb2d9d63.js               |   1 +
 zh-cn/assets/js/36994c47.3ef3ca34.js               |   1 +
 zh-cn/assets/js/3725.7db046ed.js                   |   1 +
 zh-cn/assets/js/3767.19ed1c98.js                   |   1 +
 zh-cn/assets/js/3899.735e5d49.js                   |   1 +
 zh-cn/assets/js/39832ed4.c1dad2ec.js               |   1 +
 zh-cn/assets/js/3a6abea9.1ab9c561.js               |   1 +
 zh-cn/assets/js/4167.b59abf84.js                   |   1 +
 zh-cn/assets/js/42f9ab63.b6a0359b.js               |   1 +
 zh-cn/assets/js/4359.4f52bbac.js                   |   1 +
 zh-cn/assets/js/4390.acadbd72.js                   |   1 +
 zh-cn/assets/js/4413.d7894937.js                   |   1 +
 zh-cn/assets/js/4453.a5e03112.js                   |   1 +
 zh-cn/assets/js/4632.789b7a38.js                   |   1 +
 zh-cn/assets/js/483.d60b17af.js                    |   1 +
 zh-cn/assets/js/4860.84e1296c.js                   |   1 +
 zh-cn/assets/js/4885.1bf14774.js                   |   1 +
 zh-cn/assets/js/5168.a04df29a.js                   |   1 +
 zh-cn/assets/js/516dc88b.9d37fb8c.js               |   1 +
 zh-cn/assets/js/5179.0f56cb1b.js                   |   1 +
 zh-cn/assets/js/5182.e1a974b3.js                   |   1 +
 zh-cn/assets/js/53c18be7.4265da6e.js               |   1 +
 zh-cn/assets/js/5820.45fb341a.js                   |   1 +
 zh-cn/assets/js/5b656150.823f78a7.js               |   1 +
 zh-cn/assets/js/5e6cf37e.873c6043.js               |   1 +
 zh-cn/assets/js/5e95c892.9dfbf0d1.js               |   1 +
 zh-cn/assets/js/5f5c637e.030bc557.js               |   1 +
 zh-cn/assets/js/6143.1a358e0a.js                   |   1 +
 zh-cn/assets/js/621db11d.4eda1efc.js               |   1 +
 zh-cn/assets/js/6340.7e29156d.js                   |   1 +
 zh-cn/assets/js/6376.1224ed14.js                   |   1 +
 zh-cn/assets/js/638.9927b1dd.js                    |   2 +
 zh-cn/assets/js/638.9927b1dd.js.LICENSE.txt        |   9 +
 zh-cn/assets/js/654.218e21d7.js                    |   1 +
 zh-cn/assets/js/65556891.04ca34f4.js               |   1 +
 zh-cn/assets/js/6603.a0b87fa9.js                   |   1 +
 zh-cn/assets/js/6761.9403c842.js                   |   1 +
 zh-cn/assets/js/6873.9beaa798.js                   |   1 +
 zh-cn/assets/js/6875c492.fcdbaf31.js               |   1 +
 zh-cn/assets/js/6961.cddc7e61.js                   |   1 +
 zh-cn/assets/js/6e79d794.ac7b99d0.js               |   1 +
 zh-cn/assets/js/6ea91d84.c98e0467.js               |   1 +
 zh-cn/assets/js/7039.abab4d73.js                   |   1 +
 zh-cn/assets/js/70652f5d.f6e1bae0.js               |   1 +
 zh-cn/assets/js/70f646db.e93092c1.js               |   1 +
 zh-cn/assets/js/7204.0c6d9d17.js                   |   1 +
 zh-cn/assets/js/7616.d0fe4958.js                   |   1 +
 zh-cn/assets/js/7666.f4500271.js                   |   2 +
 zh-cn/assets/js/7666.f4500271.js.LICENSE.txt       |   1 +
 zh-cn/assets/js/770.20146c3f.js                    |   1 +
 zh-cn/assets/js/77ad7f28.8ce1f65c.js               |   1 +
 zh-cn/assets/js/7876.7a02153a.js                   |   1 +
 zh-cn/assets/js/7ab5af9c.8c483339.js               |   1 +
 zh-cn/assets/js/7bacda60.e67385d1.js               |   1 +
 zh-cn/assets/js/7c8dfedd.ae9df450.js               |   1 +
 zh-cn/assets/js/8071.fd9f1544.js                   |   1 +
 zh-cn/assets/js/814f3328.2c672c70.js               |   1 +
 zh-cn/assets/js/8383.7a70a26a.js                   |   1 +
 zh-cn/assets/js/84f1c788.d855f396.js               |   1 +
 zh-cn/assets/js/8907.e9f01efb.js                   |   1 +
 zh-cn/assets/js/8a2aa126.4d1f8e6e.js               |   1 +
 zh-cn/assets/js/9056.59050bcd.js                   |   1 +
 zh-cn/assets/js/92380f4a.6fd4e7a3.js               |   1 +
 zh-cn/assets/js/9344.35131e6a.js                   |   1 +
 zh-cn/assets/js/9569.a6887cc4.js                   |   1 +
 zh-cn/assets/js/967.7303b75f.js                    |   1 +
 zh-cn/assets/js/9748.5bce2a2a.js                   |   1 +
 zh-cn/assets/js/97fe7548.20cfc970.js               |   1 +
 zh-cn/assets/js/9904a28c.fdbb0bd0.js               |   1 +
 zh-cn/assets/js/9951.2f90a075.js                   |   2 +
 zh-cn/assets/js/9951.2f90a075.js.LICENSE.txt       |   1 +
 zh-cn/assets/js/995798e3.b2ac77ff.js               |   1 +
 zh-cn/assets/js/9e4087bc.cba3c088.js               |   1 +
 zh-cn/assets/js/a08ce007.6e10c957.js               |   1 +
 zh-cn/assets/js/a1225c8b.ae49b2cc.js               |   1 +
 zh-cn/assets/js/a2451e7a.5c242fab.js               |   1 +
 zh-cn/assets/js/a6aa9e1f.bae5e4ee.js               |   1 +
 zh-cn/assets/js/a7456010.6632754d.js               |   1 +
 zh-cn/assets/js/a7bd4aaa.1aa88fa4.js               |   1 +
 zh-cn/assets/js/a94703ab.95bca685.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.1510669c.js               |   1 +
 zh-cn/assets/js/bbd078df.f989c370.js               |   1 +
 zh-cn/assets/js/be2eec21.3e67a0ab.js               |   1 +
 zh-cn/assets/js/beba5e5e.fdb48398.js               |   1 +
 zh-cn/assets/js/bf80cbe7.48f9cfc0.js               |   1 +
 zh-cn/assets/js/c1ff7703.716d535b.js               |   1 +
 zh-cn/assets/js/c4f5d8e4.574e21fa.js               |   1 +
 zh-cn/assets/js/ccc49370.91b04aae.js               |   1 +
 zh-cn/assets/js/cd11f224.143a3a13.js               |   1 +
 zh-cn/assets/js/d0f020bf.0b3b908f.js               |   1 +
 zh-cn/assets/js/d58f16ca.f9719753.js               |   1 +
 zh-cn/assets/js/df5d2657.31ce0691.js               |   1 +
 zh-cn/assets/js/e0719818.d59443b3.js               |   1 +
 zh-cn/assets/js/e3ca1761.63a90ce4.js               |   1 +
 zh-cn/assets/js/e7985601.0ed17f26.js               |   1 +
 zh-cn/assets/js/ea6ff1c0.0a95e3fd.js               |   1 +
 zh-cn/assets/js/ec6079f5.34e02b07.js               |   1 +
 zh-cn/assets/js/f133e5e2.bc9c553d.js               |   1 +
 zh-cn/assets/js/f341d759.b2dc75ba.js               |   1 +
 zh-cn/assets/js/f7ff6690.17fff21d.js               |   1 +
 zh-cn/assets/js/f98e3ca9.35d00126.js               |   1 +
 zh-cn/assets/js/fa69dec0.01312eac.js               |   1 +
 zh-cn/assets/js/main.d6216423.js                   |   2 +
 zh-cn/assets/js/main.d6216423.js.LICENSE.txt       | 138 +++++++
 zh-cn/assets/js/runtime~main.54d84d6f.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 ++++
 .../committer/committer-onboarding/index.html      |  74 ++++
 zh-cn/community/committer/icla/index.html          |  84 ++++
 .../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/pmc-onboarding/index.html      |  42 ++
 zh-cn/community/release/release-version/index.html | 143 +++++++
 zh-cn/community/release/verify-release/index.html  | 119 ++++++
 zh-cn/community/security/index.html                |  41 ++
 zh-cn/docs/download/index.html                     |  96 +++++
 zh-cn/docs/index.html                              |  43 ++
 zh-cn/docs/migration/from-fastexcel/index.html     | 211 ++++++++++
 zh-cn/docs/quickstart/guide/index.html             |  72 ++++
 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        | 113 ++++++
 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 ++
 579 files changed, 11001 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..56c33c62
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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.b60a225f.css b/assets/css/styles.b60a225f.css
new file mode 100644
index 00000000..9eed2d29
--- /dev/null
+++ b/assets/css/styles.b60a225f.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.86f1135a.js b/assets/js/0058b4c6.86f1135a.js
new file mode 100644
index 00000000..58985529
--- /dev/null
+++ b/assets/js/0058b4c6.86f1135a.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.d8609b05.js b/assets/js/01a85c17.d8609b05.js
new file mode 100644
index 00000000..4d426310
--- /dev/null
+++ b/assets/js/01a85c17.d8609b05.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8209],{5733(e,t,a){a.d(t,{in:()=>c,OU:()=>P,Ki:()=>A,kJ:()=>b,x:()=>l,e7:()=>m,J_:()=>f,Gx:()=>y});var s=a(57140),n=a(65809),i=a(91365),r=a(35656);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.4a29fc5e.js b/assets/js/035672d3.4a29fc5e.js
new file mode 100644
index 00000000..0ada36c1
--- /dev/null
+++ b/assets/js/035672d3.4a29fc5e.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8885],{40189(A,I,s){s.r(I),s.d(I,{default:()=>j});var e=s(57140),Q=s(51528);const E=JSON.parse('{"pmc":[{"githubId":"29803617","gitUrl":"https://github.com/dave2wave","name":"Dave Fisher","isMentor":true},{"githubId":"13284744","gitUrl":"https://github.com/wolfboys","name":"Huajie Wang","isMentor":true},{"githubId":"11783444","gitUrl":"https://github.com/pjfanning","name":"PJ Fanning","isMentor":true} [...]
\ No newline at end of file
diff --git a/assets/js/0fc1e0ab.99eb09c6.js b/assets/js/0fc1e0ab.99eb09c6.js
new file mode 100644
index 00000000..4cb5436a
--- /dev/null
+++ b/assets/js/0fc1e0ab.99eb09c6.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5911],{3668(e,n,t){t.d(n,{A:()=>i});const i=t.p+"assets/images/icla-01-83a226e824e1b9a9d08813f21b882e31.png"},26127(e,n,t){t.d(n,{A:()=>i});const i=t.p+"assets/images/icla-02-e761fe1f9d7c718f085b70b9fba8fc39.png"},28288(e,n,t){t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"committer/icla","title":"Sign iCLA Guide","de [...]
\ No newline at end of file
diff --git a/assets/js/10e1fcd2.41754b5c.js b/assets/js/10e1fcd2.41754b5c.js
new file mode 100644
index 00000000..3446d07d
--- /dev/null
+++ b/assets/js/10e1fcd2.41754b5c.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1469],{34042(e,i,t){t.d(i,{A:()=>n});const n=t.p+"assets/images/gmail-setting-64fa2bef013a1817489ee6195d293a97.png"},39539(e,i,t){t.d(i,{A:()=>n});const n=t.p+"assets/images/reset-passwd-e8828118db9277c6fe25a82a5a0bb3da.png"},41773(e,i,t){t.r(i),t.d(i,{assets:()=>c,contentTitle:()=>s,default:()=>h,frontMatter:()=>r,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"committer/committer-onboarding"," [...]
\ No newline at end of file
diff --git a/assets/js/1138.5e0cc3ce.js b/assets/js/1138.5e0cc3ce.js
new file mode 100644
index 00000000..db39b704
--- /dev/null
+++ b/assets/js/1138.5e0cc3ce.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1138],{61138(t,e,a){a.d(e,{diagram:()=>R});var i,n=a(40764),r=(a(59461),a(87044),a(33865),a(20656),a(31254),a(47538),a(49281),a(39895),a(85030),a(53486)),d=a(85459),s=a(34417),o=a(7012),g=a(54885),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 [...]
\ No newline at end of file
diff --git a/assets/js/134.03ac30f8.js b/assets/js/134.03ac30f8.js
new file mode 100644
index 00000000..77393506
--- /dev/null
+++ b/assets/js/134.03ac30f8.js
@@ -0,0 +1 @@
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[134],{2806(e,t,n){"use strict";n.d(t,{A:()=>x});n(57140);var s=n(13526),a=n(80431),r=n(7228),c=n(85340);const o="iconEdit_Bllq";var i=n(35656);function l({className:e,...t}){return(0,i.jsx)("svg",{fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,s.A)(o,e),"aria-hidden":"true",...t,children:(0,i.jsx)("g",{children:(0,i.jsx)("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. [...]
\ No newline at end of file
diff --git a/assets/js/1370.4f78401d.js b/assets/js/1370.4f78401d.js
new file mode 100644
index 00000000..ffced8ff
--- /dev/null
+++ b/assets/js/1370.4f78401d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1370],{29141(e,n,t){t.d(n,{A:()=>i});var r=t(9993);const i=function(e){return(0,r.A)(e,4)}},41370(e,n,t){t.r(n),t.d(n,{render:()=>k});var r=t(20656),i=(t(31254),t(47538)),a=t(49281),o=(t(39895),t(85030),t(53486),t(85459)),d=t(34417),s=t(54885),c=t(30664),g=t(29141),l=t(92498);t(32521);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/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/17896441.851a53eb.js b/assets/js/17896441.851a53eb.js
new file mode 100644
index 00000000..abd3aedb
--- /dev/null
+++ b/assets/js/17896441.851a53eb.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8401],{34121(e,n,t){t.d(n,{AE:()=>l,Rc:()=>r,TT:()=>d,Uh:()=>o,Yh:()=>c});t(57140);var s=t(80431),i=t(83242),a=t(35656);function r(){return(0,a.jsx)(s.A,{id:"theme.contentVisibility.unlistedBanner.title",description:"The unlisted content banner title",children:"Unlisted page"})}function o(){return(0,a.jsx)(s.A,{id:"theme.contentVisibility.unlistedBanner.message",description:"The unlisted content banne [...]
\ No newline at end of file
diff --git a/assets/js/1a4e3797.bda481d2.js b/assets/js/1a4e3797.bda481d2.js
new file mode 100644
index 00000000..9cacc50f
--- /dev/null
+++ b/assets/js/1a4e3797.bda481d2.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2138],{44400(e,t,r){r.r(t),r.d(t,{default:()=>k});var s=r(57140),a=r(3348),n=r(5856),l=r(83242),c=r(85340),o=r(80431),u=r(96550),i=r(13526),h=r(10559),d=r(94109),m=r(51080);const g=function(){const e=(0,d.A)(),t=(0,h.W6)(),r=(0,h.zy)(),{siteConfig:{baseUrl:s}}=(0,a.A)(),n=e?new URLSearchParams(r.search):null,l=n?.get("q")||"",c=n?.get("ctx")||"",o=n?.get("version")||"",u=e=>{const t=new URLSearchParam [...]
\ No newline at end of file
diff --git a/assets/js/2050.e450606d.js b/assets/js/2050.e450606d.js
new file mode 100644
index 00000000..2710aeed
--- /dev/null
+++ b/assets/js/2050.e450606d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2050],{22460(e,t,i){i.d(t,{A:()=>r});i(57140);var n=i(13526),o=i(80431),s=i(63320),a=i(35656);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/213c1e68.4df07278.js b/assets/js/213c1e68.4df07278.js
new file mode 100644
index 00000000..26fae277
--- /dev/null
+++ b/assets/js/213c1e68.4df07278.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8118],{25458(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":"For a detailed checklist, please refer to the official Incubator Release Checklist.","source":"@site/community/release/verify-release.md","sourceDirName":"release","slug":"/release/ [...]
\ No newline at end of file
diff --git a/assets/js/2180.e09aef91.js b/assets/js/2180.e09aef91.js
new file mode 100644
index 00000000..8afac063
--- /dev/null
+++ b/assets/js/2180.e09aef91.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2180],{49727(t,e,n){n.d(e,{CP:()=>h,HT:()=>y,PB:()=>u,aC:()=>c,lC:()=>o,m:()=>l,tk:()=>a});var i=n(85459),s=n(34417),r=n(41407),a=(0,s.K2)((t,e)=>{const n=t.append("rect");if(n.attr("x",e.x),n.attr("y",e.y),n.attr("fill",e.fill),n.attr("stroke",e.stroke),n.attr("width",e.width),n.attr("height",e.height),e.name&&n.attr("name",e.name),e.rx&&n.attr("rx",e.rx),e.ry&&n.attr("ry",e.ry),void 0!==e.attrs)for( [...]
\ No newline at end of file
diff --git a/assets/js/2327.3a4fdd3c.js b/assets/js/2327.3a4fdd3c.js
new file mode 100644
index 00000000..a470f26a
--- /dev/null
+++ b/assets/js/2327.3a4fdd3c.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2327],{22327(t,e,s){s.d(e,{diagram:()=>C});var i=s(90193),n=s(41089),r=s(59461),a=s(87044),u=s(33865),o=(s(20656),s(31254),s(47538)),l=(s(49281),s(39895),s(85030),s(53486)),c=s(85459),h=s(34417),d=s(7012),p=s(30941),g=s(80124),A=class{constructor(){this.vertexCounter=0,this.config=(0,c.D7)(),this.vertices=new Map,this.edges=[],this.classes=new Map,this.subGraphs=[],this.subGraphLookup=new Map,this.too [...]
\ No newline at end of file
diff --git a/assets/js/2451.918970ce.js b/assets/js/2451.918970ce.js
new file mode 100644
index 00000000..172d9911
--- /dev/null
+++ b/assets/js/2451.918970ce.js
@@ -0,0 +1,2 @@
+/*! For license information please see 2451.918970ce.js.LICENSE.txt */
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2451],{36430(e,t,r){var n,i;!function(){var s,o,a,u,l,c,h,d,f,p,m,y,g,v,x,w,b,k,E,Q,S,L,T,P,I,_,F,O,R,C,A=function(e){var t=new A.Builder;return t.pipeline.add(A.trimmer,A.stopWordFilter,A.stemmer),t.searchPipeline.add(A.stemmer),e.call(t,t),t.build()};A.version="2.3.9",A.utils={},A.utils.warn=(s=this,function(e){s.console&&console.warn&&console.warn(e)}),A.utils.asString=function(e){return null==e?"":e.toString() [...]
\ No newline at end of file
diff --git a/assets/js/2451.918970ce.js.LICENSE.txt b/assets/js/2451.918970ce.js.LICENSE.txt
new file mode 100644
index 00000000..7e6757bb
--- /dev/null
+++ b/assets/js/2451.918970ce.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/2706.ad6cb2ab.js b/assets/js/2706.ad6cb2ab.js
new file mode 100644
index 00000000..4d8c692f
--- /dev/null
+++ b/assets/js/2706.ad6cb2ab.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2706],{42706(e,r,s){s.d(r,{diagram:()=>i});var a=s(75182),t=(s(90193),s(59461),s(87044),s(33865),s(20656),s(31254),s(47538),s(49281),s(39895),s(85030),s(53486),s(85459),s(34417)),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/299aa024.44e25d7a.js b/assets/js/299aa024.44e25d7a.js
new file mode 100644
index 00000000..70522bd7
--- /dev/null
+++ b/assets/js/299aa024.44e25d7a.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4807],{32728(e,n,t){t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>d,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"id":"quickstart/guide","title":"Guide","description":"Compatibility Information","source":"@site/docs/quickstart/guide.md","sourceDirName":"quickstart","slug":"/quickstart/guide","permalink":"/docs/quickstart/guide","draft":false,"unlisted":false,"editUrl": [...]
\ No newline at end of file
diff --git a/assets/js/2c1e9c28.504d7c1f.js b/assets/js/2c1e9c28.504d7c1f.js
new file mode 100644
index 00000000..167a0797
--- /dev/null
+++ b/assets/js/2c1e9c28.504d7c1f.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8274],{8215(e,t,i){i.r(t),i.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>m,frontMatter:()=>r,metadata:()=>a,toc:()=>c});const a=JSON.parse('{"id":"sheet/write/image","title":"Image","description":"This chapter introduces how to export files containing images.","source":"@site/docs/sheet/write/image.md","sourceDirName":"sheet/write","slug":"/sheet/write/image","permalink":"/docs/sheet/write/image", [...]
\ No newline at end of file
diff --git a/assets/js/3308.7ed0b814.js b/assets/js/3308.7ed0b814.js
new file mode 100644
index 00000000..79d6193b
--- /dev/null
+++ b/assets/js/3308.7ed0b814.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3308],{13308(t,e,a){a.d(e,{diagram:()=>vt});var r=a(49727),s=a(41089),i=a(32782),n=a(53486),o=a(85459),c=a(34417),l=a(7012),h=a(41407),d=function(){var t=(0,c.K2)(function(t,e,a,r){for(a=a||{},r=t.length;r--;a[t[r]]=e);return a},"o"),e=[1,2],a=[1,3],r=[1,4],s=[2,4],i=[1,9],n=[1,11],o=[1,13],l=[1,14],h=[1,16],d=[1,17],p=[1,18],g=[1,24],u=[1,25],x=[1,26],y=[1,27],m=[1,28],b=[1,29],T=[1,30],f=[1,31],E=[1 [...]
\ No newline at end of file
diff --git a/assets/js/3346.1d00631c.js b/assets/js/3346.1d00631c.js
new file mode 100644
index 00000000..953e41d3
--- /dev/null
+++ b/assets/js/3346.1d00631c.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3346],{9993(t,e,r){r.d(e,{A:()=>Z});var s=r(6874),n=r(37649),i=r(65187),o=r(27487),a=r(6926);const c=function(t,e){return t&&(0,o.A)(e,(0,a.A)(e),t)};var h=r(47791);const u=function(t,e){return t&&(0,o.A)(e,(0,h.A)(e),t)};var d=r(34730),l=r(88031),_=r(26744);const A=function(t,e){return(0,o.A)(t,(0,_.A)(t),e)};var b=r(68448),p=r(17999),f=r(28145);const v=Object.getOwnPropertySymbols?function(t){for(va [...]
\ No newline at end of file
diff --git a/assets/js/3399376c.6e6df21b.js b/assets/js/3399376c.6e6df21b.js
new file mode 100644
index 00000000..792c1acf
--- /dev/null
+++ b/assets/js/3399376c.6e6df21b.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2712],{16464(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":"Reading","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.e133ce0d.js b/assets/js/34338452.e133ce0d.js
new file mode 100644
index 00000000..68444717
--- /dev/null
+++ b/assets/js/34338452.e133ce0d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7145],{6500(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":"This chapter introduces how to use Fesod to perform simple spreadsheet writing operations.","source":"@site/docs/sheet/write/simple.md","sourceDirName":"sheet/write","slug":"/sheet/write/simple","perma [...]
\ No newline at end of file
diff --git a/assets/js/35aaf8c2.e2f9fa99.js b/assets/js/35aaf8c2.e2f9fa99.js
new file mode 100644
index 00000000..25287f0c
--- /dev/null
+++ b/assets/js/35aaf8c2.e2f9fa99.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9076],{56610(e,t,n){n.d(t,{R:()=>l,x:()=>o});var s=n(57140);const i={},r=s.createContext(i);function l(e){const t=s.useContext(r);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),s.createElement(r.Provider,{value:t},e.children)}},98696(e,t,n [...]
\ 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/3725.7db046ed.js b/assets/js/3725.7db046ed.js
new file mode 100644
index 00000000..388e3dee
--- /dev/null
+++ b/assets/js/3725.7db046ed.js
@@ -0,0 +1 @@
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3725],{22318(t){var e;e=function(){return function(t){var e={};function i(n){if(e[n])return e[n].exports;var r=e[n]={i:n,l:!1,exports:{}};return t[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=t,i.c=e,i.i=function(t){return t},i.d=function(t,e,n){i.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:n})},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){r [...]
\ No newline at end of file
diff --git a/assets/js/3767.19ed1c98.js b/assets/js/3767.19ed1c98.js
new file mode 100644
index 00000000..dc92d2f6
--- /dev/null
+++ b/assets/js/3767.19ed1c98.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3767],{3767(t,e,n){n.d(e,{diagram:()=>Y});var i=n(85459),s=n(34417),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/3899.735e5d49.js b/assets/js/3899.735e5d49.js
new file mode 100644
index 00000000..e392ae4e
--- /dev/null
+++ b/assets/js/3899.735e5d49.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3899],{93899(e,s,a){a.d(s,{createTreemapServices:()=>b.d});var b=a(4659);a(89932)}}]);
\ 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.d5dc1af7.js b/assets/js/3cb2f586.d5dc1af7.js
new file mode 100644
index 00000000..387e6f71
--- /dev/null
+++ b/assets/js/3cb2f586.d5dc1af7.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3364],{56610(e,n,t){t.d(n,{R:()=>i,x:()=>l});var r=t(57140);const s={},d=r.createContext(s);function i(e){const n=r.useContext(d);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),r.createElement(d.Provider,{value:n},e.children)}},97926(e,n,t [...]
\ No newline at end of file
diff --git a/assets/js/3ff09b31.87cd3291.js b/assets/js/3ff09b31.87cd3291.js
new file mode 100644
index 00000000..d82fd70a
--- /dev/null
+++ b/assets/js/3ff09b31.87cd3291.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5247],{26076(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":"This chapter introduces how to use Fesod to read custom CSV files.","source":"@site/docs/sheet/read/csv.md","sourceDirName":"sheet/read","slug":"/sheet/read/csv","permalink":"/docs/sheet/read/csv","draft":fa [...]
\ No newline at end of file
diff --git a/assets/js/4167.b59abf84.js b/assets/js/4167.b59abf84.js
new file mode 100644
index 00000000..7508e981
--- /dev/null
+++ b/assets/js/4167.b59abf84.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4167],{34167(t,i,e){e.d(i,{diagram:()=>it});var s=e(88866),a=e(85030),n=e(53486),h=e(85459),o=e(34417),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/4359.4f52bbac.js b/assets/js/4359.4f52bbac.js
new file mode 100644
index 00000000..7227d540
--- /dev/null
+++ b/assets/js/4359.4f52bbac.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4359],{59461(t,e,n){n.d(e,{A:()=>r});var i=n(34417),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")},84359(t,e,n){n.d(e,{diagram:()=>D});var i=n(59461),s=n(87044),r=n(33865),o=(n(20656),n(31254),n(47538),n(49281),n(39895),n(85030),n(53486),n(85459)),a [...]
\ No newline at end of file
diff --git a/assets/js/4383cab8.e0c0e1b1.js b/assets/js/4383cab8.e0c0e1b1.js
new file mode 100644
index 00000000..899e8246
--- /dev/null
+++ b/assets/js/4383cab8.e0c0e1b1.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6405],{29701(e,n,t){t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>c,default:()=>h,frontMatter:()=>r,metadata:()=>o,toc:()=>a});const o=JSON.parse('{"id":"contribution/contribute-code","title":"Code Contribution","description":"This section explains how to build project from source code and also describe how to contribute code.","source":"@site/community/contribution/contribute-code.md","sourceDirName":" [...]
\ No newline at end of file
diff --git a/assets/js/4390.acadbd72.js b/assets/js/4390.acadbd72.js
new file mode 100644
index 00000000..a1cb8ab4
--- /dev/null
+++ b/assets/js/4390.acadbd72.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4390],{34390(e,r,t){t.d(r,{diagram:()=>i});var a=t(40764),s=(t(59461),t(87044),t(33865),t(20656),t(31254),t(47538),t(49281),t(39895),t(85030),t(53486),t(85459),t(34417)),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/4413.d7894937.js b/assets/js/4413.d7894937.js
new file mode 100644
index 00000000..dd6328bc
--- /dev/null
+++ b/assets/js/4413.d7894937.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4413],{14413(e,a,r){r.d(a,{diagram:()=>p});var t=r(21420),s=r(88866),n=r(85459),i=r(34417),d=r(96961),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/4453.a5e03112.js b/assets/js/4453.a5e03112.js
new file mode 100644
index 00000000..fe598078
--- /dev/null
+++ b/assets/js/4453.a5e03112.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4453],{14453(t,e,n){n.d(e,{diagram:()=>I});var i=n(88866),s=n(90193),r=n(41089),o=n(47538),a=(n(49281),n(39895),n(85030),n(53486),n(85459)),c=n(34417),l=n(13212),h=n(58480),g=n(81896),u=function(){var t=(0,c.K2)(function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},"o"),e=[1,4],n=[1,13],i=[1,12],s=[1,15],r=[1,16],o=[1,20],a=[1,19],l=[6,7,8],h=[1,26],g=[1,24],u=[1,25],d=[6,7,11],p=[1,31],y= [...]
\ No newline at end of file
diff --git a/assets/js/4632.789b7a38.js b/assets/js/4632.789b7a38.js
new file mode 100644
index 00000000..bc3d3e2c
--- /dev/null
+++ b/assets/js/4632.789b7a38.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4632],{14632(t,e,r){r.d(e,{diagram:()=>we});var a=r(90193),s=r(31254),i=r(49281),n=r(85030),o=r(53486),l=r(85459),c=r(34417),d=r(29141),h=r(30941),g=r(80124),y=r(7012),u=r(34654),p=function(){var t=(0,c.K2)(function(t,e,r,a){for(r=r||{},a=t.length;a--;r[t[a]]=e);return r},"o"),e=[1,15],r=[1,7],a=[1,13],s=[1,14],i=[1,19],n=[1,16],o=[1,17],l=[1,18],d=[8,30],h=[8,10,21,28,29,30,31,39,43,46],g=[1,23],y=[1 [...]
\ No newline at end of file
diff --git a/assets/js/483.d60b17af.js b/assets/js/483.d60b17af.js
new file mode 100644
index 00000000..df487217
--- /dev/null
+++ b/assets/js/483.d60b17af.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[483],{69763(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(34417).K2)(r,"populateCommonDb")},70483(t,e,a){a.d(e,{diagram:()=>m});var r=a(88866),i=a(69763),s=a(53486),o=a(85459),n=a(34417),l=a(96961),c=o.UI.packet,d=class{constructor(){this.packet=[],this.setAccTitle=o.SV,this.getAc [...]
\ No newline at end of file
diff --git a/assets/js/4860.84e1296c.js b/assets/js/4860.84e1296c.js
new file mode 100644
index 00000000..d88205c3
--- /dev/null
+++ b/assets/js/4860.84e1296c.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4860],{64860(e,s,a){a.d(s,{createInfoServices:()=>b.v});var b=a(42179);a(89932)}}]);
\ No newline at end of file
diff --git a/assets/js/4885.1bf14774.js b/assets/js/4885.1bf14774.js
new file mode 100644
index 00000000..445030fe
--- /dev/null
+++ b/assets/js/4885.1bf14774.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4885],{735(e,n,r){r.d(n,{A:()=>o});var t=r(47498);const o=function(e,n,r){for(var o=-1,i=e.length;++o<i;){var u=e[o],a=n(u);if(null!=a&&(void 0===c?a==a&&!(0,t.A)(a):r(a,c)))var c=a,d=u}return d}},7458(e,n,r){r.d(n,{A:()=>o});var t=r(1156);const o=function(e){return(null==e?0:e.length)?(0,t.A)(e,1):[]}},54885(e,n,r){r.d(n,{Zp:()=>dr});var t=r(28618),o=r(28558),i=0;const u=function(e){var n=++i;return( [...]
\ No newline at end of file
diff --git a/assets/js/498dc5b3.0992e829.js b/assets/js/498dc5b3.0992e829.js
new file mode 100644
index 00000000..f3a43bdf
--- /dev/null
+++ b/assets/js/498dc5b3.0992e829.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9051],{56610(e,n,s){s.d(n,{R:()=>i,x:()=>o});var a=s(57140);const t={},r=a.createContext(t);function i(e){const n=a.useContext(r);return a.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),a.createElement(r.Provider,{value:n},e.children)}},77377(e,n,s [...]
\ No newline at end of file
diff --git a/assets/js/4a783ec1.eede30b7.js b/assets/js/4a783ec1.eede30b7.js
new file mode 100644
index 00000000..69959ea1
--- /dev/null
+++ b/assets/js/4a783ec1.eede30b7.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1047],{34355(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":"This document mainly introduces how a PPMC member nominates a new committer.","source":"@site/community/pmc/nominate-committer.md","sourceDirName":"pmc","slug":"/pmc/nominate-committer [...]
\ No newline at end of file
diff --git a/assets/js/5168.a04df29a.js b/assets/js/5168.a04df29a.js
new file mode 100644
index 00000000..e590c493
--- /dev/null
+++ b/assets/js/5168.a04df29a.js
@@ -0,0 +1 @@
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5168],{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/5179.0f56cb1b.js b/assets/js/5179.0f56cb1b.js
new file mode 100644
index 00000000..8a7bfd04
--- /dev/null
+++ b/assets/js/5179.0f56cb1b.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5179],{32782(t,r,e){e.d(r,{m:()=>o});var n=e(34417),o=class{constructor(t){this.init=t,this.records=this.init()}static{(0,n.K2)(this,"ImperativeState")}reset(){this.records=this.init()}}},45179(t,r,e){e.d(r,{diagram:()=>ut});var n=e(69763),o=e(32782),a=e(53486),c=e(85459),s=e(34417),i=e(96961),h=e(7012),d={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},m=c.UI.gitGraph,$=(0,s.K2)(()=>(0,a.$t)({. [...]
\ No newline at end of file
diff --git a/assets/js/5182.e1a974b3.js b/assets/js/5182.e1a974b3.js
new file mode 100644
index 00000000..9402f487
--- /dev/null
+++ b/assets/js/5182.e1a974b3.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5182],{59461(t,e,s){s.d(e,{A:()=>a});var i=s(34417),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")},75182(t,e,s){s.d(e,{Lh:()=>T,NM:()=>m,_$:()=>d,tM:()=>b});var i=s(90193),n=s(59461),a=s(87044),r=s(33865),u=s(53486),l=s(85459),o=s(34417),c=s(7012),h [...]
\ No newline at end of file
diff --git a/assets/js/54d6a969.08ac175d.js b/assets/js/54d6a969.08ac175d.js
new file mode 100644
index 00000000..290416d3
--- /dev/null
+++ b/assets/js/54d6a969.08ac175d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4699],{2156(e,n,s){s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>d});const i=JSON.parse('{"id":"sheet/help/faq","title":"FAQ","description":"This section describes common issues that may arise when using this project.","source":"@site/docs/sheet/help/faq.md","sourceDirName":"sheet/help","slug":"/sheet/help/faq","permalink":"/docs/sheet/help/faq"," [...]
\ No newline at end of file
diff --git a/assets/js/5742f295.e2c61ded.js b/assets/js/5742f295.e2c61ded.js
new file mode 100644
index 00000000..3dd3f552
--- /dev/null
+++ b/assets/js/5742f295.e2c61ded.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3991],{56610(e,a,n){n.d(a,{R:()=>i,x:()=>s});var d=n(57140);const t={},r=d.createContext(t);function i(e){const a=d.useContext(r);return d.useMemo(function(){return"function"==typeof e?e(a):{...a,...e}},[a,e])}function s(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),d.createElement(r.Provider,{value:a},e.children)}},88587(e,a,n [...]
\ No newline at end of file
diff --git a/assets/js/5771c448.85bc11e1.js b/assets/js/5771c448.85bc11e1.js
new file mode 100644
index 00000000..322fdec5
--- /dev/null
+++ b/assets/js/5771c448.85bc11e1.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5274],{52923(e,i,t){t.r(i),t.d(i,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>n,toc:()=>d});const n=JSON.parse('{"id":"security","title":"Security","description":"The Apache Software Foundation takes a rigorous stance on eliminating security issues in its software projects. Likewise, Apache Fesod (Incubating) is also vigilant and takes security issues related to its fe [...]
\ No newline at end of file
diff --git a/assets/js/57b9d056.ad122e76.js b/assets/js/57b9d056.ad122e76.js
new file mode 100644
index 00000000..742d9fbb
--- /dev/null
+++ b/assets/js/57b9d056.ad122e76.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8529],{56610(e,n,t){t.d(n,{R:()=>s,x:()=>d});var i=t(57140);const a={},r=i.createContext(a);function s(e){const n=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),i.createElement(r.Provider,{value:n},e.children)}},97677(e,n,t [...]
\ No newline at end of file
diff --git a/assets/js/5820.45fb341a.js b/assets/js/5820.45fb341a.js
new file mode 100644
index 00000000..fd78ece7
--- /dev/null
+++ b/assets/js/5820.45fb341a.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5820],{5820(e,s,c){c.d(s,{createArchitectureServices:()=>i.S});var i=c(83738);c(89932)}}]);
\ No newline at end of file
diff --git a/assets/js/5dfaa6dd.88f75b37.js b/assets/js/5dfaa6dd.88f75b37.js
new file mode 100644
index 00000000..f585ead9
--- /dev/null
+++ b/assets/js/5dfaa6dd.88f75b37.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9282],{34616(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":"This chapter introduces how to read data by configuring POJO classes.","source":"@site/docs/sheet/read/pojo.md","sourceDirName":"sheet/read","slug":"/sheet/read/pojo","permalink":"/docs/sheet/read/pojo","d [...]
\ No newline at end of file
diff --git a/assets/js/5e95c892.9dfbf0d1.js b/assets/js/5e95c892.9dfbf0d1.js
new file mode 100644
index 00000000..472563c2
--- /dev/null
+++ b/assets/js/5e95c892.9dfbf0d1.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9647],{6298(e,s,r){r.r(s),r.d(s,{default:()=>h});r(57140);var a=r(13526),t=r(7228),u=r(72959),c=r(18713),i=r(5856),l=r(35656);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/6143.1a358e0a.js b/assets/js/6143.1a358e0a.js
new file mode 100644
index 00000000..be4bea6d
--- /dev/null
+++ b/assets/js/6143.1a358e0a.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6143],{66143(e,t,r){r.d(t,{default:()=>rn});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/621db11d.4eda1efc.js b/assets/js/621db11d.4eda1efc.js
new file mode 100644
index 00000000..a4f1276e
--- /dev/null
+++ b/assets/js/621db11d.4eda1efc.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4212],{21926(t,s,e){e.d(s,{ZD:()=>u,uz:()=>l});e(57140);var a=e(80431),o=e(96550);e(35656);function r(){const{selectMessage:t}=(0,o.W)();return s=>t(s,(0,a.T)({id:"theme.blog.post.plurals",description:'Pluralized label for "{count} posts". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)', [...]
\ No newline at end of file
diff --git a/assets/js/6270108c.62bd3e0d.js b/assets/js/6270108c.62bd3e0d.js
new file mode 100644
index 00000000..43023d49
--- /dev/null
+++ b/assets/js/6270108c.62bd3e0d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1830],{2411(A,e,g){g.d(e,{A:()=>i});const i="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfcAAACICAYAAAD6dqKHAAAABWZkRUNSJJPjAOWrYpkAACNGSURBVHgB5cRjtCVn2oDh+3mravPY57RtxLYzM0kGydi2bdu2EYxi22bbPH2szap6n2/Vj7PWXr06mWimZ773x3Xxohe/TF3mMpf9u7zoJS9Tl7nMVS96ycvVZf+tDIDLXOYyl7nMZS5zkQFwmctc9u+AAIDLXOYiEABc9t/K2LDMf9Lpp5yIDcu47ImcfsqJ2LCMy/6TTj/lRGxY5tlgq2Vc9v/R6SefiK2WcdkTsdUS/ymnn3wCtlrCZU/k9JNPwFZLTDIA/ [...]
\ No newline at end of file
diff --git a/assets/js/6340.7e29156d.js b/assets/js/6340.7e29156d.js
new file mode 100644
index 00000000..f14d861e
--- /dev/null
+++ b/assets/js/6340.7e29156d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6340],{96340(t,n,e){e.d(n,{diagram:()=>ct});var i=e(85459),s=e(34417),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  [...]
\ No newline at end of file
diff --git a/assets/js/6376.1224ed14.js b/assets/js/6376.1224ed14.js
new file mode 100644
index 00000000..47248803
--- /dev/null
+++ b/assets/js/6376.1224ed14.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6376],{6376(t,e,i){i.d(e,{diagram:()=>f});var s=i(59461),n=i(87044),r=i(33865),a=(i(20656),i(31254),i(47538),i(49281),i(39895),i(85030),i(53486)),c=i(85459),o=i(34417),l=i(7012),h=i(30941),u=i(80124),y=function(){var t=(0,o.K2)(function(t,e,i,s){for(i=i||{},s=t.length;s--;i[t[s]]=e);return i},"o"),e=[6,8,10,22,24,26,28,33,34,35,36,37,40,43,44,50],i=[1,10],s=[1,11],n=[1,12],r=[1,13],a=[1,20],c=[1,21],l [...]
\ 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.439b5caa.js b/assets/js/64ca138b.439b5caa.js
new file mode 100644
index 00000000..aa636725
--- /dev/null
+++ b/assets/js/64ca138b.439b5caa.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3451],{2971(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/assets/js/654.218e21d7.js b/assets/js/654.218e21d7.js
new file mode 100644
index 00000000..dda346f9
--- /dev/null
+++ b/assets/js/654.218e21d7.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[654],{60654(e,a,s){s.d(a,{createRadarServices:()=>b.f});var b=s(37884);s(89932)}}]);
\ No newline at end of file
diff --git a/assets/js/6603.a0b87fa9.js b/assets/js/6603.a0b87fa9.js
new file mode 100644
index 00000000..dff72aad
--- /dev/null
+++ b/assets/js/6603.a0b87fa9.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6603],{36603(e,r,s){s.d(r,{diagram:()=>i});var a=s(75182),t=(s(90193),s(59461),s(87044),s(33865),s(20656),s(31254),s(47538),s(49281),s(39895),s(85030),s(53486),s(85459),s(34417)),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/66e7b107.d7068ca8.js b/assets/js/66e7b107.d7068ca8.js
new file mode 100644
index 00000000..5548ddbc
--- /dev/null
+++ b/assets/js/66e7b107.d7068ca8.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1795],{56610(e,s,n){n.d(s,{R:()=>r,x:()=>a});var i=n(57140);const t={},o=i.createContext(t);function r(e){const s=i.useContext(o);return i.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),i.createElement(o.Provider,{value:s},e.children)}},62660(e,s,n [...]
\ No newline at end of file
diff --git a/assets/js/6761.9403c842.js b/assets/js/6761.9403c842.js
new file mode 100644
index 00000000..3d10781b
--- /dev/null
+++ b/assets/js/6761.9403c842.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6761],{6761(e,t,a){a.d(t,{diagram:()=>v});var l=a(88866),s=a(87044),r=a(39895),n=a(69763),i=a(53486),o=a(85459),c=a(34417),d=a(96961),p=a(7012),h=class{constructor(){this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.setAccTitle=o.SV,this.getAccTitle=o.iN,this.setDiagramTitle=o.ke,this.getDiagramTitle=o.ab,this.getAccDescription=o.m7,this.setAccDescription=o.EI}static{(0,c. [...]
\ No newline at end of file
diff --git a/assets/js/6873.9beaa798.js b/assets/js/6873.9beaa798.js
new file mode 100644
index 00000000..1657f945
--- /dev/null
+++ b/assets/js/6873.9beaa798.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6873],{46873(t,e,a){a.d(e,{diagram:()=>Pt});var n=a(49727),i=a(53486),r=a(85459),s=a(34417),l=a(7012),o=a(41407),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/6875c492.fcdbaf31.js b/assets/js/6875c492.fcdbaf31.js
new file mode 100644
index 00000000..f45fee90
--- /dev/null
+++ b/assets/js/6875c492.fcdbaf31.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4813],{1509(e,t,s){s.d(t,{A:()=>r});s(57140);var n=s(5733),a=s(88570),i=s(35656);function r({items:e,component:t=a.A}){return(0,i.jsx)(i.Fragment,{children:e.map(({content:e})=>(0,i.jsx)(n.in,{content:e,children:(0,i.jsx)(t,{children:(0,i.jsx)(e,{})})},e.metadata.permalink))})}},21926(e,t,s){s.d(t,{ZD:()=>r,uz:()=>l});s(57140);var n=s(80431),a=s(96550);s(35656);function i(){const{selectMessage:e}=(0,a [...]
\ No newline at end of file
diff --git a/assets/js/6961.cddc7e61.js b/assets/js/6961.cddc7e61.js
new file mode 100644
index 00000000..e0ff8994
--- /dev/null
+++ b/assets/js/6961.cddc7e61.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6961],{406(e,t){let n;function r(){if(void 0===n)throw new Error("No runtime abstraction layer installed");return n}Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.install=function(e){if(void 0===e)throw new Error("No runtime abstraction layer provided");n=e}}(r||(r={})),t.default=r},735(e,t,n){n.d(t,{A:()=>i});var r=n(47498);const i=function(e,t,n){for(var i=-1,s=e.length;++i<s;){var a [...]
\ No newline at end of file
diff --git a/assets/js/7039.abab4d73.js b/assets/js/7039.abab4d73.js
new file mode 100644
index 00000000..1c85b5f0
--- /dev/null
+++ b/assets/js/7039.abab4d73.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7039],{47039(e,s,a){a.d(s,{createGitGraphServices:()=>b.b});var b=a(92381);a(89932)}}]);
\ No newline at end of file
diff --git a/assets/js/7204.0c6d9d17.js b/assets/js/7204.0c6d9d17.js
new file mode 100644
index 00000000..64f07df1
--- /dev/null
+++ b/assets/js/7204.0c6d9d17.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7204],{67204(t,e,a){a.d(e,{diagram:()=>z});var r=a(88866),n=a(69763),i=a(53486),s=a(85459),o=a(34417),l=a(96961),c={showLegend:!0,ticks:5,max:null,min:0,graticule:"circle"},d={axes:[],curves:[],options:c},g=structuredClone(d),h=s.UI.radar,u=(0,o.K2)(()=>(0,i.$t)({...h,...(0,s.zj)().radar}),"getConfig"),p=(0,o.K2)(()=>g.axes,"getAxes"),x=(0,o.K2)(()=>g.curves,"getCurves"),m=(0,o.K2)(()=>g.options,"getO [...]
\ No newline at end of file
diff --git a/assets/js/7616.d0fe4958.js b/assets/js/7616.d0fe4958.js
new file mode 100644
index 00000000..509478da
--- /dev/null
+++ b/assets/js/7616.d0fe4958.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7616],{37616(e,t,a){a.d(t,{diagram:()=>C});var i=a(88866),l=a(69763),n=a(53486),r=a(85459),s=a(34417),o=a(96961),c=a(7012),p=r.UI.pie,d={sections:new Map,showData:!1,config:p},u=d.sections,g=d.showData,h=structuredClone(p),f=(0,s.K2)(()=>structuredClone(h),"getConfig"),m=(0,s.K2)(()=>{u=new Map,g=d.showData,(0,r.IU)()},"clear"),w=(0,s.K2)(({label:e,value:t})=>{if(t<0)throw new Error(`"${e}" has invali [...]
\ No newline at end of file
diff --git a/assets/js/764.2e49bd34.js b/assets/js/764.2e49bd34.js
new file mode 100644
index 00000000..f852caaf
--- /dev/null
+++ b/assets/js/764.2e49bd34.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[764],{40764(t,e,s){s.d(e,{Zk:()=>h,q7:()=>B,tM:()=>ot,u4:()=>rt});var i=s(59461),n=s(87044),r=s(33865),o=s(53486),a=s(85459),c=s(34417),l=function(){var t=(0,c.K2)(function(t,e,s,i){for(s=s||{},i=t.length;i--;s[t[i]]=e);return s},"o"),e=[1,2],s=[1,3],i=[1,4],n=[2,4],r=[1,9],o=[1,11],a=[1,16],l=[1,17],h=[1,18],d=[1,19],u=[1,33],p=[1,20],y=[1,21],g=[1,22],m=[1,23],f=[1,24],S=[1,26],b=[1,27],k=[1,28],_=[ [...]
\ No newline at end of file
diff --git a/assets/js/7666.ee0cc5af.js b/assets/js/7666.ee0cc5af.js
new file mode 100644
index 00000000..01dd11bd
--- /dev/null
+++ b/assets/js/7666.ee0cc5af.js
@@ -0,0 +1,2 @@
+/*! For license information please see 7666.ee0cc5af.js.LICENSE.txt */
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7666],{921(t,e,r){"use strict";r.d(e,{A:()=>s});var i=r(83448),n="object"==typeof exports&&exports&&!exports.nodeType&&exports,a=n&&"object"==typeof module&&module&&!module.nodeType&&module,o=a&&a.exports===n&&i.A.process;const s=function(){try{var t=a&&a.require&&a.require("util").types;return t||o&&o.binding&&o.binding("util")}catch(e){}}()},1272(t,e,r){"use strict";r.d(e,{A:()=>a});var i=r(92751);function n(t,e [...]
\ No newline at end of file
diff --git a/assets/js/7666.ee0cc5af.js.LICENSE.txt b/assets/js/7666.ee0cc5af.js.LICENSE.txt
new file mode 100644
index 00000000..2d1bc565
--- /dev/null
+++ b/assets/js/7666.ee0cc5af.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/770.20146c3f.js b/assets/js/770.20146c3f.js
new file mode 100644
index 00000000..173d92e8
--- /dev/null
+++ b/assets/js/770.20146c3f.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[770],{5733(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(57140),n=s(65809),i=s(91365),r=s(35656);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:e [...]
\ No newline at end of file
diff --git a/assets/js/7876.7a02153a.js b/assets/js/7876.7a02153a.js
new file mode 100644
index 00000000..8be1889a
--- /dev/null
+++ b/assets/js/7876.7a02153a.js
@@ -0,0 +1 @@
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7876],{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/8071.fd9f1544.js b/assets/js/8071.fd9f1544.js
new file mode 100644
index 00000000..fcccc0ab
--- /dev/null
+++ b/assets/js/8071.fd9f1544.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8071],{68071(t,e,i){i.d(e,{diagram:()=>I});var a=i(85459),n=i(34417),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/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/83b4fe73.6f113875.js b/assets/js/83b4fe73.6f113875.js
new file mode 100644
index 00000000..177bb0b3
--- /dev/null
+++ b/assets/js/83b4fe73.6f113875.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2519],{4806(e,n,i){i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>c,default:()=>d,frontMatter:()=>s,metadata:()=>t,toc:()=>m});const t=JSON.parse('{"id":"pmc/become-pmc-member","title":"Become A PPMC member","description":"Anyone being supportive of the community and working in any of the CoPDoC areas can become an Apache Fesod (Incubating) PPMC member. The CoPDoC is an acronym from ASF to describe how w [...]
\ No newline at end of file
diff --git a/assets/js/84450331.259b6eb9.js b/assets/js/84450331.259b6eb9.js
new file mode 100644
index 00000000..194a0313
--- /dev/null
+++ b/assets/js/84450331.259b6eb9.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2137],{56610(e,n,t){t.d(n,{R:()=>l,x:()=>o});var a=t(57140);const r={},i=a.createContext(r);function l(e){const n=a.useContext(i);return a.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:l(e.components),a.createElement(i.Provider,{value:n},e.children)}},67610(e,n,t [...]
\ No newline at end of file
diff --git a/assets/js/87165530.05e9bdab.js b/assets/js/87165530.05e9bdab.js
new file mode 100644
index 00000000..6a8ae1d0
--- /dev/null
+++ b/assets/js/87165530.05e9bdab.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8006],{30769(e,t,n){n.d(t,{A:()=>a});const a=n.p+"assets/images/customHandlerWrite-c05ff79257df5ba72a311793a6e9db60.png"},49304(e,t,n){n.d(t,{A:()=>a});const a=n.p+"assets/images/mergeWrite-976e024ef4e1613c6dab373937cc56ff.png"},56610(e,t,n){n.d(t,{R:()=>i,x:()=>s});var a=n(57140);const l={},r=a.createContext(l);function i(e){const t=a.useContext(r);return a.useMemo(function(){return"function"==typeof [...]
\ No newline at end of file
diff --git a/assets/js/8907.e9f01efb.js b/assets/js/8907.e9f01efb.js
new file mode 100644
index 00000000..8b64c57b
--- /dev/null
+++ b/assets/js/8907.e9f01efb.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8907],{68907(e,s,i){i.d(s,{createPieServices:()=>a.f});var a=i(76764);i(89932)}}]);
\ No newline at end of file
diff --git a/assets/js/8ccf8dfc.4f342e2d.js b/assets/js/8ccf8dfc.4f342e2d.js
new file mode 100644
index 00000000..3f728ea0
--- /dev/null
+++ b/assets/js/8ccf8dfc.4f342e2d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1506],{52087(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":"This chapter introduces how to use this project to perform simple spreadsheet reading operations.","source":"@site/docs/sheet/read/simple.md","sourceDirName":"sheet/read","slug":"/sheet/read/simple","p [...]
\ No newline at end of file
diff --git a/assets/js/903f555a.0e9dcc5e.js b/assets/js/903f555a.0e9dcc5e.js
new file mode 100644
index 00000000..3fa6e35c
--- /dev/null
+++ b/assets/js/903f555a.0e9dcc5e.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1155],{43535(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(35656),s=n(56610);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.92630058.js b/assets/js/908b89db.92630058.js
new file mode 100644
index 00000000..7d1752f1
--- /dev/null
+++ b/assets/js/908b89db.92630058.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9841],{56610(e,n,t){t.d(n,{R:()=>a,x:()=>r});var s=t(57140);const i={},d=s.createContext(i);function a(e){const n=s.useContext(d);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),s.createElement(d.Provider,{value:n},e.children)}},59428(e,n,t [...]
\ No newline at end of file
diff --git a/assets/js/9344.7e657d2d.js b/assets/js/9344.7e657d2d.js
new file mode 100644
index 00000000..44a1d076
--- /dev/null
+++ b/assets/js/9344.7e657d2d.js
@@ -0,0 +1 @@
+(()=>{"use strict";var e,r,t={39344(e,r,t){t.d(r,{BH:()=>n,Ho:()=>p,IH:()=>i,sx:()=>s});var o=t(36430),a=t.n(o);t(84946)(a()),t(71321).A(a()),t(42537)(a());const s=[],n=["zh","en"],i="search-index{dir}.json?_=264237b9",p=1}},o={};function a(e){var r=o[e];if(void 0!==r)return r.exports;var s=o[e]={exports:{}};return t[e].call(s.exports,s,s.exports,a),s.exports}a.m=t,a.x=()=>{var e=a.O(void 0,[2451],()=>a(83418));return e=a.O(e)},e=[],a.O=(r,t,o,s)=>{if(!t){var n=1/0;for(c=0;c<e.length;c++ [...]
\ No newline at end of file
diff --git a/assets/js/9569.a6887cc4.js b/assets/js/9569.a6887cc4.js
new file mode 100644
index 00000000..9016e14f
--- /dev/null
+++ b/assets/js/9569.a6887cc4.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9569],{1156(n,t,r){r.d(t,{A:()=>f});var e=r(68448),o=r(1793),u=r(22818),c=r(73665),i=o.A?o.A.isConcatSpreadable:void 0;const a=function(n){return(0,c.A)(n)||(0,u.A)(n)||!!(i&&n&&n[i])};const f=function n(t,r,o,u,c){var i=-1,f=t.length;for(o||(o=a),c||(c=[]);++i<f;){var s=t[i];r>0&&o(s)?r>1?n(s,r-1,o,u,c):(0,e.A)(c,s):u||(c[c.length]=s)}return c}},4465(n,t,r){r.d(t,{A:()=>u});var e=r(87054),o=r(6926);c [...]
\ No newline at end of file
diff --git a/assets/js/967.7303b75f.js b/assets/js/967.7303b75f.js
new file mode 100644
index 00000000..0ff71446
--- /dev/null
+++ b/assets/js/967.7303b75f.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[967],{10967(e,s,a){a.d(s,{createPacketServices:()=>b.$});var b=a(82012);a(89932)}}]);
\ No newline at end of file
diff --git a/assets/js/9748.5bce2a2a.js b/assets/js/9748.5bce2a2a.js
new file mode 100644
index 00000000..c74d7004
--- /dev/null
+++ b/assets/js/9748.5bce2a2a.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9748],{59461(e,t,s){s.d(t,{A:()=>r});var i=s(34417),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")},79748(e,t,s){s.d(t,{diagram:()=>E});var i=s(59461),n=s(87044),r=s(33865),a=(s(20656),s(31254),s(47538),s(49281),s(39895),s(85030),s(53486)),l=s(85459) [...]
\ No newline at end of file
diff --git a/assets/js/98b2b410.f4170412.js b/assets/js/98b2b410.f4170412.js
new file mode 100644
index 00000000..45bd72d0
--- /dev/null
+++ b/assets/js/98b2b410.f4170412.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6381],{24192(e,n,t){t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>v,frontMatter:()=>a,metadata:()=>r,toc:()=>l});const r=JSON.parse('{"id":"sheet/read/converter","title":"Converter","description":"Fesod supports date, number, and custom format conversions.","source":"@site/docs/sheet/read/converter.md","sourceDirName":"sheet/read","slug":"/sheet/read/converter","permalink":"/docs/sheet/rea [...]
\ No newline at end of file
diff --git a/assets/js/9951.2f90a075.js b/assets/js/9951.2f90a075.js
new file mode 100644
index 00000000..69bb877a
--- /dev/null
+++ b/assets/js/9951.2f90a075.js
@@ -0,0 +1,2 @@
+/*! For license information please see 9951.2f90a075.js.LICENSE.txt */
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9951],{7590(t,e,n){"use strict";var i=n(96627),s=n(93234);function r(t){t&&t.el||i.error("EventBus initialized without el"),this.$el=s.element(t.el)}i.mixin(r.prototype,{trigger:function(t,e,n,s){var r=i.Event("autocomplete:"+t);return this.$el.trigger(r,[e,n,s]),r}}),t.exports=r},24146(t){"use strict";var e={}.hasOwnProperty,n=/[ -,\.\/:-@\[-\^`\{-~]/,i=/[ -,\.\/:-@\[\]\^`\{-~]/,s=/(^|\\+)?(\\[A-F0-9]{1,6})\x20(? [...]
\ No newline at end of file
diff --git a/assets/js/9951.2f90a075.js.LICENSE.txt b/assets/js/9951.2f90a075.js.LICENSE.txt
new file mode 100644
index 00000000..4f7ccd8a
--- /dev/null
+++ b/assets/js/9951.2f90a075.js.LICENSE.txt
@@ -0,0 +1 @@
+/*! https://mths.be/cssesc v3.0.0 by @mathias */
diff --git a/assets/js/9b316f1b.11b0a998.js b/assets/js/9b316f1b.11b0a998.js
new file mode 100644
index 00000000..e514af8b
--- /dev/null
+++ b/assets/js/9b316f1b.11b0a998.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8755],{56610(e,t,i){i.d(t,{R:()=>s,x:()=>a});var r=i(57140);const n={},l=r.createContext(n);function s(e){const t=r.useContext(l);return r.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:s(e.components),r.createElement(l.Provider,{value:t},e.children)}},84702(e,t,i [...]
\ 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.cba3c088.js b/assets/js/9e4087bc.cba3c088.js
new file mode 100644
index 00000000..db9f338e
--- /dev/null
+++ b/assets/js/9e4087bc.cba3c088.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2711],{54606(e,a,r){r.r(a),r.d(a,{default:()=>m});r(57140);var t=r(85340),s=r(80431),n=r(72959),i=r(98649),c=r(5856),l=r(63320),o=r(35656);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.metadata [...]
\ No newline at end of file
diff --git a/assets/js/a0cc137d.e92dd17e.js b/assets/js/a0cc137d.e92dd17e.js
new file mode 100644
index 00000000..72e1988d
--- /dev/null
+++ b/assets/js/a0cc137d.e92dd17e.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6407],{34253(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(35656),s=n(56610);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.86a00359.js b/assets/js/a2915123.86a00359.js
new file mode 100644
index 00000000..43345f16
--- /dev/null
+++ b/assets/js/a2915123.86a00359.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8955],{56610(e,t,n){n.d(t,{R:()=>d,x:()=>o});var s=n(57140);const a={},r=s.createContext(a);function d(e){const t=s.useContext(r);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:d(e.components),s.createElement(r.Provider,{value:t},e.children)}},80552(e,t,n [...]
\ No newline at end of file
diff --git a/assets/js/a3e235df.3106707f.js b/assets/js/a3e235df.3106707f.js
new file mode 100644
index 00000000..1f000ff5
--- /dev/null
+++ b/assets/js/a3e235df.3106707f.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9120],{53629(e,n,t){t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>s,metadata:()=>i,toc:()=>a});const i=JSON.parse('{"id":"sheet/help/annotation","title":"Annotation","description":"This section describes how to read annotations provided in the project.","source":"@site/docs/sheet/help/annotation.md","sourceDirName":"sheet/help","slug":"/sheet/help/annotation","permalink": [...]
\ No newline at end of file
diff --git a/assets/js/a4b4544e.312d39a3.js b/assets/js/a4b4544e.312d39a3.js
new file mode 100644
index 00000000..3d90f3d3
--- /dev/null
+++ b/assets/js/a4b4544e.312d39a3.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2340],{56447(e,n,i){i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>c,default:()=>a,frontMatter:()=>s,metadata:()=>t,toc:()=>d});const t=JSON.parse('{"id":"contribution","title":"Contributor Guide","description":"Welcome every user and developer in the community to become contributors. Whether it\'s reporting issues, improving documentation, submitting code, or providing technical support, your participat [...]
\ No newline at end of file
diff --git a/assets/js/a6aa9e1f.bae5e4ee.js b/assets/js/a6aa9e1f.bae5e4ee.js
new file mode 100644
index 00000000..055bc702
--- /dev/null
+++ b/assets/js/a6aa9e1f.bae5e4ee.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7643],{1509(e,t,a){a.d(t,{A:()=>i});a(57140);var s=a(5733),n=a(88570),r=a(35656);function i({items:e,component:t=n.A}){return(0,r.jsx)(r.Fragment,{children:e.map(({content:e})=>(0,r.jsx)(s.in,{content:e,children:(0,r.jsx)(t,{children:(0,r.jsx)(e,{})})},e.metadata.permalink))})}},31768(e,t,a){a.d(t,{A:()=>i});a(57140);var s=a(80431),n=a(56105),r=a(35656);function i(e){const{metadata:t}=e,{previousPage: [...]
\ 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.1aa88fa4.js b/assets/js/a7bd4aaa.1aa88fa4.js
new file mode 100644
index 00000000..d1b080ae
--- /dev/null
+++ b/assets/js/a7bd4aaa.1aa88fa4.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7098],{41271(n,e,s){s.r(e),s.d(e,{default:()=>x});s(57140);var r=s(72959),o=s(84526),t=s(97264),i=s(18713),c=s(56148),a=s(35656);function l(n){const{version:e}=n;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(c.A,{version:e.version,tag:(0,t.k)(e.pluginId,e.version)}),(0,a.jsx)(r.be,{children:e.noIndex&&(0,a.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})]})}function u(n){const{version:e,r [...]
\ No newline at end of file
diff --git a/assets/js/a8dd066c.0e97ff22.js b/assets/js/a8dd066c.0e97ff22.js
new file mode 100644
index 00000000..3b24078e
--- /dev/null
+++ b/assets/js/a8dd066c.0e97ff22.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7587],{29504(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":"This chapter introduces how to write data by configuring POJO classes.","source":"@site/docs/sheet/write/pojo.md","sourceDirName":"sheet/write","slug":"/sheet/write/pojo","permalink":"/docs/sheet/write/po [...]
\ No newline at end of file
diff --git a/assets/js/a94703ab.95bca685.js b/assets/js/a94703ab.95bca685.js
new file mode 100644
index 00000000..cc6384bf
--- /dev/null
+++ b/assets/js/a94703ab.95bca685.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9048],{22460(e,t,n){n.d(t,{A:()=>l});n(57140);var a=n(13526),i=n(80431),s=n(63320),o=n(35656);function l({className:e}){return(0,o.jsx)("main",{className:(0,a.A)("container margin-vert--xl",e),children:(0,o.jsx)("div",{className:"row",children:(0,o.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,o.jsx)(s.A,{as:"h1",className:"hero__title",children:(0,o.jsx)(i.A,{id:"theme.NotFound.title [...]
\ 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.7b631f46.js b/assets/js/abce2868.7b631f46.js
new file mode 100644
index 00000000..5b778ffc
--- /dev/null
+++ b/assets/js/abce2868.7b631f46.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8586],{10506(e,i,t){t.r(i),t.d(i,{assets:()=>d,contentTitle:()=>l,default:()=>h,frontMatter:()=>a,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"sheet/write/head","title":"Head","description":"This chapter introduces how to write header data in spreadsheet.","source":"@site/docs/sheet/write/head.md","sourceDirName":"sheet/write","slug":"/sheet/write/head","permalink":"/docs/sheet/write/head","d [...]
\ 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.11c26316.js b/assets/js/ae338ae9.11c26316.js
new file mode 100644
index 00000000..83e3f84f
--- /dev/null
+++ b/assets/js/ae338ae9.11c26316.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8984],{56610(e,n,t){t.d(n,{R:()=>a,x:()=>l});var s=t(57140);const i={},r=s.createContext(i);function a(e){const n=s.useContext(r);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),s.createElement(r.Provider,{value:n},e.children)}},58607(e,n,t [...]
\ 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.22fe7837.js b/assets/js/c3aa4345.22fe7837.js
new file mode 100644
index 00000000..7614497a
--- /dev/null
+++ b/assets/js/c3aa4345.22fe7837.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7105],{56597(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":"This document contribution guide primarily explains how to modify and contribute to the documents.","source":"@site/community/contribution/contribute-doc.md","sourceDirName":"contr [...]
\ No newline at end of file
diff --git a/assets/js/c4f5d8e4.574e21fa.js b/assets/js/c4f5d8e4.574e21fa.js
new file mode 100644
index 00000000..30a87dea
--- /dev/null
+++ b/assets/js/c4f5d8e4.574e21fa.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2634],{4658(e,a,t){t.d(a,{A:()=>q});var l,r,n,c,h,i,f,m,d,s,o,g,E,p,x,w,M,v,R,b,u,P,Z,A,j=t(57140);function y(){return y=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},y.apply(null,arguments)}const q=({title:e,titleId:a,...t})=>j.createElement("svg",y({xmlns:"http://www.w3.org/200 [...]
\ No newline at end of file
diff --git a/assets/js/c639369e.c653d6a0.js b/assets/js/c639369e.c653d6a0.js
new file mode 100644
index 00000000..6c9246d8
--- /dev/null
+++ b/assets/js/c639369e.c653d6a0.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7637],{12333(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":"Fesod Sheet Examples","source":"@site/docs/quickstart/example.md","sourceDirName":"quickstart","slug":"/quickstart/simple-example","permalink":"/docs/quickstart/simple-example","draft": [...]
\ No newline at end of file
diff --git a/assets/js/c9de33a5.f82ee9cb.js b/assets/js/c9de33a5.f82ee9cb.js
new file mode 100644
index 00000000..a5f43c1c
--- /dev/null
+++ b/assets/js/c9de33a5.f82ee9cb.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3026],{56610(e,i,t){t.d(i,{R:()=>r,x:()=>c});var n=t(57140);const s={},o=n.createContext(s);function r(e){const i=n.useContext(o);return n.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function c(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),n.createElement(o.Provider,{value:i},e.children)}},73228(e,i,t [...]
\ No newline at end of file
diff --git a/assets/js/ccc49370.91b04aae.js b/assets/js/ccc49370.91b04aae.js
new file mode 100644
index 00000000..1e8a04c8
--- /dev/null
+++ b/assets/js/ccc49370.91b04aae.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3249],{34121(e,t,n){n.d(t,{AE:()=>o,Rc:()=>r,TT:()=>d,Uh:()=>l,Yh:()=>c});n(57140);var a=n(80431),s=n(83242),i=n(35656);function r(){return(0,i.jsx)(a.A,{id:"theme.contentVisibility.unlistedBanner.title",description:"The unlisted content banner title",children:"Unlisted page"})}function l(){return(0,i.jsx)(a.A,{id:"theme.contentVisibility.unlistedBanner.message",description:"The unlisted content banne [...]
\ No newline at end of file
diff --git a/assets/js/cfa642a3.4da77b19.js b/assets/js/cfa642a3.4da77b19.js
new file mode 100644
index 00000000..93365dc8
--- /dev/null
+++ b/assets/js/cfa642a3.4da77b19.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4823],{56610(e,i,t){t.d(i,{R:()=>r,x:()=>a});var n=t(57140);const o={},s=n.createContext(o);function r(e){const i=n.useContext(s);return n.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),n.createElement(s.Provider,{value:i},e.children)}},89298(e,i,t [...]
\ No newline at end of file
diff --git a/assets/js/d2436a2b.e299cbd9.js b/assets/js/d2436a2b.e299cbd9.js
new file mode 100644
index 00000000..604d7e8d
--- /dev/null
+++ b/assets/js/d2436a2b.e299cbd9.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":"community","unlisted":false},{"type":"link","href":"/community/maturity","label":"Maturity","docId":"matu [...]
\ No newline at end of file
diff --git a/assets/js/d5273c26.f1a5fa12.js b/assets/js/d5273c26.f1a5fa12.js
new file mode 100644
index 00000000..5d553853
--- /dev/null
+++ b/assets/js/d5273c26.f1a5fa12.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6717],{8616(M,N,D){D.d(N,{A:()=>j});const j=D.p+"assets/files/fesod-logo-e965e5189d96bd03fa69a35f3d899546.svg"},19338(M,N,D){D.d(N,{A:()=>j});const j=D.p+"assets/files/fesod-logo-icon-fe2b95b7518918c8494bba4f27944e16.svg"},22235(M,N,D){D.d(N,{A:()=>j});const j="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0 [...]
\ No newline at end of file
diff --git a/assets/js/d55aa8bb.fcf8a555.js b/assets/js/d55aa8bb.fcf8a555.js
new file mode 100644
index 00000000..825844b9
--- /dev/null
+++ b/assets/js/d55aa8bb.fcf8a555.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4599],{56610(e,n,i){i.d(n,{R:()=>a,x:()=>d});var t=i(57140);const r={},s=t.createContext(r);function a(e){const n=t.useContext(s);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),t.createElement(s.Provider,{value:n},e.children)}},59974(e,n,i [...]
\ No newline at end of file
diff --git a/assets/js/de3da009.1151d0c6.js b/assets/js/de3da009.1151d0c6.js
new file mode 100644
index 00000000..57e1aead
--- /dev/null
+++ b/assets/js/de3da009.1151d0c6.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[685],{35255(e,t,i){i.r(t),i.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>u,frontMatter:()=>s,metadata:()=>o,toc:()=>d});const o=JSON.parse('{"id":"contribution/code-review-guide","title":"Code Review Guidelines","description":"This guide is for all committers and contributors that want to help with reviewing code contributions. Thank you for your effort - good reviews are one of the most important [...]
\ 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.0fd4b7fb.js b/assets/js/e1dda140.0fd4b7fb.js
new file mode 100644
index 00000000..eaf46974
--- /dev/null
+++ b/assets/js/e1dda140.0fd4b7fb.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[235],{56610(e,t,n){n.d(t,{R:()=>o,x:()=>a});var r=n(57140);const i={},s=r.createContext(i);function o(e){const t=r.useContext(s);return r.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),r.createElement(s.Provider,{value:t},e.children)}},96801(e,t,n) [...]
\ No newline at end of file
diff --git a/assets/js/e2f5eafd.790b5289.js b/assets/js/e2f5eafd.790b5289.js
new file mode 100644
index 00000000..2b10ca31
--- /dev/null
+++ b/assets/js/e2f5eafd.790b5289.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9373],{56610(e,n,t){t.d(n,{R:()=>s,x:()=>o});var a=t(57140);const i={},r=a.createContext(i);function s(e){const n=a.useContext(r);return a.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),a.createElement(r.Provider,{value:n},e.children)}},64128(e,n,t [...]
\ No newline at end of file
diff --git a/assets/js/ea334bcf.c9bd049e.js b/assets/js/ea334bcf.c9bd049e.js
new file mode 100644
index 00000000..393a7406
--- /dev/null
+++ b/assets/js/ea334bcf.c9bd049e.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8258],{45231(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":"This chapter introduces how to handle exceptions.","source":"@site/docs/sheet/read/exception.md","sourceDirName":"sheet/read","slug":"/sheet/read/exception","permalink":"/docs/sheet/read/exceptio [...]
\ No newline at end of file
diff --git a/assets/js/edc931f8.1d1357fa.js b/assets/js/edc931f8.1d1357fa.js
new file mode 100644
index 00000000..4702b829
--- /dev/null
+++ b/assets/js/edc931f8.1d1357fa.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2526],{19987(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":"community","title":"Join Community","description":"Thank you very much for your interest in the Apache Fesod (Incubating). Every volunteer project obtains its strength from the people involved in it. We invite you to participate as much or as little as [...]
\ No newline at end of file
diff --git a/assets/js/ef8b811a.71f2d5cc.js b/assets/js/ef8b811a.71f2d5cc.js
new file mode 100644
index 00000000..7adefb6b
--- /dev/null
+++ b/assets/js/ef8b811a.71f2d5cc.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.36a9e034.js b/assets/js/f9e23376.36a9e034.js
new file mode 100644
index 00000000..8841c302
--- /dev/null
+++ b/assets/js/f9e23376.36a9e034.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2840],{2448(e,t,n){n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>d,frontMatter:()=>r,metadata:()=>s,toc:()=>h});const s=JSON.parse('{"id":"download","title":"Download","description":"Here is the Apache Fesod (Incubating) official download page. Please choose version to download from the following tables. It is recommended use the latest.","source":"@site/docs/download.md","sourceDirName":" [...]
\ No newline at end of file
diff --git a/assets/js/fae1940b.3c6b40b4.js b/assets/js/fae1940b.3c6b40b4.js
new file mode 100644
index 00000000..bb1ebba6
--- /dev/null
+++ b/assets/js/fae1940b.3c6b40b4.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1239],{4480(e,n,i){i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>c,default:()=>m,frontMatter:()=>r,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"committer/become-committer","title":"Become A Committer","description":"Anyone being supportive of the community and working in any of the CoPDoC areas can become an Apache Fesod (Incubating) committer. The CoPDoC is an acronym from ASF to describe how  [...]
\ No newline at end of file
diff --git a/assets/js/fe9a19b4.aac44e56.js b/assets/js/fe9a19b4.aac44e56.js
new file mode 100644
index 00000000..1af749d3
--- /dev/null
+++ b/assets/js/fe9a19b4.aac44e56.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7698],{24200(e,t,r){r.d(t,{A:()=>n});const n=r.p+"assets/images/converterWrite-3246357a06c3ba04afb519b820c19bb2.png"},29367(e,t,r){r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>m,frontMatter:()=>s,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"sheet/write/format","title":"Format","description":"This chapter introduces data formatting when writing data.","source":"@site/docs/sheet/wr [...]
\ No newline at end of file
diff --git a/assets/js/ff3732e9.1af57cfa.js b/assets/js/ff3732e9.1af57cfa.js
new file mode 100644
index 00000000..96a926b5
--- /dev/null
+++ b/assets/js/ff3732e9.1af57cfa.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[820],{15282(e,t,n){n.d(t,{A:()=>l});const l=n.p+"assets/images/widthAndHeightWrite-77c049fb68d1ac806c1ba21e82c45f45.png"},56610(e,t,n){n.d(t,{R:()=>o,x:()=>s});var l=n(57140);const i={},r=l.createContext(i);function o(e){const t=l.useContext(r);return l.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.compon [...]
\ No newline at end of file
diff --git a/assets/js/main.93c1d237.js b/assets/js/main.93c1d237.js
new file mode 100644
index 00000000..51a02587
--- /dev/null
+++ b/assets/js/main.93c1d237.js
@@ -0,0 +1,2 @@
+/*! For license information please see main.93c1d237.js.LICENSE.txt */
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8792],{171(e,t,n){"use strict";n.d(t,{A:()=>r});function r(e){const t={};return function e(n,r){Object.entries(n).forEach(([n,a])=>{const o=r?`${r}.${n}`:n;var i;"object"==typeof(i=a)&&i&&Object.keys(i).length>0?e(a,o):t[o]=a})}(e),t}},985(e,t,n){"use strict";n.d(t,{v:()=>i});var r=n(27691);const a="anchorTargetStickyNavbar_qGBP",o="anchorTargetHideOnScrollNavbar_iDjm";function i(e){const{navbar:{hideOnScroll:t}}= [...]
\ No newline at end of file
diff --git a/assets/js/main.93c1d237.js.LICENSE.txt b/assets/js/main.93c1d237.js.LICENSE.txt
new file mode 100644
index 00000000..f4d2c339
--- /dev/null
+++ b/assets/js/main.93c1d237.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.b2bbf516.js b/assets/js/runtime~main.b2bbf516.js
new file mode 100644
index 00000000..2cc3cf76
--- /dev/null
+++ b/assets/js/runtime~main.b2bbf516.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/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..09ace873
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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..aecd403c
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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..143dd4b4
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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..a8b70263
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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..3cf6dba5
--- /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 &quot;announcement&quot; | 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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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..dfced650
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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..17a1dd31
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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_uq95"><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..eb1979b0
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_uq95"><a href="https://github.com/apa [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/community/committer/committer-onboarding/index.html b/community/committer/committer-onboarding/index.html
new file mode 100644
index 00000000..379f5e06
--- /dev/null
+++ b/community/committer/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/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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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 &quot;Reply All&quot; and express their decision. Please provide the reference content of this reply email:</p>
+<div class="language-text codeBlockContainer_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-text codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_qGBP" 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_BbTd"></p>
+<p>After clicking &quot;Send Email&quot;, 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_qGBP" 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_BbTd"></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 &quot;Link GitHub username to ASF id&quot; and follow the given instructions to link your ASF account to GitHub.</li>
+<li class="">Check your email titled &quot;[GitHub] @asfgit has invited you to join the @apache organization&quot; 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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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 &quot;See all settings&quot;.</li>
+<li class="">Navigate to &quot;Accounts and Import&quot;, then locate &quot;Send mail as&quot;.</li>
+<li class="">Click &quot;Add another email address&quot; 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 &quot;Add account&quot; 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_BbTd"></p>
+<h3 class="anchor anchorTargetStickyNavbar_qGBP" 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_qGBP" 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_uq95"><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/committer/icla/index.html b/community/committer/icla/index.html
new file mode 100644
index 00000000..0fb9baaf
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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_BbTd"></p>
+<h2 class="anchor anchorTargetStickyNavbar_qGBP" 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_BbTd"></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&#x27;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_BbTd"></p>
+<h2 class="anchor anchorTargetStickyNavbar_qGBP" 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_BbTd"></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_qGBP" 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 &quot;name-icla.pdf&quot;.</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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-text codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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: &quot;Welcome to the Apache Software Foundation&quot;, 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_uq95"><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/contribution/code-review-guide/index.html b/community/contribution/code-review-guide/index.html
new file mode 100644
index 00000000..dadfada5
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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, &quot;approve&quot; or &quot;change request&quot;. If it&#x27;s a minor issue, you can just leave a comment.</li>
+<li class="">Recommend to submit a &quot;+1 Comment&quot; rather than a &quot;+1 Approve&quot; 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&#x27;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_qGBP" 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&#x27;s to merge.</li>
+<li class="">Regression cases and CI tests should pass before merging.</li>
+<li class="">Select &quot;squash and merge&quot; to merge.</li>
+<li class="">When there is a disagreement about a modification, try to discuss the resolution. If the discussion doesn&#x27;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_uq95"><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_Bllq" 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..3190841f
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-bash codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_uq95"><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..ae3889cf
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-bash codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><span class="token-line" style="color:#393A34"><span class="token plain">https://github.com/</span><span class="token operator" style="color:#393A34">&lt;</span><sp [...]
+<h3 class="anchor anchorTargetStickyNavbar_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-bash codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-bash codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-bash codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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>&lt;your_branch_name&gt;</code> name is customized for you.</li>
+</ul>
+<h3 class="anchor anchorTargetStickyNavbar_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-bash codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_qGBP" 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 &quot;Compare &amp; pull request&quot; on your repository page, click it.</p>
+<h3 class="anchor anchorTargetStickyNavbar_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-bash codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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&#x27;s parallel build feature, e.g., <code>mvn clean install -DskipTests -T 1C</code></li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-bash codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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..7a62256e
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-bash codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-bash codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-markdown codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-markdown codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-markdown codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-bash codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-bash codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-bash codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-bash codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_uq95"><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_Bllq" 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..a99dad83
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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 &quot;please assign it to me&quot;, 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_qGBP" 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_qGBP" 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&#x27;t resolve conversation.</li>
+</ul>
+<h3 class="anchor anchorTargetStickyNavbar_qGBP" 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_qGBP" 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_qGBP" 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&#x27;s <code>test</code> directory, preferably using the <code>JUnit5</code> framework.</p>
+<h2 class="anchor anchorTargetStickyNavbar_qGBP" 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_qGBP" 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&#x27; questions.</li>
+<li class="">Assisting in reviewing others&#x27; 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_uq95"><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_Bllq" 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..5e11c86b
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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&#x27; time.</p>
+<h3 class="anchor anchorTargetStickyNavbar_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_uq95"><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..bdb90cd7
--- /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-community" 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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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_qGBP" 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&#x27;t receive the response.</p>
+<h3 class="anchor anchorTargetStickyNavbar_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_uq95"><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..96b1ec8c
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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&#x27;s Incubating.</p>
+<h2 class="anchor anchorTargetStickyNavbar_qGBP" 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_qGBP" 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&#x27;s code.</td><td><stro [...]
+<h3 class="anchor anchorTargetStickyNavbar_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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&#x27;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_qGBP" 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_qGBP" 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 &quot;Apache Fesod™&quot; 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&#x27;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..0244906d
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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&#x27;s success.</p>
+<h2 class="anchor anchorTargetStickyNavbar_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_uq95"><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_Bllq" 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..2377ab21
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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_mMJ5 alert alert--secondary"><div class="admonitionHeading_Loix"><span class="admonitionIcon_qNbI"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-text codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-text codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-text codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-text codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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&amp;month=MM&amp;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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-text codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-text codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-text codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-text codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-text codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-text codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_BbTd"></p>
+<h2 class="anchor anchorTargetStickyNavbar_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-text codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-text codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-text codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-text codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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/pmc-onboarding/index.html b/community/pmc/pmc-onboarding/index.html
new file mode 100644
index 00000000..7354fc5f
--- /dev/null
+++ b/community/pmc/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/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/pmc-o [...]
+<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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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>&quot;Reply All&quot;</strong> and express their decision.</p>
+<h2 class="anchor anchorTargetStickyNavbar_qGBP" 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 &quot;Confirm&quot; 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&#x27;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_qGBP" 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_qGBP" 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_uq95"><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..4f278b09
--- /dev/null
+++ b/community/release/release-version/index.html
@@ -0,0 +1,124 @@
+<!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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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_qGBP" 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>&lt;your Apache ID&gt;@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 &lt;your key id&gt;</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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-bash codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-bash codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-bash codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-bash codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-xml codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><span class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34">&lt;</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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-xml codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><span class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34">&lt;</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&#x27;s password encryption capabilities</a> to encrypt <code>gpg.passphrase</code>.</p>
+<h1>2. Release Process</h1>
+<h2 class="anchor anchorTargetStickyNavbar_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-bash codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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>
+<p>First, confirm that the current codebase is ready for release.</p>
+<div class="language-bash codeBlockContainer_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-bash codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-bash codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-bash codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-bash codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-mail codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-text codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-text codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-text codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-text codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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 &quot;Release Fesod X.X.X&quot;</code></li>
+<li class="">Set the previous release note to &quot;Set as the latest release&quot; 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-text codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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..4ef9c64b
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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_mMJ5 alert alert--warning"><div class="admonitionHeading_Loix"><span class="admonitionIcon_qNbI"><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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-shell codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-shell codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-shell codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-shell codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-shell codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-shell codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-shell codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-shell codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_cmlc">
+<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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-shell codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-shell codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_cmlc">
+<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_qGBP" 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_cmlc">
+<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_qGBP" 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_mMJ5 alert alert--success"><div class="admonitionHeading_Loix"><span class="admonitionIcon_qNbI"><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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-text codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-text codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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..bc514e22
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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 &quot;Apache Fesod (Incubating)&quot; 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_qGBP" 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)&#x27;s dependencies are not automatically considered critical. However, if additional analysis indicates that Apache Fesod (Incubating) might be affected by a dependency&#x27;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_uq95"><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_Bllq" 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..2695dac0
--- /dev/null
+++ b/docs/download/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-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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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 [...]
+<div class="theme-admonition theme-admonition-tip admonition_mMJ5 alert alert--success"><div class="admonitionHeading_Loix"><span class="admonitionIcon_qNbI"><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_qGBP" id="previous-releases-non-apache">Previous Releases (Non-Apache)<a href="#previous-releases-non-apache" class="hash-link" aria-label="Direct link to Previous Releases (Non-Apache)" title="Direct link to Previous Releases (Non-Apache)" translate="no">​</a></h2>
+<h3 class="anchor anchorTargetStickyNavbar_qGBP" 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></h3>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<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</ [...]
+<h3 class="anchor anchorTargetStickyNavbar_qGBP" 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></h3>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<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</ [...]
+<h2 class="anchor anchorTargetStickyNavbar_qGBP" 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="">When downloading a release, please verify the OpenPGP compatible signature (or failing that, check the SHA-512); these should be fetched from the main Apache site.</li>
+<li class="">The KEYS file contains the public keys used for signing release. It is recommended that (when possible) a web of trust is used to confirm the identity of these keys.</li>
+</ul>
+<h3 class="anchor anchorTargetStickyNavbar_qGBP" id="to-verify-the-signature-of-the-release-artifact">To verify the signature of the release artifact<a href="#to-verify-the-signature-of-the-release-artifact" class="hash-link" aria-label="Direct link to To verify the signature of the release artifact" title="Direct link to To verify the signature of the release artifact" translate="no">​</a></h3>
+<p>You will need to download both the release artifact and the .asc signature file for that artifact. Then verify the signature by:</p>
+<ul>
+<li class="">Download the KEYS file and the .asc signature files for the relevant release artifacts.</li>
+<li class="">Import the KEYS file to your GPG keyring:</li>
+</ul>
+<div class="language-bash codeBlockContainer_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-bash codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><span class="token-line" style="color:#393A34"><span class="token plain">gpg </span><span class="token parameter variable" style="color:#36acaa">--import</span><spa [...]
+<ul>
+<li class="">Verify the signature of the release artifact using the following command:</li>
+</ul>
+<div class="language-bash codeBlockContainer_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-bash codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><span class="token-line" style="color:#393A34"><span class="token plain">gpg </span><span class="token parameter variable" style="color:#36acaa">--verify</span><spa [...]
+<h3 class="anchor anchorTargetStickyNavbar_qGBP" id="to-verify-the-checksum-of-the-release-artifact">To verify the checksum of the release artifact<a href="#to-verify-the-checksum-of-the-release-artifact" class="hash-link" aria-label="Direct link to To verify the checksum of the release artifact" title="Direct link to To verify the checksum of the release artifact" translate="no">​</a></h3>
+<p>You will need to download both the release artifact and the .sha512 checksum file for that artifact. Then verify the checksum by:</p>
+<div class="language-bash codeBlockContainer_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-bash codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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 [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/index.html b/docs/index.html
new file mode 100644
index 00000000..803d3f6e
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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 &quot;fast easy spreadsheet and other documents&quot; expresses the
+project&#x27;s origin, background and vision.</p>
+<h3 class="anchor anchorTargetStickyNavbar_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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..2e13c925
--- /dev/null
+++ b/docs/migration/from-fastexcel/index.html
@@ -0,0 +1,211 @@
+<!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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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</td><td>1.3.0+</td></tr></tbody></table>
+<p><strong>Maven:</strong></p>
+<div class="language-xml codeBlockContainer_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-xml codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><span class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">depe [...]
+<p><strong>Gradle:</strong></p>
+<div class="language-gradle codeBlockContainer_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-gradle codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><span class="token-line" style="color:#393A34"><span class="token plain">implementation &#x27;org.apache.fesod:fesod:1.3.0&#x27;</span><br></span></code></pre>< [...]
+<h3 class="anchor anchorTargetStickyNavbar_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_uq95"><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..f84151cd
--- /dev/null
+++ b/docs/quickstart/guide/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-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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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 Fesod library:</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Version</th><th>JDK Version Support Range</th><th>Notes</th></tr></thead><tbody><tr><td>1.3.x</td><td>JDK8 - JDK25</td><td></td></tr><tr><td>1.2.x</td><td>JDK8 - JDK21</td><td></td></tr><tr><td>1.1.x</td><td>JDK8 - JDK21</td><td></td></tr><tr><td>1.0.x</td><td>JDK8 - JDK21</td><td></td></tr></tbody></table>
+<p>We strongly recommend using the latest version of Fesod, as performance optimizations, bug fixes, and new features
+in the latest version will enhance your experience.</p>
+<blockquote>
+<p>Currently, Fesod uses POI as its underlying package. If your project already includes POI-related components, you
+will need to manually exclude POI-related jar files.</p>
+</blockquote>
+<h2 class="anchor anchorTargetStickyNavbar_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-xml codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-gradle codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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..e4a0f306
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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..154cbde7
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_qGBP" 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_BbTd"></p>
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_qGBP" 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_BbTd"></p>
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_qGBP" 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_BbTd"></p>
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_qGBP" 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_BbTd"></p>
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_BbTd"></p>
+<h3 class="anchor anchorTargetStickyNavbar_qGBP" 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_BbTd"></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_uq95"><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..d7f81162
--- /dev/null
+++ b/docs/sheet/help/annotation/index.html
@@ -0,0 +1,116 @@
+<!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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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></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_uq95"><a href="https://github.com/apache/fesod/edit/main/website/docs/sheet/help/annotation.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_Bllq" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3 [...]
+</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..139746c1
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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&lt;DemoData&gt;</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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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&lt;?&gt; 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&lt;?&gt; 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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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..eef02280
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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&#x27;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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_uq95"><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_Bllq" 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..36baa572
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_uq95"><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..dedddc86
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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&#x27;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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_qGBP" 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_qGBP" 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_uq95"><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..29e01aae
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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..06da33dd
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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&#x27;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_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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>&quot;</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&#x27;s recommended to use in combination with
+<code>QuoteMode</code>.</p>
+</blockquote>
+<h4 class="anchor anchorTargetStickyNavbar_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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>&quot;N/A&quot;</code> as a <code>null</code> object.</p>
+<h4 class="anchor anchorTargetStickyNavbar_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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&#x27;s not the most recommended usage method.</p>
+</blockquote>
+<h3 class="anchor anchorTargetStickyNavbar_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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..15824bb5
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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..48aac889
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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..ea4ef557
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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..9849ddb3
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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..9ea6fb65
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" id="代码示例">代码示例<a href="#代码示例" class="hash-link" aria-label="Direct link to 代码示例" title="Direct link to 代码示例" translate="no">​</a></h4>
+<div class="language-java codeBlockContainer_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_qGBP" 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&lt;Integer, String&gt;</code> to read
+data
+directly.</p>
+<h3 class="anchor anchorTargetStickyNavbar_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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..09965802
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_qGBP" 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 &quot;hidden&quot; state will not be read.
+This supports both <strong>&quot;normal hidden&quot;</strong> and <strong>&quot;very hidden&quot;</strong> states.</p>
+<h3 class="anchor anchorTargetStickyNavbar_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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: &quot;normal hidden (xlSheetHidden)&quot; and &quot;very hidden (
+xlSheetVeryHidden)&quot;. Very hidden can be set through <code>VBA</code>, and in this case, the hidden sheet cannot be unhidden
+through
+the &quot;Unhide&quot; 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_uq95"><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_Bllq" 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..d0594ea3
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_qGBP" 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&#x27;s listener mechanism.</p>
+<h3 class="anchor anchorTargetStickyNavbar_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_qGBP" 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&lt;Integer, String&gt;</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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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..68f3ec0b
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-xml codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_uq95"><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..55a7d17d
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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&#x27;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_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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>&quot;</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&#x27;s recommended to use in combination with
+<code>QuoteMode</code>.</p>
+</blockquote>
+<h4 class="anchor anchorTargetStickyNavbar_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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>&quot;N/A&quot;</code>.</p>
+<h4 class="anchor anchorTargetStickyNavbar_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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&#x27;s not the most recommended usage method.</p>
+</blockquote>
+<h3 class="anchor anchorTargetStickyNavbar_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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..0d091ab7
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_BbTd"></p>
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_BbTd"></p>
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_BbTd"></p>
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_BbTd"></p>
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_BbTd"></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_uq95"><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..4bec284b
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_BbTd"></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_uq95"><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..d51565f9
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_BbTd"></p>
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_BbTd"></p>
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_qGBP" 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_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_uq95"><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..f97f624e
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_BbTd"></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_uq95"><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..f24f7d38
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_BbTd"></p>
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_BbTd"></p>
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_qGBP" 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_qGBP" 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&lt;List&lt;String&gt;&gt;</code> to define headers and data without creating entity classes.</p>
+<h3 class="anchor anchorTargetStickyNavbar_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_BbTd"></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_uq95"><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..43cad2fb
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_BbTd"></p>
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_BbTd"></p>
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_BbTd"></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_uq95"><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..75b8a507
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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..31c71c1d
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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..92f32496
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_BbTd"></p>
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_BbTd"></p>
+<hr>
+<h2 class="anchor anchorTargetStickyNavbar_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_qGBP" 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&#x27;s <code>CellStyle</code>, suitable for precise style control.</p>
+<h3 class="anchor anchorTargetStickyNavbar_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_qGBP" 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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-java codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" 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_BbTd"></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_uq95"><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..0b5c8d13
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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..533e0b44
--- /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":"Onboarding","u":"/community/committer/commit [...]
\ No newline at end of file
diff --git a/search/index.html b/search/index.html
new file mode 100644
index 00000000..e80e0007
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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..a77a8dd8
--- /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..2f82dc74
--- /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.b2bbf516.js" defer="defer"></script>
+<script src="/assets/js/main.93c1d237.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..9c06f142
--- /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.54d84d6f.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.d6216423.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.b60a225f.css b/zh-cn/assets/css/styles.b60a225f.css
new file mode 100644
index 00000000..9eed2d29
--- /dev/null
+++ b/zh-cn/assets/css/styles.b60a225f.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.6d3fe295.js b/zh-cn/assets/js/00e1230c.6d3fe295.js
new file mode 100644
index 00000000..6ed2fc67
--- /dev/null
+++ b/zh-cn/assets/js/00e1230c.6d3fe295.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6147],{19876(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.d8609b05.js b/zh-cn/assets/js/01a85c17.d8609b05.js
new file mode 100644
index 00000000..4d426310
--- /dev/null
+++ b/zh-cn/assets/js/01a85c17.d8609b05.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8209],{5733(e,t,a){a.d(t,{in:()=>c,OU:()=>P,Ki:()=>A,kJ:()=>b,x:()=>l,e7:()=>m,J_:()=>f,Gx:()=>y});var s=a(57140),n=a(65809),i=a(91365),r=a(35656);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.eaf62ecd.js b/zh-cn/assets/js/026e6981.eaf62ecd.js
new file mode 100644
index 00000000..496cd27d
--- /dev/null
+++ b/zh-cn/assets/js/026e6981.eaf62ecd.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1988],{32570(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.4a29fc5e.js b/zh-cn/assets/js/035672d3.4a29fc5e.js
new file mode 100644
index 00000000..0ada36c1
--- /dev/null
+++ b/zh-cn/assets/js/035672d3.4a29fc5e.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8885],{40189(A,I,s){s.r(I),s.d(I,{default:()=>j});var e=s(57140),Q=s(51528);const E=JSON.parse('{"pmc":[{"githubId":"29803617","gitUrl":"https://github.com/dave2wave","name":"Dave Fisher","isMentor":true},{"githubId":"13284744","gitUrl":"https://github.com/wolfboys","name":"Huajie Wang","isMentor":true},{"githubId":"11783444","gitUrl":"https://github.com/pjfanning","name":"PJ Fanning","isMentor":true} [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/1138.5e0cc3ce.js b/zh-cn/assets/js/1138.5e0cc3ce.js
new file mode 100644
index 00000000..db39b704
--- /dev/null
+++ b/zh-cn/assets/js/1138.5e0cc3ce.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1138],{61138(t,e,a){a.d(e,{diagram:()=>R});var i,n=a(40764),r=(a(59461),a(87044),a(33865),a(20656),a(31254),a(47538),a(49281),a(39895),a(85030),a(53486)),d=a(85459),s=a(34417),o=a(7012),g=a(54885),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 [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/134.03ac30f8.js b/zh-cn/assets/js/134.03ac30f8.js
new file mode 100644
index 00000000..77393506
--- /dev/null
+++ b/zh-cn/assets/js/134.03ac30f8.js
@@ -0,0 +1 @@
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[134],{2806(e,t,n){"use strict";n.d(t,{A:()=>x});n(57140);var s=n(13526),a=n(80431),r=n(7228),c=n(85340);const o="iconEdit_Bllq";var i=n(35656);function l({className:e,...t}){return(0,i.jsx)("svg",{fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,s.A)(o,e),"aria-hidden":"true",...t,children:(0,i.jsx)("g",{children:(0,i.jsx)("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. [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/1370.4f78401d.js b/zh-cn/assets/js/1370.4f78401d.js
new file mode 100644
index 00000000..ffced8ff
--- /dev/null
+++ b/zh-cn/assets/js/1370.4f78401d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1370],{29141(e,n,t){t.d(n,{A:()=>i});var r=t(9993);const i=function(e){return(0,r.A)(e,4)}},41370(e,n,t){t.r(n),t.d(n,{render:()=>k});var r=t(20656),i=(t(31254),t(47538)),a=t(49281),o=(t(39895),t(85030),t(53486),t(85459)),d=t(34417),s=t(54885),c=t(30664),g=t(29141),l=t(92498);t(32521);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/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/14fc6b04.f661606b.js b/zh-cn/assets/js/14fc6b04.f661606b.js
new file mode 100644
index 00000000..c4e64f38
--- /dev/null
+++ b/zh-cn/assets/js/14fc6b04.f661606b.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4065],{10720(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(35656),c=n(56610);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/17896441.851a53eb.js b/zh-cn/assets/js/17896441.851a53eb.js
new file mode 100644
index 00000000..abd3aedb
--- /dev/null
+++ b/zh-cn/assets/js/17896441.851a53eb.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8401],{34121(e,n,t){t.d(n,{AE:()=>l,Rc:()=>r,TT:()=>d,Uh:()=>o,Yh:()=>c});t(57140);var s=t(80431),i=t(83242),a=t(35656);function r(){return(0,a.jsx)(s.A,{id:"theme.contentVisibility.unlistedBanner.title",description:"The unlisted content banner title",children:"Unlisted page"})}function o(){return(0,a.jsx)(s.A,{id:"theme.contentVisibility.unlistedBanner.message",description:"The unlisted content banne [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/18b1fbba.2e632197.js b/zh-cn/assets/js/18b1fbba.2e632197.js
new file mode 100644
index 00000000..bbb8e77c
--- /dev/null
+++ b/zh-cn/assets/js/18b1fbba.2e632197.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5508],{24616(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.3b66fa1f.js b/zh-cn/assets/js/1a3b291f.3b66fa1f.js
new file mode 100644
index 00000000..9ca3a9a3
--- /dev/null
+++ b/zh-cn/assets/js/1a3b291f.3b66fa1f.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5152],{34042(e,i,n){n.d(i,{A:()=>t});const t=n.p+"assets/images/gmail-setting-64fa2bef013a1817489ee6195d293a97.png"},39539(e,i,n){n.d(i,{A:()=>t});const t=n.p+"assets/images/reset-passwd-e8828118db9277c6fe25a82a5a0bb3da.png"},56610(e,i,n){n.d(i,{R:()=>s,x:()=>l});var t=n(57140);const c={},r=t.createContext(c);function s(e){const i=t.useContext(r);return t.useMemo(function(){return"function"==typeof e? [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/1a4e3797.bda481d2.js b/zh-cn/assets/js/1a4e3797.bda481d2.js
new file mode 100644
index 00000000..9cacc50f
--- /dev/null
+++ b/zh-cn/assets/js/1a4e3797.bda481d2.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2138],{44400(e,t,r){r.r(t),r.d(t,{default:()=>k});var s=r(57140),a=r(3348),n=r(5856),l=r(83242),c=r(85340),o=r(80431),u=r(96550),i=r(13526),h=r(10559),d=r(94109),m=r(51080);const g=function(){const e=(0,d.A)(),t=(0,h.W6)(),r=(0,h.zy)(),{siteConfig:{baseUrl:s}}=(0,a.A)(),n=e?new URLSearchParams(r.search):null,l=n?.get("q")||"",c=n?.get("ctx")||"",o=n?.get("version")||"",u=e=>{const t=new URLSearchParam [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/2050.e450606d.js b/zh-cn/assets/js/2050.e450606d.js
new file mode 100644
index 00000000..2710aeed
--- /dev/null
+++ b/zh-cn/assets/js/2050.e450606d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2050],{22460(e,t,i){i.d(t,{A:()=>r});i(57140);var n=i(13526),o=i(80431),s=i(63320),a=i(35656);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/2180.e09aef91.js b/zh-cn/assets/js/2180.e09aef91.js
new file mode 100644
index 00000000..8afac063
--- /dev/null
+++ b/zh-cn/assets/js/2180.e09aef91.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2180],{49727(t,e,n){n.d(e,{CP:()=>h,HT:()=>y,PB:()=>u,aC:()=>c,lC:()=>o,m:()=>l,tk:()=>a});var i=n(85459),s=n(34417),r=n(41407),a=(0,s.K2)((t,e)=>{const n=t.append("rect");if(n.attr("x",e.x),n.attr("y",e.y),n.attr("fill",e.fill),n.attr("stroke",e.stroke),n.attr("width",e.width),n.attr("height",e.height),e.name&&n.attr("name",e.name),e.rx&&n.attr("rx",e.rx),e.ry&&n.attr("ry",e.ry),void 0!==e.attrs)for( [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/2327.3a4fdd3c.js b/zh-cn/assets/js/2327.3a4fdd3c.js
new file mode 100644
index 00000000..a470f26a
--- /dev/null
+++ b/zh-cn/assets/js/2327.3a4fdd3c.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2327],{22327(t,e,s){s.d(e,{diagram:()=>C});var i=s(90193),n=s(41089),r=s(59461),a=s(87044),u=s(33865),o=(s(20656),s(31254),s(47538)),l=(s(49281),s(39895),s(85030),s(53486)),c=s(85459),h=s(34417),d=s(7012),p=s(30941),g=s(80124),A=class{constructor(){this.vertexCounter=0,this.config=(0,c.D7)(),this.vertices=new Map,this.edges=[],this.classes=new Map,this.subGraphs=[],this.subGraphLookup=new Map,this.too [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/23f7ca76.d0459c28.js b/zh-cn/assets/js/23f7ca76.d0459c28.js
new file mode 100644
index 00000000..191add88
--- /dev/null
+++ b/zh-cn/assets/js/23f7ca76.d0459c28.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[240],{56610(e,n,t){t.d(n,{R:()=>r,x:()=>c});var i=t(57140);const s={},a=i.createContext(s);function r(e){const n=i.useContext(a);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),i.createElement(a.Provider,{value:n},e.children)}},70440(e,n,t) [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/2451.918970ce.js b/zh-cn/assets/js/2451.918970ce.js
new file mode 100644
index 00000000..172d9911
--- /dev/null
+++ b/zh-cn/assets/js/2451.918970ce.js
@@ -0,0 +1,2 @@
+/*! For license information please see 2451.918970ce.js.LICENSE.txt */
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2451],{36430(e,t,r){var n,i;!function(){var s,o,a,u,l,c,h,d,f,p,m,y,g,v,x,w,b,k,E,Q,S,L,T,P,I,_,F,O,R,C,A=function(e){var t=new A.Builder;return t.pipeline.add(A.trimmer,A.stopWordFilter,A.stemmer),t.searchPipeline.add(A.stemmer),e.call(t,t),t.build()};A.version="2.3.9",A.utils={},A.utils.warn=(s=this,function(e){s.console&&console.warn&&console.warn(e)}),A.utils.asString=function(e){return null==e?"":e.toString() [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/2451.918970ce.js.LICENSE.txt b/zh-cn/assets/js/2451.918970ce.js.LICENSE.txt
new file mode 100644
index 00000000..7e6757bb
--- /dev/null
+++ b/zh-cn/assets/js/2451.918970ce.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/2557682e.9d0f3bb0.js b/zh-cn/assets/js/2557682e.9d0f3bb0.js
new file mode 100644
index 00000000..5b466a42
--- /dev/null
+++ b/zh-cn/assets/js/2557682e.9d0f3bb0.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5633],{2411(A,g,e){e.d(g,{A:()=>C});const C="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfcAAACICAYAAAD6dqKHAAAABWZkRUNSJJPjAOWrYpkAACNGSURBVHgB5cRjtCVn2oDh+3mravPY57RtxLYzM0kGydi2bdu2EYxi22bbPH2szap6n2/Vj7PWXr06mWimZ773x3Xxohe/TF3mMpf9u7zoJS9Tl7nMVS96ycvVZf+tDIDLXOYyl7nMZS5zkQFwmctc9u+AAIDLXOYiEABc9t/K2LDMf9Lpp5yIDcu47ImcfsqJ2LCMy/6TTj/lRGxY5tlgq2Vc9v/R6SefiK2WcdkTsdUS/ymnn3wCtlrCZU/k9JNPwFZLTDIA/ [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/2706.ad6cb2ab.js b/zh-cn/assets/js/2706.ad6cb2ab.js
new file mode 100644
index 00000000..4d8c692f
--- /dev/null
+++ b/zh-cn/assets/js/2706.ad6cb2ab.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2706],{42706(e,r,s){s.d(r,{diagram:()=>i});var a=s(75182),t=(s(90193),s(59461),s(87044),s(33865),s(20656),s(31254),s(47538),s(49281),s(39895),s(85030),s(53486),s(85459),s(34417)),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/2bc519fb.9d8f48b4.js b/zh-cn/assets/js/2bc519fb.9d8f48b4.js
new file mode 100644
index 00000000..da63eb75
--- /dev/null
+++ b/zh-cn/assets/js/2bc519fb.9d8f48b4.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4897],{30769(e,n,t){t.d(n,{A:()=>a});const a=t.p+"assets/images/customHandlerWrite-c05ff79257df5ba72a311793a6e9db60.png"},49304(e,n,t){t.d(n,{A:()=>a});const a=t.p+"assets/images/mergeWrite-976e024ef4e1613c6dab373937cc56ff.png"},56610(e,n,t){t.d(n,{R:()=>r,x:()=>s});var a=t(57140);const l={},i=a.createContext(l);function r(e){const n=a.useContext(i);return a.useMemo(function(){return"function"==typeof [...]
\ 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/3308.7ed0b814.js b/zh-cn/assets/js/3308.7ed0b814.js
new file mode 100644
index 00000000..79d6193b
--- /dev/null
+++ b/zh-cn/assets/js/3308.7ed0b814.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3308],{13308(t,e,a){a.d(e,{diagram:()=>vt});var r=a(49727),s=a(41089),i=a(32782),n=a(53486),o=a(85459),c=a(34417),l=a(7012),h=a(41407),d=function(){var t=(0,c.K2)(function(t,e,a,r){for(a=a||{},r=t.length;r--;a[t[r]]=e);return a},"o"),e=[1,2],a=[1,3],r=[1,4],s=[2,4],i=[1,9],n=[1,11],o=[1,13],l=[1,14],h=[1,16],d=[1,17],p=[1,18],g=[1,24],u=[1,25],x=[1,26],y=[1,27],m=[1,28],b=[1,29],T=[1,30],f=[1,31],E=[1 [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/33296af2.eed9d1c5.js b/zh-cn/assets/js/33296af2.eed9d1c5.js
new file mode 100644
index 00000000..d4c0ea62
--- /dev/null
+++ b/zh-cn/assets/js/33296af2.eed9d1c5.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6733],{39106(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/3346.1d00631c.js b/zh-cn/assets/js/3346.1d00631c.js
new file mode 100644
index 00000000..953e41d3
--- /dev/null
+++ b/zh-cn/assets/js/3346.1d00631c.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3346],{9993(t,e,r){r.d(e,{A:()=>Z});var s=r(6874),n=r(37649),i=r(65187),o=r(27487),a=r(6926);const c=function(t,e){return t&&(0,o.A)(e,(0,a.A)(e),t)};var h=r(47791);const u=function(t,e){return t&&(0,o.A)(e,(0,h.A)(e),t)};var d=r(34730),l=r(88031),_=r(26744);const A=function(t,e){return(0,o.A)(t,(0,_.A)(t),e)};var b=r(68448),p=r(17999),f=r(28145);const v=Object.getOwnPropertySymbols?function(t){for(va [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/35ef6288.331783ef.js b/zh-cn/assets/js/35ef6288.331783ef.js
new file mode 100644
index 00000000..d71e754b
--- /dev/null
+++ b/zh-cn/assets/js/35ef6288.331783ef.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9646],{56610(e,n,s){s.d(n,{R:()=>r,x:()=>d});var i=s(57140);const t={},c=i.createContext(t);function r(e){const n=i.useContext(c);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),i.createElement(c.Provider,{value:n},e.children)}},99570(e,n,s [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/3696a4b8.fb2d9d63.js b/zh-cn/assets/js/3696a4b8.fb2d9d63.js
new file mode 100644
index 00000000..ce388443
--- /dev/null
+++ b/zh-cn/assets/js/3696a4b8.fb2d9d63.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[140],{21386(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/3725.7db046ed.js b/zh-cn/assets/js/3725.7db046ed.js
new file mode 100644
index 00000000..388e3dee
--- /dev/null
+++ b/zh-cn/assets/js/3725.7db046ed.js
@@ -0,0 +1 @@
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3725],{22318(t){var e;e=function(){return function(t){var e={};function i(n){if(e[n])return e[n].exports;var r=e[n]={i:n,l:!1,exports:{}};return t[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=t,i.c=e,i.i=function(t){return t},i.d=function(t,e,n){i.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:n})},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){r [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/3767.19ed1c98.js b/zh-cn/assets/js/3767.19ed1c98.js
new file mode 100644
index 00000000..dc92d2f6
--- /dev/null
+++ b/zh-cn/assets/js/3767.19ed1c98.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3767],{3767(t,e,n){n.d(e,{diagram:()=>Y});var i=n(85459),s=n(34417),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/3899.735e5d49.js b/zh-cn/assets/js/3899.735e5d49.js
new file mode 100644
index 00000000..e392ae4e
--- /dev/null
+++ b/zh-cn/assets/js/3899.735e5d49.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3899],{93899(e,s,a){a.d(s,{createTreemapServices:()=>b.d});var b=a(4659);a(89932)}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/39832ed4.c1dad2ec.js b/zh-cn/assets/js/39832ed4.c1dad2ec.js
new file mode 100644
index 00000000..6a0dd154
--- /dev/null
+++ b/zh-cn/assets/js/39832ed4.c1dad2ec.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.1ab9c561.js b/zh-cn/assets/js/3a6abea9.1ab9c561.js
new file mode 100644
index 00000000..ac888dbe
--- /dev/null
+++ b/zh-cn/assets/js/3a6abea9.1ab9c561.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6173],{56610(e,t,n){n.d(t,{R:()=>l,x:()=>a});var i=n(57140);const r={},s=i.createContext(r);function l(e){const t=i.useContext(s);return i.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:l(e.components),i.createElement(s.Provider,{value:t},e.children)}},60417(e,t,n [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/4167.b59abf84.js b/zh-cn/assets/js/4167.b59abf84.js
new file mode 100644
index 00000000..7508e981
--- /dev/null
+++ b/zh-cn/assets/js/4167.b59abf84.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4167],{34167(t,i,e){e.d(i,{diagram:()=>it});var s=e(88866),a=e(85030),n=e(53486),h=e(85459),o=e(34417),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/42f9ab63.b6a0359b.js b/zh-cn/assets/js/42f9ab63.b6a0359b.js
new file mode 100644
index 00000000..df00c403
--- /dev/null
+++ b/zh-cn/assets/js/42f9ab63.b6a0359b.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3142],{8616(M,N,D){D.d(N,{A:()=>j});const j=D.p+"assets/files/fesod-logo-e965e5189d96bd03fa69a35f3d899546.svg"},19338(M,N,D){D.d(N,{A:()=>j});const j=D.p+"assets/files/fesod-logo-icon-fe2b95b7518918c8494bba4f27944e16.svg"},22235(M,N,D){D.d(N,{A:()=>j});const j="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0 [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/4359.4f52bbac.js b/zh-cn/assets/js/4359.4f52bbac.js
new file mode 100644
index 00000000..7227d540
--- /dev/null
+++ b/zh-cn/assets/js/4359.4f52bbac.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4359],{59461(t,e,n){n.d(e,{A:()=>r});var i=n(34417),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")},84359(t,e,n){n.d(e,{diagram:()=>D});var i=n(59461),s=n(87044),r=n(33865),o=(n(20656),n(31254),n(47538),n(49281),n(39895),n(85030),n(53486),n(85459)),a [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/4390.acadbd72.js b/zh-cn/assets/js/4390.acadbd72.js
new file mode 100644
index 00000000..a1cb8ab4
--- /dev/null
+++ b/zh-cn/assets/js/4390.acadbd72.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4390],{34390(e,r,t){t.d(r,{diagram:()=>i});var a=t(40764),s=(t(59461),t(87044),t(33865),t(20656),t(31254),t(47538),t(49281),t(39895),t(85030),t(53486),t(85459),t(34417)),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/4413.d7894937.js b/zh-cn/assets/js/4413.d7894937.js
new file mode 100644
index 00000000..dd6328bc
--- /dev/null
+++ b/zh-cn/assets/js/4413.d7894937.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4413],{14413(e,a,r){r.d(a,{diagram:()=>p});var t=r(21420),s=r(88866),n=r(85459),i=r(34417),d=r(96961),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/4453.a5e03112.js b/zh-cn/assets/js/4453.a5e03112.js
new file mode 100644
index 00000000..fe598078
--- /dev/null
+++ b/zh-cn/assets/js/4453.a5e03112.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4453],{14453(t,e,n){n.d(e,{diagram:()=>I});var i=n(88866),s=n(90193),r=n(41089),o=n(47538),a=(n(49281),n(39895),n(85030),n(53486),n(85459)),c=n(34417),l=n(13212),h=n(58480),g=n(81896),u=function(){var t=(0,c.K2)(function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},"o"),e=[1,4],n=[1,13],i=[1,12],s=[1,15],r=[1,16],o=[1,20],a=[1,19],l=[6,7,8],h=[1,26],g=[1,24],u=[1,25],d=[6,7,11],p=[1,31],y= [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/4632.789b7a38.js b/zh-cn/assets/js/4632.789b7a38.js
new file mode 100644
index 00000000..bc3d3e2c
--- /dev/null
+++ b/zh-cn/assets/js/4632.789b7a38.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4632],{14632(t,e,r){r.d(e,{diagram:()=>we});var a=r(90193),s=r(31254),i=r(49281),n=r(85030),o=r(53486),l=r(85459),c=r(34417),d=r(29141),h=r(30941),g=r(80124),y=r(7012),u=r(34654),p=function(){var t=(0,c.K2)(function(t,e,r,a){for(r=r||{},a=t.length;a--;r[t[a]]=e);return r},"o"),e=[1,15],r=[1,7],a=[1,13],s=[1,14],i=[1,19],n=[1,16],o=[1,17],l=[1,18],d=[8,30],h=[8,10,21,28,29,30,31,39,43,46],g=[1,23],y=[1 [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/483.d60b17af.js b/zh-cn/assets/js/483.d60b17af.js
new file mode 100644
index 00000000..df487217
--- /dev/null
+++ b/zh-cn/assets/js/483.d60b17af.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[483],{69763(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(34417).K2)(r,"populateCommonDb")},70483(t,e,a){a.d(e,{diagram:()=>m});var r=a(88866),i=a(69763),s=a(53486),o=a(85459),n=a(34417),l=a(96961),c=o.UI.packet,d=class{constructor(){this.packet=[],this.setAccTitle=o.SV,this.getAc [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/4860.84e1296c.js b/zh-cn/assets/js/4860.84e1296c.js
new file mode 100644
index 00000000..d88205c3
--- /dev/null
+++ b/zh-cn/assets/js/4860.84e1296c.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4860],{64860(e,s,a){a.d(s,{createInfoServices:()=>b.v});var b=a(42179);a(89932)}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/4885.1bf14774.js b/zh-cn/assets/js/4885.1bf14774.js
new file mode 100644
index 00000000..445030fe
--- /dev/null
+++ b/zh-cn/assets/js/4885.1bf14774.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4885],{735(e,n,r){r.d(n,{A:()=>o});var t=r(47498);const o=function(e,n,r){for(var o=-1,i=e.length;++o<i;){var u=e[o],a=n(u);if(null!=a&&(void 0===c?a==a&&!(0,t.A)(a):r(a,c)))var c=a,d=u}return d}},7458(e,n,r){r.d(n,{A:()=>o});var t=r(1156);const o=function(e){return(null==e?0:e.length)?(0,t.A)(e,1):[]}},54885(e,n,r){r.d(n,{Zp:()=>dr});var t=r(28618),o=r(28558),i=0;const u=function(e){var n=++i;return( [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/5168.a04df29a.js b/zh-cn/assets/js/5168.a04df29a.js
new file mode 100644
index 00000000..e590c493
--- /dev/null
+++ b/zh-cn/assets/js/5168.a04df29a.js
@@ -0,0 +1 @@
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5168],{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/516dc88b.9d37fb8c.js b/zh-cn/assets/js/516dc88b.9d37fb8c.js
new file mode 100644
index 00000000..39b1b18a
--- /dev/null
+++ b/zh-cn/assets/js/516dc88b.9d37fb8c.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2388],{31770(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/5179.0f56cb1b.js b/zh-cn/assets/js/5179.0f56cb1b.js
new file mode 100644
index 00000000..8a7bfd04
--- /dev/null
+++ b/zh-cn/assets/js/5179.0f56cb1b.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5179],{32782(t,r,e){e.d(r,{m:()=>o});var n=e(34417),o=class{constructor(t){this.init=t,this.records=this.init()}static{(0,n.K2)(this,"ImperativeState")}reset(){this.records=this.init()}}},45179(t,r,e){e.d(r,{diagram:()=>ut});var n=e(69763),o=e(32782),a=e(53486),c=e(85459),s=e(34417),i=e(96961),h=e(7012),d={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},m=c.UI.gitGraph,$=(0,s.K2)(()=>(0,a.$t)({. [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/5182.e1a974b3.js b/zh-cn/assets/js/5182.e1a974b3.js
new file mode 100644
index 00000000..9402f487
--- /dev/null
+++ b/zh-cn/assets/js/5182.e1a974b3.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5182],{59461(t,e,s){s.d(e,{A:()=>a});var i=s(34417),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")},75182(t,e,s){s.d(e,{Lh:()=>T,NM:()=>m,_$:()=>d,tM:()=>b});var i=s(90193),n=s(59461),a=s(87044),r=s(33865),u=s(53486),l=s(85459),o=s(34417),c=s(7012),h [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/53c18be7.4265da6e.js b/zh-cn/assets/js/53c18be7.4265da6e.js
new file mode 100644
index 00000000..a6ffd756
--- /dev/null
+++ b/zh-cn/assets/js/53c18be7.4265da6e.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1609],{12579(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/5820.45fb341a.js b/zh-cn/assets/js/5820.45fb341a.js
new file mode 100644
index 00000000..fd78ece7
--- /dev/null
+++ b/zh-cn/assets/js/5820.45fb341a.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5820],{5820(e,s,c){c.d(s,{createArchitectureServices:()=>i.S});var i=c(83738);c(89932)}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/5b656150.823f78a7.js b/zh-cn/assets/js/5b656150.823f78a7.js
new file mode 100644
index 00000000..0757683f
--- /dev/null
+++ b/zh-cn/assets/js/5b656150.823f78a7.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9721],{34474(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.873c6043.js b/zh-cn/assets/js/5e6cf37e.873c6043.js
new file mode 100644
index 00000000..9a21e1a0
--- /dev/null
+++ b/zh-cn/assets/js/5e6cf37e.873c6043.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4601],{3668(e,n,i){i.d(n,{A:()=>c});const c=i.p+"assets/images/icla-01-83a226e824e1b9a9d08813f21b882e31.png"},26041(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\u7f2 [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/5e95c892.9dfbf0d1.js b/zh-cn/assets/js/5e95c892.9dfbf0d1.js
new file mode 100644
index 00000000..472563c2
--- /dev/null
+++ b/zh-cn/assets/js/5e95c892.9dfbf0d1.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9647],{6298(e,s,r){r.r(s),r.d(s,{default:()=>h});r(57140);var a=r(13526),t=r(7228),u=r(72959),c=r(18713),i=r(5856),l=r(35656);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.030bc557.js b/zh-cn/assets/js/5f5c637e.030bc557.js
new file mode 100644
index 00000000..e3395d47
--- /dev/null
+++ b/zh-cn/assets/js/5f5c637e.030bc557.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[739],{56610(e,n,t){t.d(n,{R:()=>c,x:()=>i});var s=t(57140);const r={},l=s.createContext(r);function c(e){const n=s.useContext(l);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:c(e.components),s.createElement(l.Provider,{value:n},e.children)}},98259(e,n,t) [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/6143.1a358e0a.js b/zh-cn/assets/js/6143.1a358e0a.js
new file mode 100644
index 00000000..be4bea6d
--- /dev/null
+++ b/zh-cn/assets/js/6143.1a358e0a.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6143],{66143(e,t,r){r.d(t,{default:()=>rn});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/621db11d.4eda1efc.js b/zh-cn/assets/js/621db11d.4eda1efc.js
new file mode 100644
index 00000000..a4f1276e
--- /dev/null
+++ b/zh-cn/assets/js/621db11d.4eda1efc.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4212],{21926(t,s,e){e.d(s,{ZD:()=>u,uz:()=>l});e(57140);var a=e(80431),o=e(96550);e(35656);function r(){const{selectMessage:t}=(0,o.W)();return s=>t(s,(0,a.T)({id:"theme.blog.post.plurals",description:'Pluralized label for "{count} posts". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)', [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/6340.7e29156d.js b/zh-cn/assets/js/6340.7e29156d.js
new file mode 100644
index 00000000..f14d861e
--- /dev/null
+++ b/zh-cn/assets/js/6340.7e29156d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6340],{96340(t,n,e){e.d(n,{diagram:()=>ct});var i=e(85459),s=e(34417),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  [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/6376.1224ed14.js b/zh-cn/assets/js/6376.1224ed14.js
new file mode 100644
index 00000000..47248803
--- /dev/null
+++ b/zh-cn/assets/js/6376.1224ed14.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6376],{6376(t,e,i){i.d(e,{diagram:()=>f});var s=i(59461),n=i(87044),r=i(33865),a=(i(20656),i(31254),i(47538),i(49281),i(39895),i(85030),i(53486)),c=i(85459),o=i(34417),l=i(7012),h=i(30941),u=i(80124),y=function(){var t=(0,o.K2)(function(t,e,i,s){for(i=i||{},s=t.length;s--;i[t[s]]=e);return i},"o"),e=[6,8,10,22,24,26,28,33,34,35,36,37,40,43,44,50],i=[1,10],s=[1,11],n=[1,12],r=[1,13],a=[1,20],c=[1,21],l [...]
\ 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/654.218e21d7.js b/zh-cn/assets/js/654.218e21d7.js
new file mode 100644
index 00000000..dda346f9
--- /dev/null
+++ b/zh-cn/assets/js/654.218e21d7.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[654],{60654(e,a,s){s.d(a,{createRadarServices:()=>b.f});var b=s(37884);s(89932)}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/65556891.04ca34f4.js b/zh-cn/assets/js/65556891.04ca34f4.js
new file mode 100644
index 00000000..07c47cc4
--- /dev/null
+++ b/zh-cn/assets/js/65556891.04ca34f4.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6750],{10605(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/6603.a0b87fa9.js b/zh-cn/assets/js/6603.a0b87fa9.js
new file mode 100644
index 00000000..dff72aad
--- /dev/null
+++ b/zh-cn/assets/js/6603.a0b87fa9.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6603],{36603(e,r,s){s.d(r,{diagram:()=>i});var a=s(75182),t=(s(90193),s(59461),s(87044),s(33865),s(20656),s(31254),s(47538),s(49281),s(39895),s(85030),s(53486),s(85459),s(34417)),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/6761.9403c842.js b/zh-cn/assets/js/6761.9403c842.js
new file mode 100644
index 00000000..3d10781b
--- /dev/null
+++ b/zh-cn/assets/js/6761.9403c842.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6761],{6761(e,t,a){a.d(t,{diagram:()=>v});var l=a(88866),s=a(87044),r=a(39895),n=a(69763),i=a(53486),o=a(85459),c=a(34417),d=a(96961),p=a(7012),h=class{constructor(){this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.setAccTitle=o.SV,this.getAccTitle=o.iN,this.setDiagramTitle=o.ke,this.getDiagramTitle=o.ab,this.getAccDescription=o.m7,this.setAccDescription=o.EI}static{(0,c. [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/6873.9beaa798.js b/zh-cn/assets/js/6873.9beaa798.js
new file mode 100644
index 00000000..1657f945
--- /dev/null
+++ b/zh-cn/assets/js/6873.9beaa798.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6873],{46873(t,e,a){a.d(e,{diagram:()=>Pt});var n=a(49727),i=a(53486),r=a(85459),s=a(34417),l=a(7012),o=a(41407),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/6875c492.fcdbaf31.js b/zh-cn/assets/js/6875c492.fcdbaf31.js
new file mode 100644
index 00000000..f45fee90
--- /dev/null
+++ b/zh-cn/assets/js/6875c492.fcdbaf31.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4813],{1509(e,t,s){s.d(t,{A:()=>r});s(57140);var n=s(5733),a=s(88570),i=s(35656);function r({items:e,component:t=a.A}){return(0,i.jsx)(i.Fragment,{children:e.map(({content:e})=>(0,i.jsx)(n.in,{content:e,children:(0,i.jsx)(t,{children:(0,i.jsx)(e,{})})},e.metadata.permalink))})}},21926(e,t,s){s.d(t,{ZD:()=>r,uz:()=>l});s(57140);var n=s(80431),a=s(96550);s(35656);function i(){const{selectMessage:e}=(0,a [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/6961.cddc7e61.js b/zh-cn/assets/js/6961.cddc7e61.js
new file mode 100644
index 00000000..e0ff8994
--- /dev/null
+++ b/zh-cn/assets/js/6961.cddc7e61.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6961],{406(e,t){let n;function r(){if(void 0===n)throw new Error("No runtime abstraction layer installed");return n}Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.install=function(e){if(void 0===e)throw new Error("No runtime abstraction layer provided");n=e}}(r||(r={})),t.default=r},735(e,t,n){n.d(t,{A:()=>i});var r=n(47498);const i=function(e,t,n){for(var i=-1,s=e.length;++i<s;){var a [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/6e79d794.ac7b99d0.js b/zh-cn/assets/js/6e79d794.ac7b99d0.js
new file mode 100644
index 00000000..b8b3c70e
--- /dev/null
+++ b/zh-cn/assets/js/6e79d794.ac7b99d0.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6156],{45027(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.c98e0467.js b/zh-cn/assets/js/6ea91d84.c98e0467.js
new file mode 100644
index 00000000..f4248562
--- /dev/null
+++ b/zh-cn/assets/js/6ea91d84.c98e0467.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9521],{48547(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/7039.abab4d73.js b/zh-cn/assets/js/7039.abab4d73.js
new file mode 100644
index 00000000..1c85b5f0
--- /dev/null
+++ b/zh-cn/assets/js/7039.abab4d73.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7039],{47039(e,s,a){a.d(s,{createGitGraphServices:()=>b.b});var b=a(92381);a(89932)}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/70652f5d.f6e1bae0.js b/zh-cn/assets/js/70652f5d.f6e1bae0.js
new file mode 100644
index 00000000..03a3df51
--- /dev/null
+++ b/zh-cn/assets/js/70652f5d.f6e1bae0.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8226],{21922(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.e93092c1.js b/zh-cn/assets/js/70f646db.e93092c1.js
new file mode 100644
index 00000000..ad18477e
--- /dev/null
+++ b/zh-cn/assets/js/70f646db.e93092c1.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2006],{56610(e,n,t){t.d(n,{R:()=>o,x:()=>c});var s=t(57140);const r={},i=s.createContext(r);function o(e){const n=s.useContext(i);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),s.createElement(i.Provider,{value:n},e.children)}},93519(e,n,t [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/7204.0c6d9d17.js b/zh-cn/assets/js/7204.0c6d9d17.js
new file mode 100644
index 00000000..64f07df1
--- /dev/null
+++ b/zh-cn/assets/js/7204.0c6d9d17.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7204],{67204(t,e,a){a.d(e,{diagram:()=>z});var r=a(88866),n=a(69763),i=a(53486),s=a(85459),o=a(34417),l=a(96961),c={showLegend:!0,ticks:5,max:null,min:0,graticule:"circle"},d={axes:[],curves:[],options:c},g=structuredClone(d),h=s.UI.radar,u=(0,o.K2)(()=>(0,i.$t)({...h,...(0,s.zj)().radar}),"getConfig"),p=(0,o.K2)(()=>g.axes,"getAxes"),x=(0,o.K2)(()=>g.curves,"getCurves"),m=(0,o.K2)(()=>g.options,"getO [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/7616.d0fe4958.js b/zh-cn/assets/js/7616.d0fe4958.js
new file mode 100644
index 00000000..509478da
--- /dev/null
+++ b/zh-cn/assets/js/7616.d0fe4958.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7616],{37616(e,t,a){a.d(t,{diagram:()=>C});var i=a(88866),l=a(69763),n=a(53486),r=a(85459),s=a(34417),o=a(96961),c=a(7012),p=r.UI.pie,d={sections:new Map,showData:!1,config:p},u=d.sections,g=d.showData,h=structuredClone(p),f=(0,s.K2)(()=>structuredClone(h),"getConfig"),m=(0,s.K2)(()=>{u=new Map,g=d.showData,(0,r.IU)()},"clear"),w=(0,s.K2)(({label:e,value:t})=>{if(t<0)throw new Error(`"${e}" has invali [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/7666.f4500271.js b/zh-cn/assets/js/7666.f4500271.js
new file mode 100644
index 00000000..a7b7fbe4
--- /dev/null
+++ b/zh-cn/assets/js/7666.f4500271.js
@@ -0,0 +1,2 @@
+/*! For license information please see 7666.f4500271.js.LICENSE.txt */
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7666],{921(t,e,r){"use strict";r.d(e,{A:()=>s});var i=r(83448),n="object"==typeof exports&&exports&&!exports.nodeType&&exports,a=n&&"object"==typeof module&&module&&!module.nodeType&&module,o=a&&a.exports===n&&i.A.process;const s=function(){try{var t=a&&a.require&&a.require("util").types;return t||o&&o.binding&&o.binding("util")}catch(e){}}()},1272(t,e,r){"use strict";r.d(e,{A:()=>a});var i=r(92751);function n(t,e [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/7666.f4500271.js.LICENSE.txt b/zh-cn/assets/js/7666.f4500271.js.LICENSE.txt
new file mode 100644
index 00000000..2d1bc565
--- /dev/null
+++ b/zh-cn/assets/js/7666.f4500271.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/770.20146c3f.js b/zh-cn/assets/js/770.20146c3f.js
new file mode 100644
index 00000000..173d92e8
--- /dev/null
+++ b/zh-cn/assets/js/770.20146c3f.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[770],{5733(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(57140),n=s(65809),i=s(91365),r=s(35656);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:e [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/77ad7f28.8ce1f65c.js b/zh-cn/assets/js/77ad7f28.8ce1f65c.js
new file mode 100644
index 00000000..0e2265ca
--- /dev/null
+++ b/zh-cn/assets/js/77ad7f28.8ce1f65c.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5863],{47603(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\u68 [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/7876.7a02153a.js b/zh-cn/assets/js/7876.7a02153a.js
new file mode 100644
index 00000000..8be1889a
--- /dev/null
+++ b/zh-cn/assets/js/7876.7a02153a.js
@@ -0,0 +1 @@
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7876],{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/7ab5af9c.8c483339.js b/zh-cn/assets/js/7ab5af9c.8c483339.js
new file mode 100644
index 00000000..22defb75
--- /dev/null
+++ b/zh-cn/assets/js/7ab5af9c.8c483339.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.e67385d1.js b/zh-cn/assets/js/7bacda60.e67385d1.js
new file mode 100644
index 00000000..56e6a0ac
--- /dev/null
+++ b/zh-cn/assets/js/7bacda60.e67385d1.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6815],{50458(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.ae9df450.js b/zh-cn/assets/js/7c8dfedd.ae9df450.js
new file mode 100644
index 00000000..f863d67f
--- /dev/null
+++ b/zh-cn/assets/js/7c8dfedd.ae9df450.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7418],{10332(e,n,d){d.r(n),d.d(n,{assets:()=>l,contentTitle:()=>c,default:()=>h,frontMatter:()=>i,metadata:()=>t,toc:()=>a});const t=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/8071.fd9f1544.js b/zh-cn/assets/js/8071.fd9f1544.js
new file mode 100644
index 00000000..fcccc0ab
--- /dev/null
+++ b/zh-cn/assets/js/8071.fd9f1544.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8071],{68071(t,e,i){i.d(e,{diagram:()=>I});var a=i(85459),n=i(34417),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/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/8383.7a70a26a.js b/zh-cn/assets/js/8383.7a70a26a.js
new file mode 100644
index 00000000..da06ee23
--- /dev/null
+++ b/zh-cn/assets/js/8383.7a70a26a.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8383],{40764(t,e,s){s.d(e,{Zk:()=>h,q7:()=>B,tM:()=>ot,u4:()=>rt});var i=s(59461),n=s(87044),r=s(33865),o=s(53486),a=s(85459),c=s(34417),l=function(){var t=(0,c.K2)(function(t,e,s,i){for(s=s||{},i=t.length;i--;s[t[i]]=e);return s},"o"),e=[1,2],s=[1,3],i=[1,4],n=[2,4],r=[1,9],o=[1,11],a=[1,16],l=[1,17],h=[1,18],d=[1,19],u=[1,33],p=[1,20],y=[1,21],g=[1,22],m=[1,23],f=[1,24],S=[1,26],b=[1,27],k=[1,28],_= [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/84f1c788.d855f396.js b/zh-cn/assets/js/84f1c788.d855f396.js
new file mode 100644
index 00000000..98976706
--- /dev/null
+++ b/zh-cn/assets/js/84f1c788.d855f396.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7106],{25921(e,n,l){l.r(n),l.d(n,{assets:()=>t,contentTitle:()=>c,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/8907.e9f01efb.js b/zh-cn/assets/js/8907.e9f01efb.js
new file mode 100644
index 00000000..8b64c57b
--- /dev/null
+++ b/zh-cn/assets/js/8907.e9f01efb.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8907],{68907(e,s,i){i.d(s,{createPieServices:()=>a.f});var a=i(76764);i(89932)}}]);
\ 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/92380f4a.6fd4e7a3.js b/zh-cn/assets/js/92380f4a.6fd4e7a3.js
new file mode 100644
index 00000000..17673c33
--- /dev/null
+++ b/zh-cn/assets/js/92380f4a.6fd4e7a3.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6016],{22414(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/9344.35131e6a.js b/zh-cn/assets/js/9344.35131e6a.js
new file mode 100644
index 00000000..52123fb9
--- /dev/null
+++ b/zh-cn/assets/js/9344.35131e6a.js
@@ -0,0 +1 @@
+(()=>{"use strict";var e,r,t={39344(e,r,t){t.d(r,{BH:()=>n,Ho:()=>p,IH:()=>i,sx:()=>s});var o=t(36430),a=t.n(o);t(84946)(a()),t(71321).A(a()),t(42537)(a());const s=[],n=["zh","en"],i="search-index{dir}.json?_=264237b9",p=1}},o={};function a(e){var r=o[e];if(void 0!==r)return r.exports;var s=o[e]={exports:{}};return t[e].call(s.exports,s,s.exports,a),s.exports}a.m=t,a.x=()=>{var e=a.O(void 0,[2451],()=>a(83418));return e=a.O(e)},e=[],a.O=(r,t,o,s)=>{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/9569.a6887cc4.js b/zh-cn/assets/js/9569.a6887cc4.js
new file mode 100644
index 00000000..9016e14f
--- /dev/null
+++ b/zh-cn/assets/js/9569.a6887cc4.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9569],{1156(n,t,r){r.d(t,{A:()=>f});var e=r(68448),o=r(1793),u=r(22818),c=r(73665),i=o.A?o.A.isConcatSpreadable:void 0;const a=function(n){return(0,c.A)(n)||(0,u.A)(n)||!!(i&&n&&n[i])};const f=function n(t,r,o,u,c){var i=-1,f=t.length;for(o||(o=a),c||(c=[]);++i<f;){var s=t[i];r>0&&o(s)?r>1?n(s,r-1,o,u,c):(0,e.A)(c,s):u||(c[c.length]=s)}return c}},4465(n,t,r){r.d(t,{A:()=>u});var e=r(87054),o=r(6926);c [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/967.7303b75f.js b/zh-cn/assets/js/967.7303b75f.js
new file mode 100644
index 00000000..0ff71446
--- /dev/null
+++ b/zh-cn/assets/js/967.7303b75f.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[967],{10967(e,s,a){a.d(s,{createPacketServices:()=>b.$});var b=a(82012);a(89932)}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/9748.5bce2a2a.js b/zh-cn/assets/js/9748.5bce2a2a.js
new file mode 100644
index 00000000..c74d7004
--- /dev/null
+++ b/zh-cn/assets/js/9748.5bce2a2a.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9748],{59461(e,t,s){s.d(t,{A:()=>r});var i=s(34417),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")},79748(e,t,s){s.d(t,{diagram:()=>E});var i=s(59461),n=s(87044),r=s(33865),a=(s(20656),s(31254),s(47538),s(49281),s(39895),s(85030),s(53486)),l=s(85459) [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/97fe7548.20cfc970.js b/zh-cn/assets/js/97fe7548.20cfc970.js
new file mode 100644
index 00000000..9da76e06
--- /dev/null
+++ b/zh-cn/assets/js/97fe7548.20cfc970.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7324],{30482(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.fdbb0bd0.js b/zh-cn/assets/js/9904a28c.fdbb0bd0.js
new file mode 100644
index 00000000..8dbf0b96
--- /dev/null
+++ b/zh-cn/assets/js/9904a28c.fdbb0bd0.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5687],{34585(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.2f90a075.js b/zh-cn/assets/js/9951.2f90a075.js
new file mode 100644
index 00000000..69bb877a
--- /dev/null
+++ b/zh-cn/assets/js/9951.2f90a075.js
@@ -0,0 +1,2 @@
+/*! For license information please see 9951.2f90a075.js.LICENSE.txt */
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9951],{7590(t,e,n){"use strict";var i=n(96627),s=n(93234);function r(t){t&&t.el||i.error("EventBus initialized without el"),this.$el=s.element(t.el)}i.mixin(r.prototype,{trigger:function(t,e,n,s){var r=i.Event("autocomplete:"+t);return this.$el.trigger(r,[e,n,s]),r}}),t.exports=r},24146(t){"use strict";var e={}.hasOwnProperty,n=/[ -,\.\/:-@\[-\^`\{-~]/,i=/[ -,\.\/:-@\[\]\^`\{-~]/,s=/(^|\\+)?(\\[A-F0-9]{1,6})\x20(? [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/9951.2f90a075.js.LICENSE.txt b/zh-cn/assets/js/9951.2f90a075.js.LICENSE.txt
new file mode 100644
index 00000000..4f7ccd8a
--- /dev/null
+++ b/zh-cn/assets/js/9951.2f90a075.js.LICENSE.txt
@@ -0,0 +1 @@
+/*! https://mths.be/cssesc v3.0.0 by @mathias */
diff --git a/zh-cn/assets/js/995798e3.b2ac77ff.js b/zh-cn/assets/js/995798e3.b2ac77ff.js
new file mode 100644
index 00000000..73ebd650
--- /dev/null
+++ b/zh-cn/assets/js/995798e3.b2ac77ff.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9414],{16005(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.cba3c088.js b/zh-cn/assets/js/9e4087bc.cba3c088.js
new file mode 100644
index 00000000..db9f338e
--- /dev/null
+++ b/zh-cn/assets/js/9e4087bc.cba3c088.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2711],{54606(e,a,r){r.r(a),r.d(a,{default:()=>m});r(57140);var t=r(85340),s=r(80431),n=r(72959),i=r(98649),c=r(5856),l=r(63320),o=r(35656);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.metadata [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/a08ce007.6e10c957.js b/zh-cn/assets/js/a08ce007.6e10c957.js
new file mode 100644
index 00000000..0576b610
--- /dev/null
+++ b/zh-cn/assets/js/a08ce007.6e10c957.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7439],{56610(e,n,s){s.d(n,{R:()=>d,x:()=>o});var t=s(57140);const r={},i=t.createContext(r);function d(e){const n=t.useContext(i);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:d(e.components),t.createElement(i.Provider,{value:n},e.children)}},59876(e,n,s [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/a1225c8b.ae49b2cc.js b/zh-cn/assets/js/a1225c8b.ae49b2cc.js
new file mode 100644
index 00000000..620ea1e1
--- /dev/null
+++ b/zh-cn/assets/js/a1225c8b.ae49b2cc.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[511],{56610(e,n,t){t.d(n,{R:()=>r,x:()=>a});var s=t(57140);const c={},l=s.createContext(c);function r(e){const n=s.useContext(l);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(c):e.components||c:r(e.components),s.createElement(l.Provider,{value:n},e.children)}},82034(e,n,t) [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/a2451e7a.5c242fab.js b/zh-cn/assets/js/a2451e7a.5c242fab.js
new file mode 100644
index 00000000..658d61fd
--- /dev/null
+++ b/zh-cn/assets/js/a2451e7a.5c242fab.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3173],{48375(e,n,t){t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>i,default:()=>x,frontMatter:()=>c,metadata:()=>d,toc:()=>o});const d=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.bae5e4ee.js b/zh-cn/assets/js/a6aa9e1f.bae5e4ee.js
new file mode 100644
index 00000000..055bc702
--- /dev/null
+++ b/zh-cn/assets/js/a6aa9e1f.bae5e4ee.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7643],{1509(e,t,a){a.d(t,{A:()=>i});a(57140);var s=a(5733),n=a(88570),r=a(35656);function i({items:e,component:t=n.A}){return(0,r.jsx)(r.Fragment,{children:e.map(({content:e})=>(0,r.jsx)(s.in,{content:e,children:(0,r.jsx)(t,{children:(0,r.jsx)(e,{})})},e.metadata.permalink))})}},31768(e,t,a){a.d(t,{A:()=>i});a(57140);var s=a(80431),n=a(56105),r=a(35656);function i(e){const{metadata:t}=e,{previousPage: [...]
\ 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.1aa88fa4.js b/zh-cn/assets/js/a7bd4aaa.1aa88fa4.js
new file mode 100644
index 00000000..d1b080ae
--- /dev/null
+++ b/zh-cn/assets/js/a7bd4aaa.1aa88fa4.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7098],{41271(n,e,s){s.r(e),s.d(e,{default:()=>x});s(57140);var r=s(72959),o=s(84526),t=s(97264),i=s(18713),c=s(56148),a=s(35656);function l(n){const{version:e}=n;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(c.A,{version:e.version,tag:(0,t.k)(e.pluginId,e.version)}),(0,a.jsx)(r.be,{children:e.noIndex&&(0,a.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})]})}function u(n){const{version:e,r [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/a94703ab.95bca685.js b/zh-cn/assets/js/a94703ab.95bca685.js
new file mode 100644
index 00000000..cc6384bf
--- /dev/null
+++ b/zh-cn/assets/js/a94703ab.95bca685.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9048],{22460(e,t,n){n.d(t,{A:()=>l});n(57140);var a=n(13526),i=n(80431),s=n(63320),o=n(35656);function l({className:e}){return(0,o.jsx)("main",{className:(0,a.A)("container margin-vert--xl",e),children:(0,o.jsx)("div",{className:"row",children:(0,o.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,o.jsx)(s.A,{as:"h1",className:"hero__title",children:(0,o.jsx)(i.A,{id:"theme.NotFound.title [...]
\ 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.1510669c.js b/zh-cn/assets/js/b4229a02.1510669c.js
new file mode 100644
index 00000000..c742e8de
--- /dev/null
+++ b/zh-cn/assets/js/b4229a02.1510669c.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9933],{21205(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.f989c370.js b/zh-cn/assets/js/bbd078df.f989c370.js
new file mode 100644
index 00000000..8da8b0df
--- /dev/null
+++ b/zh-cn/assets/js/bbd078df.f989c370.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2080],{36072(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.3e67a0ab.js b/zh-cn/assets/js/be2eec21.3e67a0ab.js
new file mode 100644
index 00000000..ac867c72
--- /dev/null
+++ b/zh-cn/assets/js/be2eec21.3e67a0ab.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":"community","unlisted":false},{"type":"link","href":"/zh-cn/community/maturity","label":" [...]
\ 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.48f9cfc0.js b/zh-cn/assets/js/bf80cbe7.48f9cfc0.js
new file mode 100644
index 00000000..00edaac5
--- /dev/null
+++ b/zh-cn/assets/js/bf80cbe7.48f9cfc0.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1940],{56610(e,n,a){a.d(n,{R:()=>t,x:()=>d});var i=a(57140);const l={},s=i.createContext(l);function t(e){const n=i.useContext(s);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:t(e.components),i.createElement(s.Provider,{value:n},e.children)}},90678(e,n,a [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/c1ff7703.716d535b.js b/zh-cn/assets/js/c1ff7703.716d535b.js
new file mode 100644
index 00000000..3b7bcfd7
--- /dev/null
+++ b/zh-cn/assets/js/c1ff7703.716d535b.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1918],{56610(e,n,c){c.d(n,{R:()=>r,x:()=>s});var i=c(57140);const t={},o=i.createContext(t);function r(e){const n=i.useContext(o);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),i.createElement(o.Provider,{value:n},e.children)}},86470(e,n,c [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/c4f5d8e4.574e21fa.js b/zh-cn/assets/js/c4f5d8e4.574e21fa.js
new file mode 100644
index 00000000..30a87dea
--- /dev/null
+++ b/zh-cn/assets/js/c4f5d8e4.574e21fa.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2634],{4658(e,a,t){t.d(a,{A:()=>q});var l,r,n,c,h,i,f,m,d,s,o,g,E,p,x,w,M,v,R,b,u,P,Z,A,j=t(57140);function y(){return y=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},y.apply(null,arguments)}const q=({title:e,titleId:a,...t})=>j.createElement("svg",y({xmlns:"http://www.w3.org/200 [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/ccc49370.91b04aae.js b/zh-cn/assets/js/ccc49370.91b04aae.js
new file mode 100644
index 00000000..1e8a04c8
--- /dev/null
+++ b/zh-cn/assets/js/ccc49370.91b04aae.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3249],{34121(e,t,n){n.d(t,{AE:()=>o,Rc:()=>r,TT:()=>d,Uh:()=>l,Yh:()=>c});n(57140);var a=n(80431),s=n(83242),i=n(35656);function r(){return(0,i.jsx)(a.A,{id:"theme.contentVisibility.unlistedBanner.title",description:"The unlisted content banner title",children:"Unlisted page"})}function l(){return(0,i.jsx)(a.A,{id:"theme.contentVisibility.unlistedBanner.message",description:"The unlisted content banne [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/cd11f224.143a3a13.js b/zh-cn/assets/js/cd11f224.143a3a13.js
new file mode 100644
index 00000000..867009a3
--- /dev/null
+++ b/zh-cn/assets/js/cd11f224.143a3a13.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2778],{56610(e,n,s){s.d(n,{R:()=>r,x:()=>c});var t=s(57140);const d={},l=t.createContext(d);function r(e){const n=t.useContext(l);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:r(e.components),t.createElement(l.Provider,{value:n},e.children)}},94015(e,n,s [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/d0f020bf.0b3b908f.js b/zh-cn/assets/js/d0f020bf.0b3b908f.js
new file mode 100644
index 00000000..3b11d679
--- /dev/null
+++ b/zh-cn/assets/js/d0f020bf.0b3b908f.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9635],{30636(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.f9719753.js b/zh-cn/assets/js/d58f16ca.f9719753.js
new file mode 100644
index 00000000..8244bea4
--- /dev/null
+++ b/zh-cn/assets/js/d58f16ca.f9719753.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3861],{56610(e,n,c){c.d(n,{R:()=>r,x:()=>o});var t=c(57140);const i={},s=t.createContext(i);function r(e){const n=t.useContext(s);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),t.createElement(s.Provider,{value:n},e.children)}},81208(e,n,c [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/df5d2657.31ce0691.js b/zh-cn/assets/js/df5d2657.31ce0691.js
new file mode 100644
index 00000000..9025b23c
--- /dev/null
+++ b/zh-cn/assets/js/df5d2657.31ce0691.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7342],{9359(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\u300 [...]
\ 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.63a90ce4.js b/zh-cn/assets/js/e3ca1761.63a90ce4.js
new file mode 100644
index 00000000..ac7ef64e
--- /dev/null
+++ b/zh-cn/assets/js/e3ca1761.63a90ce4.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3100],{37390(e,n,s){s.r(n),s.d(n,{assets:()=>o,contentTitle:()=>t,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","sourceDirNa [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/e7985601.0ed17f26.js b/zh-cn/assets/js/e7985601.0ed17f26.js
new file mode 100644
index 00000000..5cf07162
--- /dev/null
+++ b/zh-cn/assets/js/e7985601.0ed17f26.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[764],{56610(n,e,i){i.d(e,{R:()=>t,x:()=>r});var c=i(57140);const l={},s=c.createContext(l);function t(n){const e=c.useContext(s);return c.useMemo(function(){return"function"==typeof n?n(e):{...e,...n}},[e,n])}function r(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(l):n.components||l:t(n.components),c.createElement(s.Provider,{value:e},n.children)}},97516(n,e,i) [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/ea6ff1c0.0a95e3fd.js b/zh-cn/assets/js/ea6ff1c0.0a95e3fd.js
new file mode 100644
index 00000000..daf62389
--- /dev/null
+++ b/zh-cn/assets/js/ea6ff1c0.0a95e3fd.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7003],{56610(e,n,s){s.d(n,{R:()=>c,x:()=>i});var r=s(57140);const d={},t=r.createContext(d);function c(e){const n=r.useContext(t);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:c(e.components),r.createElement(t.Provider,{value:n},e.children)}},92390(e,n,s [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/ec6079f5.34e02b07.js b/zh-cn/assets/js/ec6079f5.34e02b07.js
new file mode 100644
index 00000000..91ed1baf
--- /dev/null
+++ b/zh-cn/assets/js/ec6079f5.34e02b07.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6402],{3249(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","sou [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/f133e5e2.bc9c553d.js b/zh-cn/assets/js/f133e5e2.bc9c553d.js
new file mode 100644
index 00000000..4ae0c6ca
--- /dev/null
+++ b/zh-cn/assets/js/f133e5e2.bc9c553d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[457],{56610(e,n,a){a.d(n,{R:()=>i,x:()=>l});var d=a(57140);const t={},s=d.createContext(t);function i(e){const n=d.useContext(s);return d.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),d.createElement(s.Provider,{value:n},e.children)}},89032(e,n,a) [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/f341d759.b2dc75ba.js b/zh-cn/assets/js/f341d759.b2dc75ba.js
new file mode 100644
index 00000000..dc427241
--- /dev/null
+++ b/zh-cn/assets/js/f341d759.b2dc75ba.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2282],{43422(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.17fff21d.js b/zh-cn/assets/js/f7ff6690.17fff21d.js
new file mode 100644
index 00000000..9ea23ef0
--- /dev/null
+++ b/zh-cn/assets/js/f7ff6690.17fff21d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7065],{56610(e,n,i){i.d(n,{R:()=>r,x:()=>t});var s=i(57140);const c={},l=s.createContext(c);function r(e){const n=s.useContext(l);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function t(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(c):e.components||c:r(e.components),s.createElement(l.Provider,{value:n},e.children)}},66218(e,n,i [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/f98e3ca9.35d00126.js b/zh-cn/assets/js/f98e3ca9.35d00126.js
new file mode 100644
index 00000000..58f16875
--- /dev/null
+++ b/zh-cn/assets/js/f98e3ca9.35d00126.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7381],{56610(e,t,n){n.d(t,{R:()=>a,x:()=>r});var o=n(57140);const s={},c=o.createContext(s);function a(e){const t=o.useContext(c);return o.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),o.createElement(c.Provider,{value:t},e.children)}},64972(e,t,n [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/fa69dec0.01312eac.js b/zh-cn/assets/js/fa69dec0.01312eac.js
new file mode 100644
index 00000000..bec0bb97
--- /dev/null
+++ b/zh-cn/assets/js/fa69dec0.01312eac.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8167],{24200(e,t,n){n.d(t,{A:()=>r});const r=n.p+"assets/images/converterWrite-3246357a06c3ba04afb519b820c19bb2.png"},56610(e,t,n){n.d(t,{R:()=>a,x:()=>o});var r=n(57140);const i={},s=r.createContext(i);function a(e){const t=r.useContext(s);return r.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/main.d6216423.js b/zh-cn/assets/js/main.d6216423.js
new file mode 100644
index 00000000..3275ef4e
--- /dev/null
+++ b/zh-cn/assets/js/main.d6216423.js
@@ -0,0 +1,2 @@
+/*! For license information please see main.d6216423.js.LICENSE.txt */
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8792],{171(e,t,n){"use strict";n.d(t,{A:()=>r});function r(e){const t={};return function e(n,r){Object.entries(n).forEach(([n,a])=>{const o=r?`${r}.${n}`:n;var i;"object"==typeof(i=a)&&i&&Object.keys(i).length>0?e(a,o):t[o]=a})}(e),t}},985(e,t,n){"use strict";n.d(t,{v:()=>i});var r=n(27691);const a="anchorTargetStickyNavbar_qGBP",o="anchorTargetHideOnScrollNavbar_iDjm";function i(e){const{navbar:{hideOnScroll:t}}= [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/main.d6216423.js.LICENSE.txt b/zh-cn/assets/js/main.d6216423.js.LICENSE.txt
new file mode 100644
index 00000000..f4d2c339
--- /dev/null
+++ b/zh-cn/assets/js/main.d6216423.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.54d84d6f.js b/zh-cn/assets/js/runtime~main.54d84d6f.js
new file mode 100644
index 00000000..d1b6cf93
--- /dev/null
+++ b/zh-cn/assets/js/runtime~main.54d84d6f.js
@@ -0,0 +1 @@
+(()=>{"use strict";var e,a,f,c,b,d={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var f=t[e]={exports:{}};return d[e].call(f.exports,f,f.exports,r),f.exports}r.m=d,e=[],r.O=(a,f,c,b)=>{if(!f){var d=1/0;for(i=0;i<e.length;i++){for(var[f,c,b]=e[i],t=!0,o=0;o<f.length;o++)(!1&b||d>=b)&&Object.keys(r.O).every(e=>r.O[e](f[o]))?f.splice(o--,1):(t=!1,b<d&&(d=b));if(t){e.splice(i--,1);var n=c();void 0!==n&&(a=n)}}return a}b=b||0;for(var i=e.length;i>0&&e[i-1][2]>b;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..ea02c258
--- /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.54d84d6f.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.d6216423.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..ab3627e6
--- /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.54d84d6f.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.d6216423.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..16042dff
--- /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.54d84d6f.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.d6216423.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..d2991337
--- /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.54d84d6f.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.d6216423.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..347bdffc
--- /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.54d84d6f.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.d6216423.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..777acc82
--- /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">
+<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/tags [...]
+<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.54d84d6f.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.d6216423.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/community/brand/index.html b/zh-cn/community/brand/index.html
new file mode 100644
index 00000000..4c4047b0
--- /dev/null
+++ b/zh-cn/community/brand/index.html
@@ -0,0 +1,30 @@
+<!doctype html>
+<html lang="zh-cn" 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">品牌 | 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/community [...]
+<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.54d84d6f.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.d6216423.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>点击下载: <a href="/zh-cn/assets/files/fesod-logo-icon-fe2b95b7518918c8494bba4f27944e16.svg" target="_blank" class="">SVG</a> | <a href="/zh-cn/assets/files/fesod-logo-icon-3285667fcb12e822454e1e8bc1296eed.png" target="_blank" class="">PNG</a></p>
+<h2 class="anchor anchorTargetStickyNavbar_qGBP" id="品牌-logo">品牌 Logo<a href="#品牌-logo" class="hash-link" aria-label="品牌 Logo的直接链接" title="品牌 Logo的直接链接" translate="no">​</a></h2>
+<p><img decoding="async" loading="lazy" alt="logo" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iNTkxIiBoZWlnaHQ9IjE4MCIgdmlld0JveD0iMCAwIDU5MSAxODAiIGZpbGw9Im5vbmUiPjxwYXRoICAgICBmaWxsPSIjMTQ4MjRCIiAgZD0iTTk1Ljg4OTcgMTM5LjYyTDY2LjQwMjcgMTEwLjEzM0w2Ni40MDI3IDExMC4xMzNDNjkuODExOSAxMTMuNTQyIDY5LjgxMiAxMTkuMDcgNjYuNDAyNyAxMjIuNDc5TDY2LjI0NzEgMTIyLjYzNUw1MS44OTkzIDEzNi45ODNDNDcuOTk0NCAxND [...]
+<p>点击下载: <a href="/zh-cn/assets/files/fesod-logo-e965e5189d96bd03fa69a35f3d899546.svg" target="_blank" class="">SVG</a> | <a href="/zh-cn/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_uq95"><a href="https://github.com/apache/fesod/edit/main/website/i18n/zh-cn/docusaurus-plugin-content-docs-commun [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/community/committer/become-committer/index.html b/zh-cn/community/committer/become-committer/index.html
new file mode 100644
index 00000000..b949bc14
--- /dev/null
+++ b/zh-cn/community/committer/become-committer/index.html
@@ -0,0 +1,72 @@
+<!doctype html>
+<html lang="zh-cn" 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">如何成为 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/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- [...]
+<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.54d84d6f.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.d6216423.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> - 你可以通过我们的邮件列表、问题追踪器、讨论页面与社区成员互动,并分享愿景和知识。</li>
+<li class=""><strong>(P)roject</strong> - 需要明确的愿景和共识。</li>
+<li class=""><strong>(Do)cumentation</strong> - 没有它,内容只会停留在作者的头脑中。</li>
+<li class=""><strong>(C)ode</strong> - 没有代码,讨论就毫无意义。</li>
+</ul>
+<p>Apache Fesod (Incubating) 社区努力追求基于功绩的原则。因此,一旦有人在 CoPDoC 的任何领域有了足够的贡献,他们就可以成为 Committer 的候选人,最终被投票选为 Apache Fesod (Incubating) 的 Committer。成为 Apache Fesod (Incubating) 的 Committer 并不一定意味着你必须使用你的提交权限向代码库提交代码,它意味着你致力于 Apache Fesod (Incubating) 项目并为我们社区的成功做出了积极的贡献。</p>
+<h2 class="anchor anchorTargetStickyNavbar_qGBP" id="committer-的要求">Committer 的要求<a href="#committer-的要求" class="hash-link" aria-label="Committer 的要求的直接链接" title="Committer 的要求的直接链接" translate="no">​</a></h2>
+<p>没有成为 Committer 的严格规则。新的 Committer 的候选人通常是积极的贡献者和社区成员。但是,如果能稍微明确一些规则,就可以在一定程度上消除贡献者的疑虑,使社区更加透明、合理和公平。</p>
+<h3 class="anchor anchorTargetStickyNavbar_qGBP" id="持续的贡献">持续的贡献<a href="#持续的贡献" class="hash-link" aria-label="持续的贡献的直接链接" title="持续的贡献的直接链接" translate="no">​</a></h3>
+<p>Committer 的候选人应该持续参与并为 Apache Fesod (Incubating) 做出大量的贡献(例如修复漏洞、添加新功能、编写文档、维护问题板、代码审查或回答社区问题)。</p>
+<h3 class="anchor anchorTargetStickyNavbar_qGBP" id="贡献的质量">贡献的质量<a href="#贡献的质量" class="hash-link" aria-label="贡献的质量的直接链接" title="贡献的质量的直接链接" translate="no">​</a></h3>
+<ul>
+<li class="">对项目有深入的理解。</li>
+<li class="">经过充分测试、良好设计、遵循 Apache Fesod (Incubating) 的编码标准,及简单的修复补丁。</li>
+<li class="">井井有条的面向用户的详细文档。</li>
+</ul>
+<h3 class="anchor anchorTargetStickyNavbar_qGBP" id="社区参与">社区参与<a href="#社区参与" class="hash-link" aria-label="社区参与的直接链接" title="社区参与的直接链接" translate="no">​</a></h3>
+<ul>
+<li class="">在开发邮件列表上保持积极、礼貌与尊重,并帮助指导新的贡献者和用户。</li>
+<li class="">在项目维护的问题跟踪器上积极、有礼貌与尊重。</li>
+<li class="">对于拉取请求审查保持积极、有礼貌与尊重。</li>
+<li class="">即使存在分歧,也要以专业和外交的态度参与技术路线图的讨论。</li>
+<li class="">通过撰写文章或举办活动来推广项目。</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_qGBP" id="日常工作">日常工作<a href="#日常工作" class="hash-link" aria-label="日常工作的直接链接" title="日常工作的直接链接" translate="no">​</a></h2>
+<ul>
+<li class="">查看社区待处理的 Pull Request 和 Issue 列表,负责问题的处理
+<ul>
+<li class="">包括标记、回复、关闭 issue 等;</li>
+<li class="">将 issue 分配至熟悉该模块的贡献者;</li>
+</ul>
+</li>
+<li class="">分配 issue 后,需要进行如下判断:
+<ul>
+<li class="">判断是否是长期 issue,如是,则标记为 <code>pending</code>;</li>
+<li class="">判断 issue 类型,如:bug,enhancement,discussion 等;</li>
+<li class="">标记 Milestone。</li>
+</ul>
+</li>
+<li class="">Committer 提交的 PR,需要根据 PR 类型和当前发布的周期标注 Label 和 Milestone。</li>
+<li class="">Committer 审核通过 PR 时,可以进行 “squash and merge” 的操作,如果有问题可以加上 change request 或者 @ 相关人员协助处理。</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_qGBP" id="福利权益">福利权益<a href="#福利权益" class="hash-link" aria-label="福利权益的直接链接" title="福利权益的直接链接" translate="no">​</a></h2>
+<p>每个 Apache Committer 都有资格获得免费 JetBrains 订阅,使他们能够访问 JetBrains 产品包,如 IntelliJ IDEA、PyCharm 和其他桌面工具。</p>
+<p>如果您已是一名 Apache Committer,但未收到免费的 JetBrains 订阅,请使用您的 @apache.org 电子邮件地址 <a href="https://www.jetbrains.com/shop/eform/apache?product=ALL" target="_blank" rel="noopener noreferrer" class="">All Products Packs for Apache committers</a> 以便于 Apache Fesod (Incubating) 的后续开发。</p>
+<p>如果您已经使用了免费的 JetBrains 订阅,遇到 License 到期,可以使用您的 @apache.org 电子邮件地址 续订免费的所有产品包,并在您的 JetBrains 桌面工具(例如 IntelliJ IDEA) 中点击 <code>Refresh license list</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_uq95"><a href="https://github.com/apache/fesod/edit/main/website/i18n/zh-cn/docusaurus-plugin-content-docs-community/current/committer/become-committer.md" target="_blank" rel="noopener [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/community/committer/committer-onboarding/index.html b/zh-cn/community/committer/committer-onboarding/index.html
new file mode 100644
index 00000000..8fae7d51
--- /dev/null
+++ b/zh-cn/community/committer/committer-onboarding/index.html
@@ -0,0 +1,74 @@
+<!doctype html>
+<html lang="zh-cn" dir="ltr" class="docs-wrapper plugin-docs plugin-id-community docs-version-current docs-doc-page docs-doc-id-committer/committer-onboarding" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.2">
+<title data-rh="true">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/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 [...]
+<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.54d84d6f.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.d6216423.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>若决定接受,请选择 <strong>回复所有</strong> 并表明最终决定。回复邮件请包含以下参考内容:</p>
+<div class="language-text codeBlockContainer_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-text codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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_qGBP" id="提交-cla">提交 CLA<a href="#提交-cla" class="hash-link" aria-label="提交 CLA的直接链接" title="提交 CLA的直接链接" translate="no">​</a></h2>
+<p>要求所有贡献者签署一份贡献者许可协议(CLA)。处理步骤参考 <a class="" href="/zh-cn/community/committer/icla">签署 ICLA 指南</a></p>
+<h2 class="anchor anchorTargetStickyNavbar_qGBP" id="设置-asf-账号">设置 ASF 账号<a href="#设置-asf-账号" class="hash-link" aria-label="设置 ASF 账号的直接链接" title="设置 ASF 账号的直接链接" translate="no">​</a></h2>
+<p>进入 <a href="https://id.apache.org/reset/enter" target="_blank" rel="noopener noreferrer" class="">Apache Account Utility</a> 并输入您的Apache ID。</p>
+<p><img decoding="async" loading="lazy" alt="Reset Password" src="/zh-cn/assets/images/reset-passwd-e8828118db9277c6fe25a82a5a0bb3da.png" width="882" height="608" class="img_BbTd"></p>
+<p>点击“Send Email”后,将出现提示信息,表明邮件已成功发送。随后请查收您的邮箱,并点击邮件中提供的链接重置密码。</p>
+<h3 class="anchor anchorTargetStickyNavbar_qGBP" id="关联-github-账号">关联 GitHub 账号<a href="#关联-github-账号" class="hash-link" aria-label="关联 GitHub 账号的直接链接" title="关联 GitHub 账号的直接链接" translate="no">​</a></h3>
+<p><img decoding="async" loading="lazy" alt="Link GitHub" src="/zh-cn/assets/images/link-github-d7d62b2548477c375730056807eacc89.png" width="681" height="178" class="img_BbTd"></p>
+<ol>
+<li class="">访问 <a href="https://gitbox.apache.org/boxer/" target="_blank" rel="noopener noreferrer" class="">ASF Boxer</a>,输入您的 Apache ID 和密码。</li>
+<li class="">点击“Link GitHub username to ASF id”,并按照提示将您的 ASF 账户与 GitHub 绑定。</li>
+<li class="">查收标题为 “[GitHub] @asfgit has invited you to join the @apache organization” 的邮件并接受邀请。</li>
+<li class="">请稍候片刻,网站将自动刷新。</li>
+<li class="">(若您尚未在GitHub启用双重验证)请遵循<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="">操作指南</a>。</li>
+</ol>
+<p>您的 Apache ID 和 GitHub ID 现已同时显示在 <a href="https://gitbox.apache.org/boxer/" target="_blank" rel="noopener noreferrer" class="">ASF Boxer</a> 上。恭喜您成功将 ASF 账户与 GitHub 关联!</p>
+<h2 class="anchor anchorTargetStickyNavbar_qGBP" id="邮箱设置">邮箱设置<a href="#邮箱设置" class="hash-link" aria-label="邮箱设置的直接链接" title="邮箱设置的直接链接" translate="no">​</a></h2>
+<p>您无法直接使用您的 Apache 电子邮件地址进行工作。必须为此地址设置转发功能。</p>
+<h3 class="anchor anchorTargetStickyNavbar_qGBP" id="收取邮件">收取邮件<a href="#收取邮件" class="hash-link" aria-label="收取邮件的直接链接" title="收取邮件的直接链接" translate="no">​</a></h3>
+<p>您可以在<a href="https://id.apache.org/" target="_blank" rel="noopener noreferrer" class="">Apache账户管理平台</a>更改您的邮件转发地址。</p>
+<h3 class="anchor anchorTargetStickyNavbar_qGBP" id="发送邮件">发送邮件<a href="#发送邮件" class="hash-link" aria-label="发送邮件的直接链接" title="发送邮件的直接链接" translate="no">​</a></h3>
+<p>若要使用您的 <code>@apache.org</code> 邮箱地址发送邮件,请配置您的邮件客户端以利用 <code>mail-relay</code> 服务。具体操作请参阅<a href="https://infra.apache.org/committer-email.html" target="_blank" rel="noopener noreferrer" class="">此指南</a>。</p>
+<h3 class="anchor anchorTargetStickyNavbar_qGBP" id="gmail">Gmail<a href="#gmail" class="hash-link" aria-label="Gmail的直接链接" title="Gmail的直接链接" translate="no">​</a></h3>
+<ol>
+<li class="">打开 Gmail 设置选择 &quot;See all settings&quot;.</li>
+<li class="">进入“账户和导入”选项卡,找到“用这个地址发送邮件”。</li>
+<li class="">点击“添加其他电子邮件地址”,输入您的姓名和apache.org邮箱地址。</li>
+<li class="">输入 SMTP 服务器信息:
+<ul>
+<li class="">SMTP 服务器:mail-relay.apache.org</li>
+<li class="">端口:587</li>
+<li class="">用户名:您的 Apache ID</li>
+<li class="">密码:您的 Apache 密码</li>
+<li class="">通过 TLS 建立安全连接</li>
+</ul>
+</li>
+<li class="">点击“添加账户”后,您将收到 Gmail 发送的确认邮件。</li>
+</ol>
+<p><img decoding="async" loading="lazy" alt="Gmail Setting" src="/zh-cn/assets/images/gmail-setting-64fa2bef013a1817489ee6195d293a97.png" width="772" height="418" class="img_BbTd"></p>
+<h3 class="anchor anchorTargetStickyNavbar_qGBP" id="订阅邮件列表">订阅邮件列表<a href="#订阅邮件列表" class="hash-link" aria-label="订阅邮件列表的直接链接" title="订阅邮件列表的直接链接" translate="no">​</a></h3>
+<p>请参考 <a class="" href="/zh-cn/community/#%E5%A6%82%E4%BD%95%E8%AE%A2%E9%98%85%E9%82%AE%E4%BB%B6%E5%88%97%E8%A1%A8">订阅邮件列表</a></p>
+<h2 class="anchor anchorTargetStickyNavbar_qGBP" id="在-github-上启用双因素认证">在 GitHub 上启用双因素认证<a href="#在-github-上启用双因素认证" class="hash-link" aria-label="在 GitHub 上启用双因素认证的直接链接" title="在 GitHub 上启用双因素认证的直接链接" translate="no">​</a></h2>
+<p>双因素认证(2FA)是指结合凭证(如护照)与实体设备(信用卡、短信手机、令牌或指纹等生物特征)共同验证用户身份的认证方式。
+为保障提交者账户安全,我们要求您在GitHub登录及提交代码时启用双因素认证。</p>
+<p>更多详情请参阅<a href="https://help.github.com/articles/requiring-two-factor-authentication-in-your-organization/" target="_blank" rel="noopener noreferrer" class="">双因素认证指南</a>。</p>
+<p>具体操作请参阅<a href="https://help.github.com/articles/configuring-two-factor-authentication-via-a-totp-mobile-app/" target="_blank" rel="noopener noreferrer" class="">通过TOTP启用双因素认证</a>。</p>
+<p>启用双因素认证后,您需通过用户名/密码+手机验证码的方式登录GitHub。</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_uq95"><a href="https://github.com/apache/fesod/edit/main/website/i18n/zh-cn/docusaurus-plugin-content-docs-community/current/committer/onboarding.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/zh-cn/community/committer/icla/index.html b/zh-cn/community/committer/icla/index.html
new file mode 100644
index 00000000..df8e2365
--- /dev/null
+++ b/zh-cn/community/committer/icla/index.html
@@ -0,0 +1,84 @@
+<!doctype html>
+<html lang="zh-cn" 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">签署 iCLA 指南 | 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/c [...]
+<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.54d84d6f.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.d6216423.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>提交 iCLA 的流程如下:</p>
+<h2 class="anchor anchorTargetStickyNavbar_qGBP" id="下载模板">下载模板<a href="#下载模板" class="hash-link" aria-label="下载模板的直接链接" title="下载模板的直接链接" translate="no">​</a></h2>
+<p>点击链接<a href="https://www.apache.org/licenses/contributor-agreements.html#clas" target="_blank" rel="noopener noreferrer" class="">贡献者许可协议</a>,在贡献者许可协议部分找到 iCLA。</p>
+<p><img decoding="async" loading="lazy" alt="iCLA" src="/zh-cn/assets/images/icla-01-83a226e824e1b9a9d08813f21b882e31.png" width="784" height="201" class="img_BbTd"></p>
+<h2 class="anchor anchorTargetStickyNavbar_qGBP" id="填写内容">填写内容<a href="#填写内容" class="hash-link" aria-label="填写内容的直接链接" title="填写内容的直接链接" translate="no">​</a></h2>
+<p><img decoding="async" loading="lazy" alt="iCLA" src="/zh-cn/assets/images/icla-02-e761fe1f9d7c718f085b70b9fba8fc39.png" width="858" height="398" class="img_BbTd"></p>
+<p>请用英文填写以下栏目。</p>
+<ul>
+<li class="">
+<p>全名</p>
+<p>请填写真实姓名。名字在前,姓氏在后。每个单词的首字母需大写。</p>
+</li>
+<li class="">
+<p>公开名称</p>
+<p>公开名称应为真实姓名或笔名,不能和 Apache ID 重复。</p>
+</li>
+<li class="">
+<p>邮寄地址</p>
+<p>英文地址,且需详细至门牌号。</p>
+</li>
+<li class="">
+<p>国家</p>
+<p>请填写您的国家。</p>
+</li>
+<li class="">
+<p>电子邮箱</p>
+<p>请填写个人邮箱地址。</p>
+</li>
+<li class="">
+<p>(可选)Apache ID</p>
+<p>需选择未被占用的唯一Apache ID。请查阅<a href="https://people.apache.org/committer-index.html" target="_blank" rel="noopener noreferrer" class="">ASF提交者ID查询</a>确认可用ID。</p>
+</li>
+<li class="">
+<p>(可选)通知项目</p>
+<p>固定填写: Apache Fesod (Incubating)</p>
+</li>
+</ul>
+<p>参考此案例</p>
+<p><img decoding="async" loading="lazy" alt="iCLA" src="/zh-cn/assets/images/icla-03-c8df2f12ca6b2bc591a4e73aced61280.png" width="721" height="393" class="img_BbTd"></p>
+<h2 class="anchor anchorTargetStickyNavbar_qGBP" id="署名">署名<a href="#署名" class="hash-link" aria-label="署名的直接链接" title="署名的直接链接" translate="no">​</a></h2>
+<p><img decoding="async" loading="lazy" alt="iCLA" src="/zh-cn/assets/images/icla-04-4925b6c82e6383ae69d9e1b0b92d2145.png" width="685" height="112" class="img_BbTd"></p>
+<ul>
+<li class="">
+<p>Please sign:</p>
+<p>官方只接受手写或者 gpg 签名,这里只建议用手写的方式,可以打印文件进行手写签名或者使用电子笔进行签字。</p>
+</li>
+<li class="">
+<p>Date: 签署日期(yyyy-MM-dd)</p>
+</li>
+</ul>
+<h2 class="anchor anchorTargetStickyNavbar_qGBP" id="发送邮件">发送邮件<a href="#发送邮件" class="hash-link" aria-label="发送邮件的直接链接" title="发送邮件的直接链接" translate="no">​</a></h2>
+<p>将签名后的文件拍照或扫描转为 PDF ,并重命名为 &quot;姓名拼音-icla.pdf&quot;.</p>
+<p>请将邮件发送至 <code>secretary@apache.org</code>,并同时抄送至 <code>private@fesod.apache.org</code>。请将 PDF 文件作为附件添加至邮件中。邮件正文内容请参照以下格式:</p>
+<div class="language-text codeBlockContainer_YGft theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__qCg"><pre tabindex="0" class="prism-code language-text codeBlock_VgSf thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_b9qJ"><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>此邮件内容最好附加上之前的 committer 邀请邮件信息, 建议在之前的往来邮件点击回复然后修改标题和收件人等。</p>
+</blockquote>
+<p>等待一段时间后,您将收到来自 <code>root@apache.org</code> 的邮件。</p>
+<p>当您收到主题为“欢迎加入 Apache 软件基金会”的邮件时,恭喜!您已成功获取 Apache 身份认证。</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_uq95"><a href="https://github.com/apache/fesod/edit/main/website/i18n/zh-cn/docusaurus-plugin-content-docs-community/current/committer/icla.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class= [...]
+</body>
+</html>
... 5158 lines suppressed ...


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@fesod.apache.org
For additional commands, e-mail: commits-help@fesod.apache.org