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 2025/10/10 13:13:31 UTC
(fesod) branch gh-pages updated (14a7d5b2 -> 425806c6)
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 14a7d5b2 deploy: f8b8fd0c1f55220cb010362da247c9ed5a9d5765
new 425806c6 deploy: b4d03b5e28d6ddb4730e26a4643b187d5f5da2e3
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 (14a7d5b2)
\
N -- N -- N refs/heads/gh-pages (425806c6)
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 | 8 +--
.../css/styles.0d54af32.css | 2 +-
assets/js/0179594a.7700569f.js | 1 -
assets/js/0179594a.d985a642.js | 1 +
assets/js/01a85c17.c92962ef.js | 1 +
assets/js/01a85c17.cc6aaa0d.js | 1 -
assets/js/035672d3.1afa1f8c.js | 1 +
assets/js/035672d3.d11fefda.js | 1 -
assets/js/08af526d.dc523126.js | 1 +
assets/js/08af526d.ed6aac38.js | 1 -
assets/js/0fc1e0ab.131b6792.js | 1 -
assets/js/0fc1e0ab.32482038.js | 1 +
assets/js/10e1fcd2.4a73b47c.js | 1 +
assets/js/10e1fcd2.a5bf9017.js | 1 -
assets/js/11b43341.8942c101.js | 1 -
assets/js/11b43341.f9a2e07f.js | 1 +
assets/js/138e0e15.93fd5233.js | 1 +
assets/js/141.19b570d4.js | 1 -
assets/js/141.24fbb07f.js | 1 +
assets/js/1562.70da6092.js | 1 +
assets/js/1562.949f2efc.js | 1 -
assets/js/1649.30c8ac4b.js | 2 +
...js.LICENSE.txt => 1649.30c8ac4b.js.LICENSE.txt} | 0
assets/js/1649.e68a7445.js | 2 -
assets/js/1706.1f8c30a9.js | 1 +
assets/js/1706.d07c748b.js | 1 -
assets/js/17896441.69535ef3.js | 1 -
assets/js/17896441.cda04a4c.js | 1 +
assets/js/1800.92fa5fb1.js | 1 +
assets/js/1874.3fc3e393.js | 1 +
assets/js/1874.7da8faf8.js | 1 -
assets/js/1a4e3797.06431859.js | 1 +
assets/js/2063472f.30da6390.js | 1 +
assets/js/2063472f.a34746f5.js | 1 -
assets/js/213c1e68.3871c46f.js | 1 +
assets/js/213c1e68.f169fa30.js | 1 -
assets/js/224f0d80.480a6a46.js | 1 +
assets/js/224f0d80.f05f1a5b.js | 1 -
assets/js/2474.04ecc63b.js | 1 -
assets/js/2474.826e3a10.js | 1 +
assets/js/2774.034962ae.js | 1 -
assets/js/2774.1c2ea4c9.js | 1 +
assets/js/2903.ec20132d.js | 1 -
assets/js/2903.ff39d8c0.js | 1 +
assets/js/299aa024.a97777fd.js | 1 -
assets/js/299aa024.f8e7dac1.js | 1 +
assets/js/33ed5212.48c08793.js | 1 +
assets/js/33ed5212.5803989f.js | 1 -
assets/js/3497.7a3e9736.js | 1 -
assets/js/3497.be66bff8.js | 1 +
assets/js/3582.dfe8ddcd.js | 1 -
assets/js/3582.ebc209f3.js | 1 +
assets/js/366ada8c.790e1f57.js | 1 -
assets/js/366ada8c.e0702a37.js | 1 +
assets/js/36994c47.095709e1.js | 1 -
assets/js/36994c47.d15f2bb2.js | 1 +
assets/js/3899.6ebed361.js | 1 -
assets/js/3899.dd052ef0.js | 1 +
assets/js/3a5084d4.28fad7bd.js | 1 -
assets/js/3a5084d4.48d855ae.js | 1 +
assets/js/3e8bb567.32082d2a.js | 1 +
assets/js/3e8bb567.86c2d306.js | 1 -
assets/js/4273.50520efe.js | 1 +
assets/js/4273.f9a84dc5.js | 1 -
assets/js/4326.a37af5f0.js | 1 -
assets/js/4326.e1457e7a.js | 1 +
assets/js/4383cab8.c1ce96bf.js | 1 +
assets/js/4383cab8.f5a394da.js | 1 -
assets/js/4422.84c7c63f.js | 1 +
assets/js/4422.ae5e21e7.js | 1 -
assets/js/452acb72.13678e14.js | 1 +
assets/js/452acb72.ab6b7f8e.js | 1 -
assets/js/4546.0613b65a.js | 1 -
assets/js/4546.81c8086d.js | 1 +
assets/js/4739.53096e4e.js | 1 -
assets/js/4739.55d7f6da.js | 1 +
assets/js/4860.153916a1.js | 1 +
assets/js/4860.2fa1b451.js | 1 -
assets/js/498dc5b3.ad8c2e53.js | 1 -
assets/js/498dc5b3.ffbc6733.js | 1 +
assets/js/4a783ec1.50458f82.js | 1 +
assets/js/4a783ec1.844e7cbd.js | 1 -
assets/js/512a93d9.5c292749.js | 1 +
assets/js/512a93d9.6b376a5b.js | 1 -
assets/js/5373.1a72a9db.js | 1 -
assets/js/5373.5f2c487c.js | 1 +
assets/js/542af253.2ee9deb2.js | 1 -
assets/js/542af253.a5b10ebe.js | 1 +
assets/js/5438.d5ba87f0.js | 1 +
assets/js/5438.dbf7affe.js | 1 -
assets/js/5571.3f6cb610.js | 1 +
assets/js/5571.c7f48680.js | 1 -
assets/js/55f30539.af417327.js | 1 -
assets/js/55f30539.b91c9bdd.js | 1 +
assets/js/5739.c3af032d.js | 1 +
assets/js/5739.f19706cd.js | 1 -
assets/js/5771c448.7587ad35.js | 1 +
assets/js/5771c448.eb3410cf.js | 1 -
assets/js/5789.b4b3ce96.js | 1 +
assets/js/5789.ed9e603d.js | 1 -
.../5820.830ccb22.js => assets/js/5820.5c72c518.js | 2 +-
assets/js/5956.120a19be.js | 2 +
assets/js/5956.120a19be.js.LICENSE.txt | 76 +++++++++++++++++++++
assets/js/5e95c892.640f9a02.js | 1 +
assets/js/5e95c892.69e413fe.js | 1 -
assets/js/6077.3e9cd678.js | 1 -
assets/js/6077.3e9da91d.js | 1 +
assets/js/621db11d.122f83ab.js | 1 -
assets/js/621db11d.59e11aef.js | 1 +
assets/js/6261.1def33de.js | 1 +
assets/js/6261.911ecda5.js | 1 -
assets/js/{6282.47c683e9.js => 6282.330a9091.js} | 2 +-
assets/js/638.24250962.js | 2 -
assets/js/638.7a92d25d.js | 2 +
....js.LICENSE.txt => 638.7a92d25d.js.LICENSE.txt} | 0
assets/js/6381e667.49cacd1d.js | 1 -
assets/js/6381e667.b156c4aa.js | 1 +
assets/js/6404.7f9e2324.js | 1 +
assets/js/6404.c4706fae.js | 1 -
assets/js/64ca138b.44e7d1ed.js | 1 +
assets/js/64ca138b.697c3973.js | 1 -
assets/js/654.3abdf7ff.js | 1 -
assets/js/654.5fa7080d.js | 1 +
assets/js/66e7b107.4f1a0eee.js | 1 -
assets/js/66e7b107.50d2c642.js | 1 +
assets/js/6875c492.72bfb7c7.js | 1 -
assets/js/6875c492.88d2409f.js | 1 +
assets/js/6961.36d9d743.js | 1 +
assets/js/6961.563054fb.js | 1 -
assets/js/700664e1.ab47238e.js | 1 -
assets/js/700664e1.dbbf5cac.js | 1 +
assets/js/7039.6dc83b31.js | 1 +
assets/js/7039.7b09c78d.js | 1 -
.../7386.dc75dc93.js => assets/js/7386.4982069e.js | 2 +-
assets/js/761d52bb.1d0a0684.js | 1 -
assets/js/761d52bb.81f634e9.js | 1 +
assets/js/814f3328.687cbcac.js | 1 -
assets/js/814f3328.fbaa45bf.js | 1 +
assets/js/8169.0211a31a.js | 1 -
assets/js/8169.088bae5d.js | 1 +
assets/js/81c2829c.3f032cc8.js | 1 -
assets/js/81c2829c.63b1cac5.js | 1 +
assets/js/8215.5b91c7e3.js | 1 -
assets/js/8215.5c5f0d0f.js | 1 +
assets/js/83b4fe73.84dd63b2.js | 1 +
assets/js/83b4fe73.f6eaa954.js | 1 -
assets/js/8454.7630fef1.js | 1 +
assets/js/8454.90a269fb.js | 1 -
assets/js/84c84ccb.6e66fa19.js | 1 -
assets/js/84c84ccb.96d2e0c7.js | 1 +
assets/js/8868.8c0a0d8b.js | 1 -
assets/js/8868.ed06f2e7.js | 1 +
assets/js/8907.1caf6efa.js | 1 +
assets/js/8907.f0460f91.js | 1 -
assets/js/8bddb7f1.2f9c2ed7.js | 1 +
assets/js/8bddb7f1.c29546d6.js | 1 -
assets/js/903f555a.43c7a5ca.js | 1 +
assets/js/903f555a.f9e57d58.js | 1 -
assets/js/9056.30efb9e2.js | 1 +
assets/js/9076.e1984d30.js | 1 -
assets/js/9076.f41581ef.js | 1 +
assets/js/9082.6767289e.js | 1 +
assets/js/9082.7f194996.js | 1 -
assets/js/9294.aa4b85a9.js | 1 -
assets/js/9294.b37daa3d.js | 1 +
assets/js/9312.6c0c9b99.js | 1 +
assets/js/9312.8d27f4fa.js | 1 -
assets/js/939f94eb.50df7a46.js | 1 -
assets/js/939f94eb.8858322e.js | 1 +
assets/js/9629.35cf42ec.js | 1 +
assets/js/9629.ef3e541f.js | 1 -
assets/js/9646.83bab20c.js | 1 +
assets/js/9646.fe47e34b.js | 1 -
assets/js/967.845daf63.js | 1 +
assets/js/967.d17e5b47.js | 1 -
assets/js/9951.39371e10.js | 2 +
assets/js/9951.39371e10.js.LICENSE.txt | 1 +
assets/js/9dc5a89b.563ddd74.js | 1 +
assets/js/9dc5a89b.5fe02826.js | 1 -
assets/js/9e4087bc.3ef4af29.js | 1 -
assets/js/9e4087bc.b4f6636e.js | 1 +
assets/js/a0cc137d.222a3a0f.js | 1 -
assets/js/a0cc137d.3e45b34a.js | 1 +
.../{a4b4544e.276800d8.js => a4b4544e.19e5e647.js} | 2 +-
assets/js/a6aa9e1f.2f6d52db.js | 1 -
assets/js/a6aa9e1f.357af94f.js | 1 +
assets/js/a7456010.e8b3c3c8.js | 1 -
assets/js/a7456010.f2d10e9a.js | 1 +
assets/js/a7bd4aaa.073f01c3.js | 1 +
assets/js/a7bd4aaa.39b4b376.js | 1 -
assets/js/a94703ab.51f518a4.js | 1 -
assets/js/a94703ab.a09ddd7e.js | 1 +
assets/js/aada36dd.665559a2.js | 1 -
assets/js/aada36dd.d81a5005.js | 1 +
assets/js/aba21aa0.b857de80.js | 1 -
assets/js/aba21aa0.f047a422.js | 1 +
assets/js/b8958f49.071a61ec.js | 1 +
assets/js/b8958f49.d2a13829.js | 1 -
assets/js/c3aa4345.8f436a93.js | 1 +
assets/js/c3aa4345.9039d30b.js | 1 -
assets/js/c4f5d8e4.0a412599.js | 1 +
assets/js/c4f5d8e4.dbd5b0c1.js | 1 -
assets/js/c639369e.4dc7d543.js | 1 -
assets/js/c639369e.7f628d8f.js | 1 +
assets/js/c9de33a5.7b6df4c5.js | 1 +
assets/js/c9de33a5.dd485ee2.js | 1 -
assets/js/cabbf3d9.5231626f.js | 1 +
assets/js/cabbf3d9.7b127cf9.js | 1 -
assets/js/ccc49370.858ff68e.js | 1 +
assets/js/ccc49370.89fa7706.js | 1 -
assets/js/cf1fd729.553fe615.js | 1 -
assets/js/cf1fd729.f99bf6bb.js | 1 +
assets/js/cfa642a3.19b92fbf.js | 1 +
assets/js/cfa642a3.2a0d0fd3.js | 1 -
assets/js/dbfc4782.203eb664.js | 1 +
assets/js/dbfc4782.2e689f17.js | 1 -
assets/js/dd04b75e.b9b4d749.js | 1 -
assets/js/dd04b75e.d207b88d.js | 1 +
assets/js/dd53d751.4e55fc78.js | 1 -
assets/js/dd53d751.efd388f1.js | 1 +
assets/js/de3da009.3998cb62.js | 1 -
assets/js/de3da009.3e23772a.js | 1 +
assets/js/e0719818.011f203c.js | 1 +
assets/js/e0719818.af2a1171.js | 1 -
assets/js/e2f5eafd.407c4e15.js | 1 -
assets/js/e2f5eafd.a0df8a4e.js | 1 +
assets/js/ecc2f85f.13d5666d.js | 1 +
assets/js/ecc2f85f.28d5bb92.js | 1 -
assets/js/edc931f8.3083c51b.js | 1 +
assets/js/edc931f8.f48a8fa9.js | 1 -
assets/js/ee1b4450.97a5d69a.js | 1 -
assets/js/ee1b4450.f7c5b7db.js | 1 +
assets/js/eece2e17.6b9cc232.js | 1 +
assets/js/eece2e17.9831e9a1.js | 1 -
assets/js/f1f22f0f.5c56ab5f.js | 1 +
assets/js/f1f22f0f.e022d144.js | 1 -
assets/js/f37f84bf.76817602.js | 1 -
assets/js/f37f84bf.e11e010d.js | 1 +
assets/js/f9e23376.1afd8a32.js | 1 -
assets/js/f9e23376.e86fa0ed.js | 1 +
assets/js/fae1940b.88ef9d0d.js | 1 -
assets/js/fae1940b.eb944475.js | 1 +
assets/js/main.68e001e2.js | 2 +
.../js/main.68e001e2.js.LICENSE.txt | 77 ++++++++++++++++++++++
assets/js/main.d53a448f.js | 2 -
assets/js/runtime~main.7d82d99a.js | 1 +
assets/js/runtime~main.ed2762a4.js | 1 -
.../17/fesod-entered-apache-incubator/index.html | 8 +--
blog/archive/index.html | 8 +--
blog/authors/index.html | 8 +--
blog/index.html | 8 +--
blog/tags/announcement/index.html | 8 +--
blog/tags/index.html | 8 +--
community/committer/become-committer/index.html | 8 +--
.../committer/committer-onboarding/index.html | 8 +--
community/committer/icla/index.html | 8 +--
.../contribution/code-review-guide/index.html | 8 +--
community/contribution/commit-format/index.html | 8 +--
community/contribution/contribute-code/index.html | 8 +--
community/contribution/contribute-doc/index.html | 8 +--
community/contribution/index.html | 8 +--
community/feedback/index.html | 8 +--
community/index.html | 8 +--
community/maturity/index.html | 8 +--
community/pmc/become-pmc-member/index.html | 8 +--
community/pmc/nominate-committer/index.html | 8 +--
community/pmc/pmc-onboarding/index.html | 8 +--
community/release/release-version/index.html | 8 +--
community/release/verify-release/index.html | 8 +--
community/security/index.html | 8 +--
docs/download/index.html | 8 +--
docs/fill/index.html | 8 +--
docs/help/annotation/index.html | 8 +--
docs/help/core-class/index.html | 8 +--
docs/help/faq/index.html | 8 +--
docs/help/large-data/index.html | 8 +--
docs/help/parameter/index.html | 8 +--
docs/index.html | 8 +--
docs/quickstart/guide/index.html | 8 +--
docs/quickstart/simple-example/index.html | 8 +--
docs/read/converter/index.html | 8 +--
docs/read/csv/index.html | 8 +--
docs/read/exception/index.html | 8 +--
docs/read/extra/index.html | 8 +--
docs/read/head/index.html | 8 +--
docs/read/num-rows/index.html | 8 +--
docs/read/pojo/index.html | 8 +--
docs/read/sheet/index.html | 8 +--
docs/read/simple/index.html | 8 +--
docs/read/spring/index.html | 8 +--
docs/write/csv/index.html | 8 +--
docs/write/extra/index.html | 8 +--
docs/write/format/index.html | 8 +--
docs/write/head/index.html | 8 +--
docs/write/image/index.html | 8 +--
docs/write/pojo/index.html | 8 +--
docs/write/sheet/index.html | 8 +--
docs/write/simple/index.html | 8 +--
docs/write/spring/index.html | 8 +--
docs/write/style/index.html | 8 +--
index.html | 8 +--
search-index.json | 1 +
search/index.html | 25 +++++++
sitemap.xml | 2 +-
team/index.html | 6 +-
zh-cn/404.html | 8 +--
.../assets/css/styles.0d54af32.css | 2 +-
zh-cn/assets/js/00e1230c.83b833a6.js | 1 -
zh-cn/assets/js/00e1230c.ccd6aa45.js | 1 +
zh-cn/assets/js/01a85c17.c92962ef.js | 1 +
zh-cn/assets/js/01a85c17.cc6aaa0d.js | 1 -
zh-cn/assets/js/026e6981.66c9bede.js | 1 +
zh-cn/assets/js/026e6981.70856b48.js | 1 -
zh-cn/assets/js/035672d3.1afa1f8c.js | 1 +
zh-cn/assets/js/035672d3.d11fefda.js | 1 -
zh-cn/assets/js/0e7f7048.4d086058.js | 1 -
zh-cn/assets/js/0e7f7048.fb8b58a2.js | 1 +
zh-cn/assets/js/12751524.4937b7cf.js | 1 +
zh-cn/assets/js/12751524.5774122b.js | 1 -
zh-cn/assets/js/138e0e15.93fd5233.js | 1 +
zh-cn/assets/js/141.19b570d4.js | 1 -
zh-cn/assets/js/141.24fbb07f.js | 1 +
zh-cn/assets/js/14fc6b04.560da5ed.js | 1 +
zh-cn/assets/js/14fc6b04.a0a9ac37.js | 1 -
zh-cn/assets/js/1562.70da6092.js | 1 +
zh-cn/assets/js/1562.949f2efc.js | 1 -
zh-cn/assets/js/162d40fa.b4ab4eee.js | 1 -
zh-cn/assets/js/162d40fa.ee98f4b4.js | 1 +
zh-cn/assets/js/1649.90e806a8.js | 2 +
...js.LICENSE.txt => 1649.90e806a8.js.LICENSE.txt} | 0
zh-cn/assets/js/1649.cfac3541.js | 2 -
zh-cn/assets/js/1706.1f8c30a9.js | 1 +
zh-cn/assets/js/1706.d07c748b.js | 1 -
zh-cn/assets/js/17896441.69535ef3.js | 1 -
zh-cn/assets/js/17896441.cda04a4c.js | 1 +
zh-cn/assets/js/1800.b58deb51.js | 1 +
zh-cn/assets/js/1874.3fc3e393.js | 1 +
zh-cn/assets/js/1874.7da8faf8.js | 1 -
zh-cn/assets/js/18b1fbba.1e6f2157.js | 1 -
zh-cn/assets/js/18b1fbba.7b3e5195.js | 1 +
zh-cn/assets/js/1a3b291f.07cd6940.js | 1 -
zh-cn/assets/js/1a3b291f.1883e1ee.js | 1 +
zh-cn/assets/js/1a4e3797.06431859.js | 1 +
zh-cn/assets/js/1ba16981.01318a93.js | 1 +
zh-cn/assets/js/1ba16981.4921f761.js | 1 -
zh-cn/assets/js/1d61c132.0321ae1e.js | 1 -
zh-cn/assets/js/1d61c132.b179d2e5.js | 1 +
zh-cn/assets/js/23f7ca76.6053caff.js | 1 +
zh-cn/assets/js/23f7ca76.7c4e48a4.js | 1 -
zh-cn/assets/js/2474.04ecc63b.js | 1 -
zh-cn/assets/js/2474.826e3a10.js | 1 +
zh-cn/assets/js/27573f0c.b6150638.js | 1 -
zh-cn/assets/js/27573f0c.ec9987b4.js | 1 +
zh-cn/assets/js/2774.034962ae.js | 1 -
zh-cn/assets/js/2774.1c2ea4c9.js | 1 +
zh-cn/assets/js/2810e9cc.c020efa9.js | 1 -
zh-cn/assets/js/2810e9cc.fbe306a2.js | 1 +
zh-cn/assets/js/2903.ec20132d.js | 1 -
zh-cn/assets/js/2903.ff39d8c0.js | 1 +
zh-cn/assets/js/2fc01e78.20d58143.js | 1 -
zh-cn/assets/js/2fc01e78.28f42c11.js | 1 +
zh-cn/assets/js/344239d7.848e1b9f.js | 1 -
zh-cn/assets/js/344239d7.8c729459.js | 1 +
zh-cn/assets/js/3497.7a3e9736.js | 1 -
zh-cn/assets/js/3497.be66bff8.js | 1 +
zh-cn/assets/js/3582.dfe8ddcd.js | 1 -
zh-cn/assets/js/3582.ebc209f3.js | 1 +
zh-cn/assets/js/35ef6288.3cd4e7c9.js | 1 -
zh-cn/assets/js/35ef6288.e32e4c93.js | 1 +
zh-cn/assets/js/3696a4b8.14367ded.js | 1 -
zh-cn/assets/js/3696a4b8.9753c5c3.js | 1 +
zh-cn/assets/js/36994c47.095709e1.js | 1 -
zh-cn/assets/js/36994c47.d15f2bb2.js | 1 +
zh-cn/assets/js/3899.6ebed361.js | 1 -
zh-cn/assets/js/3899.dd052ef0.js | 1 +
zh-cn/assets/js/3adce689.04d58c76.js | 1 +
zh-cn/assets/js/3adce689.d6c6b350.js | 1 -
zh-cn/assets/js/4273.50520efe.js | 1 +
zh-cn/assets/js/4273.f9a84dc5.js | 1 -
zh-cn/assets/js/4326.a37af5f0.js | 1 -
zh-cn/assets/js/4326.e1457e7a.js | 1 +
zh-cn/assets/js/4422.84c7c63f.js | 1 +
zh-cn/assets/js/4422.ae5e21e7.js | 1 -
zh-cn/assets/js/4546.0613b65a.js | 1 -
zh-cn/assets/js/4546.81c8086d.js | 1 +
zh-cn/assets/js/46d6cbfe.1ce0728b.js | 1 -
zh-cn/assets/js/46d6cbfe.c95e9068.js | 1 +
zh-cn/assets/js/4739.53096e4e.js | 1 -
zh-cn/assets/js/4739.55d7f6da.js | 1 +
zh-cn/assets/js/4860.153916a1.js | 1 +
zh-cn/assets/js/4860.2fa1b451.js | 1 -
zh-cn/assets/js/4ccddeda.312563cf.js | 1 -
zh-cn/assets/js/4ccddeda.43569d9f.js | 1 +
zh-cn/assets/js/516dc88b.b2970922.js | 1 -
zh-cn/assets/js/516dc88b.d9aecb02.js | 1 +
zh-cn/assets/js/5373.1a72a9db.js | 1 -
zh-cn/assets/js/5373.5f2c487c.js | 1 +
zh-cn/assets/js/5438.d5ba87f0.js | 1 +
zh-cn/assets/js/5438.dbf7affe.js | 1 -
zh-cn/assets/js/5571.3f6cb610.js | 1 +
zh-cn/assets/js/5571.c7f48680.js | 1 -
zh-cn/assets/js/5739.c3af032d.js | 1 +
zh-cn/assets/js/5739.f19706cd.js | 1 -
zh-cn/assets/js/5789.b4b3ce96.js | 1 +
zh-cn/assets/js/5789.ed9e603d.js | 1 -
.../assets/js/5820.5c72c518.js | 2 +-
zh-cn/assets/js/5956.120a19be.js | 2 +
zh-cn/assets/js/5956.120a19be.js.LICENSE.txt | 76 +++++++++++++++++++++
zh-cn/assets/js/5e6cf37e.9772c714.js | 1 +
zh-cn/assets/js/5e6cf37e.f6308a39.js | 1 -
zh-cn/assets/js/5e95c892.640f9a02.js | 1 +
zh-cn/assets/js/5e95c892.69e413fe.js | 1 -
zh-cn/assets/js/6077.3e9cd678.js | 1 -
zh-cn/assets/js/6077.3e9da91d.js | 1 +
zh-cn/assets/js/621db11d.122f83ab.js | 1 -
zh-cn/assets/js/621db11d.59e11aef.js | 1 +
zh-cn/assets/js/6261.1def33de.js | 1 +
zh-cn/assets/js/6261.911ecda5.js | 1 -
.../js/{6282.47c683e9.js => 6282.330a9091.js} | 2 +-
zh-cn/assets/js/638.24250962.js | 2 -
zh-cn/assets/js/638.7a92d25d.js | 2 +
....js.LICENSE.txt => 638.7a92d25d.js.LICENSE.txt} | 0
zh-cn/assets/js/6404.7f9e2324.js | 1 +
zh-cn/assets/js/6404.c4706fae.js | 1 -
zh-cn/assets/js/654.3abdf7ff.js | 1 -
zh-cn/assets/js/654.5fa7080d.js | 1 +
zh-cn/assets/js/6875c492.72bfb7c7.js | 1 -
zh-cn/assets/js/6875c492.88d2409f.js | 1 +
zh-cn/assets/js/6961.36d9d743.js | 1 +
zh-cn/assets/js/6961.563054fb.js | 1 -
zh-cn/assets/js/6c661db7.72860fd1.js | 1 -
zh-cn/assets/js/6c661db7.91ea0c73.js | 1 +
zh-cn/assets/js/6e79d794.16224036.js | 1 -
zh-cn/assets/js/6e79d794.47441941.js | 1 +
zh-cn/assets/js/6f28ad3d.37513091.js | 1 +
zh-cn/assets/js/6f28ad3d.c6c52a44.js | 1 -
zh-cn/assets/js/7039.6dc83b31.js | 1 +
zh-cn/assets/js/7039.7b09c78d.js | 1 -
zh-cn/assets/js/70652f5d.7f23efdd.js | 1 -
zh-cn/assets/js/70652f5d.d482fa9b.js | 1 +
zh-cn/assets/js/7265.666cea15.js | 1 +
zh-cn/assets/js/7265.c68101db.js | 1 -
.../assets/js/7386.4982069e.js | 2 +-
zh-cn/assets/js/7575123d.43e2ebe4.js | 1 -
zh-cn/assets/js/7575123d.be2b14e8.js | 1 +
zh-cn/assets/js/76428bda.7358cda9.js | 1 -
zh-cn/assets/js/76428bda.ee481806.js | 1 +
zh-cn/assets/js/76ebeaa2.5134a0f6.js | 1 +
zh-cn/assets/js/76ebeaa2.7c5c29f8.js | 1 -
zh-cn/assets/js/7bacda60.93a9a2f9.js | 1 -
zh-cn/assets/js/7bacda60.ec71ab47.js | 1 +
zh-cn/assets/js/7c8dfedd.301a883a.js | 1 -
zh-cn/assets/js/7c8dfedd.bdd5e146.js | 1 +
zh-cn/assets/js/7ed646c5.a50770b0.js | 1 +
zh-cn/assets/js/7ed646c5.b17a85b0.js | 1 -
zh-cn/assets/js/814f3328.c5c64dd3.js | 1 +
zh-cn/assets/js/814f3328.ca062406.js | 1 -
zh-cn/assets/js/8169.0211a31a.js | 1 -
zh-cn/assets/js/8169.088bae5d.js | 1 +
zh-cn/assets/js/8215.5b91c7e3.js | 1 -
zh-cn/assets/js/8215.5c5f0d0f.js | 1 +
zh-cn/assets/js/8454.7630fef1.js | 1 +
zh-cn/assets/js/8454.90a269fb.js | 1 -
zh-cn/assets/js/8868.8c0a0d8b.js | 1 -
zh-cn/assets/js/8868.ed06f2e7.js | 1 +
zh-cn/assets/js/8907.1caf6efa.js | 1 +
zh-cn/assets/js/8907.f0460f91.js | 1 -
zh-cn/assets/js/8d4cdedc.04d6b289.js | 1 -
zh-cn/assets/js/8d4cdedc.d41d40a7.js | 1 +
zh-cn/assets/js/9056.30efb9e2.js | 1 +
zh-cn/assets/js/9076.e1984d30.js | 1 -
zh-cn/assets/js/9076.f41581ef.js | 1 +
zh-cn/assets/js/9082.6767289e.js | 1 +
zh-cn/assets/js/9082.7f194996.js | 1 -
zh-cn/assets/js/91fb5ccc.1a409b24.js | 1 -
zh-cn/assets/js/91fb5ccc.bb25cf41.js | 1 +
zh-cn/assets/js/92380f4a.00fa75e9.js | 1 +
zh-cn/assets/js/92380f4a.148e20fd.js | 1 -
zh-cn/assets/js/9294.aa4b85a9.js | 1 -
zh-cn/assets/js/9294.b37daa3d.js | 1 +
zh-cn/assets/js/9312.6c0c9b99.js | 1 +
zh-cn/assets/js/9312.8d27f4fa.js | 1 -
zh-cn/assets/js/9629.35cf42ec.js | 1 +
zh-cn/assets/js/9629.ef3e541f.js | 1 -
zh-cn/assets/js/967.845daf63.js | 1 +
zh-cn/assets/js/967.d17e5b47.js | 1 -
zh-cn/assets/js/981ce938.5321531a.js | 1 +
zh-cn/assets/js/981ce938.62dfc932.js | 1 -
zh-cn/assets/js/98d765ba.b9587f45.js | 1 -
zh-cn/assets/js/98d765ba.f4ab26c0.js | 1 +
zh-cn/assets/js/9951.39371e10.js | 2 +
zh-cn/assets/js/9951.39371e10.js.LICENSE.txt | 1 +
zh-cn/assets/js/9a0089cf.043ab9e6.js | 1 -
zh-cn/assets/js/9a0089cf.4cfa8a22.js | 1 +
zh-cn/assets/js/9d584252.74b69b54.js | 1 -
zh-cn/assets/js/9d584252.c76106ce.js | 1 +
zh-cn/assets/js/9e4087bc.3ef4af29.js | 1 -
zh-cn/assets/js/9e4087bc.b4f6636e.js | 1 +
zh-cn/assets/js/a08ce007.0c85a48f.js | 1 -
zh-cn/assets/js/a08ce007.8ba68599.js | 1 +
zh-cn/assets/js/a1225c8b.351b2f9b.js | 1 -
zh-cn/assets/js/a1225c8b.a9c4c2ec.js | 1 +
zh-cn/assets/js/a6aa9e1f.2f6d52db.js | 1 -
zh-cn/assets/js/a6aa9e1f.357af94f.js | 1 +
zh-cn/assets/js/a7456010.e8b3c3c8.js | 1 -
zh-cn/assets/js/a7456010.f2d10e9a.js | 1 +
zh-cn/assets/js/a7bd4aaa.073f01c3.js | 1 +
zh-cn/assets/js/a7bd4aaa.39b4b376.js | 1 -
zh-cn/assets/js/a94703ab.51f518a4.js | 1 -
zh-cn/assets/js/a94703ab.a09ddd7e.js | 1 +
zh-cn/assets/js/aba21aa0.b857de80.js | 1 -
zh-cn/assets/js/aba21aa0.f047a422.js | 1 +
zh-cn/assets/js/aec1ea7d.1c0ba9a8.js | 1 +
zh-cn/assets/js/aec1ea7d.bca23d67.js | 1 -
zh-cn/assets/js/b1c23739.7456b2c8.js | 1 +
zh-cn/assets/js/b1c23739.b5a4b1fb.js | 1 -
zh-cn/assets/js/b76e6c4a.0c0e2618.js | 1 -
zh-cn/assets/js/b76e6c4a.ec4f18a4.js | 1 +
zh-cn/assets/js/b8ed1609.64759653.js | 1 +
zh-cn/assets/js/b8ed1609.831401f5.js | 1 -
zh-cn/assets/js/c1ff7703.b4df307f.js | 1 -
zh-cn/assets/js/c1ff7703.d8d22201.js | 1 +
zh-cn/assets/js/c4f5d8e4.0a412599.js | 1 +
zh-cn/assets/js/c4f5d8e4.dbd5b0c1.js | 1 -
zh-cn/assets/js/c6ce0837.5eee261b.js | 1 -
zh-cn/assets/js/c6ce0837.e708f7cc.js | 1 +
zh-cn/assets/js/c96ca1a6.1a3e30d2.js | 1 -
zh-cn/assets/js/c96ca1a6.5b4d40f3.js | 1 +
zh-cn/assets/js/ccc49370.858ff68e.js | 1 +
zh-cn/assets/js/ccc49370.89fa7706.js | 1 -
zh-cn/assets/js/d5087300.94746e0f.js | 1 -
zh-cn/assets/js/d5087300.f7040810.js | 1 +
zh-cn/assets/js/d58f16ca.96d089e7.js | 1 -
zh-cn/assets/js/d58f16ca.bc513d74.js | 1 +
zh-cn/assets/js/ddc7dbcd.cc48f272.js | 1 +
zh-cn/assets/js/ddc7dbcd.d1e71d16.js | 1 -
zh-cn/assets/js/e0719818.011f203c.js | 1 +
zh-cn/assets/js/e0719818.af2a1171.js | 1 -
zh-cn/assets/js/e3ca1761.847b9517.js | 1 -
zh-cn/assets/js/e3ca1761.c3891d9b.js | 1 +
zh-cn/assets/js/e7985601.26a3715d.js | 1 -
zh-cn/assets/js/e7985601.895bcfb2.js | 1 +
zh-cn/assets/js/e946020f.2b6a6f9d.js | 1 +
zh-cn/assets/js/e946020f.b5698851.js | 1 -
zh-cn/assets/js/f7ff6690.05c4575a.js | 1 +
zh-cn/assets/js/f7ff6690.5d1403d8.js | 1 -
zh-cn/assets/js/f98e3ca9.5a090b3e.js | 1 -
zh-cn/assets/js/f98e3ca9.b1d588d6.js | 1 +
zh-cn/assets/js/main.66e70ed2.js | 2 -
zh-cn/assets/js/main.f32a72ca.js | 2 +
.../assets/js/main.f32a72ca.js.LICENSE.txt | 77 ++++++++++++++++++++++
zh-cn/assets/js/runtime~main.9066dff5.js | 1 +
zh-cn/assets/js/runtime~main.dee91e2f.js | 1 -
.../17/fesod-entered-apache-incubator/index.html | 8 +--
zh-cn/blog/archive/index.html | 8 +--
zh-cn/blog/authors/index.html | 8 +--
zh-cn/blog/index.html | 8 +--
zh-cn/blog/tags/announcement/index.html | 8 +--
zh-cn/blog/tags/index.html | 8 +--
.../committer/become-committer/index.html | 8 +--
.../committer/committer-onboarding/index.html | 8 +--
zh-cn/community/committer/icla/index.html | 8 +--
.../contribution/code-review-guide/index.html | 8 +--
.../contribution/commit-format/index.html | 8 +--
.../contribution/contribute-code/index.html | 8 +--
.../contribution/contribute-doc/index.html | 8 +--
zh-cn/community/contribution/index.html | 8 +--
zh-cn/community/feedback/index.html | 8 +--
zh-cn/community/index.html | 8 +--
zh-cn/community/maturity/index.html | 8 +--
zh-cn/community/pmc/become-pmc-member/index.html | 8 +--
zh-cn/community/pmc/nominate-committer/index.html | 8 +--
zh-cn/community/pmc/pmc-onboarding/index.html | 8 +--
zh-cn/community/release/release-version/index.html | 8 +--
zh-cn/community/release/verify-release/index.html | 8 +--
zh-cn/community/security/index.html | 8 +--
zh-cn/docs/download/index.html | 8 +--
zh-cn/docs/fill/index.html | 8 +--
zh-cn/docs/help/annotation/index.html | 8 +--
zh-cn/docs/help/core-class/index.html | 8 +--
zh-cn/docs/help/faq/index.html | 8 +--
zh-cn/docs/help/large-data/index.html | 8 +--
zh-cn/docs/help/parameter/index.html | 8 +--
zh-cn/docs/index.html | 8 +--
zh-cn/docs/quickstart/guide/index.html | 8 +--
zh-cn/docs/quickstart/simple-example/index.html | 8 +--
zh-cn/docs/read/converter/index.html | 8 +--
zh-cn/docs/read/csv/index.html | 8 +--
zh-cn/docs/read/exception/index.html | 8 +--
zh-cn/docs/read/extra/index.html | 8 +--
zh-cn/docs/read/head/index.html | 8 +--
zh-cn/docs/read/num-rows/index.html | 8 +--
zh-cn/docs/read/pojo/index.html | 8 +--
zh-cn/docs/read/sheet/index.html | 8 +--
zh-cn/docs/read/simple/index.html | 8 +--
zh-cn/docs/read/spring/index.html | 8 +--
zh-cn/docs/write/csv/index.html | 8 +--
zh-cn/docs/write/extra/index.html | 8 +--
zh-cn/docs/write/format/index.html | 8 +--
zh-cn/docs/write/head/index.html | 8 +--
zh-cn/docs/write/image/index.html | 8 +--
zh-cn/docs/write/pojo/index.html | 8 +--
zh-cn/docs/write/sheet/index.html | 8 +--
zh-cn/docs/write/simple/index.html | 8 +--
zh-cn/docs/write/spring/index.html | 8 +--
zh-cn/docs/write/style/index.html | 8 +--
zh-cn/index.html | 8 +--
zh-cn/search-index.json | 1 +
zh-cn/search/index.html | 25 +++++++
zh-cn/sitemap.xml | 2 +-
zh-cn/team/index.html | 6 +-
611 files changed, 1070 insertions(+), 694 deletions(-)
rename zh-cn/assets/css/styles.f0dd395c.css => assets/css/styles.0d54af32.css (63%)
delete mode 100644 assets/js/0179594a.7700569f.js
create mode 100644 assets/js/0179594a.d985a642.js
create mode 100644 assets/js/01a85c17.c92962ef.js
delete mode 100644 assets/js/01a85c17.cc6aaa0d.js
create mode 100644 assets/js/035672d3.1afa1f8c.js
delete mode 100644 assets/js/035672d3.d11fefda.js
create mode 100644 assets/js/08af526d.dc523126.js
delete mode 100644 assets/js/08af526d.ed6aac38.js
delete mode 100644 assets/js/0fc1e0ab.131b6792.js
create mode 100644 assets/js/0fc1e0ab.32482038.js
create mode 100644 assets/js/10e1fcd2.4a73b47c.js
delete mode 100644 assets/js/10e1fcd2.a5bf9017.js
delete mode 100644 assets/js/11b43341.8942c101.js
create mode 100644 assets/js/11b43341.f9a2e07f.js
create mode 100644 assets/js/138e0e15.93fd5233.js
delete mode 100644 assets/js/141.19b570d4.js
create mode 100644 assets/js/141.24fbb07f.js
create mode 100644 assets/js/1562.70da6092.js
delete mode 100644 assets/js/1562.949f2efc.js
create mode 100644 assets/js/1649.30c8ac4b.js
rename assets/js/{1649.e68a7445.js.LICENSE.txt => 1649.30c8ac4b.js.LICENSE.txt} (100%)
delete mode 100644 assets/js/1649.e68a7445.js
create mode 100644 assets/js/1706.1f8c30a9.js
delete mode 100644 assets/js/1706.d07c748b.js
delete mode 100644 assets/js/17896441.69535ef3.js
create mode 100644 assets/js/17896441.cda04a4c.js
create mode 100644 assets/js/1800.92fa5fb1.js
create mode 100644 assets/js/1874.3fc3e393.js
delete mode 100644 assets/js/1874.7da8faf8.js
create mode 100644 assets/js/1a4e3797.06431859.js
create mode 100644 assets/js/2063472f.30da6390.js
delete mode 100644 assets/js/2063472f.a34746f5.js
create mode 100644 assets/js/213c1e68.3871c46f.js
delete mode 100644 assets/js/213c1e68.f169fa30.js
create mode 100644 assets/js/224f0d80.480a6a46.js
delete mode 100644 assets/js/224f0d80.f05f1a5b.js
delete mode 100644 assets/js/2474.04ecc63b.js
create mode 100644 assets/js/2474.826e3a10.js
delete mode 100644 assets/js/2774.034962ae.js
create mode 100644 assets/js/2774.1c2ea4c9.js
delete mode 100644 assets/js/2903.ec20132d.js
create mode 100644 assets/js/2903.ff39d8c0.js
delete mode 100644 assets/js/299aa024.a97777fd.js
create mode 100644 assets/js/299aa024.f8e7dac1.js
create mode 100644 assets/js/33ed5212.48c08793.js
delete mode 100644 assets/js/33ed5212.5803989f.js
delete mode 100644 assets/js/3497.7a3e9736.js
create mode 100644 assets/js/3497.be66bff8.js
delete mode 100644 assets/js/3582.dfe8ddcd.js
create mode 100644 assets/js/3582.ebc209f3.js
delete mode 100644 assets/js/366ada8c.790e1f57.js
create mode 100644 assets/js/366ada8c.e0702a37.js
delete mode 100644 assets/js/36994c47.095709e1.js
create mode 100644 assets/js/36994c47.d15f2bb2.js
delete mode 100644 assets/js/3899.6ebed361.js
create mode 100644 assets/js/3899.dd052ef0.js
delete mode 100644 assets/js/3a5084d4.28fad7bd.js
create mode 100644 assets/js/3a5084d4.48d855ae.js
create mode 100644 assets/js/3e8bb567.32082d2a.js
delete mode 100644 assets/js/3e8bb567.86c2d306.js
create mode 100644 assets/js/4273.50520efe.js
delete mode 100644 assets/js/4273.f9a84dc5.js
delete mode 100644 assets/js/4326.a37af5f0.js
create mode 100644 assets/js/4326.e1457e7a.js
create mode 100644 assets/js/4383cab8.c1ce96bf.js
delete mode 100644 assets/js/4383cab8.f5a394da.js
create mode 100644 assets/js/4422.84c7c63f.js
delete mode 100644 assets/js/4422.ae5e21e7.js
create mode 100644 assets/js/452acb72.13678e14.js
delete mode 100644 assets/js/452acb72.ab6b7f8e.js
delete mode 100644 assets/js/4546.0613b65a.js
create mode 100644 assets/js/4546.81c8086d.js
delete mode 100644 assets/js/4739.53096e4e.js
create mode 100644 assets/js/4739.55d7f6da.js
create mode 100644 assets/js/4860.153916a1.js
delete mode 100644 assets/js/4860.2fa1b451.js
delete mode 100644 assets/js/498dc5b3.ad8c2e53.js
create mode 100644 assets/js/498dc5b3.ffbc6733.js
create mode 100644 assets/js/4a783ec1.50458f82.js
delete mode 100644 assets/js/4a783ec1.844e7cbd.js
create mode 100644 assets/js/512a93d9.5c292749.js
delete mode 100644 assets/js/512a93d9.6b376a5b.js
delete mode 100644 assets/js/5373.1a72a9db.js
create mode 100644 assets/js/5373.5f2c487c.js
delete mode 100644 assets/js/542af253.2ee9deb2.js
create mode 100644 assets/js/542af253.a5b10ebe.js
create mode 100644 assets/js/5438.d5ba87f0.js
delete mode 100644 assets/js/5438.dbf7affe.js
create mode 100644 assets/js/5571.3f6cb610.js
delete mode 100644 assets/js/5571.c7f48680.js
delete mode 100644 assets/js/55f30539.af417327.js
create mode 100644 assets/js/55f30539.b91c9bdd.js
create mode 100644 assets/js/5739.c3af032d.js
delete mode 100644 assets/js/5739.f19706cd.js
create mode 100644 assets/js/5771c448.7587ad35.js
delete mode 100644 assets/js/5771c448.eb3410cf.js
create mode 100644 assets/js/5789.b4b3ce96.js
delete mode 100644 assets/js/5789.ed9e603d.js
rename zh-cn/assets/js/5820.830ccb22.js => assets/js/5820.5c72c518.js (70%)
create mode 100644 assets/js/5956.120a19be.js
create mode 100644 assets/js/5956.120a19be.js.LICENSE.txt
create mode 100644 assets/js/5e95c892.640f9a02.js
delete mode 100644 assets/js/5e95c892.69e413fe.js
delete mode 100644 assets/js/6077.3e9cd678.js
create mode 100644 assets/js/6077.3e9da91d.js
delete mode 100644 assets/js/621db11d.122f83ab.js
create mode 100644 assets/js/621db11d.59e11aef.js
create mode 100644 assets/js/6261.1def33de.js
delete mode 100644 assets/js/6261.911ecda5.js
rename assets/js/{6282.47c683e9.js => 6282.330a9091.js} (92%)
delete mode 100644 assets/js/638.24250962.js
create mode 100644 assets/js/638.7a92d25d.js
rename assets/js/{638.24250962.js.LICENSE.txt => 638.7a92d25d.js.LICENSE.txt} (100%)
delete mode 100644 assets/js/6381e667.49cacd1d.js
create mode 100644 assets/js/6381e667.b156c4aa.js
create mode 100644 assets/js/6404.7f9e2324.js
delete mode 100644 assets/js/6404.c4706fae.js
create mode 100644 assets/js/64ca138b.44e7d1ed.js
delete mode 100644 assets/js/64ca138b.697c3973.js
delete mode 100644 assets/js/654.3abdf7ff.js
create mode 100644 assets/js/654.5fa7080d.js
delete mode 100644 assets/js/66e7b107.4f1a0eee.js
create mode 100644 assets/js/66e7b107.50d2c642.js
delete mode 100644 assets/js/6875c492.72bfb7c7.js
create mode 100644 assets/js/6875c492.88d2409f.js
create mode 100644 assets/js/6961.36d9d743.js
delete mode 100644 assets/js/6961.563054fb.js
delete mode 100644 assets/js/700664e1.ab47238e.js
create mode 100644 assets/js/700664e1.dbbf5cac.js
create mode 100644 assets/js/7039.6dc83b31.js
delete mode 100644 assets/js/7039.7b09c78d.js
rename zh-cn/assets/js/7386.dc75dc93.js => assets/js/7386.4982069e.js (97%)
delete mode 100644 assets/js/761d52bb.1d0a0684.js
create mode 100644 assets/js/761d52bb.81f634e9.js
delete mode 100644 assets/js/814f3328.687cbcac.js
create mode 100644 assets/js/814f3328.fbaa45bf.js
delete mode 100644 assets/js/8169.0211a31a.js
create mode 100644 assets/js/8169.088bae5d.js
delete mode 100644 assets/js/81c2829c.3f032cc8.js
create mode 100644 assets/js/81c2829c.63b1cac5.js
delete mode 100644 assets/js/8215.5b91c7e3.js
create mode 100644 assets/js/8215.5c5f0d0f.js
create mode 100644 assets/js/83b4fe73.84dd63b2.js
delete mode 100644 assets/js/83b4fe73.f6eaa954.js
create mode 100644 assets/js/8454.7630fef1.js
delete mode 100644 assets/js/8454.90a269fb.js
delete mode 100644 assets/js/84c84ccb.6e66fa19.js
create mode 100644 assets/js/84c84ccb.96d2e0c7.js
delete mode 100644 assets/js/8868.8c0a0d8b.js
create mode 100644 assets/js/8868.ed06f2e7.js
create mode 100644 assets/js/8907.1caf6efa.js
delete mode 100644 assets/js/8907.f0460f91.js
create mode 100644 assets/js/8bddb7f1.2f9c2ed7.js
delete mode 100644 assets/js/8bddb7f1.c29546d6.js
create mode 100644 assets/js/903f555a.43c7a5ca.js
delete mode 100644 assets/js/903f555a.f9e57d58.js
create mode 100644 assets/js/9056.30efb9e2.js
delete mode 100644 assets/js/9076.e1984d30.js
create mode 100644 assets/js/9076.f41581ef.js
create mode 100644 assets/js/9082.6767289e.js
delete mode 100644 assets/js/9082.7f194996.js
delete mode 100644 assets/js/9294.aa4b85a9.js
create mode 100644 assets/js/9294.b37daa3d.js
create mode 100644 assets/js/9312.6c0c9b99.js
delete mode 100644 assets/js/9312.8d27f4fa.js
delete mode 100644 assets/js/939f94eb.50df7a46.js
create mode 100644 assets/js/939f94eb.8858322e.js
create mode 100644 assets/js/9629.35cf42ec.js
delete mode 100644 assets/js/9629.ef3e541f.js
create mode 100644 assets/js/9646.83bab20c.js
delete mode 100644 assets/js/9646.fe47e34b.js
create mode 100644 assets/js/967.845daf63.js
delete mode 100644 assets/js/967.d17e5b47.js
create mode 100644 assets/js/9951.39371e10.js
create mode 100644 assets/js/9951.39371e10.js.LICENSE.txt
create mode 100644 assets/js/9dc5a89b.563ddd74.js
delete mode 100644 assets/js/9dc5a89b.5fe02826.js
delete mode 100644 assets/js/9e4087bc.3ef4af29.js
create mode 100644 assets/js/9e4087bc.b4f6636e.js
delete mode 100644 assets/js/a0cc137d.222a3a0f.js
create mode 100644 assets/js/a0cc137d.3e45b34a.js
rename assets/js/{a4b4544e.276800d8.js => a4b4544e.19e5e647.js} (82%)
delete mode 100644 assets/js/a6aa9e1f.2f6d52db.js
create mode 100644 assets/js/a6aa9e1f.357af94f.js
delete mode 100644 assets/js/a7456010.e8b3c3c8.js
create mode 100644 assets/js/a7456010.f2d10e9a.js
create mode 100644 assets/js/a7bd4aaa.073f01c3.js
delete mode 100644 assets/js/a7bd4aaa.39b4b376.js
delete mode 100644 assets/js/a94703ab.51f518a4.js
create mode 100644 assets/js/a94703ab.a09ddd7e.js
delete mode 100644 assets/js/aada36dd.665559a2.js
create mode 100644 assets/js/aada36dd.d81a5005.js
delete mode 100644 assets/js/aba21aa0.b857de80.js
create mode 100644 assets/js/aba21aa0.f047a422.js
create mode 100644 assets/js/b8958f49.071a61ec.js
delete mode 100644 assets/js/b8958f49.d2a13829.js
create mode 100644 assets/js/c3aa4345.8f436a93.js
delete mode 100644 assets/js/c3aa4345.9039d30b.js
create mode 100644 assets/js/c4f5d8e4.0a412599.js
delete mode 100644 assets/js/c4f5d8e4.dbd5b0c1.js
delete mode 100644 assets/js/c639369e.4dc7d543.js
create mode 100644 assets/js/c639369e.7f628d8f.js
create mode 100644 assets/js/c9de33a5.7b6df4c5.js
delete mode 100644 assets/js/c9de33a5.dd485ee2.js
create mode 100644 assets/js/cabbf3d9.5231626f.js
delete mode 100644 assets/js/cabbf3d9.7b127cf9.js
create mode 100644 assets/js/ccc49370.858ff68e.js
delete mode 100644 assets/js/ccc49370.89fa7706.js
delete mode 100644 assets/js/cf1fd729.553fe615.js
create mode 100644 assets/js/cf1fd729.f99bf6bb.js
create mode 100644 assets/js/cfa642a3.19b92fbf.js
delete mode 100644 assets/js/cfa642a3.2a0d0fd3.js
create mode 100644 assets/js/dbfc4782.203eb664.js
delete mode 100644 assets/js/dbfc4782.2e689f17.js
delete mode 100644 assets/js/dd04b75e.b9b4d749.js
create mode 100644 assets/js/dd04b75e.d207b88d.js
delete mode 100644 assets/js/dd53d751.4e55fc78.js
create mode 100644 assets/js/dd53d751.efd388f1.js
delete mode 100644 assets/js/de3da009.3998cb62.js
create mode 100644 assets/js/de3da009.3e23772a.js
create mode 100644 assets/js/e0719818.011f203c.js
delete mode 100644 assets/js/e0719818.af2a1171.js
delete mode 100644 assets/js/e2f5eafd.407c4e15.js
create mode 100644 assets/js/e2f5eafd.a0df8a4e.js
create mode 100644 assets/js/ecc2f85f.13d5666d.js
delete mode 100644 assets/js/ecc2f85f.28d5bb92.js
create mode 100644 assets/js/edc931f8.3083c51b.js
delete mode 100644 assets/js/edc931f8.f48a8fa9.js
delete mode 100644 assets/js/ee1b4450.97a5d69a.js
create mode 100644 assets/js/ee1b4450.f7c5b7db.js
create mode 100644 assets/js/eece2e17.6b9cc232.js
delete mode 100644 assets/js/eece2e17.9831e9a1.js
create mode 100644 assets/js/f1f22f0f.5c56ab5f.js
delete mode 100644 assets/js/f1f22f0f.e022d144.js
delete mode 100644 assets/js/f37f84bf.76817602.js
create mode 100644 assets/js/f37f84bf.e11e010d.js
delete mode 100644 assets/js/f9e23376.1afd8a32.js
create mode 100644 assets/js/f9e23376.e86fa0ed.js
delete mode 100644 assets/js/fae1940b.88ef9d0d.js
create mode 100644 assets/js/fae1940b.eb944475.js
create mode 100644 assets/js/main.68e001e2.js
rename zh-cn/assets/js/main.66e70ed2.js.LICENSE.txt => assets/js/main.68e001e2.js.LICENSE.txt (56%)
delete mode 100644 assets/js/main.d53a448f.js
create mode 100644 assets/js/runtime~main.7d82d99a.js
delete mode 100644 assets/js/runtime~main.ed2762a4.js
create mode 100644 search-index.json
create mode 100644 search/index.html
rename assets/css/styles.f0dd395c.css => zh-cn/assets/css/styles.0d54af32.css (63%)
delete mode 100644 zh-cn/assets/js/00e1230c.83b833a6.js
create mode 100644 zh-cn/assets/js/00e1230c.ccd6aa45.js
create mode 100644 zh-cn/assets/js/01a85c17.c92962ef.js
delete mode 100644 zh-cn/assets/js/01a85c17.cc6aaa0d.js
create mode 100644 zh-cn/assets/js/026e6981.66c9bede.js
delete mode 100644 zh-cn/assets/js/026e6981.70856b48.js
create mode 100644 zh-cn/assets/js/035672d3.1afa1f8c.js
delete mode 100644 zh-cn/assets/js/035672d3.d11fefda.js
delete mode 100644 zh-cn/assets/js/0e7f7048.4d086058.js
create mode 100644 zh-cn/assets/js/0e7f7048.fb8b58a2.js
create mode 100644 zh-cn/assets/js/12751524.4937b7cf.js
delete mode 100644 zh-cn/assets/js/12751524.5774122b.js
create mode 100644 zh-cn/assets/js/138e0e15.93fd5233.js
delete mode 100644 zh-cn/assets/js/141.19b570d4.js
create mode 100644 zh-cn/assets/js/141.24fbb07f.js
create mode 100644 zh-cn/assets/js/14fc6b04.560da5ed.js
delete mode 100644 zh-cn/assets/js/14fc6b04.a0a9ac37.js
create mode 100644 zh-cn/assets/js/1562.70da6092.js
delete mode 100644 zh-cn/assets/js/1562.949f2efc.js
delete mode 100644 zh-cn/assets/js/162d40fa.b4ab4eee.js
create mode 100644 zh-cn/assets/js/162d40fa.ee98f4b4.js
create mode 100644 zh-cn/assets/js/1649.90e806a8.js
rename zh-cn/assets/js/{1649.cfac3541.js.LICENSE.txt => 1649.90e806a8.js.LICENSE.txt} (100%)
delete mode 100644 zh-cn/assets/js/1649.cfac3541.js
create mode 100644 zh-cn/assets/js/1706.1f8c30a9.js
delete mode 100644 zh-cn/assets/js/1706.d07c748b.js
delete mode 100644 zh-cn/assets/js/17896441.69535ef3.js
create mode 100644 zh-cn/assets/js/17896441.cda04a4c.js
create mode 100644 zh-cn/assets/js/1800.b58deb51.js
create mode 100644 zh-cn/assets/js/1874.3fc3e393.js
delete mode 100644 zh-cn/assets/js/1874.7da8faf8.js
delete mode 100644 zh-cn/assets/js/18b1fbba.1e6f2157.js
create mode 100644 zh-cn/assets/js/18b1fbba.7b3e5195.js
delete mode 100644 zh-cn/assets/js/1a3b291f.07cd6940.js
create mode 100644 zh-cn/assets/js/1a3b291f.1883e1ee.js
create mode 100644 zh-cn/assets/js/1a4e3797.06431859.js
create mode 100644 zh-cn/assets/js/1ba16981.01318a93.js
delete mode 100644 zh-cn/assets/js/1ba16981.4921f761.js
delete mode 100644 zh-cn/assets/js/1d61c132.0321ae1e.js
create mode 100644 zh-cn/assets/js/1d61c132.b179d2e5.js
create mode 100644 zh-cn/assets/js/23f7ca76.6053caff.js
delete mode 100644 zh-cn/assets/js/23f7ca76.7c4e48a4.js
delete mode 100644 zh-cn/assets/js/2474.04ecc63b.js
create mode 100644 zh-cn/assets/js/2474.826e3a10.js
delete mode 100644 zh-cn/assets/js/27573f0c.b6150638.js
create mode 100644 zh-cn/assets/js/27573f0c.ec9987b4.js
delete mode 100644 zh-cn/assets/js/2774.034962ae.js
create mode 100644 zh-cn/assets/js/2774.1c2ea4c9.js
delete mode 100644 zh-cn/assets/js/2810e9cc.c020efa9.js
create mode 100644 zh-cn/assets/js/2810e9cc.fbe306a2.js
delete mode 100644 zh-cn/assets/js/2903.ec20132d.js
create mode 100644 zh-cn/assets/js/2903.ff39d8c0.js
delete mode 100644 zh-cn/assets/js/2fc01e78.20d58143.js
create mode 100644 zh-cn/assets/js/2fc01e78.28f42c11.js
delete mode 100644 zh-cn/assets/js/344239d7.848e1b9f.js
create mode 100644 zh-cn/assets/js/344239d7.8c729459.js
delete mode 100644 zh-cn/assets/js/3497.7a3e9736.js
create mode 100644 zh-cn/assets/js/3497.be66bff8.js
delete mode 100644 zh-cn/assets/js/3582.dfe8ddcd.js
create mode 100644 zh-cn/assets/js/3582.ebc209f3.js
delete mode 100644 zh-cn/assets/js/35ef6288.3cd4e7c9.js
create mode 100644 zh-cn/assets/js/35ef6288.e32e4c93.js
delete mode 100644 zh-cn/assets/js/3696a4b8.14367ded.js
create mode 100644 zh-cn/assets/js/3696a4b8.9753c5c3.js
delete mode 100644 zh-cn/assets/js/36994c47.095709e1.js
create mode 100644 zh-cn/assets/js/36994c47.d15f2bb2.js
delete mode 100644 zh-cn/assets/js/3899.6ebed361.js
create mode 100644 zh-cn/assets/js/3899.dd052ef0.js
create mode 100644 zh-cn/assets/js/3adce689.04d58c76.js
delete mode 100644 zh-cn/assets/js/3adce689.d6c6b350.js
create mode 100644 zh-cn/assets/js/4273.50520efe.js
delete mode 100644 zh-cn/assets/js/4273.f9a84dc5.js
delete mode 100644 zh-cn/assets/js/4326.a37af5f0.js
create mode 100644 zh-cn/assets/js/4326.e1457e7a.js
create mode 100644 zh-cn/assets/js/4422.84c7c63f.js
delete mode 100644 zh-cn/assets/js/4422.ae5e21e7.js
delete mode 100644 zh-cn/assets/js/4546.0613b65a.js
create mode 100644 zh-cn/assets/js/4546.81c8086d.js
delete mode 100644 zh-cn/assets/js/46d6cbfe.1ce0728b.js
create mode 100644 zh-cn/assets/js/46d6cbfe.c95e9068.js
delete mode 100644 zh-cn/assets/js/4739.53096e4e.js
create mode 100644 zh-cn/assets/js/4739.55d7f6da.js
create mode 100644 zh-cn/assets/js/4860.153916a1.js
delete mode 100644 zh-cn/assets/js/4860.2fa1b451.js
delete mode 100644 zh-cn/assets/js/4ccddeda.312563cf.js
create mode 100644 zh-cn/assets/js/4ccddeda.43569d9f.js
delete mode 100644 zh-cn/assets/js/516dc88b.b2970922.js
create mode 100644 zh-cn/assets/js/516dc88b.d9aecb02.js
delete mode 100644 zh-cn/assets/js/5373.1a72a9db.js
create mode 100644 zh-cn/assets/js/5373.5f2c487c.js
create mode 100644 zh-cn/assets/js/5438.d5ba87f0.js
delete mode 100644 zh-cn/assets/js/5438.dbf7affe.js
create mode 100644 zh-cn/assets/js/5571.3f6cb610.js
delete mode 100644 zh-cn/assets/js/5571.c7f48680.js
create mode 100644 zh-cn/assets/js/5739.c3af032d.js
delete mode 100644 zh-cn/assets/js/5739.f19706cd.js
create mode 100644 zh-cn/assets/js/5789.b4b3ce96.js
delete mode 100644 zh-cn/assets/js/5789.ed9e603d.js
rename assets/js/5820.830ccb22.js => zh-cn/assets/js/5820.5c72c518.js (70%)
create mode 100644 zh-cn/assets/js/5956.120a19be.js
create mode 100644 zh-cn/assets/js/5956.120a19be.js.LICENSE.txt
create mode 100644 zh-cn/assets/js/5e6cf37e.9772c714.js
delete mode 100644 zh-cn/assets/js/5e6cf37e.f6308a39.js
create mode 100644 zh-cn/assets/js/5e95c892.640f9a02.js
delete mode 100644 zh-cn/assets/js/5e95c892.69e413fe.js
delete mode 100644 zh-cn/assets/js/6077.3e9cd678.js
create mode 100644 zh-cn/assets/js/6077.3e9da91d.js
delete mode 100644 zh-cn/assets/js/621db11d.122f83ab.js
create mode 100644 zh-cn/assets/js/621db11d.59e11aef.js
create mode 100644 zh-cn/assets/js/6261.1def33de.js
delete mode 100644 zh-cn/assets/js/6261.911ecda5.js
rename zh-cn/assets/js/{6282.47c683e9.js => 6282.330a9091.js} (92%)
delete mode 100644 zh-cn/assets/js/638.24250962.js
create mode 100644 zh-cn/assets/js/638.7a92d25d.js
rename zh-cn/assets/js/{638.24250962.js.LICENSE.txt => 638.7a92d25d.js.LICENSE.txt} (100%)
create mode 100644 zh-cn/assets/js/6404.7f9e2324.js
delete mode 100644 zh-cn/assets/js/6404.c4706fae.js
delete mode 100644 zh-cn/assets/js/654.3abdf7ff.js
create mode 100644 zh-cn/assets/js/654.5fa7080d.js
delete mode 100644 zh-cn/assets/js/6875c492.72bfb7c7.js
create mode 100644 zh-cn/assets/js/6875c492.88d2409f.js
create mode 100644 zh-cn/assets/js/6961.36d9d743.js
delete mode 100644 zh-cn/assets/js/6961.563054fb.js
delete mode 100644 zh-cn/assets/js/6c661db7.72860fd1.js
create mode 100644 zh-cn/assets/js/6c661db7.91ea0c73.js
delete mode 100644 zh-cn/assets/js/6e79d794.16224036.js
create mode 100644 zh-cn/assets/js/6e79d794.47441941.js
create mode 100644 zh-cn/assets/js/6f28ad3d.37513091.js
delete mode 100644 zh-cn/assets/js/6f28ad3d.c6c52a44.js
create mode 100644 zh-cn/assets/js/7039.6dc83b31.js
delete mode 100644 zh-cn/assets/js/7039.7b09c78d.js
delete mode 100644 zh-cn/assets/js/70652f5d.7f23efdd.js
create mode 100644 zh-cn/assets/js/70652f5d.d482fa9b.js
create mode 100644 zh-cn/assets/js/7265.666cea15.js
delete mode 100644 zh-cn/assets/js/7265.c68101db.js
rename assets/js/7386.dc75dc93.js => zh-cn/assets/js/7386.4982069e.js (97%)
delete mode 100644 zh-cn/assets/js/7575123d.43e2ebe4.js
create mode 100644 zh-cn/assets/js/7575123d.be2b14e8.js
delete mode 100644 zh-cn/assets/js/76428bda.7358cda9.js
create mode 100644 zh-cn/assets/js/76428bda.ee481806.js
create mode 100644 zh-cn/assets/js/76ebeaa2.5134a0f6.js
delete mode 100644 zh-cn/assets/js/76ebeaa2.7c5c29f8.js
delete mode 100644 zh-cn/assets/js/7bacda60.93a9a2f9.js
create mode 100644 zh-cn/assets/js/7bacda60.ec71ab47.js
delete mode 100644 zh-cn/assets/js/7c8dfedd.301a883a.js
create mode 100644 zh-cn/assets/js/7c8dfedd.bdd5e146.js
create mode 100644 zh-cn/assets/js/7ed646c5.a50770b0.js
delete mode 100644 zh-cn/assets/js/7ed646c5.b17a85b0.js
create mode 100644 zh-cn/assets/js/814f3328.c5c64dd3.js
delete mode 100644 zh-cn/assets/js/814f3328.ca062406.js
delete mode 100644 zh-cn/assets/js/8169.0211a31a.js
create mode 100644 zh-cn/assets/js/8169.088bae5d.js
delete mode 100644 zh-cn/assets/js/8215.5b91c7e3.js
create mode 100644 zh-cn/assets/js/8215.5c5f0d0f.js
create mode 100644 zh-cn/assets/js/8454.7630fef1.js
delete mode 100644 zh-cn/assets/js/8454.90a269fb.js
delete mode 100644 zh-cn/assets/js/8868.8c0a0d8b.js
create mode 100644 zh-cn/assets/js/8868.ed06f2e7.js
create mode 100644 zh-cn/assets/js/8907.1caf6efa.js
delete mode 100644 zh-cn/assets/js/8907.f0460f91.js
delete mode 100644 zh-cn/assets/js/8d4cdedc.04d6b289.js
create mode 100644 zh-cn/assets/js/8d4cdedc.d41d40a7.js
create mode 100644 zh-cn/assets/js/9056.30efb9e2.js
delete mode 100644 zh-cn/assets/js/9076.e1984d30.js
create mode 100644 zh-cn/assets/js/9076.f41581ef.js
create mode 100644 zh-cn/assets/js/9082.6767289e.js
delete mode 100644 zh-cn/assets/js/9082.7f194996.js
delete mode 100644 zh-cn/assets/js/91fb5ccc.1a409b24.js
create mode 100644 zh-cn/assets/js/91fb5ccc.bb25cf41.js
create mode 100644 zh-cn/assets/js/92380f4a.00fa75e9.js
delete mode 100644 zh-cn/assets/js/92380f4a.148e20fd.js
delete mode 100644 zh-cn/assets/js/9294.aa4b85a9.js
create mode 100644 zh-cn/assets/js/9294.b37daa3d.js
create mode 100644 zh-cn/assets/js/9312.6c0c9b99.js
delete mode 100644 zh-cn/assets/js/9312.8d27f4fa.js
create mode 100644 zh-cn/assets/js/9629.35cf42ec.js
delete mode 100644 zh-cn/assets/js/9629.ef3e541f.js
create mode 100644 zh-cn/assets/js/967.845daf63.js
delete mode 100644 zh-cn/assets/js/967.d17e5b47.js
create mode 100644 zh-cn/assets/js/981ce938.5321531a.js
delete mode 100644 zh-cn/assets/js/981ce938.62dfc932.js
delete mode 100644 zh-cn/assets/js/98d765ba.b9587f45.js
create mode 100644 zh-cn/assets/js/98d765ba.f4ab26c0.js
create mode 100644 zh-cn/assets/js/9951.39371e10.js
create mode 100644 zh-cn/assets/js/9951.39371e10.js.LICENSE.txt
delete mode 100644 zh-cn/assets/js/9a0089cf.043ab9e6.js
create mode 100644 zh-cn/assets/js/9a0089cf.4cfa8a22.js
delete mode 100644 zh-cn/assets/js/9d584252.74b69b54.js
create mode 100644 zh-cn/assets/js/9d584252.c76106ce.js
delete mode 100644 zh-cn/assets/js/9e4087bc.3ef4af29.js
create mode 100644 zh-cn/assets/js/9e4087bc.b4f6636e.js
delete mode 100644 zh-cn/assets/js/a08ce007.0c85a48f.js
create mode 100644 zh-cn/assets/js/a08ce007.8ba68599.js
delete mode 100644 zh-cn/assets/js/a1225c8b.351b2f9b.js
create mode 100644 zh-cn/assets/js/a1225c8b.a9c4c2ec.js
delete mode 100644 zh-cn/assets/js/a6aa9e1f.2f6d52db.js
create mode 100644 zh-cn/assets/js/a6aa9e1f.357af94f.js
delete mode 100644 zh-cn/assets/js/a7456010.e8b3c3c8.js
create mode 100644 zh-cn/assets/js/a7456010.f2d10e9a.js
create mode 100644 zh-cn/assets/js/a7bd4aaa.073f01c3.js
delete mode 100644 zh-cn/assets/js/a7bd4aaa.39b4b376.js
delete mode 100644 zh-cn/assets/js/a94703ab.51f518a4.js
create mode 100644 zh-cn/assets/js/a94703ab.a09ddd7e.js
delete mode 100644 zh-cn/assets/js/aba21aa0.b857de80.js
create mode 100644 zh-cn/assets/js/aba21aa0.f047a422.js
create mode 100644 zh-cn/assets/js/aec1ea7d.1c0ba9a8.js
delete mode 100644 zh-cn/assets/js/aec1ea7d.bca23d67.js
create mode 100644 zh-cn/assets/js/b1c23739.7456b2c8.js
delete mode 100644 zh-cn/assets/js/b1c23739.b5a4b1fb.js
delete mode 100644 zh-cn/assets/js/b76e6c4a.0c0e2618.js
create mode 100644 zh-cn/assets/js/b76e6c4a.ec4f18a4.js
create mode 100644 zh-cn/assets/js/b8ed1609.64759653.js
delete mode 100644 zh-cn/assets/js/b8ed1609.831401f5.js
delete mode 100644 zh-cn/assets/js/c1ff7703.b4df307f.js
create mode 100644 zh-cn/assets/js/c1ff7703.d8d22201.js
create mode 100644 zh-cn/assets/js/c4f5d8e4.0a412599.js
delete mode 100644 zh-cn/assets/js/c4f5d8e4.dbd5b0c1.js
delete mode 100644 zh-cn/assets/js/c6ce0837.5eee261b.js
create mode 100644 zh-cn/assets/js/c6ce0837.e708f7cc.js
delete mode 100644 zh-cn/assets/js/c96ca1a6.1a3e30d2.js
create mode 100644 zh-cn/assets/js/c96ca1a6.5b4d40f3.js
create mode 100644 zh-cn/assets/js/ccc49370.858ff68e.js
delete mode 100644 zh-cn/assets/js/ccc49370.89fa7706.js
delete mode 100644 zh-cn/assets/js/d5087300.94746e0f.js
create mode 100644 zh-cn/assets/js/d5087300.f7040810.js
delete mode 100644 zh-cn/assets/js/d58f16ca.96d089e7.js
create mode 100644 zh-cn/assets/js/d58f16ca.bc513d74.js
create mode 100644 zh-cn/assets/js/ddc7dbcd.cc48f272.js
delete mode 100644 zh-cn/assets/js/ddc7dbcd.d1e71d16.js
create mode 100644 zh-cn/assets/js/e0719818.011f203c.js
delete mode 100644 zh-cn/assets/js/e0719818.af2a1171.js
delete mode 100644 zh-cn/assets/js/e3ca1761.847b9517.js
create mode 100644 zh-cn/assets/js/e3ca1761.c3891d9b.js
delete mode 100644 zh-cn/assets/js/e7985601.26a3715d.js
create mode 100644 zh-cn/assets/js/e7985601.895bcfb2.js
create mode 100644 zh-cn/assets/js/e946020f.2b6a6f9d.js
delete mode 100644 zh-cn/assets/js/e946020f.b5698851.js
create mode 100644 zh-cn/assets/js/f7ff6690.05c4575a.js
delete mode 100644 zh-cn/assets/js/f7ff6690.5d1403d8.js
delete mode 100644 zh-cn/assets/js/f98e3ca9.5a090b3e.js
create mode 100644 zh-cn/assets/js/f98e3ca9.b1d588d6.js
delete mode 100644 zh-cn/assets/js/main.66e70ed2.js
create mode 100644 zh-cn/assets/js/main.f32a72ca.js
rename assets/js/main.d53a448f.js.LICENSE.txt => zh-cn/assets/js/main.f32a72ca.js.LICENSE.txt (56%)
create mode 100644 zh-cn/assets/js/runtime~main.9066dff5.js
delete mode 100644 zh-cn/assets/js/runtime~main.dee91e2f.js
create mode 100644 zh-cn/search-index.json
create mode 100644 zh-cn/search/index.html
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@fesod.apache.org
For additional commands, e-mail: commits-help@fesod.apache.org
(fesod) 01/01: deploy: b4d03b5e28d6ddb4730e26a4643b187d5f5da2e3
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 425806c6b736cd982d3816f131a85af0370bf354
Author: alaahong <al...@users.noreply.github.com>
AuthorDate: Fri Oct 10 13:13:25 2025 +0000
deploy: b4d03b5e28d6ddb4730e26a4643b187d5f5da2e3
---
.asf.yaml | 52 +++
.nojekyll | 0
404.html | 25 ++
assets/css/styles.0d54af32.css | 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/0179594a.d985a642.js | 1 +
assets/js/01a85c17.c92962ef.js | 1 +
assets/js/035672d3.1afa1f8c.js | 1 +
assets/js/08af526d.dc523126.js | 1 +
assets/js/0fc1e0ab.32482038.js | 1 +
assets/js/10e1fcd2.4a73b47c.js | 1 +
assets/js/11b43341.f9a2e07f.js | 1 +
assets/js/138e0e15.93fd5233.js | 1 +
assets/js/141.24fbb07f.js | 1 +
assets/js/1562.70da6092.js | 1 +
assets/js/1649.30c8ac4b.js | 2 +
assets/js/1649.30c8ac4b.js.LICENSE.txt | 1 +
assets/js/1706.1f8c30a9.js | 1 +
assets/js/17896441.cda04a4c.js | 1 +
assets/js/1800.92fa5fb1.js | 1 +
assets/js/1874.3fc3e393.js | 1 +
assets/js/1a4e3797.06431859.js | 1 +
assets/js/2063472f.30da6390.js | 1 +
assets/js/213c1e68.3871c46f.js | 1 +
assets/js/224f0d80.480a6a46.js | 1 +
assets/js/2474.826e3a10.js | 1 +
assets/js/2774.1c2ea4c9.js | 1 +
assets/js/2903.ff39d8c0.js | 1 +
assets/js/299aa024.f8e7dac1.js | 1 +
assets/js/33ed5212.48c08793.js | 1 +
assets/js/3497.be66bff8.js | 1 +
assets/js/3582.ebc209f3.js | 1 +
assets/js/366ada8c.e0702a37.js | 1 +
assets/js/36994c47.d15f2bb2.js | 1 +
assets/js/3899.dd052ef0.js | 1 +
assets/js/3a5084d4.48d855ae.js | 1 +
assets/js/3e8bb567.32082d2a.js | 1 +
assets/js/4273.50520efe.js | 1 +
assets/js/4326.e1457e7a.js | 1 +
assets/js/4383cab8.c1ce96bf.js | 1 +
assets/js/4422.84c7c63f.js | 1 +
assets/js/452acb72.13678e14.js | 1 +
assets/js/4546.81c8086d.js | 1 +
assets/js/4739.55d7f6da.js | 1 +
assets/js/4860.153916a1.js | 1 +
assets/js/498dc5b3.ffbc6733.js | 1 +
assets/js/4a783ec1.50458f82.js | 1 +
assets/js/512a93d9.5c292749.js | 1 +
assets/js/5373.5f2c487c.js | 1 +
assets/js/542af253.a5b10ebe.js | 1 +
assets/js/5438.d5ba87f0.js | 1 +
assets/js/5571.3f6cb610.js | 1 +
assets/js/55f30539.b91c9bdd.js | 1 +
assets/js/5739.c3af032d.js | 1 +
assets/js/5771c448.7587ad35.js | 1 +
assets/js/5789.b4b3ce96.js | 1 +
assets/js/5820.5c72c518.js | 1 +
assets/js/5956.120a19be.js | 2 +
assets/js/5956.120a19be.js.LICENSE.txt | 76 ++++
assets/js/5e95c892.640f9a02.js | 1 +
assets/js/6077.3e9da91d.js | 1 +
assets/js/621db11d.59e11aef.js | 1 +
assets/js/6261.1def33de.js | 1 +
assets/js/6282.330a9091.js | 1 +
assets/js/638.7a92d25d.js | 2 +
assets/js/638.7a92d25d.js.LICENSE.txt | 9 +
assets/js/6381e667.b156c4aa.js | 1 +
assets/js/6404.7f9e2324.js | 1 +
assets/js/64ca138b.44e7d1ed.js | 1 +
assets/js/654.5fa7080d.js | 1 +
assets/js/66e7b107.50d2c642.js | 1 +
assets/js/6875c492.88d2409f.js | 1 +
assets/js/6961.36d9d743.js | 1 +
assets/js/700664e1.dbbf5cac.js | 1 +
assets/js/7039.6dc83b31.js | 1 +
assets/js/7386.4982069e.js | 1 +
assets/js/761d52bb.81f634e9.js | 1 +
assets/js/814f3328.fbaa45bf.js | 1 +
assets/js/8169.088bae5d.js | 1 +
assets/js/81c2829c.63b1cac5.js | 1 +
assets/js/8215.5c5f0d0f.js | 1 +
assets/js/83b4fe73.84dd63b2.js | 1 +
assets/js/8454.7630fef1.js | 1 +
assets/js/84c84ccb.96d2e0c7.js | 1 +
assets/js/8868.ed06f2e7.js | 1 +
assets/js/8907.1caf6efa.js | 1 +
assets/js/8bddb7f1.2f9c2ed7.js | 1 +
assets/js/903f555a.43c7a5ca.js | 1 +
assets/js/9056.30efb9e2.js | 1 +
assets/js/9076.f41581ef.js | 1 +
assets/js/9082.6767289e.js | 1 +
assets/js/9294.b37daa3d.js | 1 +
assets/js/9312.6c0c9b99.js | 1 +
assets/js/939f94eb.8858322e.js | 1 +
assets/js/9629.35cf42ec.js | 1 +
assets/js/9646.83bab20c.js | 1 +
assets/js/967.845daf63.js | 1 +
assets/js/9951.39371e10.js | 2 +
assets/js/9951.39371e10.js.LICENSE.txt | 1 +
assets/js/9dc5a89b.563ddd74.js | 1 +
assets/js/9e4087bc.b4f6636e.js | 1 +
assets/js/a0cc137d.3e45b34a.js | 1 +
assets/js/a4b4544e.19e5e647.js | 1 +
assets/js/a6aa9e1f.357af94f.js | 1 +
assets/js/a7456010.f2d10e9a.js | 1 +
assets/js/a7bd4aaa.073f01c3.js | 1 +
assets/js/a94703ab.a09ddd7e.js | 1 +
assets/js/aada36dd.d81a5005.js | 1 +
assets/js/aba21aa0.f047a422.js | 1 +
assets/js/acecf23e.9cd06f4e.js | 1 +
assets/js/b8958f49.071a61ec.js | 1 +
assets/js/c3aa4345.8f436a93.js | 1 +
assets/js/c4f5d8e4.0a412599.js | 1 +
assets/js/c639369e.7f628d8f.js | 1 +
assets/js/c9de33a5.7b6df4c5.js | 1 +
assets/js/cabbf3d9.5231626f.js | 1 +
assets/js/ccc49370.858ff68e.js | 1 +
assets/js/cf1fd729.f99bf6bb.js | 1 +
assets/js/cfa642a3.19b92fbf.js | 1 +
assets/js/dbfc4782.203eb664.js | 1 +
assets/js/dd04b75e.d207b88d.js | 1 +
assets/js/dd53d751.efd388f1.js | 1 +
assets/js/de3da009.3e23772a.js | 1 +
assets/js/e0719818.011f203c.js | 1 +
assets/js/e2f5eafd.a0df8a4e.js | 1 +
assets/js/ecc2f85f.13d5666d.js | 1 +
assets/js/edc931f8.3083c51b.js | 1 +
assets/js/ee1b4450.f7c5b7db.js | 1 +
assets/js/eece2e17.6b9cc232.js | 1 +
assets/js/f1f22f0f.5c56ab5f.js | 1 +
assets/js/f37f84bf.e11e010d.js | 1 +
assets/js/f9e23376.e86fa0ed.js | 1 +
assets/js/fae1940b.eb944475.js | 1 +
assets/js/main.68e001e2.js | 2 +
assets/js/main.68e001e2.js.LICENSE.txt | 138 +++++++
assets/js/runtime~main.7d82d99a.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/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 | 68 ++++
community/pmc/pmc-onboarding/index.html | 42 ++
community/release/release-version/index.html | 25 ++
community/release/verify-release/index.html | 25 ++
community/security/index.html | 43 +++
docs/download/index.html | 96 +++++
docs/fill/index.html | 87 +++++
docs/help/annotation/index.html | 113 ++++++
docs/help/core-class/index.html | 353 +++++++++++++++++
docs/help/faq/index.html | 273 +++++++++++++
docs/help/large-data/index.html | 42 ++
docs/help/parameter/index.html | 422 +++++++++++++++++++++
docs/index.html | 51 +++
docs/quickstart/guide/index.html | 74 ++++
docs/quickstart/simple-example/index.html | 31 ++
docs/read/converter/index.html | 35 ++
docs/read/csv/index.html | 101 +++++
docs/read/exception/index.html | 32 ++
docs/read/extra/index.html | 49 +++
docs/read/head/index.html | 45 +++
docs/read/num-rows/index.html | 37 ++
docs/read/pojo/index.html | 48 +++
docs/read/sheet/index.html | 48 +++
docs/read/simple/index.html | 70 ++++
docs/read/spring/index.html | 51 +++
docs/write/csv/index.html | 100 +++++
docs/write/extra/index.html | 82 ++++
docs/write/format/index.html | 35 ++
docs/write/head/index.html | 43 +++
docs/write/image/index.html | 35 ++
docs/write/pojo/index.html | 54 +++
docs/write/sheet/index.html | 49 +++
docs/write/simple/index.html | 43 +++
docs/write/spring/index.html | 31 ++
docs/write/style/index.html | 68 ++++
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 -> 23102 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.svg | 36 ++
img/team/10711694.png | Bin 0 -> 39205 bytes
img/team/11783444.png | Bin 0 -> 84486 bytes
img/team/13284744.png | Bin 0 -> 54609 bytes
img/team/17263766.png | Bin 0 -> 24563 bytes
img/team/18475586.png | Bin 0 -> 55930 bytes
img/team/18818196.png | Bin 0 -> 52576 bytes
img/team/198714007.png | Bin 0 -> 1388 bytes
img/team/29803617.png | Bin 0 -> 72638 bytes
img/team/3264250.png | Bin 0 -> 52119 bytes
img/team/5753992.png | Bin 0 -> 22582 bytes
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.0d54af32.css | 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.ccd6aa45.js | 1 +
zh-cn/assets/js/01a85c17.c92962ef.js | 1 +
zh-cn/assets/js/026e6981.66c9bede.js | 1 +
zh-cn/assets/js/035672d3.1afa1f8c.js | 1 +
zh-cn/assets/js/0e7f7048.fb8b58a2.js | 1 +
zh-cn/assets/js/12751524.4937b7cf.js | 1 +
zh-cn/assets/js/138e0e15.93fd5233.js | 1 +
zh-cn/assets/js/141.24fbb07f.js | 1 +
zh-cn/assets/js/14fc6b04.560da5ed.js | 1 +
zh-cn/assets/js/1562.70da6092.js | 1 +
zh-cn/assets/js/162d40fa.ee98f4b4.js | 1 +
zh-cn/assets/js/1649.90e806a8.js | 2 +
zh-cn/assets/js/1649.90e806a8.js.LICENSE.txt | 1 +
zh-cn/assets/js/1706.1f8c30a9.js | 1 +
zh-cn/assets/js/17896441.cda04a4c.js | 1 +
zh-cn/assets/js/1800.b58deb51.js | 1 +
zh-cn/assets/js/1874.3fc3e393.js | 1 +
zh-cn/assets/js/18b1fbba.7b3e5195.js | 1 +
zh-cn/assets/js/1a3b291f.1883e1ee.js | 1 +
zh-cn/assets/js/1a4e3797.06431859.js | 1 +
zh-cn/assets/js/1ba16981.01318a93.js | 1 +
zh-cn/assets/js/1d61c132.b179d2e5.js | 1 +
zh-cn/assets/js/23f7ca76.6053caff.js | 1 +
zh-cn/assets/js/2474.826e3a10.js | 1 +
zh-cn/assets/js/27573f0c.ec9987b4.js | 1 +
zh-cn/assets/js/2774.1c2ea4c9.js | 1 +
zh-cn/assets/js/2810e9cc.fbe306a2.js | 1 +
zh-cn/assets/js/2903.ff39d8c0.js | 1 +
zh-cn/assets/js/2fc01e78.28f42c11.js | 1 +
zh-cn/assets/js/344239d7.8c729459.js | 1 +
zh-cn/assets/js/3497.be66bff8.js | 1 +
zh-cn/assets/js/3582.ebc209f3.js | 1 +
zh-cn/assets/js/35ef6288.e32e4c93.js | 1 +
zh-cn/assets/js/3696a4b8.9753c5c3.js | 1 +
zh-cn/assets/js/36994c47.d15f2bb2.js | 1 +
zh-cn/assets/js/3899.dd052ef0.js | 1 +
zh-cn/assets/js/3adce689.04d58c76.js | 1 +
zh-cn/assets/js/4273.50520efe.js | 1 +
zh-cn/assets/js/4326.e1457e7a.js | 1 +
zh-cn/assets/js/4422.84c7c63f.js | 1 +
zh-cn/assets/js/4546.81c8086d.js | 1 +
zh-cn/assets/js/46d6cbfe.c95e9068.js | 1 +
zh-cn/assets/js/4739.55d7f6da.js | 1 +
zh-cn/assets/js/4860.153916a1.js | 1 +
zh-cn/assets/js/4ccddeda.43569d9f.js | 1 +
zh-cn/assets/js/516dc88b.d9aecb02.js | 1 +
zh-cn/assets/js/5373.5f2c487c.js | 1 +
zh-cn/assets/js/5438.d5ba87f0.js | 1 +
zh-cn/assets/js/5571.3f6cb610.js | 1 +
zh-cn/assets/js/5739.c3af032d.js | 1 +
zh-cn/assets/js/5789.b4b3ce96.js | 1 +
zh-cn/assets/js/5820.5c72c518.js | 1 +
zh-cn/assets/js/5956.120a19be.js | 2 +
zh-cn/assets/js/5956.120a19be.js.LICENSE.txt | 76 ++++
zh-cn/assets/js/5e6cf37e.9772c714.js | 1 +
zh-cn/assets/js/5e95c892.640f9a02.js | 1 +
zh-cn/assets/js/6077.3e9da91d.js | 1 +
zh-cn/assets/js/621db11d.59e11aef.js | 1 +
zh-cn/assets/js/6261.1def33de.js | 1 +
zh-cn/assets/js/6282.330a9091.js | 1 +
zh-cn/assets/js/638.7a92d25d.js | 2 +
zh-cn/assets/js/638.7a92d25d.js.LICENSE.txt | 9 +
zh-cn/assets/js/6404.7f9e2324.js | 1 +
zh-cn/assets/js/654.5fa7080d.js | 1 +
zh-cn/assets/js/6875c492.88d2409f.js | 1 +
zh-cn/assets/js/6961.36d9d743.js | 1 +
zh-cn/assets/js/6c661db7.91ea0c73.js | 1 +
zh-cn/assets/js/6e79d794.47441941.js | 1 +
zh-cn/assets/js/6f28ad3d.37513091.js | 1 +
zh-cn/assets/js/7039.6dc83b31.js | 1 +
zh-cn/assets/js/70652f5d.d482fa9b.js | 1 +
zh-cn/assets/js/7265.666cea15.js | 1 +
zh-cn/assets/js/7386.4982069e.js | 1 +
zh-cn/assets/js/7575123d.be2b14e8.js | 1 +
zh-cn/assets/js/76428bda.ee481806.js | 1 +
zh-cn/assets/js/76ebeaa2.5134a0f6.js | 1 +
zh-cn/assets/js/7bacda60.ec71ab47.js | 1 +
zh-cn/assets/js/7c8dfedd.bdd5e146.js | 1 +
zh-cn/assets/js/7ed646c5.a50770b0.js | 1 +
zh-cn/assets/js/814f3328.c5c64dd3.js | 1 +
zh-cn/assets/js/8169.088bae5d.js | 1 +
zh-cn/assets/js/8215.5c5f0d0f.js | 1 +
zh-cn/assets/js/8454.7630fef1.js | 1 +
zh-cn/assets/js/8868.ed06f2e7.js | 1 +
zh-cn/assets/js/8907.1caf6efa.js | 1 +
zh-cn/assets/js/8d4cdedc.d41d40a7.js | 1 +
zh-cn/assets/js/9056.30efb9e2.js | 1 +
zh-cn/assets/js/9076.f41581ef.js | 1 +
zh-cn/assets/js/9082.6767289e.js | 1 +
zh-cn/assets/js/91fb5ccc.bb25cf41.js | 1 +
zh-cn/assets/js/92380f4a.00fa75e9.js | 1 +
zh-cn/assets/js/9294.b37daa3d.js | 1 +
zh-cn/assets/js/9312.6c0c9b99.js | 1 +
zh-cn/assets/js/9629.35cf42ec.js | 1 +
zh-cn/assets/js/967.845daf63.js | 1 +
zh-cn/assets/js/981ce938.5321531a.js | 1 +
zh-cn/assets/js/98d765ba.f4ab26c0.js | 1 +
zh-cn/assets/js/9951.39371e10.js | 2 +
zh-cn/assets/js/9951.39371e10.js.LICENSE.txt | 1 +
zh-cn/assets/js/9a0089cf.4cfa8a22.js | 1 +
zh-cn/assets/js/9d584252.c76106ce.js | 1 +
zh-cn/assets/js/9e4087bc.b4f6636e.js | 1 +
zh-cn/assets/js/a08ce007.8ba68599.js | 1 +
zh-cn/assets/js/a1225c8b.a9c4c2ec.js | 1 +
zh-cn/assets/js/a6aa9e1f.357af94f.js | 1 +
zh-cn/assets/js/a7456010.f2d10e9a.js | 1 +
zh-cn/assets/js/a7bd4aaa.073f01c3.js | 1 +
zh-cn/assets/js/a94703ab.a09ddd7e.js | 1 +
zh-cn/assets/js/aba21aa0.f047a422.js | 1 +
zh-cn/assets/js/acecf23e.ab8318a6.js | 1 +
zh-cn/assets/js/aec1ea7d.1c0ba9a8.js | 1 +
zh-cn/assets/js/b1c23739.7456b2c8.js | 1 +
zh-cn/assets/js/b76e6c4a.ec4f18a4.js | 1 +
zh-cn/assets/js/b8ed1609.64759653.js | 1 +
zh-cn/assets/js/c1ff7703.d8d22201.js | 1 +
zh-cn/assets/js/c4f5d8e4.0a412599.js | 1 +
zh-cn/assets/js/c6ce0837.e708f7cc.js | 1 +
zh-cn/assets/js/c96ca1a6.5b4d40f3.js | 1 +
zh-cn/assets/js/ccc49370.858ff68e.js | 1 +
zh-cn/assets/js/d5087300.f7040810.js | 1 +
zh-cn/assets/js/d58f16ca.bc513d74.js | 1 +
zh-cn/assets/js/ddc7dbcd.cc48f272.js | 1 +
zh-cn/assets/js/e0719818.011f203c.js | 1 +
zh-cn/assets/js/e3ca1761.c3891d9b.js | 1 +
zh-cn/assets/js/e7985601.895bcfb2.js | 1 +
zh-cn/assets/js/e946020f.2b6a6f9d.js | 1 +
zh-cn/assets/js/f7ff6690.05c4575a.js | 1 +
zh-cn/assets/js/f98e3ca9.b1d588d6.js | 1 +
zh-cn/assets/js/main.f32a72ca.js | 2 +
zh-cn/assets/js/main.f32a72ca.js.LICENSE.txt | 138 +++++++
zh-cn/assets/js/runtime~main.9066dff5.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 ++
.../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 | 67 ++++
zh-cn/community/pmc/pmc-onboarding/index.html | 42 ++
zh-cn/community/release/release-version/index.html | 25 ++
zh-cn/community/release/verify-release/index.html | 25 ++
zh-cn/community/security/index.html | 41 ++
zh-cn/docs/download/index.html | 96 +++++
zh-cn/docs/fill/index.html | 87 +++++
zh-cn/docs/help/annotation/index.html | 113 ++++++
zh-cn/docs/help/core-class/index.html | 362 ++++++++++++++++++
zh-cn/docs/help/faq/index.html | 273 +++++++++++++
zh-cn/docs/help/large-data/index.html | 40 ++
zh-cn/docs/help/parameter/index.html | 422 +++++++++++++++++++++
zh-cn/docs/index.html | 42 ++
zh-cn/docs/quickstart/guide/index.html | 72 ++++
zh-cn/docs/quickstart/simple-example/index.html | 31 ++
zh-cn/docs/read/converter/index.html | 35 ++
zh-cn/docs/read/csv/index.html | 99 +++++
zh-cn/docs/read/exception/index.html | 32 ++
zh-cn/docs/read/extra/index.html | 49 +++
zh-cn/docs/read/head/index.html | 45 +++
zh-cn/docs/read/num-rows/index.html | 35 ++
zh-cn/docs/read/pojo/index.html | 48 +++
zh-cn/docs/read/sheet/index.html | 47 +++
zh-cn/docs/read/simple/index.html | 70 ++++
zh-cn/docs/read/spring/index.html | 49 +++
zh-cn/docs/write/csv/index.html | 99 +++++
zh-cn/docs/write/extra/index.html | 82 ++++
zh-cn/docs/write/format/index.html | 35 ++
zh-cn/docs/write/head/index.html | 43 +++
zh-cn/docs/write/image/index.html | 35 ++
zh-cn/docs/write/pojo/index.html | 54 +++
zh-cn/docs/write/sheet/index.html | 49 +++
zh-cn/docs/write/simple/index.html | 42 ++
zh-cn/docs/write/spring/index.html | 31 ++
zh-cn/docs/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 -> 23102 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.svg | 36 ++
zh-cn/img/team/10711694.png | Bin 0 -> 39205 bytes
zh-cn/img/team/11783444.png | Bin 0 -> 84486 bytes
zh-cn/img/team/13284744.png | Bin 0 -> 54609 bytes
zh-cn/img/team/17263766.png | Bin 0 -> 24563 bytes
zh-cn/img/team/18475586.png | Bin 0 -> 55930 bytes
zh-cn/img/team/18818196.png | Bin 0 -> 52576 bytes
zh-cn/img/team/198714007.png | Bin 0 -> 1388 bytes
zh-cn/img/team/29803617.png | Bin 0 -> 72638 bytes
zh-cn/img/team/3264250.png | Bin 0 -> 52119 bytes
zh-cn/img/team/5753992.png | Bin 0 -> 22582 bytes
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 ++
565 files changed, 9878 insertions(+)
diff --git a/.asf.yaml b/.asf.yaml
new file mode 100644
index 00000000..51dee261
--- /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 Excels 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..468d004d
--- /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.1">
+<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/"><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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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.0d54af32.css b/assets/css/styles.0d54af32.css
new file mode 100644
index 00000000..026a7aec
--- /dev/null
+++ b/assets/css/styles.0d54af32.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/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/0179594a.d985a642.js b/assets/js/0179594a.d985a642.js
new file mode 100644
index 00000000..e8e4d591
--- /dev/null
+++ b/assets/js/0179594a.d985a642.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5729],{29087:(e,n,t)=>{t.d(n,{R:()=>c,x:()=>r});var o=t(96363);const i={},a=o.createContext(i);function c(e){const n=o.useContext(a);return o.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:c(e.components),o.createElement(a.Provider,{value:n},e.children)}},87726:(e [...]
\ No newline at end of file
diff --git a/assets/js/01a85c17.c92962ef.js b/assets/js/01a85c17.c92962ef.js
new file mode 100644
index 00000000..177d48fb
--- /dev/null
+++ b/assets/js/01a85c17.c92962ef.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8209],{50884:(e,t,a)=>{a.d(t,{A:()=>l});a(96363);var s=a(13526),n=a(40221);const i={tag:"tag_S9Ao",tagRegular:"tagRegular_dOwC",tagWithCount:"tagWithCount_nNee"};var r=a(47259);function l({permalink:e,label:t,count:a,description:l}){return(0,r.jsxs)(n.A,{rel:"tag",href:e,title:l,className:(0,s.A)(i.tag,a?i.tagWithCount:i.tagRegular),children:[t,a&&(0,r.jsx)("span",{children:a})]})}},68197:(e,t,a)=>{a. [...]
\ No newline at end of file
diff --git a/assets/js/035672d3.1afa1f8c.js b/assets/js/035672d3.1afa1f8c.js
new file mode 100644
index 00000000..8bf8097d
--- /dev/null
+++ b/assets/js/035672d3.1afa1f8c.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8885],{21527:(e,t,a)=>{a.d(t,{A:()=>n});a(96363);var i=a(13892),s=a(47259);function n({children:e,fallback:t}){return(0,i.A)()?(0,s.jsx)(s.Fragment,{children:e?.()}):t??null}},39726:(e,t,a)=>{a.r(t),a.d(t,{default:()=>o});var i=a(96363),s=a(21527);const n=JSON.parse('{"pmc":[{"githubId":"29803617","gitUrl":"https://github.com/dave2wave","name":"Dave Fisher","isMentor":true},{"githubId":"13284744","git [...]
\ No newline at end of file
diff --git a/assets/js/08af526d.dc523126.js b/assets/js/08af526d.dc523126.js
new file mode 100644
index 00000000..0d21f99f
--- /dev/null
+++ b/assets/js/08af526d.dc523126.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[529],{41344:e=>{e.exports=JSON.parse('{"metadata":{"permalink":"/blog","page":1,"postsPerPage":5,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/0fc1e0ab.32482038.js b/assets/js/0fc1e0ab.32482038.js
new file mode 100644
index 00000000..6636b002
--- /dev/null
+++ b/assets/js/0fc1e0ab.32482038.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5911],{6756:(e,n,t)=>{t.d(n,{A:()=>i});const i=t.p+"assets/images/icla-03-c8df2f12ca6b2bc591a4e73aced61280.png"},29087:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>l});var i=t(96363);const s={},r=i.createContext(s);function o(e){const n=i.useContext(r);return i.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 [...]
\ No newline at end of file
diff --git a/assets/js/10e1fcd2.4a73b47c.js b/assets/js/10e1fcd2.4a73b47c.js
new file mode 100644
index 00000000..e020174b
--- /dev/null
+++ b/assets/js/10e1fcd2.4a73b47c.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1469],{15801:(e,i,n)=>{n.d(i,{A:()=>t});const t=n.p+"assets/images/reset-passwd-e8828118db9277c6fe25a82a5a0bb3da.png"},29087:(e,i,n)=>{n.d(i,{R:()=>r,x:()=>s});var t=n(96363);const a={},o=t.createContext(a);function r(e){const i=t.useContext(o);return t.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function s(e){let i;return i=e.disableParentContext?"function"==typeof e.compon [...]
\ No newline at end of file
diff --git a/assets/js/11b43341.f9a2e07f.js b/assets/js/11b43341.f9a2e07f.js
new file mode 100644
index 00000000..2cd4d171
--- /dev/null
+++ b/assets/js/11b43341.f9a2e07f.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2256],{15293: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/quickstar [...]
\ No newline at end of file
diff --git a/assets/js/138e0e15.93fd5233.js b/assets/js/138e0e15.93fd5233.js
new file mode 100644
index 00000000..319c7b86
--- /dev/null
+++ b/assets/js/138e0e15.93fd5233.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/141.24fbb07f.js b/assets/js/141.24fbb07f.js
new file mode 100644
index 00000000..ceae25e8
--- /dev/null
+++ b/assets/js/141.24fbb07f.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[141],{50141:(e,r,s)=>{s.d(r,{diagram:()=>i});var a=s(89076),t=(s(7055),s(58943),s(95458),s(86659),s(39142),s(29124),s(97440),s(85611),s(63637),s(43379),s(31808),s(80074),s(51595)),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/1562.70da6092.js b/assets/js/1562.70da6092.js
new file mode 100644
index 00000000..eff27236
--- /dev/null
+++ b/assets/js/1562.70da6092.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1562],{58943:(e,t,s)=>{s.d(t,{A:()=>r});var i=s(51595),n=s(3170),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")},91562:(e,t,s)=>{s.d(t,{diagram:()=>E});var i=s(58943),n=s(95458),r=s(86659),a=(s(39142),s(29124),s(97440),s(85611),s(63637),s(43379),s(31808)),l=s( [...]
\ No newline at end of file
diff --git a/assets/js/1649.30c8ac4b.js b/assets/js/1649.30c8ac4b.js
new file mode 100644
index 00000000..77f6be82
--- /dev/null
+++ b/assets/js/1649.30c8ac4b.js
@@ -0,0 +1,2 @@
+/*! For license information please see 1649.30c8ac4b.js.LICENSE.txt */
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1649],{3170:(t,e,r)=>{"use strict";function n(t,e){let r;if(void 0===e)for(const n of t)null!=n&&(r<n||void 0===r&&n>=n)&&(r=n);else{let n=-1;for(let i of t)null!=(i=e(i,++n,t))&&(r<i||void 0===r&&i>=i)&&(r=i)}return r}function i(t,e){let r;if(void 0===e)for(const n of t)null!=n&&(r>n||void 0===r&&n>=n)&&(r=n);else{let n=-1;for(let i of t)null!=(i=e(i,++n,t))&&(r>i||void 0===r&&i>=i)&&(r=i)}return r}function a(t){ [...]
\ No newline at end of file
diff --git a/assets/js/1649.30c8ac4b.js.LICENSE.txt b/assets/js/1649.30c8ac4b.js.LICENSE.txt
new file mode 100644
index 00000000..3c2b5001
--- /dev/null
+++ b/assets/js/1649.30c8ac4b.js.LICENSE.txt
@@ -0,0 +1 @@
+/*! @license DOMPurify 3.2.7 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.7/LICENSE */
diff --git a/assets/js/1706.1f8c30a9.js b/assets/js/1706.1f8c30a9.js
new file mode 100644
index 00000000..f6705f0d
--- /dev/null
+++ b/assets/js/1706.1f8c30a9.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1706],{31706:(t,n,e)=>{e.d(n,{diagram:()=>ct});var i=e(80074),s=e(51595),r=e(3170);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 [...]
\ No newline at end of file
diff --git a/assets/js/17896441.cda04a4c.js b/assets/js/17896441.cda04a4c.js
new file mode 100644
index 00000000..d33aecb1
--- /dev/null
+++ b/assets/js/17896441.cda04a4c.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8401],{4342:(e,n,t)=>{t.d(n,{A:()=>c});t(96363);var s=t(13526),a=t(17629);const i={tableOfContents:"tableOfContents_EWY5",docItemContainer:"docItemContainer_AUpp"};var o=t(47259);const l="table-of-contents__link toc-highlight",r="table-of-contents__link--active";function c({className:e,...n}){return(0,o.jsx)("div",{className:(0,s.A)(i.tableOfContents,"thin-scrollbar",e),children:(0,o.jsx)(a.A,{...n,li [...]
\ No newline at end of file
diff --git a/assets/js/1800.92fa5fb1.js b/assets/js/1800.92fa5fb1.js
new file mode 100644
index 00000000..a8adf09b
--- /dev/null
+++ b/assets/js/1800.92fa5fb1.js
@@ -0,0 +1 @@
+(()=>{"use strict";var e,r,t={91800:(e,r,t)=>{t.d(r,{BH:()=>n,Ho:()=>p,IH:()=>i,sx:()=>a});var o=t(36430),s=t.n(o);t(84946)(s()),t(79500).A(s()),t(42537)(s());const a=[],n=["zh","en"],i="search-index{dir}.json?_=5c38ba69",p=1}},o={};function s(e){var r=o[e];if(void 0!==r)return r.exports;var a=o[e]={exports:{}};return t[e].call(a.exports,a,a.exports,s),a.exports}s.m=t,s.x=()=>{var e=s.O(void 0,[5956],()=>s(17620));return e=s.O(e)},e=[],s.O=(r,t,o,a)=>{if(!t){var n=1/0;for(c=0;c<e.length; [...]
\ No newline at end of file
diff --git a/assets/js/1874.3fc3e393.js b/assets/js/1874.3fc3e393.js
new file mode 100644
index 00000000..2b6c2827
--- /dev/null
+++ b/assets/js/1874.3fc3e393.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1874],{6064:(t,n,r)=>{r.d(n,{A:()=>u});var e=r(22663);const o=function(t,n){return(0,e.A)(n,function(n){return t[n]})};var c=r(22859);const u=function(t){return null==t?[]:o(t,(0,c.A)(t))}},9532:(t,n,r)=>{r.d(n,{A:()=>o});var e=r(37617);const o=function(t,n){return!!(null==t?0:t.length)&&(0,e.A)(t,n,0)>-1}},9584:(t,n,r)=>{r.d(n,{A:()=>e});const e=function(t,n){return t.has(n)}},13027:(t,n,r)=>{r.d(n,{ [...]
\ No newline at end of file
diff --git a/assets/js/1a4e3797.06431859.js b/assets/js/1a4e3797.06431859.js
new file mode 100644
index 00000000..a7120d00
--- /dev/null
+++ b/assets/js/1a4e3797.06431859.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2138],{13281:(e,t,r)=>{r.d(t,{W:()=>u});var s=r(96363),a=r(76985);const n=["zero","one","two","few","many","other"];function l(e){return n.filter(t=>e.includes(t))}const c={locale:"en",pluralForms:l(["one","other"]),select:e=>1===e?"one":"other"};function o(){const{i18n:{currentLocale:e}}=(0,a.A)();return(0,s.useMemo)(()=>{try{return function(e){const t=new Intl.PluralRules(e);return{locale:e,pluralFo [...]
\ No newline at end of file
diff --git a/assets/js/2063472f.30da6390.js b/assets/js/2063472f.30da6390.js
new file mode 100644
index 00000000..6e95f519
--- /dev/null
+++ b/assets/js/2063472f.30da6390.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3215],{17646: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/213c1e68.3871c46f.js b/assets/js/213c1e68.3871c46f.js
new file mode 100644
index 00000000..8a9808a9
--- /dev/null
+++ b/assets/js/213c1e68.3871c46f.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8118],{29087:(e,t,r)=>{r.d(t,{R:()=>o,x:()=>a});var i=r(96363);const s={},n=i.createContext(s);function o(e){const t=i.useContext(n);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(s):e.components||s:o(e.components),i.createElement(n.Provider,{value:t},e.children)}},69745:(e [...]
\ No newline at end of file
diff --git a/assets/js/224f0d80.480a6a46.js b/assets/js/224f0d80.480a6a46.js
new file mode 100644
index 00000000..d41a70fc
--- /dev/null
+++ b/assets/js/224f0d80.480a6a46.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6913],{28928:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>i,contentTitle:()=>d,default:()=>h,frontMatter:()=>o,metadata:()=>a,toc:()=>l});const a=JSON.parse('{"id":"read/num-rows","title":"Rows","description":"This chapter introduces how to read a specified number of rows.","source":"@site/docs/read/num-rows.md","sourceDirName":"read","slug":"/read/num-rows","permalink":"/docs/read/num-rows","draft":false,"unli [...]
\ No newline at end of file
diff --git a/assets/js/2474.826e3a10.js b/assets/js/2474.826e3a10.js
new file mode 100644
index 00000000..3e85eb73
--- /dev/null
+++ b/assets/js/2474.826e3a10.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2474],{86036:(e,t,i)=>{i.d(t,{A:()=>r});i(96363);var n=i(13526),o=i(12417),s=i(46182),a=i(47259);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.ti [...]
\ No newline at end of file
diff --git a/assets/js/2774.1c2ea4c9.js b/assets/js/2774.1c2ea4c9.js
new file mode 100644
index 00000000..08d145fe
--- /dev/null
+++ b/assets/js/2774.1c2ea4c9.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2774],{42774:(t,e,a)=>{a.d(e,{diagram:()=>z});var r=a(47348),n=a(85849),i=a(31808),s=a(80074),o=a(51595),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,"g [...]
\ No newline at end of file
diff --git a/assets/js/2903.ff39d8c0.js b/assets/js/2903.ff39d8c0.js
new file mode 100644
index 00000000..58a05afa
--- /dev/null
+++ b/assets/js/2903.ff39d8c0.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2903],{23369:(t,e,a)=>{a.d(e,{CP:()=>h,HT:()=>u,PB:()=>d,aC:()=>c,lC:()=>l,m:()=>o,tk:()=>s});var n=a(80074),i=a(51595),r=a(41407),s=(0,i.K2)((t,e)=>{const a=t.append("rect");if(a.attr("x",e.x),a.attr("y",e.y),a.attr("fill",e.fill),a.attr("stroke",e.stroke),a.attr("width",e.width),a.attr("height",e.height),e.name&&a.attr("name",e.name),e.rx&&a.attr("rx",e.rx),e.ry&&a.attr("ry",e.ry),void 0!==e.attrs)f [...]
\ No newline at end of file
diff --git a/assets/js/299aa024.f8e7dac1.js b/assets/js/299aa024.f8e7dac1.js
new file mode 100644
index 00000000..c0f038b7
--- /dev/null
+++ b/assets/js/299aa024.f8e7dac1.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4807],{29087:(e,n,t)=>{t.d(n,{R:()=>l,x:()=>d});var i=t(96363);const r={},s=i.createContext(r);function l(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(r):e.components||r:l(e.components),i.createElement(s.Provider,{value:n},e.children)}},38243:(e [...]
\ No newline at end of file
diff --git a/assets/js/33ed5212.48c08793.js b/assets/js/33ed5212.48c08793.js
new file mode 100644
index 00000000..e3ee9150
--- /dev/null
+++ b/assets/js/33ed5212.48c08793.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3294],{29087:(e,a,n)=>{n.d(a,{R:()=>i,x:()=>l});var d=n(96363);const r={},t=d.createContext(r);function i(e){const a=d.useContext(t);return d.useMemo(function(){return"function"==typeof e?e(a):{...a,...e}},[a,e])}function l(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),d.createElement(t.Provider,{value:a},e.children)}},68338:(e [...]
\ No newline at end of file
diff --git a/assets/js/3497.be66bff8.js b/assets/js/3497.be66bff8.js
new file mode 100644
index 00000000..15d2d23d
--- /dev/null
+++ b/assets/js/3497.be66bff8.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3497],{13497:(t,e,n)=>{n.d(e,{diagram:()=>Y});var i=n(80074),s=n(51595),r=n(3170),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,EO [...]
\ No newline at end of file
diff --git a/assets/js/3582.ebc209f3.js b/assets/js/3582.ebc209f3.js
new file mode 100644
index 00000000..c00f3d22
--- /dev/null
+++ b/assets/js/3582.ebc209f3.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3582],{4812:(t,e,a)=>{a.d(e,{m:()=>s});var r=a(51595),s=class{constructor(t){this.init=t,this.records=this.init()}static{(0,r.K2)(this,"ImperativeState")}reset(){this.records=this.init()}}},13582:(t,e,a)=>{a.d(e,{diagram:()=>vt});var r=a(23369),s=a(73767),i=a(4812),n=a(31808),o=a(80074),c=a(51595),l=a(3170),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); [...]
\ No newline at end of file
diff --git a/assets/js/366ada8c.e0702a37.js b/assets/js/366ada8c.e0702a37.js
new file mode 100644
index 00000000..902619d6
--- /dev/null
+++ b/assets/js/366ada8c.e0702a37.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1849],{32178: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":5,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]);
\ No newline at end of file
diff --git a/assets/js/36994c47.d15f2bb2.js b/assets/js/36994c47.d15f2bb2.js
new file mode 100644
index 00000000..2099f418
--- /dev/null
+++ b/assets/js/36994c47.d15f2bb2.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/3899.dd052ef0.js b/assets/js/3899.dd052ef0.js
new file mode 100644
index 00000000..969515b3
--- /dev/null
+++ b/assets/js/3899.dd052ef0.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/3a5084d4.48d855ae.js b/assets/js/3a5084d4.48d855ae.js
new file mode 100644
index 00000000..1b36a754
--- /dev/null
+++ b/assets/js/3a5084d4.48d855ae.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2272],{24898:(e,i,t)=>{t.r(i),t.d(i,{assets:()=>d,contentTitle:()=>l,default:()=>h,frontMatter:()=>s,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"write/head","title":"Head","description":"This chapter introduces how to write header data in Excel.","source":"@site/docs/write/head.md","sourceDirName":"write","slug":"/write/head","permalink":"/docs/write/head","draft":false,"unlisted":false,"edi [...]
\ No newline at end of file
diff --git a/assets/js/3e8bb567.32082d2a.js b/assets/js/3e8bb567.32082d2a.js
new file mode 100644
index 00000000..1d46e5bf
--- /dev/null
+++ b/assets/js/3e8bb567.32082d2a.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3535],{29087:(e,n,a)=>{a.d(n,{R:()=>i,x:()=>r});var l=a(96363);const t={},s=l.createContext(t);function i(e){const n=l.useContext(s);return l.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(t):e.components||t:i(e.components),l.createElement(s.Provider,{value:n},e.children)}},90690:(e [...]
\ No newline at end of file
diff --git a/assets/js/4273.50520efe.js b/assets/js/4273.50520efe.js
new file mode 100644
index 00000000..da710c6e
--- /dev/null
+++ b/assets/js/4273.50520efe.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4273],{34273:(t,e,i)=>{i.d(e,{diagram:()=>I});var a=i(80074),n=i(51595),s=i(3170),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 [...]
\ No newline at end of file
diff --git a/assets/js/4326.e1457e7a.js b/assets/js/4326.e1457e7a.js
new file mode 100644
index 00000000..2bdb2cba
--- /dev/null
+++ b/assets/js/4326.e1457e7a.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4326],{3602:(e,n,t)=>{t.d(n,{A:()=>c});var r=t(76095),o=t(42849),i=t(22859);const u=function(e){return function(n,t,u){var a=Object(n);if(!(0,o.A)(n)){var s=(0,r.A)(t,3);n=(0,i.A)(n),t=function(e){return s(a[e],e,a)}}var d=e(n,t,u);return d>-1?a[s?n[d]:d]:void 0}};var a=t(46482),s=t(81066),d=Math.max;const c=u(function(e,n,t){var o=null==e?0:e.length;if(!o)return-1;var i=null==t?0:(0,s.A)(t);return i< [...]
\ No newline at end of file
diff --git a/assets/js/4383cab8.c1ce96bf.js b/assets/js/4383cab8.c1ce96bf.js
new file mode 100644
index 00000000..ecca3647
--- /dev/null
+++ b/assets/js/4383cab8.c1ce96bf.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6405],{29087:(e,n,t)=>{t.d(n,{R:()=>r,x:()=>c});var o=t(96363);const i={},s=o.createContext(i);function r(e){const n=o.useContext(s);return o.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(i):e.components||i:r(e.components),o.createElement(s.Provider,{value:n},e.children)}},60089:(e [...]
\ No newline at end of file
diff --git a/assets/js/4422.84c7c63f.js b/assets/js/4422.84c7c63f.js
new file mode 100644
index 00000000..b6191084
--- /dev/null
+++ b/assets/js/4422.84c7c63f.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4422],{84422:(e,t,a)=>{a.d(t,{diagram:()=>C});var i=a(47348),l=a(85849),n=a(31808),r=a(80074),s=a(51595),o=a(96961),c=a(3170),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 inv [...]
\ No newline at end of file
diff --git a/assets/js/452acb72.13678e14.js b/assets/js/452acb72.13678e14.js
new file mode 100644
index 00000000..1323e9ba
--- /dev/null
+++ b/assets/js/452acb72.13678e14.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3561],{3735:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>o,frontMatter:()=>i,metadata:()=>r,toc:()=>c});const r=JSON.parse('{"id":"help/parameter","title":"Parameter","description":"This section introduces the parameters used in FastExcel.","source":"@site/docs/help/parameter.md","sourceDirName":"help","slug":"/help/parameter","permalink":"/docs/help/parameter","draft":false,"un [...]
\ No newline at end of file
diff --git a/assets/js/4546.81c8086d.js b/assets/js/4546.81c8086d.js
new file mode 100644
index 00000000..44e8191e
--- /dev/null
+++ b/assets/js/4546.81c8086d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4546],{58943:(t,e,i)=>{i.d(e,{A:()=>r});var s=i(51595),n=i(3170),r=(0,s.K2)((t,e)=>{let i;"sandbox"===e&&(i=(0,n.Ltv)("#i"+t));return("sandbox"===e?(0,n.Ltv)(i.nodes()[0].contentDocument.body):(0,n.Ltv)("body")).select(`[id="${t}"]`)},"getDiagramElement")},80124:(t,e,i)=>{i.d(e,{A:()=>r});var s=i(46554),n=i(55385);const r=(t,e)=>s.A.lang.round(n.A.parse(t)[e])},84546:(t,e,i)=>{i.d(e,{diagram:()=>f});v [...]
\ No newline at end of file
diff --git a/assets/js/4739.55d7f6da.js b/assets/js/4739.55d7f6da.js
new file mode 100644
index 00000000..2b60d813
--- /dev/null
+++ b/assets/js/4739.55d7f6da.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4739],{84739:(e,t,a)=>{a.d(t,{diagram:()=>v});var l=a(47348),s=a(95458),r=a(63637),n=a(85849),i=a(31808),o=a(80074),c=a(51595),d=a(96961),p=a(3170),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{( [...]
\ No newline at end of file
diff --git a/assets/js/4860.153916a1.js b/assets/js/4860.153916a1.js
new file mode 100644
index 00000000..40144e64
--- /dev/null
+++ b/assets/js/4860.153916a1.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/498dc5b3.ffbc6733.js b/assets/js/498dc5b3.ffbc6733.js
new file mode 100644
index 00000000..5fc56aef
--- /dev/null
+++ b/assets/js/498dc5b3.ffbc6733.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9051],{29087:(e,t,n)=>{n.d(t,{R:()=>i,x:()=>a});var s=n(96363);const o={},r=s.createContext(o);function i(e){const t=s.useContext(r);return s.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(o):e.components||o:i(e.components),s.createElement(r.Provider,{value:t},e.children)}},34907:(e [...]
\ No newline at end of file
diff --git a/assets/js/4a783ec1.50458f82.js b/assets/js/4a783ec1.50458f82.js
new file mode 100644
index 00000000..4958949a
--- /dev/null
+++ b/assets/js/4a783ec1.50458f82.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1047],{29087:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>r});var o=t(96363);const a={},i=o.createContext(a);function s(e){const n=o.useContext(i);return o.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(a):e.components||a:s(e.components),o.createElement(i.Provider,{value:n},e.children)}},52754:(e [...]
\ No newline at end of file
diff --git a/assets/js/512a93d9.5c292749.js b/assets/js/512a93d9.5c292749.js
new file mode 100644
index 00000000..003da1a1
--- /dev/null
+++ b/assets/js/512a93d9.5c292749.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4587],{20867:(e,t,n)=>{n.d(t,{A:()=>l});const l=n.p+"assets/images/handlerStyleWrite-082ae37a51bd9252f6900ab754387401.png"},22404:(e,t,n)=>{n.d(t,{A:()=>l});const l=n.p+"assets/images/widthAndHeightWrite-77c049fb68d1ac806c1ba21e82c45f45.png"},26791:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>s,default:()=>h,frontMatter:()=>o,metadata:()=>l,toc:()=>d});const l=JSON.parse('{"id":"write/style", [...]
\ No newline at end of file
diff --git a/assets/js/5373.5f2c487c.js b/assets/js/5373.5f2c487c.js
new file mode 100644
index 00000000..bdf067ab
--- /dev/null
+++ b/assets/js/5373.5f2c487c.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5373],{4812:(t,r,e)=>{e.d(r,{m:()=>o});var n=e(51595),o=class{constructor(t){this.init=t,this.records=this.init()}static{(0,n.K2)(this,"ImperativeState")}reset(){this.records=this.init()}}},55373:(t,r,e)=>{e.d(r,{diagram:()=>ut});var n=e(85849),o=e(4812),a=e(31808),c=e(80074),s=e(51595),i=e(96961),h=e(3170),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/542af253.a5b10ebe.js b/assets/js/542af253.a5b10ebe.js
new file mode 100644
index 00000000..1bfbfdc1
--- /dev/null
+++ b/assets/js/542af253.a5b10ebe.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[251],{5634:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>s,default:()=>m,frontMatter:()=>i,metadata:()=>r,toc:()=>d});const r=JSON.parse('{"id":"write/extra","title":"Extra","description":"This chapter introduces how to write extra information such as comments, hyperlinks, formulas, merged cells, etc.","source":"@site/docs/write/extra.md","sourceDirName":"write","slug":"/write/extra","permalin [...]
\ No newline at end of file
diff --git a/assets/js/5438.d5ba87f0.js b/assets/js/5438.d5ba87f0.js
new file mode 100644
index 00000000..369a366f
--- /dev/null
+++ b/assets/js/5438.d5ba87f0.js
@@ -0,0 +1 @@
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5438],{15438:(t,e,i)=>{"use strict";i.r(e),i.d(e,{render:()=>p});var r=i(51595),n=i(70638),o=i(50026),s=i(3170);function a(t,e){t.forEach(t=>{const i={id:t.id,labelText:t.label,height:t.height,width:t.width,padding:t.padding??0};Object.keys(t).forEach(e=>{["id","label","height","width","padding","x","y"].includes(e)||(i[e]=t[e])}),e.add({group:"nodes",data:i,position:{x:t.x??0,y:t.y??0}})})}function h(t,e){t.forEa [...]
\ No newline at end of file
diff --git a/assets/js/5571.3f6cb610.js b/assets/js/5571.3f6cb610.js
new file mode 100644
index 00000000..6b3ba065
--- /dev/null
+++ b/assets/js/5571.3f6cb610.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5571],{45571:(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 [...]
\ No newline at end of file
diff --git a/assets/js/55f30539.b91c9bdd.js b/assets/js/55f30539.b91c9bdd.js
new file mode 100644
index 00000000..a4856b5a
--- /dev/null
+++ b/assets/js/55f30539.b91c9bdd.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1005],{4446:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>r,contentTitle:()=>d,default:()=>h,frontMatter:()=>l,metadata:()=>s,toc:()=>o});const s=JSON.parse('{"id":"read/simple","title":"Simple","description":"This chapter introduces how to use FastExcel to perform simple Excel reading operations.","source":"@site/docs/read/simple.md","sourceDirName":"read","slug":"/read/simple","permalink":"/docs/read/simple"," [...]
\ No newline at end of file
diff --git a/assets/js/5739.c3af032d.js b/assets/js/5739.c3af032d.js
new file mode 100644
index 00000000..c3906349
--- /dev/null
+++ b/assets/js/5739.c3af032d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5739],{7055:(t,e,n)=>{n.d(e,{o:()=>i});var i=(0,n(51595).K2)(()=>"\n /* Font Awesome icon styling - consolidated */\n .label-icon {\n display: inline-block;\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n }\n \n .node .label-icon path {\n fill: currentColor;\n stroke: revert;\n stroke-width: revert;\n }\n","getIconStyles")},45739:(t,e,n)=>{n.d(e,{diagram:() [...]
\ No newline at end of file
diff --git a/assets/js/5771c448.7587ad35.js b/assets/js/5771c448.7587ad35.js
new file mode 100644
index 00000000..889e9c3f
--- /dev/null
+++ b/assets/js/5771c448.7587ad35.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5274],{29087:(e,i,t)=>{t.d(i,{R:()=>r,x:()=>o});var n=t(96363);const s={},a=n.createContext(s);function r(e){const i=n.useContext(a);return n.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function o(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),n.createElement(a.Provider,{value:i},e.children)}},95910:(e [...]
\ No newline at end of file
diff --git a/assets/js/5789.b4b3ce96.js b/assets/js/5789.b4b3ce96.js
new file mode 100644
index 00000000..25f8fbff
--- /dev/null
+++ b/assets/js/5789.b4b3ce96.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5789],{7055:(t,e,s)=>{s.d(e,{o:()=>i});var i=(0,s(51595).K2)(()=>"\n /* Font Awesome icon styling - consolidated */\n .label-icon {\n display: inline-block;\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n }\n \n .node .label-icon path {\n fill: currentColor;\n stroke: revert;\n stroke-width: revert;\n }\n","getIconStyles")},58943:(t,e,s)=>{s.d(e,{A:()=>r}); [...]
\ No newline at end of file
diff --git a/assets/js/5820.5c72c518.js b/assets/js/5820.5c72c518.js
new file mode 100644
index 00000000..e8dd7d23
--- /dev/null
+++ b/assets/js/5820.5c72c518.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/5956.120a19be.js b/assets/js/5956.120a19be.js
new file mode 100644
index 00000000..c13238d6
--- /dev/null
+++ b/assets/js/5956.120a19be.js
@@ -0,0 +1,2 @@
+/*! For license information please see 5956.120a19be.js.LICENSE.txt */
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5956],{17620:(e,t,r)=>{"use strict";const n=Symbol("Comlink.proxy"),i=Symbol("Comlink.endpoint"),s=Symbol("Comlink.releaseProxy"),o=Symbol("Comlink.finalizer"),a=Symbol("Comlink.thrown"),u=e=>"object"==typeof e&&null!==e||"function"==typeof e,l={canHandle:e=>u(e)&&e[n],serialize(e){const{port1:t,port2:r}=new MessageChannel;return h(e,t),[r,[r]]},deserialize:e=>(e.start(),function(e,t){const r=new Map;return e.addE [...]
\ No newline at end of file
diff --git a/assets/js/5956.120a19be.js.LICENSE.txt b/assets/js/5956.120a19be.js.LICENSE.txt
new file mode 100644
index 00000000..7e6757bb
--- /dev/null
+++ b/assets/js/5956.120a19be.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/5e95c892.640f9a02.js b/assets/js/5e95c892.640f9a02.js
new file mode 100644
index 00000000..91da60af
--- /dev/null
+++ b/assets/js/5e95c892.640f9a02.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9647],{89922:(e,s,r)=>{r.r(s),r.d(s,{default:()=>h});r(96363);var a=r(13526),t=r(13743),u=r(96148),c=r(42073),i=r(74718),l=r(47259);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/6077.3e9da91d.js b/assets/js/6077.3e9da91d.js
new file mode 100644
index 00000000..e442f14a
--- /dev/null
+++ b/assets/js/6077.3e9da91d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6077],{56077:(t,e,n)=>{n.d(e,{diagram:()=>D});var i=n(58943),s=n(95458),r=n(86659),o=(n(39142),n(29124),n(97440),n(85611),n(63637),n(43379),n(31808),n(80074)),a=n(51595);const c={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let h;const l=new Uint8Array(16);const d=[];for(let L=0;L<256;++L)d.push((L+256).toString(16).slice(1));function g(t,e=0){return(d[t[e+ [...]
\ No newline at end of file
diff --git a/assets/js/621db11d.59e11aef.js b/assets/js/621db11d.59e11aef.js
new file mode 100644
index 00000000..d16e95bf
--- /dev/null
+++ b/assets/js/621db11d.59e11aef.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4212],{6133:(t,s,e)=>{e.d(s,{ZD:()=>u,uz:()=>l});e(96363);var a=e(12417),o=e(13281);e(47259);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/6261.1def33de.js b/assets/js/6261.1def33de.js
new file mode 100644
index 00000000..dbf12df6
--- /dev/null
+++ b/assets/js/6261.1def33de.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6261],{76261:(t,e,a)=>{a.d(e,{diagram:()=>m});var r=a(47348),i=a(85849),s=a(31808),o=a(80074),n=a(51595),l=a(96961),c=o.UI.packet,d=class{constructor(){this.packet=[],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,n.K2)(this,"PacketDB")}getConfig(){const t=(0,s.$t)({...c,...(0,o.zj)().pac [...]
\ No newline at end of file
diff --git a/assets/js/6282.330a9091.js b/assets/js/6282.330a9091.js
new file mode 100644
index 00000000..f9b7fcbc
--- /dev/null
+++ b/assets/js/6282.330a9091.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6282],{6282:(t,e,n)=>{n.d(e,{diagram:()=>X});var i=n(23369),s=n(7055),r=n(80074),a=n(51595),o=n(3170),l=function(){var t=(0,a.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,18],n=[1,9],i=[1,10],s=[1,11],r=[1,12],o=[1,13],l=[1,14],c={trace:(0,a.K2)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,stateme [...]
\ No newline at end of file
diff --git a/assets/js/638.7a92d25d.js b/assets/js/638.7a92d25d.js
new file mode 100644
index 00000000..eef5b396
--- /dev/null
+++ b/assets/js/638.7a92d25d.js
@@ -0,0 +1,2 @@
+/*! For license information please see 638.7a92d25d.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. [...]
\ No newline at end of file
diff --git a/assets/js/638.7a92d25d.js.LICENSE.txt b/assets/js/638.7a92d25d.js.LICENSE.txt
new file mode 100644
index 00000000..a9f6f124
--- /dev/null
+++ b/assets/js/638.7a92d25d.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/6381e667.b156c4aa.js b/assets/js/6381e667.b156c4aa.js
new file mode 100644
index 00000000..6576361c
--- /dev/null
+++ b/assets/js/6381e667.b156c4aa.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8143],{29087:(e,s,n)=>{n.d(s,{R:()=>r,x:()=>d});var t=n(96363);const l={},a=t.createContext(l);function r(e){const s=t.useContext(a);return t.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function d(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:r(e.components),t.createElement(a.Provider,{value:s},e.children)}},80186:(e [...]
\ No newline at end of file
diff --git a/assets/js/6404.7f9e2324.js b/assets/js/6404.7f9e2324.js
new file mode 100644
index 00000000..0c7712fe
--- /dev/null
+++ b/assets/js/6404.7f9e2324.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6404],{96404:(e,r,s)=>{s.d(r,{diagram:()=>i});var a=s(89076),t=(s(7055),s(58943),s(95458),s(86659),s(39142),s(29124),s(97440),s(85611),s(63637),s(43379),s(31808),s(80074),s(51595)),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/64ca138b.44e7d1ed.js b/assets/js/64ca138b.44e7d1ed.js
new file mode 100644
index 00000000..dec6358c
--- /dev/null
+++ b/assets/js/64ca138b.44e7d1ed.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3451],{29087:(e,n,s)=>{s.d(n,{R:()=>d,x:()=>o});var t=s(96363);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)}},87866:(e [...]
\ No newline at end of file
diff --git a/assets/js/654.5fa7080d.js b/assets/js/654.5fa7080d.js
new file mode 100644
index 00000000..c994f09a
--- /dev/null
+++ b/assets/js/654.5fa7080d.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/66e7b107.50d2c642.js b/assets/js/66e7b107.50d2c642.js
new file mode 100644
index 00000000..dcd494b9
--- /dev/null
+++ b/assets/js/66e7b107.50d2c642.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1795],{24279:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"feedback","title":"Feedback","description":"We appreciate all the feedback and suggestions you have. If you find any bugs during use, you can submit the issue through the NEW ISSUE page.","source":"@site/community/feedback.md","sourceDirName":".","s [...]
\ No newline at end of file
diff --git a/assets/js/6875c492.88d2409f.js b/assets/js/6875c492.88d2409f.js
new file mode 100644
index 00000000..1b967754
--- /dev/null
+++ b/assets/js/6875c492.88d2409f.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4813],{6133:(e,t,n)=>{n.d(t,{ZD:()=>r,uz:()=>l});n(96363);var s=n(12417),a=n(13281);n(47259);function i(){const{selectMessage:e}=(0,a.W)();return t=>e(t,(0,s.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/6961.36d9d743.js b/assets/js/6961.36d9d743.js
new file mode 100644
index 00000000..d6466324
--- /dev/null
+++ b/assets/js/6961.36d9d743.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},3602:(e,t,n)=>{n.d(t,{A:()=>u});var r=n(76095),i=n(42849),s=n(22859);const a=function(e){return funct [...]
\ No newline at end of file
diff --git a/assets/js/700664e1.dbbf5cac.js b/assets/js/700664e1.dbbf5cac.js
new file mode 100644
index 00000000..63136df2
--- /dev/null
+++ b/assets/js/700664e1.dbbf5cac.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9268],{21382:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>n,toc:()=>d});const n=JSON.parse('{"id":"write/csv","title":"CSV","description":"This chapter introduces how to use FastExcel to write custom CSV files.","source":"@site/docs/write/csv.md","sourceDirName":"write","slug":"/write/csv","permalink":"/docs/write/csv","draft":false,"unlisted":fa [...]
\ No newline at end of file
diff --git a/assets/js/7039.6dc83b31.js b/assets/js/7039.6dc83b31.js
new file mode 100644
index 00000000..1f8ef19e
--- /dev/null
+++ b/assets/js/7039.6dc83b31.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/7386.4982069e.js b/assets/js/7386.4982069e.js
new file mode 100644
index 00000000..2f69a353
--- /dev/null
+++ b/assets/js/7386.4982069e.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7386],{58943:(t,e,s)=>{s.d(e,{A:()=>r});var i=s(51595),n=s(3170),r=(0,i.K2)((t,e)=>{let s;"sandbox"===e&&(s=(0,n.Ltv)("#i"+t));return("sandbox"===e?(0,n.Ltv)(s.nodes()[0].contentDocument.body):(0,n.Ltv)("body")).select(`[id="${t}"]`)},"getDiagramElement")},77386:(t,e,s)=>{s.d(e,{Zk:()=>h,q7:()=>B,tM:()=>ot,u4:()=>rt});var i=s(58943),n=s(95458),r=s(86659),o=s(31808),a=s(80074),c=s(51595),l=function(){v [...]
\ No newline at end of file
diff --git a/assets/js/761d52bb.81f634e9.js b/assets/js/761d52bb.81f634e9.js
new file mode 100644
index 00000000..2fff9e89
--- /dev/null
+++ b/assets/js/761d52bb.81f634e9.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1166],{29087:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>l});var i=t(96363);const r={},d=i.createContext(r);function o(e){const n=i.useContext(d);return i.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(r):e.components||r:o(e.components),i.createElement(d.Provider,{value:n},e.children)}},67850:(e [...]
\ No newline at end of file
diff --git a/assets/js/814f3328.fbaa45bf.js b/assets/js/814f3328.fbaa45bf.js
new file mode 100644
index 00000000..2ec9a530
--- /dev/null
+++ b/assets/js/814f3328.fbaa45bf.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/8169.088bae5d.js b/assets/js/8169.088bae5d.js
new file mode 100644
index 00000000..bf0cd720
--- /dev/null
+++ b/assets/js/8169.088bae5d.js
@@ -0,0 +1 @@
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8169],{23798:function(t){t.exports=function(){"use strict";var t="day";return function(e,n,i){var s=function(e){return e.add(4-e.isoWeekday(),t)},r=n.prototype;r.isoWeekYear=function(){return s(this).year()},r.isoWeek=function(e){if(!this.$utils().u(e))return this.add(7*(e-this.isoWeek()),t);var n,r,a,o=s(this),c=(n=this.isoWeekYear(),a=4-(r=(this.$u?i.utc:i)().year(n).startOf("year")).isoWeekday(),r.isoWeekday()> [...]
\ No newline at end of file
diff --git a/assets/js/81c2829c.63b1cac5.js b/assets/js/81c2829c.63b1cac5.js
new file mode 100644
index 00000000..224fbe77
--- /dev/null
+++ b/assets/js/81c2829c.63b1cac5.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1723],{29087:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>a});var r=t(96363);const i={},o=r.createContext(i);function s(e){const n=r.useContext(o);return r.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(i):e.components||i:s(e.components),r.createElement(o.Provider,{value:n},e.children)}},35671:(e [...]
\ No newline at end of file
diff --git a/assets/js/8215.5c5f0d0f.js b/assets/js/8215.5c5f0d0f.js
new file mode 100644
index 00000000..4532656c
--- /dev/null
+++ b/assets/js/8215.5c5f0d0f.js
@@ -0,0 +1 @@
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8215],{18215:(t,e,i)=>{"use strict";i.d(e,{diagram:()=>Z});var n=i(47348),r=i(43379),o=i(85849),s=i(31808),a=i(80074),h=i(51595),l=i(96961),d=i(70638),c=i(60023),g=i(3170),u={L:"left",R:"right",T:"top",B:"bottom"},f={L:(0,h.K2)(t=>`${t},${t/2} 0,${t} 0,0`,"L"),R:(0,h.K2)(t=>`0,${t/2} ${t},0 ${t},${t}`,"R"),T:(0,h.K2)(t=>`0,0 ${t},0 ${t/2},${t}`,"T"),B:(0,h.K2)(t=>`${t/2},0 ${t},${t} 0,${t}`,"B")},p={L:(0,h.K2)((t, [...]
\ No newline at end of file
diff --git a/assets/js/83b4fe73.84dd63b2.js b/assets/js/83b4fe73.84dd63b2.js
new file mode 100644
index 00000000..9add25c1
--- /dev/null
+++ b/assets/js/83b4fe73.84dd63b2.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2519],{29087:(e,n,i)=>{i.d(n,{R:()=>s,x:()=>c});var t=i(96363);const o={},r=t.createContext(o);function s(e){const n=t.useContext(r);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(o):e.components||o:s(e.components),t.createElement(r.Provider,{value:n},e.children)}},41782:(e [...]
\ No newline at end of file
diff --git a/assets/js/8454.7630fef1.js b/assets/js/8454.7630fef1.js
new file mode 100644
index 00000000..ec950f12
--- /dev/null
+++ b/assets/js/8454.7630fef1.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8454],{7055:(t,e,r)=>{r.d(e,{o:()=>a});var a=(0,r(51595).K2)(()=>"\n /* Font Awesome icon styling - consolidated */\n .label-icon {\n display: inline-block;\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n }\n \n .node .label-icon path {\n fill: currentColor;\n stroke: revert;\n stroke-width: revert;\n }\n","getIconStyles")},19641:(t,e,r)=>{r.d(e,{T:()=>f}); [...]
\ No newline at end of file
diff --git a/assets/js/84c84ccb.96d2e0c7.js b/assets/js/84c84ccb.96d2e0c7.js
new file mode 100644
index 00000000..6301d77d
--- /dev/null
+++ b/assets/js/84c84ccb.96d2e0c7.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9586],{29087:(e,n,r)=>{r.d(n,{R:()=>s,x:()=>i});var t=r(96363);const a={},o=t.createContext(a);function s(e){const n=t.useContext(o);return t.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(a):e.components||a:s(e.components),t.createElement(o.Provider,{value:n},e.children)}},56043:(e [...]
\ No newline at end of file
diff --git a/assets/js/8868.ed06f2e7.js b/assets/js/8868.ed06f2e7.js
new file mode 100644
index 00000000..2e4b9c48
--- /dev/null
+++ b/assets/js/8868.ed06f2e7.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8868],{98868:(t,e,a)=>{a.d(e,{diagram:()=>R});var i,n=a(77386),r=(a(58943),a(95458),a(86659),a(39142),a(29124),a(97440),a(85611),a(63637),a(43379),a(31808)),d=a(80074),s=a(51595),o=a(3170),g=a(74326),h=a(57420),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 [...]
\ No newline at end of file
diff --git a/assets/js/8907.1caf6efa.js b/assets/js/8907.1caf6efa.js
new file mode 100644
index 00000000..4851c1c8
--- /dev/null
+++ b/assets/js/8907.1caf6efa.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/8bddb7f1.2f9c2ed7.js b/assets/js/8bddb7f1.2f9c2ed7.js
new file mode 100644
index 00000000..459136b4
--- /dev/null
+++ b/assets/js/8bddb7f1.2f9c2ed7.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4491],{29087:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>l});var s=t(96363);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)}},29682:(e [...]
\ No newline at end of file
diff --git a/assets/js/903f555a.43c7a5ca.js b/assets/js/903f555a.43c7a5ca.js
new file mode 100644
index 00000000..a2157baf
--- /dev/null
+++ b/assets/js/903f555a.43c7a5ca.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1155],{14794:(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(47259),s=n(29087);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.30efb9e2.js b/assets/js/9056.30efb9e2.js
new file mode 100644
index 00000000..0d2916ba
--- /dev/null
+++ b/assets/js/9056.30efb9e2.js
@@ -0,0 +1 @@
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9056],{99056:()=>{}}]);
\ No newline at end of file
diff --git a/assets/js/9076.f41581ef.js b/assets/js/9076.f41581ef.js
new file mode 100644
index 00000000..6dd22acc
--- /dev/null
+++ b/assets/js/9076.f41581ef.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9076],{7055:(t,e,s)=>{s.d(e,{o:()=>i});var i=(0,s(51595).K2)(()=>"\n /* Font Awesome icon styling - consolidated */\n .label-icon {\n display: inline-block;\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n }\n \n .node .label-icon path {\n fill: currentColor;\n stroke: revert;\n stroke-width: revert;\n }\n","getIconStyles")},58943:(t,e,s)=>{s.d(e,{A:()=>a}); [...]
\ No newline at end of file
diff --git a/assets/js/9082.6767289e.js b/assets/js/9082.6767289e.js
new file mode 100644
index 00000000..b7155aca
--- /dev/null
+++ b/assets/js/9082.6767289e.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9082],{13281:(e,t,s)=>{s.d(t,{W:()=>c});var a=s(96363),n=s(76985);const i=["zero","one","two","few","many","other"];function r(e){return i.filter(t=>e.includes(t))}const l={locale:"en",pluralForms:r(["one","other"]),select:e=>1===e?"one":"other"};function o(){const{i18n:{currentLocale:e}}=(0,n.A)();return(0,a.useMemo)(()=>{try{return function(e){const t=new Intl.PluralRules(e);return{locale:e,pluralFo [...]
\ No newline at end of file
diff --git a/assets/js/9294.b37daa3d.js b/assets/js/9294.b37daa3d.js
new file mode 100644
index 00000000..8259e6ad
--- /dev/null
+++ b/assets/js/9294.b37daa3d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9294],{39294:(e,n,t)=>{t.r(n),t.d(n,{render:()=>k});var r=t(39142),i=(t(29124),t(97440)),a=t(85611),o=(t(63637),t(43379),t(31808),t(80074)),d=t(51595),s=t(74326),c=t(60707),g=t(64350),l=t(72185);t(19641);function f(e){var n={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:h(e),edges:p(e)};return c.A(e.graph())||(n.value=g.A(e.graph())),n}function h(e){return [...]
\ No newline at end of file
diff --git a/assets/js/9312.6c0c9b99.js b/assets/js/9312.6c0c9b99.js
new file mode 100644
index 00000000..bfe9f6d5
--- /dev/null
+++ b/assets/js/9312.6c0c9b99.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9312],{39312:(e,r,t)=>{t.d(r,{diagram:()=>i});var a=t(77386),s=(t(58943),t(95458),t(86659),t(39142),t(29124),t(97440),t(85611),t(63637),t(43379),t(31808),t(80074),t(51595)),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/939f94eb.8858322e.js b/assets/js/939f94eb.8858322e.js
new file mode 100644
index 00000000..aae589fa
--- /dev/null
+++ b/assets/js/939f94eb.8858322e.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[936],{858:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>s,metadata:()=>i,toc:()=>d});const i=JSON.parse('{"id":"help/large-data","title":"Large Data","description":"Reading","source":"@site/docs/help/large-data.md","sourceDirName":"help","slug":"/help/large-data","permalink":"/docs/help/large-data","draft":false,"unlisted":false,"editUrl":"https://github.com/apa [...]
\ No newline at end of file
diff --git a/assets/js/9629.35cf42ec.js b/assets/js/9629.35cf42ec.js
new file mode 100644
index 00000000..d144b242
--- /dev/null
+++ b/assets/js/9629.35cf42ec.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9629],{69629:(t,i,e)=>{e.d(i,{diagram:()=>it});var s=e(47348),a=e(43379),n=e(31808),h=e(80074),o=e(51595),r=e(3170),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,3 [...]
\ No newline at end of file
diff --git a/assets/js/9646.83bab20c.js b/assets/js/9646.83bab20c.js
new file mode 100644
index 00000000..b0427e53
--- /dev/null
+++ b/assets/js/9646.83bab20c.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9646],{89646:(e,a,r)=>{r.d(a,{diagram:()=>p});var t=r(24285),s=r(47348),n=r(80074),i=r(51595),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.app [...]
\ No newline at end of file
diff --git a/assets/js/967.845daf63.js b/assets/js/967.845daf63.js
new file mode 100644
index 00000000..731825b5
--- /dev/null
+++ b/assets/js/967.845daf63.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/9951.39371e10.js b/assets/js/9951.39371e10.js
new file mode 100644
index 00000000..1de3efc5
--- /dev/null
+++ b/assets/js/9951.39371e10.js
@@ -0,0 +1,2 @@
+/*! For license information please see 9951.39371e10.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})\x [...]
\ No newline at end of file
diff --git a/assets/js/9951.39371e10.js.LICENSE.txt b/assets/js/9951.39371e10.js.LICENSE.txt
new file mode 100644
index 00000000..4f7ccd8a
--- /dev/null
+++ b/assets/js/9951.39371e10.js.LICENSE.txt
@@ -0,0 +1 @@
+/*! https://mths.be/cssesc v3.0.0 by @mathias */
diff --git a/assets/js/9dc5a89b.563ddd74.js b/assets/js/9dc5a89b.563ddd74.js
new file mode 100644
index 00000000..650457ae
--- /dev/null
+++ b/assets/js/9dc5a89b.563ddd74.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3094],{29087:(e,t,i)=>{i.d(t,{R:()=>r,x:()=>l});var a=i(96363);const n={},s=a.createContext(n);function r(e){const t=a.useContext(s);return a.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:r(e.components),a.createElement(s.Provider,{value:t},e.children)}},49861:(e [...]
\ No newline at end of file
diff --git a/assets/js/9e4087bc.b4f6636e.js b/assets/js/9e4087bc.b4f6636e.js
new file mode 100644
index 00000000..a2730e76
--- /dev/null
+++ b/assets/js/9e4087bc.b4f6636e.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2711],{73718:(e,a,r)=>{r.r(a),r.d(a,{default:()=>m});r(96363);var t=r(40221),s=r(12417),n=r(96148),i=r(98978),c=r(74718),l=r(46182),o=r(47259);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.meta [...]
\ No newline at end of file
diff --git a/assets/js/a0cc137d.3e45b34a.js b/assets/js/a0cc137d.3e45b34a.js
new file mode 100644
index 00000000..d47892d6
--- /dev/null
+++ b/assets/js/a0cc137d.3e45b34a.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6407],{29087:(e,t,n)=>{n.d(t,{R:()=>r,x:()=>c});var o=n(96363);const a={},s=o.createContext(a);function r(e){const t=o.useContext(s);return o.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),o.createElement(s.Provider,{value:t},e.children)}},64098:e= [...]
\ No newline at end of file
diff --git a/assets/js/a4b4544e.19e5e647.js b/assets/js/a4b4544e.19e5e647.js
new file mode 100644
index 00000000..ba0b7cbe
--- /dev/null
+++ b/assets/js/a4b4544e.19e5e647.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2340],{19864:(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 partici [...]
\ No newline at end of file
diff --git a/assets/js/a6aa9e1f.357af94f.js b/assets/js/a6aa9e1f.357af94f.js
new file mode 100644
index 00000000..ce5c40ea
--- /dev/null
+++ b/assets/js/a6aa9e1f.357af94f.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7643],{64253:(e,t,a)=>{a.d(t,{A:()=>i});a(96363);var s=a(98870),n=a(75871),r=a(47259);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))})}},75871:(e,t,a)=>{a.d(t,{A:()=>O});a(96363);var s=a(13526),n=a(98870),r=a(47259);function i({children:e,className:t}){ret [...]
\ No newline at end of file
diff --git a/assets/js/a7456010.f2d10e9a.js b/assets/js/a7456010.f2d10e9a.js
new file mode 100644
index 00000000..5fa87290
--- /dev/null
+++ b/assets/js/a7456010.f2d10e9a.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.073f01c3.js b/assets/js/a7bd4aaa.073f01c3.js
new file mode 100644
index 00000000..dce1fbb9
--- /dev/null
+++ b/assets/js/a7bd4aaa.073f01c3.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7098],{63919:(n,e,s)=>{s.r(e),s.d(e,{default:()=>x});s(96363);var r=s(96148),o=s(84393),t=s(18605),i=s(42073),c=s(716),a=s(47259);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, [...]
\ No newline at end of file
diff --git a/assets/js/a94703ab.a09ddd7e.js b/assets/js/a94703ab.a09ddd7e.js
new file mode 100644
index 00000000..dedebf1b
--- /dev/null
+++ b/assets/js/a94703ab.a09ddd7e.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9048],{51916:(e,t,n)=>{n.r(t),n.d(t,{default:()=>ke});var a=n(96363),i=n(13526),o=n(96148),s=n(13743),l=n(38148),r=n(5049),c=n(12417),d=n(26840),u=n(96494);const m={backToTopButton:"backToTopButton_nZ2k",backToTopButtonShow:"backToTopButtonShow_a2Tg"};var b=n(47259);function h(){const{shown:e,scrollToTop:t}=function({threshold:e}){const[t,n]=(0,a.useState)(!1),i=(0,a.useRef)(!1),{startScroll:o,cancelS [...]
\ No newline at end of file
diff --git a/assets/js/aada36dd.d81a5005.js b/assets/js/aada36dd.d81a5005.js
new file mode 100644
index 00000000..61cb6d1b
--- /dev/null
+++ b/assets/js/aada36dd.d81a5005.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2543],{75862: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":"ma [...]
\ No newline at end of file
diff --git a/assets/js/aba21aa0.f047a422.js b/assets/js/aba21aa0.f047a422.js
new file mode 100644
index 00000000..542a986d
--- /dev/null
+++ b/assets/js/aba21aa0.f047a422.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/acecf23e.9cd06f4e.js b/assets/js/acecf23e.9cd06f4e.js
new file mode 100644
index 00000000..3be7c6bb
--- /dev/null
+++ b/assets/js/acecf23e.9cd06f4e.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/b8958f49.071a61ec.js b/assets/js/b8958f49.071a61ec.js
new file mode 100644
index 00000000..c789e08e
--- /dev/null
+++ b/assets/js/b8958f49.071a61ec.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6900],{29087:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>r});var i=t(96363);const d={},a=i.createContext(d);function s(e){const n=i.useContext(a);return i.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(d):e.components||d:s(e.components),i.createElement(a.Provider,{value:n},e.children)}},80096:(e [...]
\ No newline at end of file
diff --git a/assets/js/c3aa4345.8f436a93.js b/assets/js/c3aa4345.8f436a93.js
new file mode 100644
index 00000000..7995025b
--- /dev/null
+++ b/assets/js/c3aa4345.8f436a93.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7105],{29087:(e,n,i)=>{i.d(n,{R:()=>s,x:()=>c});var t=i(96363);const o={},r=t.createContext(o);function s(e){const n=t.useContext(r);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(o):e.components||o:s(e.components),t.createElement(r.Provider,{value:n},e.children)}},96039:(e [...]
\ No newline at end of file
diff --git a/assets/js/c4f5d8e4.0a412599.js b/assets/js/c4f5d8e4.0a412599.js
new file mode 100644
index 00000000..74e740f8
--- /dev/null
+++ b/assets/js/c4f5d8e4.0a412599.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,b,u,v,R,P,Z,A,j=t(96363);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/ [...]
\ No newline at end of file
diff --git a/assets/js/c639369e.7f628d8f.js b/assets/js/c639369e.7f628d8f.js
new file mode 100644
index 00000000..5262cc65
--- /dev/null
+++ b/assets/js/c639369e.7f628d8f.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7637],{29087:(e,t,a)=>{a.d(t,{R:()=>s,x:()=>l});var n=a(96363);const i={},r=n.createContext(i);function s(e){const t=n.useContext(r);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),n.createElement(r.Provider,{value:t},e.children)}},63170:(e [...]
\ No newline at end of file
diff --git a/assets/js/c9de33a5.7b6df4c5.js b/assets/js/c9de33a5.7b6df4c5.js
new file mode 100644
index 00000000..cf4c10b4
--- /dev/null
+++ b/assets/js/c9de33a5.7b6df4c5.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3026],{29087:(e,i,t)=>{t.d(i,{R:()=>r,x:()=>c});var n=t(96363);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)}},66279:(e [...]
\ No newline at end of file
diff --git a/assets/js/cabbf3d9.5231626f.js b/assets/js/cabbf3d9.5231626f.js
new file mode 100644
index 00000000..e85f0228
--- /dev/null
+++ b/assets/js/cabbf3d9.5231626f.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4923],{29087:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>l});var i=t(96363);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 l(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)}},65536:(e [...]
\ No newline at end of file
diff --git a/assets/js/ccc49370.858ff68e.js b/assets/js/ccc49370.858ff68e.js
new file mode 100644
index 00000000..99bc4ab2
--- /dev/null
+++ b/assets/js/ccc49370.858ff68e.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3249],{4342:(e,t,n)=>{n.d(t,{A:()=>c});n(96363);var a=n(13526),s=n(17629);const i={tableOfContents:"tableOfContents_EWY5",docItemContainer:"docItemContainer_AUpp"};var r=n(47259);const o="table-of-contents__link toc-highlight",l="table-of-contents__link--active";function c({className:e,...t}){return(0,r.jsx)("div",{className:(0,a.A)(i.tableOfContents,"thin-scrollbar",e),children:(0,r.jsx)(s.A,{...t,li [...]
\ No newline at end of file
diff --git a/assets/js/cf1fd729.f99bf6bb.js b/assets/js/cf1fd729.f99bf6bb.js
new file mode 100644
index 00000000..ec9de514
--- /dev/null
+++ b/assets/js/cf1fd729.f99bf6bb.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9565],{5671:(e,i,n)=>{n.d(i,{A:()=>t});const t=n.p+"assets/images/excludeOrIncludeWrite-bea7b205e7748fd8b55311383c344df1.png"},8578:(e,i,n)=>{n.r(i),n.d(i,{assets:()=>o,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>t,toc:()=>d});const t=JSON.parse('{"id":"write/pojo","title":"POJO","description":"This chapter introduces how to write data by configuring POJO classes.","source":"@site/ [...]
\ No newline at end of file
diff --git a/assets/js/cfa642a3.19b92fbf.js b/assets/js/cfa642a3.19b92fbf.js
new file mode 100644
index 00000000..611f8073
--- /dev/null
+++ b/assets/js/cfa642a3.19b92fbf.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4823],{29087:(e,i,t)=>{t.d(i,{R:()=>r,x:()=>a});var n=t(96363);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)}},81278:(e [...]
\ No newline at end of file
diff --git a/assets/js/dbfc4782.203eb664.js b/assets/js/dbfc4782.203eb664.js
new file mode 100644
index 00000000..4a5045a2
--- /dev/null
+++ b/assets/js/dbfc4782.203eb664.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8749],{91895: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 successful [...]
\ No newline at end of file
diff --git a/assets/js/dd04b75e.d207b88d.js b/assets/js/dd04b75e.d207b88d.js
new file mode 100644
index 00000000..4004265a
--- /dev/null
+++ b/assets/js/dd04b75e.d207b88d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1672],{33024:t=>{t.exports=JSON.parse('{"authors":[{"name":"jipengfei","url":"https://github.com/jipengfei-jpf","socials":{"github":"https://github.com/jipengfei-jpf"},"imageURL":"/img/team/198714007.png","key":"jipengfei","page":null,"count":0},{"name":"zhuangjiaju","url":"https://github.com/zhuangjiaju","socials":{"github":"https://github.com/zhuangjiaju"},"imageURL":"/img/team/18475586.png","key":" [...]
\ No newline at end of file
diff --git a/assets/js/dd53d751.efd388f1.js b/assets/js/dd53d751.efd388f1.js
new file mode 100644
index 00000000..e1080598
--- /dev/null
+++ b/assets/js/dd53d751.efd388f1.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[158],{29087:(e,n,s)=>{s.d(n,{R:()=>r,x:()=>o});var l=s(96363);const i={},t=l.createContext(i);function r(e){const n=l.useContext(t);return l.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),l.createElement(t.Provider,{value:n},e.children)}},39892:(e, [...]
\ No newline at end of file
diff --git a/assets/js/de3da009.3e23772a.js b/assets/js/de3da009.3e23772a.js
new file mode 100644
index 00000000..edf85d28
--- /dev/null
+++ b/assets/js/de3da009.3e23772a.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[685],{16183:(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 import [...]
\ No newline at end of file
diff --git a/assets/js/e0719818.011f203c.js b/assets/js/e0719818.011f203c.js
new file mode 100644
index 00000000..e4dadfb3
--- /dev/null
+++ b/assets/js/e0719818.011f203c.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/e2f5eafd.a0df8a4e.js b/assets/js/e2f5eafd.a0df8a4e.js
new file mode 100644
index 00000000..b1a76a28
--- /dev/null
+++ b/assets/js/e2f5eafd.a0df8a4e.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9373],{29087:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>o});var i=t(96363);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 o(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)}},58875:(e [...]
\ No newline at end of file
diff --git a/assets/js/ecc2f85f.13d5666d.js b/assets/js/ecc2f85f.13d5666d.js
new file mode 100644
index 00000000..48a2440c
--- /dev/null
+++ b/assets/js/ecc2f85f.13d5666d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7395],{29087:(e,t,i)=>{i.d(t,{R:()=>a,x:()=>l});var s=i(96363);const n={},r=s.createContext(n);function a(e){const t=s.useContext(r);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:a(e.components),s.createElement(r.Provider,{value:t},e.children)}},64551:(e [...]
\ No newline at end of file
diff --git a/assets/js/edc931f8.3083c51b.js b/assets/js/edc931f8.3083c51b.js
new file mode 100644
index 00000000..e1958e3b
--- /dev/null
+++ b/assets/js/edc931f8.3083c51b.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2526],{29087:(e,i,s)=>{s.d(i,{R:()=>l,x:()=>r});var t=s(96363);const n={},o=t.createContext(n);function l(e){const i=t.useContext(o);return t.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function r(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:l(e.components),t.createElement(o.Provider,{value:i},e.children)}},61381:(e [...]
\ No newline at end of file
diff --git a/assets/js/ee1b4450.f7c5b7db.js b/assets/js/ee1b4450.f7c5b7db.js
new file mode 100644
index 00000000..1185696d
--- /dev/null
+++ b/assets/js/ee1b4450.f7c5b7db.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4215],{29087:(e,n,t)=>{t.d(n,{R:()=>l,x:()=>o});var a=t(96363);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)}},92078:(e [...]
\ No newline at end of file
diff --git a/assets/js/eece2e17.6b9cc232.js b/assets/js/eece2e17.6b9cc232.js
new file mode 100644
index 00000000..8449c30d
--- /dev/null
+++ b/assets/js/eece2e17.6b9cc232.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2302],{29087:(e,t,r)=>{r.d(t,{R:()=>o,x:()=>s});var n=r(96363);const i={},a=n.createContext(i);function o(e){const t=n.useContext(a);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),n.createElement(a.Provider,{value:t},e.children)}},47058:(e [...]
\ No newline at end of file
diff --git a/assets/js/f1f22f0f.5c56ab5f.js b/assets/js/f1f22f0f.5c56ab5f.js
new file mode 100644
index 00000000..b5519e7b
--- /dev/null
+++ b/assets/js/f1f22f0f.5c56ab5f.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8878],{2945:(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/k9JNPwFZLTD [...]
\ No newline at end of file
diff --git a/assets/js/f37f84bf.e11e010d.js b/assets/js/f37f84bf.e11e010d.js
new file mode 100644
index 00000000..55e9e492
--- /dev/null
+++ b/assets/js/f37f84bf.e11e010d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9525],{29087:(e,t,i)=>{i.d(t,{R:()=>s,x:()=>a});var r=i(96363);const l={},n=r.createContext(l);function s(e){const t=r.useContext(n);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(l):e.components||l:s(e.components),r.createElement(n.Provider,{value:t},e.children)}},43762:(e [...]
\ No newline at end of file
diff --git a/assets/js/f9e23376.e86fa0ed.js b/assets/js/f9e23376.e86fa0ed.js
new file mode 100644
index 00000000..7dfcef88
--- /dev/null
+++ b/assets/js/f9e23376.e86fa0ed.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2840],{20250:(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","sourceDirNam [...]
\ No newline at end of file
diff --git a/assets/js/fae1940b.eb944475.js b/assets/js/fae1940b.eb944475.js
new file mode 100644
index 00000000..25773b48
--- /dev/null
+++ b/assets/js/fae1940b.eb944475.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1239],{23496:(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 [...]
\ No newline at end of file
diff --git a/assets/js/main.68e001e2.js b/assets/js/main.68e001e2.js
new file mode 100644
index 00000000..898bfa5b
--- /dev/null
+++ b/assets/js/main.68e001e2.js
@@ -0,0 +1,2 @@
+/*! For license information please see main.68e001e2.js.LICENSE.txt */
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8792],{273:(e,t,n)=>{"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function a(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.assign||function [...]
\ No newline at end of file
diff --git a/assets/js/main.68e001e2.js.LICENSE.txt b/assets/js/main.68e001e2.js.LICENSE.txt
new file mode 100644
index 00000000..f4d2c339
--- /dev/null
+++ b/assets/js/main.68e001e2.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.7d82d99a.js b/assets/js/runtime~main.7d82d99a.js
new file mode 100644
index 00000000..b5b6509d
--- /dev/null
+++ b/assets/js/runtime~main.7d82d99a.js
@@ -0,0 +1 @@
+(()=>{"use strict";var e,a,f,c,d,b={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var f=t[e]={exports:{}};return b[e].call(f.exports,f,f.exports,r),f.exports}r.m=b,e=[],r.O=(a,f,c,d)=>{if(!f){var b=1/0;for(i=0;i<e.length;i++){for(var[f,c,d]=e[i],t=!0,o=0;o<f.length;o++)(!1&d||b>=d)&&Object.keys(r.O).every(e=>r.O[e](f[o]))?f.splice(o--,1):(t=!1,d<b&&(b=d));if(t){e.splice(i--,1);var n=c();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..6641ace3
--- /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.1">
+<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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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..0b6811ea
--- /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.1">
+<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 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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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..13ef1f7f
--- /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">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">Apache Software Foundation</a> (ASF), the world's leading open source software organization. On September 25th, the Fesod project was officially transferred to the Apache [...]
+ <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..56bfd3a6
--- /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.1">
+<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 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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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..1cb70862
--- /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\">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\">Apache Software Foundation</a> (ASF), the world's leading open source software organization. On September 25th, the Fesod project was officially transferred to the Apa [...]
+ "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..904d5ae8
--- /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.1">
+<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="tru [...]
+<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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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..9fae6b42
--- /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">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">Apache Software Foundation</a> (ASF), the world's leading open source software organization. On September 25th, the Fesod project was officially transferred to the Apache [...]
+ <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..eea510ea
--- /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.1">
+<title data-rh="true">One post tagged with "announcement" | Apache Fesod (Incubating)</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" name="twitter:image" content="https://fesod.apache.org/img/logo.svg"><meta data-rh="true" property="og:url" content="https://f [...]
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Fesod (Incubating) Atom Feed">
+<link rel="alternate" type="application/json" href="/blog/feed.json" title="Apache Fesod (Incubating) JSON Feed">
+
+
+
+
+
+<link rel="preconnect" href="https://analytics.apache.org/">
+<script>var _paq=window._paq=window._paq||[];_paq.push(["setRequestMethod","POST"]),_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),_paq.push(["enableHeartBeatTimer"]),function(){var e="https://analytics.apache.org/";_paq.push(["setRequestMethod","POST"]),_paq.push(["setTrackerUrl",e+"matomo.php"]),_paq.push(["setSiteId","83"]);var a=document,t=a.createElement("script"),p=a.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.src=e+"matomo.js",p.parentNo [...]
+<script src="/assets/js/runtime~main.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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..b3f55ced
--- /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.1">
+<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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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/committer/become-committer/index.html b/community/committer/become-committer/index.html
new file mode 100644
index 00000000..a7b70eeb
--- /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.1">
+<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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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><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><strong>(P)roject</strong> - a clear vision and consensus are needed</li>
+<li><strong>(Do)cumentation</strong> - without it, the stuff remains only in the minds
+of the authors</li>
+<li><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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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>A solid general understanding of the project</li>
+<li>Well tested, well-designed, following Apache Fesod (Incubating) coding
+standards, and simple patches.</li>
+<li>Well-organized and detailed user-oriented documentation.</li>
+</ul>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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>Be active, courteous, and respectful on the dev mailing list and
+help mentor newer contributors
+and users.</li>
+<li>Be active, courteous, and respectful on the issue tracker for
+project maintenance</li>
+<li>Be active, courteous, and respectful for pull requests reviewing</li>
+<li>Be involved in the design road map discussions with a professional
+and diplomatic approach even if there is a disagreement</li>
+<li>Promoting the project by writing articles or holding events</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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>Check the list of pull requests and issues to be processed in the community on a daily basis.
+<ul>
+<li>Including label issue, reply issue, close issue;</li>
+<li>Assign issue to the appropriate committer, namely assignee;</li>
+</ul>
+</li>
+<li>After a committer is assigned with an issue, the following work is required:
+<ul>
+<li>Estimate whether it is a long-term issue. If it is, please label it as pending;</li>
+<li>Add issue labels, such as bug, enhancement, discussion, etc;</li>
+<li>Add milestone.</li>
+</ul>
+</li>
+<li>Pull request that committer submits needs to add labels and milestone based on the type and release period.</li>
+<li>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 anchorWithStickyNavbar_YIWN" 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">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"><a href="https://github.com/apache/fesod/edi [...]
+</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..435556ef
--- /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.1">
+<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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>If they decide in favor, they should select "Reply All" and express their decision. Please provide the reference content of this reply email:</p>
+<div class="language-text codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-text codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token plain">Hi, i accept. Thanks for invitaion.</span><br></span></code></pre></div></div>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 href="/community/committer/icla/">Sign ICLA guide</a></p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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">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_ujsZ"></p>
+<p>After clicking "Send Email", a prompt will appear indicating that the email has been sent successfully. Then check your email and click the provided link to reset your password.</p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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_ujsZ"></p>
+<ol>
+<li>Navigate to <a href="https://gitbox.apache.org/boxer/" target="_blank" rel="noopener noreferrer">ASF Boxer</a> and enter your Apache ID and password.</li>
+<li>Click "Link GitHub username to ASF id" and follow the given instructions to link your ASF account to GitHub.</li>
+<li>Check your email titled "[GitHub] @asfgit has invited you to join the @apache organization" and accept the invitation.</li>
+<li>Wait momentarily, and the website will refresh on its own.</li>
+<li>(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">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">ASF Boxer</a>. Congrats on successfully linking your ASF account to GitHub!</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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">Apache Account Utility Platform</a></p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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">this guide</a>.</p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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>Open Gmail settings and select "See all settings".</li>
+<li>Navigate to "Accounts and Import", then locate "Send mail as".</li>
+<li>Click "Add another email address" and enter your name and apache.org email address.</li>
+<li>Input the SMTP server information:
+<ul>
+<li>SMTP Server: mail-relay.apache.org</li>
+<li>Port: 587</li>
+<li>Username: your apache ID</li>
+<li>Password: your apache password</li>
+<li>Secured connection using TLS</li>
+</ul>
+</li>
+<li>Click "Add account" and you will receive an email from Gmail that need to confirm.</li>
+</ol>
+<p><img decoding="async" loading="lazy" alt="Gmail Setting" src="/assets/images/gmail-setting-64fa2bef013a1817489ee6195d293a97.png" width="772" height="418" class="img_ujsZ"></p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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 href="/community/#how-to-subscribe-to-a-mailing-list">Subscribe to Mailing List</a></p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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">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">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"><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="0 0 40 40" [...]
+</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..bc0fffc5
--- /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.1">
+<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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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 anchorWithStickyNavbar_YIWN" 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">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_ujsZ"></p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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_ujsZ"></p>
+<p>Fill in the following columns in English.</p>
+<ul>
+<li>
+<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>
+<p>Public name:</p>
+<p>the public name should be a real name or pen name and not a user id.</p>
+</li>
+<li>
+<p>Postal Address:</p>
+<p>The English address is detailed down to the house number.</p>
+</li>
+<li>
+<p>Country:</p>
+<p>Please fill in your country.</p>
+</li>
+<li>
+<p>E-mail:</p>
+<p>Please fill in your personal email address.</p>
+</li>
+<li>
+<p>(optional) preferred Apache id(s)</p>
+<p>You need to choose a unique Apache ID that hasn't been taken. Check <a href="https://people.apache.org/committer-index.html" target="_blank" rel="noopener noreferrer">ASF Committers by ID</a> to see which IDs are still available.</p>
+</li>
+<li>
+<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_ujsZ"></p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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_ujsZ"></p>
+<ul>
+<li>
+<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>
+<p>Date: Signing Date(yyyy-MM-dd)</p>
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" id="send-mail">Send mail<a href="#send-mail" class="hash-link" aria-label="Direct link to Send mail" title="Direct link to Send mail" translate="no"></a></h2>
+<p>Take a photo or scan the signed document into a PDF format, and rename it as "name-icla.pdf".</p>
+<p>Please send the email to <code>secretary@apache.org</code> and also forward it to <code>private@fesod.apache.org</code>. Attach the PDF to the email. For the email content, please refer to the following:</p>
+<div class="language-text codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-text codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token plain">Hello Apache,</span><br></span><span class="token-line" style="color:#393A34"><span class=" [...]
+<blockquote>
+<p>This email should include the details from the previous committer invitation correspondence. It is recommended to reply to the earlier email exchange, then modify the subject line and recipients accordingly.</p>
+</blockquote>
+<p>After waiting for some time, you will receive an email from <code>root@apache.org</code>.</p>
+<p>When you receive an email with the subject line: "Welcome to the Apache Software Foundation", congratulations! You have now obtained an Apache ID.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><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="currentColor" height="2 [...]
+</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..43296085
--- /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.1">
+<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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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>Contributors have a good contribution experience.</li>
+<li>Our reviews are structured and check all important aspects of a contribution.</li>
+<li>We make sure to keep a high code quality in Apache Fesod (Incubating).</li>
+<li>We avoid situations where contributors and reviewers spend a lot of time refining a contribution that gets rejected later.</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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>Always maintain a high standard of review so that the quality of the entire product can be better guaranteed.</li>
+<li>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>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>Documentation. Newly added features must be documented, otherwise such code is not allowed.</li>
+<li>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>Try to give a clear conclusion at the end of your comments, "approve" or "change request". If it's a minor issue, you can just leave a comment.</li>
+<li>Recommend to submit a "+1 Comment" rather than a "+1 Approve" to indicate that it looks good to me but I am not sure whether this part of the function is correct. It needs someone else's approve.</li>
+<li>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 anchorWithStickyNavbar_YIWN" 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>Check whether the contribution is sufficiently well-described to support a good review</li>
+<li>The reviewer needs to perform a code-level review.</li>
+<li>Once a reviewer has commented on a PR, they need to keep following up on subsequent changes to that PR.</li>
+<li>A PR must get at least a +1 approved from committer who is not the author.</li>
+<li>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>For architecture or user interface changes, a PR needs to get at least 3 +1's to merge.</li>
+<li>Regression cases and CI tests should pass before merging.</li>
+<li>Select "squash and merge" to merge.</li>
+<li>When there is a disagreement about a modification, try to discuss the resolution. If the discussion doesn't work out, it can be resolved by a vote in <code>dev@fesod.apache.org</code> by the majority rules.</li>
+</ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><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_guvc" 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.5 [...]
+</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..b5e3563b
--- /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.1">
+<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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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><strong>docs</strong>: Update documentation, e.g., <code>docs: update README.md</code></li>
+<li><strong>feature/feat</strong>: New features, e.g., <code>feature: support for xxx</code></li>
+<li><strong>bugfix/fix</strong>: Bug fixes, e.g., <code>fix: fix NPE in the A class</code></li>
+<li><strong>refactor</strong>: Code refactoring (no functional changes), e.g., <code>refactor: optimise data processing logic</code></li>
+<li><strong>style</strong>: Code formatting, e.g., <code>style: update code style</code></li>
+<li><strong>test</strong>: Adding or improving tests, e.g., <code>test: add new test cases</code></li>
+<li><strong>chore</strong>: Changes to the build process or auxiliary tools, e.g., <code>chore: improve issue template</code></li>
+<li><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><del>fixed issue</del></li>
+<li><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">How to Write a Git Commit Message</a>.</p>
+<h4 class="anchor anchorWithStickyNavbar_YIWN" 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>Avoid committing overly large changes.</li>
+<li>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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-bash codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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">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"><a href="https://github.com/apache/fesod/edit/main/w [...]
+</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..f939ea9d
--- /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.1">
+<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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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 anchorWithStickyNavbar_YIWN" 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">SDKMAN</a> to configure multiple versions of the Java toolchain.</p>
+</blockquote>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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">Language Level</a> to <code>8</code> to ensure backward compatibility.</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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">GitHub page</a> to copy the project to your GitHub account.</p>
+<div class="language-bash codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-bash codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token plain">https://github.com/</span><span class="token operator" style="color:#393A34"><</span><sp [...]
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-bash codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-bash codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-bash codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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>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><code><your_branch_name></code> name is customized for you.</li>
+</ul>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-bash codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" id="new-pull-request">New pull request<a href="#new-pull-request" class="hash-link" aria-label="Direct link to New pull request" title="Direct link to New pull request" translate="no"></a></h3>
+<p>Submit changes to the remote repository, you can see a green button "Compare & pull request" on your repository page, click it.</p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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 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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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><strong>release branches</strong>: Used for version releases (e.g., <code>1.1.0</code>, <code>1.1.1</code>).</li>
+<li><strong>feature branches</strong>: Used for developing major features.</li>
+<li><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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-bash codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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>Use <code>-DskipTests</code> to skip unit tests</li>
+<li>Use Maven's parallel build feature, e.g., <code>mvn clean install -DskipTests -T 1C</code></li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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">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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-bash codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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..283d219c
--- /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.1">
+<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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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">Docusaurus</a>, and the documentation is maintained in the <a href="https://github.com/apache/fesod/tree/main/website" target="_blank" rel="noopener noreferrer">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> repository.</p>
+<p>For how to submit pull requests, please refer to</p>
+<ul>
+<li><a href="/community/contribution/contribute-code/">Code Contribution</a></li>
+<li><a href="/community/contribution/commit-format/">Commit Format Specification</a></li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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><a href="https://nodejs.org/en/download/" target="_blank" rel="noopener noreferrer">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">nvm</a> for managing multiple Node versions on a single machine installed.</li>
+<li>When installing Node.js, you are recommended to check all checkboxes related to dependencies.</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-bash codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-bash codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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>Use file paths with the <code>.md</code> extension</li>
+</ul>
+<div class="language-markdown codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-markdown codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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>Use paths relative to the docs/ directory</li>
+</ul>
+<div class="language-markdown codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-markdown codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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>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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-markdown codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-bash codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-bash codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-bash codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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">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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-bash codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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>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">Markdown-lint-rules</a></li>
+<li>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">.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"><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_guvc" 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/contribution/index.html b/community/contribution/index.html
new file mode 100644
index 00000000..eaf3da9d
--- /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.1">
+<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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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 anchorWithStickyNavbar_YIWN" 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>Fix typos</li>
+<li>Fix bugs</li>
+<li>Remove redundant code</li>
+<li>Add test cases</li>
+<li>Enhance functionality</li>
+<li>Add comments to improve code readability</li>
+<li>Optimize code structure</li>
+<li>Improve or refine documentation</li>
+</ul>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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>Any pull request that contributes to the improvement of the project should be encouraged.</li>
+<li>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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 href="/community/feedback/">Issue Feedback</a> to create an issue or discussion and endeavour to reach consensus.</p>
+<p><strong>Note</strong>: To request an issue, please note that it is not just a "please assign it to me", you need to explain your understanding of the issue, and your design, and if possible, you need to provide your POC code.</p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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>Only start working on the implementation if there is consensus on the approach (e.g. you are assigned to the ticket)</li>
+<li>If you are newer, can refer to <a href="/community/contribution/contribute-code/">Code Contribution</a> to setup a dev environment.</li>
+</ul>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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>Make sure no unrelated or unnecessary reformatting changes are included.</li>
+<li>After submitting the PR, the CI process will be triggered. Please make sure that it has passed the CI checks.</li>
+<li>Please ensure that the test passing.</li>
+<li>Please don't resolve conversation.</li>
+</ul>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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>A committer of project checks if the contribution fulfills the requirements and merges the code to the codebase.</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 href="/community/contribution/contribute-code/">Code Contribution</a> for information on how to contribute code.</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" id="contribution-of-test-cases">Contribution of Test Cases<a href="#contribution-of-test-cases" class="hash-link" aria-label="Direct link to Contribution of Test Cases" title="Direct link to Contribution of Test Cases" translate="no"></a></h2>
+<p>Any contribution of test cases is encouraged, especially unit tests. It is recommended to create <code>XXXTest.java</code> files in the corresponding module's <code>test</code> directory, preferably using the <code>JUnit5</code> framework.</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 href="/community/contribution/contribute-code/">Docs Contribution</a> for information on how to contribute document.</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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>Answering other users' questions.</li>
+<li>Assisting in reviewing others' PRs.</li>
+<li>Providing improvement suggestions.</li>
+<li>Writing technical blogs to promote Apache Fesod (Incubating).</li>
+<li>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"><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_guvc" 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.9q0.5 0.4 0 [...]
+</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..66614851
--- /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.1">
+<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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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 anchorWithStickyNavbar_YIWN" id="before-submitting">Before Submitting<a href="#before-submitting" class="hash-link" aria-label="Direct link to Before Submitting" title="Direct link to Before Submitting" translate="no"></a></h2>
+<p>Before creating a new issue, please ensure you have completed the following preparatory steps. This will help avoid duplicate work and save both your time and the maintainers' time.</p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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>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 anchorWithStickyNavbar_YIWN" 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>Visit the <a href="https://github.com/apache/fesod/issues" target="_blank" rel="noopener noreferrer">Issue List</a> and search for keywords.</li>
+<li>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>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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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">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>Environment information (operating system, version used, etc.).</li>
+<li>Steps to reproduce the issue.</li>
+<li>Error logs or screenshots.</li>
+<li>Provide a minimal reproducible example.</li>
+</ul>
+<p>The following situations are appropriate for submitting a new issue:</p>
+<ul>
+<li>Bug reports</li>
+<li>New feature</li>
+<li>Performance issues</li>
+<li>Function proposals or design suggestions</li>
+<li>Documentation improvements</li>
+<li>Optimization of test coverage</li>
+<li>Need for technical support</li>
+<li>Other issues related to the project</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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>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>Please use polite language in the issue description and content.</li>
+<li>Each issue should focus on a single topic, please do not combine multiple issues into one.</li>
+<li>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>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"><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" viewBox="0 0 40 40 [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/community/index.html b/community/index.html
new file mode 100644
index 00000000..9b928730
--- /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.1">
+<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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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 anchorWithStickyNavbar_YIWN" 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>Use our project and provide feedback.</li>
+<li>Provide us with the use-cases.</li>
+<li>Report bugs and submit patches.</li>
+<li>Contribute code, documentation.</li>
+<li>Subscribe to our mailing list.</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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">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">Subscribe</a></td><td><a href="mailto:dev-unsubscribe@fesod.apache.org" target="_blank" rel="noopener noreferr [...]
+<p>Please make sure you are subscribed to the mailing list you are posting to!</p>
+<p>If you are not subscribed to the mailing list, your message will either be rejected or you won't receive the response.</p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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>Send an email without any contents or subject to <code>listname-subscribe@fesod.apache.org</code>. (replace listname with dev or commits)</li>
+<li>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>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>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>you paste text instead of screenshots of text</li>
+<li>you keep formatting when pasting code to keep the code readable</li>
+<li>there are enough import statements to avoid ambiguities</li>
+</ul>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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">GitHub Issues</a>.</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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">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"><a href="https://github.com/apache/fesod/edit/main/website/community/index.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/maturity/index.html b/community/maturity/index.html
new file mode 100644
index 00000000..93b713e8
--- /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.1">
+<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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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">Apache Project Maturity Model</a>.</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" id="status-of-this-assessment">Status of this assessment<a href="#status-of-this-assessment" class="hash-link" aria-label="Direct link to Status of this assessment" title="Direct link to Status of this assessment" translate="no"></a></h2>
+<p>This assessment is evaluated during Fesod's Incubating.</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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">Apache Maturity Model</a>. Mentors and community members are welcome to comment and modify it.</p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" id="code">Code<a href="#code" class="hash-link" aria-label="Direct link to Code" title="Direct link to Code" translate="no"></a></h3>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th><strong>ID</strong></th><th><strong>Description</strong></th><th><strong>Status</strong></th></tr></thead><tbody><tr><td><strong>CD10</strong></td><td>The project produces Open Source software for distribution to the public, at no charge.</td><td><strong>YES</strong> The project source code is licensed under the <code>Apache License 2.0</code>.</td></tr><tr><td><strong>CD20</strong></td><td>Anyone can easily discover and access the project's code.</td><td><stro [...]
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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">LICENSE</a> is in GitHub repository. And all source files are with APLv2 header, checked by <code>korandoru/hawkeye@v6</code> [...]
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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">dist.apache.org</ [...]
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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">official website</a> includes all information user need to run Apache Fesod (Incu [...]
+<h3 class="anchor anchorWithStickyNavbar_YIWN" id="consensus-building">Consensus Building<a href="#consensus-building" class="hash-link" aria-label="Direct link to Consensus Building" title="Direct link to Consensus Building" translate="no"></a></h3>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th><strong>ID</strong></th><th><strong>Description</strong></th><th><strong>Status</strong></th></tr></thead><tbody><tr><td><strong>CS10</strong></td><td>The project maintains a public list of its contributors who have decision power. The project's PPMC (Project Management Committee) consists of those contributors.</td><td><strong>Yes</strong> See <a href="https://fesod.apache.org/team" target="_blank" rel="noopener noreferrer">members</a> with all PPMC members an [...]
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" id="trademark-and-branding">Trademark and Branding<a href="#trademark-and-branding" class="hash-link" aria-label="Direct link to Trademark and Branding" title="Direct link to Trademark and Branding" translate="no"></a></h3>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th><strong>ID</strong></th><th><strong>Description</strong></th><th><strong>Status</strong></th></tr></thead><tbody><tr><td><strong>TB10</strong></td><td>The project uses "Apache Fesod™" as the project and software product name consistently, with appropriate trademark attributions.</td><td><strong>YES</strong> The project uses appropriately the trademark symbol.</td></tr><tr><td><strong>IB20</strong></td><td>The project's primary homepage is at projectn [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/community/pmc/become-pmc-member/index.html b/community/pmc/become-pmc-member/index.html
new file mode 100644
index 00000000..1a9b6b4a
--- /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.1">
+<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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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><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><strong>(P)roject</strong> - a clear vision and consensus are needed</li>
+<li><strong>(Do)cumentation</strong> - without it, the stuff remains only in the minds of the authors</li>
+<li><strong>(C)ode</strong> - discussion goes nowhere without code</li>
+</ul>
+<p>Apache Fesod (Incubating) community strives to be meritocratic. Thus, once someone has contributed sufficiently to any area of CoPDoC they can be a candidate for PPMC membership and at last voted in as an Apache Fesod (Incubating)
+PMC member. Being an Apache Fesod (Incubating) PPMC member does not necessarily mean you must commit code with your commit privilege to the codebase; it means you are committed to the Apache Fesod (Incubating) project and are productively contributing to our community's success.</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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>12+ months with activity and engagement.</li>
+</ul>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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>A solid general understanding of the project</li>
+<li>Well tested, well-designed, following Apache Fesod coding standards, and simple patches.</li>
+<li>Well-organized and detailed user-oriented documentation.</li>
+</ul>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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>Be active, courteous, and respectful on the dev mailing list and help mentor newer contributors and users.</li>
+<li>Be active, courteous, and respectful on the issue tracker for project maintenance</li>
+<li>Be active, courteous, and respectful for pull requests reviewing</li>
+<li>Be involved in the design road map discussions with a professional and diplomatic approach even if there is a disagreement</li>
+<li>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"><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_guvc" 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/community/pmc/nominate-committer/index.html b/community/pmc/nominate-committer/index.html
new file mode 100644
index 00000000..81177bef
--- /dev/null
+++ b/community/pmc/nominate-committer/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-pmc/nominate-committer" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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 anchorWithStickyNavbar_YIWN" 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>CANDIDATE_NAME: The full name of the candidate.</li>
+<li>CANDIDATE_GITHUB_ID: The GitHub id of the candidate.</li>
+<li>NOMINATOR: The GitHub id of the candidate.</li>
+</ul>
+<div class="theme-admonition theme-admonition-note admonition_qVYy alert alert--secondary"><div class="admonitionHeading_fnm2"><span class="admonitionIcon_crs7"><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 anchorWithStickyNavbar_YIWN" 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>Start a vote about the candidate via sending email to: <a href="mailto:private@fesod.apache.org" target="_blank" rel="noopener noreferrer">private@fesod.apache.org</a>:</p>
+<p>Title:</p>
+<div class="language-text codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-text codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-text codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token plain">Hi, All Apache Fesod (Incubating) PPMC members.</span><br></span><span class="token-line" s [...]
+<p>Note that, Voting ends one week from today, i.e.:</p>
+<ul>
+<li><a href="https://www.timeanddate.com/counters/customcounter.html?year=YYYY&month=MM&day=DD" target="_blank" rel="noopener noreferrer">midnight UTC on YYYY-MM-DD</a></li>
+<li><a href="https://community.apache.org/newcommitter.html" target="_blank" rel="noopener noreferrer">Apache Voting Guidelines</a></li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 <code>+1</code> binding vote</strong> and <strong>no veto</strong>, claim the vote result:</p>
+<p>Title:</p>
+<div class="language-text codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-text codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-text codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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">private@fesod.apache.org</a>:</p>
+<p>Title:</p>
+<div class="language-text codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-text codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-text codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-text codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-text codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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">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_ujsZ"></p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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>Once the nominee accepts the invitation and the commit bit is granted, it's encouraged to send an announcement email to <a href="mailto:dev@fesod.apache.org" target="_blank" rel="noopener noreferrer">dev@fesod.apache.org</a> to welcome the new committers. Here is an email template:</p>
+<div class="language-text codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-text codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 [...]
+</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..be5edbcb
--- /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.1">
+<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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.js" defer="defer"></script>
+</head>
+<body class="navigation-with-keyboard">
+<svg style="display: none;"><defs>
+<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
+</defs></svg>
+<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docu [...]
+<p>Upon receiving an invitation email from Apache Fesod (Incubating) PPMC, a new PPMC member should consider whether accepting.
+If they decide in favor, they should select <strong>"Reply All"</strong> and express their decision.</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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>Send email to <a href="mailto:private-subscribe@fesod.apache.org" target="_blank" rel="noopener noreferrer">private-subscribe@fesod.apache.org</a></li>
+<li>You will receive an email with the subject <code>confirm subscribe to private@fesod.apache.org</code></li>
+<li>Reply to the email with "Confirm" in the body</li>
+</ul>
+<p>If you receive an email with the subject <code>WELCOME to private@fesod.apache.org</code>, you have successfully subscribed to the private mailing list.</p>
+<p>It's required for PPMC members to subscribe the private mailing list. The private list is only for confidential discussions that should not be made public, such as the suitability of a particular individual to become a committer or a member of the PPMC.</p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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>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>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 anchorWithStickyNavbar_YIWN" 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">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"><a href="https://github.com/apache/fesod/edit/main/webs [...]
+</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..3869f2ea
--- /dev/null
+++ b/community/release/release-version/index.html
@@ -0,0 +1,25 @@
+<!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.1">
+<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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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/release/verify-release/index.html b/community/release/verify-release/index.html
new file mode 100644
index 00000000..3c399ef1
--- /dev/null
+++ b/community/release/verify-release/index.html
@@ -0,0 +1,25 @@
+<!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.1">
+<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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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/security/index.html b/community/security/index.html
new file mode 100644
index 00000000..1c0094bc
--- /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.1">
+<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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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">Apache Security Team</a> by dropping an email at <a href="mailto:security@apache.org" target="_blank" rel="noopener noreferrer">security@apache.org</a>.</p>
+<p>Please specify the project name as "Apache Fesod (Incubating)" in the email, and provide a description of the relevant problem or potential threat. You are also urged to recommend how to reproduce and replicate the issue.</p>
+<p>The Apache Security Team and the Apache Fesod (Incubating) community will get back to you after assessing and analyzing the findings.</p>
+<p><strong>Please note</strong> that the security issue should be reported on the security email first, before disclosing it on any public domain.</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" id="advisories-for-dependencies">Advisories for Dependencies<a href="#advisories-for-dependencies" class="hash-link" aria-label="Direct link to Advisories for Dependencies" title="Direct link to Advisories for Dependencies" translate="no"></a></h2>
+<p>Many organizations employ security scanning tools to identify components with known security advisories. Although we strongly recommend these tools as they can alert users to potential risks, they often generate false positives. This occurs because a vulnerable dependency may not necessarily impact Apache Fesod (Incubating) if used in a non-exploitable manner.</p>
+<p>Therefore, advisories regarding Apache Fesod (Incubating)'s dependencies are not automatically considered critical. However, if additional analysis indicates that Apache Fesod (Incubating) might be affected by a dependency's vulnerability, please report your findings privately to <a href="mailto:security@apache.org" target="_blank" rel="noopener noreferrer">security@apache.org</a>.</p>
+<p>If a dependency advisory is identified, please:</p>
+<ol>
+<li>Verify if our DependencyCheck suppressions contain relevant details.</li>
+<li>Check our issue tracker for discussions regarding this advisory.</li>
+<li>Conduct your own analysis to determine whether Apache Fesod (Incubating) is affected.
+<ul>
+<li>If affected, report your findings privately through <a href="mailto:security@apache.org" target="_blank" rel="noopener noreferrer">security@apache.org</a>.</li>
+<li>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"><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_guvc" 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.9q0.5 0.4 0.5 1 [...]
+</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..6a9d783f
--- /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.1">
+<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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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_qVYy alert alert--success"><div class="admonitionHeading_fnm2"><span class="admonitionIcon_crs7"><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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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">fastexcel-1.3.0.jar</a> ( <a h [...]
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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">fastexcel-1.2.0.jar</a> ( <a h [...]
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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>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>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 anchorWithStickyNavbar_YIWN" 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>Download the KEYS file and the .asc signature files for the relevant release artifacts.</li>
+<li>Import the KEYS file to your GPG keyring:</li>
+</ul>
+<div class="language-bash codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-bash codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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>Verify the signature of the release artifact using the following command:</li>
+</ul>
+<div class="language-bash codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-bash codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-bash codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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/fill/index.html b/docs/fill/index.html
new file mode 100644
index 00000000..a07299bc
--- /dev/null
+++ b/docs/fill/index.html
@@ -0,0 +1,87 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-fill/fill" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<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/fill/"><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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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 FastExcel to fill data into files.</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 Excel based on a template file using objects or Map.</p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_ujsZ"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_ujsZ"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_ujsZ"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_ujsZ"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_ujsZ"></p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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_ujsZ"></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"><a href="https://github.com/apache/fesod/edit/main/website/docs/fill/fill.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height= [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/help/annotation/index.html b/docs/help/annotation/index.html
new file mode 100644
index 00000000..ccc19b30
--- /dev/null
+++ b/docs/help/annotation/index.html
@@ -0,0 +1,113 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-help/annotation" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<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/help/annotatio [...]
+<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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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 FastExcel.</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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. FastExcel provides various annotations to help developers easily define fields and formats.</p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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 Excel 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 Excel, 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 Excel according to the order of <code>order</code>.</td></tr><tr><td>index</td><td>-1</td><t [...]
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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 Excel. Adding this annotation will ignore the field.</p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 Excel 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 Excel, 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 anchorWithStickyNavbar_YIWN" 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 Excel 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 anchorWithStickyNavbar_YIWN" 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"><a href="https://github.com/apache/fesod/edit/main/website/docs/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_guvc" 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/docs/help/core-class/index.html b/docs/help/core-class/index.html
new file mode 100644
index 00000000..b81a0b78
--- /dev/null
+++ b/docs/help/core-class/index.html
@@ -0,0 +1,353 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-help/core-class" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<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/help/core-clas [...]
+<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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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 FastExcel.</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 FastExcel for custom read/write operations, you need to understand its important concepts and classes.</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" id="fastexcel">FastExcel<a href="#fastexcel" class="hash-link" aria-label="Direct link to FastExcel" title="Direct link to FastExcel" translate="no"></a></h3>
+<p>Entry class used to start various operations</p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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><strong><code>ExcelReaderBuilder</code> and <code>ExcelWriterBuilder</code></strong>:Constructs a <code>ReadWorkbook</code> or <code>WriteWorkbook</code>, which can be understood as an Excel object; only one Excel needs to be constructed</li>
+<li><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 Excel; each page needs to be constructed</li>
+<li><strong><code>CsvReaderBuilder</code> and <code>CsvWriterBuilder</code></strong>:Construct the CsvFormat required internally.</li>
+</ul>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 FastExcel, the scope is the entire sheet before the <code>FastExcel...sheet()</code> method, and the scope is the entire csv before the <code>FastExcel...csv()</code> method.</p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 FastExcel for intercepting the writing process when writing to an Excel 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 anchorWithStickyNavbar_YIWN" 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>FastExcel 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 anchorWithStickyNavbar_YIWN" 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>
+<p>Implement the corresponding <code>WriteHandler</code> interface:</p>
+<ul>
+<li>Choose the appropriate interface (<code>CellWriteHandler</code>, <code>RowWriteHandler</code>, or <code>SheetWriteHandler</code>).</li>
+<li>Implement the methods in the interface, defining custom logic in the methods.</li>
+</ul>
+</li>
+<li>
+<p>Register the WriteHandler:</p>
+<ul>
+<li>Register your custom WriteHandler when calling <code>FastExcel.write()</code> using <code>.registerWriteHandler()</code>.</li>
+</ul>
+</li>
+</ol>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<p>Register and Use</p>
+<div class="language-java codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h4 class="anchor anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<p>Register and Use</p>
+<div class="language-java codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h4 class="anchor anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<p>Register and Use</p>
+<div class="language-java codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 FastExcel for processing each row of data when reading an Excel file. It is one of the core components of FastExcel, 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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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><strong>Simplify code</strong>: Suitable for simple row-by-row processing, reducing control over memory and processing logic.</li>
+<li><strong>Exception handling</strong>: Able to capture and handle exceptions during the reading process.</li>
+</ul>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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>
+<p>Implement the <code>ReadListener</code> interface:</p>
+<ul>
+<li>Use an entity class as the generic type (e.g., <code>ReadListener<DemoData></code>).</li>
+<li>Implement the core methods and add data processing logic as needed.</li>
+</ul>
+</li>
+<li>
+<p>Register the custom <code>ReadListener</code> during reading:</p>
+<ul>
+<li>When calling the <code>FastExcel.read()</code> method, pass in the custom listener instance.</li>
+</ul>
+</li>
+</ol>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<p>Use</p>
+<div class="language-java codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h4 class="anchor anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<p>Use</p>
+<div class="language-java codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h4 class="anchor anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<p>Use</p>
+<div class="language-java codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h4 class="anchor anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<blockquote>
+<p><strong>Note</strong>:</p>
+<ul>
+<li><code>PageReadListener</code> is a convenient utility class provided by FastExcel that supports batch processing based on pagination.</li>
+<li>The default page size is 1, which can be specified using the constructor.</li>
+</ul>
+</blockquote>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 FastExcel for processing Excel 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 d [...]
+<p>Core Features:</p>
+<ul>
+<li><strong>Line-by-line reading</strong>: <code>AnalysisEventListener</code> reads data from Excel files line by line, executing the <code>invoke</code> method when reading each line of data, making it suitable for streaming processing.</li>
+<li><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><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><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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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><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><strong>Batch insertion into a database</strong>: For example, batch processing row data from Excel and storing it in a database.</li>
+</ul>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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>Inherit from <code>AnalysisEventListener</code> and implement its methods.</li>
+<li>Pass in a custom listener during reading and register it using <code>FastExcel.read()</code>.</li>
+</ol>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<p>Use</p>
+<div class="language-java codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h4 class="anchor anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<p>Use</p>
+<div class="language-java codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h4 class="anchor anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<p>Use</p>
+<div class="language-java codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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 FastExcel, designed to allow developers to perform customised processing when reading Excel files. However, they have some key differences in terms of functionality and use cases.</p>
+<h4 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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>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>Suitable for processing large datasets, offering greater flexibility.</li>
+</ul>
+<p>Use <code>ReadListener</code>:</p>
+<ul>
+<li>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>Suitable for simple Excel 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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 FastExcel for converting data when processing Excel files. It allows developers to customise operations by implementing the <code>Converter</code> interface to define custom data conversion logic.</p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" id="methods-2">Methods<a href="#methods-2" class="hash-link" aria-label="Direct link to Methods" title="Direct link to Methods" translate="no"></a></h3>
+<p><code>Converter</code> is a generic interface, and the generic type is the object type to be converted (such as <code>Date</code>). Its core methods are as follows:</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>Method Name</th><th>Description</th></tr></thead><tbody><tr><td><code>Class<?> supportJavaTypeKey()</code><em>(Optional)</em></td><td>Returns the supported Java object types.</td></tr><tr><td><code>CellDataTypeEnum supportExcelTypeKey()</code><em>(Optional)</em></td><td>Returns the supported Excel cell types, enumerated as CellDataTypeEnum.</td></tr><tr><td><code>T convertToJavaData(ReadCellData<?> cellData, ExcelContentProperty contentProperty, GlobalCo [...]
+<p>FastExcel 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 anchorWithStickyNavbar_YIWN" 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><strong>Data Conversion</strong>: Convert Excel data, such as converting dates to strings, converting strings to dates, etc.</li>
+</ul>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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>Implement the <code>Converter</code> interface and its methods.</li>
+<li>Pass in a custom converter when reading or writing.</li>
+</ol>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<p>Use</p>
+<div class="language-java codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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/help/faq/index.html b/docs/help/faq/index.html
new file mode 100644
index 00000000..64ebb1e8
--- /dev/null
+++ b/docs/help/faq/index.html
@@ -0,0 +1,273 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-help/faq" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<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/help/faq/"><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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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 FastExcel.</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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><strong>Q:</strong> What functions does FastExcel support? What functions are not supported?</li>
+<li><strong>A:</strong> FastExcel supports efficient reading and writing operations for Excel 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 anchorWithStickyNavbar_YIWN" 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><strong>Q:</strong> When writing to Excel, when should I choose the fill mode and when should I choose direct writing?</li>
+<li><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 anchorWithStickyNavbar_YIWN" 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><strong>Q:</strong> What is the role of Lombok annotations in using FastExcel?</li>
+<li><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 anchorWithStickyNavbar_YIWN" 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><strong>Q:</strong> How to solve the problem of some fields not being read or written correctly?</li>
+<li><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 anchorWithStickyNavbar_YIWN" 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><strong>Q:</strong> What should I do if I encounter compatibility issues when using FastExcel?</li>
+<li><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 FastExcel used is compatible with other libraries in the project.</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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><strong>Q:</strong> Why are there issues in the online environment when it runs fine locally?</li>
+<li><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 anchorWithStickyNavbar_YIWN" 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><strong>Q:</strong> Why shouldn't the Listener be managed by Spring?</li>
+<li><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 anchorWithStickyNavbar_YIWN" 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><strong>Q:</strong> For large files over 10M, what reading strategies does FastExcel provide?</li>
+<li><strong>A:</strong> FastExcel 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 anchorWithStickyNavbar_YIWN" 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><strong>Q:</strong> How to set cell formats?</li>
+<li><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 anchorWithStickyNavbar_YIWN" 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><strong>Q:</strong> How to resolve the issue of Excel files exported cannot be opened or prompt for repair?</li>
+<li><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 anchorWithStickyNavbar_YIWN" 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><strong>Q:</strong> How does FastExcel optimize memory usage when reading large files?</li>
+<li><strong>A:</strong> FastExcel 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 anchorWithStickyNavbar_YIWN" 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><strong>Q:</strong> How to efficiently read Excel files in a high-concurrency environment?</li>
+<li><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 anchorWithStickyNavbar_YIWN" 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>
+<p><strong>Q:</strong> How to handle cases where entity class fields do not match Excel column names?</p>
+</li>
+<li>
+<p><strong>A:</strong> You can use the <code>@ExcelProperty</code> annotation to specify the correspondence between entity class fields and Excel column names. For example:</p>
+<div class="language-java codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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>
+<p><strong>Q:</strong> How to validate data when reading Excel data?</p>
+</li>
+<li>
+<p><strong>A:</strong> Data validation logic can be implemented in the <code>ReadListener</code>. For example:</p>
+<div class="language-java codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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>
+<p><strong>Q:</strong> How to customize cell styles?</p>
+</li>
+<li>
+<p><strong>A:</strong> You can customize cell styles by implementing the <code>WriteHandler</code> interface. For example:</p>
+<div class="language-java codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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>
+<p><strong>Q:</strong> How to solve the issue of fields not being replaced in fill mode?</p>
+</li>
+<li>
+<p><strong>A:</strong> Using the <code>inMemory(true)</code> parameter can ensure correct field replacement. For example:</p>
+<div class="language-java codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token class-name">FastExcel</span><span class="token punctuation" style="color:#393A34">.</span><span cl [...]
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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>
+<p><strong>Q:</strong> How to handle exceptions thrown during the reading process?</p>
+</li>
+<li>
+<p><strong>A:</strong> Exceptions can be caught and handled in the <code>ReadListener</code>. For example:</p>
+<div class="language-java codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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><strong>Q:</strong> How to resolve dependency conflict issues?</li>
+<li><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 FastExcel. You can use the Maven <code>dependency:tree</code> command to view the dependency tree.</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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>
+<p><strong>Q:</strong> How to monitor the performance of FastExcel?</p>
+</li>
+<li>
+<p><strong>A:</strong> You can monitor the performance of FastExcel by enabling debug logging. For example:</p>
+<div class="language-java codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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>
+<p><strong>Q:</strong> How to monitor the performance of FastExcel?</p>
+</li>
+<li>
+<p><strong>A:</strong> You can monitor the performance of FastExcel by enabling debug logging. For example:</p>
+<div class="language-java codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token class-name">FastExcel</span><span class="token punctuation" style="color:#393A34">.</span><span cl [...]
+<p>Alternatively, you can get information on all sheets before reading:</p>
+<div class="language-java codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" id="get-total-rows-in-excel">Get Total Rows in Excel<a href="#get-total-rows-in-excel" class="hash-link" aria-label="Direct link to Get Total Rows in Excel" title="Direct link to Get Total Rows in Excel" translate="no"></a></h2>
+<ul>
+<li>
+<p><strong>Q:</strong> How to get the total number of rows in an Excel file?</p>
+</li>
+<li>
+<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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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>
+<p><strong>Q:</strong> How to use memory mode to process Excel files?</p>
+</li>
+<li>
+<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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token class-name">FastExcel</span><span class="token punctuation" style="color:#393A34">.</span><span cl [...]
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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>
+<p><strong>Q:</strong> How to read CSV files and modify the delimiter?</p>
+</li>
+<li>
+<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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token class-name">FastExcel</span><span class="token punctuation" style="color:#393A34">.</span><span cl [...]
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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>
+<p><strong>Q:</strong> How to customize the read listener?</p>
+</li>
+<li>
+<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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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>
+<p><strong>Q:</strong> How to ignore fields not annotated with <code>@ExcelProperty</code> during reading?</p>
+</li>
+<li>
+<p><strong>A:</strong> Add the <code>@ExcelIgnoreUnannotated</code> annotation at the top of the class. For example:</p>
+<div class="language-java codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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>
+<p><strong>Q:</strong> How to set header style during export?</p>
+</li>
+<li>
+<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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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>
+<p><strong>Q:</strong> How to set the data format of cells during export?</p>
+</li>
+<li>
+<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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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>
+<p><strong>Q:</strong> How to merge cells during export?</p>
+</li>
+<li>
+<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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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>
+<p><strong>Q:</strong> How to set the font of cells during export?</p>
+</li>
+<li>
+<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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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>
+<p><strong>Q:</strong> How to handle null values during reading?</p>
+</li>
+<li>
+<p><strong>A:</strong> You can handle null values in the <code>ReadListener</code>. For example:</p>
+<div class="language-java codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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>
+<p><strong>Q:</strong> How to filter data during reading?</p>
+</li>
+<li>
+<p><strong>A:</strong> You can implement filtering logic in the <code>ReadListener</code>. For example:</p>
+<div class="language-java codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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"><a href="https://github.com/apache/fesod/edit/main/website/docs/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_guvc" 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.9q0.5 0.4 0.5 1.1t-0 [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/help/large-data/index.html b/docs/help/large-data/index.html
new file mode 100644
index 00000000..39538185
--- /dev/null
+++ b/docs/help/large-data/index.html
@@ -0,0 +1,42 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-help/large-data" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<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/help/large-dat [...]
+<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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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, Excel 03 is unable to handle them and consumes significantly more memory. 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">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 Excel file. Therefore, FastExcel 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 Excel 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 anchorWithStickyNavbar_YIWN" 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 [...]
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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 Excel file.
+For example, if you want the Excel 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 Excel file is only a few dozen megabytes, and there is no high concurrency, and memory is sufficient,</p>
+<div class="language-java codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">// Force memory storage, so a 20M Excel file will [...]
+<p>High concurrency requirements, and often involve extremely large files.</p>
+<div class="language-java codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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, FastExcel splits the shared string into batches of <strong>1000</strong> items and then stores them in file storage. Excel typically reads 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, se [...]
+<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 1 [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/help/parameter/index.html b/docs/help/parameter/index.html
new file mode 100644
index 00000000..db29d909
--- /dev/null
+++ b/docs/help/parameter/index.html
@@ -0,0 +1,422 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-help/parameter" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<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/help/parameter/ [...]
+<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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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 FastExcel.</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 Excel, the listener's methods will be continuously called.</td></tr><tr><td>headRowNumber</td><td>1</td><td>The number of rows in the header of Excel, default is 1 row.</td></tr></tbody></table>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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 Excel, 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 temporary [...]
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 Excel.</td></tr><tr><td>relativeHeadRowIndex</td><td>0</td><td>Number of rows to leave blank above Excel.</td></tr><tr><td>needHead< [...]
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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 Excel, 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</td>< [...]
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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"><a href="https://github.com/apache/fesod/edit/main/website/docs/help/parameter.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="curren [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/index.html b/docs/index.html
new file mode 100644
index 00000000..635e724c
--- /dev/null
+++ b/docs/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-introduce" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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 anchorWithStickyNavbar_YIWN" 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 Excel
+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 Excel files.</p>
+<p>The name fesod(pronounced <code>/ˈfɛsɒd/</code>), an acronym for "fast easy spreadsheet and other documents" expresses the
+project's origin, background and vision.</p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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><strong>High-performance Reading and Writing</strong>: Apache Fesod (Incubating) focuses on performance optimization, capable of
+efficiently handling large-scale Excel data. Compared to some traditional Excel processing libraries, it can
+significantly reduce memory consumption.</li>
+<li><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 Excel operations or complex data processing.</li>
+<li><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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 an Excel document:</p>
+<div class="language-java codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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 an Excel document:</p>
+<div class="language-java codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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/quickstart/guide/index.html b/docs/quickstart/guide/index.html
new file mode 100644
index 00000000..7422afe0
--- /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.1">
+<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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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 anchorWithStickyNavbar_YIWN" 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 FastExcel 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 FastExcel, as performance optimizations, bug fixes, and new features
+in the latest version will enhance your experience.</p>
+<blockquote>
+<p>Currently, FastExcel 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 anchorWithStickyNavbar_YIWN" 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/fast-excel/fastexcel/blob/main/CHANGELOG.md" target="_blank" rel="noopener noreferrer">Details of version updates</a>. You can also find all
+available versions in the <a href="https://mvnrepository.com/artifact/cn.idev.excel/fastexcel" target="_blank" rel="noopener noreferrer">Maven Central Repository</a>.</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-xml codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-gradle codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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..117af9dc
--- /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.1">
+<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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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 anchorWithStickyNavbar_YIWN" id="read">Read<a href="#read" class="hash-link" aria-label="Direct link to Read" title="Direct link to Read" translate="no"></a></h2>
+<p>Below is an example of reading an Excel document:</p>
+<div class="language-java codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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 an Excel document:</p>
+<div class="language-java codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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/read/converter/index.html b/docs/read/converter/index.html
new file mode 100644
index 00000000..c20e1493
--- /dev/null
+++ b/docs/read/converter/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-read/converter" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<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/read/converter/ [...]
+<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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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>FastExcel supports date, number, and custom format conversions.</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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. FastExcel provides a flexible converter mechanism that allows users to define custom data conversion rules to meet various business requirements.</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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/read/csv/index.html b/docs/read/csv/index.html
new file mode 100644
index 00000000..b7a58551
--- /dev/null
+++ b/docs/read/csv/index.html
@@ -0,0 +1,101 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-read/csv" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<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/read/csv/"><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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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 FastExcel to read custom CSV files.</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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>FastExcel reads CSV files through different parameter configurations. It uses <a href="https://commons.apache.org/proper/commons-csv" target="_blank" rel="noopener noreferrer">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">CSVFormat</a> settings to achieve reading objectives.</p>
+<p>The main parameters are as follows:</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th style="text-align:left">Name</th><th style="text-align:left">Default Value</th><th style="text-align:left">Description</th></tr></thead><tbody><tr><td style="text-align:left"><code>delimiter</code></td><td style="text-align:left"><code>,</code> (comma)</td><td style="text-align:left">Field delimiter. It's recommended to use predefined constants from <code>CsvConstant</code>, such as <code>CsvConstant.AT</code>(<code>@</code>), <code>CsvConstant.TAB</code>, etc. [...]
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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, FastExcel provides constants in <code>CsvConstant</code> to simplify usage.</p>
+<h4 class="anchor anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" id="quote">quote<a href="#quote" class="hash-link" aria-label="Direct link to quote" title="Direct link to quote" translate="no"></a></h3>
+<p><code>quote</code> specifies the quote character that wraps fields. The default value is double quote <code>"</code>.
+This should be set when field content contains delimiters or line breaks.</p>
+<blockquote>
+<p>Note: This cannot be the same as the <code>recordSeparator</code> setting. It's recommended to use in combination with <code>QuoteMode</code>.</p>
+</blockquote>
+<h4 class="anchor anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" id="nullstring">nullString<a href="#nullstring" class="hash-link" aria-label="Direct link to nullString" title="Direct link to nullString" translate="no"></a></h3>
+<p><code>nullString</code> defines a specific string in the file that represents <code>null</code> values. For example, you can parse the string <code>"N/A"</code> as a <code>null</code> object.</p>
+<h4 class="anchor anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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>FastExcel currently still supports this approach, but it's not the most recommended usage method.</p>
+</blockquote>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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/read/exception/index.html b/docs/read/exception/index.html
new file mode 100644
index 00000000..5f93e597
--- /dev/null
+++ b/docs/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-read/exception" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<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/read/exception/ [...]
+<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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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/read/extra/index.html b/docs/read/extra/index.html
new file mode 100644
index 00000000..87b47378
--- /dev/null
+++ b/docs/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-read/extra" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<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/read/extra/"><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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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/read/head/index.html b/docs/read/head/index.html
new file mode 100644
index 00000000..e3bcd735
--- /dev/null
+++ b/docs/read/head/index.html
@@ -0,0 +1,45 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-read/head" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<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/read/head/"><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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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 Excel files.</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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/read/num-rows/index.html b/docs/read/num-rows/index.html
new file mode 100644
index 00000000..f18c9c02
--- /dev/null
+++ b/docs/read/num-rows/index.html
@@ -0,0 +1,37 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-read/num-rows" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<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/read/num-rows/"><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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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 anchorWithStickyNavbar_YIWN" 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 an Excel file can help us better understand the data structure and content.
+By default, FastExcel reads all data from the entire Excel 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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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/read/pojo/index.html b/docs/read/pojo/index.html
new file mode 100644
index 00000000..cce29991
--- /dev/null
+++ b/docs/read/pojo/index.html
@@ -0,0 +1,48 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-read/pojo" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<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/read/pojo/"><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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 Excel data by specifying <strong>column names</strong> or <strong>column indexes</strong>. This makes interaction with dynamically generated Excel files more flexible.</p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Getter</span><span class="token plain"></span><br>< [...]
+<h4 class="anchor anchorWithStickyNavbar_YIWN" id="代码示例">代码示例<a href="#代码示例" class="hash-link" aria-label="Direct link to 代码示例" title="Direct link to 代码示例" translate="no"></a></h4>
+<div class="language-java codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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>FastExcel supports reading Excel files directly without defining POJO classes, using <code>Map<Integer, String></code> to read data directly.</p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/read/sheet/index.html b/docs/read/sheet/index.html
new file mode 100644
index 00000000..1ba2fbdf
--- /dev/null
+++ b/docs/read/sheet/index.html
@@ -0,0 +1,48 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-read/sheet" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<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/read/sheet/"><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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 an Excel file, but the same Sheet cannot be read repeatedly.</p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 an Excel file, supporting specification by Sheet index or name.</p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" id="overview-2">Overview<a href="#overview-2" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>By setting the <code>ignoreHiddenSheet</code> parameter to true, data from Sheets in "hidden" state will not be read.
+This supports both <strong>"normal hidden"</strong> and <strong>"very hidden"</strong> states.</p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<blockquote>
+<p>In Microsoft Excel, Sheets have two hidden states: "normal hidden (xlSheetHidden)" and "very hidden (xlSheetVeryHidden)". Very hidden can be set through <code>VBA</code>, and in this case, the hidden Sheet cannot be unhidden through the "Unhide" operation.</p>
+</blockquote></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/apache/fesod/edit/main/website/docs/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_guvc" 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.9q0.5 0.4 [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/read/simple/index.html b/docs/read/simple/index.html
new file mode 100644
index 00000000..dffdc725
--- /dev/null
+++ b/docs/read/simple/index.html
@@ -0,0 +1,70 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-read/simple" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<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/read/simple/"><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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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 FastExcel to perform simple Excel reading operations.</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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>FastExcel provides a listener mechanism for processing each row of data while reading Excel files.</p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 an Excel file is read.</p>
+<h4 class="anchor anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h4 class="anchor anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h4 class="anchor anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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>FastExcel provides a simple way to read Excel files. Users only need to define a POJO class to represent the data structure, then read data through FastExcel's listener mechanism.</p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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 Excel structure:</p>
+<div class="language-java codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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 Excel.</p>
+<div class="language-java codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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>FastExcel supports reading Excel files directly without defining POJO classes, using <code>Map<Integer, String></code> to read data directly, where the key is the <strong>column index</strong> and the value is the <strong>cell data</strong>.</p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Slf4j</span><span class="token plain"></span><br></ [...]
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 Excel 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 anchorWithStickyNavbar_YIWN" 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 Excel structure:</p>
+<div class="language-java codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h4 class="anchor anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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/read/spring/index.html b/docs/read/spring/index.html
new file mode 100644
index 00000000..19f2d0d8
--- /dev/null
+++ b/docs/read/spring/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-read/spring" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<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/read/spring/"><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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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 FastExcel in the Spring framework to handle Excel files uploaded by users.</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 Excel files using HTTP requests, and the server uses FastExcel to parse the data.</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-xml codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34"><</span><span class="token tag" style="color:#00009f">depe [...]
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 Excel data:</p>
+<div class="language-java codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@RestController</span><span class="token plain"></sp [...]
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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"><a href="https://github.com/apache/fesod/edit/main/website/docs/read/spring.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdi [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/write/csv/index.html b/docs/write/csv/index.html
new file mode 100644
index 00000000..af55faf1
--- /dev/null
+++ b/docs/write/csv/index.html
@@ -0,0 +1,100 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-write/csv" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<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/write/csv/"><meta dat [...]
+<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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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 FastExcel to write custom CSV files.</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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>FastExcel writes CSV files through different parameter configurations. It uses <a href="https://commons.apache.org/proper/commons-csv" target="_blank" rel="noopener noreferrer">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">CSVFormat</a> settings to achieve writing objectives.</p>
+<p>The main parameters are as follows:</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th style="text-align:left">Name</th><th style="text-align:left">Default Value</th><th style="text-align:left">Description</th></tr></thead><tbody><tr><td style="text-align:left"><code>delimiter</code></td><td style="text-align:left"><code>,</code> (comma)</td><td style="text-align:left">Field delimiter. It's recommended to use predefined constants from <code>CsvConstant</code>, such as <code>CsvConstant.AT</code> (<code>@</code>), <code>CsvConstant.TAB</code>, etc [...]
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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, FastExcel provides constants in <code>CsvConstant</code> to simplify usage.</p>
+<h4 class="anchor anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" id="quote">quote<a href="#quote" class="hash-link" aria-label="Direct link to quote" title="Direct link to quote" translate="no"></a></h3>
+<p><code>quote</code> specifies the quote character that wraps fields. The default value is double quote <code>"</code>. This should be set when field content contains delimiters or line breaks.</p>
+<blockquote>
+<p>Note: This cannot be the same as the <code>recordSeparator</code> setting. It's recommended to use in combination with <code>QuoteMode</code>.</p>
+</blockquote>
+<h4 class="anchor anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" id="nullstring">nullString<a href="#nullstring" class="hash-link" aria-label="Direct link to nullString" title="Direct link to nullString" translate="no"></a></h3>
+<p><code>nullString</code> is used to replace <code>null</code> values with a specific string when writing to the file.
+For example, you can replace <code>null</code> objects with the string <code>"N/A"</code>.</p>
+<h4 class="anchor anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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>FastExcel currently still supports this approach, but it's not the most recommended usage method.</p>
+</blockquote>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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/write/extra/index.html b/docs/write/extra/index.html
new file mode 100644
index 00000000..1277794c
--- /dev/null
+++ b/docs/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-write/extra" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<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/write/extra/"><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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_ujsZ"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_ujsZ"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_ujsZ"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_ujsZ"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_ujsZ"></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"><a href="https://github.com/apache/fesod/edit/main/website/docs/write/extra.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height= [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/write/format/index.html b/docs/write/format/index.html
new file mode 100644
index 00000000..7c2f5a50
--- /dev/null
+++ b/docs/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-write/format" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<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/write/format/"><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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_ujsZ"></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"><a href="https://github.com/apache/fesod/edit/main/website/docs/write/format.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20 [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/write/head/index.html b/docs/write/head/index.html
new file mode 100644
index 00000000..954ea1b4
--- /dev/null
+++ b/docs/write/head/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-write/head" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<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/write/head/"><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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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 Excel.</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_ujsZ"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_ujsZ"></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"><a href="https://github.com/apache/fesod/edit/main/website/docs/write/head.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20 [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/write/image/index.html b/docs/write/image/index.html
new file mode 100644
index 00000000..d37135e9
--- /dev/null
+++ b/docs/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-write/image" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<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/write/image/"><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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Getter</span><span class="token plain"></span><br>< [...]
+<h4 class="anchor anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_ujsZ"></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"><a href="https://github.com/apache/fesod/edit/main/website/docs/write/image.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/write/pojo/index.html b/docs/write/pojo/index.html
new file mode 100644
index 00000000..c5033bf4
--- /dev/null
+++ b/docs/write/pojo/index.html
@@ -0,0 +1,54 @@
+<!doctype html>
+<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-write/pojo" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<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/write/pojo/"><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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_ujsZ"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_ujsZ"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" id="overview-2">Overview<a href="#overview-2" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Write data directly using <code>List<List<String>></code> to define headers and data without creating entity classes.</p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_ujsZ"></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"><a href="https://github.com/apache/fesod/edit/main/website/docs/write/pojo.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" wi [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/write/sheet/index.html b/docs/write/sheet/index.html
new file mode 100644
index 00000000..6469e9db
--- /dev/null
+++ b/docs/write/sheet/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-write/sheet" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<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/write/sheet/"><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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_ujsZ"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_ujsZ"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_ujsZ"></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"><a href="https://github.com/apache/fesod/edit/main/website/docs/write/sheet.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" wid [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/write/simple/index.html b/docs/write/simple/index.html
new file mode 100644
index 00000000..b6464354
--- /dev/null
+++ b/docs/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-write/simple" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<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/write/simple/"><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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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 FastExcel to perform simple Excel writing operations.</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 FastExcel for simple Excel data writing to quickly write entity objects to Excel files.
+This is the most basic and commonly used writing approach.</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 Excel structure:</p>
+<div class="language-java codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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>FastExcel provides multiple writing methods, including <code>Lambda</code> expressions, data lists, <code>ExcelWriter</code> objects, etc.</p>
+<h4 class="anchor anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h4 class="anchor anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@Test</span><span class="token plain"></span><br></s [...]
+<h4 class="anchor anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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/write/spring/index.html b/docs/write/spring/index.html
new file mode 100644
index 00000000..383bf338
--- /dev/null
+++ b/docs/write/spring/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-write/spring" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<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/write/spring/"><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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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 FastExcel in the Spring framework to generate Excel files.</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 Excel files and provide download functionality through HTTP interfaces, making it convenient to use FastExcel in web environments.</p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token annotation punctuation" style="color:#393A34">@GetMapping</span><span class="token punctuation" st [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/write/style/index.html b/docs/write/style/index.html
new file mode 100644
index 00000000..f046ca1d
--- /dev/null
+++ b/docs/write/style/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-write/style" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<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/write/style/"><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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_ujsZ"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_ujsZ"></p>
+<hr>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" id="overview-3">Overview<a href="#overview-3" class="hash-link" aria-label="Direct link to Overview" title="Direct link to Overview" translate="no"></a></h3>
+<p>Directly manipulate POI's <code>CellStyle</code>, suitable for precise style control.</p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-java codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" 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_ujsZ"></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"><a href="https://github.com/apache/fesod/edit/main/website/docs/write/style.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height [...]
+</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..90357161
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.svg b/img/logo.svg
new file mode 100644
index 00000000..a3de5966
--- /dev/null
+++ b/img/logo.svg
@@ -0,0 +1,36 @@
+<svg width="139" height="40" viewBox="0 0 139 40" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g id="Group 51">
+<g id="Union">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M26.0501 6.40647L22.7108 1.37247L14.8502 10.2688L17.9857 11.3837H20.4941L21.444 11.3837L26.0501 6.40647ZM60.2267 26.1755L57.4656 21.4217L59.043 15.9726L67.3517 10.5267L64.3066 5.64828L50.9216 21.3781L55.4215 21.9761L52.627 27.0829L56.5693 30.5607L60.2267 30.5607V26.1755ZM103.826 4.19486L106.776 8.64506L101.803 26.9968L75.4595 34.3257L72.4409 29.7855L103.826 4.19486ZM134.671 1.76463L137.622 6.21483L132.408 24.2217L126.211 30.2336L123.193 25 [...]
+<path d="M22.7108 1.37247L23.2606 1.00776L22.7855 0.291519L22.2164 0.93561L22.7108 1.37247ZM26.0501 6.40647L26.5343 6.85459L26.8866 6.47395L26.5999 6.04176L26.0501 6.40647ZM14.8502 10.2688L14.3557 9.83196L13.7094 10.5635L14.6291 10.8905L14.8502 10.2688ZM17.9857 11.3837L17.7647 12.0053L17.8719 12.0434H17.9857V11.3837ZM20.4941 11.3837L20.4941 10.7239H20.4941V11.3837ZM21.444 11.3837L21.444 12.0435L21.7324 12.0435L21.9282 11.8318L21.444 11.3837ZM57.4656 21.4217L56.8319 21.2383L56.7535 21.509 [...]
+</g>
+<g id="Group 48">
+<path id="Rectangle 4" d="M76.0534 34.4283L82.385 9.16285H106.675L100.344 34.4283H76.0534Z" fill="black" stroke="black" stroke-width="1.31954"/>
+<path id="E" d="M4.77891 29.9253L4.6775 30.5772H5.33726H11.006H11.6658L11.7672 29.9253L13.0677 21.5649H22.2569H22.9167L23.0181 20.913L23.7336 16.313L23.8351 15.6611H23.1753H13.986L14.3819 13.116H24.5213H25.181L25.2824 12.464L26.0175 7.73886L26.1189 7.08693H25.4591H15.3198H14.66H13.4883H12.8285H8.9913H8.33154L8.23012 7.73886L4.77891 29.9253Z" fill="black" stroke="black" stroke-width="1.31954"/>
+<path id="c" d="M100.935 29.8907L100.938 29.8927C102.256 30.6346 103.795 30.9998 105.538 30.9998C106.877 30.9998 108.13 30.7792 109.287 30.3229C110.455 29.8708 111.567 29.1967 112.624 28.3111L113.176 27.8481L112.772 27.3814L109.792 23.9392L109.371 23.4529L108.828 23.9709C108.527 24.2585 108.199 24.4729 107.843 24.6214C107.504 24.7623 107.081 24.8456 106.558 24.8456C106.076 24.8456 105.669 24.7368 105.323 24.5262C104.991 24.3115 104.735 24.0254 104.554 23.66C104.405 23.2937 104.36 22.8589 [...]
+<path id="x" d="M91.8963 30.3352L92.0365 30.66H92.4165H98.7502H99.9901L99.4555 29.6439L95.4929 22.1116L101.405 15.0712L102.259 14.0541H101.017H95.1263H94.7506L94.5092 14.3734L92.3983 17.1659L91.1802 14.3768L91.0393 14.0541H90.661H84.2955H83.0495L83.5914 15.0725L87.392 22.2138L81.0134 29.6358L80.1332 30.66H81.3957H87.2861H87.6514L87.8928 30.3541L90.4867 27.0686L91.8963 30.3352Z" fill="black" stroke="black" stroke-width="1.31954"/>
+<path id="e" d="M70.671 29.5842L70.671 29.5842L70.6778 29.588C72.0021 30.3089 73.5834 30.66 75.4018 30.66C76.8443 30.66 78.1915 30.4298 79.4342 29.9546C80.6978 29.4795 81.8218 28.7744 82.7965 27.8409L83.2759 27.3818L82.9059 26.9498L80.7085 24.3842L83.7621 24.3702L84.2751 24.3678L84.4759 23.8764C84.6533 23.4421 84.7867 23.0435 84.8681 22.6856C84.9667 22.3333 85.0425 21.989 85.0948 21.653C85.3412 20.0691 85.1905 18.6385 84.6239 17.3807C84.0847 16.1085 83.2002 15.1179 81.9826 14.4159C80.782 [...]
+<path id="Vector 19" d="M68.0441 28.2931L63.7236 22.2849L69.8752 26.7961L68.0441 28.2931Z" fill="black"/>
+<path id="e_2" d="M114.489 29.8289L114.489 29.829L114.496 29.8327C115.82 30.5536 117.401 30.9047 119.22 30.9047C120.662 30.9047 122.01 30.6745 123.252 30.1994C124.516 29.7242 125.64 29.0192 126.615 28.0856L127.094 27.6265L126.724 27.1945L124.527 24.6289L127.58 24.6149L128.093 24.6126L128.294 24.1211C128.471 23.6868 128.605 23.2883 128.686 22.9303C128.785 22.5781 128.861 22.2337 128.913 21.8977C129.159 20.3139 129.009 18.8833 128.442 17.6254C127.903 16.3532 127.018 15.3627 125.801 14.6606 [...]
+<path id="t" d="M58.747 31.2248L61.7644 11.9253H67.4354L64.4179 31.2248H58.747ZM56.7412 22.9885L57.3658 18.3042H70.0766L69.452 22.9885H56.7412Z" fill="black"/>
+<path id="s" d="M43.58 30.693L43.5836 30.694C44.5271 30.9594 45.5043 31.0925 46.5138 31.0925C48.5926 31.0925 50.4013 30.6334 51.8847 29.6478L51.8847 29.6478L51.8913 29.6433C53.4021 28.6181 54.3007 27.2138 54.5678 25.4963C54.7282 24.4652 54.6774 23.561 54.3585 22.8271C54.079 22.1371 53.6411 21.5794 53.0454 21.166C52.8137 20.9893 52.5723 20.8293 52.3212 20.6862L52.6337 20.4161L56.1461 17.3808L56.6276 16.9647L56.3242 16.5106C55.6594 15.5156 54.7017 14.784 53.4743 14.3095C52.2699 13.8219 50. [...]
+<path id="a" d="M23.3365 26.7678L23.3364 26.7678L23.338 26.7719C23.8237 28.06 24.62 29.0864 25.7247 29.838C26.8396 30.5966 28.1818 30.9692 29.7294 30.9692C30.7032 30.9692 31.7376 30.927 32.7447 30.5104C32.8871 30.4516 33.026 30.3869 33.1613 30.3175L33.1086 30.6563H33.7683H39.1837H39.8435L39.9449 30.0043L42.3252 14.7023L42.4266 14.0504H41.7668H36.3515H35.6917L35.6201 14.5104C35.4983 14.4439 35.3721 14.3815 35.2417 14.3233C34.4092 13.9294 33.4615 13.7374 32.4099 13.7374C30.864 13.7374 29.4 [...]
+<path id="l" d="M126.938 29.9178L126.837 30.5697H127.497H133.007H133.667L133.768 29.9178L137.317 7.10551L137.418 6.45359H136.759H131.248H130.588L130.487 7.10551L126.938 29.9178Z" fill="black" stroke="black" stroke-width="1.31954"/>
+</g>
+<g id="Group 47">
+<path id="Rectangle 4_2" d="M72.4563 29.0607L78.7878 3.7953H103.078L96.7465 29.0607H72.4563Z" fill="#79F427" stroke="black" stroke-width="1.31954"/>
+<path id="Rectangle 5" d="M77.3086 8.02875H86.9292L88.778 11.097L91.4152 8.02875H101.25V21.5989H77.3086V8.02875Z" fill="black"/>
+<path id="c_2" d="M97.3374 24.5231L97.341 24.5251C98.659 25.2671 100.197 25.6322 101.94 25.6322C103.279 25.6322 104.533 25.4117 105.69 24.9553C106.857 24.5033 107.97 23.8291 109.026 22.9435L109.579 22.4805L109.175 22.0138L106.195 18.5716L105.774 18.0854L105.231 18.6034C104.929 18.8909 104.602 19.1054 104.245 19.2538C103.906 19.3948 103.484 19.478 102.961 19.478C102.479 19.478 102.072 19.3692 101.726 19.1587C101.393 18.944 101.138 18.6578 100.956 18.2924C100.807 17.9262 100.763 17.4913 10 [...]
+<path id="x_2" d="M88.2986 24.9677L88.4388 25.2925H88.8188H95.1526H96.3924L95.8579 24.2763L91.8953 16.744L97.8074 9.70361L98.6615 8.68656H97.419H91.5286H91.1529L90.9115 9.00587L88.8006 11.7984L87.5826 9.0092L87.4417 8.68656H87.0633H80.6979H79.4518L79.9938 9.70492L83.7944 16.8463L77.4157 24.2683L76.5355 25.2925H77.7981H83.6885H84.0537L84.2952 24.9866L86.889 21.701L88.2986 24.9677Z" fill="white" stroke="black" stroke-width="1.31954"/>
+<path id="t_2" d="M53.5428 25.1124L53.4382 25.7812H54.1132H59.7841H60.429L60.5289 25.1422L61.7167 17.545H64.8181H65.4779L65.5651 16.891L66.1896 12.2067L66.2768 11.5527H65.6171H62.6536L63.5463 5.84277L63.6509 5.17391H62.976H57.305H56.6602L56.5602 5.81293L55.6628 11.5527H52.9064H52.2466L52.1594 12.2067L51.5349 16.891L51.4477 17.545H52.1074H54.7259L53.5428 25.1124Z" fill="white" stroke="black" stroke-width="1.31946"/>
+<path id="e_3" d="M67.362 24.7026L67.362 24.7026L67.3688 24.7063C68.664 25.4114 70.2101 25.7546 71.9874 25.7546C73.3973 25.7546 74.7147 25.5295 75.9302 25.0647C77.1662 24.6 78.2656 23.9103 79.2191 22.9972L79.6985 22.5381L79.3284 22.1061L77.2058 19.6276L80.1492 19.6142L80.6622 19.6118L80.863 19.1204C81.0364 18.6959 81.1669 18.3061 81.2466 17.9556C81.343 17.6113 81.4172 17.2746 81.4683 16.946C81.7092 15.3973 81.5619 13.998 81.0076 12.7673C80.4801 11.523 79.6148 10.5539 78.4239 9.86725C77.2 [...]
+<path id="e_4" d="M110.892 24.4614L110.892 24.4614L110.898 24.4651C112.223 25.1861 113.804 25.5372 115.622 25.5372C117.065 25.5372 118.412 25.307 119.655 24.8318C120.919 24.3567 122.042 23.6516 123.017 22.7181L123.497 22.259L123.127 21.827L120.929 19.2613L123.983 19.2474L124.496 19.245L124.697 18.7536C124.874 18.3192 125.007 17.9207 125.089 17.5628C125.187 17.2105 125.263 16.8662 125.316 16.5301C125.562 14.9463 125.411 13.5157 124.845 12.2578C124.305 10.9857 123.421 9.99511 122.203 9.293 [...]
+<path id="s_2" d="M39.9826 25.3254L39.9862 25.3264C40.9297 25.5918 41.9069 25.7249 42.9164 25.7249C44.9952 25.7249 46.8039 25.2659 48.2873 24.2802L48.2873 24.2803L48.2939 24.2758C49.8047 23.2505 50.7033 21.8462 50.9704 20.1288C51.1308 19.0977 51.08 18.1935 50.7611 17.4596C50.4816 16.7696 50.0437 16.2119 49.448 15.7984C49.2203 15.6248 48.9832 15.4673 48.7369 15.3261L49.057 15.0301L52.0926 12.2233L52.5417 11.8081L52.2501 11.3717C52.1644 11.2435 52.0798 11.1079 51.9928 10.9682C51.5316 10.22 [...]
+<path id="a_2" d="M19.7391 21.4002L19.739 21.4002L19.7406 21.4044C20.2263 22.6925 21.0226 23.7189 22.1273 24.4705C23.2422 25.229 24.5844 25.6016 26.132 25.6016C27.1862 25.6016 28.196 25.4087 29.1532 25.0128C29.2997 24.9522 29.4434 24.8881 29.584 24.8204L29.5111 25.2887H30.1709H35.5863H36.2461L36.3475 24.6368L38.7278 9.33474L38.8292 8.68282H38.1694H32.7541H32.0943L32.0227 9.14288C31.9009 9.07635 31.7747 9.01398 31.6443 8.95576C30.8118 8.56186 29.8641 8.36989 28.8125 8.36989C27.2665 8.3698 [...]
+<path id="l_2" d="M123.341 24.5502L123.24 25.2021H123.899H129.41H130.069L130.171 24.5502L133.719 1.73796L133.821 1.08603H133.161H127.651H126.991L126.89 1.73796L123.341 24.5502Z" fill="white" stroke="black" stroke-width="1.31954"/>
+<path id="F" d="M0.86303 24.6625L0.775838 25.3164H1.43557H7.30945H7.96918L8.05637 24.6625L9.11847 16.6967H18.7626H19.4224L19.5096 16.0428L20.1644 11.1312L20.2516 10.4772H19.5919H9.94773L10.3892 7.16626H20.5584H21.2181L21.3053 6.51232L21.9602 1.60072L22.0474 0.946782H21.3877H11.2185H10.5587H9.34458H8.68485H4.68485H4.02512L3.93793 1.60072L0.86303 24.6625Z" fill="white" stroke="black" stroke-width="1.31946"/>
+</g>
+<path id="Vector 18" d="M3.98817 31.1698L0.118164 25.9845L7.20055 25.7821L3.98817 31.1698Z" fill="black"/>
+<path id="Vector 11" d="M82.4462 33.8961H92.4155L82.4462 39.0752V33.8961Z" fill="black"/>
+</g>
+</svg>
diff --git a/img/team/10711694.png b/img/team/10711694.png
new file mode 100644
index 00000000..428487eb
Binary files /dev/null and b/img/team/10711694.png differ
diff --git a/img/team/11783444.png b/img/team/11783444.png
new file mode 100644
index 00000000..b0b4a6b9
Binary files /dev/null and b/img/team/11783444.png differ
diff --git a/img/team/13284744.png b/img/team/13284744.png
new file mode 100644
index 00000000..1b462510
Binary files /dev/null and b/img/team/13284744.png differ
diff --git a/img/team/17263766.png b/img/team/17263766.png
new file mode 100644
index 00000000..9f0a17d6
Binary files /dev/null and b/img/team/17263766.png differ
diff --git a/img/team/18475586.png b/img/team/18475586.png
new file mode 100644
index 00000000..1c2436c4
Binary files /dev/null and b/img/team/18475586.png differ
diff --git a/img/team/18818196.png b/img/team/18818196.png
new file mode 100644
index 00000000..6653c7f9
Binary files /dev/null and b/img/team/18818196.png differ
diff --git a/img/team/198714007.png b/img/team/198714007.png
new file mode 100644
index 00000000..c87c2c08
Binary files /dev/null and b/img/team/198714007.png differ
diff --git a/img/team/29803617.png b/img/team/29803617.png
new file mode 100644
index 00000000..55601114
Binary files /dev/null and b/img/team/29803617.png differ
diff --git a/img/team/3264250.png b/img/team/3264250.png
new file mode 100644
index 00000000..72ac77a3
Binary files /dev/null and b/img/team/3264250.png differ
diff --git a/img/team/5753992.png b/img/team/5753992.png
new file mode 100644
index 00000000..0c020485
Binary files /dev/null and b/img/team/5753992.png differ
diff --git a/index.html b/index.html
new file mode 100644
index 00000000..cdd4d4de
--- /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.1">
+<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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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 Excel 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-1.411 [...]
+</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..84bcf6d5
--- /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":"Become A Committer","u":"/community/committer/become-committer/","b":[]},{"i":9,"t":"Onboarding","u":"/community/committer/committer-onboarding/","b":[]},{"i":11,"t":"Sign iCLA [...]
\ No newline at end of file
diff --git a/search/index.html b/search/index.html
new file mode 100644
index 00000000..78c05c8d
--- /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.1">
+<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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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..49b83a5c
--- /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-ent [...]
\ No newline at end of file
diff --git a/team/index.html b/team/index.html
new file mode 100644
index 00000000..e51d3969
--- /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.1">
+<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.7d82d99a.js" defer="defer"></script>
+<script src="/assets/js/main.68e001e2.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..8a24f5a6
--- /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.1">
+<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.9066dff5.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.f32a72ca.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.0d54af32.css b/zh-cn/assets/css/styles.0d54af32.css
new file mode 100644
index 00000000..026a7aec
--- /dev/null
+++ b/zh-cn/assets/css/styles.0d54af32.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/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.ccd6aa45.js b/zh-cn/assets/js/00e1230c.ccd6aa45.js
new file mode 100644
index 00000000..70be459d
--- /dev/null
+++ b/zh-cn/assets/js/00e1230c.ccd6aa45.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6147],{20227:(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/i1 [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/01a85c17.c92962ef.js b/zh-cn/assets/js/01a85c17.c92962ef.js
new file mode 100644
index 00000000..177d48fb
--- /dev/null
+++ b/zh-cn/assets/js/01a85c17.c92962ef.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8209],{50884:(e,t,a)=>{a.d(t,{A:()=>l});a(96363);var s=a(13526),n=a(40221);const i={tag:"tag_S9Ao",tagRegular:"tagRegular_dOwC",tagWithCount:"tagWithCount_nNee"};var r=a(47259);function l({permalink:e,label:t,count:a,description:l}){return(0,r.jsxs)(n.A,{rel:"tag",href:e,title:l,className:(0,s.A)(i.tag,a?i.tagWithCount:i.tagRegular),children:[t,a&&(0,r.jsx)("span",{children:a})]})}},68197:(e,t,a)=>{a. [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/026e6981.66c9bede.js b/zh-cn/assets/js/026e6981.66c9bede.js
new file mode 100644
index 00000000..bb5e8524
--- /dev/null
+++ b/zh-cn/assets/js/026e6981.66c9bede.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1988],{17869:(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) \u7 [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/035672d3.1afa1f8c.js b/zh-cn/assets/js/035672d3.1afa1f8c.js
new file mode 100644
index 00000000..8bf8097d
--- /dev/null
+++ b/zh-cn/assets/js/035672d3.1afa1f8c.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8885],{21527:(e,t,a)=>{a.d(t,{A:()=>n});a(96363);var i=a(13892),s=a(47259);function n({children:e,fallback:t}){return(0,i.A)()?(0,s.jsx)(s.Fragment,{children:e?.()}):t??null}},39726:(e,t,a)=>{a.r(t),a.d(t,{default:()=>o});var i=a(96363),s=a(21527);const n=JSON.parse('{"pmc":[{"githubId":"29803617","gitUrl":"https://github.com/dave2wave","name":"Dave Fisher","isMentor":true},{"githubId":"13284744","git [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/0e7f7048.fb8b58a2.js b/zh-cn/assets/js/0e7f7048.fb8b58a2.js
new file mode 100644
index 00000000..45a5d256
--- /dev/null
+++ b/zh-cn/assets/js/0e7f7048.fb8b58a2.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3060],{29087:(e,n,t)=>{t.d(n,{R:()=>c,x:()=>o});var r=t(96363);const a={},i=r.createContext(a);function c(e){const n=r.useContext(i);return r.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(a):e.components||a:c(e.components),r.createElement(i.Provider,{value:n},e.children)}},34541:(e [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/12751524.4937b7cf.js b/zh-cn/assets/js/12751524.4937b7cf.js
new file mode 100644
index 00000000..1ccb3e67
--- /dev/null
+++ b/zh-cn/assets/js/12751524.4937b7cf.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4610],{9580:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>s,default:()=>p,frontMatter:()=>l,metadata:()=>r,toc:()=>c});const r=JSON.parse('{"id":"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 FastExcel \u6765\u5904\u7406\u7528\u6237\u4e0a\u4f20\u7684 Excel \u6587\u4ef6\u3 [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/138e0e15.93fd5233.js b/zh-cn/assets/js/138e0e15.93fd5233.js
new file mode 100644
index 00000000..319c7b86
--- /dev/null
+++ b/zh-cn/assets/js/138e0e15.93fd5233.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/141.24fbb07f.js b/zh-cn/assets/js/141.24fbb07f.js
new file mode 100644
index 00000000..ceae25e8
--- /dev/null
+++ b/zh-cn/assets/js/141.24fbb07f.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[141],{50141:(e,r,s)=>{s.d(r,{diagram:()=>i});var a=s(89076),t=(s(7055),s(58943),s(95458),s(86659),s(39142),s(29124),s(97440),s(85611),s(63637),s(43379),s(31808),s(80074),s(51595)),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/14fc6b04.560da5ed.js b/zh-cn/assets/js/14fc6b04.560da5ed.js
new file mode 100644
index 00000000..165f87df
--- /dev/null
+++ b/zh-cn/assets/js/14fc6b04.560da5ed.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4065],{29087:(e,t,n)=>{n.d(t,{R:()=>a,x:()=>r});var o=n(96363);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)}},61201:(e [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/1562.70da6092.js b/zh-cn/assets/js/1562.70da6092.js
new file mode 100644
index 00000000..eff27236
--- /dev/null
+++ b/zh-cn/assets/js/1562.70da6092.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1562],{58943:(e,t,s)=>{s.d(t,{A:()=>r});var i=s(51595),n=s(3170),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")},91562:(e,t,s)=>{s.d(t,{diagram:()=>E});var i=s(58943),n=s(95458),r=s(86659),a=(s(39142),s(29124),s(97440),s(85611),s(63637),s(43379),s(31808)),l=s( [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/162d40fa.ee98f4b4.js b/zh-cn/assets/js/162d40fa.ee98f4b4.js
new file mode 100644
index 00000000..c8448f89
--- /dev/null
+++ b/zh-cn/assets/js/162d40fa.ee98f4b4.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1807],{29087:(e,n,t)=>{t.d(n,{R:()=>i,x:()=>s});var a=t(96363);const r={},l=a.createContext(r);function i(e){const n=a.useContext(l);return a.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(r):e.components||r:i(e.components),a.createElement(l.Provider,{value:n},e.children)}},44484:(e [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/1649.90e806a8.js b/zh-cn/assets/js/1649.90e806a8.js
new file mode 100644
index 00000000..44141072
--- /dev/null
+++ b/zh-cn/assets/js/1649.90e806a8.js
@@ -0,0 +1,2 @@
+/*! For license information please see 1649.90e806a8.js.LICENSE.txt */
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1649],{3170:(t,e,r)=>{"use strict";function n(t,e){let r;if(void 0===e)for(const n of t)null!=n&&(r<n||void 0===r&&n>=n)&&(r=n);else{let n=-1;for(let i of t)null!=(i=e(i,++n,t))&&(r<i||void 0===r&&i>=i)&&(r=i)}return r}function i(t,e){let r;if(void 0===e)for(const n of t)null!=n&&(r>n||void 0===r&&n>=n)&&(r=n);else{let n=-1;for(let i of t)null!=(i=e(i,++n,t))&&(r>i||void 0===r&&i>=i)&&(r=i)}return r}function a(t){ [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/1649.90e806a8.js.LICENSE.txt b/zh-cn/assets/js/1649.90e806a8.js.LICENSE.txt
new file mode 100644
index 00000000..3c2b5001
--- /dev/null
+++ b/zh-cn/assets/js/1649.90e806a8.js.LICENSE.txt
@@ -0,0 +1 @@
+/*! @license DOMPurify 3.2.7 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.7/LICENSE */
diff --git a/zh-cn/assets/js/1706.1f8c30a9.js b/zh-cn/assets/js/1706.1f8c30a9.js
new file mode 100644
index 00000000..f6705f0d
--- /dev/null
+++ b/zh-cn/assets/js/1706.1f8c30a9.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1706],{31706:(t,n,e)=>{e.d(n,{diagram:()=>ct});var i=e(80074),s=e(51595),r=e(3170);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 [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/17896441.cda04a4c.js b/zh-cn/assets/js/17896441.cda04a4c.js
new file mode 100644
index 00000000..d33aecb1
--- /dev/null
+++ b/zh-cn/assets/js/17896441.cda04a4c.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8401],{4342:(e,n,t)=>{t.d(n,{A:()=>c});t(96363);var s=t(13526),a=t(17629);const i={tableOfContents:"tableOfContents_EWY5",docItemContainer:"docItemContainer_AUpp"};var o=t(47259);const l="table-of-contents__link toc-highlight",r="table-of-contents__link--active";function c({className:e,...n}){return(0,o.jsx)("div",{className:(0,s.A)(i.tableOfContents,"thin-scrollbar",e),children:(0,o.jsx)(a.A,{...n,li [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/1800.b58deb51.js b/zh-cn/assets/js/1800.b58deb51.js
new file mode 100644
index 00000000..99ac19e8
--- /dev/null
+++ b/zh-cn/assets/js/1800.b58deb51.js
@@ -0,0 +1 @@
+(()=>{"use strict";var e,r,t={91800:(e,r,t)=>{t.d(r,{BH:()=>a,Ho:()=>p,IH:()=>i,sx:()=>n});var o=t(36430),s=t.n(o);t(84946)(s()),t(79500).A(s()),t(42537)(s());const n=[],a=["zh","en"],i="search-index{dir}.json?_=5c38ba69",p=1}},o={};function s(e){var r=o[e];if(void 0!==r)return r.exports;var n=o[e]={exports:{}};return t[e].call(n.exports,n,n.exports,s),n.exports}s.m=t,s.x=()=>{var e=s.O(void 0,[5956],()=>s(17620));return e=s.O(e)},e=[],s.O=(r,t,o,n)=>{if(!t){var a=1/0;for(u=0;u<e.length; [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/1874.3fc3e393.js b/zh-cn/assets/js/1874.3fc3e393.js
new file mode 100644
index 00000000..2b6c2827
--- /dev/null
+++ b/zh-cn/assets/js/1874.3fc3e393.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1874],{6064:(t,n,r)=>{r.d(n,{A:()=>u});var e=r(22663);const o=function(t,n){return(0,e.A)(n,function(n){return t[n]})};var c=r(22859);const u=function(t){return null==t?[]:o(t,(0,c.A)(t))}},9532:(t,n,r)=>{r.d(n,{A:()=>o});var e=r(37617);const o=function(t,n){return!!(null==t?0:t.length)&&(0,e.A)(t,n,0)>-1}},9584:(t,n,r)=>{r.d(n,{A:()=>e});const e=function(t,n){return t.has(n)}},13027:(t,n,r)=>{r.d(n,{ [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/18b1fbba.7b3e5195.js b/zh-cn/assets/js/18b1fbba.7b3e5195.js
new file mode 100644
index 00000000..6bfc2451
--- /dev/null
+++ b/zh-cn/assets/js/18b1fbba.7b3e5195.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5508],{5165:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>r,default:()=>d,frontMatter:()=>s,metadata:()=>o,toc:()=>l});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- [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/1a3b291f.1883e1ee.js b/zh-cn/assets/js/1a3b291f.1883e1ee.js
new file mode 100644
index 00000000..78acf39a
--- /dev/null
+++ b/zh-cn/assets/js/1a3b291f.1883e1ee.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5152],{3932:(e,i,n)=>{n.r(i),n.d(i,{assets:()=>a,contentTitle:()=>l,default:()=>d,frontMatter:()=>s,metadata:()=>t,toc:()=>o});const t=JSON.parse('{"id":"committer/committer-onboarding","title":"Committer \u987b\u77e5","description":"\u6536\u5230 Apache Fesod (Incubating) PPMC \u7684\u9080\u8bf7\u90ae\u4ef6\u540e\uff0c\u65b0\u7684 Committer \u5e94\u8003\u8651\u662f\u5426\u63a5\u53d7\u9080\u8bf7\u3002" [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/1a4e3797.06431859.js b/zh-cn/assets/js/1a4e3797.06431859.js
new file mode 100644
index 00000000..a7120d00
--- /dev/null
+++ b/zh-cn/assets/js/1a4e3797.06431859.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2138],{13281:(e,t,r)=>{r.d(t,{W:()=>u});var s=r(96363),a=r(76985);const n=["zero","one","two","few","many","other"];function l(e){return n.filter(t=>e.includes(t))}const c={locale:"en",pluralForms:l(["one","other"]),select:e=>1===e?"one":"other"};function o(){const{i18n:{currentLocale:e}}=(0,a.A)();return(0,s.useMemo)(()=>{try{return function(e){const t=new Intl.PluralRules(e);return{locale:e,pluralFo [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/1ba16981.01318a93.js b/zh-cn/assets/js/1ba16981.01318a93.js
new file mode 100644
index 00000000..a792aebf
--- /dev/null
+++ b/zh-cn/assets/js/1ba16981.01318a93.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3498],{29087:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>l});var d=t(96363);const r={},c=d.createContext(r);function s(e){const n=d.useContext(c);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(r):e.components||r:s(e.components),d.createElement(c.Provider,{value:n},e.children)}},92308:(e [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/1d61c132.b179d2e5.js b/zh-cn/assets/js/1d61c132.b179d2e5.js
new file mode 100644
index 00000000..47a1492d
--- /dev/null
+++ b/zh-cn/assets/js/1d61c132.b179d2e5.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[608],{63080: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/23f7ca76.6053caff.js b/zh-cn/assets/js/23f7ca76.6053caff.js
new file mode 100644
index 00000000..c5e893a5
--- /dev/null
+++ b/zh-cn/assets/js/23f7ca76.6053caff.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[240],{28665:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>c,default:()=>u,frontMatter:()=>r,metadata:()=>i,toc:()=>d});const i=JSON.parse('{"id":"introduce","title":"\u4ecb\u7ecd","description":"\u4ecb\u7ecd","source":"@site/i18n/zh-cn/docusaurus-plugin-content-docs/current/introduce.md","sourceDirName":".","slug":"/","permalink":"/zh-cn/docs/","draft":false,"unlisted":false,"editUrl":"https:/ [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/2474.826e3a10.js b/zh-cn/assets/js/2474.826e3a10.js
new file mode 100644
index 00000000..3e85eb73
--- /dev/null
+++ b/zh-cn/assets/js/2474.826e3a10.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2474],{86036:(e,t,i)=>{i.d(t,{A:()=>r});i(96363);var n=i(13526),o=i(12417),s=i(46182),a=i(47259);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.ti [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/27573f0c.ec9987b4.js b/zh-cn/assets/js/27573f0c.ec9987b4.js
new file mode 100644
index 00000000..2af955ca
--- /dev/null
+++ b/zh-cn/assets/js/27573f0c.ec9987b4.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[822],{16024:t=>{t.exports=JSON.parse('{"authors":[{"name":"jipengfei","url":"https://github.com/jipengfei-jpf","socials":{"github":"https://github.com/jipengfei-jpf"},"imageURL":"/zh-cn/img/team/198714007.png","key":"jipengfei","page":null,"count":0},{"name":"zhuangjiaju","url":"https://github.com/zhuangjiaju","socials":{"github":"https://github.com/zhuangjiaju"},"imageURL":"/zh-cn/img/team/18475586.p [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/2774.1c2ea4c9.js b/zh-cn/assets/js/2774.1c2ea4c9.js
new file mode 100644
index 00000000..08d145fe
--- /dev/null
+++ b/zh-cn/assets/js/2774.1c2ea4c9.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2774],{42774:(t,e,a)=>{a.d(e,{diagram:()=>z});var r=a(47348),n=a(85849),i=a(31808),s=a(80074),o=a(51595),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,"g [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/2810e9cc.fbe306a2.js b/zh-cn/assets/js/2810e9cc.fbe306a2.js
new file mode 100644
index 00000000..19564040
--- /dev/null
+++ b/zh-cn/assets/js/2810e9cc.fbe306a2.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[506],{29087:(e,n,l)=>{l.d(n,{R:()=>r,x:()=>d});var i=l(96363);const t={},s=i.createContext(t);function r(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(t):e.components||t:r(e.components),i.createElement(s.Provider,{value:n},e.children)}},53279:(e, [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/2903.ff39d8c0.js b/zh-cn/assets/js/2903.ff39d8c0.js
new file mode 100644
index 00000000..58a05afa
--- /dev/null
+++ b/zh-cn/assets/js/2903.ff39d8c0.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2903],{23369:(t,e,a)=>{a.d(e,{CP:()=>h,HT:()=>u,PB:()=>d,aC:()=>c,lC:()=>l,m:()=>o,tk:()=>s});var n=a(80074),i=a(51595),r=a(41407),s=(0,i.K2)((t,e)=>{const a=t.append("rect");if(a.attr("x",e.x),a.attr("y",e.y),a.attr("fill",e.fill),a.attr("stroke",e.stroke),a.attr("width",e.width),a.attr("height",e.height),e.name&&a.attr("name",e.name),e.rx&&a.attr("rx",e.rx),e.ry&&a.attr("ry",e.ry),void 0!==e.attrs)f [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/2fc01e78.28f42c11.js b/zh-cn/assets/js/2fc01e78.28f42c11.js
new file mode 100644
index 00000000..c7184b01
--- /dev/null
+++ b/zh-cn/assets/js/2fc01e78.28f42c11.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5681],{29087:(e,t,n)=>{n.d(t,{R:()=>a,x:()=>o});var r=n(96363);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?e.components(i):e.components||i:a(e.components),r.createElement(s.Provider,{value:t},e.children)}},47058:(e [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/344239d7.8c729459.js b/zh-cn/assets/js/344239d7.8c729459.js
new file mode 100644
index 00000000..65db1307
--- /dev/null
+++ b/zh-cn/assets/js/344239d7.8c729459.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3763],{29087:(e,n,a)=>{a.d(n,{R:()=>s,x:()=>d});var l=a(96363);const i={},t=l.createContext(i);function s(e){const n=l.useContext(t);return l.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(i):e.components||i:s(e.components),l.createElement(t.Provider,{value:n},e.children)}},76096:(e [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/3497.be66bff8.js b/zh-cn/assets/js/3497.be66bff8.js
new file mode 100644
index 00000000..15d2d23d
--- /dev/null
+++ b/zh-cn/assets/js/3497.be66bff8.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3497],{13497:(t,e,n)=>{n.d(e,{diagram:()=>Y});var i=n(80074),s=n(51595),r=n(3170),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,EO [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/3582.ebc209f3.js b/zh-cn/assets/js/3582.ebc209f3.js
new file mode 100644
index 00000000..c00f3d22
--- /dev/null
+++ b/zh-cn/assets/js/3582.ebc209f3.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3582],{4812:(t,e,a)=>{a.d(e,{m:()=>s});var r=a(51595),s=class{constructor(t){this.init=t,this.records=this.init()}static{(0,r.K2)(this,"ImperativeState")}reset(){this.records=this.init()}}},13582:(t,e,a)=>{a.d(e,{diagram:()=>vt});var r=a(23369),s=a(73767),i=a(4812),n=a(31808),o=a(80074),c=a(51595),l=a(3170),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); [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/35ef6288.e32e4c93.js b/zh-cn/assets/js/35ef6288.e32e4c93.js
new file mode 100644
index 00000000..95fd0a7a
--- /dev/null
+++ b/zh-cn/assets/js/35ef6288.e32e4c93.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9646],{29087:(e,n,s)=>{s.d(n,{R:()=>r,x:()=>d});var i=s(96363);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)}},84210:(e [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/3696a4b8.9753c5c3.js b/zh-cn/assets/js/3696a4b8.9753c5c3.js
new file mode 100644
index 00000000..c8d20592
--- /dev/null
+++ b/zh-cn/assets/js/3696a4b8.9753c5c3.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[140],{29087:(e,n,i)=>{i.d(n,{R:()=>r,x:()=>o});var t=i(96363);const c={},s=t.createContext(c);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(c):e.components||c:r(e.components),t.createElement(s.Provider,{value:n},e.children)}},76927:(e, [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/36994c47.d15f2bb2.js b/zh-cn/assets/js/36994c47.d15f2bb2.js
new file mode 100644
index 00000000..2099f418
--- /dev/null
+++ b/zh-cn/assets/js/36994c47.d15f2bb2.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/3899.dd052ef0.js b/zh-cn/assets/js/3899.dd052ef0.js
new file mode 100644
index 00000000..969515b3
--- /dev/null
+++ b/zh-cn/assets/js/3899.dd052ef0.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/3adce689.04d58c76.js b/zh-cn/assets/js/3adce689.04d58c76.js
new file mode 100644
index 00000000..77e94c10
--- /dev/null
+++ b/zh-cn/assets/js/3adce689.04d58c76.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2996],{21801:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>a,default:()=>h,frontMatter:()=>l,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"write/head","title":"\u8868\u5934","description":"\u672c\u7ae0\u8282\u5c06\u4ecb\u7ecd\u5199\u5165 Excel \u4e2d\u7684\u8868\u5934\u6570\u636e\u3002","source":"@site/i18n/zh-cn/docusaurus-plugin-content-docs/current/write/head.md","sourceDirName":"wr [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/4273.50520efe.js b/zh-cn/assets/js/4273.50520efe.js
new file mode 100644
index 00000000..da710c6e
--- /dev/null
+++ b/zh-cn/assets/js/4273.50520efe.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4273],{34273:(t,e,i)=>{i.d(e,{diagram:()=>I});var a=i(80074),n=i(51595),s=i(3170),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 [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/4326.e1457e7a.js b/zh-cn/assets/js/4326.e1457e7a.js
new file mode 100644
index 00000000..2bdb2cba
--- /dev/null
+++ b/zh-cn/assets/js/4326.e1457e7a.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4326],{3602:(e,n,t)=>{t.d(n,{A:()=>c});var r=t(76095),o=t(42849),i=t(22859);const u=function(e){return function(n,t,u){var a=Object(n);if(!(0,o.A)(n)){var s=(0,r.A)(t,3);n=(0,i.A)(n),t=function(e){return s(a[e],e,a)}}var d=e(n,t,u);return d>-1?a[s?n[d]:d]:void 0}};var a=t(46482),s=t(81066),d=Math.max;const c=u(function(e,n,t){var o=null==e?0:e.length;if(!o)return-1;var i=null==t?0:(0,s.A)(t);return i< [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/4422.84c7c63f.js b/zh-cn/assets/js/4422.84c7c63f.js
new file mode 100644
index 00000000..b6191084
--- /dev/null
+++ b/zh-cn/assets/js/4422.84c7c63f.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4422],{84422:(e,t,a)=>{a.d(t,{diagram:()=>C});var i=a(47348),l=a(85849),n=a(31808),r=a(80074),s=a(51595),o=a(96961),c=a(3170),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 inv [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/4546.81c8086d.js b/zh-cn/assets/js/4546.81c8086d.js
new file mode 100644
index 00000000..44e8191e
--- /dev/null
+++ b/zh-cn/assets/js/4546.81c8086d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4546],{58943:(t,e,i)=>{i.d(e,{A:()=>r});var s=i(51595),n=i(3170),r=(0,s.K2)((t,e)=>{let i;"sandbox"===e&&(i=(0,n.Ltv)("#i"+t));return("sandbox"===e?(0,n.Ltv)(i.nodes()[0].contentDocument.body):(0,n.Ltv)("body")).select(`[id="${t}"]`)},"getDiagramElement")},80124:(t,e,i)=>{i.d(e,{A:()=>r});var s=i(46554),n=i(55385);const r=(t,e)=>s.A.lang.round(n.A.parse(t)[e])},84546:(t,e,i)=>{i.d(e,{diagram:()=>f});v [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/46d6cbfe.c95e9068.js b/zh-cn/assets/js/46d6cbfe.c95e9068.js
new file mode 100644
index 00000000..63abef36
--- /dev/null
+++ b/zh-cn/assets/js/46d6cbfe.c95e9068.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6607],{29087:(e,n,t)=>{t.d(n,{R:()=>c,x:()=>i});var s=t(96363);const l={},r=s.createContext(l);function c(e){const n=s.useContext(r);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(l):e.components||l:c(e.components),s.createElement(r.Provider,{value:n},e.children)}},52850:(e [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/4739.55d7f6da.js b/zh-cn/assets/js/4739.55d7f6da.js
new file mode 100644
index 00000000..2b60d813
--- /dev/null
+++ b/zh-cn/assets/js/4739.55d7f6da.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4739],{84739:(e,t,a)=>{a.d(t,{diagram:()=>v});var l=a(47348),s=a(95458),r=a(63637),n=a(85849),i=a(31808),o=a(80074),c=a(51595),d=a(96961),p=a(3170),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{( [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/4860.153916a1.js b/zh-cn/assets/js/4860.153916a1.js
new file mode 100644
index 00000000..40144e64
--- /dev/null
+++ b/zh-cn/assets/js/4860.153916a1.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/4ccddeda.43569d9f.js b/zh-cn/assets/js/4ccddeda.43569d9f.js
new file mode 100644
index 00000000..ad489a64
--- /dev/null
+++ b/zh-cn/assets/js/4ccddeda.43569d9f.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8553],{29087:(e,n,s)=>{s.d(n,{R:()=>r,x:()=>c});var t=s(96363);const l={},d=t.createContext(l);function r(e){const n=t.useContext(d);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(l):e.components||l:r(e.components),t.createElement(d.Provider,{value:n},e.children)}},31158:(e [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/516dc88b.d9aecb02.js b/zh-cn/assets/js/516dc88b.d9aecb02.js
new file mode 100644
index 00000000..58c7875a
--- /dev/null
+++ b/zh-cn/assets/js/516dc88b.d9aecb02.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2388],{29087:(e,n,i)=>{i.d(n,{R:()=>o,x:()=>s});var t=i(96363);const r={},c=t.createContext(r);function o(e){const n=t.useContext(c);return t.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(r):e.components||r:o(e.components),t.createElement(c.Provider,{value:n},e.children)}},67855:(e [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/5373.5f2c487c.js b/zh-cn/assets/js/5373.5f2c487c.js
new file mode 100644
index 00000000..bdf067ab
--- /dev/null
+++ b/zh-cn/assets/js/5373.5f2c487c.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5373],{4812:(t,r,e)=>{e.d(r,{m:()=>o});var n=e(51595),o=class{constructor(t){this.init=t,this.records=this.init()}static{(0,n.K2)(this,"ImperativeState")}reset(){this.records=this.init()}}},55373:(t,r,e)=>{e.d(r,{diagram:()=>ut});var n=e(85849),o=e(4812),a=e(31808),c=e(80074),s=e(51595),i=e(96961),h=e(3170),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/5438.d5ba87f0.js b/zh-cn/assets/js/5438.d5ba87f0.js
new file mode 100644
index 00000000..369a366f
--- /dev/null
+++ b/zh-cn/assets/js/5438.d5ba87f0.js
@@ -0,0 +1 @@
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5438],{15438:(t,e,i)=>{"use strict";i.r(e),i.d(e,{render:()=>p});var r=i(51595),n=i(70638),o=i(50026),s=i(3170);function a(t,e){t.forEach(t=>{const i={id:t.id,labelText:t.label,height:t.height,width:t.width,padding:t.padding??0};Object.keys(t).forEach(e=>{["id","label","height","width","padding","x","y"].includes(e)||(i[e]=t[e])}),e.add({group:"nodes",data:i,position:{x:t.x??0,y:t.y??0}})})}function h(t,e){t.forEa [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/5571.3f6cb610.js b/zh-cn/assets/js/5571.3f6cb610.js
new file mode 100644
index 00000000..6b3ba065
--- /dev/null
+++ b/zh-cn/assets/js/5571.3f6cb610.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5571],{45571:(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 [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/5739.c3af032d.js b/zh-cn/assets/js/5739.c3af032d.js
new file mode 100644
index 00000000..c3906349
--- /dev/null
+++ b/zh-cn/assets/js/5739.c3af032d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5739],{7055:(t,e,n)=>{n.d(e,{o:()=>i});var i=(0,n(51595).K2)(()=>"\n /* Font Awesome icon styling - consolidated */\n .label-icon {\n display: inline-block;\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n }\n \n .node .label-icon path {\n fill: currentColor;\n stroke: revert;\n stroke-width: revert;\n }\n","getIconStyles")},45739:(t,e,n)=>{n.d(e,{diagram:() [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/5789.b4b3ce96.js b/zh-cn/assets/js/5789.b4b3ce96.js
new file mode 100644
index 00000000..25f8fbff
--- /dev/null
+++ b/zh-cn/assets/js/5789.b4b3ce96.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5789],{7055:(t,e,s)=>{s.d(e,{o:()=>i});var i=(0,s(51595).K2)(()=>"\n /* Font Awesome icon styling - consolidated */\n .label-icon {\n display: inline-block;\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n }\n \n .node .label-icon path {\n fill: currentColor;\n stroke: revert;\n stroke-width: revert;\n }\n","getIconStyles")},58943:(t,e,s)=>{s.d(e,{A:()=>r}); [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/5820.5c72c518.js b/zh-cn/assets/js/5820.5c72c518.js
new file mode 100644
index 00000000..e8dd7d23
--- /dev/null
+++ b/zh-cn/assets/js/5820.5c72c518.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/5956.120a19be.js b/zh-cn/assets/js/5956.120a19be.js
new file mode 100644
index 00000000..c13238d6
--- /dev/null
+++ b/zh-cn/assets/js/5956.120a19be.js
@@ -0,0 +1,2 @@
+/*! For license information please see 5956.120a19be.js.LICENSE.txt */
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5956],{17620:(e,t,r)=>{"use strict";const n=Symbol("Comlink.proxy"),i=Symbol("Comlink.endpoint"),s=Symbol("Comlink.releaseProxy"),o=Symbol("Comlink.finalizer"),a=Symbol("Comlink.thrown"),u=e=>"object"==typeof e&&null!==e||"function"==typeof e,l={canHandle:e=>u(e)&&e[n],serialize(e){const{port1:t,port2:r}=new MessageChannel;return h(e,t),[r,[r]]},deserialize:e=>(e.start(),function(e,t){const r=new Map;return e.addE [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/5956.120a19be.js.LICENSE.txt b/zh-cn/assets/js/5956.120a19be.js.LICENSE.txt
new file mode 100644
index 00000000..7e6757bb
--- /dev/null
+++ b/zh-cn/assets/js/5956.120a19be.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/5e6cf37e.9772c714.js b/zh-cn/assets/js/5e6cf37e.9772c714.js
new file mode 100644
index 00000000..a99e6ea8
--- /dev/null
+++ b/zh-cn/assets/js/5e6cf37e.9772c714.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4601],{6756:(e,n,i)=>{i.d(n,{A:()=>c});const c=i.p+"assets/images/icla-03-c8df2f12ca6b2bc591a4e73aced61280.png"},29087:(e,n,i)=>{i.d(n,{R:()=>r,x:()=>l});var c=i(96363);const t={},s=c.createContext(t);function r(e){const n=c.useContext(s);return c.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 [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/5e95c892.640f9a02.js b/zh-cn/assets/js/5e95c892.640f9a02.js
new file mode 100644
index 00000000..91da60af
--- /dev/null
+++ b/zh-cn/assets/js/5e95c892.640f9a02.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9647],{89922:(e,s,r)=>{r.r(s),r.d(s,{default:()=>h});r(96363);var a=r(13526),t=r(13743),u=r(96148),c=r(42073),i=r(74718),l=r(47259);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/6077.3e9da91d.js b/zh-cn/assets/js/6077.3e9da91d.js
new file mode 100644
index 00000000..e442f14a
--- /dev/null
+++ b/zh-cn/assets/js/6077.3e9da91d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6077],{56077:(t,e,n)=>{n.d(e,{diagram:()=>D});var i=n(58943),s=n(95458),r=n(86659),o=(n(39142),n(29124),n(97440),n(85611),n(63637),n(43379),n(31808),n(80074)),a=n(51595);const c={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let h;const l=new Uint8Array(16);const d=[];for(let L=0;L<256;++L)d.push((L+256).toString(16).slice(1));function g(t,e=0){return(d[t[e+ [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/621db11d.59e11aef.js b/zh-cn/assets/js/621db11d.59e11aef.js
new file mode 100644
index 00000000..d16e95bf
--- /dev/null
+++ b/zh-cn/assets/js/621db11d.59e11aef.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4212],{6133:(t,s,e)=>{e.d(s,{ZD:()=>u,uz:()=>l});e(96363);var a=e(12417),o=e(13281);e(47259);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/6261.1def33de.js b/zh-cn/assets/js/6261.1def33de.js
new file mode 100644
index 00000000..dbf12df6
--- /dev/null
+++ b/zh-cn/assets/js/6261.1def33de.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6261],{76261:(t,e,a)=>{a.d(e,{diagram:()=>m});var r=a(47348),i=a(85849),s=a(31808),o=a(80074),n=a(51595),l=a(96961),c=o.UI.packet,d=class{constructor(){this.packet=[],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,n.K2)(this,"PacketDB")}getConfig(){const t=(0,s.$t)({...c,...(0,o.zj)().pac [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/6282.330a9091.js b/zh-cn/assets/js/6282.330a9091.js
new file mode 100644
index 00000000..f9b7fcbc
--- /dev/null
+++ b/zh-cn/assets/js/6282.330a9091.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6282],{6282:(t,e,n)=>{n.d(e,{diagram:()=>X});var i=n(23369),s=n(7055),r=n(80074),a=n(51595),o=n(3170),l=function(){var t=(0,a.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,18],n=[1,9],i=[1,10],s=[1,11],r=[1,12],o=[1,13],l=[1,14],c={trace:(0,a.K2)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,stateme [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/638.7a92d25d.js b/zh-cn/assets/js/638.7a92d25d.js
new file mode 100644
index 00000000..eef5b396
--- /dev/null
+++ b/zh-cn/assets/js/638.7a92d25d.js
@@ -0,0 +1,2 @@
+/*! For license information please see 638.7a92d25d.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. [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/638.7a92d25d.js.LICENSE.txt b/zh-cn/assets/js/638.7a92d25d.js.LICENSE.txt
new file mode 100644
index 00000000..a9f6f124
--- /dev/null
+++ b/zh-cn/assets/js/638.7a92d25d.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/6404.7f9e2324.js b/zh-cn/assets/js/6404.7f9e2324.js
new file mode 100644
index 00000000..0c7712fe
--- /dev/null
+++ b/zh-cn/assets/js/6404.7f9e2324.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6404],{96404:(e,r,s)=>{s.d(r,{diagram:()=>i});var a=s(89076),t=(s(7055),s(58943),s(95458),s(86659),s(39142),s(29124),s(97440),s(85611),s(63637),s(43379),s(31808),s(80074),s(51595)),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/654.5fa7080d.js b/zh-cn/assets/js/654.5fa7080d.js
new file mode 100644
index 00000000..c994f09a
--- /dev/null
+++ b/zh-cn/assets/js/654.5fa7080d.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/6875c492.88d2409f.js b/zh-cn/assets/js/6875c492.88d2409f.js
new file mode 100644
index 00000000..1b967754
--- /dev/null
+++ b/zh-cn/assets/js/6875c492.88d2409f.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4813],{6133:(e,t,n)=>{n.d(t,{ZD:()=>r,uz:()=>l});n(96363);var s=n(12417),a=n(13281);n(47259);function i(){const{selectMessage:e}=(0,a.W)();return t=>e(t,(0,s.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/6961.36d9d743.js b/zh-cn/assets/js/6961.36d9d743.js
new file mode 100644
index 00000000..d6466324
--- /dev/null
+++ b/zh-cn/assets/js/6961.36d9d743.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},3602:(e,t,n)=>{n.d(t,{A:()=>u});var r=n(76095),i=n(42849),s=n(22859);const a=function(e){return funct [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/6c661db7.91ea0c73.js b/zh-cn/assets/js/6c661db7.91ea0c73.js
new file mode 100644
index 00000000..7695caab
--- /dev/null
+++ b/zh-cn/assets/js/6c661db7.91ea0c73.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[144],{29087:(e,n,l)=>{l.d(n,{R:()=>d,x:()=>c});var s=l(96363);const i={},r=s.createContext(i);function d(e){const n=s.useContext(r);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(i):e.components||i:d(e.components),s.createElement(r.Provider,{value:n},e.children)}},92142:(e, [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/6e79d794.47441941.js b/zh-cn/assets/js/6e79d794.47441941.js
new file mode 100644
index 00000000..873c6aa4
--- /dev/null
+++ b/zh-cn/assets/js/6e79d794.47441941.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6156],{29087:(e,n,i)=>{i.d(n,{R:()=>o,x:()=>r});var t=i(96363);const c={},s=t.createContext(c);function o(e){const n=t.useContext(s);return t.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(c):e.components||c:o(e.components),t.createElement(s.Provider,{value:n},e.children)}},39928:(e [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/6f28ad3d.37513091.js b/zh-cn/assets/js/6f28ad3d.37513091.js
new file mode 100644
index 00000000..95a5f6ce
--- /dev/null
+++ b/zh-cn/assets/js/6f28ad3d.37513091.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[407],{29087:(e,t,n)=>{n.d(t,{R:()=>a,x:()=>h});var s=n(96363);const d={},l=s.createContext(d);function a(e){const t=s.useContext(l);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function h(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:a(e.components),s.createElement(l.Provider,{value:t},e.children)}},94128:(e, [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/7039.6dc83b31.js b/zh-cn/assets/js/7039.6dc83b31.js
new file mode 100644
index 00000000..1f8ef19e
--- /dev/null
+++ b/zh-cn/assets/js/7039.6dc83b31.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.d482fa9b.js b/zh-cn/assets/js/70652f5d.d482fa9b.js
new file mode 100644
index 00000000..27299d3c
--- /dev/null
+++ b/zh-cn/assets/js/70652f5d.d482fa9b.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8226],{29087:(n,e,i)=>{i.d(e,{R:()=>t,x:()=>r});var s=i(96363);const l={},c=s.createContext(l);function t(n){const e=s.useContext(c);return s.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),s.createElement(c.Provider,{value:e},n.children)}},98912:(n [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/7265.666cea15.js b/zh-cn/assets/js/7265.666cea15.js
new file mode 100644
index 00000000..d7b87b0e
--- /dev/null
+++ b/zh-cn/assets/js/7265.666cea15.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7265],{89646:(e,a,r)=>{r.d(a,{diagram:()=>p});var t=r(24285),s=r(47348),n=r(80074),i=r(51595),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.app [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/7386.4982069e.js b/zh-cn/assets/js/7386.4982069e.js
new file mode 100644
index 00000000..2f69a353
--- /dev/null
+++ b/zh-cn/assets/js/7386.4982069e.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7386],{58943:(t,e,s)=>{s.d(e,{A:()=>r});var i=s(51595),n=s(3170),r=(0,i.K2)((t,e)=>{let s;"sandbox"===e&&(s=(0,n.Ltv)("#i"+t));return("sandbox"===e?(0,n.Ltv)(s.nodes()[0].contentDocument.body):(0,n.Ltv)("body")).select(`[id="${t}"]`)},"getDiagramElement")},77386:(t,e,s)=>{s.d(e,{Zk:()=>h,q7:()=>B,tM:()=>ot,u4:()=>rt});var i=s(58943),n=s(95458),r=s(86659),o=s(31808),a=s(80074),c=s(51595),l=function(){v [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/7575123d.be2b14e8.js b/zh-cn/assets/js/7575123d.be2b14e8.js
new file mode 100644
index 00000000..8adcaaec
--- /dev/null
+++ b/zh-cn/assets/js/7575123d.be2b14e8.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7487],{5671:(e,n,i)=>{i.d(n,{A:()=>t});const t=i.p+"assets/images/excludeOrIncludeWrite-bea7b205e7748fd8b55311383c344df1.png"},13778:(e,n,i)=>{i.d(n,{A:()=>t});const t=i.p+"assets/images/indexWrite-bb3b8cbf0c5a06371b7fa9917fb3cd33.png"},29087:(e,n,i)=>{i.d(n,{R:()=>r,x:()=>d});var t=i(96363);const l={},s=t.createContext(l);function r(e){const n=t.useContext(s);return t.useMemo(function(){return"functi [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/76428bda.ee481806.js b/zh-cn/assets/js/76428bda.ee481806.js
new file mode 100644
index 00000000..b448bbcf
--- /dev/null
+++ b/zh-cn/assets/js/76428bda.ee481806.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2993],{61488: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/20 [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/76ebeaa2.5134a0f6.js b/zh-cn/assets/js/76ebeaa2.5134a0f6.js
new file mode 100644
index 00000000..9bfe90e2
--- /dev/null
+++ b/zh-cn/assets/js/76ebeaa2.5134a0f6.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[4974],{29087:(e,t,n)=>{n.d(t,{R:()=>s,x:()=>c});var i=n(96363);const a={},r=i.createContext(a);function s(e){const t=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),i.createElement(r.Provider,{value:t},e.children)}},49861:(e [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/7bacda60.ec71ab47.js b/zh-cn/assets/js/7bacda60.ec71ab47.js
new file mode 100644
index 00000000..82d74681
--- /dev/null
+++ b/zh-cn/assets/js/7bacda60.ec71ab47.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6815],{29087:(e,t,n)=>{n.d(t,{R:()=>r,x:()=>l});var a=n(96363);const i={},s=a.createContext(i);function r(e){const t=a.useContext(s);return a.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),a.createElement(s.Provider,{value:t},e.children)}},62110:(e [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/7c8dfedd.bdd5e146.js b/zh-cn/assets/js/7c8dfedd.bdd5e146.js
new file mode 100644
index 00000000..6c9b6cd9
--- /dev/null
+++ b/zh-cn/assets/js/7c8dfedd.bdd5e146.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7418],{29087:(e,n,t)=>{t.d(n,{R:()=>r,x:()=>i});var d=t(96363);const s={},c=d.createContext(s);function r(e){const n=d.useContext(c);return d.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(s):e.components||s:r(e.components),d.createElement(c.Provider,{value:n},e.children)}},75405:(e [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/7ed646c5.a50770b0.js b/zh-cn/assets/js/7ed646c5.a50770b0.js
new file mode 100644
index 00000000..00ac43a7
--- /dev/null
+++ b/zh-cn/assets/js/7ed646c5.a50770b0.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3059],{29087:(e,n,t)=>{t.d(n,{R:()=>r,x:()=>s});var i=t(96363);const l={},a=i.createContext(l);function r(e){const n=i.useContext(a);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(l):e.components||l:r(e.components),i.createElement(a.Provider,{value:n},e.children)}},35345:(e [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/814f3328.c5c64dd3.js b/zh-cn/assets/js/814f3328.c5c64dd3.js
new file mode 100644
index 00000000..e9a88843
--- /dev/null
+++ b/zh-cn/assets/js/814f3328.c5c64dd3.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/8169.088bae5d.js b/zh-cn/assets/js/8169.088bae5d.js
new file mode 100644
index 00000000..bf0cd720
--- /dev/null
+++ b/zh-cn/assets/js/8169.088bae5d.js
@@ -0,0 +1 @@
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8169],{23798:function(t){t.exports=function(){"use strict";var t="day";return function(e,n,i){var s=function(e){return e.add(4-e.isoWeekday(),t)},r=n.prototype;r.isoWeekYear=function(){return s(this).year()},r.isoWeek=function(e){if(!this.$utils().u(e))return this.add(7*(e-this.isoWeek()),t);var n,r,a,o=s(this),c=(n=this.isoWeekYear(),a=4-(r=(this.$u?i.utc:i)().year(n).startOf("year")).isoWeekday(),r.isoWeekday()> [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/8215.5c5f0d0f.js b/zh-cn/assets/js/8215.5c5f0d0f.js
new file mode 100644
index 00000000..4532656c
--- /dev/null
+++ b/zh-cn/assets/js/8215.5c5f0d0f.js
@@ -0,0 +1 @@
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8215],{18215:(t,e,i)=>{"use strict";i.d(e,{diagram:()=>Z});var n=i(47348),r=i(43379),o=i(85849),s=i(31808),a=i(80074),h=i(51595),l=i(96961),d=i(70638),c=i(60023),g=i(3170),u={L:"left",R:"right",T:"top",B:"bottom"},f={L:(0,h.K2)(t=>`${t},${t/2} 0,${t} 0,0`,"L"),R:(0,h.K2)(t=>`0,${t/2} ${t},0 ${t},${t}`,"R"),T:(0,h.K2)(t=>`0,0 ${t},0 ${t/2},${t}`,"T"),B:(0,h.K2)(t=>`${t/2},0 ${t},${t} 0,${t}`,"B")},p={L:(0,h.K2)((t, [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/8454.7630fef1.js b/zh-cn/assets/js/8454.7630fef1.js
new file mode 100644
index 00000000..ec950f12
--- /dev/null
+++ b/zh-cn/assets/js/8454.7630fef1.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8454],{7055:(t,e,r)=>{r.d(e,{o:()=>a});var a=(0,r(51595).K2)(()=>"\n /* Font Awesome icon styling - consolidated */\n .label-icon {\n display: inline-block;\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n }\n \n .node .label-icon path {\n fill: currentColor;\n stroke: revert;\n stroke-width: revert;\n }\n","getIconStyles")},19641:(t,e,r)=>{r.d(e,{T:()=>f}); [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/8868.ed06f2e7.js b/zh-cn/assets/js/8868.ed06f2e7.js
new file mode 100644
index 00000000..2e4b9c48
--- /dev/null
+++ b/zh-cn/assets/js/8868.ed06f2e7.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8868],{98868:(t,e,a)=>{a.d(e,{diagram:()=>R});var i,n=a(77386),r=(a(58943),a(95458),a(86659),a(39142),a(29124),a(97440),a(85611),a(63637),a(43379),a(31808)),d=a(80074),s=a(51595),o=a(3170),g=a(74326),h=a(57420),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 [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/8907.1caf6efa.js b/zh-cn/assets/js/8907.1caf6efa.js
new file mode 100644
index 00000000..4851c1c8
--- /dev/null
+++ b/zh-cn/assets/js/8907.1caf6efa.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/8d4cdedc.d41d40a7.js b/zh-cn/assets/js/8d4cdedc.d41d40a7.js
new file mode 100644
index 00000000..e9b24ef2
--- /dev/null
+++ b/zh-cn/assets/js/8d4cdedc.d41d40a7.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6442],{29087:(e,n,t)=>{t.d(n,{R:()=>r,x:()=>s});var o=t(96363);const i={},c=o.createContext(i);function r(e){const n=o.useContext(c);return o.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(i):e.components||i:r(e.components),o.createElement(c.Provider,{value:n},e.children)}},45823:(e [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/9056.30efb9e2.js b/zh-cn/assets/js/9056.30efb9e2.js
new file mode 100644
index 00000000..0d2916ba
--- /dev/null
+++ b/zh-cn/assets/js/9056.30efb9e2.js
@@ -0,0 +1 @@
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9056],{99056:()=>{}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/9076.f41581ef.js b/zh-cn/assets/js/9076.f41581ef.js
new file mode 100644
index 00000000..6dd22acc
--- /dev/null
+++ b/zh-cn/assets/js/9076.f41581ef.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9076],{7055:(t,e,s)=>{s.d(e,{o:()=>i});var i=(0,s(51595).K2)(()=>"\n /* Font Awesome icon styling - consolidated */\n .label-icon {\n display: inline-block;\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n }\n \n .node .label-icon path {\n fill: currentColor;\n stroke: revert;\n stroke-width: revert;\n }\n","getIconStyles")},58943:(t,e,s)=>{s.d(e,{A:()=>a}); [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/9082.6767289e.js b/zh-cn/assets/js/9082.6767289e.js
new file mode 100644
index 00000000..b7155aca
--- /dev/null
+++ b/zh-cn/assets/js/9082.6767289e.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9082],{13281:(e,t,s)=>{s.d(t,{W:()=>c});var a=s(96363),n=s(76985);const i=["zero","one","two","few","many","other"];function r(e){return i.filter(t=>e.includes(t))}const l={locale:"en",pluralForms:r(["one","other"]),select:e=>1===e?"one":"other"};function o(){const{i18n:{currentLocale:e}}=(0,n.A)();return(0,a.useMemo)(()=>{try{return function(e){const t=new Intl.PluralRules(e);return{locale:e,pluralFo [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/91fb5ccc.bb25cf41.js b/zh-cn/assets/js/91fb5ccc.bb25cf41.js
new file mode 100644
index 00000000..facdeae7
--- /dev/null
+++ b/zh-cn/assets/js/91fb5ccc.bb25cf41.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7683],{29087:(e,n,c)=>{c.d(n,{R:()=>l,x:()=>s});var a=c(96363);const t={},r=a.createContext(t);function l(e){const n=a.useContext(r);return a.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:l(e.components),a.createElement(r.Provider,{value:n},e.children)}},87638:(e [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/92380f4a.00fa75e9.js b/zh-cn/assets/js/92380f4a.00fa75e9.js
new file mode 100644
index 00000000..d38965d8
--- /dev/null
+++ b/zh-cn/assets/js/92380f4a.00fa75e9.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6016],{29087:(e,t,n)=>{n.d(t,{R:()=>c,x:()=>o});var r=n(96363);const s={},i=r.createContext(s);function c(e){const t=r.useContext(i);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?e.components(s):e.components||s:c(e.components),r.createElement(i.Provider,{value:t},e.children)}},33451:(e [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/9294.b37daa3d.js b/zh-cn/assets/js/9294.b37daa3d.js
new file mode 100644
index 00000000..8259e6ad
--- /dev/null
+++ b/zh-cn/assets/js/9294.b37daa3d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9294],{39294:(e,n,t)=>{t.r(n),t.d(n,{render:()=>k});var r=t(39142),i=(t(29124),t(97440)),a=t(85611),o=(t(63637),t(43379),t(31808),t(80074)),d=t(51595),s=t(74326),c=t(60707),g=t(64350),l=t(72185);t(19641);function f(e){var n={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:h(e),edges:p(e)};return c.A(e.graph())||(n.value=g.A(e.graph())),n}function h(e){return [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/9312.6c0c9b99.js b/zh-cn/assets/js/9312.6c0c9b99.js
new file mode 100644
index 00000000..bfe9f6d5
--- /dev/null
+++ b/zh-cn/assets/js/9312.6c0c9b99.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9312],{39312:(e,r,t)=>{t.d(r,{diagram:()=>i});var a=t(77386),s=(t(58943),t(95458),t(86659),t(39142),t(29124),t(97440),t(85611),t(63637),t(43379),t(31808),t(80074),t(51595)),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/9629.35cf42ec.js b/zh-cn/assets/js/9629.35cf42ec.js
new file mode 100644
index 00000000..d144b242
--- /dev/null
+++ b/zh-cn/assets/js/9629.35cf42ec.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9629],{69629:(t,i,e)=>{e.d(i,{diagram:()=>it});var s=e(47348),a=e(43379),n=e(31808),h=e(80074),o=e(51595),r=e(3170),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,3 [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/967.845daf63.js b/zh-cn/assets/js/967.845daf63.js
new file mode 100644
index 00000000..731825b5
--- /dev/null
+++ b/zh-cn/assets/js/967.845daf63.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/981ce938.5321531a.js b/zh-cn/assets/js/981ce938.5321531a.js
new file mode 100644
index 00000000..7176b599
--- /dev/null
+++ b/zh-cn/assets/js/981ce938.5321531a.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[679],{66713: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/98d765ba.f4ab26c0.js b/zh-cn/assets/js/98d765ba.f4ab26c0.js
new file mode 100644
index 00000000..b1fa2985
--- /dev/null
+++ b/zh-cn/assets/js/98d765ba.f4ab26c0.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[6011],{20388: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":5,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/9951.39371e10.js b/zh-cn/assets/js/9951.39371e10.js
new file mode 100644
index 00000000..1de3efc5
--- /dev/null
+++ b/zh-cn/assets/js/9951.39371e10.js
@@ -0,0 +1,2 @@
+/*! For license information please see 9951.39371e10.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})\x [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/9951.39371e10.js.LICENSE.txt b/zh-cn/assets/js/9951.39371e10.js.LICENSE.txt
new file mode 100644
index 00000000..4f7ccd8a
--- /dev/null
+++ b/zh-cn/assets/js/9951.39371e10.js.LICENSE.txt
@@ -0,0 +1 @@
+/*! https://mths.be/cssesc v3.0.0 by @mathias */
diff --git a/zh-cn/assets/js/9a0089cf.4cfa8a22.js b/zh-cn/assets/js/9a0089cf.4cfa8a22.js
new file mode 100644
index 00000000..6597aa66
--- /dev/null
+++ b/zh-cn/assets/js/9a0089cf.4cfa8a22.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7795],{29087:(e,n,d)=>{d.d(n,{R:()=>l,x:()=>i});var r=d(96363);const t={},s=r.createContext(t);function l(e){const n=r.useContext(s);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(t):e.components||t:l(e.components),r.createElement(s.Provider,{value:n},e.children)}},88182:(e [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/9d584252.c76106ce.js b/zh-cn/assets/js/9d584252.c76106ce.js
new file mode 100644
index 00000000..4c9367fe
--- /dev/null
+++ b/zh-cn/assets/js/9d584252.c76106ce.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2064],{16666:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>h,frontMatter:()=>a,metadata:()=>i,toc:()=>d});const i=JSON.parse('{"id":"write/simple","title":"\u7b80\u5355\u5199\u5165","description":"\u672c\u7ae0\u8282\u4ecb\u7ecd\u5982\u4f55\u4f7f\u7528 FastExcel \u5b8c\u6210\u7b80\u5355 Excel \u5199\u5165","source":"@site/i18n/zh-cn/docusaurus-plugin-content-docs/current/write/sim [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/9e4087bc.b4f6636e.js b/zh-cn/assets/js/9e4087bc.b4f6636e.js
new file mode 100644
index 00000000..a2730e76
--- /dev/null
+++ b/zh-cn/assets/js/9e4087bc.b4f6636e.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2711],{73718:(e,a,r)=>{r.r(a),r.d(a,{default:()=>m});r(96363);var t=r(40221),s=r(12417),n=r(96148),i=r(98978),c=r(74718),l=r(46182),o=r(47259);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.meta [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/a08ce007.8ba68599.js b/zh-cn/assets/js/a08ce007.8ba68599.js
new file mode 100644
index 00000000..551fc071
--- /dev/null
+++ b/zh-cn/assets/js/a08ce007.8ba68599.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7439],{27032:(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.","sour [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/a1225c8b.a9c4c2ec.js b/zh-cn/assets/js/a1225c8b.a9c4c2ec.js
new file mode 100644
index 00000000..269af5c8
--- /dev/null
+++ b/zh-cn/assets/js/a1225c8b.a9c4c2ec.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[511],{29087:(e,n,t)=>{t.d(n,{R:()=>r,x:()=>a});var s=t(96363);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)}},82934:(e, [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/a6aa9e1f.357af94f.js b/zh-cn/assets/js/a6aa9e1f.357af94f.js
new file mode 100644
index 00000000..ce5c40ea
--- /dev/null
+++ b/zh-cn/assets/js/a6aa9e1f.357af94f.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7643],{64253:(e,t,a)=>{a.d(t,{A:()=>i});a(96363);var s=a(98870),n=a(75871),r=a(47259);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))})}},75871:(e,t,a)=>{a.d(t,{A:()=>O});a(96363);var s=a(13526),n=a(98870),r=a(47259);function i({children:e,className:t}){ret [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/a7456010.f2d10e9a.js b/zh-cn/assets/js/a7456010.f2d10e9a.js
new file mode 100644
index 00000000..5fa87290
--- /dev/null
+++ b/zh-cn/assets/js/a7456010.f2d10e9a.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.073f01c3.js b/zh-cn/assets/js/a7bd4aaa.073f01c3.js
new file mode 100644
index 00000000..dce1fbb9
--- /dev/null
+++ b/zh-cn/assets/js/a7bd4aaa.073f01c3.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7098],{63919:(n,e,s)=>{s.r(e),s.d(e,{default:()=>x});s(96363);var r=s(96148),o=s(84393),t=s(18605),i=s(42073),c=s(716),a=s(47259);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, [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/a94703ab.a09ddd7e.js b/zh-cn/assets/js/a94703ab.a09ddd7e.js
new file mode 100644
index 00000000..dedebf1b
--- /dev/null
+++ b/zh-cn/assets/js/a94703ab.a09ddd7e.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[9048],{51916:(e,t,n)=>{n.r(t),n.d(t,{default:()=>ke});var a=n(96363),i=n(13526),o=n(96148),s=n(13743),l=n(38148),r=n(5049),c=n(12417),d=n(26840),u=n(96494);const m={backToTopButton:"backToTopButton_nZ2k",backToTopButtonShow:"backToTopButtonShow_a2Tg"};var b=n(47259);function h(){const{shown:e,scrollToTop:t}=function({threshold:e}){const[t,n]=(0,a.useState)(!1),i=(0,a.useRef)(!1),{startScroll:o,cancelS [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/aba21aa0.f047a422.js b/zh-cn/assets/js/aba21aa0.f047a422.js
new file mode 100644
index 00000000..542a986d
--- /dev/null
+++ b/zh-cn/assets/js/aba21aa0.f047a422.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.ab8318a6.js b/zh-cn/assets/js/acecf23e.ab8318a6.js
new file mode 100644
index 00000000..89ef286b
--- /dev/null
+++ b/zh-cn/assets/js/acecf23e.ab8318a6.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/aec1ea7d.1c0ba9a8.js b/zh-cn/assets/js/aec1ea7d.1c0ba9a8.js
new file mode 100644
index 00000000..911ee773
--- /dev/null
+++ b/zh-cn/assets/js/aec1ea7d.1c0ba9a8.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[710],{37569:e=>{e.exports=JSON.parse('{"metadata":{"permalink":"/zh-cn/blog","page":1,"postsPerPage":5,"totalPages":1,"totalCount":1,"blogDescription":"\u535a\u5ba2","blogTitle":"\u535a\u5ba2"}}')}}]);
\ No newline at end of file
diff --git a/zh-cn/assets/js/b1c23739.7456b2c8.js b/zh-cn/assets/js/b1c23739.7456b2c8.js
new file mode 100644
index 00000000..93f5f803
--- /dev/null
+++ b/zh-cn/assets/js/b1c23739.7456b2c8.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7197],{29087:(e,n,a)=>{a.d(n,{R:()=>s,x:()=>l});var d=a(96363);const t={},i=d.createContext(t);function s(e){const n=d.useContext(i);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:s(e.components),d.createElement(i.Provider,{value:n},e.children)}},53559:(e [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/b76e6c4a.ec4f18a4.js b/zh-cn/assets/js/b76e6c4a.ec4f18a4.js
new file mode 100644
index 00000000..fd233fcf
--- /dev/null
+++ b/zh-cn/assets/js/b76e6c4a.ec4f18a4.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8461],{29087:(e,n,t)=>{t.d(n,{R:()=>d,x:()=>c});var s=t(96363);const a={},r=s.createContext(a);function d(e){const n=s.useContext(r);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(a):e.components||a:d(e.components),s.createElement(r.Provider,{value:n},e.children)}},74941:(e [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/b8ed1609.64759653.js b/zh-cn/assets/js/b8ed1609.64759653.js
new file mode 100644
index 00000000..1ebbd2b8
--- /dev/null
+++ b/zh-cn/assets/js/b8ed1609.64759653.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3746],{2945:(A,g,C)=>{C.d(g,{A:()=>e});const e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfcAAACICAYAAAD6dqKHAAAABWZkRUNSJJPjAOWrYpkAACNGSURBVHgB5cRjtCVn2oDh+3mravPY57RtxLYzM0kGydi2bdu2EYxi22bbPH2szap6n2/Vj7PWXr06mWimZ773x3Xxohe/TF3mMpf9u7zoJS9Tl7nMVS96ycvVZf+tDIDLXOYyl7nMZS5zkQFwmctc9u+AAIDLXOYiEABc9t/K2LDMf9Lpp5yIDcu47ImcfsqJ2LCMy/6TTj/lRGxY5tlgq2Vc9v/R6SefiK2WcdkTsdUS/ymnn3wCtlrCZU/k9JNPwFZLTD [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/c1ff7703.d8d22201.js b/zh-cn/assets/js/c1ff7703.d8d22201.js
new file mode 100644
index 00000000..fa279e83
--- /dev/null
+++ b/zh-cn/assets/js/c1ff7703.d8d22201.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1918],{4666:(e,n,c)=>{c.r(n),c.d(n,{assets:()=>a,contentTitle:()=>s,default:()=>p,frontMatter:()=>r,metadata:()=>i,toc:()=>d});const i=JSON.parse('{"id":"pmc/pmc-onboarding","title":"PPMC \u6210\u5458\u987b\u77e5","description":"\u672c\u6587\u4ef6\u4e3b\u8981\u4f5c\u4e3a Apache Fesod (Incubating)\u9879\u76ee\u65b0 PPMC \u6210\u5458\u7684\u5165\u95e8\u6307\u5357\u3002","source":"@site/i18n/zh-cn/docusa [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/c4f5d8e4.0a412599.js b/zh-cn/assets/js/c4f5d8e4.0a412599.js
new file mode 100644
index 00000000..74e740f8
--- /dev/null
+++ b/zh-cn/assets/js/c4f5d8e4.0a412599.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,b,u,v,R,P,Z,A,j=t(96363);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/ [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/c6ce0837.e708f7cc.js b/zh-cn/assets/js/c6ce0837.e708f7cc.js
new file mode 100644
index 00000000..f7b552eb
--- /dev/null
+++ b/zh-cn/assets/js/c6ce0837.e708f7cc.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2382],{25540:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>c,default:()=>d,frontMatter:()=>o,metadata:()=>r,toc:()=>l});const r=JSON.parse('{"id":"write/spring","title":"\u4e0e Spring \u96c6\u6210","description":"\u672c\u7ae0\u8282\u4ecb\u7ecd\u5982\u4f55\u5728 Spring \u6846\u67b6\u4e2d\u96c6\u6210\u548c\u4f7f\u7528 FastExcel \u6765\u751f\u6210 Excel \u6587\u4ef6\u3002","source":"@site/i18n/zh [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/c96ca1a6.5b4d40f3.js b/zh-cn/assets/js/c96ca1a6.5b4d40f3.js
new file mode 100644
index 00000000..64d4ee28
--- /dev/null
+++ b/zh-cn/assets/js/c96ca1a6.5b4d40f3.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[5061],{29087:(e,t,i)=>{i.d(t,{R:()=>s,x:()=>a});var n=i(96363);const r={},l=n.createContext(r);function s(e){const t=n.useContext(l);return n.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:s(e.components),n.createElement(l.Provider,{value:t},e.children)}},48890:(e [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/ccc49370.858ff68e.js b/zh-cn/assets/js/ccc49370.858ff68e.js
new file mode 100644
index 00000000..99bc4ab2
--- /dev/null
+++ b/zh-cn/assets/js/ccc49370.858ff68e.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3249],{4342:(e,t,n)=>{n.d(t,{A:()=>c});n(96363);var a=n(13526),s=n(17629);const i={tableOfContents:"tableOfContents_EWY5",docItemContainer:"docItemContainer_AUpp"};var r=n(47259);const o="table-of-contents__link toc-highlight",l="table-of-contents__link--active";function c({className:e,...t}){return(0,r.jsx)("div",{className:(0,a.A)(i.tableOfContents,"thin-scrollbar",e),children:(0,r.jsx)(s.A,{...t,li [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/d5087300.f7040810.js b/zh-cn/assets/js/d5087300.f7040810.js
new file mode 100644
index 00000000..66ca2c42
--- /dev/null
+++ b/zh-cn/assets/js/d5087300.f7040810.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2516],{20867:(e,n,t)=>{t.d(n,{A:()=>l});const l=t.p+"assets/images/handlerStyleWrite-082ae37a51bd9252f6900ab754387401.png"},22404:(e,n,t)=>{t.d(n,{A:()=>l});const l=t.p+"assets/images/widthAndHeightWrite-77c049fb68d1ac806c1ba21e82c45f45.png"},29087:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>s});var l=t(96363);const i={},r=l.createContext(i);function o(e){const n=l.useContext(r);return l.useMemo(function(){return" [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/d58f16ca.bc513d74.js b/zh-cn/assets/js/d58f16ca.bc513d74.js
new file mode 100644
index 00000000..14f1caee
--- /dev/null
+++ b/zh-cn/assets/js/d58f16ca.bc513d74.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3861],{29087:(e,n,c)=>{c.d(n,{R:()=>r,x:()=>o});var t=c(96363);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)}},62010:(e [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/ddc7dbcd.cc48f272.js b/zh-cn/assets/js/ddc7dbcd.cc48f272.js
new file mode 100644
index 00000000..3c13e1d1
--- /dev/null
+++ b/zh-cn/assets/js/ddc7dbcd.cc48f272.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[2970],{18171: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","hre [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/e0719818.011f203c.js b/zh-cn/assets/js/e0719818.011f203c.js
new file mode 100644
index 00000000..e4dadfb3
--- /dev/null
+++ b/zh-cn/assets/js/e0719818.011f203c.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.c3891d9b.js b/zh-cn/assets/js/e3ca1761.c3891d9b.js
new file mode 100644
index 00000000..c5a55609
--- /dev/null
+++ b/zh-cn/assets/js/e3ca1761.c3891d9b.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[3100],{17760:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>m,frontMatter:()=>i,metadata:()=>r,toc:()=>u});const r=JSON.parse('{"id":"release/release-version","title":"\u5982\u4f55\u53d1\u5e03\u7248\u672c","description":"\u672c\u6559\u7a0b\u8be6\u7ec6\u63cf\u8ff0\u4e86\u5982\u4f55\u53d1\u5e03 Apache Fesod (Incubating) \u7248\u672c\uff0c\u4ee52.0.0\u7248\u672c\u7684\u53d1\u5e03\u4e [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/e7985601.895bcfb2.js b/zh-cn/assets/js/e7985601.895bcfb2.js
new file mode 100644
index 00000000..95fe6e15
--- /dev/null
+++ b/zh-cn/assets/js/e7985601.895bcfb2.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[764],{29087:(n,e,i)=>{i.d(e,{R:()=>t,x:()=>r});var c=i(96363);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)}},70120:(n, [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/e946020f.2b6a6f9d.js b/zh-cn/assets/js/e946020f.2b6a6f9d.js
new file mode 100644
index 00000000..f30a09db
--- /dev/null
+++ b/zh-cn/assets/js/e946020f.2b6a6f9d.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[1271],{7715:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>d,contentTitle:()=>s,default:()=>h,frontMatter:()=>i,metadata:()=>t,toc:()=>o});const t=JSON.parse('{"id":"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/read/pojo.md" [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/f7ff6690.05c4575a.js b/zh-cn/assets/js/f7ff6690.05c4575a.js
new file mode 100644
index 00000000..0907d184
--- /dev/null
+++ b/zh-cn/assets/js/f7ff6690.05c4575a.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7065],{29087:(e,n,i)=>{i.d(n,{R:()=>r,x:()=>t});var s=i(96363);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)}},79560:(e [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/f98e3ca9.b1d588d6.js b/zh-cn/assets/js/f98e3ca9.b1d588d6.js
new file mode 100644
index 00000000..56c0dd87
--- /dev/null
+++ b/zh-cn/assets/js/f98e3ca9.b1d588d6.js
@@ -0,0 +1 @@
+"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[7381],{29087:(e,t,n)=>{n.d(t,{R:()=>a,x:()=>r});var o=n(96363);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)}},78208:e= [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/main.f32a72ca.js b/zh-cn/assets/js/main.f32a72ca.js
new file mode 100644
index 00000000..af432535
--- /dev/null
+++ b/zh-cn/assets/js/main.f32a72ca.js
@@ -0,0 +1,2 @@
+/*! For license information please see main.f32a72ca.js.LICENSE.txt */
+(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[8792],{273:(e,t,n)=>{"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function a(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.assign||function [...]
\ No newline at end of file
diff --git a/zh-cn/assets/js/main.f32a72ca.js.LICENSE.txt b/zh-cn/assets/js/main.f32a72ca.js.LICENSE.txt
new file mode 100644
index 00000000..f4d2c339
--- /dev/null
+++ b/zh-cn/assets/js/main.f32a72ca.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.9066dff5.js b/zh-cn/assets/js/runtime~main.9066dff5.js
new file mode 100644
index 00000000..381c8c6b
--- /dev/null
+++ b/zh-cn/assets/js/runtime~main.9066dff5.js
@@ -0,0 +1 @@
+(()=>{"use strict";var e,a,c,d,f,b={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var c=t[e]={exports:{}};return b[e].call(c.exports,c,c.exports,r),c.exports}r.m=b,e=[],r.O=(a,c,d,f)=>{if(!c){var b=1/0;for(i=0;i<e.length;i++){for(var[c,d,f]=e[i],t=!0,o=0;o<c.length;o++)(!1&f||b>=f)&&Object.keys(r.O).every(e=>r.O[e](c[o]))?c.splice(o--,1):(t=!1,f<b&&(b=f));if(t){e.splice(i--,1);var n=d();void 0!==n&&(a=n)}}return a}f=f||0;for(var i=e.length;i>0&&e[i-1][2]>f;i--)e[i]=e[i-1 [...]
\ No newline at end of file
diff --git a/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..3b49ae21
--- /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.1">
+<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.9066dff5.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.f32a72ca.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..c2f45b8b
--- /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.1">
+<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.9066dff5.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.f32a72ca.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..7881c9d3
--- /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">Fesod</a> 于2025年09月17日顺利通过投票,正式成为了全球最大的开源基金会 <a href="https://www.apache.org/" target="_blank" rel="noopener noreferrer">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..f434b3ad
--- /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.1">
+<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.9066dff5.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.f32a72ca.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..bf6911a2
--- /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\">Fesod</a> 于2025年09月17日顺利通过投票,正式成为了全球最大的开源基金会 <a href=\"https://www.apache.org/\" target=\"_blank\" rel=\"noopener noreferrer\">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..ec7f4445
--- /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.1">
+<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/"><m [...]
+<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.9066dff5.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.f32a72ca.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..460ef5d2
--- /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">Fesod</a> 于2025年09月17日顺利通过投票,正式成为了全球最大的开源基金会 <a href="https://www.apache.org/" target="_blank" rel="noopener noreferrer">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..d20f903f
--- /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.1">
+<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.9066dff5.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.f32a72ca.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..7eda9549
--- /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.1">
+<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.9066dff5.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.f32a72ca.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/committer/become-committer/index.html b/zh-cn/community/committer/become-committer/index.html
new file mode 100644
index 00000000..645fe5ee
--- /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.1">
+<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.9066dff5.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.f32a72ca.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><strong>(Co)mmunity</strong> - 你可以通过我们的邮件列表、问题追踪器、讨论页面与社区成员互动,并分享愿景和知识。</li>
+<li><strong>(P)roject</strong> - 需要明确的愿景和共识。</li>
+<li><strong>(Do)cumentation</strong> - 没有它,内容只会停留在作者的头脑中。</li>
+<li><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 anchorWithStickyNavbar_YIWN" 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 anchorWithStickyNavbar_YIWN" id="持续的贡献">持续的贡献<a href="#持续的贡献" class="hash-link" aria-label="持续的贡献的直接链接" title="持续的贡献的直接链接" translate="no"></a></h3>
+<p>Committer 的候选人应该持续参与并为 Apache Fesod (Incubating) 做出大量的贡献(例如修复漏洞、添加新功能、编写文档、维护问题板、代码审查或回答社区问题)。</p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" id="贡献的质量">贡献的质量<a href="#贡献的质量" class="hash-link" aria-label="贡献的质量的直接链接" title="贡献的质量的直接链接" translate="no"></a></h3>
+<ul>
+<li>对项目有深入的理解。</li>
+<li>经过充分测试、良好设计、遵循 Apache Fesod (Incubating) 的编码标准,及简单的修复补丁。</li>
+<li>井井有条的面向用户的详细文档。</li>
+</ul>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" id="社区参与">社区参与<a href="#社区参与" class="hash-link" aria-label="社区参与的直接链接" title="社区参与的直接链接" translate="no"></a></h3>
+<ul>
+<li>在开发邮件列表上保持积极、礼貌与尊重,并帮助指导新的贡献者和用户。</li>
+<li>在项目维护的问题跟踪器上积极、有礼貌与尊重。</li>
+<li>对于拉取请求审查保持积极、有礼貌与尊重。</li>
+<li>即使存在分歧,也要以专业和外交的态度参与技术路线图的讨论。</li>
+<li>通过撰写文章或举办活动来推广项目。</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" id="日常工作">日常工作<a href="#日常工作" class="hash-link" aria-label="日常工作的直接链接" title="日常工作的直接链接" translate="no"></a></h2>
+<ul>
+<li>查看社区待处理的 Pull Request 和 Issue 列表,负责问题的处理
+<ul>
+<li>包括标记、回复、关闭 issue 等;</li>
+<li>将 issue 分配至熟悉该模块的贡献者;</li>
+</ul>
+</li>
+<li>分配 issue 后,需要进行如下判断:
+<ul>
+<li>判断是否是长期 issue,如是,则标记为 <code>pending</code>;</li>
+<li>判断 issue 类型,如:bug,enhancement,discussion 等;</li>
+<li>标记 Milestone。</li>
+</ul>
+</li>
+<li>Committer 提交的 PR,需要根据 PR 类型和当前发布的周期标注 Label 和 Milestone。</li>
+<li>Committer 审核通过 PR 时,可以进行 “squash and merge” 的操作,如果有问题可以加上 change request 或者 @ 相关人员协助处理。</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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">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"><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 noreferrer" [...]
+</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..bb1b76bb
--- /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.1">
+<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.9066dff5.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.f32a72ca.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_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-text codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token plain">Hi, i accept. Thanks for invitaion.</span><br></span></code></pre></div></div>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" id="提交-cla">提交 CLA<a href="#提交-cla" class="hash-link" aria-label="提交 CLA的直接链接" title="提交 CLA的直接链接" translate="no"></a></h2>
+<p>要求所有贡献者签署一份贡献者许可协议(CLA)。处理步骤参考 <a href="/zh-cn/community/committer/icla/">签署 ICLA 指南</a></p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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">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_ujsZ"></p>
+<p>点击“Send Email”后,将出现提示信息,表明邮件已成功发送。随后请查收您的邮箱,并点击邮件中提供的链接重置密码。</p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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_ujsZ"></p>
+<ol>
+<li>访问 <a href="https://gitbox.apache.org/boxer/" target="_blank" rel="noopener noreferrer">ASF Boxer</a>,输入您的 Apache ID 和密码。</li>
+<li>点击“Link GitHub username to ASF id”,并按照提示将您的 ASF 账户与 GitHub 绑定。</li>
+<li>查收标题为 “[GitHub] @asfgit has invited you to join the @apache organization” 的邮件并接受邀请。</li>
+<li>请稍候片刻,网站将自动刷新。</li>
+<li>(若您尚未在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">操作指南</a>。</li>
+</ol>
+<p>您的 Apache ID 和 GitHub ID 现已同时显示在 <a href="https://gitbox.apache.org/boxer/" target="_blank" rel="noopener noreferrer">ASF Boxer</a> 上。恭喜您成功将 ASF 账户与 GitHub 关联!</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" id="邮箱设置">邮箱设置<a href="#邮箱设置" class="hash-link" aria-label="邮箱设置的直接链接" title="邮箱设置的直接链接" translate="no"></a></h2>
+<p>您无法直接使用您的 Apache 电子邮件地址进行工作。必须为此地址设置转发功能。</p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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">Apache账户管理平台</a>更改您的邮件转发地址。</p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" 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">此指南</a>。</p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" id="gmail">Gmail<a href="#gmail" class="hash-link" aria-label="Gmail的直接链接" title="Gmail的直接链接" translate="no"></a></h3>
+<ol>
+<li>打开 Gmail 设置选择 "See all settings".</li>
+<li>进入“账户和导入”选项卡,找到“用这个地址发送邮件”。</li>
+<li>点击“添加其他电子邮件地址”,输入您的姓名和apache.org邮箱地址。</li>
+<li>输入 SMTP 服务器信息:
+<ul>
+<li>SMTP 服务器:mail-relay.apache.org</li>
+<li>端口:587</li>
+<li>用户名:您的 Apache ID</li>
+<li>密码:您的 Apache 密码</li>
+<li>通过 TLS 建立安全连接</li>
+</ul>
+</li>
+<li>点击“添加账户”后,您将收到 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_ujsZ"></p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" id="订阅邮件列表">订阅邮件列表<a href="#订阅邮件列表" class="hash-link" aria-label="订阅邮件列表的直接链接" title="订阅邮件列表的直接链接" translate="no"></a></h3>
+<p>请参考 <a 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 anchorWithStickyNavbar_YIWN" 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">双因素认证指南</a>。</p>
+<p>具体操作请参阅<a href="https://help.github.com/articles/configuring-two-factor-authentication-via-a-totp-mobile-app/" target="_blank" rel="noopener noreferrer">通过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"><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_guvc" aria-hi [...]
+</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..c8c96e12
--- /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.1">
+<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.9066dff5.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.f32a72ca.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 anchorWithStickyNavbar_YIWN" 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">贡献者许可协议</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_ujsZ"></p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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_ujsZ"></p>
+<p>请用英文填写以下栏目。</p>
+<ul>
+<li>
+<p>全名</p>
+<p>请填写真实姓名。名字在前,姓氏在后。每个单词的首字母需大写。</p>
+</li>
+<li>
+<p>公开名称</p>
+<p>公开名称应为真实姓名或笔名,不能和 Apache ID 重复。</p>
+</li>
+<li>
+<p>邮寄地址</p>
+<p>英文地址,且需详细至门牌号。</p>
+</li>
+<li>
+<p>国家</p>
+<p>请填写您的国家。</p>
+</li>
+<li>
+<p>电子邮箱</p>
+<p>请填写个人邮箱地址。</p>
+</li>
+<li>
+<p>(可选)Apache ID</p>
+<p>需选择未被占用的唯一Apache ID。请查阅<a href="https://people.apache.org/committer-index.html" target="_blank" rel="noopener noreferrer">ASF提交者ID查询</a>确认可用ID。</p>
+</li>
+<li>
+<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_ujsZ"></p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" 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_ujsZ"></p>
+<ul>
+<li>
+<p>Please sign:</p>
+<p>官方只接受手写或者 gpg 签名,这里只建议用手写的方式,可以打印文件进行手写签名或者使用电子笔进行签字。</p>
+</li>
+<li>
+<p>Date: 签署日期(yyyy-MM-dd)</p>
+</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" id="发送邮件">发送邮件<a href="#发送邮件" class="hash-link" aria-label="发送邮件的直接链接" title="发送邮件的直接链接" translate="no"></a></h2>
+<p>将签名后的文件拍照或扫描转为 PDF ,并重命名为 "姓名拼音-icla.pdf".</p>
+<p>请将邮件发送至 <code>secretary@apache.org</code>,并同时抄送至 <code>private@fesod.apache.org</code>。请将 PDF 文件作为附件添加至邮件中。邮件正文内容请参照以下格式:</p>
+<div class="language-text codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-text codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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"><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="iconEdit_guv [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/community/contribution/code-review-guide/index.html b/zh-cn/community/contribution/code-review-guide/index.html
new file mode 100644
index 00000000..b0dadbaa
--- /dev/null
+++ b/zh-cn/community/contribution/code-review-guide/index.html
@@ -0,0 +1,54 @@
+<!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-contribution/code-review-guide" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">Code Review 指南 | 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.9066dff5.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.f32a72ca.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>让贡献者获得良好的贡献体验。</li>
+<li>确保代码审查结构化,全面覆盖贡献的核心要点。</li>
+<li>保障项目维持高代码质量标准。</li>
+<li>避免出现贡献者与审阅者耗费大量时间打磨贡献,最终仍遭拒绝的情况。</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" id="code-review-指南">Code Review 指南<a href="#code-review-指南" class="hash-link" aria-label="Code Review 指南的直接链接" title="Code Review 指南的直接链接" translate="no"></a></h2>
+<ul>
+<li>始终保持一个较高的标准来进行审核,这样才能更好地保证整个产品的质量。</li>
+<li>对于接口类的、整体架构方面的修改,需要在社区进行充分地讨论,可以在邮件组发起,也可以在 Issue 上发起。</li>
+<li>测试覆盖。新增的逻辑需要有对应的测试来覆盖。对于已有老代码,不好增加的可以酌情考虑。</li>
+<li>文档。新增加的功能必须要有文档来说明,否则这样的代码不允许合并。必须要有英文文档,最好有中文文档。</li>
+<li>代码的可读性。如果 Reviewer 对于代码逻辑不是很清晰,那么可以要求 Contributor 去解释这段逻辑,并且需要在代码里写充分的注释来解释逻辑。</li>
+<li>尽量在评论的结尾给出明确的结论。是同意,还是要 change request。如果是小问题,可以只留评论。</li>
+<li>如果已经看过了代码,觉得没有问题,但是觉得还需要其他 Reviewer 来确认下,可以留下 +1 Comment。</li>
+<li>互相尊重,互相学习。在评论的时候保持礼貌的口吻,提建议尽量给出建议的理由。</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" id="pr-review-指南">PR Review 指南<a href="#pr-review-指南" class="hash-link" aria-label="PR Review 指南的直接链接" title="PR Review 指南的直接链接" translate="no"></a></h2>
+<ul>
+<li>检查贡献内容是否描述充分,足以支持高质量的评审。</li>
+<li>Reviewer 需进行代码层级的评审。</li>
+<li>Reviewer 对 PR 发表评论后,需持续跟进该 PR 后续的修改。</li>
+<li>每个 PR 至少要获得一个 <strong>非作者外的 Committer +1</strong> 才能允许进行被合并。</li>
+<li>PR 获得第一个 +1 后,建议等待 <strong>一个工作日</strong> 后才进行合并。主要目的是等待社区其他 Reviewer 来进行审核。</li>
+<li>对于接口类、整体架构方面等被认为是重大变更,则至少要获得 <strong>3 个 +1</strong> 才能进行合并。</li>
+<li>合并前需确保回归测试与持续集成测试全部通过。</li>
+<li>合并时请选择“squash and merge”操作。</li>
+<li>不同的 Reviewer 对 PR 有争议时,可以尝试讨论解决。如果讨论无法解决,可通过<code>dev@fesod.apache.org</code>发起邮件投票解决,采取少数服从多数的原则。</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"><a href="https://github.com/apache/fesod/edit/main/website/i18n/zh-cn/docusaurus-plugin-content-docs-community/current/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_guvc" aria-hidden="true"><g><path d="m34.5 [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/community/contribution/commit-format/index.html b/zh-cn/community/contribution/commit-format/index.html
new file mode 100644
index 00000000..23fe0002
--- /dev/null
+++ b/zh-cn/community/contribution/commit-format/index.html
@@ -0,0 +1,55 @@
+<!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-contribution/commit-format" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<title data-rh="true">Commit 格式规范 | 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.9066dff5.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.f32a72ca.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 anchorWithStickyNavbar_YIWN" id="commit-规范">Commit 规范<a href="#commit-规范" class="hash-link" aria-label="Commit 规范的直接链接" title="Commit 规范的直接链接" translate="no"></a></h3>
+<h4 class="anchor anchorWithStickyNavbar_YIWN" id="commit-消息格式">Commit 消息格式<a href="#commit-消息格式" class="hash-link" aria-label="Commit 消息格式的直接链接" title="Commit 消息格式的直接链接" translate="no"></a></h4>
+<p>请确保提交消息清晰且具有描述性,务必使用<strong>英文</strong>,且不超过 100 个字符。</p>
+<p>允许提交信息的类型且需遵循以下格式:</p>
+<ul>
+<li><strong>docs</strong>: 更新文档,例如 <code>docs: update README.md</code></li>
+<li><strong>feature/feat</strong>: 新功能,例如 <code>feature: support for xxx</code></li>
+<li><strong>bugfix/fix</strong>: 修复 Bug,例如 <code>fix: fix NPE in the A class</code></li>
+<li><strong>refactor</strong>: 代码重构(不涉及功能变动),例如 <code>refactor: optimise data processing logic</code></li>
+<li><strong>style</strong>: 代码格式,例如 <code>style: update code style</code></li>
+<li><strong>test</strong>: 增加或改进测试,例如 <code>test: add new test cases</code></li>
+<li><strong>chore</strong>: 构建过程或辅助工具的变动,例如 <code>chore: improve issue template</code></li>
+<li><strong>dependency</strong>: 第三方依赖库的修改,例如 <code>dependency: upgrade poi version to 5.4.1</code></li>
+</ul>
+<p>不建议使用模糊的提交信息,如:</p>
+<ul>
+<li><del>fixed issue</del></li>
+<li><del>update code</del></li>
+</ul>
+<p>如果需要帮助,请参考 <a href="http://chris.beams.io/posts/git-commit/" target="_blank" rel="noopener noreferrer">如何编写 Git 提交消息</a>。</p>
+<h4 class="anchor anchorWithStickyNavbar_YIWN" id="commit-内容">Commit 内容<a href="#commit-内容" class="hash-link" aria-label="Commit 内容的直接链接" title="Commit 内容的直接链接" translate="no"></a></h4>
+<p>一次提交应包含完整且可审查的更改,确保:</p>
+<ul>
+<li>避免提交过于庞大的改动。</li>
+<li>每次提交内容独立且可通过 CI 测试。</li>
+</ul>
+<p>另外,请确保提交时配置正确的 Git 用户信息:</p>
+<div class="language-bash codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-bash codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" id="pr-描述信息">PR 描述信息<a href="#pr-描述信息" class="hash-link" aria-label="PR 描述信息的直接链接" title="PR 描述信息的直接链接" translate="no"></a></h3>
+<p>为了帮助审阅者快速了解 PR 的内容和目的,请使用 <a href="https://github.com/apache/fesod/blob/main/.github/pull_request_template.md" target="_blank" rel="noopener noreferrer">PR 模板</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"><a href="https://github.com/apache/fesod/edit/main/website/i18n/zh-cn/docusaurus-plugin-content-docs-community/current/contribution/commit-format.md" target="_blank" rel [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/community/contribution/contribute-code/index.html b/zh-cn/community/contribution/contribute-code/index.html
new file mode 100644
index 00000000..25140291
--- /dev/null
+++ b/zh-cn/community/contribution/contribute-code/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-contribution/contribute-code" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<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/commu [...]
+<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.9066dff5.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.f32a72ca.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 anchorWithStickyNavbar_YIWN" id="工作区准备">工作区准备<a href="#工作区准备" class="hash-link" aria-label="工作区准备的直接链接" title="工作区准备的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" id="开发环境">开发环境<a href="#开发环境" class="hash-link" aria-label="开发环境的直接链接" title="开发环境的直接链接" translate="no"></a></h3>
+<p>需要 <strong>3.8.1及以上版本的Maven</strong> 和 <strong>17及以上版本的JDK (Java Development Kit)</strong> 。目前,开发环境推荐 <strong>3.9.0</strong> 及以上版本的Maven和 <strong>21</strong> 及以上的版本Java,但在编译过程中必须使用 <strong>Java 1.8</strong> 兼容的语言特性,保证能在 Java 1.8 及以上版本环境中运行。</p>
+<blockquote>
+<p>您可以使用 <a href="https://sdkman.io/" target="_blank" rel="noopener noreferrer">SDKMAN</a> 等工具配置多版本的 Java 工具链。</p>
+</blockquote>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" id="idea-设置">IDEA 设置<a href="#idea-设置" class="hash-link" aria-label="IDEA 设置的直接链接" title="IDEA 设置的直接链接" translate="no"></a></h2>
+<p>以下指南针对使用 <code>IntelliJ IDEA</code> 开发,其他版本可能存在一些细节差异。请务必遵循所有步骤。</p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" id="工程项目设置">工程项目设置<a href="#工程项目设置" class="hash-link" aria-label="工程项目设置的直接链接" title="工程项目设置的直接链接" translate="no"></a></h3>
+<p>设置项目 <a href="https://www.jetbrains.com/help/idea/project-settings-and-structure.html#language-level" target="_blank" rel="noopener noreferrer">Language Level</a> 为 <code>8</code> 以确保后向兼容。</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" id="git-使用">Git 使用<a href="#git-使用" class="hash-link" aria-label="Git 使用的直接链接" title="Git 使用的直接链接" translate="no"></a></h2>
+<p>确保您已注册 <code>GitHub</code> 账号,并按照以下步骤完成本地开发环境配置:</p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" id="fork-仓库">Fork 仓库<a href="#fork-仓库" class="hash-link" aria-label="Fork 仓库的直接链接" title="Fork 仓库的直接链接" translate="no"></a></h3>
+<p>在仓库的 <a href="https://github.com/apache/fesod" target="_blank" rel="noopener noreferrer">GitHub 页面</a> 点击 <code>Fork</code> 按钮,将项目复制到您的 GitHub 账户下,</p>
+<div class="language-bash codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-bash codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token plain">https://github.com/</span><span class="token operator" style="color:#393A34"><</span><sp [...]
+<h3 class="anchor anchorWithStickyNavbar_YIWN" id="克隆代码库">克隆代码库<a href="#克隆代码库" class="hash-link" aria-label="克隆代码库的直接链接" title="克隆代码库的直接链接" translate="no"></a></h3>
+<p>运行以下命令将 Fork 的项目克隆到本地:</p>
+<div class="language-bash codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-bash codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" id="设置上游仓库">设置上游仓库<a href="#设置上游仓库" class="hash-link" aria-label="设置上游仓库的直接链接" title="设置上游仓库的直接链接" translate="no"></a></h3>
+<p>将官方仓库设置为 <code>upstream</code>,方便同步更新:</p>
+<div class="language-bash codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-bash codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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>运行 <code>git remote -v</code> 可检查配置是否正确。</p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" id="新建分支修改">新建分支修改<a href="#新建分支修改" class="hash-link" aria-label="新建分支修改的直接链接" title="新建分支修改的直接链接" translate="no"></a></h3>
+<p>创建一个新的分支以进行开发</p>
+<div class="language-bash codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-bash codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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>注意事项</strong>:</p>
+<ul>
+<li>应该创建新分支来开发功能:<code>git checkout -b feature-xxx</code>。不建议直接在<code>main</code>分支上进行开发。</li>
+<li><code><your_branch_name></code> 为您自定义的分支名字。</li>
+</ul>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" id="提交代码到远程分支">提交代码到远程分支<a href="#提交代码到远程分支" class="hash-link" aria-label="提交代码到远程分支的直接链接" title="提交代码到远程分支的直接链接" translate="no"></a></h3>
+<p>在本地修改完代码后,将其提交到自己的代码库中。</p>
+<div class="language-bash codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-bash codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" id="pull-request">Pull request<a href="#pull-request" class="hash-link" aria-label="Pull request的直接链接" title="Pull request的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" id="新建-pr">新建 PR<a href="#新建-pr" class="hash-link" aria-label="新建 PR的直接链接" title="新建 PR的直接链接" translate="no"></a></h3>
+<p>在浏览器切换到自己的 GitHub 页面,切换分支到提交的分支 <code><your_branch_name></code>,点击 "Compare & pull request" 按钮进行创建。</p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" id="填写-commit-message">填写 Commit Message<a href="#填写-commit-message" class="hash-link" aria-label="填写 Commit Message的直接链接" title="填写 Commit Message的直接链接" translate="no"></a></h3>
+<p>请参考 <a href="/zh-cn/community/contribution/commit-format/">Commit 格式规范</a> 来填写评论摘要和详细内容,然后点击创建拉取请求来创建它。</p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" id="准备审核">准备审核<a href="#准备审核" class="hash-link" aria-label="准备审核的直接链接" title="准备审核的直接链接" translate="no"></a></h3>
+<p>成功创建后,社区提交者将进行代码审查,随后会与你讨论具体细节(设计、实现、性能等),之后你可直接根据建议在此分支更新代码(无需创建新PR)。当此PR获得批准时,提交内容将合并至主分支。</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" id="分支定义">分支定义<a href="#分支定义" class="hash-link" aria-label="分支定义的直接链接" title="分支定义的直接链接" translate="no"></a></h2>
+<p>所有贡献应基于 <code>main</code> 开发分支。此外,还有以下分支类型:</p>
+<ul>
+<li><strong>release 分支</strong>:用于版本发布(如 <code>1.1.0</code>, <code>1.1.1</code>)。</li>
+<li><strong>feature 分支</strong>:用于开发较大的功能。</li>
+<li><strong>hotfix 分支</strong>:用于修复重要 Bug。</li>
+</ul>
+<p>提交 PR 时,请确保变更基于 <code>main</code> 分支。</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" id="编译">编译<a href="#编译" class="hash-link" aria-label="编译的直接链接" title="编译的直接链接" translate="no"></a></h2>
+<p>运行以下命令编译</p>
+<div class="language-bash codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-bash codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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>为了加快构建速度,您可以:</p>
+<ul>
+<li>使用<code>-DskipTests</code>跳过单元测试</li>
+<li>使用 Maven 的并行构建功能,例如,<code>mvn clean install -DskipTests -T 1C</code></li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" id="代码格式化">代码格式化<a href="#代码格式化" class="hash-link" aria-label="代码格式化的直接链接" title="代码格式化的直接链接" translate="no"></a></h2>
+<p>使用 <a href="https://github.com/diffplug/spotless" target="_blank" rel="noopener noreferrer">Spotless</a> 检查并修复代码风格和格式问题。 您可以执行如下的命令,<code>Spotless</code> 将会自动检查并修复代码风格和格式问题。</p>
+<div class="language-bash codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-bash codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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/zh-cn/community/contribution/contribute-doc/index.html b/zh-cn/community/contribution/contribute-doc/index.html
new file mode 100644
index 00000000..755f14cc
--- /dev/null
+++ b/zh-cn/community/contribution/contribute-doc/index.html
@@ -0,0 +1,75 @@
+<!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-contribution/contribute-doc" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<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/commu [...]
+<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.9066dff5.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.f32a72ca.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>官方网站采用<a href="https://docusaurus.io/" target="_blank" rel="noopener noreferrer">Docusaurus</a>构建,文档维护于<a href="https://github.com/apache/fesod/tree/main/website" target="_blank" rel="noopener noreferrer">website</a>目录。请注意,无论是历史版本还是最新版本的文档,所有修改均应通过向<code>apache/fesod</code>仓库提交拉取请求实现。</p>
+<p>提交拉取请求的具体方法请参阅:</p>
+<ul>
+<li><a href="/zh-cn/community/contribution/contribute-code/">代码贡献指南</a></li>
+<li><a href="/zh-cn/community/contribution/commit-format/">Commit格式规范</a></li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" id="环境要求">环境要求<a href="#环境要求" class="hash-link" aria-label="环境要求的直接链接" title="环境要求的直接链接" translate="no"></a></h2>
+<ul>
+<li><a href="https://nodejs.org/en/download/" target="_blank" rel="noopener noreferrer">Node.js</a> 版本 20.0 或更高版本(可通过运行 <code>node -v</code> 命令进行检查)。您可使用 <a href="https://github.com/nvm-sh/nvm" target="_blank" rel="noopener noreferrer">nvm</a> 在同一台机器上管理多个 Node 版本。</li>
+<li>安装 Node.js 时,建议勾选所有与依赖项相关的复选框。</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" id="目录结构说明">目录结构说明<a href="#目录结构说明" class="hash-link" aria-label="目录结构说明的直接链接" title="目录结构说明的直接链接" translate="no"></a></h2>
+<p>Docusaurus 支持国际化,主要需要维护的文档目录结构如下:</p>
+<div class="language-bash codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-bash codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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>单语言的文档目录结构如下:</p>
+<div class="language-bash codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-bash codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" id="文档编写指南">文档编写指南<a href="#文档编写指南" class="hash-link" aria-label="文档编写指南的直接链接" title="文档编写指南的直接链接" translate="no"></a></h2>
+<ul>
+<li>使用带有 <code>.md</code> 扩展名的文件路径</li>
+</ul>
+<div class="language-markdown codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-markdown codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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>使用相对于 <code>docs/</code> 目录的路径</li>
+</ul>
+<div class="language-markdown codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-markdown codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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>图片文件需要存储在 <code>static/img</code> 目录,并使用相对目录的形式引用.</li>
+</ul>
+<div class="language-markdown codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-markdown codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" id="预览和生成静态文件">预览和生成静态文件<a href="#预览和生成静态文件" class="hash-link" aria-label="预览和生成静态文件的直接链接" title="预览和生成静态文件的直接链接" translate="no"></a></h2>
+<p>进入 <code>website</code> 目录,并执行以下命令</p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" id="安装">安装<a href="#安装" class="hash-link" aria-label="安装的直接链接" title="安装的直接链接" translate="no"></a></h3>
+<div class="language-bash codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-bash codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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 anchorWithStickyNavbar_YIWN" id="本地预览和运行">本地预览和运行<a href="#本地预览和运行" class="hash-link" aria-label="本地预览和运行的直接链接" title="本地预览和运行的直接链接" translate="no"></a></h3>
+<div class="language-bash codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-bash codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># 英文版</span><span class="token plain"></span><br> [...]
+<p>此命令会启动一个本地开发服务器,并打开一个浏览器窗口。大多数更改都无需重启服务器即可实时预览。</p>
+<blockquote>
+<p>每次只能运行一种语言版本</p>
+</blockquote>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" id="生成静态文件可选">生成静态文件(可选)<a href="#生成静态文件可选" class="hash-link" aria-label="生成静态文件(可选)的直接链接" title="生成静态文件(可选)的直接链接" translate="no"></a></h2>
+<div class="language-bash codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-bash codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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>此命令将生成静态内容到<code>build</code>目录中,并且可以使用任何静态内容托管服务。</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" id="文档格式校验">文档格式校验<a href="#文档格式校验" class="hash-link" aria-label="文档格式校验的直接链接" title="文档格式校验的直接链接" translate="no"></a></h2>
+<p>使用 <a href="https://github.com/DavidAnson/markdownlint-cli2" target="_blank" rel="noopener noreferrer">markdownlint-cli2</a> 来检查文档格式。您在编写了相关 Markdown 文章后,可以在本地执行以下命令,来预先检查 Markdown 的格式内容是否符合要求:</p>
+<div class="language-bash codeBlockContainer_gtXo theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_wR06"><pre tabindex="0" class="prism-code language-bash codeBlock_RxdS thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_EzLC"><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>Markdown 文章的相关格式规则可以参考 <a href="https://github.com/DavidAnson/markdownlint/blob/main/doc/Rules.md" target="_blank" rel="noopener noreferrer">Markdown-lint-rules</a></li>
+<li>项目中的 Markdown 格式配置文件位于: <a href="https://github.com/apache/fesod/blob/main/website/.markdownlint-cli2.jsonc" target="_blank" rel="noopener noreferrer">.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"><a href="https://github.com/apache/fesod/edit/main/website/i18n/zh-cn/docusaurus-plugin-content-docs-community/current/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_guvc" aria-hidden="true"><g><path d="m34.5 11. [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/community/contribution/index.html b/zh-cn/community/contribution/index.html
new file mode 100644
index 00000000..6ae2e353
--- /dev/null
+++ b/zh-cn/community/contribution/index.html
@@ -0,0 +1,80 @@
+<!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-contribution" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<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.9066dff5.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.f32a72ca.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 anchorWithStickyNavbar_YIWN" id="贡献方向">贡献方向<a href="#贡献方向" class="hash-link" aria-label="贡献方向的直接链接" title="贡献方向的直接链接" translate="no"></a></h2>
+<p>对 Apache Fesod (Incubating) 贡献,贡献方向有很多:</p>
+<ul>
+<li>修复错别字</li>
+<li>修复 Bug</li>
+<li>删除冗余代码</li>
+<li>添加测试用例</li>
+<li>增强功能</li>
+<li>添加注释以提升代码可读性</li>
+<li>优化代码结构</li>
+<li>改进或完善文档</li>
+</ul>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" id="原则">原则<a href="#原则" class="hash-link" aria-label="原则的直接链接" title="原则的直接链接" translate="no"></a></h3>
+<ul>
+<li>任何有助于项目改进的 PR 都值得鼓励!</li>
+<li>贡献一个新的功能,请先在 <code>issue</code> 或 <code>discussion</code> 中提出和讨论。我们不会合并<strong>未经讨论和确认的</strong>的功能</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" id="贡献流程">贡献流程<a href="#贡献流程" class="hash-link" aria-label="贡献流程的直接链接" title="贡献流程的直接链接" translate="no"></a></h2>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" id="查找任务">查找任务<a href="#查找任务" class="hash-link" aria-label="查找任务的直接链接" title="查找任务的直接链接" translate="no"></a></h3>
+<p>找到您感兴趣的问题!在我们的 GitHub 仓库问题列表中,我们经常发布带有<code>good first issue</code>或<code>help wanted</code>标签的问题。这些问题欢迎贡献者的帮助。其中,<code>good first issues</code>通常门槛较低,适合初学者参与。</p>
+<p>当然,如果您有好的想法,也可以直接在 GitHub 讨论区提出,或联系社区成员。</p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" id="讨论">讨论<a href="#讨论" class="hash-link" aria-label="讨论的直接链接" title="讨论的直接链接" translate="no"></a></h3>
+<p>请参考<a href="/zh-cn/community/feedback/">问题反馈</a>来创建一个问题或讨论,并努力达成共识。</p>
+<p><strong>注意</strong>:如果申请分配这个问题时,请注意这并非简单的“请分配给我”,您需要阐述对问题的理解、设计方案,并在可能的情况下提供您的概念验证代码。</p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" id="实现">实现<a href="#实现" class="hash-link" aria-label="实现的直接链接" title="实现的直接链接" translate="no"></a></h3>
+<p>根据问题中商定的方案实施变更。</p>
+<ul>
+<li>仅在方案达成共识时才开始实施工作(例如:您已被指派处理该工单)</li>
+<li>若您是新成员,可参考<a href="/zh-cn/community/contribution/contribute-code/">代码贡献指南</a>来搭建开发环境。</li>
+</ul>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" id="审核">审核<a href="#审核" class="hash-link" aria-label="审核的直接链接" title="审核的直接链接" translate="no"></a></h3>
+<p>创建拉取请求并与审核者协作。</p>
+<ul>
+<li>确保不包含无关或不必要的格式调整。</li>
+<li>在提交 PR 之后会触发 CI,请确保通过 CI 检查。</li>
+<li>请确保测试通过。</li>
+<li>请勿解决讨论。</li>
+</ul>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" id="合并">合并<a href="#合并" class="hash-link" aria-label="合并的直接链接" title="合并的直接链接" translate="no"></a></h3>
+<p>社区 committer 需要根据<a href="/zh-cn/community/contribution/code-review-guide/">Code Review指南</a>中的指南,负责检查贡献是否满足要求,并将代码合并到代码库中。</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" id="贡献代码">贡献代码<a href="#贡献代码" class="hash-link" aria-label="贡献代码的直接链接" title="贡献代码的直接链接" translate="no"></a></h2>
+<p>所有改进均可通过 Pull Request (PR) 实现。在提交 Pull Request 前,请参考<a href="/zh-cn/community/contribution/contribute-code/">代码贡献指南</a>了解如何贡献代码。</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" id="测试用例贡献">测试用例贡献<a href="#测试用例贡献" class="hash-link" aria-label="测试用例贡献的直接链接" title="测试用例贡献的直接链接" translate="no"></a></h2>
+<p>任何测试用例的贡献都值得鼓励,尤其是单元测试。建议在对应模块的 <code>test</code> 目录中创建 <code>XXXTest.java</code> 文件,推荐使用 <code>JUnit5</code> 框架。</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" id="贡献文档">贡献文档<a href="#贡献文档" class="hash-link" aria-label="贡献文档的直接链接" title="贡献文档的直接链接" translate="no"></a></h2>
+<p>文档是 Apache Fesod (Incubating) 官方网站的重要构建内容,是项目与社区之间的重要桥梁。请参考<a href="/zh-cn/community/contribution/contribute-doc/">文档贡献指南</a>了解如何贡献文档。</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" id="其他参与方式">其他参与方式<a href="#其他参与方式" class="hash-link" aria-label="其他参与方式的直接链接" title="其他参与方式的直接链接" translate="no"></a></h2>
+<p>除了直接贡献代码,以下方式同样是对 Apache Fesod (Incubating) 的宝贵支持:</p>
+<ul>
+<li>回答其他用户的问题。</li>
+<li>帮助审阅他人的 PR。</li>
+<li>提出改进建议。</li>
+<li>撰写技术博客,宣传 Apache Fesod (Incubating)。</li>
+<li>在社区中分享项目相关知识。</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"><a href="https://github.com/apache/fesod/edit/main/website/i18n/zh-cn/docusaurus-plugin-content-docs-community/current/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_guvc" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6 [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/community/feedback/index.html b/zh-cn/community/feedback/index.html
new file mode 100644
index 00000000..1f3de1b3
--- /dev/null
+++ b/zh-cn/community/feedback/index.html
@@ -0,0 +1,67 @@
+<!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-feedback" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<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/communi [...]
+<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.9066dff5.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.f32a72ca.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 anchorWithStickyNavbar_YIWN" id="提交之前">提交之前<a href="#提交之前" class="hash-link" aria-label="提交之前的直接链接" title="提交之前的直接链接" translate="no"></a></h2>
+<p>在创建一个新的问题之前,请务必先完成以下准备工作。这能避免重复劳动,并节省你和维护者的时间。</p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" id="阅读文档">阅读文档<a href="#阅读文档" class="hash-link" aria-label="阅读文档的直接链接" title="阅读文档的直接链接" translate="no"></a></h3>
+<ul>
+<li>请先仔细阅读项目中的<code>README</code>和官方文档,查看其中是否有解决该问题的方法。</li>
+</ul>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" id="搜索现有问题">搜索现有问题<a href="#搜索现有问题" class="hash-link" aria-label="搜索现有问题的直接链接" title="搜索现有问题的直接链接" translate="no"></a></h3>
+<ul>
+<li>访问 <a href="https://github.com/apache/fesod/issues" target="_blank" rel="noopener noreferrer">问题列表</a> 搜索关键词。</li>
+<li>如果发现类似问题,请在该问题下 <strong>评论并补充详细信息</strong>,而不是重新创建新问题。</li>
+<li>如果未解决的问题,因为某些原因已处于已关闭的状态,请 <strong>评论并补充详细信息</strong> 重新打开这个问题。</li>
+</ul>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" id="更新到最新版本">更新到最新版本<a href="#更新到最新版本" class="hash-link" aria-label="更新到最新版本的直接链接" title="更新到最新版本的直接链接" translate="no"></a></h3>
+<p>确保您正在使用的是项目的最新稳定版或主分支的最新代码。很多问题在新版本中已经被修复了。</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" id="创建新问题">创建新问题<a href="#创建新问题" class="hash-link" aria-label="创建新问题的直接链接" title="创建新问题的直接链接" translate="no"></a></h2>
+<p>如果确认您的问题尚未被报告,请通过 <a href="https://github.com/apache/fesod/issues/new/choose" target="_blank" rel="noopener noreferrer">NEW ISSUE</a> 页面提交新问题。</p>
+<p><strong>请务必使用问题模板</strong>,并尽可能地提供完整的信息,如:</p>
+<ul>
+<li>环境信息(操作系统、使用的版本等)。</li>
+<li>复现步骤。</li>
+<li>错误日志或截图。</li>
+<li>提供一个可复现的最小示例。</li>
+</ul>
+<p>以下情况适合提交新问题:</p>
+<ul>
+<li>Bug 报告</li>
+<li>新功能需求</li>
+<li>性能问题</li>
+<li>功能提案或设计</li>
+<li>文档改进</li>
+<li>测试覆盖率优化</li>
+<li>需要技术支持</li>
+<li>其他与项目相关的问题</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" id="注意事项">注意事项<a href="#注意事项" class="hash-link" aria-label="注意事项的直接链接" title="注意事项的直接链接" translate="no"></a></h2>
+<ul>
+<li>问题的标题应该清晰、简洁,使用<strong>英文</strong>书写,建议不超过 50 个字符长度。</li>
+<li>问题描述和内容中请使用礼貌的语言。</li>
+<li>一个问题只应包含一个主题,请勿将多个问题合并为一个。</li>
+<li>除非已事先明确某位开发者负责这个问题,否则请勿随意指派给某个开发者。</li>
+</ul>
+<p>感谢您为提升项目质量所做的贡献!您的每一次反馈,都是我们前进的动力。</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"><a href="https://github.com/apache/fesod/edit/main/website/i18n/zh-cn/docusaurus-plugin-content-docs-community/current/feedback.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_guvc" aria-hidden="true"><g> [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/community/index.html b/zh-cn/community/index.html
new file mode 100644
index 00000000..4a94c4d4
--- /dev/null
+++ b/zh-cn/community/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-community" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<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/communi [...]
+<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.9066dff5.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.f32a72ca.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 anchorWithStickyNavbar_YIWN" id="初次接触">初次接触<a href="#初次接触" class="hash-link" aria-label="初次接触的直接链接" title="初次接触的直接链接" translate="no"></a></h2>
+<p>初次来到 Apache Fesod (Incubating) 社区,您可以:</p>
+<ul>
+<li>使用我们的项目并提供反馈。</li>
+<li>向我们提供使用案例。</li>
+<li>报告错误并提交补丁。</li>
+<li>贡献代码和文档。</li>
+<li>订阅我们的邮件列表。</li>
+</ul>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" id="邮件列表">邮件列表<a href="#邮件列表" class="hash-link" aria-label="邮件列表的直接链接" title="邮件列表的直接链接" translate="no"></a></h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th>列表名称</th><th>描述</th><th>订阅</th><th>取消订阅</th><th>归档</th></tr></thead><tbody><tr><td><a href="mailto:dev@fesod.apache.org" target="_blank" rel="noopener noreferrer">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">Subscribe</a></td><td><a href="mailto:dev-unsubscribe@fesod.apache.org" target="_blank" rel="noopener noreferrer">Unsubscribe</a></td><td><a hre [...]
+<p>请务必确保您已订阅您所发布的邮件列表!</p>
+<p>如果您未订阅该邮件列表,您的消息将会被拒绝,或者您将无法收到回复。</p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" id="如何订阅邮件列表">如何订阅邮件列表<a href="#如何订阅邮件列表" class="hash-link" aria-label="如何订阅邮件列表的直接链接" title="如何订阅邮件列表的直接链接" translate="no"></a></h3>
+<p>在向邮件列表发布消息之前,您需要先订阅该列表。</p>
+<ol>
+<li>向 <code>listname-subscribe@fesod.apache.org</code> 发送一封不含任何内容或主题的邮件。(将列表名称替换为 dev 或 commits)</li>
+<li>等待收到主题为 <code>confirm subscribe to listname@fesod.apache.org</code> 的邮件。直接回复该邮件,无需修改主题或添加内容。</li>
+<li>等待收到主题为 <code>WELCOME to listname@fesod.apache.org</code> 的邮件。</li>
+</ol>
+<p>若通过邮件发送代码片段,请确保:</p>
+<ul>
+<li>避免链接外部服务文件,此类文件可能变更、删除或链接失效,导致存档邮件线程失效</li>
+<li>粘贴文本而非文字截图</li>
+<li>粘贴代码时保留格式以确保可读性</li>
+<li>包含足够的import语句以避免歧义</li>
+</ul>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" id="发送纯文本邮件">发送纯文本邮件<a href="#发送纯文本邮件" class="hash-link" aria-label="发送纯文本邮件的直接链接" title="发送纯文本邮件的直接链接" translate="no"></a></h3>
+<p>在发送邮件列表时,请使用纯文本邮件。 <strong>不要使用 HTML 邮件</strong>。 HTML 邮件更有可能被视为垃圾邮件并被拒绝。 通过不同的邮件客户端,它可能会出现格式错误,并且其他人不容易阅读。</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" id="问题跟踪">问题跟踪<a href="#问题跟踪" class="hash-link" aria-label="问题跟踪的直接链接" title="问题跟踪的直接链接" translate="no"></a></h2>
+<p>所有的问题都将通过<a href="https://github.com/apache/fesod/issues" target="_blank" rel="noopener noreferrer">GitHub Issues</a>进行跟踪和处理。</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" id="讨论">讨论<a href="#讨论" class="hash-link" aria-label="讨论的直接链接" title="讨论的直接链接" translate="no"></a></h2>
+<p>开发讨论和用户交流请使用 <a href="https://github.com/apache/fesod/discussions" target="_blank" rel="noopener noreferrer">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"><a href="https://github.com/apache/fesod/edit/main/website/i18n/zh-cn/docusaurus-plugin-content-docs-community/current/index.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="curren [...]
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-cn/community/maturity/index.html b/zh-cn/community/maturity/index.html
new file mode 100644
index 00000000..571dec41
--- /dev/null
+++ b/zh-cn/community/maturity/index.html
@@ -0,0 +1,317 @@
+<!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-maturity" data-has-hydrated="false">
+<head>
+<meta charset="UTF-8">
+<meta name="generator" content="Docusaurus v3.9.1">
+<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/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/com [...]
+<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.9066dff5.js" defer="defer"></script>
+<script src="/zh-cn/assets/js/main.f32a72ca.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">Apache Project Maturity Model</a>.</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" id="status-of-this-assessment">Status of this assessment<a href="#status-of-this-assessment" class="hash-link" aria-label="Status of this assessment的直接链接" title="Status of this assessment的直接链接" translate="no"></a></h2>
+<p>This assessment is evaluated during Fesod's Incubating.</p>
+<h2 class="anchor anchorWithStickyNavbar_YIWN" id="maturity-model-assessment">Maturity model assessment<a href="#maturity-model-assessment" class="hash-link" aria-label="Maturity model assessment的直接链接" title="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">Apache Maturity Model</a>. Mentors and community members are welcome to comment and modify it.</p>
+<h3 class="anchor anchorWithStickyNavbar_YIWN" id="code">Code<a href="#code" class="hash-link" aria-label="Code的直接链接" title="Code的直接链接" translate="no"></a></h3>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<table><thead><tr><th><strong>ID</strong></th><th><strong>Description</strong></th><th><strong>Status</strong></th></tr></thead><tbody><tr><td><strong>CD10</strong></td><td>The project produces Open Source software for distribution to the public, at no charge.</td><td><strong>YES</strong> The project source code is licensed under the <code>Apache License 2.0</code>.</td></tr><tr><td><strong>CD20</strong></td><td>Anyone can easily discover and access the project's code.</td><td><stro [...]
+<h3 class="anchor anchorWithStickyNavbar_YIWN" id="licenses-and-copyright">Licenses and Copyright<a href="#licenses-and-copyright" class="hash-link" aria-label="Licenses and Copyright的直接链接" title="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">LICENSE</a> is in GitHub repository. And all source files are with APLv2 header, checked by <code>korandoru/hawkeye@v6</code> [...]
+<h3 class="anchor anchorWithStickyNavbar_YIWN" id="releases">Releases<a href="#releases" class="hash-link" aria-label="Releases的直接链接" title="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">dist.apache.org</ [...]
+<h3 class="anchor anchorWithStickyNavbar_YIWN" id="quality">Quality<a href="#quality" class="hash-link" aria-label="Quality的直接链接" title="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 anchorWithStickyNavbar_YIWN" id="community">Community<a href="#community" class="hash-link" aria-label="Community的直接链接" title="Community的直接链接" translate="no"></a></h3>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
... 3903 lines suppressed ...
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@fesod.apache.org
For additional commands, e-mail: commits-help@fesod.apache.org