From 4bd285088538d75262d735108384e8d540617308 Mon Sep 17 00:00:00 2001 From: Ryan Wang Date: Thu, 27 Aug 2026 16:15:10 +0800 Subject: [PATCH] Migrate documentation site to Rspress --- .../skills/rspress-best-practices/SKILL.md | 82 + .agents/skills/rspress-custom-theme/SKILL.md | 242 + .../references/css-variables.md | 177 + .../references/eject-components.md | 154 + .../references/layout-slots.md | 153 + .../rspress-description-generator/SKILL.md | 118 + .claude/skills/rspress-best-practices | 1 + .claude/skills/rspress-custom-theme | 1 + .claude/skills/rspress-description-generator | 1 + .editorconfig | 9 - .github/workflows/node.js.yml | 6 +- .gitignore | 37 +- .husky/pre-commit | 4 - .markdownlint.json | 13 - .npmrc | 1 - .vscode/extensions.json | 3 - .vscode/settings.json | 19 +- AGENTS.md | 30 + OWNERS | 10 - README.md | 8 +- biome.json | 34 + context7.json | 2 +- docs/_nav.json | 39 + docs/about.md | 16 - docs/developer-guide/_meta.json | 39 + docs/developer-guide/annotations-form.md | 2 +- docs/developer-guide/app-store/_meta.json | 1 + docs/developer-guide/app-store/index.md | 4 + docs/developer-guide/core/_meta.json | 1 + docs/developer-guide/core/build.md | 6 +- docs/developer-guide/core/index.md | 4 + docs/developer-guide/core/run.md | 6 +- docs/developer-guide/core/structure.md | 2 +- docs/developer-guide/form-schema.md | 26 +- docs/developer-guide/index.md | 4 + docs/developer-guide/plugin/_meta.json | 42 + .../plugin/api-reference/_meta.json | 14 + .../plugin/api-reference/index.md | 4 + .../plugin/api-reference/server/_meta.json | 13 + .../api-reference/server/extension-client.md | 2 +- .../api-reference/server/extension-getter.md | 2 +- .../plugin/api-reference/server/extension.md | 4 +- .../plugin/api-reference/server/index.md | 4 + .../server/template-for-theme.md | 2 +- .../plugin/api-reference/ui/_meta.json | 12 + .../plugin/api-reference/ui/api-request.md | 2 +- .../api-reference/ui/components/_meta.json | 14 + .../components/attachment-selector-modal.md | 2 +- .../api-reference/ui/components/index.md | 7 +- .../plugin/api-reference/ui/index.md | 4 + .../plugin/api-reference/ui/route.md | 2 +- docs/developer-guide/plugin/basics/_meta.json | 17 + .../developer-guide/plugin/basics/devtools.md | 8 +- docs/developer-guide/plugin/basics/index.md | 4 + .../developer-guide/plugin/basics/manifest.md | 4 +- .../plugin/basics/server/_meta.json | 1 + .../plugin/basics/server/index.md | 4 + .../plugin/basics/server/lifecycle.md | 2 +- .../plugin/basics/structure.md | 4 +- .../plugin/basics/ui/_meta.json | 1 + .../developer-guide/plugin/basics/ui/build.md | 2 +- .../developer-guide/plugin/basics/ui/index.md | 4 + docs/developer-guide/plugin/examples/index.md | 4 + .../plugin/extension-points/_meta.json | 14 + .../plugin/extension-points/index.md | 4 + .../plugin/extension-points/server/_meta.json | 18 + .../plugin/extension-points/server/index.md | 11 +- .../plugin/extension-points/ui/_meta.json | 24 + .../attachment-list-item-operation-create.md | 98 - .../attachment-list-item-operation-create.mdx | 4 - .../ui/backup-list-item-operation-create.md | 41 - .../ui/backup-list-item-operation-create.mdx | 2 - .../ui/comment-list-item-operation-create.md | 81 - .../ui/comment-list-item-operation-create.mdx | 4 - .../ui/comment-subject-ref-create.md | 2 +- .../ui/default-editor-extension-create.md | 2 +- .../plugin/extension-points/ui/index.md | 14 - .../plugin/extension-points/ui/index.mdx | 9 +- ...e.md => plugin-list-item-field-create.mdx} | 2 - ... => plugin-list-item-operation-create.mdx} | 4 - .../ui/plugin-self-tabs-create.md | 90 - .../ui/plugin-self-tabs-create.mdx | 2 - .../ui/post-list-item-field-create.md | 80 - .../ui/post-list-item-field-create.mdx | 2 - ...md => post-list-item-operation-create.mdx} | 4 - ...d => reply-list-item-operation-create.mdx} | 4 - .../ui/single-page-list-item-field-create.md | 80 - .../ui/single-page-list-item-field-create.mdx | 2 - .../single-page-list-item-operation-create.md | 92 - ...single-page-list-item-operation-create.mdx | 4 - .../ui/theme-list-item-operation-create.md | 91 - .../ui/theme-list-item-operation-create.mdx | 4 - docs/developer-guide/plugin/index.md | 4 + .../plugin/interaction/_meta.json | 1 + .../plugin/interaction/dependency.md | 4 +- .../plugin/interaction/index.md | 4 + .../plugin/interaction/shared-events.md | 2 +- docs/developer-guide/plugin/prepare.md | 2 +- docs/developer-guide/plugin/security/index.md | 4 + .../plugin/security/role-template.md | 2 +- docs/developer-guide/restful-api/_meta.json | 1 + .../developer-guide/restful-api/api-client.md | 4 +- docs/developer-guide/restful-api/index.md | 4 + .../restful-api/introduction.md | 6 +- docs/developer-guide/theme/_meta.json | 27 + docs/developer-guide/theme/config.md | 2 +- docs/developer-guide/theme/finder-apis.md | 10 - .../theme/finder-apis/_meta.json | 12 + .../theme/finder-apis/category.md | 224 - .../theme/finder-apis/category.mdx | 4 +- .../finder-apis/{comment.md => comment.mdx} | 0 .../{contributor.md => contributor.mdx} | 0 .../theme/finder-apis/index.md | 7 + .../theme/finder-apis/{menu.md => menu.mdx} | 0 .../theme/finder-apis/{post.md => post.mdx} | 4 +- .../{single-page.md => single-page.mdx} | 0 docs/developer-guide/theme/finder-apis/tag.md | 147 - .../developer-guide/theme/finder-apis/tag.mdx | 4 +- .../developer-guide/theme/global-variables.md | 94 - .../theme/global-variables.mdx | 2 +- .../theme/image-optimization.md | 4 +- docs/developer-guide/theme/index.md | 4 + docs/developer-guide/theme/prepare.md | 10 +- docs/developer-guide/theme/settings.md | 8 +- .../developer-guide/theme/static-resources.md | 4 +- docs/developer-guide/theme/structure.md | 2 +- .../theme/template-route-mapping.md | 2 +- docs/developer-guide/theme/template-tag.md | 2 +- .../theme/template-variables.md | 11 - .../theme/template-variables/_meta.json | 13 + .../{archives.md => archives.mdx} | 0 .../theme/template-variables/auth.md | 2 +- .../{author.md => author.mdx} | 0 .../{categories.md => categories.mdx} | 0 .../theme/template-variables/category.md | 146 - .../theme/template-variables/category.mdx | 6 +- .../theme/template-variables/error.md | 2 +- .../theme/template-variables/index.md | 7 +- .../{index_.md => index_.mdx} | 0 .../theme/template-variables/page.md | 90 - .../theme/template-variables/page.mdx | 4 +- .../theme/template-variables/post.md | 97 - .../theme/template-variables/post.mdx | 8 +- .../template-variables/{tag.md => tag.mdx} | 0 .../template-variables/{tags.md => tags.mdx} | 0 docs/developer-guide/theme/ui-plugin.md | 2 +- docs/getting-started/first-post.md | 32 - docs/getting-started/install/bt-panel.md | 92 - .../install/cloud/alibaba-cloud-market.md | 59 - .../install/cloud/tencent-cloud-lighthouse.md | 71 - .../getting-started/install/docker-compose.md | 345 - docs/getting-started/install/docker.md | 85 - docs/getting-started/install/helm.md | 142 - docs/getting-started/install/jar-file.md | 312 - .../install/other/nginxproxymanager.md | 244 - docs/getting-started/install/other/traefik.md | 117 - docs/getting-started/prepare.md | 136 - docs/guide/_meta.json | 42 + docs/guide/contribution/index.md | 4 + docs/{ => guide}/contribution/issue.md | 2 +- docs/{ => guide}/contribution/pr.md | 0 .../guide/first-post.mdx | 5 +- docs/guide/index.md | 4 + .../1panel.md => guide/install/1panel.mdx} | 8 +- docs/guide/install/_meta.json | 24 + .../guide}/install/bt-panel.md | 14 +- .../cloud/alibaba-cloud-computenest.md | 0 .../install/cloud/alibaba-cloud-market.md | 2 +- docs/guide/install/cloud/index.md | 4 + .../install/cloud/tencent-cloud-lighthouse.md | 2 +- .../install/config.md | 12 +- docs/guide/install/docker-compose.mdx | 359 + .../guide/install/docker.mdx | 16 +- .../helm.md => docs/guide/install/helm.mdx | 16 +- docs/guide/install/index.md | 4 + .../guide}/install/jar-file.md | 8 +- .../offline.md => guide/install/offline.mdx} | 14 +- docs/guide/install/other/index.md | 4 + .../guide}/install/other/nginxproxymanager.md | 12 +- .../guide}/install/other/traefik.md | 6 +- .../podman.md => guide/install/podman.mdx} | 18 +- .../install/slots/_docker-args.md | 0 .../install/slots/_docker-registry-list.md | 0 .../migrate-from-1.x.md | 6 +- .../getting-started => docs/guide}/prepare.md | 16 +- docs/{getting-started => guide}/setup.md | 0 docs/guide/use/_meta.json | 23 + .../user-guide => docs/guide/use}/activate.md | 12 +- .../guide/use}/app-store.md | 8 +- .../guide/use}/attachments.md | 10 +- .../user-guide => docs/guide/use}/backup.md | 14 +- .../user-guide => docs/guide/use}/common.md | 2 +- docs/{user-guide => guide/use}/faq.md | 6 +- docs/guide/use/index.md | 4 + docs/{user-guide => guide/use}/menus.md | 0 .../user-guide => docs/guide/use}/pages.md | 2 +- docs/{user-guide => guide/use}/plugins.md | 14 +- .../user-guide => docs/guide/use}/posts.md | 8 +- .../user-guide => docs/guide/use}/settings.md | 19 +- docs/guide/use/shop/_meta.json | 11 + .../use}/shop/console-home.mdx | 0 .../guide/use}/shop/index.mdx | 23 +- .../user-guide => docs/guide/use}/shop/mp.mdx | 2 +- .../guide/use}/shop/orders.mdx | 5 +- .../use}/shop/payments.mdx | 16 +- .../guide/use}/shop/prepare.mdx | 8 +- .../guide/use}/shop/products.mdx | 11 +- .../use}/shop/sales-channels.mdx | 15 +- .../use}/shop/theme-dev.mdx | 0 .../guide/use}/shop/virtual-delivery.mdx | 6 +- .../user-guide => docs/guide/use}/themes.md | 10 +- .../guide/use}/user-center.md | 4 +- docs/{user-guide => guide/use}/users.md | 14 +- docs/index.mdx | 102 + docs/intro.md | 105 - {static => docs/public}/img/adaptive2.png | Bin .../annotation-setting-preview.png | Bin ...eate-repository-for-hello-world-plugin.png | Bin .../post-content-version-generation.png | Bin .../attachment-list-item-operation-create.png | Bin .../ui/attachment-selector-create.png | Bin .../ui/backup-list-item-operation-create.png | Bin .../ui/backup-tabs-create.png | Bin .../ui/comment-list-item-operation-create.png | Bin .../ui/comment-subject-ref-create.png | Bin .../extension-points/ui/dashboard-widgets.png | Bin .../default-editor-extension-bubble-menu.png | Bin .../ui/default-editor-extension-drag-menu.png | Bin .../ui/default-editor-extension-drag.png | Bin ...default-editor-extension-slash-command.png | Bin .../ui/default-editor-extension-toolbar.png | Bin .../ui/default-editor-extension-toolbox.png | Bin .../extension-points/ui/editor-create.png | Bin .../ui/plugin-installation-tabs-create.png | Bin .../ui/plugin-list-item-field-create.png | Bin .../ui/plugin-list-item-operation-create.png | Bin .../ui/plugin-self-tabs-create.png | Bin .../ui/post-list-item-field-create.png | Bin .../ui/post-list-item-operation-create.png | Bin .../ui/reply-list-item-operation-create.png | Bin .../ui/single-page-list-item-field-create.png | Bin ...single-page-list-item-operation-create.png | Bin .../ui/theme-list-item-operation-create.png | Bin .../ui/theme-list-tabs-create.png | Bin .../ui/uc-user-profile-tabs-create.png | Bin .../ui/user-detail-tabs-create.png | Bin .../developer-guide/plugin/use-devtools.png | Bin .../rest-api/swagger-ui-overview.png | Bin .../theme/custom-login-layout.png | Bin .../theme/custom-signup-layout.png | Bin .../IntelliJ-IDEA-Profiles-Win.png | Bin .../IntelliJ-IDEA-Profiles-macOS.png | Bin {static => docs/public}/img/favicon-96x96.png | Bin .../public}/img/formkit/formkit-iconify.png | Bin .../public}/img/formkit/formkit-repeater.png | Bin .../public}/img/formkit/formkit-toggle.png | Bin .../img/formkit/formkit-verify-form.png | Bin .../public}/img/halo-data-export.png | Bin ...lo-plugin-hello-world-todo-swagger-api.png | Bin .../public}/img/install/1panel/1panel.png | Bin .../img/install/1panel/app-store-halo.png | Bin .../img/install/1panel/halo-console.png | Bin .../img/install/1panel/halo-status.png | Bin .../img/install/1panel/install-halo.png | Bin .../public}/img/install/1panel/new-site.png | Bin .../img/install/1panel/openresty-mysql.png | Bin .../public}/img/install/1panel/site.png | Bin .../public}/img/install/1panel/upgrade-2.png | Bin .../public}/img/install/1panel/upgrade.png | Bin .../alibab-cloud-computenest/deploy_1.jpg | Bin .../alibab-cloud-computenest/deploy_2.jpg | Bin .../alibab-cloud-computenest/halo-setup.jpg | Bin .../1panel-add-domain.png | Bin .../1panel-installed-apps.png | Bin .../1panel-update-halo-external-url.png | Bin .../1panel-upgrade-halo.png | Bin .../alibaba-cloud-market/1panel-website.png | Bin .../install/alibaba-cloud-market/1panel.png | Bin .../install/alibaba-cloud-market/buy-1.png | Bin .../install/alibaba-cloud-market/buy-2.png | Bin .../install/alibaba-cloud-market/buy-3.jpeg | Bin .../install/alibaba-cloud-market/buy-4.jpeg | Bin .../alibaba-cloud-market/get-1panel-info.png | Bin .../install/alibaba-cloud-market/instance.png | Bin .../alibaba-cloud-market/iptables-1panel.jpeg | Bin .../alibaba-cloud-market/iptables-http.jpeg | Bin .../img/install/bt-panel/custom-compose.png | Bin .../public}/img/install/bt-panel/docker.png | Bin .../public}/img/install/bt-panel/halo-app.png | Bin .../img/install/bt-panel/install-halo.png | Bin .../img/install/bt-panel/installed.png | Bin .../img/install/bt-panel/request-ssl.png | Bin .../img/install/bt-panel/ssl-status.png | Bin .../public}/img/install/bt-panel/update.png | Bin .../tencent-cloud-lighthouse/1panel-info.png | Bin .../tencent-cloud-lighthouse/1panel-login.png | Bin .../1panel-overview.png | Bin .../tencent-cloud-lighthouse/application.png | Bin .../install/tencent-cloud-lighthouse/buy.png | Bin .../tencent-cloud-lighthouse/domain.png | Bin .../tencent-cloud-lighthouse/external-url.png | Bin .../tencent-cloud-lighthouse/firewall.png | Bin .../tencent-cloud-lighthouse/halo-setup.png | Bin .../installed-apps.png | Bin .../tencent-cloud-lighthouse/upgrade.png | Bin .../tencent-cloud-lighthouse/websites.png | Bin .../public}/img/migrate/halo1.6-export.png | Bin .../img/migrate/halo2.0-migrate-plugin-1.png | Bin .../img/migrate/halo2.0-migrate-plugin-2.png | Bin .../img/migrate/halo2.0-migrate-plugin-3.png | Bin .../img/migrate/halo2.0-migrate-plugin.png | Bin .../Nginx-Proxy-Manager-1.png | Bin .../Nginx-Proxy-Manager-2.png | Bin .../Nginx-Proxy-Manager-3.png | Bin .../Nginx-Proxy-Manager-4.png | Bin .../Nginx-Proxy-Manager-5.png | Bin .../Nginx-Proxy-Manager-6.png | Bin .../Nginx-Proxy-Manager-7.png | Bin .../Nginx-Proxy-Manager-8.png | Bin .../img/nginx-proxy-manager/npm-add-proxy.png | Bin .../img/nginx-proxy-manager/npm-dashboard.png | Bin .../img/nginx-proxy-manager/npm-ssl.png | Bin .../img/nginx-proxy-manager/npm-welcome.png | Bin .../public}/img/plugin-hello-world.png | Bin .../public}/img/setup/setup-2.20.png | Bin {static => docs/public}/img/setup/setup.png | Bin .../public}/img/theme/reload-theme-config.png | Bin {static => docs/public}/img/todo-ui.png | Bin .../public}/img/todolist-in-list.png | Bin .../public}/img/uc/totp-config.png | Bin {static => docs/public}/img/uc/totp.png | Bin {static => docs/public}/img/uc/uc-entry.png | Bin .../img/uc/uc-notification-preferences.png | Bin .../public}/img/uc/uc-notifications.png | Bin .../public}/img/uc/uc-pat-creation.png | Bin .../public}/img/uc/uc-pat-token.png | Bin {static => docs/public}/img/uc/uc-pat.png | Bin {static => docs/public}/img/uc/uc-posts.png | Bin {static => docs/public}/img/uc/uc-profile.png | Bin .../public}/img/uc/user-devices.png | Bin .../img/user-guide/activate/app-activate.png | Bin .../img/user-guide/activate/app-store.png | Bin .../activate/lxware-license-detail-apps.png | Bin .../activate/lxware-license-detail.png | Bin .../lxware-licenses-operation-detail.png | Bin .../user-guide/activate/lxware-licenses.png | Bin .../user-guide/activate/overview-activate.png | Bin .../activate/overview-activated.png | Bin .../activate/overview-deactivate.png | Bin .../activate/overview-import-license.png | Bin .../app-store-license-generate-license-1.png | Bin .../app-store-license-generate-license-2.png | Bin .../app-store-license-generate-license-3.png | Bin .../app-store-license-manage-2.22.png | Bin .../app-store/app-store-license-manage.png | Bin .../app-store-license-offline-option.png | Bin .../app-store/app-store-license-offline.png | Bin .../app-store-license-status-2.22.png | Bin .../app-store/app-store-license-status.png | Bin .../user-guide/app-store/app-store-page.png | Bin .../user-guide/app-store/app-store-pat.png | Bin .../app-store-plugin-license-2.22.png | Bin .../app-store/app-store-plugin-license.png | Bin .../app-store/app-store-plugins.png | Bin .../user-guide/app-store/app-store-themes.png | Bin .../app-store/app-store-upgrade-plugin.png | Bin .../app-store/app-store-upgrade-theme.png | Bin .../attachments/attachment-batch-operate.png | Bin .../attachments/attachment-detail.png | Bin .../attachments/attachment-group-add.png | Bin .../attachments/attachment-group-delete.png | Bin .../attachments/attachment-move.png | Bin .../attachment-policy-add-local.png | Bin .../attachments/attachment-policy-add.png | Bin .../attachments/attachment-policy-operate.png | Bin .../attachments/attachment-policy.png | Bin .../attachment-upload-multiple.png | Bin .../attachments/attachment-upload.png | Bin .../img/user-guide/backup/auto-backup.png | Bin .../img/user-guide/backup/backup-complete.png | Bin .../img/user-guide/backup/backup-running.png | Bin .../img/user-guide/backup/before-restore.png | Bin .../img/user-guide/backup/create-backup.png | Bin .../user-guide/backup/restore-complete.png | Bin .../img/user-guide/backup/restore-upload.png | Bin .../public}/img/user-guide/backup/restore.png | Bin .../img/user-guide/backup/waiting-restart.png | Bin .../public}/img/user-guide/common/login.png | Bin .../public}/img/user-guide/common/signup.png | Bin ...4\351\235\242\350\257\264\346\230\216.png" | Bin .../user-guide/menus/create-menu-item-2.png | Bin .../img/user-guide/menus/create-menu-item.png | Bin .../img/user-guide/menus/create-menu.png | Bin .../user-guide/menus/menu-item-operation.png | Bin .../img/user-guide/menus/menu-operation.png | Bin .../public}/img/user-guide/menus/menus.png | Bin .../public}/img/user-guide/menus/sort.gif | Bin .../img/user-guide/pages/page-about.png | Bin .../extension-point-settings-entry.png | Bin .../plugins/extension-point-settings.png | Bin .../img/user-guide/plugins/plugin-install.png | Bin .../img/user-guide/plugins/plugin-setting.png | Bin .../img/user-guide/plugins/plugin-switch.png | Bin .../user-guide/plugins/plugin-uninstall.png | Bin .../user-guide/posts/category-create-2.png | Bin .../img/user-guide/posts/category-create.png | Bin .../img/user-guide/posts/category-move.gif | Bin .../img/user-guide/posts/post-edit.png | Bin .../img/user-guide/posts/post-setting.png | Bin .../img/user-guide/posts/tag-create.png | Bin .../public}/img/user-guide/posts/tag-list.png | Bin .../public}/img/user-guide/settings/brand.png | Bin .../img/user-guide/settings/setting-basic.png | Bin .../img/user-guide/shop/mp-preview.png | Bin .../shop/preview-console-home-1.png | Bin .../shop/preview-console-home-2.png | Bin .../shop/preview-console-home-3.png | Bin .../shop/preview-console-order-detail.png | Bin .../shop/preview-console-order-modal.png | Bin ...view-console-order-request-fulfillment.png | Bin .../shop/preview-console-orders.png | Bin .../shop/preview-console-products.png | Bin .../shop/preview-payments-alipay.png | Bin .../shop/preview-payments-bank-transfer.png | Bin .../shop/preview-payments-qrcode.png | Bin .../shop/preview-payments-stripe-2.png | Bin .../shop/preview-payments-stripe.png | Bin .../shop/preview-payments-wechat.png | Bin .../shop/preview-payments-zpayz.png | Bin .../img/user-guide/shop/preview-product.png | Bin .../shop/products-category-create.png | Bin .../shop/products-category-selector.png | Bin .../shop/products-create-virtual.png | Bin .../img/user-guide/shop/products-create.png | Bin .../user-guide/shop/products-spec-form.png | Bin .../user-guide/shop/products-variants-0.png | Bin .../shop/products-variants-batch.png | Bin .../shop/products-variants-form.png | Bin .../img/user-guide/shop/products-variants.png | Bin .../settings-payments-alipay-app-detail.png | Bin .../settings-payments-alipay-create-app.png | Bin .../shop/settings-payments-create-2.23.png | Bin .../shop/settings-payments-create.png | Bin .../shop/settings-payments-stripe-1.png | Bin .../shop/settings-payments-stripe-2.png | Bin .../shop/settings-payments-stripe-3.png | Bin .../shop/settings-payments-stripe-4.png | Bin .../shop/settings-payments-stripe-5.png | Bin .../shop/settings-payments-stripe-6.png | Bin .../shop/settings-payments-zpayz-api.png | Bin .../shop/settings-payments-zpayz-channels.png | Bin .../img/user-guide/shop/settings-payments.png | Bin .../shop/settings-sales-channels-create.png | Bin .../shop/settings-sales-channels.png | Bin .../shop/virtual-delivery-cdk-add.png | Bin .../shop/virtual-delivery-cdk-config.png | Bin .../user-guide/shop/virtual-delivery-cdks.png | Bin .../shop/virtual-delivery-console-order.png | Bin .../shop/virtual-delivery-products.png | Bin .../shop/virtual-delivery-resource-add.png | Bin .../shop/virtual-delivery-resource-config.png | Bin .../shop/virtual-delivery-resources.png | Bin .../shop/virtual-delivery-uc-order-1.png | Bin .../shop/virtual-delivery-uc-order-2.png | Bin .../user-guide/themes/theme-install-alt.png | Bin .../img/user-guide/themes/theme-install.png | Bin .../img/user-guide/themes/theme-preview.png | Bin .../img/user-guide/themes/theme-setting.png | Bin .../img/user-guide/themes/theme-uninstall.png | Bin .../img/user-guide/user-permission.png | Bin .../user-guide/users/auth-providers-2.20+.png | Bin .../user-guide/users/auth-providers-2.22+.png | Bin .../user-guide/users/auth-providers-entry.png | Bin .../img/user-guide/users/auth-providers.png | Bin .../img/user-guide/users/role-creation.png | Bin .../img/user-guide/users/role-fork.png | Bin .../img/user-guide/users/role-management.png | Bin .../img/user-guide/users/user-operate.png | Bin .../user-guide/users/user-setting-2.20+.png | Bin .../img/user-guide/users/user-setting.png | Bin docs/public/robots.txt | 4 + docs/user-guide/activate.md | 95 - docs/user-guide/app-store.md | 102 - docs/user-guide/attachments.md | 107 - docs/user-guide/backup.md | 78 - docs/user-guide/common.md | 73 - docs/user-guide/pages.md | 20 - docs/user-guide/posts.md | 140 - docs/user-guide/settings.md | 240 - docs/user-guide/shop/index.mdx | 28 - docs/user-guide/shop/mp.mdx | 27 - docs/user-guide/shop/orders.mdx | 27 - docs/user-guide/shop/prepare.mdx | 32 - docs/user-guide/shop/products.mdx | 99 - docs/user-guide/shop/virtual-delivery.mdx | 260 - docs/user-guide/themes.md | 98 - docs/user-guide/user-center.md | 75 - docusaurus.config.js | 265 - edgeone.json | 163 + i18n/zh-Hans/code.json | 335 - .../current.json | 130 - .../version-2.20.json | 114 - .../version-2.21.json | 118 - .../version-2.22.json | 122 - .../version-2.23.json | 126 - .../version-2.24.json | 130 - .../version-2.25.json | 130 - .../version-2.26.json | 126 - .../docusaurus-theme-classic/footer.json | 58 - .../docusaurus-theme-classic/navbar.json | 34 - netlify.toml | 7 - package.json | 83 +- pnpm-lock.yaml | 16562 +++------------- pnpm-workspace.yaml | 8 +- rspress.config.ts | 76 + sidebars.js | 473 - skills-lock.json | 23 + src/components/.gitkeep | 0 src/css/custom.css | 52 - src/css/shiki.scss | 185 - src/images/pro-ad.png | Bin 24243 -> 0 bytes src/pages/versions.tsx | 143 - src/shiki/meta-transformer.js | 32 - src/theme/MDXComponents/Code.tsx | 27 - src/theme/MDXComponents/Pre.tsx | 71 - src/theme/SearchBar.js | 25 - src/theme/TOC/index.tsx | 31 - src/theme/TOC/styles.module.css | 16 - static/.nojekyll | 0 static/robots.txt | 13 - styles/index.scss | 502 + theme/FooterColumns.tsx | 154 + theme/index.tsx | 8 + theme/override.css | 5 + tsconfig.json | 28 + versioned_docs/version-2.22/about.md | 16 - .../version-2.22/contribution/issue.md | 29 - .../version-2.22/contribution/pr.md | 110 - .../developer-guide/annotations-form.md | 89 - .../developer-guide/appendix/publish-app.md | 136 - .../developer-guide/core/build.md | 84 - .../developer-guide/core/code-style.md | 30 - .../developer-guide/core/framework.md | 96 - .../developer-guide/core/prepare.md | 25 - .../version-2.22/developer-guide/core/run.md | 122 - .../developer-guide/core/structure.md | 36 - .../developer-guide/form-schema.md | 869 - .../developer-guide/plugin/api-changelog.md | 205 - .../api-reference/server/extension-client.md | 234 - .../api-reference/server/extension-getter.md | 72 - .../plugin/api-reference/server/extension.md | 707 - .../api-reference/server/finder-for-theme.md | 60 - .../server/login-handler-enhancer.md | 63 - .../api-reference/server/notification.md | 475 - .../plugin/api-reference/server/reconciler.md | 367 - .../api-reference/server/reverseproxy.md | 36 - .../api-reference/server/setting-fetcher.md | 139 - .../server/template-for-theme.md | 90 - .../plugin/api-reference/server/websocket.md | 46 - .../plugin/api-reference/ui/api-request.md | 70 - .../ui/components/annotations-form.md | 55 - .../components/attachment-file-type-icon.md | 25 - .../components/attachment-selector-modal.md | 50 - .../ui/components/filter-clean-button.md | 18 - .../ui/components/filter-dropdown.md | 48 - .../ui/components/has-permission.md | 26 - .../api-reference/ui/components/index.md | 42 - .../ui/components/plugin-detail-modal.md | 30 - .../ui/components/search-input.md | 33 - .../ui/components/uppy-upload.md | 47 - .../ui/components/v-codemirror.md | 36 - .../ui/components/v-permission.md | 18 - .../api-reference/ui/components/v-tooltip.md | 18 - .../plugin/api-reference/ui/route.md | 120 - .../plugin/api-reference/ui/shared.md | 407 - .../developer-guide/plugin/appendices.md | 4 - .../developer-guide/plugin/basics/devtools.md | 445 - .../developer-guide/plugin/basics/manifest.md | 118 - .../plugin/basics/server/lifecycle.md | 46 - .../plugin/basics/server/object-management.md | 260 - .../plugin/basics/structure.md | 70 - .../developer-guide/plugin/basics/ui/build.md | 423 - .../developer-guide/plugin/basics/ui/entry.md | 165 - .../developer-guide/plugin/basics/ui/intro.md | 12 - .../plugin/examples/todolist.md | 484 - .../server/additional-webfilter.md | 76 - .../extension-points/server/attachment.md | 55 - .../server/authentication-webfilter.md | 81 - .../server/comment-subject.md | 83 - .../extension-points/server/comment-widget.md | 41 - .../plugin/extension-points/server/index.md | 65 - .../extension-points/server/notifier.md | 60 - .../extension-points/server/post-content.md | 43 - .../server/singlepage-content.md | 38 - .../server/template-footer-processor.md | 77 - .../server/template-head-processor.md | 87 - ...sername-password-authentication-manager.md | 30 - .../attachment-list-item-operation-create.md | 98 - .../ui/attachment-selector-create.md | 158 - .../ui/backup-list-item-operation-create.md | 41 - .../extension-points/ui/backup-tabs-create.md | 36 - .../ui/comment-list-item-operation-create.md | 81 - .../ui/comment-subject-ref-create.md | 114 - .../extension-points/ui/dashboard-widgets.md | 284 - .../ui/default-editor-extension-create.md | 525 - .../extension-points/ui/editor-create.md | 188 - .../plugin/extension-points/ui/index.md | 14 - .../ui/interface/Attachment.md | 25 - .../ui/interface/ListedComment.md | 64 - .../ui/interface/ListedPost.md | 117 - .../ui/interface/ListedReply.md | 49 - .../ui/interface/ListedSinglePage.md | 70 - .../ui/interface/OperationItem.md | 12 - .../extension-points/ui/interface/Plugin.md | 50 - .../extension-points/ui/interface/Theme.md | 63 - .../ui/plugin-installation-tabs-create.md | 44 - .../ui/plugin-list-item-field-create.md | 84 - .../ui/plugin-list-item-operation-create.md | 55 - .../ui/plugin-self-tabs-create.md | 90 - .../ui/post-list-item-field-create.md | 80 - .../ui/post-list-item-operation-create.md | 92 - .../ui/reply-list-item-operation-create.md | 81 - .../ui/single-page-list-item-field-create.md | 80 - .../single-page-list-item-operation-create.md | 92 - .../ui/theme-list-tabs-create.md | 44 - .../ui/uc-user-profile-tabs-create.md | 41 - .../ui/user-detail-tabs-create.md | 41 - .../developer-guide/plugin/hello-world.md | 138 - .../plugin/interaction/dependency.md | 331 - .../interaction/making-plugin-extensible.md | 90 - .../plugin/interaction/shared-events.md | 161 - .../developer-guide/plugin/introduction.md | 6 - .../developer-guide/plugin/prepare.md | 17 - .../developer-guide/plugin/security/rbac.md | 251 - .../plugin/security/role-template.md | 211 - .../plugin/security/ui-permission.md | 101 - .../developer-guide/restful-api/api-client.md | 112 - .../restful-api/introduction.md | 107 - .../developer-guide/theme/annotations.md | 64 - .../developer-guide/theme/api-changelog.md | 34 - .../developer-guide/theme/code-snippets.md | 47 - .../developer-guide/theme/config.md | 95 - .../developer-guide/theme/finder-apis.md | 10 - .../theme/finder-apis/comment.md | 155 - .../theme/finder-apis/contributor.md | 64 - .../developer-guide/theme/finder-apis/menu.md | 87 - .../theme/finder-apis/plugin.md | 63 - .../developer-guide/theme/finder-apis/post.md | 520 - .../theme/finder-apis/single-page.md | 131 - .../theme/finder-apis/site-stats.md | 45 - .../developer-guide/theme/finder-apis/tag.md | 147 - .../theme/finder-apis/theme.md | 119 - .../developer-guide/theme/global-variables.md | 64 - .../theme/image-optimization.md | 80 - .../developer-guide/theme/prepare.md | 110 - .../developer-guide/theme/settings.md | 139 - .../developer-guide/theme/static-resources.md | 55 - .../developer-guide/theme/structure.md | 33 - .../theme/template-route-mapping.md | 87 - .../developer-guide/theme/template-tag.md | 56 - .../theme/template-variables.md | 11 - .../theme/template-variables/archives.md | 110 - .../theme/template-variables/auth.md | 130 - .../theme/template-variables/author.md | 106 - .../theme/template-variables/categories.md | 56 - .../theme/template-variables/category.md | 146 - .../theme/template-variables/error.md | 45 - .../theme/template-variables/index_.md | 100 - .../theme/template-variables/post.md | 97 - .../theme/template-variables/tag.md | 107 - .../theme/template-variables/tags.md | 41 - .../theme/vo/_CategoryTreeVo.md | 31 - .../developer-guide/theme/vo/_CategoryVo.md | 29 - .../developer-guide/theme/vo/_CommentVo.md | 53 - .../developer-guide/theme/vo/_ContentVo.md | 6 - .../theme/vo/_ContributorVo.md | 19 - .../developer-guide/theme/vo/_ListedPostVo.md | 65 - .../theme/vo/_ListedSinglePageVo.md | 57 - .../developer-guide/theme/vo/_MenuItemVo.md | 44 - .../developer-guide/theme/vo/_MenuVo.md | 21 - .../developer-guide/theme/vo/_PostVo.md | 66 - .../developer-guide/theme/vo/_ReplyVo.md | 42 - .../developer-guide/theme/vo/_SinglePageVo.md | 58 - .../theme/vo/_SiteSettingVo.md | 33 - .../developer-guide/theme/vo/_TagVo.md | 24 - .../developer-guide/theme/vo/_ThemeVo.md | 36 - .../developer-guide/theme/vo/_UserVo.md | 27 - .../getting-started/first-post.md | 32 - .../getting-started/install/1panel.md | 95 - .../cloud/alibaba-cloud-computenest.md | 19 - .../install/cloud/alibaba-cloud-market.md | 59 - .../install/cloud/tencent-cloud-lighthouse.md | 71 - .../getting-started/install/config.md | 299 - .../getting-started/install/docker-compose.md | 345 - .../getting-started/install/docker.md | 85 - .../getting-started/install/helm.md | 142 - .../getting-started/install/jar-file.md | 359 - .../getting-started/install/offline.md | 106 - .../install/other/nginxproxymanager.md | 128 - .../getting-started/install/other/traefik.md | 117 - .../getting-started/install/podman.md | 234 - .../install/slots/_docker-args.md | 68 - .../install/slots/_docker-registry-list.md | 28 - .../getting-started/migrate-from-1.x.md | 82 - .../version-2.22/getting-started/prepare.md | 141 - .../version-2.22/getting-started/setup.md | 18 - versioned_docs/version-2.22/intro.md | 78 - .../version-2.22/user-guide/activate.md | 95 - .../version-2.22/user-guide/app-store.md | 102 - .../version-2.22/user-guide/attachments.md | 107 - .../version-2.22/user-guide/backup.md | 78 - .../version-2.22/user-guide/common.md | 73 - versioned_docs/version-2.22/user-guide/faq.md | 139 - .../version-2.22/user-guide/menus.md | 64 - .../version-2.22/user-guide/pages.md | 20 - .../version-2.22/user-guide/plugins.md | 103 - .../version-2.22/user-guide/posts.md | 140 - .../version-2.22/user-guide/settings.md | 227 - .../version-2.22/user-guide/shop/index.mdx | 28 - .../version-2.22/user-guide/shop/orders.mdx | 27 - .../version-2.22/user-guide/shop/payments.mdx | 181 - .../version-2.22/user-guide/shop/prepare.mdx | 32 - .../version-2.22/user-guide/shop/products.mdx | 95 - .../user-guide/shop/sales-channels.mdx | 33 - .../user-guide/shop/theme-dev.mdx | 11 - .../version-2.22/user-guide/themes.md | 98 - .../version-2.22/user-guide/user-center.md | 75 - .../version-2.22/user-guide/users.md | 124 - versioned_docs/version-2.23/about.md | 16 - .../version-2.23/contribution/issue.md | 29 - .../version-2.23/contribution/pr.md | 110 - .../developer-guide/annotations-form.md | 89 - .../developer-guide/appendix/publish-app.md | 136 - .../developer-guide/core/build.md | 84 - .../developer-guide/core/code-style.md | 30 - .../developer-guide/core/framework.md | 96 - .../developer-guide/core/prepare.md | 25 - .../version-2.23/developer-guide/core/run.md | 115 - .../developer-guide/core/structure.md | 36 - .../developer-guide/form-schema.md | 873 - .../developer-guide/plugin/api-changelog.md | 238 - .../api-reference/server/extension-client.md | 234 - .../api-reference/server/extension-getter.md | 72 - .../plugin/api-reference/server/extension.md | 707 - .../api-reference/server/finder-for-theme.md | 60 - .../server/login-handler-enhancer.md | 63 - .../api-reference/server/notification.md | 475 - .../plugin/api-reference/server/reconciler.md | 367 - .../api-reference/server/reverseproxy.md | 36 - .../api-reference/server/setting-fetcher.md | 139 - .../server/template-for-theme.md | 90 - .../plugin/api-reference/server/websocket.md | 46 - .../plugin/api-reference/ui/api-request.md | 70 - .../ui/components/annotations-form.md | 55 - .../components/attachment-file-type-icon.md | 25 - .../components/attachment-selector-modal.md | 50 - .../ui/components/filter-clean-button.md | 18 - .../ui/components/filter-dropdown.md | 48 - .../ui/components/has-permission.md | 26 - .../api-reference/ui/components/index.md | 42 - .../ui/components/plugin-detail-modal.md | 30 - .../ui/components/search-input.md | 33 - .../ui/components/uppy-upload.md | 47 - .../ui/components/v-codemirror.md | 36 - .../ui/components/v-permission.md | 18 - .../api-reference/ui/components/v-tooltip.md | 18 - .../plugin/api-reference/ui/route.md | 120 - .../plugin/api-reference/ui/shared.md | 407 - .../developer-guide/plugin/appendices.md | 4 - .../developer-guide/plugin/basics/devtools.md | 445 - .../developer-guide/plugin/basics/manifest.md | 118 - .../plugin/basics/server/lifecycle.md | 46 - .../plugin/basics/server/object-management.md | 260 - .../plugin/basics/structure.md | 70 - .../developer-guide/plugin/basics/ui/build.md | 423 - .../developer-guide/plugin/basics/ui/entry.md | 165 - .../developer-guide/plugin/basics/ui/intro.md | 12 - .../plugin/examples/todolist.md | 484 - .../server/additional-webfilter.md | 76 - .../extension-points/server/attachment.md | 55 - .../server/authentication-webfilter.md | 81 - .../server/comment-subject.md | 83 - .../extension-points/server/comment-widget.md | 41 - .../plugin/extension-points/server/index.md | 65 - .../extension-points/server/notifier.md | 60 - .../extension-points/server/post-content.md | 43 - .../server/singlepage-content.md | 38 - .../server/template-footer-processor.md | 77 - .../server/template-head-processor.md | 87 - ...sername-password-authentication-manager.md | 30 - .../ui/attachment-selector-create.md | 158 - .../extension-points/ui/backup-tabs-create.md | 36 - .../ui/comment-subject-ref-create.md | 114 - .../extension-points/ui/dashboard-widgets.md | 284 - .../ui/default-editor-extension-create.md | 525 - .../extension-points/ui/editor-create.md | 188 - .../ui/interface/Attachment.md | 25 - .../ui/interface/ListedComment.md | 64 - .../ui/interface/ListedPost.md | 117 - .../ui/interface/ListedReply.md | 49 - .../ui/interface/ListedSinglePage.md | 70 - .../ui/interface/OperationItem.md | 12 - .../extension-points/ui/interface/Plugin.md | 50 - .../extension-points/ui/interface/Theme.md | 63 - .../ui/plugin-installation-tabs-create.md | 44 - .../ui/plugin-list-item-field-create.md | 84 - .../ui/plugin-list-item-operation-create.md | 55 - .../ui/post-list-item-operation-create.md | 92 - .../ui/reply-list-item-operation-create.md | 81 - .../ui/theme-list-item-operation-create.md | 91 - .../ui/theme-list-tabs-create.md | 44 - .../ui/uc-user-profile-tabs-create.md | 41 - .../ui/user-detail-tabs-create.md | 41 - .../developer-guide/plugin/hello-world.md | 138 - .../plugin/interaction/dependency.md | 331 - .../interaction/making-plugin-extensible.md | 90 - .../plugin/interaction/shared-events.md | 161 - .../developer-guide/plugin/introduction.md | 6 - .../developer-guide/plugin/prepare.md | 17 - .../developer-guide/plugin/security/rbac.md | 251 - .../plugin/security/role-template.md | 211 - .../plugin/security/ui-permission.md | 101 - .../developer-guide/restful-api/api-client.md | 112 - .../restful-api/introduction.md | 108 - .../developer-guide/theme/annotations.md | 64 - .../developer-guide/theme/api-changelog.md | 40 - .../developer-guide/theme/code-snippets.md | 47 - .../developer-guide/theme/config.md | 95 - .../developer-guide/theme/finder-apis.md | 10 - .../theme/finder-apis/category.md | 224 - .../theme/finder-apis/comment.md | 155 - .../theme/finder-apis/contributor.md | 64 - .../developer-guide/theme/finder-apis/menu.md | 87 - .../theme/finder-apis/plugin.md | 63 - .../developer-guide/theme/finder-apis/post.md | 520 - .../theme/finder-apis/single-page.md | 131 - .../theme/finder-apis/site-stats.md | 45 - .../theme/finder-apis/theme.md | 119 - .../developer-guide/theme/global-variables.md | 64 - .../theme/image-optimization.md | 80 - .../developer-guide/theme/prepare.md | 113 - .../developer-guide/theme/settings.md | 139 - .../developer-guide/theme/static-resources.md | 55 - .../developer-guide/theme/structure.md | 33 - .../theme/template-route-mapping.md | 87 - .../developer-guide/theme/template-tag.md | 56 - .../theme/template-variables/archives.md | 110 - .../theme/template-variables/auth.md | 130 - .../theme/template-variables/author.md | 106 - .../theme/template-variables/categories.md | 56 - .../theme/template-variables/error.md | 45 - .../theme/template-variables/index_.md | 100 - .../theme/template-variables/page.md | 90 - .../theme/template-variables/tag.md | 107 - .../theme/template-variables/tags.md | 41 - .../theme/vo/_CategoryTreeVo.md | 31 - .../developer-guide/theme/vo/_CategoryVo.md | 29 - .../developer-guide/theme/vo/_CommentVo.md | 53 - .../developer-guide/theme/vo/_ContentVo.md | 6 - .../theme/vo/_ContributorVo.md | 19 - .../developer-guide/theme/vo/_ListedPostVo.md | 65 - .../theme/vo/_ListedSinglePageVo.md | 57 - .../developer-guide/theme/vo/_MenuItemVo.md | 44 - .../developer-guide/theme/vo/_MenuVo.md | 21 - .../developer-guide/theme/vo/_PostVo.md | 66 - .../developer-guide/theme/vo/_ReplyVo.md | 42 - .../developer-guide/theme/vo/_SinglePageVo.md | 58 - .../theme/vo/_SiteSettingVo.md | 34 - .../developer-guide/theme/vo/_TagVo.md | 24 - .../developer-guide/theme/vo/_ThemeVo.md | 36 - .../developer-guide/theme/vo/_UserVo.md | 27 - .../getting-started/install/1panel.md | 95 - .../cloud/alibaba-cloud-computenest.md | 19 - .../install/cloud/alibaba-cloud-market.md | 59 - .../getting-started/install/config.md | 299 - .../getting-started/install/docker-compose.md | 345 - .../getting-started/install/docker.md | 85 - .../getting-started/install/helm.md | 142 - .../getting-started/install/jar-file.md | 364 - .../getting-started/install/offline.md | 106 - .../install/other/nginxproxymanager.md | 128 - .../getting-started/install/other/traefik.md | 117 - .../getting-started/install/podman.md | 234 - .../install/slots/_docker-args.md | 68 - .../install/slots/_docker-registry-list.md | 28 - .../getting-started/migrate-from-1.x.md | 82 - .../version-2.23/getting-started/prepare.md | 141 - .../version-2.23/getting-started/setup.md | 18 - versioned_docs/version-2.23/intro.md | 106 - .../version-2.23/user-guide/activate.md | 95 - .../version-2.23/user-guide/common.md | 73 - versioned_docs/version-2.23/user-guide/faq.md | 139 - .../version-2.23/user-guide/menus.md | 64 - .../version-2.23/user-guide/pages.md | 20 - .../version-2.23/user-guide/plugins.md | 103 - .../version-2.23/user-guide/settings.md | 227 - .../user-guide/shop/console-home.mdx | 12 - .../version-2.23/user-guide/shop/index.mdx | 28 - .../version-2.23/user-guide/shop/payments.mdx | 292 - .../version-2.23/user-guide/shop/prepare.mdx | 32 - .../version-2.23/user-guide/shop/products.mdx | 99 - .../user-guide/shop/sales-channels.mdx | 33 - .../user-guide/shop/theme-dev.mdx | 12 - .../version-2.23/user-guide/users.md | 124 - versioned_docs/version-2.24/about.md | 16 - .../version-2.24/contribution/issue.md | 29 - .../version-2.24/contribution/pr.md | 110 - .../developer-guide/annotations-form.md | 89 - .../app-store/app-review-guidelines.md | 343 - .../developer-guide/app-store/publish-app.md | 57 - .../developer-guide/appendix/publish-app.md | 111 - .../developer-guide/core/build.md | 84 - .../developer-guide/core/code-style.md | 30 - .../developer-guide/core/framework.md | 96 - .../developer-guide/core/prepare.md | 25 - .../version-2.24/developer-guide/core/run.md | 115 - .../developer-guide/core/structure.md | 36 - .../developer-guide/form-schema.md | 873 - .../developer-guide/plugin/api-changelog.md | 238 - .../api-reference/server/extension-client.md | 234 - .../api-reference/server/extension-getter.md | 72 - .../plugin/api-reference/server/extension.md | 707 - .../api-reference/server/finder-for-theme.md | 60 - .../server/login-handler-enhancer.md | 63 - .../api-reference/server/notification.md | 475 - .../plugin/api-reference/server/reconciler.md | 367 - .../api-reference/server/reverseproxy.md | 36 - .../api-reference/server/setting-fetcher.md | 139 - .../server/template-for-theme.md | 90 - .../plugin/api-reference/server/websocket.md | 46 - .../plugin/api-reference/ui/api-request.md | 70 - .../ui/components/annotations-form.md | 55 - .../components/attachment-file-type-icon.md | 25 - .../components/attachment-selector-modal.md | 50 - .../ui/components/filter-clean-button.md | 18 - .../ui/components/filter-dropdown.md | 48 - .../ui/components/has-permission.md | 26 - .../api-reference/ui/components/index.md | 42 - .../ui/components/plugin-detail-modal.md | 30 - .../ui/components/search-input.md | 33 - .../ui/components/uppy-upload.md | 47 - .../ui/components/v-codemirror.md | 36 - .../ui/components/v-permission.md | 18 - .../api-reference/ui/components/v-tooltip.md | 18 - .../plugin/api-reference/ui/route.md | 120 - .../plugin/api-reference/ui/shared.md | 407 - .../developer-guide/plugin/appendices.md | 4 - .../developer-guide/plugin/basics/devtools.md | 445 - .../developer-guide/plugin/basics/manifest.md | 118 - .../plugin/basics/server/lifecycle.md | 46 - .../plugin/basics/server/object-management.md | 260 - .../plugin/basics/structure.md | 70 - .../developer-guide/plugin/basics/ui/build.md | 423 - .../developer-guide/plugin/basics/ui/entry.md | 165 - .../developer-guide/plugin/basics/ui/intro.md | 12 - .../plugin/examples/todolist.md | 484 - .../server/additional-webfilter.md | 76 - .../extension-points/server/attachment.md | 55 - .../server/authentication-webfilter.md | 81 - .../server/comment-subject.md | 83 - .../extension-points/server/comment-widget.md | 41 - .../server/excerpt-generator.md | 53 - .../plugin/extension-points/server/index.md | 65 - .../extension-points/server/notifier.md | 60 - .../extension-points/server/post-content.md | 43 - .../extension-points/server/search-engine.md | 72 - .../server/singlepage-content.md | 38 - .../server/template-footer-processor.md | 77 - .../server/template-head-processor.md | 87 - ...sername-password-authentication-manager.md | 30 - .../attachment-list-item-operation-create.md | 98 - .../ui/attachment-selector-create.md | 158 - .../ui/backup-list-item-operation-create.md | 41 - .../extension-points/ui/backup-tabs-create.md | 36 - .../ui/comment-list-item-operation-create.md | 81 - .../ui/comment-subject-ref-create.md | 114 - .../extension-points/ui/dashboard-widgets.md | 284 - .../ui/default-editor-extension-create.md | 525 - .../extension-points/ui/editor-create.md | 188 - .../plugin/extension-points/ui/index.md | 14 - .../ui/interface/Attachment.md | 25 - .../ui/interface/ListedComment.md | 64 - .../ui/interface/ListedPost.md | 117 - .../ui/interface/ListedReply.md | 49 - .../ui/interface/ListedSinglePage.md | 70 - .../ui/interface/OperationItem.md | 12 - .../extension-points/ui/interface/Plugin.md | 50 - .../extension-points/ui/interface/Theme.md | 63 - .../ui/plugin-installation-tabs-create.md | 44 - .../ui/plugin-list-item-field-create.md | 84 - .../ui/plugin-list-item-operation-create.md | 55 - .../ui/plugin-self-tabs-create.md | 90 - .../ui/post-list-item-field-create.md | 80 - .../ui/post-list-item-operation-create.md | 92 - .../ui/reply-list-item-operation-create.md | 81 - .../ui/single-page-list-item-field-create.md | 80 - .../single-page-list-item-operation-create.md | 92 - .../ui/theme-list-item-operation-create.md | 91 - .../ui/theme-list-tabs-create.md | 44 - .../ui/uc-user-profile-tabs-create.md | 41 - .../ui/user-detail-tabs-create.md | 41 - .../developer-guide/plugin/hello-world.md | 138 - .../plugin/interaction/dependency.md | 331 - .../interaction/making-plugin-extensible.md | 90 - .../plugin/interaction/shared-events.md | 161 - .../developer-guide/plugin/introduction.md | 6 - .../developer-guide/plugin/prepare.md | 29 - .../developer-guide/plugin/security/rbac.md | 251 - .../plugin/security/role-template.md | 211 - .../plugin/security/ui-permission.md | 101 - .../developer-guide/restful-api/api-client.md | 112 - .../restful-api/introduction.md | 108 - .../developer-guide/theme/annotations.md | 64 - .../developer-guide/theme/api-changelog.md | 46 - .../developer-guide/theme/code-snippets.md | 47 - .../developer-guide/theme/config.md | 95 - .../developer-guide/theme/finder-apis.md | 10 - .../theme/finder-apis/category.md | 224 - .../theme/finder-apis/comment.md | 155 - .../theme/finder-apis/contributor.md | 64 - .../developer-guide/theme/finder-apis/menu.md | 87 - .../theme/finder-apis/plugin.md | 63 - .../developer-guide/theme/finder-apis/post.md | 548 - .../theme/finder-apis/single-page.md | 131 - .../theme/finder-apis/site-stats.md | 45 - .../developer-guide/theme/finder-apis/tag.md | 147 - .../theme/finder-apis/theme.md | 119 - .../developer-guide/theme/global-variables.md | 64 - .../theme/image-optimization.md | 80 - .../developer-guide/theme/prepare.md | 123 - .../developer-guide/theme/settings.md | 139 - .../developer-guide/theme/static-resources.md | 55 - .../developer-guide/theme/structure.md | 33 - .../theme/template-route-mapping.md | 87 - .../developer-guide/theme/template-tag.md | 56 - .../theme/template-variables.md | 11 - .../theme/template-variables/archives.md | 110 - .../theme/template-variables/auth.md | 130 - .../theme/template-variables/author.md | 106 - .../theme/template-variables/categories.md | 56 - .../theme/template-variables/category.md | 146 - .../theme/template-variables/error.md | 45 - .../theme/template-variables/index_.md | 100 - .../theme/template-variables/page.md | 90 - .../theme/template-variables/post.md | 97 - .../theme/template-variables/tag.md | 107 - .../theme/template-variables/tags.md | 41 - .../theme/vo/_CategoryTreeVo.md | 31 - .../developer-guide/theme/vo/_CategoryVo.md | 29 - .../developer-guide/theme/vo/_CommentVo.md | 53 - .../developer-guide/theme/vo/_ContentVo.md | 6 - .../theme/vo/_ContributorVo.md | 19 - .../developer-guide/theme/vo/_ListedPostVo.md | 65 - .../theme/vo/_ListedSinglePageVo.md | 57 - .../developer-guide/theme/vo/_MenuItemVo.md | 44 - .../developer-guide/theme/vo/_MenuVo.md | 21 - .../developer-guide/theme/vo/_PostVo.md | 66 - .../developer-guide/theme/vo/_ReplyVo.md | 42 - .../developer-guide/theme/vo/_SinglePageVo.md | 58 - .../theme/vo/_SiteSettingVo.md | 34 - .../developer-guide/theme/vo/_TagVo.md | 24 - .../developer-guide/theme/vo/_ThemeVo.md | 36 - .../developer-guide/theme/vo/_UserVo.md | 27 - .../getting-started/first-post.md | 32 - .../getting-started/install/1panel.md | 95 - .../getting-started/install/bt-panel.md | 92 - .../cloud/alibaba-cloud-computenest.md | 19 - .../install/cloud/tencent-cloud-lighthouse.md | 71 - .../getting-started/install/config.md | 297 - .../getting-started/install/docker-compose.md | 345 - .../getting-started/install/docker.md | 85 - .../getting-started/install/helm.md | 142 - .../getting-started/install/jar-file.md | 364 - .../getting-started/install/offline.md | 106 - .../install/other/nginxproxymanager.md | 244 - .../getting-started/install/other/traefik.md | 117 - .../getting-started/install/podman.md | 234 - .../install/slots/_docker-args.md | 68 - .../install/slots/_docker-registry-list.md | 28 - .../getting-started/migrate-from-1.x.md | 82 - .../version-2.24/getting-started/prepare.md | 141 - .../version-2.24/getting-started/setup.md | 18 - versioned_docs/version-2.24/intro.md | 106 - .../version-2.24/user-guide/activate.md | 95 - .../version-2.24/user-guide/app-store.md | 102 - .../version-2.24/user-guide/attachments.md | 107 - .../version-2.24/user-guide/backup.md | 78 - .../version-2.24/user-guide/common.md | 73 - versioned_docs/version-2.24/user-guide/faq.md | 139 - .../version-2.24/user-guide/menus.md | 64 - .../version-2.24/user-guide/pages.md | 20 - .../version-2.24/user-guide/plugins.md | 103 - .../version-2.24/user-guide/posts.md | 140 - .../version-2.24/user-guide/settings.md | 227 - .../user-guide/shop/console-home.mdx | 12 - .../version-2.24/user-guide/shop/index.mdx | 28 - .../version-2.24/user-guide/shop/orders.mdx | 27 - .../version-2.24/user-guide/shop/payments.mdx | 292 - .../version-2.24/user-guide/shop/prepare.mdx | 32 - .../user-guide/shop/sales-channels.mdx | 33 - .../user-guide/shop/theme-dev.mdx | 12 - .../user-guide/shop/virtual-delivery.mdx | 260 - .../version-2.24/user-guide/themes.md | 98 - .../version-2.24/user-guide/user-center.md | 75 - .../version-2.24/user-guide/users.md | 124 - versioned_docs/version-2.25/about.md | 16 - .../version-2.25/contribution/issue.md | 29 - .../version-2.25/contribution/pr.md | 110 - .../developer-guide/annotations-form.md | 89 - .../app-store/app-review-guidelines.md | 359 - .../developer-guide/app-store/publish-app.md | 257 - .../developer-guide/core/build.md | 84 - .../developer-guide/core/code-style.md | 30 - .../developer-guide/core/framework.md | 96 - .../developer-guide/core/prepare.md | 25 - .../version-2.25/developer-guide/core/run.md | 115 - .../developer-guide/core/structure.md | 36 - .../developer-guide/form-schema.md | 905 - .../developer-guide/plugin/api-changelog.md | 254 - .../api-reference/server/extension-client.md | 234 - .../api-reference/server/extension-getter.md | 72 - .../plugin/api-reference/server/extension.md | 707 - .../api-reference/server/finder-for-theme.md | 60 - .../server/login-handler-enhancer.md | 63 - .../api-reference/server/notification.md | 475 - .../plugin/api-reference/server/reconciler.md | 367 - .../api-reference/server/reverseproxy.md | 36 - .../api-reference/server/setting-fetcher.md | 139 - .../server/template-for-theme.md | 90 - .../plugin/api-reference/server/websocket.md | 46 - .../plugin/api-reference/ui/api-request.md | 70 - .../ui/components/annotations-form.md | 55 - .../components/attachment-file-type-icon.md | 25 - .../components/attachment-selector-modal.md | 50 - .../ui/components/filter-clean-button.md | 18 - .../ui/components/filter-dropdown.md | 48 - .../ui/components/has-permission.md | 26 - .../api-reference/ui/components/index.md | 42 - .../ui/components/plugin-detail-modal.md | 30 - .../ui/components/search-input.md | 33 - .../ui/components/uppy-upload.md | 47 - .../ui/components/v-codemirror.md | 36 - .../ui/components/v-permission.md | 18 - .../api-reference/ui/components/v-tooltip.md | 18 - .../plugin/api-reference/ui/formkit.md | 40 - .../plugin/api-reference/ui/route.md | 120 - .../plugin/api-reference/ui/shared.md | 407 - .../developer-guide/plugin/appendices.md | 4 - .../developer-guide/plugin/basics/devtools.md | 445 - .../developer-guide/plugin/basics/manifest.md | 118 - .../plugin/basics/server/lifecycle.md | 46 - .../plugin/basics/server/object-management.md | 260 - .../plugin/basics/structure.md | 70 - .../developer-guide/plugin/basics/ui/build.md | 423 - .../developer-guide/plugin/basics/ui/entry.md | 175 - .../developer-guide/plugin/basics/ui/intro.md | 12 - .../plugin/examples/todolist.md | 484 - .../server/additional-webfilter.md | 76 - .../extension-points/server/attachment.md | 55 - .../server/authentication-webfilter.md | 174 - .../server/comment-subject.md | 83 - .../extension-points/server/comment-widget.md | 41 - .../server/element-tag-post-processor.md | 38 - .../server/excerpt-generator.md | 53 - .../server/halo-documents-provider.md | 39 - .../plugin/extension-points/server/index.md | 65 - .../extension-points/server/notifier.md | 60 - .../extension-points/server/post-content.md | 43 - .../extension-points/server/search-engine.md | 72 - .../server/singlepage-content.md | 38 - .../server/template-footer-processor.md | 77 - .../server/template-head-processor.md | 87 - .../server/user-creating-handler.md | 62 - ...sername-password-authentication-manager.md | 30 - .../attachment-list-item-operation-create.md | 98 - .../ui/attachment-selector-create.md | 158 - .../ui/backup-list-item-operation-create.md | 41 - .../extension-points/ui/backup-tabs-create.md | 36 - .../ui/comment-list-item-operation-create.md | 81 - .../ui/comment-subject-ref-create.md | 114 - .../extension-points/ui/dashboard-widgets.md | 284 - .../ui/default-editor-extension-create.md | 525 - .../extension-points/ui/editor-create.md | 188 - .../plugin/extension-points/ui/index.md | 14 - .../ui/interface/Attachment.md | 25 - .../ui/interface/ListedComment.md | 64 - .../ui/interface/ListedPost.md | 117 - .../ui/interface/ListedReply.md | 49 - .../ui/interface/ListedSinglePage.md | 70 - .../ui/interface/OperationItem.md | 12 - .../extension-points/ui/interface/Plugin.md | 50 - .../extension-points/ui/interface/Theme.md | 63 - .../ui/plugin-installation-tabs-create.md | 44 - .../ui/plugin-list-item-field-create.md | 84 - .../ui/plugin-list-item-operation-create.md | 55 - .../ui/plugin-self-tabs-create.md | 90 - .../ui/post-list-item-field-create.md | 80 - .../ui/post-list-item-operation-create.md | 92 - .../ui/reply-list-item-operation-create.md | 81 - .../ui/single-page-list-item-field-create.md | 80 - .../single-page-list-item-operation-create.md | 92 - .../ui/theme-list-item-operation-create.md | 91 - .../ui/theme-list-tabs-create.md | 44 - .../ui/uc-user-profile-tabs-create.md | 41 - .../ui/user-detail-tabs-create.md | 41 - .../developer-guide/plugin/hello-world.md | 138 - .../plugin/interaction/dependency.md | 331 - .../interaction/making-plugin-extensible.md | 90 - .../plugin/interaction/shared-events.md | 161 - .../developer-guide/plugin/introduction.md | 6 - .../developer-guide/plugin/prepare.md | 29 - .../developer-guide/plugin/security/rbac.md | 251 - .../plugin/security/role-template.md | 211 - .../plugin/security/ui-permission.md | 101 - .../developer-guide/restful-api/api-client.md | 112 - .../restful-api/introduction.md | 108 - .../developer-guide/theme/annotations.md | 64 - .../developer-guide/theme/api-changelog.md | 66 - .../developer-guide/theme/code-snippets.md | 47 - .../developer-guide/theme/config.md | 95 - .../developer-guide/theme/finder-apis.md | 10 - .../theme/finder-apis/category.md | 224 - .../theme/finder-apis/comment.md | 155 - .../theme/finder-apis/contributor.md | 64 - .../developer-guide/theme/finder-apis/menu.md | 87 - .../theme/finder-apis/plugin.md | 63 - .../developer-guide/theme/finder-apis/post.md | 597 - .../theme/finder-apis/single-page.md | 131 - .../theme/finder-apis/site-stats.md | 45 - .../developer-guide/theme/finder-apis/tag.md | 147 - .../theme/finder-apis/theme.md | 119 - .../theme/image-optimization.md | 80 - .../developer-guide/theme/prepare.md | 123 - .../developer-guide/theme/settings.md | 139 - .../developer-guide/theme/static-resources.md | 55 - .../developer-guide/theme/structure.md | 35 - .../theme/template-route-mapping.md | 87 - .../developer-guide/theme/template-tag.md | 56 - .../theme/template-variables.md | 11 - .../theme/template-variables/archives.md | 110 - .../theme/template-variables/auth.md | 130 - .../theme/template-variables/author.md | 106 - .../theme/template-variables/categories.md | 56 - .../theme/template-variables/category.md | 146 - .../theme/template-variables/error.md | 45 - .../theme/template-variables/index_.md | 100 - .../theme/template-variables/page.md | 90 - .../theme/template-variables/post.md | 97 - .../theme/template-variables/tag.md | 107 - .../theme/template-variables/tags.md | 41 - .../theme/vo/_CategoryTreeVo.md | 31 - .../developer-guide/theme/vo/_CategoryVo.md | 29 - .../developer-guide/theme/vo/_CommentVo.md | 53 - .../developer-guide/theme/vo/_ContentVo.md | 6 - .../theme/vo/_ContributorVo.md | 19 - .../developer-guide/theme/vo/_ListedPostVo.md | 65 - .../theme/vo/_ListedSinglePageVo.md | 57 - .../developer-guide/theme/vo/_MenuItemVo.md | 44 - .../developer-guide/theme/vo/_MenuVo.md | 21 - .../developer-guide/theme/vo/_PostVo.md | 66 - .../developer-guide/theme/vo/_ReplyVo.md | 42 - .../developer-guide/theme/vo/_SinglePageVo.md | 58 - .../theme/vo/_SiteSettingVo.md | 34 - .../developer-guide/theme/vo/_TagVo.md | 24 - .../developer-guide/theme/vo/_ThemeVo.md | 36 - .../developer-guide/theme/vo/_UserVo.md | 27 - .../getting-started/first-post.md | 32 - .../getting-started/install/1panel.md | 95 - .../getting-started/install/bt-panel.md | 92 - .../cloud/alibaba-cloud-computenest.md | 19 - .../install/cloud/alibaba-cloud-market.md | 59 - .../install/cloud/tencent-cloud-lighthouse.md | 71 - .../getting-started/install/config.md | 245 - .../getting-started/install/docker-compose.md | 345 - .../getting-started/install/docker.md | 85 - .../getting-started/install/jar-file.md | 312 - .../getting-started/install/offline.md | 106 - .../install/other/nginxproxymanager.md | 244 - .../getting-started/install/other/traefik.md | 117 - .../getting-started/install/podman.md | 234 - .../install/slots/_docker-args.md | 16 - .../install/slots/_docker-registry-list.md | 28 - .../getting-started/migrate-from-1.x.md | 82 - .../version-2.25/getting-started/setup.md | 18 - versioned_docs/version-2.25/intro.md | 105 - .../version-2.25/user-guide/app-store.md | 102 - .../version-2.25/user-guide/attachments.md | 107 - .../version-2.25/user-guide/backup.md | 78 - versioned_docs/version-2.25/user-guide/faq.md | 139 - .../version-2.25/user-guide/menus.md | 64 - .../version-2.25/user-guide/plugins.md | 103 - .../version-2.25/user-guide/posts.md | 140 - .../version-2.25/user-guide/settings.md | 240 - .../user-guide/shop/console-home.mdx | 12 - .../version-2.25/user-guide/shop/mp.mdx | 27 - .../version-2.25/user-guide/shop/orders.mdx | 27 - .../version-2.25/user-guide/shop/payments.mdx | 292 - .../version-2.25/user-guide/shop/products.mdx | 99 - .../user-guide/shop/sales-channels.mdx | 33 - .../user-guide/shop/theme-dev.mdx | 12 - .../user-guide/shop/virtual-delivery.mdx | 260 - .../version-2.25/user-guide/themes.md | 98 - .../version-2.25/user-guide/user-center.md | 75 - .../version-2.25/user-guide/users.md | 124 - versioned_docs/version-2.26/about.md | 16 - .../version-2.26/contribution/issue.md | 29 - .../version-2.26/contribution/pr.md | 110 - .../developer-guide/annotations-form.md | 89 - .../app-store/app-review-guidelines.md | 359 - .../developer-guide/app-store/publish-app.md | 257 - .../developer-guide/core/build.md | 84 - .../developer-guide/core/code-style.md | 30 - .../developer-guide/core/framework.md | 96 - .../developer-guide/core/prepare.md | 25 - .../version-2.26/developer-guide/core/run.md | 115 - .../developer-guide/core/structure.md | 36 - .../developer-guide/form-schema.md | 905 - .../developer-guide/plugin/api-changelog.md | 280 - .../api-reference/server/extension-client.md | 234 - .../api-reference/server/extension-getter.md | 72 - .../plugin/api-reference/server/extension.md | 707 - .../api-reference/server/finder-for-theme.md | 60 - .../server/login-handler-enhancer.md | 63 - .../api-reference/server/notification.md | 475 - .../plugin/api-reference/server/reconciler.md | 367 - .../api-reference/server/reverseproxy.md | 36 - .../api-reference/server/setting-fetcher.md | 139 - .../server/template-for-theme.md | 113 - .../plugin/api-reference/server/websocket.md | 46 - .../plugin/api-reference/ui/api-request.md | 72 - .../ui/components/annotations-form.md | 55 - .../components/attachment-file-type-icon.md | 25 - .../components/attachment-selector-modal.md | 50 - .../ui/components/filter-clean-button.md | 18 - .../ui/components/filter-dropdown.md | 48 - .../ui/components/has-permission.md | 26 - .../api-reference/ui/components/index.md | 42 - .../ui/components/plugin-detail-modal.md | 30 - .../ui/components/search-input.md | 33 - .../ui/components/uppy-upload.md | 47 - .../ui/components/v-codemirror.md | 36 - .../ui/components/v-permission.md | 18 - .../api-reference/ui/components/v-tooltip.md | 18 - .../plugin/api-reference/ui/formkit.md | 40 - .../plugin/api-reference/ui/route.md | 120 - .../plugin/api-reference/ui/shared.md | 454 - .../developer-guide/plugin/appendices.md | 4 - .../developer-guide/plugin/basics/devtools.md | 446 - .../developer-guide/plugin/basics/manifest.md | 120 - .../plugin/basics/server/lifecycle.md | 46 - .../plugin/basics/server/object-management.md | 260 - .../plugin/basics/structure.md | 67 - .../developer-guide/plugin/basics/ui/build.md | 488 - .../developer-guide/plugin/basics/ui/entry.md | 175 - .../developer-guide/plugin/basics/ui/intro.md | 12 - .../plugin/examples/todolist.md | 484 - .../server/additional-webfilter.md | 76 - .../extension-points/server/attachment.md | 55 - .../server/authentication-webfilter.md | 174 - .../server/comment-subject.md | 83 - .../extension-points/server/comment-widget.md | 41 - .../server/element-tag-post-processor.md | 38 - .../server/excerpt-generator.md | 53 - .../server/halo-documents-provider.md | 39 - .../plugin/extension-points/server/index.md | 65 - .../extension-points/server/notifier.md | 60 - .../extension-points/server/post-content.md | 43 - .../extension-points/server/search-engine.md | 72 - .../server/singlepage-content.md | 38 - .../server/template-footer-processor.md | 77 - .../server/template-head-processor.md | 87 - .../server/user-creating-handler.md | 62 - ...sername-password-authentication-manager.md | 30 - .../attachment-list-item-operation-create.md | 98 - .../ui/attachment-selector-create.md | 158 - .../ui/backup-list-item-operation-create.md | 41 - .../extension-points/ui/backup-tabs-create.md | 36 - .../ui/comment-list-item-operation-create.md | 81 - .../ui/comment-subject-ref-create.md | 114 - .../extension-points/ui/dashboard-widgets.md | 284 - .../ui/default-editor-extension-create.md | 865 - .../extension-points/ui/editor-create.md | 188 - .../plugin/extension-points/ui/index.md | 14 - .../ui/interface/Attachment.md | 25 - .../ui/interface/ListedComment.md | 64 - .../ui/interface/ListedPost.md | 117 - .../ui/interface/ListedReply.md | 49 - .../ui/interface/ListedSinglePage.md | 70 - .../ui/interface/OperationItem.md | 12 - .../extension-points/ui/interface/Plugin.md | 50 - .../extension-points/ui/interface/Theme.md | 63 - .../ui/plugin-installation-tabs-create.md | 44 - .../ui/plugin-list-item-field-create.md | 84 - .../ui/plugin-list-item-operation-create.md | 55 - .../ui/plugin-self-tabs-create.md | 90 - .../ui/post-list-item-field-create.md | 80 - .../ui/post-list-item-operation-create.md | 92 - .../ui/reply-list-item-operation-create.md | 81 - .../ui/single-page-list-item-field-create.md | 80 - .../single-page-list-item-operation-create.md | 92 - .../ui/theme-list-item-operation-create.md | 91 - .../ui/theme-list-tabs-create.md | 44 - .../ui/uc-user-profile-tabs-create.md | 41 - .../ui/user-detail-tabs-create.md | 41 - .../developer-guide/plugin/hello-world.md | 138 - .../plugin/interaction/dependency.md | 331 - .../interaction/making-plugin-extensible.md | 90 - .../plugin/interaction/shared-events.md | 161 - .../developer-guide/plugin/introduction.md | 6 - .../developer-guide/plugin/prepare.md | 29 - .../developer-guide/plugin/security/rbac.md | 251 - .../plugin/security/role-template.md | 211 - .../plugin/security/ui-permission.md | 101 - .../developer-guide/restful-api/api-client.md | 112 - .../restful-api/introduction.md | 108 - .../developer-guide/theme/annotations.md | 64 - .../developer-guide/theme/api-changelog.md | 80 - .../developer-guide/theme/code-snippets.md | 49 - .../developer-guide/theme/config.md | 95 - .../developer-guide/theme/finder-apis.md | 10 - .../theme/finder-apis/category.md | 224 - .../theme/finder-apis/comment.md | 155 - .../theme/finder-apis/contributor.md | 64 - .../developer-guide/theme/finder-apis/menu.md | 87 - .../theme/finder-apis/plugin.md | 63 - .../developer-guide/theme/finder-apis/post.md | 600 - .../theme/finder-apis/single-page.md | 131 - .../theme/finder-apis/site-stats.md | 45 - .../developer-guide/theme/finder-apis/tag.md | 147 - .../theme/finder-apis/theme.md | 119 - .../developer-guide/theme/global-variables.md | 94 - .../theme/image-optimization.md | 80 - .../developer-guide/theme/page-layout.md | 87 - .../developer-guide/theme/prepare.md | 123 - .../developer-guide/theme/settings.md | 139 - .../developer-guide/theme/static-resources.md | 55 - .../developer-guide/theme/structure.md | 43 - .../theme/template-route-mapping.md | 87 - .../developer-guide/theme/template-tag.md | 56 - .../theme/template-variables.md | 11 - .../theme/template-variables/archives.md | 110 - .../theme/template-variables/auth.md | 130 - .../theme/template-variables/author.md | 106 - .../theme/template-variables/categories.md | 56 - .../theme/template-variables/category.md | 146 - .../theme/template-variables/error.md | 45 - .../theme/template-variables/index_.md | 100 - .../theme/template-variables/page.md | 90 - .../theme/template-variables/post.md | 97 - .../theme/template-variables/tag.md | 107 - .../theme/template-variables/tags.md | 41 - .../developer-guide/theme/ui-plugin.md | 101 - .../theme/vo/_CategoryTreeVo.md | 31 - .../developer-guide/theme/vo/_CategoryVo.md | 29 - .../developer-guide/theme/vo/_CommentVo.md | 53 - .../developer-guide/theme/vo/_ContentVo.md | 6 - .../theme/vo/_ContributorVo.md | 19 - .../developer-guide/theme/vo/_ListedPostVo.md | 65 - .../theme/vo/_ListedSinglePageVo.md | 57 - .../developer-guide/theme/vo/_MenuItemVo.md | 44 - .../developer-guide/theme/vo/_MenuVo.md | 21 - .../developer-guide/theme/vo/_PostVo.md | 66 - .../developer-guide/theme/vo/_ReplyVo.md | 42 - .../developer-guide/theme/vo/_SinglePageVo.md | 58 - .../theme/vo/_SiteSettingVo.md | 34 - .../developer-guide/theme/vo/_TagVo.md | 24 - .../developer-guide/theme/vo/_ThemeVo.md | 36 - .../developer-guide/theme/vo/_UserVo.md | 27 - .../getting-started/first-post.md | 32 - .../getting-started/install/1panel.md | 95 - .../getting-started/install/bt-panel.md | 92 - .../cloud/alibaba-cloud-computenest.md | 19 - .../install/cloud/alibaba-cloud-market.md | 59 - .../install/cloud/tencent-cloud-lighthouse.md | 71 - .../getting-started/install/config.md | 245 - .../getting-started/install/docker-compose.md | 345 - .../getting-started/install/helm.md | 142 - .../getting-started/install/offline.md | 106 - .../getting-started/install/podman.md | 234 - .../install/slots/_docker-args.md | 16 - .../install/slots/_docker-registry-list.md | 28 - .../getting-started/migrate-from-1.x.md | 82 - .../version-2.26/getting-started/prepare.md | 136 - .../version-2.26/getting-started/setup.md | 18 - versioned_docs/version-2.26/intro.md | 105 - .../version-2.26/user-guide/activate.md | 95 - .../version-2.26/user-guide/app-store.md | 102 - .../version-2.26/user-guide/attachments.md | 107 - .../version-2.26/user-guide/backup.md | 78 - .../version-2.26/user-guide/common.md | 73 - versioned_docs/version-2.26/user-guide/faq.md | 139 - .../version-2.26/user-guide/menus.md | 64 - .../version-2.26/user-guide/pages.md | 20 - .../version-2.26/user-guide/plugins.md | 103 - .../version-2.26/user-guide/posts.md | 140 - .../user-guide/shop/console-home.mdx | 12 - .../version-2.26/user-guide/shop/index.mdx | 28 - .../version-2.26/user-guide/shop/mp.mdx | 27 - .../version-2.26/user-guide/shop/orders.mdx | 27 - .../version-2.26/user-guide/shop/payments.mdx | 292 - .../version-2.26/user-guide/shop/prepare.mdx | 32 - .../version-2.26/user-guide/shop/products.mdx | 99 - .../user-guide/shop/sales-channels.mdx | 33 - .../user-guide/shop/theme-dev.mdx | 12 - .../user-guide/shop/virtual-delivery.mdx | 260 - .../version-2.26/user-guide/themes.md | 98 - .../version-2.26/user-guide/user-center.md | 75 - .../version-2.26/user-guide/users.md | 124 - versioned_sidebars/version-2.22-sidebars.json | 430 - versioned_sidebars/version-2.23-sidebars.json | 439 - versioned_sidebars/version-2.24-sidebars.json | 458 - versioned_sidebars/version-2.25-sidebars.json | 454 - versioned_sidebars/version-2.26-sidebars.json | 456 - versions.json | 7 - versionsArchived.json | 4 - wrangler.jsonc | 7 - 1516 files changed, 6222 insertions(+), 129404 deletions(-) create mode 100644 .agents/skills/rspress-best-practices/SKILL.md create mode 100644 .agents/skills/rspress-custom-theme/SKILL.md create mode 100644 .agents/skills/rspress-custom-theme/references/css-variables.md create mode 100644 .agents/skills/rspress-custom-theme/references/eject-components.md create mode 100644 .agents/skills/rspress-custom-theme/references/layout-slots.md create mode 100644 .agents/skills/rspress-description-generator/SKILL.md create mode 120000 .claude/skills/rspress-best-practices create mode 120000 .claude/skills/rspress-custom-theme create mode 120000 .claude/skills/rspress-description-generator delete mode 100644 .editorconfig delete mode 100755 .husky/pre-commit delete mode 100644 .markdownlint.json delete mode 100644 .npmrc delete mode 100644 .vscode/extensions.json create mode 100644 AGENTS.md delete mode 100644 OWNERS create mode 100644 biome.json create mode 100644 docs/_nav.json delete mode 100644 docs/about.md create mode 100644 docs/developer-guide/_meta.json create mode 100644 docs/developer-guide/app-store/_meta.json create mode 100644 docs/developer-guide/app-store/index.md create mode 100644 docs/developer-guide/core/_meta.json create mode 100644 docs/developer-guide/core/index.md create mode 100644 docs/developer-guide/index.md create mode 100644 docs/developer-guide/plugin/_meta.json create mode 100644 docs/developer-guide/plugin/api-reference/_meta.json create mode 100644 docs/developer-guide/plugin/api-reference/index.md create mode 100644 docs/developer-guide/plugin/api-reference/server/_meta.json create mode 100644 docs/developer-guide/plugin/api-reference/server/index.md create mode 100644 docs/developer-guide/plugin/api-reference/ui/_meta.json create mode 100644 docs/developer-guide/plugin/api-reference/ui/components/_meta.json create mode 100644 docs/developer-guide/plugin/api-reference/ui/index.md create mode 100644 docs/developer-guide/plugin/basics/_meta.json create mode 100644 docs/developer-guide/plugin/basics/index.md create mode 100644 docs/developer-guide/plugin/basics/server/_meta.json create mode 100644 docs/developer-guide/plugin/basics/server/index.md create mode 100644 docs/developer-guide/plugin/basics/ui/_meta.json create mode 100644 docs/developer-guide/plugin/basics/ui/index.md create mode 100644 docs/developer-guide/plugin/examples/index.md create mode 100644 docs/developer-guide/plugin/extension-points/_meta.json create mode 100644 docs/developer-guide/plugin/extension-points/index.md create mode 100644 docs/developer-guide/plugin/extension-points/server/_meta.json create mode 100644 docs/developer-guide/plugin/extension-points/ui/_meta.json delete mode 100644 docs/developer-guide/plugin/extension-points/ui/attachment-list-item-operation-create.md rename versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/attachment-list-item-operation-create.md => docs/developer-guide/plugin/extension-points/ui/attachment-list-item-operation-create.mdx (98%) delete mode 100644 docs/developer-guide/plugin/extension-points/ui/backup-list-item-operation-create.md rename versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/backup-list-item-operation-create.md => docs/developer-guide/plugin/extension-points/ui/backup-list-item-operation-create.mdx (97%) delete mode 100644 docs/developer-guide/plugin/extension-points/ui/comment-list-item-operation-create.md rename versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/comment-list-item-operation-create.md => docs/developer-guide/plugin/extension-points/ui/comment-list-item-operation-create.mdx (97%) delete mode 100644 docs/developer-guide/plugin/extension-points/ui/index.md rename versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/index.md => docs/developer-guide/plugin/extension-points/ui/index.mdx (71%) rename docs/developer-guide/plugin/extension-points/ui/{plugin-list-item-field-create.md => plugin-list-item-field-create.mdx} (98%) rename docs/developer-guide/plugin/extension-points/ui/{plugin-list-item-operation-create.md => plugin-list-item-operation-create.mdx} (96%) delete mode 100644 docs/developer-guide/plugin/extension-points/ui/plugin-self-tabs-create.md rename versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/plugin-self-tabs-create.md => docs/developer-guide/plugin/extension-points/ui/plugin-self-tabs-create.mdx (98%) delete mode 100644 docs/developer-guide/plugin/extension-points/ui/post-list-item-field-create.md rename versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/post-list-item-field-create.md => docs/developer-guide/plugin/extension-points/ui/post-list-item-field-create.mdx (98%) rename docs/developer-guide/plugin/extension-points/ui/{post-list-item-operation-create.md => post-list-item-operation-create.mdx} (98%) rename docs/developer-guide/plugin/extension-points/ui/{reply-list-item-operation-create.md => reply-list-item-operation-create.mdx} (97%) delete mode 100644 docs/developer-guide/plugin/extension-points/ui/single-page-list-item-field-create.md rename versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/single-page-list-item-field-create.md => docs/developer-guide/plugin/extension-points/ui/single-page-list-item-field-create.mdx (98%) delete mode 100644 docs/developer-guide/plugin/extension-points/ui/single-page-list-item-operation-create.md rename versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/single-page-list-item-operation-create.md => docs/developer-guide/plugin/extension-points/ui/single-page-list-item-operation-create.mdx (98%) delete mode 100644 docs/developer-guide/plugin/extension-points/ui/theme-list-item-operation-create.md rename versioned_docs/version-2.22/developer-guide/plugin/extension-points/ui/theme-list-item-operation-create.md => docs/developer-guide/plugin/extension-points/ui/theme-list-item-operation-create.mdx (97%) create mode 100644 docs/developer-guide/plugin/index.md create mode 100644 docs/developer-guide/plugin/interaction/_meta.json create mode 100644 docs/developer-guide/plugin/interaction/index.md create mode 100644 docs/developer-guide/plugin/security/index.md create mode 100644 docs/developer-guide/restful-api/_meta.json create mode 100644 docs/developer-guide/restful-api/index.md create mode 100644 docs/developer-guide/theme/_meta.json delete mode 100644 docs/developer-guide/theme/finder-apis.md create mode 100644 docs/developer-guide/theme/finder-apis/_meta.json delete mode 100644 docs/developer-guide/theme/finder-apis/category.md rename versioned_docs/version-2.22/developer-guide/theme/finder-apis/category.md => docs/developer-guide/theme/finder-apis/category.mdx (98%) rename docs/developer-guide/theme/finder-apis/{comment.md => comment.mdx} (100%) rename docs/developer-guide/theme/finder-apis/{contributor.md => contributor.mdx} (100%) create mode 100644 docs/developer-guide/theme/finder-apis/index.md rename docs/developer-guide/theme/finder-apis/{menu.md => menu.mdx} (100%) rename docs/developer-guide/theme/finder-apis/{post.md => post.mdx} (99%) rename docs/developer-guide/theme/finder-apis/{single-page.md => single-page.mdx} (100%) delete mode 100644 docs/developer-guide/theme/finder-apis/tag.md rename versioned_docs/version-2.23/developer-guide/theme/finder-apis/tag.md => docs/developer-guide/theme/finder-apis/tag.mdx (97%) delete mode 100644 docs/developer-guide/theme/global-variables.md rename versioned_docs/version-2.25/developer-guide/theme/global-variables.md => docs/developer-guide/theme/global-variables.mdx (98%) create mode 100644 docs/developer-guide/theme/index.md delete mode 100644 docs/developer-guide/theme/template-variables.md create mode 100644 docs/developer-guide/theme/template-variables/_meta.json rename docs/developer-guide/theme/template-variables/{archives.md => archives.mdx} (100%) rename docs/developer-guide/theme/template-variables/{author.md => author.mdx} (100%) rename docs/developer-guide/theme/template-variables/{categories.md => categories.mdx} (100%) delete mode 100644 docs/developer-guide/theme/template-variables/category.md rename versioned_docs/version-2.23/developer-guide/theme/template-variables/category.md => docs/developer-guide/theme/template-variables/category.mdx (95%) rename versioned_docs/version-2.23/developer-guide/theme/template-variables.md => docs/developer-guide/theme/template-variables/index.md (63%) rename docs/developer-guide/theme/template-variables/{index_.md => index_.mdx} (100%) delete mode 100644 docs/developer-guide/theme/template-variables/page.md rename versioned_docs/version-2.22/developer-guide/theme/template-variables/page.md => docs/developer-guide/theme/template-variables/page.mdx (95%) delete mode 100644 docs/developer-guide/theme/template-variables/post.md rename versioned_docs/version-2.23/developer-guide/theme/template-variables/post.md => docs/developer-guide/theme/template-variables/post.mdx (89%) rename docs/developer-guide/theme/template-variables/{tag.md => tag.mdx} (100%) rename docs/developer-guide/theme/template-variables/{tags.md => tags.mdx} (100%) delete mode 100644 docs/getting-started/first-post.md delete mode 100644 docs/getting-started/install/bt-panel.md delete mode 100644 docs/getting-started/install/cloud/alibaba-cloud-market.md delete mode 100644 docs/getting-started/install/cloud/tencent-cloud-lighthouse.md delete mode 100644 docs/getting-started/install/docker-compose.md delete mode 100644 docs/getting-started/install/docker.md delete mode 100644 docs/getting-started/install/helm.md delete mode 100644 docs/getting-started/install/jar-file.md delete mode 100644 docs/getting-started/install/other/nginxproxymanager.md delete mode 100644 docs/getting-started/install/other/traefik.md delete mode 100644 docs/getting-started/prepare.md create mode 100644 docs/guide/_meta.json create mode 100644 docs/guide/contribution/index.md rename docs/{ => guide}/contribution/issue.md (97%) rename docs/{ => guide}/contribution/pr.md (100%) rename versioned_docs/version-2.23/getting-started/first-post.md => docs/guide/first-post.mdx (92%) create mode 100644 docs/guide/index.md rename docs/{getting-started/install/1panel.md => guide/install/1panel.mdx} (95%) create mode 100644 docs/guide/install/_meta.json rename {versioned_docs/version-2.23/getting-started => docs/guide}/install/bt-panel.md (94%) rename docs/{getting-started => guide}/install/cloud/alibaba-cloud-computenest.md (100%) rename {versioned_docs/version-2.24/getting-started => docs/guide}/install/cloud/alibaba-cloud-market.md (98%) create mode 100644 docs/guide/install/cloud/index.md rename {versioned_docs/version-2.23/getting-started => docs/guide}/install/cloud/tencent-cloud-lighthouse.md (99%) rename docs/{getting-started => guide}/install/config.md (99%) create mode 100644 docs/guide/install/docker-compose.mdx rename versioned_docs/version-2.26/getting-started/install/docker.md => docs/guide/install/docker.mdx (86%) rename versioned_docs/version-2.25/getting-started/install/helm.md => docs/guide/install/helm.mdx (96%) create mode 100644 docs/guide/install/index.md rename {versioned_docs/version-2.26/getting-started => docs/guide}/install/jar-file.md (96%) rename docs/{getting-started/install/offline.md => guide/install/offline.mdx} (96%) create mode 100644 docs/guide/install/other/index.md rename {versioned_docs/version-2.26/getting-started => docs/guide}/install/other/nginxproxymanager.md (97%) rename {versioned_docs/version-2.26/getting-started => docs/guide}/install/other/traefik.md (97%) rename docs/{getting-started/install/podman.md => guide/install/podman.mdx} (94%) rename docs/{getting-started => guide}/install/slots/_docker-args.md (100%) rename docs/{getting-started => guide}/install/slots/_docker-registry-list.md (100%) rename docs/{getting-started => guide}/migrate-from-1.x.md (97%) rename {versioned_docs/version-2.25/getting-started => docs/guide}/prepare.md (92%) rename docs/{getting-started => guide}/setup.md (100%) create mode 100644 docs/guide/use/_meta.json rename {versioned_docs/version-2.25/user-guide => docs/guide/use}/activate.md (90%) rename {versioned_docs/version-2.23/user-guide => docs/guide/use}/app-store.md (93%) rename {versioned_docs/version-2.23/user-guide => docs/guide/use}/attachments.md (96%) rename {versioned_docs/version-2.23/user-guide => docs/guide/use}/backup.md (89%) rename {versioned_docs/version-2.25/user-guide => docs/guide/use}/common.md (99%) rename docs/{user-guide => guide/use}/faq.md (96%) create mode 100644 docs/guide/use/index.md rename docs/{user-guide => guide/use}/menus.md (100%) rename {versioned_docs/version-2.25/user-guide => docs/guide/use}/pages.md (97%) rename docs/{user-guide => guide/use}/plugins.md (93%) rename {versioned_docs/version-2.23/user-guide => docs/guide/use}/posts.md (98%) rename {versioned_docs/version-2.26/user-guide => docs/guide/use}/settings.md (97%) create mode 100644 docs/guide/use/shop/_meta.json rename docs/{user-guide => guide/use}/shop/console-home.mdx (100%) rename {versioned_docs/version-2.25/user-guide => docs/guide/use}/shop/index.mdx (62%) rename {versioned_docs/version-2.24/user-guide => docs/guide/use}/shop/mp.mdx (97%) rename {versioned_docs/version-2.23/user-guide => docs/guide/use}/shop/orders.mdx (96%) rename docs/{user-guide => guide/use}/shop/payments.mdx (97%) rename {versioned_docs/version-2.25/user-guide => docs/guide/use}/shop/prepare.mdx (85%) rename {versioned_docs/version-2.24/user-guide => docs/guide/use}/shop/products.mdx (96%) rename docs/{user-guide => guide/use}/shop/sales-channels.mdx (80%) rename docs/{user-guide => guide/use}/shop/theme-dev.mdx (100%) rename {versioned_docs/version-2.23/user-guide => docs/guide/use}/shop/virtual-delivery.mdx (98%) rename {versioned_docs/version-2.23/user-guide => docs/guide/use}/themes.md (96%) rename {versioned_docs/version-2.23/user-guide => docs/guide/use}/user-center.md (96%) rename docs/{user-guide => guide/use}/users.md (91%) create mode 100644 docs/index.mdx delete mode 100644 docs/intro.md rename {static => docs/public}/img/adaptive2.png (100%) rename {static => docs/public}/img/annotation-setting/annotation-setting-preview.png (100%) rename {static => docs/public}/img/create-repository-for-hello-world-plugin.png (100%) rename {static => docs/public}/img/developer-guide/plugin/basic/server/post-content-version-generation.png (100%) rename {static => docs/public}/img/developer-guide/plugin/extension-points/ui/attachment-list-item-operation-create.png (100%) rename {static => docs/public}/img/developer-guide/plugin/extension-points/ui/attachment-selector-create.png (100%) rename {static => docs/public}/img/developer-guide/plugin/extension-points/ui/backup-list-item-operation-create.png (100%) rename {static => docs/public}/img/developer-guide/plugin/extension-points/ui/backup-tabs-create.png (100%) rename {static => docs/public}/img/developer-guide/plugin/extension-points/ui/comment-list-item-operation-create.png (100%) rename {static => docs/public}/img/developer-guide/plugin/extension-points/ui/comment-subject-ref-create.png (100%) rename {static => docs/public}/img/developer-guide/plugin/extension-points/ui/dashboard-widgets.png (100%) rename {static => docs/public}/img/developer-guide/plugin/extension-points/ui/default-editor-extension-bubble-menu.png (100%) rename {static => docs/public}/img/developer-guide/plugin/extension-points/ui/default-editor-extension-drag-menu.png (100%) rename {static => docs/public}/img/developer-guide/plugin/extension-points/ui/default-editor-extension-drag.png (100%) rename {static => docs/public}/img/developer-guide/plugin/extension-points/ui/default-editor-extension-slash-command.png (100%) rename {static => docs/public}/img/developer-guide/plugin/extension-points/ui/default-editor-extension-toolbar.png (100%) rename {static => docs/public}/img/developer-guide/plugin/extension-points/ui/default-editor-extension-toolbox.png (100%) rename {static => docs/public}/img/developer-guide/plugin/extension-points/ui/editor-create.png (100%) rename {static => docs/public}/img/developer-guide/plugin/extension-points/ui/plugin-installation-tabs-create.png (100%) rename {static => docs/public}/img/developer-guide/plugin/extension-points/ui/plugin-list-item-field-create.png (100%) rename {static => docs/public}/img/developer-guide/plugin/extension-points/ui/plugin-list-item-operation-create.png (100%) rename {static => docs/public}/img/developer-guide/plugin/extension-points/ui/plugin-self-tabs-create.png (100%) rename {static => docs/public}/img/developer-guide/plugin/extension-points/ui/post-list-item-field-create.png (100%) rename {static => docs/public}/img/developer-guide/plugin/extension-points/ui/post-list-item-operation-create.png (100%) rename {static => docs/public}/img/developer-guide/plugin/extension-points/ui/reply-list-item-operation-create.png (100%) rename {static => docs/public}/img/developer-guide/plugin/extension-points/ui/single-page-list-item-field-create.png (100%) rename {static => docs/public}/img/developer-guide/plugin/extension-points/ui/single-page-list-item-operation-create.png (100%) rename {static => docs/public}/img/developer-guide/plugin/extension-points/ui/theme-list-item-operation-create.png (100%) rename {static => docs/public}/img/developer-guide/plugin/extension-points/ui/theme-list-tabs-create.png (100%) rename {static => docs/public}/img/developer-guide/plugin/extension-points/ui/uc-user-profile-tabs-create.png (100%) rename {static => docs/public}/img/developer-guide/plugin/extension-points/ui/user-detail-tabs-create.png (100%) rename {static => docs/public}/img/developer-guide/plugin/use-devtools.png (100%) rename {static => docs/public}/img/developer-guide/rest-api/swagger-ui-overview.png (100%) rename {static => docs/public}/img/developer-guide/theme/custom-login-layout.png (100%) rename {static => docs/public}/img/developer-guide/theme/custom-signup-layout.png (100%) rename {static => docs/public}/img/developer-run/IntelliJ-IDEA-Profiles-Win.png (100%) rename {static => docs/public}/img/developer-run/IntelliJ-IDEA-Profiles-macOS.png (100%) rename {static => docs/public}/img/favicon-96x96.png (100%) rename {static => docs/public}/img/formkit/formkit-iconify.png (100%) rename {static => docs/public}/img/formkit/formkit-repeater.png (100%) rename {static => docs/public}/img/formkit/formkit-toggle.png (100%) rename {static => docs/public}/img/formkit/formkit-verify-form.png (100%) rename {static => docs/public}/img/halo-data-export.png (100%) rename {static => docs/public}/img/halo-plugin-hello-world-todo-swagger-api.png (100%) rename {static => docs/public}/img/install/1panel/1panel.png (100%) rename {static => docs/public}/img/install/1panel/app-store-halo.png (100%) rename {static => docs/public}/img/install/1panel/halo-console.png (100%) rename {static => docs/public}/img/install/1panel/halo-status.png (100%) rename {static => docs/public}/img/install/1panel/install-halo.png (100%) rename {static => docs/public}/img/install/1panel/new-site.png (100%) rename {static => docs/public}/img/install/1panel/openresty-mysql.png (100%) rename {static => docs/public}/img/install/1panel/site.png (100%) rename {static => docs/public}/img/install/1panel/upgrade-2.png (100%) rename {static => docs/public}/img/install/1panel/upgrade.png (100%) rename {static => docs/public}/img/install/alibab-cloud-computenest/deploy_1.jpg (100%) rename {static => docs/public}/img/install/alibab-cloud-computenest/deploy_2.jpg (100%) rename {static => docs/public}/img/install/alibab-cloud-computenest/halo-setup.jpg (100%) rename {static => docs/public}/img/install/alibaba-cloud-market/1panel-add-domain.png (100%) rename {static => docs/public}/img/install/alibaba-cloud-market/1panel-installed-apps.png (100%) rename {static => docs/public}/img/install/alibaba-cloud-market/1panel-update-halo-external-url.png (100%) rename {static => docs/public}/img/install/alibaba-cloud-market/1panel-upgrade-halo.png (100%) rename {static => docs/public}/img/install/alibaba-cloud-market/1panel-website.png (100%) rename {static => docs/public}/img/install/alibaba-cloud-market/1panel.png (100%) rename {static => docs/public}/img/install/alibaba-cloud-market/buy-1.png (100%) rename {static => docs/public}/img/install/alibaba-cloud-market/buy-2.png (100%) rename {static => docs/public}/img/install/alibaba-cloud-market/buy-3.jpeg (100%) rename {static => docs/public}/img/install/alibaba-cloud-market/buy-4.jpeg (100%) rename {static => docs/public}/img/install/alibaba-cloud-market/get-1panel-info.png (100%) rename {static => docs/public}/img/install/alibaba-cloud-market/instance.png (100%) rename {static => docs/public}/img/install/alibaba-cloud-market/iptables-1panel.jpeg (100%) rename {static => docs/public}/img/install/alibaba-cloud-market/iptables-http.jpeg (100%) rename {static => docs/public}/img/install/bt-panel/custom-compose.png (100%) rename {static => docs/public}/img/install/bt-panel/docker.png (100%) rename {static => docs/public}/img/install/bt-panel/halo-app.png (100%) rename {static => docs/public}/img/install/bt-panel/install-halo.png (100%) rename {static => docs/public}/img/install/bt-panel/installed.png (100%) rename {static => docs/public}/img/install/bt-panel/request-ssl.png (100%) rename {static => docs/public}/img/install/bt-panel/ssl-status.png (100%) rename {static => docs/public}/img/install/bt-panel/update.png (100%) rename {static => docs/public}/img/install/tencent-cloud-lighthouse/1panel-info.png (100%) rename {static => docs/public}/img/install/tencent-cloud-lighthouse/1panel-login.png (100%) rename {static => docs/public}/img/install/tencent-cloud-lighthouse/1panel-overview.png (100%) rename {static => docs/public}/img/install/tencent-cloud-lighthouse/application.png (100%) rename {static => docs/public}/img/install/tencent-cloud-lighthouse/buy.png (100%) rename {static => docs/public}/img/install/tencent-cloud-lighthouse/domain.png (100%) rename {static => docs/public}/img/install/tencent-cloud-lighthouse/external-url.png (100%) rename {static => docs/public}/img/install/tencent-cloud-lighthouse/firewall.png (100%) rename {static => docs/public}/img/install/tencent-cloud-lighthouse/halo-setup.png (100%) rename {static => docs/public}/img/install/tencent-cloud-lighthouse/installed-apps.png (100%) rename {static => docs/public}/img/install/tencent-cloud-lighthouse/upgrade.png (100%) rename {static => docs/public}/img/install/tencent-cloud-lighthouse/websites.png (100%) rename {static => docs/public}/img/migrate/halo1.6-export.png (100%) rename {static => docs/public}/img/migrate/halo2.0-migrate-plugin-1.png (100%) rename {static => docs/public}/img/migrate/halo2.0-migrate-plugin-2.png (100%) rename {static => docs/public}/img/migrate/halo2.0-migrate-plugin-3.png (100%) rename {static => docs/public}/img/migrate/halo2.0-migrate-plugin.png (100%) rename {static => docs/public}/img/nginx-proxy-manager/Nginx-Proxy-Manager-1.png (100%) rename {static => docs/public}/img/nginx-proxy-manager/Nginx-Proxy-Manager-2.png (100%) rename {static => docs/public}/img/nginx-proxy-manager/Nginx-Proxy-Manager-3.png (100%) rename {static => docs/public}/img/nginx-proxy-manager/Nginx-Proxy-Manager-4.png (100%) rename {static => docs/public}/img/nginx-proxy-manager/Nginx-Proxy-Manager-5.png (100%) rename {static => docs/public}/img/nginx-proxy-manager/Nginx-Proxy-Manager-6.png (100%) rename {static => docs/public}/img/nginx-proxy-manager/Nginx-Proxy-Manager-7.png (100%) rename {static => docs/public}/img/nginx-proxy-manager/Nginx-Proxy-Manager-8.png (100%) rename {static => docs/public}/img/nginx-proxy-manager/npm-add-proxy.png (100%) rename {static => docs/public}/img/nginx-proxy-manager/npm-dashboard.png (100%) rename {static => docs/public}/img/nginx-proxy-manager/npm-ssl.png (100%) rename {static => docs/public}/img/nginx-proxy-manager/npm-welcome.png (100%) rename {static => docs/public}/img/plugin-hello-world.png (100%) rename {static => docs/public}/img/setup/setup-2.20.png (100%) rename {static => docs/public}/img/setup/setup.png (100%) rename {static => docs/public}/img/theme/reload-theme-config.png (100%) rename {static => docs/public}/img/todo-ui.png (100%) rename {static => docs/public}/img/todolist-in-list.png (100%) rename {static => docs/public}/img/uc/totp-config.png (100%) rename {static => docs/public}/img/uc/totp.png (100%) rename {static => docs/public}/img/uc/uc-entry.png (100%) rename {static => docs/public}/img/uc/uc-notification-preferences.png (100%) rename {static => docs/public}/img/uc/uc-notifications.png (100%) rename {static => docs/public}/img/uc/uc-pat-creation.png (100%) rename {static => docs/public}/img/uc/uc-pat-token.png (100%) rename {static => docs/public}/img/uc/uc-pat.png (100%) rename {static => docs/public}/img/uc/uc-posts.png (100%) rename {static => docs/public}/img/uc/uc-profile.png (100%) rename {static => docs/public}/img/uc/user-devices.png (100%) rename {static => docs/public}/img/user-guide/activate/app-activate.png (100%) rename {static => docs/public}/img/user-guide/activate/app-store.png (100%) rename {static => docs/public}/img/user-guide/activate/lxware-license-detail-apps.png (100%) rename {static => docs/public}/img/user-guide/activate/lxware-license-detail.png (100%) rename {static => docs/public}/img/user-guide/activate/lxware-licenses-operation-detail.png (100%) rename {static => docs/public}/img/user-guide/activate/lxware-licenses.png (100%) rename {static => docs/public}/img/user-guide/activate/overview-activate.png (100%) rename {static => docs/public}/img/user-guide/activate/overview-activated.png (100%) rename {static => docs/public}/img/user-guide/activate/overview-deactivate.png (100%) rename {static => docs/public}/img/user-guide/activate/overview-import-license.png (100%) rename {static => docs/public}/img/user-guide/app-store/app-store-license-generate-license-1.png (100%) rename {static => docs/public}/img/user-guide/app-store/app-store-license-generate-license-2.png (100%) rename {static => docs/public}/img/user-guide/app-store/app-store-license-generate-license-3.png (100%) rename {static => docs/public}/img/user-guide/app-store/app-store-license-manage-2.22.png (100%) rename {static => docs/public}/img/user-guide/app-store/app-store-license-manage.png (100%) rename {static => docs/public}/img/user-guide/app-store/app-store-license-offline-option.png (100%) rename {static => docs/public}/img/user-guide/app-store/app-store-license-offline.png (100%) rename {static => docs/public}/img/user-guide/app-store/app-store-license-status-2.22.png (100%) rename {static => docs/public}/img/user-guide/app-store/app-store-license-status.png (100%) rename {static => docs/public}/img/user-guide/app-store/app-store-page.png (100%) rename {static => docs/public}/img/user-guide/app-store/app-store-pat.png (100%) rename {static => docs/public}/img/user-guide/app-store/app-store-plugin-license-2.22.png (100%) rename {static => docs/public}/img/user-guide/app-store/app-store-plugin-license.png (100%) rename {static => docs/public}/img/user-guide/app-store/app-store-plugins.png (100%) rename {static => docs/public}/img/user-guide/app-store/app-store-themes.png (100%) rename {static => docs/public}/img/user-guide/app-store/app-store-upgrade-plugin.png (100%) rename {static => docs/public}/img/user-guide/app-store/app-store-upgrade-theme.png (100%) rename {static => docs/public}/img/user-guide/attachments/attachment-batch-operate.png (100%) rename {static => docs/public}/img/user-guide/attachments/attachment-detail.png (100%) rename {static => docs/public}/img/user-guide/attachments/attachment-group-add.png (100%) rename {static => docs/public}/img/user-guide/attachments/attachment-group-delete.png (100%) rename {static => docs/public}/img/user-guide/attachments/attachment-move.png (100%) rename {static => docs/public}/img/user-guide/attachments/attachment-policy-add-local.png (100%) rename {static => docs/public}/img/user-guide/attachments/attachment-policy-add.png (100%) rename {static => docs/public}/img/user-guide/attachments/attachment-policy-operate.png (100%) rename {static => docs/public}/img/user-guide/attachments/attachment-policy.png (100%) rename {static => docs/public}/img/user-guide/attachments/attachment-upload-multiple.png (100%) rename {static => docs/public}/img/user-guide/attachments/attachment-upload.png (100%) rename {static => docs/public}/img/user-guide/backup/auto-backup.png (100%) rename {static => docs/public}/img/user-guide/backup/backup-complete.png (100%) rename {static => docs/public}/img/user-guide/backup/backup-running.png (100%) rename {static => docs/public}/img/user-guide/backup/before-restore.png (100%) rename {static => docs/public}/img/user-guide/backup/create-backup.png (100%) rename {static => docs/public}/img/user-guide/backup/restore-complete.png (100%) rename {static => docs/public}/img/user-guide/backup/restore-upload.png (100%) rename {static => docs/public}/img/user-guide/backup/restore.png (100%) rename {static => docs/public}/img/user-guide/backup/waiting-restart.png (100%) rename {static => docs/public}/img/user-guide/common/login.png (100%) rename {static => docs/public}/img/user-guide/common/signup.png (100%) rename "static/img/user-guide/common/\346\216\247\345\210\266\345\217\260\347\225\214\351\235\242\350\257\264\346\230\216.png" => "docs/public/img/user-guide/common/\346\216\247\345\210\266\345\217\260\347\225\214\351\235\242\350\257\264\346\230\216.png" (100%) rename {static => docs/public}/img/user-guide/menus/create-menu-item-2.png (100%) rename {static => docs/public}/img/user-guide/menus/create-menu-item.png (100%) rename {static => docs/public}/img/user-guide/menus/create-menu.png (100%) rename {static => docs/public}/img/user-guide/menus/menu-item-operation.png (100%) rename {static => docs/public}/img/user-guide/menus/menu-operation.png (100%) rename {static => docs/public}/img/user-guide/menus/menus.png (100%) rename {static => docs/public}/img/user-guide/menus/sort.gif (100%) rename {static => docs/public}/img/user-guide/pages/page-about.png (100%) rename {static => docs/public}/img/user-guide/plugins/extension-point-settings-entry.png (100%) rename {static => docs/public}/img/user-guide/plugins/extension-point-settings.png (100%) rename {static => docs/public}/img/user-guide/plugins/plugin-install.png (100%) rename {static => docs/public}/img/user-guide/plugins/plugin-setting.png (100%) rename {static => docs/public}/img/user-guide/plugins/plugin-switch.png (100%) rename {static => docs/public}/img/user-guide/plugins/plugin-uninstall.png (100%) rename {static => docs/public}/img/user-guide/posts/category-create-2.png (100%) rename {static => docs/public}/img/user-guide/posts/category-create.png (100%) rename {static => docs/public}/img/user-guide/posts/category-move.gif (100%) rename {static => docs/public}/img/user-guide/posts/post-edit.png (100%) rename {static => docs/public}/img/user-guide/posts/post-setting.png (100%) rename {static => docs/public}/img/user-guide/posts/tag-create.png (100%) rename {static => docs/public}/img/user-guide/posts/tag-list.png (100%) rename {static => docs/public}/img/user-guide/settings/brand.png (100%) rename {static => docs/public}/img/user-guide/settings/setting-basic.png (100%) rename {static => docs/public}/img/user-guide/shop/mp-preview.png (100%) rename {static => docs/public}/img/user-guide/shop/preview-console-home-1.png (100%) rename {static => docs/public}/img/user-guide/shop/preview-console-home-2.png (100%) rename {static => docs/public}/img/user-guide/shop/preview-console-home-3.png (100%) rename {static => docs/public}/img/user-guide/shop/preview-console-order-detail.png (100%) rename {static => docs/public}/img/user-guide/shop/preview-console-order-modal.png (100%) rename {static => docs/public}/img/user-guide/shop/preview-console-order-request-fulfillment.png (100%) rename {static => docs/public}/img/user-guide/shop/preview-console-orders.png (100%) rename {static => docs/public}/img/user-guide/shop/preview-console-products.png (100%) rename {static => docs/public}/img/user-guide/shop/preview-payments-alipay.png (100%) rename {static => docs/public}/img/user-guide/shop/preview-payments-bank-transfer.png (100%) rename {static => docs/public}/img/user-guide/shop/preview-payments-qrcode.png (100%) rename {static => docs/public}/img/user-guide/shop/preview-payments-stripe-2.png (100%) rename {static => docs/public}/img/user-guide/shop/preview-payments-stripe.png (100%) rename {static => docs/public}/img/user-guide/shop/preview-payments-wechat.png (100%) rename {static => docs/public}/img/user-guide/shop/preview-payments-zpayz.png (100%) rename {static => docs/public}/img/user-guide/shop/preview-product.png (100%) rename {static => docs/public}/img/user-guide/shop/products-category-create.png (100%) rename {static => docs/public}/img/user-guide/shop/products-category-selector.png (100%) rename {static => docs/public}/img/user-guide/shop/products-create-virtual.png (100%) rename {static => docs/public}/img/user-guide/shop/products-create.png (100%) rename {static => docs/public}/img/user-guide/shop/products-spec-form.png (100%) rename {static => docs/public}/img/user-guide/shop/products-variants-0.png (100%) rename {static => docs/public}/img/user-guide/shop/products-variants-batch.png (100%) rename {static => docs/public}/img/user-guide/shop/products-variants-form.png (100%) rename {static => docs/public}/img/user-guide/shop/products-variants.png (100%) rename {static => docs/public}/img/user-guide/shop/settings-payments-alipay-app-detail.png (100%) rename {static => docs/public}/img/user-guide/shop/settings-payments-alipay-create-app.png (100%) rename {static => docs/public}/img/user-guide/shop/settings-payments-create-2.23.png (100%) rename {static => docs/public}/img/user-guide/shop/settings-payments-create.png (100%) rename {static => docs/public}/img/user-guide/shop/settings-payments-stripe-1.png (100%) rename {static => docs/public}/img/user-guide/shop/settings-payments-stripe-2.png (100%) rename {static => docs/public}/img/user-guide/shop/settings-payments-stripe-3.png (100%) rename {static => docs/public}/img/user-guide/shop/settings-payments-stripe-4.png (100%) rename {static => docs/public}/img/user-guide/shop/settings-payments-stripe-5.png (100%) rename {static => docs/public}/img/user-guide/shop/settings-payments-stripe-6.png (100%) rename {static => docs/public}/img/user-guide/shop/settings-payments-zpayz-api.png (100%) rename {static => docs/public}/img/user-guide/shop/settings-payments-zpayz-channels.png (100%) rename {static => docs/public}/img/user-guide/shop/settings-payments.png (100%) rename {static => docs/public}/img/user-guide/shop/settings-sales-channels-create.png (100%) rename {static => docs/public}/img/user-guide/shop/settings-sales-channels.png (100%) rename {static => docs/public}/img/user-guide/shop/virtual-delivery-cdk-add.png (100%) rename {static => docs/public}/img/user-guide/shop/virtual-delivery-cdk-config.png (100%) rename {static => docs/public}/img/user-guide/shop/virtual-delivery-cdks.png (100%) rename {static => docs/public}/img/user-guide/shop/virtual-delivery-console-order.png (100%) rename {static => docs/public}/img/user-guide/shop/virtual-delivery-products.png (100%) rename {static => docs/public}/img/user-guide/shop/virtual-delivery-resource-add.png (100%) rename {static => docs/public}/img/user-guide/shop/virtual-delivery-resource-config.png (100%) rename {static => docs/public}/img/user-guide/shop/virtual-delivery-resources.png (100%) rename {static => docs/public}/img/user-guide/shop/virtual-delivery-uc-order-1.png (100%) rename {static => docs/public}/img/user-guide/shop/virtual-delivery-uc-order-2.png (100%) rename {static => docs/public}/img/user-guide/themes/theme-install-alt.png (100%) rename {static => docs/public}/img/user-guide/themes/theme-install.png (100%) rename {static => docs/public}/img/user-guide/themes/theme-preview.png (100%) rename {static => docs/public}/img/user-guide/themes/theme-setting.png (100%) rename {static => docs/public}/img/user-guide/themes/theme-uninstall.png (100%) rename {static => docs/public}/img/user-guide/user-permission.png (100%) rename {static => docs/public}/img/user-guide/users/auth-providers-2.20+.png (100%) rename {static => docs/public}/img/user-guide/users/auth-providers-2.22+.png (100%) rename {static => docs/public}/img/user-guide/users/auth-providers-entry.png (100%) rename {static => docs/public}/img/user-guide/users/auth-providers.png (100%) rename {static => docs/public}/img/user-guide/users/role-creation.png (100%) rename {static => docs/public}/img/user-guide/users/role-fork.png (100%) rename {static => docs/public}/img/user-guide/users/role-management.png (100%) rename {static => docs/public}/img/user-guide/users/user-operate.png (100%) rename {static => docs/public}/img/user-guide/users/user-setting-2.20+.png (100%) rename {static => docs/public}/img/user-guide/users/user-setting.png (100%) create mode 100644 docs/public/robots.txt delete mode 100644 docs/user-guide/activate.md delete mode 100644 docs/user-guide/app-store.md delete mode 100644 docs/user-guide/attachments.md delete mode 100644 docs/user-guide/backup.md delete mode 100644 docs/user-guide/common.md delete mode 100644 docs/user-guide/pages.md delete mode 100644 docs/user-guide/posts.md delete mode 100644 docs/user-guide/settings.md delete mode 100644 docs/user-guide/shop/index.mdx delete mode 100644 docs/user-guide/shop/mp.mdx delete mode 100644 docs/user-guide/shop/orders.mdx delete mode 100644 docs/user-guide/shop/prepare.mdx delete mode 100644 docs/user-guide/shop/products.mdx delete mode 100644 docs/user-guide/shop/virtual-delivery.mdx delete mode 100644 docs/user-guide/themes.md delete mode 100644 docs/user-guide/user-center.md delete mode 100644 docusaurus.config.js create mode 100644 edgeone.json delete mode 100644 i18n/zh-Hans/code.json delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/current.json delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-2.20.json delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-2.21.json delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-2.22.json delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-2.23.json delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-2.24.json delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-2.25.json delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-2.26.json delete mode 100644 i18n/zh-Hans/docusaurus-theme-classic/footer.json delete mode 100644 i18n/zh-Hans/docusaurus-theme-classic/navbar.json delete mode 100644 netlify.toml create mode 100644 rspress.config.ts delete mode 100644 sidebars.js create mode 100644 skills-lock.json delete mode 100644 src/components/.gitkeep delete mode 100644 src/css/custom.css delete mode 100644 src/css/shiki.scss delete mode 100644 src/images/pro-ad.png delete mode 100644 src/pages/versions.tsx delete mode 100644 src/shiki/meta-transformer.js delete mode 100644 src/theme/MDXComponents/Code.tsx delete mode 100644 src/theme/MDXComponents/Pre.tsx delete mode 100644 src/theme/SearchBar.js delete mode 100644 src/theme/TOC/index.tsx delete mode 100644 src/theme/TOC/styles.module.css delete mode 100644 static/.nojekyll delete mode 100644 static/robots.txt create mode 100644 styles/index.scss create mode 100644 theme/FooterColumns.tsx create mode 100644 theme/index.tsx create mode 100644 theme/override.css create mode 100644 tsconfig.json delete mode 100644 versioned_docs/version-2.22/about.md delete mode 100644 versioned_docs/version-2.22/contribution/issue.md delete mode 100644 versioned_docs/version-2.22/contribution/pr.md delete mode 100644 versioned_docs/version-2.22/developer-guide/annotations-form.md delete mode 100644 versioned_docs/version-2.22/developer-guide/appendix/publish-app.md delete mode 100644 versioned_docs/version-2.22/developer-guide/core/build.md delete mode 100644 versioned_docs/version-2.22/developer-guide/core/code-style.md delete mode 100644 versioned_docs/version-2.22/developer-guide/core/framework.md delete mode 100644 versioned_docs/version-2.22/developer-guide/core/prepare.md delete mode 100644 versioned_docs/version-2.22/developer-guide/core/run.md delete mode 100644 versioned_docs/version-2.22/developer-guide/core/structure.md delete mode 100644 versioned_docs/version-2.22/developer-guide/form-schema.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/api-changelog.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/api-reference/server/extension-client.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/api-reference/server/extension-getter.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/api-reference/server/extension.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/api-reference/server/finder-for-theme.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/api-reference/server/login-handler-enhancer.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/api-reference/server/notification.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/api-reference/server/reconciler.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/api-reference/server/reverseproxy.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/api-reference/server/setting-fetcher.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/api-reference/server/template-for-theme.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/api-reference/server/websocket.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/api-reference/ui/api-request.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/api-reference/ui/components/annotations-form.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/api-reference/ui/components/attachment-file-type-icon.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/api-reference/ui/components/attachment-selector-modal.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/api-reference/ui/components/filter-clean-button.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/api-reference/ui/components/filter-dropdown.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/api-reference/ui/components/has-permission.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/api-reference/ui/components/index.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/api-reference/ui/components/plugin-detail-modal.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/api-reference/ui/components/search-input.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/api-reference/ui/components/uppy-upload.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/api-reference/ui/components/v-codemirror.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/api-reference/ui/components/v-permission.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/api-reference/ui/components/v-tooltip.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/api-reference/ui/route.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/api-reference/ui/shared.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/appendices.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/basics/devtools.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/basics/manifest.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/basics/server/lifecycle.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/basics/server/object-management.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/basics/structure.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/basics/ui/build.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/basics/ui/entry.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/basics/ui/intro.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/examples/todolist.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/extension-points/server/additional-webfilter.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/extension-points/server/attachment.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/extension-points/server/authentication-webfilter.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/extension-points/server/comment-subject.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/extension-points/server/comment-widget.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/extension-points/server/index.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/extension-points/server/notifier.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/extension-points/server/post-content.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/extension-points/server/singlepage-content.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/extension-points/server/template-footer-processor.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/extension-points/server/template-head-processor.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/extension-points/server/username-password-authentication-manager.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/extension-points/ui/attachment-list-item-operation-create.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/extension-points/ui/attachment-selector-create.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/extension-points/ui/backup-list-item-operation-create.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/extension-points/ui/backup-tabs-create.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/extension-points/ui/comment-list-item-operation-create.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/extension-points/ui/comment-subject-ref-create.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/extension-points/ui/dashboard-widgets.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/extension-points/ui/default-editor-extension-create.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/extension-points/ui/editor-create.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/extension-points/ui/index.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/extension-points/ui/interface/Attachment.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/extension-points/ui/interface/ListedComment.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/extension-points/ui/interface/ListedPost.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/extension-points/ui/interface/ListedReply.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/extension-points/ui/interface/ListedSinglePage.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/extension-points/ui/interface/OperationItem.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/extension-points/ui/interface/Plugin.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/extension-points/ui/interface/Theme.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/extension-points/ui/plugin-installation-tabs-create.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/extension-points/ui/plugin-list-item-field-create.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/extension-points/ui/plugin-list-item-operation-create.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/extension-points/ui/plugin-self-tabs-create.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/extension-points/ui/post-list-item-field-create.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/extension-points/ui/post-list-item-operation-create.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/extension-points/ui/reply-list-item-operation-create.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/extension-points/ui/single-page-list-item-field-create.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/extension-points/ui/single-page-list-item-operation-create.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/extension-points/ui/theme-list-tabs-create.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/extension-points/ui/uc-user-profile-tabs-create.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/extension-points/ui/user-detail-tabs-create.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/hello-world.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/interaction/dependency.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/interaction/making-plugin-extensible.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/interaction/shared-events.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/introduction.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/prepare.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/security/rbac.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/security/role-template.md delete mode 100644 versioned_docs/version-2.22/developer-guide/plugin/security/ui-permission.md delete mode 100644 versioned_docs/version-2.22/developer-guide/restful-api/api-client.md delete mode 100644 versioned_docs/version-2.22/developer-guide/restful-api/introduction.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/annotations.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/api-changelog.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/code-snippets.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/config.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/finder-apis.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/finder-apis/comment.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/finder-apis/contributor.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/finder-apis/menu.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/finder-apis/plugin.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/finder-apis/post.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/finder-apis/single-page.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/finder-apis/site-stats.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/finder-apis/tag.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/finder-apis/theme.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/global-variables.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/image-optimization.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/prepare.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/settings.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/static-resources.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/structure.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/template-route-mapping.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/template-tag.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/template-variables.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/template-variables/archives.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/template-variables/auth.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/template-variables/author.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/template-variables/categories.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/template-variables/category.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/template-variables/error.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/template-variables/index_.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/template-variables/post.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/template-variables/tag.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/template-variables/tags.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/vo/_CategoryTreeVo.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/vo/_CategoryVo.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/vo/_CommentVo.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/vo/_ContentVo.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/vo/_ContributorVo.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/vo/_ListedPostVo.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/vo/_ListedSinglePageVo.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/vo/_MenuItemVo.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/vo/_MenuVo.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/vo/_PostVo.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/vo/_ReplyVo.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/vo/_SinglePageVo.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/vo/_SiteSettingVo.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/vo/_TagVo.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/vo/_ThemeVo.md delete mode 100644 versioned_docs/version-2.22/developer-guide/theme/vo/_UserVo.md delete mode 100644 versioned_docs/version-2.22/getting-started/first-post.md delete mode 100644 versioned_docs/version-2.22/getting-started/install/1panel.md delete mode 100644 versioned_docs/version-2.22/getting-started/install/cloud/alibaba-cloud-computenest.md delete mode 100644 versioned_docs/version-2.22/getting-started/install/cloud/alibaba-cloud-market.md delete mode 100644 versioned_docs/version-2.22/getting-started/install/cloud/tencent-cloud-lighthouse.md delete mode 100644 versioned_docs/version-2.22/getting-started/install/config.md delete mode 100644 versioned_docs/version-2.22/getting-started/install/docker-compose.md delete mode 100644 versioned_docs/version-2.22/getting-started/install/docker.md delete mode 100644 versioned_docs/version-2.22/getting-started/install/helm.md delete mode 100644 versioned_docs/version-2.22/getting-started/install/jar-file.md delete mode 100644 versioned_docs/version-2.22/getting-started/install/offline.md delete mode 100644 versioned_docs/version-2.22/getting-started/install/other/nginxproxymanager.md delete mode 100644 versioned_docs/version-2.22/getting-started/install/other/traefik.md delete mode 100644 versioned_docs/version-2.22/getting-started/install/podman.md delete mode 100644 versioned_docs/version-2.22/getting-started/install/slots/_docker-args.md delete mode 100644 versioned_docs/version-2.22/getting-started/install/slots/_docker-registry-list.md delete mode 100644 versioned_docs/version-2.22/getting-started/migrate-from-1.x.md delete mode 100644 versioned_docs/version-2.22/getting-started/prepare.md delete mode 100644 versioned_docs/version-2.22/getting-started/setup.md delete mode 100644 versioned_docs/version-2.22/intro.md delete mode 100644 versioned_docs/version-2.22/user-guide/activate.md delete mode 100644 versioned_docs/version-2.22/user-guide/app-store.md delete mode 100644 versioned_docs/version-2.22/user-guide/attachments.md delete mode 100644 versioned_docs/version-2.22/user-guide/backup.md delete mode 100644 versioned_docs/version-2.22/user-guide/common.md delete mode 100644 versioned_docs/version-2.22/user-guide/faq.md delete mode 100644 versioned_docs/version-2.22/user-guide/menus.md delete mode 100644 versioned_docs/version-2.22/user-guide/pages.md delete mode 100644 versioned_docs/version-2.22/user-guide/plugins.md delete mode 100644 versioned_docs/version-2.22/user-guide/posts.md delete mode 100644 versioned_docs/version-2.22/user-guide/settings.md delete mode 100644 versioned_docs/version-2.22/user-guide/shop/index.mdx delete mode 100644 versioned_docs/version-2.22/user-guide/shop/orders.mdx delete mode 100644 versioned_docs/version-2.22/user-guide/shop/payments.mdx delete mode 100644 versioned_docs/version-2.22/user-guide/shop/prepare.mdx delete mode 100644 versioned_docs/version-2.22/user-guide/shop/products.mdx delete mode 100644 versioned_docs/version-2.22/user-guide/shop/sales-channels.mdx delete mode 100644 versioned_docs/version-2.22/user-guide/shop/theme-dev.mdx delete mode 100644 versioned_docs/version-2.22/user-guide/themes.md delete mode 100644 versioned_docs/version-2.22/user-guide/user-center.md delete mode 100644 versioned_docs/version-2.22/user-guide/users.md delete mode 100644 versioned_docs/version-2.23/about.md delete mode 100644 versioned_docs/version-2.23/contribution/issue.md delete mode 100644 versioned_docs/version-2.23/contribution/pr.md delete mode 100644 versioned_docs/version-2.23/developer-guide/annotations-form.md delete mode 100644 versioned_docs/version-2.23/developer-guide/appendix/publish-app.md delete mode 100644 versioned_docs/version-2.23/developer-guide/core/build.md delete mode 100644 versioned_docs/version-2.23/developer-guide/core/code-style.md delete mode 100644 versioned_docs/version-2.23/developer-guide/core/framework.md delete mode 100644 versioned_docs/version-2.23/developer-guide/core/prepare.md delete mode 100644 versioned_docs/version-2.23/developer-guide/core/run.md delete mode 100644 versioned_docs/version-2.23/developer-guide/core/structure.md delete mode 100644 versioned_docs/version-2.23/developer-guide/form-schema.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/api-changelog.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/api-reference/server/extension-client.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/api-reference/server/extension-getter.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/api-reference/server/extension.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/api-reference/server/finder-for-theme.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/api-reference/server/login-handler-enhancer.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/api-reference/server/notification.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/api-reference/server/reconciler.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/api-reference/server/reverseproxy.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/api-reference/server/setting-fetcher.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/api-reference/server/template-for-theme.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/api-reference/server/websocket.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/api-reference/ui/api-request.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/api-reference/ui/components/annotations-form.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/api-reference/ui/components/attachment-file-type-icon.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/api-reference/ui/components/attachment-selector-modal.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/api-reference/ui/components/filter-clean-button.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/api-reference/ui/components/filter-dropdown.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/api-reference/ui/components/has-permission.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/api-reference/ui/components/index.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/api-reference/ui/components/plugin-detail-modal.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/api-reference/ui/components/search-input.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/api-reference/ui/components/uppy-upload.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/api-reference/ui/components/v-codemirror.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/api-reference/ui/components/v-permission.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/api-reference/ui/components/v-tooltip.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/api-reference/ui/route.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/api-reference/ui/shared.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/appendices.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/basics/devtools.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/basics/manifest.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/basics/server/lifecycle.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/basics/server/object-management.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/basics/structure.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/basics/ui/build.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/basics/ui/entry.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/basics/ui/intro.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/examples/todolist.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/extension-points/server/additional-webfilter.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/extension-points/server/attachment.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/extension-points/server/authentication-webfilter.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/extension-points/server/comment-subject.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/extension-points/server/comment-widget.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/extension-points/server/index.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/extension-points/server/notifier.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/extension-points/server/post-content.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/extension-points/server/singlepage-content.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/extension-points/server/template-footer-processor.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/extension-points/server/template-head-processor.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/extension-points/server/username-password-authentication-manager.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/attachment-selector-create.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/backup-tabs-create.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/comment-subject-ref-create.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/dashboard-widgets.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/default-editor-extension-create.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/editor-create.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/interface/Attachment.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/interface/ListedComment.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/interface/ListedPost.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/interface/ListedReply.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/interface/ListedSinglePage.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/interface/OperationItem.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/interface/Plugin.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/interface/Theme.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/plugin-installation-tabs-create.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/plugin-list-item-field-create.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/plugin-list-item-operation-create.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/post-list-item-operation-create.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/reply-list-item-operation-create.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/theme-list-item-operation-create.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/theme-list-tabs-create.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/uc-user-profile-tabs-create.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/user-detail-tabs-create.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/hello-world.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/interaction/dependency.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/interaction/making-plugin-extensible.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/interaction/shared-events.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/introduction.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/prepare.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/security/rbac.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/security/role-template.md delete mode 100644 versioned_docs/version-2.23/developer-guide/plugin/security/ui-permission.md delete mode 100644 versioned_docs/version-2.23/developer-guide/restful-api/api-client.md delete mode 100644 versioned_docs/version-2.23/developer-guide/restful-api/introduction.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/annotations.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/api-changelog.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/code-snippets.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/config.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/finder-apis.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/finder-apis/category.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/finder-apis/comment.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/finder-apis/contributor.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/finder-apis/menu.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/finder-apis/plugin.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/finder-apis/post.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/finder-apis/single-page.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/finder-apis/site-stats.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/finder-apis/theme.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/global-variables.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/image-optimization.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/prepare.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/settings.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/static-resources.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/structure.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/template-route-mapping.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/template-tag.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/template-variables/archives.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/template-variables/auth.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/template-variables/author.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/template-variables/categories.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/template-variables/error.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/template-variables/index_.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/template-variables/page.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/template-variables/tag.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/template-variables/tags.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/vo/_CategoryTreeVo.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/vo/_CategoryVo.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/vo/_CommentVo.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/vo/_ContentVo.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/vo/_ContributorVo.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/vo/_ListedPostVo.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/vo/_ListedSinglePageVo.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/vo/_MenuItemVo.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/vo/_MenuVo.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/vo/_PostVo.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/vo/_ReplyVo.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/vo/_SinglePageVo.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/vo/_SiteSettingVo.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/vo/_TagVo.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/vo/_ThemeVo.md delete mode 100644 versioned_docs/version-2.23/developer-guide/theme/vo/_UserVo.md delete mode 100644 versioned_docs/version-2.23/getting-started/install/1panel.md delete mode 100644 versioned_docs/version-2.23/getting-started/install/cloud/alibaba-cloud-computenest.md delete mode 100644 versioned_docs/version-2.23/getting-started/install/cloud/alibaba-cloud-market.md delete mode 100644 versioned_docs/version-2.23/getting-started/install/config.md delete mode 100644 versioned_docs/version-2.23/getting-started/install/docker-compose.md delete mode 100644 versioned_docs/version-2.23/getting-started/install/docker.md delete mode 100644 versioned_docs/version-2.23/getting-started/install/helm.md delete mode 100644 versioned_docs/version-2.23/getting-started/install/jar-file.md delete mode 100644 versioned_docs/version-2.23/getting-started/install/offline.md delete mode 100644 versioned_docs/version-2.23/getting-started/install/other/nginxproxymanager.md delete mode 100644 versioned_docs/version-2.23/getting-started/install/other/traefik.md delete mode 100644 versioned_docs/version-2.23/getting-started/install/podman.md delete mode 100644 versioned_docs/version-2.23/getting-started/install/slots/_docker-args.md delete mode 100644 versioned_docs/version-2.23/getting-started/install/slots/_docker-registry-list.md delete mode 100644 versioned_docs/version-2.23/getting-started/migrate-from-1.x.md delete mode 100644 versioned_docs/version-2.23/getting-started/prepare.md delete mode 100644 versioned_docs/version-2.23/getting-started/setup.md delete mode 100644 versioned_docs/version-2.23/intro.md delete mode 100644 versioned_docs/version-2.23/user-guide/activate.md delete mode 100644 versioned_docs/version-2.23/user-guide/common.md delete mode 100644 versioned_docs/version-2.23/user-guide/faq.md delete mode 100644 versioned_docs/version-2.23/user-guide/menus.md delete mode 100644 versioned_docs/version-2.23/user-guide/pages.md delete mode 100644 versioned_docs/version-2.23/user-guide/plugins.md delete mode 100644 versioned_docs/version-2.23/user-guide/settings.md delete mode 100644 versioned_docs/version-2.23/user-guide/shop/console-home.mdx delete mode 100644 versioned_docs/version-2.23/user-guide/shop/index.mdx delete mode 100644 versioned_docs/version-2.23/user-guide/shop/payments.mdx delete mode 100644 versioned_docs/version-2.23/user-guide/shop/prepare.mdx delete mode 100644 versioned_docs/version-2.23/user-guide/shop/products.mdx delete mode 100644 versioned_docs/version-2.23/user-guide/shop/sales-channels.mdx delete mode 100644 versioned_docs/version-2.23/user-guide/shop/theme-dev.mdx delete mode 100644 versioned_docs/version-2.23/user-guide/users.md delete mode 100644 versioned_docs/version-2.24/about.md delete mode 100644 versioned_docs/version-2.24/contribution/issue.md delete mode 100644 versioned_docs/version-2.24/contribution/pr.md delete mode 100644 versioned_docs/version-2.24/developer-guide/annotations-form.md delete mode 100644 versioned_docs/version-2.24/developer-guide/app-store/app-review-guidelines.md delete mode 100644 versioned_docs/version-2.24/developer-guide/app-store/publish-app.md delete mode 100644 versioned_docs/version-2.24/developer-guide/appendix/publish-app.md delete mode 100644 versioned_docs/version-2.24/developer-guide/core/build.md delete mode 100644 versioned_docs/version-2.24/developer-guide/core/code-style.md delete mode 100644 versioned_docs/version-2.24/developer-guide/core/framework.md delete mode 100644 versioned_docs/version-2.24/developer-guide/core/prepare.md delete mode 100644 versioned_docs/version-2.24/developer-guide/core/run.md delete mode 100644 versioned_docs/version-2.24/developer-guide/core/structure.md delete mode 100644 versioned_docs/version-2.24/developer-guide/form-schema.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/api-changelog.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/api-reference/server/extension-client.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/api-reference/server/extension-getter.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/api-reference/server/extension.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/api-reference/server/finder-for-theme.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/api-reference/server/login-handler-enhancer.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/api-reference/server/notification.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/api-reference/server/reconciler.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/api-reference/server/reverseproxy.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/api-reference/server/setting-fetcher.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/api-reference/server/template-for-theme.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/api-reference/server/websocket.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/api-reference/ui/api-request.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/api-reference/ui/components/annotations-form.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/api-reference/ui/components/attachment-file-type-icon.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/api-reference/ui/components/attachment-selector-modal.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/api-reference/ui/components/filter-clean-button.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/api-reference/ui/components/filter-dropdown.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/api-reference/ui/components/has-permission.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/api-reference/ui/components/index.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/api-reference/ui/components/plugin-detail-modal.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/api-reference/ui/components/search-input.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/api-reference/ui/components/uppy-upload.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/api-reference/ui/components/v-codemirror.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/api-reference/ui/components/v-permission.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/api-reference/ui/components/v-tooltip.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/api-reference/ui/route.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/api-reference/ui/shared.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/appendices.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/basics/devtools.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/basics/manifest.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/basics/server/lifecycle.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/basics/server/object-management.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/basics/structure.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/basics/ui/build.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/basics/ui/entry.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/basics/ui/intro.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/examples/todolist.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/server/additional-webfilter.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/server/attachment.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/server/authentication-webfilter.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/server/comment-subject.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/server/comment-widget.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/server/excerpt-generator.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/server/index.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/server/notifier.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/server/post-content.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/server/search-engine.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/server/singlepage-content.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/server/template-footer-processor.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/server/template-head-processor.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/server/username-password-authentication-manager.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/ui/attachment-list-item-operation-create.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/ui/attachment-selector-create.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/ui/backup-list-item-operation-create.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/ui/backup-tabs-create.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/ui/comment-list-item-operation-create.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/ui/comment-subject-ref-create.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/ui/dashboard-widgets.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/ui/default-editor-extension-create.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/ui/editor-create.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/ui/index.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/ui/interface/Attachment.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/ui/interface/ListedComment.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/ui/interface/ListedPost.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/ui/interface/ListedReply.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/ui/interface/ListedSinglePage.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/ui/interface/OperationItem.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/ui/interface/Plugin.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/ui/interface/Theme.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/ui/plugin-installation-tabs-create.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/ui/plugin-list-item-field-create.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/ui/plugin-list-item-operation-create.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/ui/plugin-self-tabs-create.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/ui/post-list-item-field-create.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/ui/post-list-item-operation-create.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/ui/reply-list-item-operation-create.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/ui/single-page-list-item-field-create.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/ui/single-page-list-item-operation-create.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/ui/theme-list-item-operation-create.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/ui/theme-list-tabs-create.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/ui/uc-user-profile-tabs-create.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/extension-points/ui/user-detail-tabs-create.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/hello-world.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/interaction/dependency.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/interaction/making-plugin-extensible.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/interaction/shared-events.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/introduction.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/prepare.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/security/rbac.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/security/role-template.md delete mode 100644 versioned_docs/version-2.24/developer-guide/plugin/security/ui-permission.md delete mode 100644 versioned_docs/version-2.24/developer-guide/restful-api/api-client.md delete mode 100644 versioned_docs/version-2.24/developer-guide/restful-api/introduction.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/annotations.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/api-changelog.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/code-snippets.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/config.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/finder-apis.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/finder-apis/category.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/finder-apis/comment.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/finder-apis/contributor.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/finder-apis/menu.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/finder-apis/plugin.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/finder-apis/post.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/finder-apis/single-page.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/finder-apis/site-stats.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/finder-apis/tag.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/finder-apis/theme.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/global-variables.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/image-optimization.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/prepare.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/settings.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/static-resources.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/structure.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/template-route-mapping.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/template-tag.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/template-variables.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/template-variables/archives.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/template-variables/auth.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/template-variables/author.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/template-variables/categories.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/template-variables/category.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/template-variables/error.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/template-variables/index_.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/template-variables/page.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/template-variables/post.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/template-variables/tag.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/template-variables/tags.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/vo/_CategoryTreeVo.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/vo/_CategoryVo.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/vo/_CommentVo.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/vo/_ContentVo.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/vo/_ContributorVo.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/vo/_ListedPostVo.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/vo/_ListedSinglePageVo.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/vo/_MenuItemVo.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/vo/_MenuVo.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/vo/_PostVo.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/vo/_ReplyVo.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/vo/_SinglePageVo.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/vo/_SiteSettingVo.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/vo/_TagVo.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/vo/_ThemeVo.md delete mode 100644 versioned_docs/version-2.24/developer-guide/theme/vo/_UserVo.md delete mode 100644 versioned_docs/version-2.24/getting-started/first-post.md delete mode 100644 versioned_docs/version-2.24/getting-started/install/1panel.md delete mode 100644 versioned_docs/version-2.24/getting-started/install/bt-panel.md delete mode 100644 versioned_docs/version-2.24/getting-started/install/cloud/alibaba-cloud-computenest.md delete mode 100644 versioned_docs/version-2.24/getting-started/install/cloud/tencent-cloud-lighthouse.md delete mode 100644 versioned_docs/version-2.24/getting-started/install/config.md delete mode 100644 versioned_docs/version-2.24/getting-started/install/docker-compose.md delete mode 100644 versioned_docs/version-2.24/getting-started/install/docker.md delete mode 100644 versioned_docs/version-2.24/getting-started/install/helm.md delete mode 100644 versioned_docs/version-2.24/getting-started/install/jar-file.md delete mode 100644 versioned_docs/version-2.24/getting-started/install/offline.md delete mode 100644 versioned_docs/version-2.24/getting-started/install/other/nginxproxymanager.md delete mode 100644 versioned_docs/version-2.24/getting-started/install/other/traefik.md delete mode 100644 versioned_docs/version-2.24/getting-started/install/podman.md delete mode 100644 versioned_docs/version-2.24/getting-started/install/slots/_docker-args.md delete mode 100644 versioned_docs/version-2.24/getting-started/install/slots/_docker-registry-list.md delete mode 100644 versioned_docs/version-2.24/getting-started/migrate-from-1.x.md delete mode 100644 versioned_docs/version-2.24/getting-started/prepare.md delete mode 100644 versioned_docs/version-2.24/getting-started/setup.md delete mode 100644 versioned_docs/version-2.24/intro.md delete mode 100644 versioned_docs/version-2.24/user-guide/activate.md delete mode 100644 versioned_docs/version-2.24/user-guide/app-store.md delete mode 100644 versioned_docs/version-2.24/user-guide/attachments.md delete mode 100644 versioned_docs/version-2.24/user-guide/backup.md delete mode 100644 versioned_docs/version-2.24/user-guide/common.md delete mode 100644 versioned_docs/version-2.24/user-guide/faq.md delete mode 100644 versioned_docs/version-2.24/user-guide/menus.md delete mode 100644 versioned_docs/version-2.24/user-guide/pages.md delete mode 100644 versioned_docs/version-2.24/user-guide/plugins.md delete mode 100644 versioned_docs/version-2.24/user-guide/posts.md delete mode 100644 versioned_docs/version-2.24/user-guide/settings.md delete mode 100644 versioned_docs/version-2.24/user-guide/shop/console-home.mdx delete mode 100644 versioned_docs/version-2.24/user-guide/shop/index.mdx delete mode 100644 versioned_docs/version-2.24/user-guide/shop/orders.mdx delete mode 100644 versioned_docs/version-2.24/user-guide/shop/payments.mdx delete mode 100644 versioned_docs/version-2.24/user-guide/shop/prepare.mdx delete mode 100644 versioned_docs/version-2.24/user-guide/shop/sales-channels.mdx delete mode 100644 versioned_docs/version-2.24/user-guide/shop/theme-dev.mdx delete mode 100644 versioned_docs/version-2.24/user-guide/shop/virtual-delivery.mdx delete mode 100644 versioned_docs/version-2.24/user-guide/themes.md delete mode 100644 versioned_docs/version-2.24/user-guide/user-center.md delete mode 100644 versioned_docs/version-2.24/user-guide/users.md delete mode 100644 versioned_docs/version-2.25/about.md delete mode 100644 versioned_docs/version-2.25/contribution/issue.md delete mode 100644 versioned_docs/version-2.25/contribution/pr.md delete mode 100644 versioned_docs/version-2.25/developer-guide/annotations-form.md delete mode 100644 versioned_docs/version-2.25/developer-guide/app-store/app-review-guidelines.md delete mode 100644 versioned_docs/version-2.25/developer-guide/app-store/publish-app.md delete mode 100644 versioned_docs/version-2.25/developer-guide/core/build.md delete mode 100644 versioned_docs/version-2.25/developer-guide/core/code-style.md delete mode 100644 versioned_docs/version-2.25/developer-guide/core/framework.md delete mode 100644 versioned_docs/version-2.25/developer-guide/core/prepare.md delete mode 100644 versioned_docs/version-2.25/developer-guide/core/run.md delete mode 100644 versioned_docs/version-2.25/developer-guide/core/structure.md delete mode 100644 versioned_docs/version-2.25/developer-guide/form-schema.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/api-changelog.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/api-reference/server/extension-client.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/api-reference/server/extension-getter.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/api-reference/server/extension.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/api-reference/server/finder-for-theme.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/api-reference/server/login-handler-enhancer.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/api-reference/server/notification.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/api-reference/server/reconciler.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/api-reference/server/reverseproxy.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/api-reference/server/setting-fetcher.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/api-reference/server/template-for-theme.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/api-reference/server/websocket.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/api-reference/ui/api-request.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/api-reference/ui/components/annotations-form.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/api-reference/ui/components/attachment-file-type-icon.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/api-reference/ui/components/attachment-selector-modal.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/api-reference/ui/components/filter-clean-button.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/api-reference/ui/components/filter-dropdown.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/api-reference/ui/components/has-permission.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/api-reference/ui/components/index.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/api-reference/ui/components/plugin-detail-modal.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/api-reference/ui/components/search-input.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/api-reference/ui/components/uppy-upload.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/api-reference/ui/components/v-codemirror.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/api-reference/ui/components/v-permission.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/api-reference/ui/components/v-tooltip.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/api-reference/ui/formkit.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/api-reference/ui/route.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/api-reference/ui/shared.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/appendices.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/basics/devtools.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/basics/manifest.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/basics/server/lifecycle.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/basics/server/object-management.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/basics/structure.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/basics/ui/build.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/basics/ui/entry.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/basics/ui/intro.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/examples/todolist.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/server/additional-webfilter.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/server/attachment.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/server/authentication-webfilter.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/server/comment-subject.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/server/comment-widget.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/server/element-tag-post-processor.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/server/excerpt-generator.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/server/halo-documents-provider.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/server/index.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/server/notifier.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/server/post-content.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/server/search-engine.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/server/singlepage-content.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/server/template-footer-processor.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/server/template-head-processor.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/server/user-creating-handler.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/server/username-password-authentication-manager.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/ui/attachment-list-item-operation-create.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/ui/attachment-selector-create.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/ui/backup-list-item-operation-create.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/ui/backup-tabs-create.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/ui/comment-list-item-operation-create.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/ui/comment-subject-ref-create.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/ui/dashboard-widgets.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/ui/default-editor-extension-create.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/ui/editor-create.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/ui/index.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/ui/interface/Attachment.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/ui/interface/ListedComment.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/ui/interface/ListedPost.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/ui/interface/ListedReply.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/ui/interface/ListedSinglePage.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/ui/interface/OperationItem.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/ui/interface/Plugin.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/ui/interface/Theme.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/ui/plugin-installation-tabs-create.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/ui/plugin-list-item-field-create.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/ui/plugin-list-item-operation-create.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/ui/plugin-self-tabs-create.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/ui/post-list-item-field-create.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/ui/post-list-item-operation-create.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/ui/reply-list-item-operation-create.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/ui/single-page-list-item-field-create.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/ui/single-page-list-item-operation-create.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/ui/theme-list-item-operation-create.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/ui/theme-list-tabs-create.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/ui/uc-user-profile-tabs-create.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/extension-points/ui/user-detail-tabs-create.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/hello-world.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/interaction/dependency.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/interaction/making-plugin-extensible.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/interaction/shared-events.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/introduction.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/prepare.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/security/rbac.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/security/role-template.md delete mode 100644 versioned_docs/version-2.25/developer-guide/plugin/security/ui-permission.md delete mode 100644 versioned_docs/version-2.25/developer-guide/restful-api/api-client.md delete mode 100644 versioned_docs/version-2.25/developer-guide/restful-api/introduction.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/annotations.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/api-changelog.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/code-snippets.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/config.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/finder-apis.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/finder-apis/category.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/finder-apis/comment.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/finder-apis/contributor.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/finder-apis/menu.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/finder-apis/plugin.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/finder-apis/post.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/finder-apis/single-page.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/finder-apis/site-stats.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/finder-apis/tag.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/finder-apis/theme.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/image-optimization.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/prepare.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/settings.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/static-resources.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/structure.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/template-route-mapping.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/template-tag.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/template-variables.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/template-variables/archives.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/template-variables/auth.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/template-variables/author.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/template-variables/categories.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/template-variables/category.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/template-variables/error.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/template-variables/index_.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/template-variables/page.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/template-variables/post.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/template-variables/tag.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/template-variables/tags.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/vo/_CategoryTreeVo.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/vo/_CategoryVo.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/vo/_CommentVo.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/vo/_ContentVo.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/vo/_ContributorVo.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/vo/_ListedPostVo.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/vo/_ListedSinglePageVo.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/vo/_MenuItemVo.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/vo/_MenuVo.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/vo/_PostVo.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/vo/_ReplyVo.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/vo/_SinglePageVo.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/vo/_SiteSettingVo.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/vo/_TagVo.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/vo/_ThemeVo.md delete mode 100644 versioned_docs/version-2.25/developer-guide/theme/vo/_UserVo.md delete mode 100644 versioned_docs/version-2.25/getting-started/first-post.md delete mode 100644 versioned_docs/version-2.25/getting-started/install/1panel.md delete mode 100644 versioned_docs/version-2.25/getting-started/install/bt-panel.md delete mode 100644 versioned_docs/version-2.25/getting-started/install/cloud/alibaba-cloud-computenest.md delete mode 100644 versioned_docs/version-2.25/getting-started/install/cloud/alibaba-cloud-market.md delete mode 100644 versioned_docs/version-2.25/getting-started/install/cloud/tencent-cloud-lighthouse.md delete mode 100644 versioned_docs/version-2.25/getting-started/install/config.md delete mode 100644 versioned_docs/version-2.25/getting-started/install/docker-compose.md delete mode 100644 versioned_docs/version-2.25/getting-started/install/docker.md delete mode 100644 versioned_docs/version-2.25/getting-started/install/jar-file.md delete mode 100644 versioned_docs/version-2.25/getting-started/install/offline.md delete mode 100644 versioned_docs/version-2.25/getting-started/install/other/nginxproxymanager.md delete mode 100644 versioned_docs/version-2.25/getting-started/install/other/traefik.md delete mode 100644 versioned_docs/version-2.25/getting-started/install/podman.md delete mode 100644 versioned_docs/version-2.25/getting-started/install/slots/_docker-args.md delete mode 100644 versioned_docs/version-2.25/getting-started/install/slots/_docker-registry-list.md delete mode 100644 versioned_docs/version-2.25/getting-started/migrate-from-1.x.md delete mode 100644 versioned_docs/version-2.25/getting-started/setup.md delete mode 100644 versioned_docs/version-2.25/intro.md delete mode 100644 versioned_docs/version-2.25/user-guide/app-store.md delete mode 100644 versioned_docs/version-2.25/user-guide/attachments.md delete mode 100644 versioned_docs/version-2.25/user-guide/backup.md delete mode 100644 versioned_docs/version-2.25/user-guide/faq.md delete mode 100644 versioned_docs/version-2.25/user-guide/menus.md delete mode 100644 versioned_docs/version-2.25/user-guide/plugins.md delete mode 100644 versioned_docs/version-2.25/user-guide/posts.md delete mode 100644 versioned_docs/version-2.25/user-guide/settings.md delete mode 100644 versioned_docs/version-2.25/user-guide/shop/console-home.mdx delete mode 100644 versioned_docs/version-2.25/user-guide/shop/mp.mdx delete mode 100644 versioned_docs/version-2.25/user-guide/shop/orders.mdx delete mode 100644 versioned_docs/version-2.25/user-guide/shop/payments.mdx delete mode 100644 versioned_docs/version-2.25/user-guide/shop/products.mdx delete mode 100644 versioned_docs/version-2.25/user-guide/shop/sales-channels.mdx delete mode 100644 versioned_docs/version-2.25/user-guide/shop/theme-dev.mdx delete mode 100644 versioned_docs/version-2.25/user-guide/shop/virtual-delivery.mdx delete mode 100644 versioned_docs/version-2.25/user-guide/themes.md delete mode 100644 versioned_docs/version-2.25/user-guide/user-center.md delete mode 100644 versioned_docs/version-2.25/user-guide/users.md delete mode 100644 versioned_docs/version-2.26/about.md delete mode 100644 versioned_docs/version-2.26/contribution/issue.md delete mode 100644 versioned_docs/version-2.26/contribution/pr.md delete mode 100644 versioned_docs/version-2.26/developer-guide/annotations-form.md delete mode 100644 versioned_docs/version-2.26/developer-guide/app-store/app-review-guidelines.md delete mode 100644 versioned_docs/version-2.26/developer-guide/app-store/publish-app.md delete mode 100644 versioned_docs/version-2.26/developer-guide/core/build.md delete mode 100644 versioned_docs/version-2.26/developer-guide/core/code-style.md delete mode 100644 versioned_docs/version-2.26/developer-guide/core/framework.md delete mode 100644 versioned_docs/version-2.26/developer-guide/core/prepare.md delete mode 100644 versioned_docs/version-2.26/developer-guide/core/run.md delete mode 100644 versioned_docs/version-2.26/developer-guide/core/structure.md delete mode 100644 versioned_docs/version-2.26/developer-guide/form-schema.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/api-changelog.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/api-reference/server/extension-client.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/api-reference/server/extension-getter.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/api-reference/server/extension.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/api-reference/server/finder-for-theme.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/api-reference/server/login-handler-enhancer.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/api-reference/server/notification.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/api-reference/server/reconciler.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/api-reference/server/reverseproxy.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/api-reference/server/setting-fetcher.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/api-reference/server/template-for-theme.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/api-reference/server/websocket.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/api-reference/ui/api-request.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/api-reference/ui/components/annotations-form.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/api-reference/ui/components/attachment-file-type-icon.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/api-reference/ui/components/attachment-selector-modal.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/api-reference/ui/components/filter-clean-button.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/api-reference/ui/components/filter-dropdown.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/api-reference/ui/components/has-permission.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/api-reference/ui/components/index.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/api-reference/ui/components/plugin-detail-modal.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/api-reference/ui/components/search-input.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/api-reference/ui/components/uppy-upload.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/api-reference/ui/components/v-codemirror.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/api-reference/ui/components/v-permission.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/api-reference/ui/components/v-tooltip.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/api-reference/ui/formkit.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/api-reference/ui/route.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/api-reference/ui/shared.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/appendices.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/basics/devtools.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/basics/manifest.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/basics/server/lifecycle.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/basics/server/object-management.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/basics/structure.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/basics/ui/build.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/basics/ui/entry.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/basics/ui/intro.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/examples/todolist.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/server/additional-webfilter.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/server/attachment.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/server/authentication-webfilter.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/server/comment-subject.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/server/comment-widget.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/server/element-tag-post-processor.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/server/excerpt-generator.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/server/halo-documents-provider.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/server/index.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/server/notifier.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/server/post-content.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/server/search-engine.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/server/singlepage-content.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/server/template-footer-processor.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/server/template-head-processor.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/server/user-creating-handler.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/server/username-password-authentication-manager.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/ui/attachment-list-item-operation-create.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/ui/attachment-selector-create.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/ui/backup-list-item-operation-create.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/ui/backup-tabs-create.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/ui/comment-list-item-operation-create.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/ui/comment-subject-ref-create.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/ui/dashboard-widgets.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/ui/default-editor-extension-create.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/ui/editor-create.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/ui/index.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/ui/interface/Attachment.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/ui/interface/ListedComment.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/ui/interface/ListedPost.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/ui/interface/ListedReply.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/ui/interface/ListedSinglePage.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/ui/interface/OperationItem.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/ui/interface/Plugin.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/ui/interface/Theme.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/ui/plugin-installation-tabs-create.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/ui/plugin-list-item-field-create.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/ui/plugin-list-item-operation-create.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/ui/plugin-self-tabs-create.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/ui/post-list-item-field-create.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/ui/post-list-item-operation-create.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/ui/reply-list-item-operation-create.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/ui/single-page-list-item-field-create.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/ui/single-page-list-item-operation-create.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/ui/theme-list-item-operation-create.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/ui/theme-list-tabs-create.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/ui/uc-user-profile-tabs-create.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/extension-points/ui/user-detail-tabs-create.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/hello-world.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/interaction/dependency.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/interaction/making-plugin-extensible.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/interaction/shared-events.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/introduction.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/prepare.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/security/rbac.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/security/role-template.md delete mode 100644 versioned_docs/version-2.26/developer-guide/plugin/security/ui-permission.md delete mode 100644 versioned_docs/version-2.26/developer-guide/restful-api/api-client.md delete mode 100644 versioned_docs/version-2.26/developer-guide/restful-api/introduction.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/annotations.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/api-changelog.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/code-snippets.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/config.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/finder-apis.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/finder-apis/category.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/finder-apis/comment.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/finder-apis/contributor.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/finder-apis/menu.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/finder-apis/plugin.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/finder-apis/post.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/finder-apis/single-page.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/finder-apis/site-stats.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/finder-apis/tag.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/finder-apis/theme.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/global-variables.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/image-optimization.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/page-layout.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/prepare.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/settings.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/static-resources.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/structure.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/template-route-mapping.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/template-tag.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/template-variables.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/template-variables/archives.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/template-variables/auth.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/template-variables/author.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/template-variables/categories.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/template-variables/category.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/template-variables/error.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/template-variables/index_.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/template-variables/page.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/template-variables/post.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/template-variables/tag.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/template-variables/tags.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/ui-plugin.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/vo/_CategoryTreeVo.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/vo/_CategoryVo.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/vo/_CommentVo.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/vo/_ContentVo.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/vo/_ContributorVo.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/vo/_ListedPostVo.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/vo/_ListedSinglePageVo.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/vo/_MenuItemVo.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/vo/_MenuVo.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/vo/_PostVo.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/vo/_ReplyVo.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/vo/_SinglePageVo.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/vo/_SiteSettingVo.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/vo/_TagVo.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/vo/_ThemeVo.md delete mode 100644 versioned_docs/version-2.26/developer-guide/theme/vo/_UserVo.md delete mode 100644 versioned_docs/version-2.26/getting-started/first-post.md delete mode 100644 versioned_docs/version-2.26/getting-started/install/1panel.md delete mode 100644 versioned_docs/version-2.26/getting-started/install/bt-panel.md delete mode 100644 versioned_docs/version-2.26/getting-started/install/cloud/alibaba-cloud-computenest.md delete mode 100644 versioned_docs/version-2.26/getting-started/install/cloud/alibaba-cloud-market.md delete mode 100644 versioned_docs/version-2.26/getting-started/install/cloud/tencent-cloud-lighthouse.md delete mode 100644 versioned_docs/version-2.26/getting-started/install/config.md delete mode 100644 versioned_docs/version-2.26/getting-started/install/docker-compose.md delete mode 100644 versioned_docs/version-2.26/getting-started/install/helm.md delete mode 100644 versioned_docs/version-2.26/getting-started/install/offline.md delete mode 100644 versioned_docs/version-2.26/getting-started/install/podman.md delete mode 100644 versioned_docs/version-2.26/getting-started/install/slots/_docker-args.md delete mode 100644 versioned_docs/version-2.26/getting-started/install/slots/_docker-registry-list.md delete mode 100644 versioned_docs/version-2.26/getting-started/migrate-from-1.x.md delete mode 100644 versioned_docs/version-2.26/getting-started/prepare.md delete mode 100644 versioned_docs/version-2.26/getting-started/setup.md delete mode 100644 versioned_docs/version-2.26/intro.md delete mode 100644 versioned_docs/version-2.26/user-guide/activate.md delete mode 100644 versioned_docs/version-2.26/user-guide/app-store.md delete mode 100644 versioned_docs/version-2.26/user-guide/attachments.md delete mode 100644 versioned_docs/version-2.26/user-guide/backup.md delete mode 100644 versioned_docs/version-2.26/user-guide/common.md delete mode 100644 versioned_docs/version-2.26/user-guide/faq.md delete mode 100644 versioned_docs/version-2.26/user-guide/menus.md delete mode 100644 versioned_docs/version-2.26/user-guide/pages.md delete mode 100644 versioned_docs/version-2.26/user-guide/plugins.md delete mode 100644 versioned_docs/version-2.26/user-guide/posts.md delete mode 100644 versioned_docs/version-2.26/user-guide/shop/console-home.mdx delete mode 100644 versioned_docs/version-2.26/user-guide/shop/index.mdx delete mode 100644 versioned_docs/version-2.26/user-guide/shop/mp.mdx delete mode 100644 versioned_docs/version-2.26/user-guide/shop/orders.mdx delete mode 100644 versioned_docs/version-2.26/user-guide/shop/payments.mdx delete mode 100644 versioned_docs/version-2.26/user-guide/shop/prepare.mdx delete mode 100644 versioned_docs/version-2.26/user-guide/shop/products.mdx delete mode 100644 versioned_docs/version-2.26/user-guide/shop/sales-channels.mdx delete mode 100644 versioned_docs/version-2.26/user-guide/shop/theme-dev.mdx delete mode 100644 versioned_docs/version-2.26/user-guide/shop/virtual-delivery.mdx delete mode 100644 versioned_docs/version-2.26/user-guide/themes.md delete mode 100644 versioned_docs/version-2.26/user-guide/user-center.md delete mode 100644 versioned_docs/version-2.26/user-guide/users.md delete mode 100644 versioned_sidebars/version-2.22-sidebars.json delete mode 100644 versioned_sidebars/version-2.23-sidebars.json delete mode 100644 versioned_sidebars/version-2.24-sidebars.json delete mode 100644 versioned_sidebars/version-2.25-sidebars.json delete mode 100644 versioned_sidebars/version-2.26-sidebars.json delete mode 100644 versions.json delete mode 100644 versionsArchived.json delete mode 100644 wrangler.jsonc diff --git a/.agents/skills/rspress-best-practices/SKILL.md b/.agents/skills/rspress-best-practices/SKILL.md new file mode 100644 index 00000000..af0370b9 --- /dev/null +++ b/.agents/skills/rspress-best-practices/SKILL.md @@ -0,0 +1,82 @@ +--- +name: rspress-best-practices +description: Rspress best practices for config, CLI workflow, content organization, frontmatter, MDX, themes, i18n, search, static assets, deployment, and debugging. Use when writing, reviewing, or troubleshooting Rspress documentation sites. +--- + +# Rspress Best Practices + +Apply these rules when writing or reviewing Rspress (v2) sites. + +## Configuration + +- Use `rspress.config.ts` and `defineConfig` from `@rspress/core` +- Set `root` explicitly when docs are not under the default `docs/` directory +- Keep site-wide settings such as `title`, `description`, `icon`, `logo`, `base`, and `lang` in config instead of repeating them in page files +- Prefer first-class Rspress options before custom theme code or low-level bundler overrides +- Keep custom theme code in a top-level `theme/` directory and import original theme pieces from `@rspress/core/theme-original` + +## CLI + +- Use `rspress dev` for local development +- Use `rspress build` for production output +- Use `rspress preview` only for local preview of the built site +- Use `rspress eject` only when CSS variables, class overrides, or layout wrapping cannot solve the customization + +## Docs Structure And Navigation + +- Keep docs content under one clear docs root and group pages by topic or workflow, not by team ownership +- Use `_meta.json` or `_nav.json` to control sidebar and navigation labels/order instead of encoding order in filenames +- Put reusable MDX snippets or shared components in shared files instead of duplicating them across pages +- Keep landing pages concise and link to deeper task-oriented guides from them + +## Writing And Frontmatter + +- Add clear `title` and `description` frontmatter, and set `sidebar`, `outline`, `navbar`, or `footer` only when page defaults are not enough +- Use `pageType: home`, `doc`, `doc-wide`, `custom`, or `blank` intentionally based on layout needs +- Write task-first headings and short intros; avoid marketing-heavy copy in technical docs +- Prefer one topic per page and split overly long pages by workflow or feature area +- Keep code examples minimal, runnable, and version-accurate + +## MDX And Components + +- Use MDX for interactive docs and embedded components, but keep the main narrative understandable as plain markdown +- Prefer documented Rspress theme/runtime APIs over importing from internal source paths +- For app-wide UI or providers, use `globalUIComponents` or theme overrides instead of repeating imports in each page + +## Theme And Styling + +- Prefer CSS variables for brand colors, spacing, and surface styling +- Prefer BEM class overrides or `Layout` slots before ejecting built-in components +- In `theme/` files, keep `export * from '@rspress/core/theme-original'` unless intentionally replacing a named export +- Avoid full component ejection unless config, CSS, and wrapping cannot meet the requirement + +## I18n, Search, And AI + +- For multilingual sites, organize locale content under per-language directories and keep navigation mirrored where practical +- Keep descriptions and other frontmatter text in the same language as the page content +- Configure search intentionally: use local search for small or medium sites, and hosted search when scale or cross-version indexing requires it +- Enable `llms` or `ssgMd` only when the site benefits from machine-readable outputs, and keep descriptions accurate because those outputs surface page summaries + +## Assets And Public Files + +- Import source-managed images and components from docs/theme source when they belong to the content +- Use `public/` only for assets that must keep stable URL paths, such as favicons, social images, or download files +- Reference public assets by absolute site path and make sure they still work when `base` is set + +## Plugins And Integration + +- Prefer official Rspress plugins for search, preview, and API-doc scenarios before building custom solutions +- For component or library docs, use `@rspress/plugin-preview` and `@rspress/plugin-api-docgen` when interactive demos or API tables are needed +- Keep plugin usage explicit in config and remove unused plugins to reduce maintenance cost + +## Build, Deploy, And Debugging + +- Validate both `rspress dev` and `rspress build`; a page that works in dev can still fail during static generation +- Verify broken links, missing assets, and wrong `base` handling before deployment +- Keep generated output out of source control unless the hosting workflow explicitly requires committed artifacts +- When debugging content issues, inspect the resolved docs root, frontmatter, and theme overrides before assuming a bundler problem + +## Documentation + +- For the latest Rspress docs, read https://rspress.rs/llms.txt +- Use the config and API docs when checking exact option names or current behavior diff --git a/.agents/skills/rspress-custom-theme/SKILL.md b/.agents/skills/rspress-custom-theme/SKILL.md new file mode 100644 index 00000000..2ee763cf --- /dev/null +++ b/.agents/skills/rspress-custom-theme/SKILL.md @@ -0,0 +1,242 @@ +--- +name: rspress-custom-theme +description: Customize Rspress themes using CSS variables, Layout slots, component wrapping, or component ejection. Use when a user wants to change the look and feel of an Rspress site, override theme components, add custom navigation/sidebar/footer content, inject global providers, or modify the default Rspress theme in any way. Also use when a user mentions theme/index.tsx, Layout slots, BEM class overrides, or rspress eject. +--- + +# Rspress Custom Theme + +Guide for customizing Rspress (v2) themes. Rspress offers four levels of customization, from lightest to heaviest. Always prefer the lightest approach that meets the requirement — lighter approaches are more maintainable and survive Rspress upgrades. + +## Workflow + +1. **Understand the user's goal** — what do they want to change? (colors, layout, inject content, replace a component entirely?) +2. **Pick the right level** using the decision flow below +3. **Set up `theme/index.tsx`** if needed (Levels 1A, 3, 4 all need it) +4. **Implement** following the patterns in this skill and reference files +5. **Verify** the user's Rspress version is v2 (imports use `@rspress/core/*` not `rspress/*`) + +## Decision Flow + +| User wants to... | Level | Approach | +| ---------------------------------------------------------------- | ----- | --------------------------- | +| Change brand colors, fonts, spacing, shadows | 1 | CSS variables | +| Adjust a specific component's style (borders, padding, etc.) | 2 | BEM class overrides | +| Add content around existing components (banners, footers, logos) | 3 | Layout slots (wrap) | +| Override MDX rendering (custom `

`, ``, etc.) | 3 | `components` slot | +| Wrap the app in a provider (state, analytics, auth) | 4 | Eject `Root` | +| Replace built-in icons (logo, GitHub, search, etc.) | — | Icon re-export | +| Completely replace a built-in component | 4 | Eject that component | +| Add a global floating component (back-to-top, chat widget) | — | `globalUIComponents` config | +| Control page layout structure (hide sidebar, blank page) | — | Frontmatter `pageType` | + +--- + +## theme/index.tsx — The Entry Point + +Levels 1A, 3, and 4 all require a `theme/index.tsx` file in the project root (sibling to `docs/`). This is the single entry point for all theme customizations: + +```text +project/ +├── docs/ +├── theme/ +│ ├── index.tsx # Theme entry — re-exports + overrides +│ ├── index.css # CSS variable / BEM overrides (optional) +│ └── components/ # Ejected components (Level 4) +└── rspress.config.ts +``` + +Minimal setup: + +```tsx +// theme/index.tsx +import './index.css'; // optional +export * from '@rspress/core/theme-original'; +``` + +**Critical import rule**: Inside `theme/` files, always import from `@rspress/core/theme-original`. The path `@rspress/core/theme` resolves to your own `theme/index.tsx`, which causes circular imports. (In `docs/` MDX files, `@rspress/core/theme` is fine — it correctly points to your custom theme.) + +--- + +## Level 1: CSS Variables + +Override CSS custom properties for brand colors, backgrounds, text, code blocks, and more. + +**Option A** — `theme/index.css` (use when you also have component overrides in `theme/index.tsx`): + +```css +/* theme/index.css */ +:root { + --rp-c-brand: #7c3aed; + --rp-c-brand-light: #8b5cf6; + --rp-c-brand-dark: #6d28d9; +} +.dark { + --rp-c-brand: #a78bfa; +} +``` + +**Option B** — `globalStyles` (use when you only need CSS changes, no component overrides): + +```ts +// rspress.config.ts +export default defineConfig({ + globalStyles: path.join(__dirname, 'styles/custom.css'), +}); +``` + +> **Full variable list**: Read `references/css-variables.md` for all available CSS variables with light/dark defaults. + +--- + +## Level 2: BEM Class Overrides + +All built-in components follow BEM naming: `.rp-[component]__[element]--[modifier]`. + +Common targets: `.rp-nav`, `.rp-link`, `.rp-tabs`, `.rp-codeblock`, `.rp-codeblock__title`, `.rp-nav-menu__item--active`. + +Use these in your CSS file for targeted style changes when CSS variables aren't granular enough. + +--- + +## Level 3: Wrap (Layout Slots) + +Inject content at specific positions in the layout without replacing built-in components. Override `Layout` in `theme/index.tsx`: + +```tsx +// theme/index.tsx +import { Layout as OriginalLayout } from '@rspress/core/theme-original'; +export * from '@rspress/core/theme-original'; + +export function Layout() { + return ( + } bottom={} /> + ); +} +``` + +Use runtime hooks inside slot components — import from `@rspress/core/runtime`: `useDark()`, `useLang()`, `useVersion()`, `usePage()`, `useSite()`, `useFrontmatter()`, `useI18n()`. + +> **All slots & examples**: Read `references/layout-slots.md` for the complete slot list and usage patterns including i18n and MDX component overrides. + +--- + +## Level 4: Eject + +Copy a built-in component's source for full replacement. Only use when wrap/slots cannot achieve the customization. + +```bash +rspress eject # list available components +rspress eject DocFooter # eject to theme/components/DocFooter/ +``` + +Then re-export in `theme/index.tsx` (named export takes precedence over the wildcard): + +```tsx +export * from '@rspress/core/theme-original'; +export { DocFooter } from './components/DocFooter'; +``` + +> **Component list & patterns**: Read `references/eject-components.md` for available components, workflow, and common patterns. + +--- + +## Custom Icons + +Rspress has 27 built-in icons used across the UI. You can replace any of them by re-exporting your own icon component with the same name — no ejection needed. This uses the same `theme/index.tsx` mechanism: your named export takes precedence over the wildcard re-export. + +**Icon type**: Each icon is a React component or a URL string: + +```ts +import type { FC, SVGProps } from 'react'; +type Icon = FC> | string; +``` + +**Example 1** — Replace an icon with a custom SVG component: + +```tsx +// theme/index.tsx +export * from '@rspress/core/theme-original'; + +// Named export overrides the wildcard — replaces the GitHub icon site-wide +export const IconGithub = (props: React.SVGProps) => ( + + + +); +``` + +**Example 2** — Use an SVGR import: + +```tsx +// theme/index.tsx +export * from '@rspress/core/theme-original'; + +import CustomGithubIcon from './icons/github.svg?react'; +export const IconGithub = CustomGithubIcon; +``` + +**Using `SvgWrapper` in MDX or custom components**: + +```mdx +import { SvgWrapper, IconGithub } from '@rspress/core/theme'; + + +``` + +**Available icons**: `IconArrowDown`, `IconArrowRight`, `IconClose`, `IconCopy`, `IconDeprecated`, `IconDown`, `IconEdit`, `IconEmpty`, `IconExperimental`, `IconExternalLink`, `IconFile`, `IconGithub`, `IconGitlab`, `IconHeader`, `IconJump`, `IconLink`, `IconLoading`, `IconMenu`, `IconMoon`, `IconScrollToTop`, `IconSearch`, `IconSmallMenu`, `IconSuccess`, `IconSun`, `IconTitle`, `IconWrap`, `IconWrapped`. + +> **Source**: See the [icons source](https://github.com/web-infra-dev/rspress/blob/main/packages/core/src/theme/icons.ts) for default implementations. + +--- + +## Global UI Components + +For components that should render on every page without theme overrides: + +```ts +// rspress.config.ts +export default defineConfig({ + globalUIComponents: [ + path.join(__dirname, 'components', 'BackToTop.tsx'), + [ + path.join(__dirname, 'components', 'Analytics.tsx'), + { trackingId: '...' }, + ], + ], +}); +``` + +--- + +## Page Types + +Control layout per page via frontmatter `pageType`: + +| Value | Description | +| ---------- | ------------------------------------- | +| `home` | Home page with navbar | +| `doc` | Standard doc with sidebar and outline | +| `doc-wide` | Doc without sidebar/outline | +| `custom` | Custom content with navbar only | +| `blank` | Custom content without navbar | +| `404` | 404 error page | + +Fine-grained: set `navbar: false`, `sidebar: false`, `outline: false`, `footer: false` individually. + +--- + +## Common Pitfalls + +- **Circular import**: Using `@rspress/core/theme` instead of `@rspress/core/theme-original` in `theme/` files — causes infinite loop. +- **Eject over-use**: Ejecting when a Layout slot or CSS variable would suffice — creates upgrade burden. +- **Missing re-export**: Forgetting `export * from '@rspress/core/theme-original'` in `theme/index.tsx` — breaks all un-overridden components. +- **v1 imports**: Using `rspress/theme` or `@rspress/theme-default` — these are v1 paths. v2 uses `@rspress/core/theme-original`. + +## Reference + +- Custom theme guide: +- CSS variables: +- Layout component: +- Built-in icons: +- Built-in hooks: +- CLI commands (eject): diff --git a/.agents/skills/rspress-custom-theme/references/css-variables.md b/.agents/skills/rspress-custom-theme/references/css-variables.md new file mode 100644 index 00000000..a06573c0 --- /dev/null +++ b/.agents/skills/rspress-custom-theme/references/css-variables.md @@ -0,0 +1,177 @@ +# CSS Variables Reference + +Complete list of CSS variables exposed by Rspress for theme customization. + +- **Override location**: `theme/index.css` or `globalStyles` in `rspress.config.ts` +- **Dark mode selector**: `.dark { ... }` +- **Official docs**: + +--- + +## Brand Colors (shared) + +```css +:root { + --rp-c-brand: #0095ff; + --rp-c-brand-light: #33adff; + --rp-c-brand-lighter: #c6e0fd; + --rp-c-brand-dark: #0077ff; + --rp-c-brand-darker: #005fcc; + --rp-c-brand-tint: rgba(127, 163, 255, 0.16); +} +``` + +## Base Variables + +| Variable | Light | Dark | +| ---------------------- | --------------------- | ------------------------ | +| `--rp-c-bg` | `#ffffff` | `#121212` | +| `--rp-c-bg-soft` | `#f8f8f9` | `#292e37` | +| `--rp-c-bg-mute` | `#f1f1f1` | `#343a46` | +| `--rp-c-bg-alt` | `#fff` | `#000` | +| `--rp-c-divider` | `rgba(0, 0, 0, 0.25)` | `rgba(84, 84, 84, 0.65)` | +| `--rp-c-divider-light` | `rgba(0, 0, 0, 0.12)` | `rgba(84, 84, 84, 0.48)` | + +## Text Colors + +| Variable | Light | Dark | +| --------------- | ------------------------ | --------------------------- | +| `--rp-c-text-0` | `#000000` | `#ffffff` | +| `--rp-c-text-1` | `#242424` | `rgba(255, 255, 245, 0.93)` | +| `--rp-c-text-2` | `rgba(0, 0, 0, 0.7)` | `rgba(255, 255, 245, 0.65)` | +| `--rp-c-text-3` | `rgba(60, 60, 60, 0.33)` | `rgba(235, 235, 235, 0.38)` | +| `--rp-c-text-4` | `rgba(60, 60, 60, 0.18)` | `rgba(235, 235, 235, 0.18)` | +| `--rp-c-link` | `var(--rp-c-brand-dark)` | `var(--rp-c-brand-light)` | + +## Inline Code + +| Variable | Light | Dark | +| ------------------------- | --------------------------- | --------------------------- | +| `--rp-c-text-code` | `#476582` | `#c9def1` | +| `--rp-c-text-code-bg` | `rgba(153, 161, 179, 0.06)` | `rgba(255, 255, 255, 0.06)` | +| `--rp-c-text-code-border` | `rgba(0, 0, 0, 0.035)` | `rgba(255, 255, 255, 0.04)` | + +## Code Blocks + +| Variable | Light | Dark | +| ------------------------ | ------------------------------------- | ------------------------------------- | +| `--rp-code-font-size` | `0.875rem` | `0.875rem` | +| `--rp-code-title-bg` | `#f8f8f9` | `#191919` | +| `--rp-code-block-color` | `rgb(46, 52, 64)` | `rgb(229, 231, 235)` | +| `--rp-code-block-bg` | `var(--rp-c-bg)` | `var(--rp-c-bg)` | +| `--rp-code-block-border` | `1px solid var(--rp-c-divider-light)` | `1px solid var(--rp-c-divider-light)` | +| `--rp-code-block-shadow` | `none` | `none` | + +## Shiki Syntax Highlighting + +Rspress uses `.dark` on `html` as the public dark-mode toggle for general theme overrides. The Shiki token blocks below target `html:not(.rp-dark)` and `html.rp-dark`, which Rspress uses internally for syntax highlighting variables. + +### Light + +```css +html:not(.rp-dark) { + --shiki-foreground: inherit; + --shiki-background: transparent; + --shiki-token-constant: #1976d2; + --shiki-token-string: #31a94d; + --shiki-token-comment: rgb(182, 180, 180); + --shiki-token-keyword: #cf2727; + --shiki-token-parameter: #f59403; + --shiki-token-function: #7041c8; + --shiki-token-string-expression: #218438; + --shiki-token-punctuation: #242323; + --shiki-token-link: #22863a; + --shiki-token-deleted: #d32828; + --shiki-token-inserted: #22863a; +} +``` + +### Dark + +```css +html.rp-dark { + --shiki-foreground: inherit; + --shiki-background: transparent; + --shiki-token-constant: #6fb0fa; + --shiki-token-string: #f9a86e; + --shiki-token-comment: #6a727b; + --shiki-token-keyword: #f47481; + --shiki-token-parameter: #ff9800; + --shiki-token-function: #ae8eeb; + --shiki-token-string-expression: #4fb74d; + --shiki-token-punctuation: #bbbbbb; + --shiki-token-link: #f9a76d; + --shiki-token-deleted: #ee6d7a; + --shiki-token-inserted: #36c47f; +} +``` + +## Grays (shared) + +```css +:root { + --rp-c-gray: #8e8e8e; + --rp-c-gray-light-1: #aeaeae; + --rp-c-gray-light-2: #c7c7c7; + --rp-c-gray-light-3: #d1d1d1; + --rp-c-gray-light-4: #e5e5e5; + --rp-c-gray-light-5: #f2f2f2; +} +``` + +## Shadows (shared) + +```css +:root { + --rp-shadow-1: 0 1px 2px rgba(0, 0, 0, 0.02), 0 1px 0 rgba(0, 0, 0, 0.06); + --rp-shadow-2: 0 3px 12px rgba(0, 0, 0, 0.06), 0 1px 4px rgba(0, 0, 0, 0.07); + --rp-shadow-3: 0 12px 32px rgba(0, 0, 0, 0.1), 0 2px 6px rgba(0, 0, 0, 0.08); + --rp-shadow-4: 0 14px 44px rgba(0, 0, 0, 0.12), 0 3px 9px rgba(0, 0, 0, 0.12); + --rp-shadow-5: + 0 18px 56px rgba(0, 0, 0, 0.16), 0 4px 12px rgba(0, 0, 0, 0.16); +} +``` + +## Radius (shared) + +```css +:root { + --rp-radius: 1rem; + --rp-radius-small: 0.5rem; + --rp-radius-large: 1.5rem; +} +``` + +## Home Page + +Note: `...` in gradient values marks omitted gradient parameters, not literal CSS. See the official docs link above for complete values. + +| Variable | Light | Dark | +| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | +| `--rp-home-hero-secondary-color` | `#a673ff` | `#a673ff` | +| `--rp-home-hero-title-color` | `transparent` | `transparent` | +| `--rp-home-hero-title-bg` | `linear-gradient(90deg, var(--rp-c-brand-dark) 0%, var(--rp-c-brand-dark) 30%, var(--rp-home-hero-secondary-color) 100%)` | (same) | +| `--rp-home-background-bg` | `radial-gradient(...), radial-gradient(...), radial-gradient(...), #fff` | `radial-gradient(...), radial-gradient(...), radial-gradient(...), #121212` | +| `--rp-home-feature-bg` | `linear-gradient(135deg, #fff, #f9f9f980)` | `linear-gradient(135deg, #ffffff00, #ffffff08)` | + +## Quick Start + +```css +/* Example brand color overrides for the custom theme scaffold. */ +/* For more CSS variables, see https://rspress.rs/ui/vars. */ +:root { + --rp-c-brand: #ff5e00; + --rp-c-brand-dark: #ff704d; + --rp-c-brand-darker: #ff704d; + --rp-c-brand-light: #ff7524; + --rp-c-brand-lighter: #ff7524; + --rp-c-brand-tint: rgba(255, 94, 0, 0.07); + + --rp-home-hero-secondary-color: #ff5e00; +} + +.dark { + --rp-c-brand: #ff8c4d; + --rp-home-hero-secondary-color: #ff8c4d; +} +``` diff --git a/.agents/skills/rspress-custom-theme/references/eject-components.md b/.agents/skills/rspress-custom-theme/references/eject-components.md new file mode 100644 index 00000000..235800fe --- /dev/null +++ b/.agents/skills/rspress-custom-theme/references/eject-components.md @@ -0,0 +1,154 @@ +# Eject Components Reference + +Eject copies a built-in component's source code into your project for full customization. This is the heaviest approach — ejected components do not receive automatic updates when Rspress upgrades. Prefer CSS variables, BEM overrides, or Layout slots whenever possible. + +Official reference: + +--- + +## Eject Command + +```bash +# List all available components +rspress eject + +# Eject a specific component +rspress eject +``` + +Ejected source is placed in `theme/components//`. + +## Available Components + +| Component | Description | Consider wrapping first? | +| ---------------- | ----------------------------------------- | ------------------------------------------------ | +| `Layout` | Main layout container with all slot props | Yes — use Layout slots instead | +| `Root` | Application root wrapper | Only eject for global providers | +| `Banner` | Notification banner at top of page | Check `top` slot first | +| `NavTitle` | Navigation logo and title | Check `navTitle` / `beforeNavTitle` slots | +| `HomeLayout` | Complete home page layout | Check home page slots first | +| `HomeHero` | Hero section on home page | Check `beforeHero` / `afterHero` slots | +| `HomeFeature` | Feature grid cards | Check `beforeFeatures` / `afterFeatures` slots | +| `HomeBackground` | Home page background effects | Try CSS variables first | +| `HomeFooter` | Home page footer | Check `bottom` slot first | +| `DocFooter` | Documentation page footer | Check `beforeDocFooter` / `afterDocFooter` slots | +| `EditLink` | "Edit this page" link | Configure via `themeConfig.editLink` | +| `LastUpdated` | Last updated timestamp | Usually config is enough | +| `PrevNextPage` | Previous/next page navigation | Check `beforeDocFooter` slot | +| `OverviewGroup` | Overview page group cards | — | +| `Tag` | Tag/label component | — | + +## Step-by-Step Eject Workflow + +1. **Eject the component:** + + ```bash + rspress eject DocFooter + ``` + +2. **Re-export in theme/index.tsx:** + + ```tsx + // theme/index.tsx + export * from '@rspress/core/theme-original'; + export { DocFooter } from './components/DocFooter'; + ``` + + The named export takes precedence over the wildcard re-export, so Rspress uses your custom version. + +3. **Modify the ejected source** in `theme/components/DocFooter/`. + +## Common Pattern: Root for Global Providers + +The most common eject use case is wrapping the entire app in a context provider (state management, analytics, auth, etc.): + +```tsx +// theme/components/Root/index.tsx +import type { RootProps } from '@rspress/core/theme'; + +export function Root({ children }: RootProps) { + return ( + + {children} + + ); +} +``` + +```tsx +// theme/index.tsx +export * from '@rspress/core/theme-original'; +export { Root } from './components/Root'; +``` + +## Common Pattern: Custom Home Page (HomeLayout) + +When the default home page structure (Hero + Features) doesn't meet the design requirements — for example, you need a completely different landing page with custom sections, animations, or a non-standard layout — write a custom `HomeLayout` component and re-export it directly: + +```tsx +// theme/components/HomeLayout/index.tsx +import { useSite, useLang } from '@rspress/core/runtime'; + +export function HomeLayout() { + const site = useSite(); + const lang = useLang(); + const { title, description } = site.siteData; + + return ( +
+
+

{title}

+

{description}

+ +
+ +
+ {/* Custom content: testimonials, stats, demos, etc. */} +
+
+ ); +} +``` + +```tsx +// theme/index.tsx +export * from '@rspress/core/theme-original'; +export { HomeLayout } from './components/HomeLayout'; +``` + +The named export overrides the built-in `HomeLayout` from the wildcard re-export — no need to eject first. + +If you only need to add content before/after the Hero or Features sections (without replacing the entire home page), prefer Layout slots (`beforeHero`, `afterHero`, `beforeFeatures`, `afterFeatures`) instead — see `references/layout-slots.md`. + +## Common Pattern: Custom Doc Footer + +```tsx +// theme/components/DocFooter/index.tsx +import { useFrontmatter } from '@rspress/core/runtime'; + +export function DocFooter() { + const frontmatter = useFrontmatter(); + return ( +
+ {frontmatter.author && Author: {frontmatter.author}} + Edit this page +
+ ); +} +``` + +## Important Notes + +- Always import from `@rspress/core/theme-original` in `theme/` files, never from `@rspress/core/theme` (the latter resolves to your own `theme/index.tsx`, causing circular imports). +- After ejecting, you own that component. Track Rspress changelogs for upstream changes you might want to incorporate manually. +- Run `rspress eject` (no args) to see the up-to-date list of available components — the list above may change between Rspress versions. diff --git a/.agents/skills/rspress-custom-theme/references/layout-slots.md b/.agents/skills/rspress-custom-theme/references/layout-slots.md new file mode 100644 index 00000000..1774218c --- /dev/null +++ b/.agents/skills/rspress-custom-theme/references/layout-slots.md @@ -0,0 +1,153 @@ +# Layout Slots Reference + +The `Layout` component accepts slot props (`React.ReactNode`) for injecting content at specific positions without replacing built-in components. This is the recommended way to extend Rspress before considering eject. + +Official reference: + +--- + +## All Available Slots + +### Navigation Bar + +| Slot | Position | +| ---------------- | ------------------------------------ | +| `beforeNav` | Before the entire navigation bar | +| `afterNav` | After the entire navigation bar | +| `beforeNavTitle` | Before the nav title/logo (top-left) | +| `navTitle` | Replaces the nav title content | +| `afterNavTitle` | After the nav title/logo | +| `beforeNavMenu` | Before the nav menu items | +| `afterNavMenu` | After the nav menu items | + +### Sidebar & Outline + +| Slot | Position | +| --------------- | ----------------------------------- | +| `beforeSidebar` | Above the left sidebar | +| `afterSidebar` | Below the left sidebar | +| `beforeOutline` | Above the right outline (TOC) panel | +| `afterOutline` | Below the right outline panel | + +### Home Page + +| Slot | Position | +| ---------------- | ------------------------ | +| `beforeHero` | Before the Hero section | +| `afterHero` | After the Hero section | +| `beforeFeatures` | Before the Features grid | +| `afterFeatures` | After the Features grid | + +### Doc Page + +| Slot | Position | +| ------------------ | ------------------------------------- | +| `beforeDoc` | At the very beginning of the doc page | +| `afterDoc` | At the very end of the doc page | +| `beforeDocContent` | Before the document content area | +| `afterDocContent` | After the document content area | +| `beforeDocFooter` | Before the doc footer (prev/next nav) | +| `afterDocFooter` | After the doc footer | + +### Global + +| Slot | Position | +| ------------ | ---------------------------------------------------------------------- | +| `top` | At the very top of the entire page | +| `bottom` | At the very bottom of the entire page | +| `components` | Custom MDX component overrides (`Record`) | + +--- + +## Usage Pattern + +All examples below follow the same structure in `theme/index.tsx`. The key parts: + +- Import `Layout` from `@rspress/core/theme-original` (not `@rspress/core/theme` — that causes circular imports) +- Re-export everything: `export * from '@rspress/core/theme-original'` +- Export your custom `Layout` that wraps the original with slot props + +### Basic — Single Slot + +```tsx +// theme/index.tsx +import { Layout as OriginalLayout } from '@rspress/core/theme-original'; +export * from '@rspress/core/theme-original'; + +export function Layout() { + return } />; +} +``` + +### Multiple Slots + +```tsx +// theme/index.tsx +import { Layout as OriginalLayout } from '@rspress/core/theme-original'; +export * from '@rspress/core/theme-original'; + +export function Layout() { + return ( + New version released!} + bottom={
© 2025 My Company
} + afterOutline={
Related resources
} + /> + ); +} +``` + +### With i18n Hooks + +```tsx +// theme/index.tsx +import { Layout as OriginalLayout } from '@rspress/core/theme-original'; +import { useLang } from '@rspress/core/runtime'; +export * from '@rspress/core/theme-original'; + +function LocalizedBanner() { + const lang = useLang(); + return
{lang === 'zh' ? '欢迎' : 'Welcome'}
; +} + +export function Layout() { + return } />; +} +``` + +### Override MDX Components + +The `components` slot accepts a `Record` to override how MDX elements render: + +```tsx +// theme/index.tsx +import { Layout as OriginalLayout } from '@rspress/core/theme-original'; +export * from '@rspress/core/theme-original'; + +function CustomH1({ children }: { children: React.ReactNode }) { + return ( +

{children}

+ ); +} + +export function Layout() { + return ; +} +``` + +--- + +## Available Hooks + +Use these hooks inside slot components. Import from `@rspress/core/runtime`. + +| Hook | Purpose | +| ------------------ | ----------------------------------- | +| `useDark()` | Returns whether dark mode is active | +| `useLang()` | Returns current language code | +| `useVersion()` | Returns current doc version | +| `usePage()` | Returns current page metadata | +| `usePages()` | Returns all pages metadata | +| `useSite()` | Returns site-level configuration | +| `useFrontmatter()` | Returns current page frontmatter | +| `useI18n()` | Returns i18n translation function | diff --git a/.agents/skills/rspress-description-generator/SKILL.md b/.agents/skills/rspress-description-generator/SKILL.md new file mode 100644 index 00000000..5c5f760c --- /dev/null +++ b/.agents/skills/rspress-description-generator/SKILL.md @@ -0,0 +1,118 @@ +--- +name: rspress-description-generator +description: Generate and maintain description frontmatter for Rspress documentation files (.md/.mdx). Use when a user wants to add SEO descriptions, improve search engine snippets, generate llms.txt metadata, prepare docs for AI summarization, or batch-update frontmatter across an Rspress doc site. Also use when adding new documentation pages to an Rspress project — every new doc file needs a description. +--- + +# Rspress Description Generator + +The `description` field in Rspress frontmatter generates `` tags, which are used for search engine snippets, social media previews, and AI-oriented formats like llms.txt. + +## Step 1 — Locate the docs root + +1. Find the Rspress config file. Search for `rspress.config.ts`, `.js`, `.mjs`, or `.cjs`. It may be at the project root or inside a subdirectory like `website/`. +2. Read the config and extract the `root` option. + - The value might be a plain string (`root: 'docs'`) or a JS expression (`root: path.join(__dirname, 'docs')`). In either case, determine the resolved directory path. + - If `root` is set, resolve it relative to the config file's directory. + - If `root` is not set, default to `docs` relative to the config file's directory. +3. Confirm the directory exists. If neither `docs` nor the configured root exists, check for `doc` as a fallback. + +## Step 2 — Detect i18n structure + +Rspress i18n projects place language subdirectories (e.g., `en/`, `zh/`) directly under the docs root: + +``` +docs/ +├── en/ +│ ├── guide/ +│ └── index.md +└── zh/ + ├── guide/ + └── index.md +``` + +Check if the docs root contains language subdirectories (two-letter codes like `en`, `zh`, `ja`, `ko`, etc.). If so, process each language directory separately — the description language should match the content language. + +If there are no language subdirectories, treat the entire docs root as a single-language site. + +## Step 3 — Scan and process files + +Glob for `**/*.md` and `**/*.mdx` under the docs root. Exclude: + +- `node_modules`, build output (`doc_build`, `.rspress`, `dist`) +- `_meta.json` / `_nav.json` (sidebar/nav config files, not doc pages) +- `**/shared/**` directories (reusable snippets included via `@import`, not standalone pages) + +For each file: + +1. **Read the file.** +2. **Check for existing `description` in frontmatter.** If it exists and is non-empty, skip. +3. **Check `pageType` in frontmatter.** For `home` pages, derive the description from the `hero.text` / `hero.tagline` fields or the features list, not from body content. +4. **Generate a description** following the writing guidelines below. +5. **Insert `description` into frontmatter:** + - If the file has frontmatter with a `title` field, insert `description` on the line after `title`. + - If the file has frontmatter without `title`, insert `description` as the first field. + - If the file has no frontmatter block, add one: + + ```yaml + --- + description: Your generated description here + --- + ``` + +### YAML formatting + +Most descriptions can be bare YAML strings: + +```yaml +description: Step-by-step guide to setting up your first Rspress site +``` + +If the description contains colons, quotes, or other special YAML characters, wrap in double quotes: + +```yaml +description: 'API reference for Rspress configuration: plugins, themes, and build options' +``` + +## Step 4 — Batch processing + +For sites with many files, use parallel agent calls to process independent files simultaneously. Group by directory (e.g., all files in `guide/`, then all in `api/`) to maintain focus and consistency within each section. + +After processing all files, do a quick scan to ensure no files were missed — re-glob and check for any remaining files without `description`. + +## Description Writing Guidelines + +The description serves three audiences: search engines (Google snippet), AI systems (llms.txt, summarization), and humans (scanning search results). A good description helps all three. + +### Rules + +- **Length**: 50–160 characters. Under 50 is too vague for search engines; over 160 gets truncated in snippets. +- **Language**: Match the document content. Chinese docs get Chinese descriptions, English docs get English descriptions. +- **Be direct**: State what the page covers. Avoid starting with "This document", "This page", "Learn about" — jump straight to the substance. +- **Be specific**: Mention concrete technologies, APIs, or concepts the page covers. "Configure Rspress plugins for search, analytics, and internationalization" beats "How to use plugins." +- **No markdown**: Plain text only, no formatting syntax. + +### Examples + +**Good:** + +| Content | Description | +| -------------------------- | ---------------------------------------------------------------------------- | +| Plugin development guide | Create custom Rspress plugins using the Node.js plugin API and runtime hooks | +| MDX component usage | Import and use React components in MDX documentation files | +| Rspress 快速开始 | 从安装到本地预览,搭建 Rspress 文档站点的完整流程 | +| 主题配置 | 自定义 Rspress 主题的导航栏、侧边栏、页脚和暗色模式 | +| Home page (pageType: home) | Rspress documentation framework — fast, MDX-powered static site generator | + +**Bad:** + +| Description | Why | +| ------------------------------------------------------- | ------------------------------------------------ | +| "About plugins" | Too vague — which plugins? what about them? | +| "This page explains how to configure the Rspress theme" | Wastes characters on "This page explains how to" | +| "Learn everything about Rspress!" | Marketing fluff, says nothing specific | + +## Documentation + +- Frontmatter fields: +- Basic config (`root` option): +- Full Rspress docs: diff --git a/.claude/skills/rspress-best-practices b/.claude/skills/rspress-best-practices new file mode 120000 index 00000000..0785fd57 --- /dev/null +++ b/.claude/skills/rspress-best-practices @@ -0,0 +1 @@ +../../.agents/skills/rspress-best-practices \ No newline at end of file diff --git a/.claude/skills/rspress-custom-theme b/.claude/skills/rspress-custom-theme new file mode 120000 index 00000000..5e838133 --- /dev/null +++ b/.claude/skills/rspress-custom-theme @@ -0,0 +1 @@ +../../.agents/skills/rspress-custom-theme \ No newline at end of file diff --git a/.claude/skills/rspress-description-generator b/.claude/skills/rspress-description-generator new file mode 120000 index 00000000..142a0156 --- /dev/null +++ b/.claude/skills/rspress-description-generator @@ -0,0 +1 @@ +../../.agents/skills/rspress-description-generator \ No newline at end of file diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 45b5839a..00000000 --- a/.editorconfig +++ /dev/null @@ -1,9 +0,0 @@ -root = true - -[*.md] -indent_style = space -indent_size = 2 -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = false -insert_final_newline = true \ No newline at end of file diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml index d7ba4b0a..c2775e57 100644 --- a/.github/workflows/node.js.yml +++ b/.github/workflows/node.js.yml @@ -20,15 +20,15 @@ jobs: - uses: pnpm/action-setup@v3 with: - version: 10 + version: 11 - uses: actions/setup-node@v4 with: - node-version: "20" + node-version: "24" cache: "pnpm" - name: Install dependencies run: pnpm install - name: Lint - run: pnpm lint \ No newline at end of file + run: pnpm check:ci \ No newline at end of file diff --git a/.gitignore b/.gitignore index f167dfd3..35f8d286 100644 --- a/.gitignore +++ b/.gitignore @@ -1,24 +1,15 @@ -# Dependencies -/node_modules - -# Production -/build - -# Generated files -.docusaurus -.cache-loader - -# Misc +# Local .DS_Store -.env.local -.env.development.local -.env.test.local -.env.production.local - -# Editor - -.idea - -npm-debug.log* -yarn-debug.log* -yarn-error.log* +*.local +*.log* + +# Dist +node_modules +dist/ +doc_build/ +build/ + +# IDE +.vscode/* +!.vscode/extensions.json +.idea \ No newline at end of file diff --git a/.husky/pre-commit b/.husky/pre-commit deleted file mode 100755 index 2c3af062..00000000 --- a/.husky/pre-commit +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -. "$(dirname "$0")/_/husky.sh" - -pnpm lint diff --git a/.markdownlint.json b/.markdownlint.json deleted file mode 100644 index 9860909a..00000000 --- a/.markdownlint.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "MD033": false, - "MD024": false, - "MD029": false, - "MD041": false, - "MD010": { - "code_blocks": true, - "spaces_per_tab": 4 - }, - "MD046": false, - "line-length": false, - "fix": true -} \ No newline at end of file diff --git a/.npmrc b/.npmrc deleted file mode 100644 index bf2e7648..00000000 --- a/.npmrc +++ /dev/null @@ -1 +0,0 @@ -shamefully-hoist=true diff --git a/.vscode/extensions.json b/.vscode/extensions.json deleted file mode 100644 index f75b997f..00000000 --- a/.vscode/extensions.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "recommendations": ["davidanson.vscode-markdownlint"] -} diff --git a/.vscode/settings.json b/.vscode/settings.json index ad67b6c8..2a2d6066 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,8 +1,13 @@ { - "[markdown]": { - "editor.defaultFormatter": "yzhang.markdown-all-in-one" - }, - "i18n-ally.localesPaths": [ - "i18n" - ] -} + "json.schemas": [ + { + "fileMatch": ["**/_meta.json"], + "url": "./node_modules/@rspress/core/meta-json-schema.json" + }, + { + "fileMatch": ["**/_nav.json"], + "url": "./node_modules/@rspress/core/nav-json-schema.json" + } + ], + "editor.defaultFormatter": "biomejs.biome" +} \ No newline at end of file diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 00000000..2d1aab0a --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,30 @@ +# Repository Guidelines + +## Project Structure & Module Organization + +This repository contains the Halo documentation site built with Rspress. Author documentation in `docs/`: user guides live under `docs/guide/`, developer material under `docs/developer-guide/`, and stable static assets under `docs/public/`. Use `_nav.json` and `_meta.json` files to control navigation labels and ordering. Site configuration belongs in `rspress.config.ts`; shared styling belongs in `styles/index.css`. The `build/` directory is generated output and must not be edited. + +## Build, Test, and Development Commands + +Use pnpm 11.24.0, as declared in `package.json`. + +- `pnpm install` installs dependencies. +- `pnpm dev` starts the local Rspress development server. +- `pnpm build` creates the production site in `build/` and checks static rendering and dead links. +- `pnpm preview` serves the latest production build locally. +- `pnpm check` runs Biome checks and applies safe fixes. +- `pnpm format` formats supported files with Biome. + +Do not hand-edit `pnpm-lock.yaml` or other generated artifacts. + +## Coding Style & Naming Conventions + +Biome is the source of truth for TypeScript, JavaScript, JSON, and CSS formatting. Use spaces for indentation and single quotes in JavaScript/TypeScript. Keep configuration in TypeScript and prefer existing Rspress options over custom components. Name documentation files in lowercase kebab-case, such as `migrate-from-1.x.md`. Use MDX only when a page needs components; otherwise prefer Markdown. Keep headings task-oriented and code samples minimal and runnable. + +## Testing Guidelines + +There is no dedicated automated test suite or coverage threshold. Treat `pnpm build` as the required validation for documentation changes. Before submitting, open affected pages with `pnpm dev` or `pnpm preview` and verify navigation, links, code blocks, and images. For visual changes, check both desktop and narrow viewport layouts. + +## Commit & Pull Request Guidelines + +The current history contains only generic `init` commits, so it does not establish a useful convention. Write short, imperative subjects that describe the change, for example `Document offline installation`. Keep each pull request focused on one topic, explain the user-facing impact, link the relevant issue when one exists, and include screenshots for layout or styling changes. Run `pnpm check` and `pnpm build` before requesting review; avoid force-pushing after review begins. diff --git a/OWNERS b/OWNERS deleted file mode 100644 index ef70b5ef..00000000 --- a/OWNERS +++ /dev/null @@ -1,10 +0,0 @@ -reviewers: -- ruibaby -- guqing -- JohnNiang -- wan92hen - -approvers: -- ruibaby -- guqing -- JohnNiang diff --git a/README.md b/README.md index ccbcf87c..96418faf 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ # The open-source repo for [docs.halo.run](https://docs.halo.run) -This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator. +This website is built using [Rspress](https://rspress.rs/), a modern static website generator. ### Installation ``` -$ pnpm install +pnpm install ``` > If you don’t have pnpm installed, you can install it with the following command: @@ -17,7 +17,7 @@ npm install -g pnpm ### Local Development ``` -$ pnpm start +pnpm start ``` This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server. @@ -25,7 +25,7 @@ This command starts a local development server and opens up a browser window. Mo ### Build ``` -$ pnpm build +pnpm build ``` This command generates static content into the `build` directory and can be served using any static contents hosting service. diff --git a/biome.json b/biome.json new file mode 100644 index 00000000..d9d2b76c --- /dev/null +++ b/biome.json @@ -0,0 +1,34 @@ +{ + "$schema": "./node_modules/@biomejs/biome/configuration_schema.json", + "assist": { + "actions": { + "source": { + "organizeImports": "on" + } + } + }, + "vcs": { + "enabled": true, + "clientKind": "git", + "useIgnoreFile": true + }, + "formatter": { + "indentStyle": "space" + }, + "javascript": { + "formatter": { + "quoteStyle": "single" + } + }, + "css": { + "parser": { + "cssModules": true + } + }, + "linter": { + "enabled": true, + "rules": { + "preset": "recommended" + } + } +} diff --git a/context7.json b/context7.json index fac45d77..0c9dd139 100644 --- a/context7.json +++ b/context7.json @@ -1,4 +1,4 @@ { "url": "https://context7.com/halo-dev/docs", "public_key": "pk_9qoEjMaOs3nLQ4cT00vyN" -} \ No newline at end of file +} diff --git a/docs/_nav.json b/docs/_nav.json new file mode 100644 index 00000000..95cbe1cd --- /dev/null +++ b/docs/_nav.json @@ -0,0 +1,39 @@ +[ + { + "text": "使用指南", + "link": "/guide/", + "activeMatch": "/guide/", + "position": "left" + }, + { + "text": "开发者指南", + "link": "/developer-guide/", + "activeMatch": "/developer-guide/", + "position": "left" + }, + { + "text": "版本", + "items": [ + { + "text": "历史版本", + "link": "https://github.com/halo-dev/docs/branches" + }, + { + "text": "已归档版本", + "link": "https://v2.archive-docs.halo.run/" + } + ] + }, + { + "text": "官网", + "link": "https://www.halo.run/" + }, + { + "text": "论坛", + "link": "https://bbs.halo.run" + }, + { + "text": "版本对比", + "link": "https://www.lxware.cn/halo?code=mcYhwMkn" + } +] diff --git a/docs/about.md b/docs/about.md deleted file mode 100644 index d0eb7313..00000000 --- a/docs/about.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: 关于文档 -description: 关于本文档站点的一些说明 ---- - -:::note -此文档使用 [Docusaurus](https://docusaurus.io/) 搭建,感谢 [Docusaurus](https://github.com/facebook/docusaurus) 社区所做的贡献。 -::: - -## 参与贡献 - -:::tip -如果你发现文档中有不正确或者需要添加的内容,非常欢迎参与到文档编辑当中。 -::: - -当前文档的仓库地址为 [halo-dev/docs](https://github.com/halo-dev/docs) ,所以你可以 fork 此仓库,修改之后提交 `Pull request` 等待我们合并即可。 diff --git a/docs/developer-guide/_meta.json b/docs/developer-guide/_meta.json new file mode 100644 index 00000000..353dabe7 --- /dev/null +++ b/docs/developer-guide/_meta.json @@ -0,0 +1,39 @@ +[ + { + "type": "file", + "name": "index", + "label": "概览" + }, + { + "type": "dir", + "name": "core", + "label": "系统开发", + "collapsed": true + }, + { + "type": "dir", + "name": "plugin", + "label": "插件开发", + "collapsed": true + }, + { + "type": "dir", + "name": "theme", + "label": "主题开发", + "collapsed": true + }, + { + "type": "dir", + "name": "restful-api", + "label": "RESTful API", + "collapsed": true + }, + { + "type": "dir", + "name": "app-store", + "label": "应用市场", + "collapsed": true + }, + "form-schema", + "annotations-form" +] diff --git a/docs/developer-guide/annotations-form.md b/docs/developer-guide/annotations-form.md index 89899eaa..f7266edd 100644 --- a/docs/developer-guide/annotations-form.md +++ b/docs/developer-guide/annotations-form.md @@ -6,7 +6,7 @@ title: 元数据表单定义 定义元数据编辑表单同样使用 `FormKit Schema`,但和主题或插件的定义方式稍有不同,其中输入组件类型可参考 [表单定义](./form-schema.md)。 -:::info[提示] +:::info annotations 表单值必须为字符串 因为 `metadata.annotations` 是一个键值都为字符串类型的对象,所以表单项的值必须为字符串类型。这就意味着,FormKit 的 `number`、`group`、`repeater` 等类型的输入组件都不能使用。`checkbox` 类型的输入组件应通过 `on-value` 和 `off-value` 指定字符串值,以替代默认的布尔值。 ::: diff --git a/docs/developer-guide/app-store/_meta.json b/docs/developer-guide/app-store/_meta.json new file mode 100644 index 00000000..c76f5f2f --- /dev/null +++ b/docs/developer-guide/app-store/_meta.json @@ -0,0 +1 @@ +["publish-app", "app-review-guidelines"] diff --git a/docs/developer-guide/app-store/index.md b/docs/developer-guide/app-store/index.md new file mode 100644 index 00000000..002a831a --- /dev/null +++ b/docs/developer-guide/app-store/index.md @@ -0,0 +1,4 @@ +--- +title: 应用市场 +overview: true +--- \ No newline at end of file diff --git a/docs/developer-guide/core/_meta.json b/docs/developer-guide/core/_meta.json new file mode 100644 index 00000000..165a8336 --- /dev/null +++ b/docs/developer-guide/core/_meta.json @@ -0,0 +1 @@ +["prepare", "run", "build", "framework"] diff --git a/docs/developer-guide/core/build.md b/docs/developer-guide/core/build.md index e98c0d9a..c49661bb 100644 --- a/docs/developer-guide/core/build.md +++ b/docs/developer-guide/core/build.md @@ -3,7 +3,7 @@ title: 构建 description: 构建为可执行 JAR 和 Docker 镜像的文档 --- -:::info +:::info 构建前准备 在此之前,我们推荐你先阅读[《准备工作》](./prepare),检查本地环境是否满足要求。 ::: @@ -61,7 +61,7 @@ cd path/to/halo 构建完成之后,在 Halo 项目下产生的 `application/build/libs/halo-${version}.jar` 即为构建完成的文件。 -最终部署文档可参考:[使用 JAR 文件部署](../../getting-started/install/jar-file.md)。 +最终部署文档可参考:[使用 JAR 文件部署](../../guide/install/jar-file.md)。 ## 构建 Docker 镜像 @@ -81,4 +81,4 @@ docker build -t halo-dev/halo:${tag_name} . docker images | grep halo ``` -最终部署文档可参考:[使用 Docker Compose 部署](../../getting-started/install/docker-compose.md)。 +最终部署文档可参考:[使用 Docker Compose 部署](../../guide/install/docker-compose.mdx)。 diff --git a/docs/developer-guide/core/index.md b/docs/developer-guide/core/index.md new file mode 100644 index 00000000..96cd1d53 --- /dev/null +++ b/docs/developer-guide/core/index.md @@ -0,0 +1,4 @@ +--- +title: 系统开发 +overview: true +--- \ No newline at end of file diff --git a/docs/developer-guide/core/run.md b/docs/developer-guide/core/run.md index 46fb143e..1fcc0eea 100644 --- a/docs/developer-guide/core/run.md +++ b/docs/developer-guide/core/run.md @@ -3,7 +3,7 @@ title: 开发环境运行 description: 开发环境运行的指南 --- -:::info +:::info 运行前准备 在此之前,我们推荐你先阅读[《准备工作》](./prepare),检查本地环境是否满足要求。 ::: @@ -15,7 +15,7 @@ description: 开发环境运行的指南 2. UI,包括 Console 控制台和 UC 个人中心(托管在 Halo 主项目) 3. 主题(Halo 主项目内已包含默认主题) -:::info[说明] +:::info UI 需要单独运行 从 Halo 2.11 开始,Halo 项目的 `ui` 目录同时包含了 Console(管理控制台)和 UC(个人中心),以下统称为 UI。 当前 Halo 主项目并不会将 UI 的构建资源托管到 Git 版本控制,所以在开发环境是需要同时运行 UI 项目的。当然,在我们的最终发布版本的时候会在 CI 中自动构建 UI 到 Halo 主项目。 @@ -56,7 +56,7 @@ VITE v8.0.0 ready in 805 ms ➜ Network: http://192.168.1.7:3000/ ``` -:::info[提示] +:::info 通过 Halo 代理访问 UI 请不要直接使用 UI 的运行端口 3000 访问,会因为跨域问题导致无法正常登录,建议按照后续的步骤以 dev 的配置文件运行 Halo,在 dev 的配置文件中,我们默认代理了 UI 页面的访问地址,所以后续访问 UI 页面使用 `http://localhost:8090/console` 和 `http://localhost:8090/uc` 访问即可,代理的相关配置: ```yaml diff --git a/docs/developer-guide/core/structure.md b/docs/developer-guide/core/structure.md index 66084b07..3910b853 100644 --- a/docs/developer-guide/core/structure.md +++ b/docs/developer-guide/core/structure.md @@ -31,6 +31,6 @@ description: Halo 项目的构成 在开发的时候,希望大家能够在 `~/halo-dev/application.yml` 中进行添加自定义配置。当然后面也会讲到如何用`运行参数` 和 `VM options` 进行控制配置,届时可根据具体情况进行选择。 -:::warning +:::warning 不要修改源码配置文件 开发的时候,我们不建议直接更改`项目源码`中的所包含的`配置文件`,包括 `application.yml`、`application-dev.yml`、`application-test.yml` 和 `application-user.yml`。 ::: diff --git a/docs/developer-guide/form-schema.md b/docs/developer-guide/form-schema.md index 7cd619e5..d8afb5b6 100644 --- a/docs/developer-guide/form-schema.md +++ b/docs/developer-guide/form-schema.md @@ -11,7 +11,7 @@ FormKit 相关文档: - Form Schema: [https://formkit.com/essentials/schema](https://formkit.com/essentials/schema) - FormKit Inputs: [https://formkit.com/inputs](https://formkit.com/inputs) -:::tip +:::tip 组件支持范围 目前不支持 FormKit Pro 中的输入组件,但 Halo 额外提供了部分输入组件,将在下面文档列出。 ::: @@ -54,7 +54,7 @@ spec: value: "" ``` -:::tip +:::tip YAML 与 JSON 格式转换 需要注意的是,FormKit Schema 本身应该是 JSON 格式的,但目前我们定义一个表单所使用的是 YAML,可能在参考 FormKit 写法时需要手动转换一下。 ::: @@ -225,7 +225,7 @@ spec: fieldSelectorKey: metadata.name ``` -:::tip +:::tip 分页数据的默认选项 当远程数据具有分页时,可能会出现默认选项不在第一页的情况,此时 Select 组件将会发送另一个查询请求,以获取默认选项的数据。此接口会携带如下参数: ```ts @@ -241,7 +241,7 @@ fieldSelector: `${requestOption.fieldSelectorKey}=(value1,value2,value3)` 列表类型的输入组件,支持动态添加、删除数据项。 -:::tip +:::tip list 与 array 的区别 `list` 组件与 [array](#array) 组件功能类似,但它们的用途不同。`list` 组件适合展示基本类型的数据,而 `array` 组件更适合于展示复杂类型的数据。 ::: @@ -273,7 +273,7 @@ fieldSelector: `${requestOption.fieldSelectorKey}=(value1,value2,value3)` validation: required ``` -:::tip +:::tip list 子节点限制 `list` 组件有且只有一个子节点,并且必须为子节点传递 `index` 属性。若想提供多个字段组成对象,则建议改为使用 [array](#array) 组件。 ::: @@ -317,7 +317,7 @@ fieldSelector: `${requestOption.fieldSelectorKey}=(value1,value2,value3)` validation: required ``` -:::tip +:::tip verificationForm 不改变数据结构 尽管 `verificationForm` 本身是一个输入组件,但与其他输入组件不同的是,它仅仅用于包装待验证的数据,所以并不会破坏原始数据的格式。例如上述示例中的值在保存后为: ```json @@ -367,7 +367,7 @@ UI 效果: ### ~~repeater~~(已过时) -:::warning +:::warning 请使用 array 组件 `repeater` 组件已不再推荐使用,请使用 [array](#array) 组件代替。 ::: @@ -418,7 +418,7 @@ UI 效果: value: "" ``` -:::tip +:::tip 设置 repeater 默认值 使用 `repeater` 类型时,一定要设置默认值,如果不需要默认有任何元素,可以设置为 `[]`。 ::: @@ -443,7 +443,7 @@ UI 效果: #### 描述 -:::info +:::info Halo 2.22 的 attachment 类型变更 在 Halo 2.22 中,我们重构了原有的 attachment 表单类型,支持了预览和直接上传文件,并将旧版的表单类型更名为了 [attachmentInput](#attachmentinput)。 ::: @@ -531,7 +531,7 @@ UI 效果: value: [] ``` -:::info +:::info menuSelect 兼容 select 参数 menuSelect 基于 select,并兼容 select 的[参数](#select-params)。 ::: @@ -733,7 +733,7 @@ UI 效果: - `emptyText`: 当数组为空时显示的文本 - `itemLabels`: 列表元素上显示的内容,数据类型为 `{ type: "image" | "text" | "iconify"; label: string }[]` -:::tip +:::tip 建议设置 itemLabels 强烈建议为 `array` 设置 `itemLabels` 属性,以便于更直观的展示元素内容,设置的元素内容将按照设置顺序展示在列表元素上。 在 `itemLabels` 中定义 `label` 时,可以使用 `$value` 来指向当前项的值。 @@ -768,7 +768,7 @@ UI 效果: value: "" ``` -:::warning +:::warning itemLabels 的条件限制 由于目前无法通过单个 `itemLabels` 定义涵盖所有子项变动的情况,因此在 `itemLabels` 中使用 `$value` ,无法获取到具有 `if` 属性的组件值。 例如: @@ -877,7 +877,7 @@ UI 效果: 密钥输入组件,用于选择一个密钥资源。 -:::note +:::note 使用 Secret 存储敏感数据 在 Halo 中,我们提供了一种更加安全的数据存储模型,即 Secret,通常我们使用 Secret 来存储敏感数据,比如密码、token、密钥等。 主要注意的是,此表单类型通常与后端配合使用,需要在后端查询密钥资源。 diff --git a/docs/developer-guide/index.md b/docs/developer-guide/index.md new file mode 100644 index 00000000..7f5d48de --- /dev/null +++ b/docs/developer-guide/index.md @@ -0,0 +1,4 @@ +--- +title: 开发者指南 +overview: true +--- \ No newline at end of file diff --git a/docs/developer-guide/plugin/_meta.json b/docs/developer-guide/plugin/_meta.json new file mode 100644 index 00000000..f235b542 --- /dev/null +++ b/docs/developer-guide/plugin/_meta.json @@ -0,0 +1,42 @@ +[ + "introduction", + "prepare", + "hello-world", + { + "type": "dir", + "name": "basics", + "label": "基础", + "collapsed": true + }, + { + "type": "dir", + "name": "api-reference", + "label": "API 参考", + "collapsed": true + }, + { + "type": "dir", + "name": "extension-points", + "label": "扩展点和定制化", + "collapsed": true + }, + { + "type": "dir", + "name": "interaction", + "label": "与其他插件交互", + "collapsed": true + }, + { + "type": "dir", + "name": "security", + "label": "安全和权限管理", + "collapsed": true + }, + { + "type": "dir", + "name": "examples", + "label": "案例和最佳实践", + "collapsed": true + }, + "api-changelog" +] diff --git a/docs/developer-guide/plugin/api-reference/_meta.json b/docs/developer-guide/plugin/api-reference/_meta.json new file mode 100644 index 00000000..ce18bcb4 --- /dev/null +++ b/docs/developer-guide/plugin/api-reference/_meta.json @@ -0,0 +1,14 @@ +[ + { + "type": "dir", + "name": "server", + "label": "服务端", + "collapsed": true + }, + { + "type": "dir", + "name": "ui", + "label": "UI", + "collapsed": true + } +] diff --git a/docs/developer-guide/plugin/api-reference/index.md b/docs/developer-guide/plugin/api-reference/index.md new file mode 100644 index 00000000..04e975ba --- /dev/null +++ b/docs/developer-guide/plugin/api-reference/index.md @@ -0,0 +1,4 @@ +--- +title: API 参考 +overview: true +--- \ No newline at end of file diff --git a/docs/developer-guide/plugin/api-reference/server/_meta.json b/docs/developer-guide/plugin/api-reference/server/_meta.json new file mode 100644 index 00000000..5e099afa --- /dev/null +++ b/docs/developer-guide/plugin/api-reference/server/_meta.json @@ -0,0 +1,13 @@ +[ + "extension", + "reconciler", + "extension-client", + "setting-fetcher", + "reverseproxy", + "notification", + "finder-for-theme", + "template-for-theme", + "websocket", + "login-handler-enhancer", + "extension-getter" +] diff --git a/docs/developer-guide/plugin/api-reference/server/extension-client.md b/docs/developer-guide/plugin/api-reference/server/extension-client.md index bc50b131..75e17016 100644 --- a/docs/developer-guide/plugin/api-reference/server/extension-client.md +++ b/docs/developer-guide/plugin/api-reference/server/extension-client.md @@ -160,7 +160,7 @@ ListOptions.builder() 在 `FieldSelector` 中使用的所有字段都必须添加为索引,否则会抛出异常表示不支持该字段。关于如何使用索引请参考 [自定义模型使用索引](./extension.md#using-indexes)。 -:::note +:::note 使用 Queries 构建查询 从 2.22.0 开始,`QueryFactory` 已过时,请使用 `Queries` 创建查询条件。取反查询可以通过 `Queries.not(condition)` 或 `condition.not()` 构建。 diff --git a/docs/developer-guide/plugin/api-reference/server/extension-getter.md b/docs/developer-guide/plugin/api-reference/server/extension-getter.md index 80f0e348..b1e52497 100644 --- a/docs/developer-guide/plugin/api-reference/server/extension-getter.md +++ b/docs/developer-guide/plugin/api-reference/server/extension-getter.md @@ -47,7 +47,7 @@ public interface ExtensionGetter { 2. `getEnabledExtensions(Class extensionPoint)`: 根据传入的扩展点类获取所有已启用扩展。如果没有在扩展设置页面配置过则会返回所有可用的扩展。 3. `getExtensions(Class extensionPointClass)`: 获取所有与扩展点类相关的扩展,无论是否在扩展设置中启用它。 -:::tip +:::tip 根据扩展点类型选择方法 使用 `getEnabledExtension` 方法或者 `getEnabledExtensions` 方法取决于扩展点声明的 `type` 是 `SINGLETON` 还是 `MULTI_INSTANCE`。 通过使用 `ExtensionGetter`,开发者可以轻松地在插件中访问和管理各种扩展点,提升插件的功能和灵活性。 diff --git a/docs/developer-guide/plugin/api-reference/server/extension.md b/docs/developer-guide/plugin/api-reference/server/extension.md index 5e14d759..b53cf84d 100644 --- a/docs/developer-guide/plugin/api-reference/server/extension.md +++ b/docs/developer-guide/plugin/api-reference/server/extension.md @@ -206,7 +206,7 @@ public void start() { - keyType:索引值类型,必须实现 `Comparable`,例如 `String`、`Boolean`、`Integer`、`Long`、`Instant` 等。 - indexFunc:索引函数,用于获取索引值,接收当前自定义模型对象。单值索引返回一个 `keyType` 类型的值,可以返回 `null`;多值索引返回 `Set`。 -:::note +:::note 使用新版索引 API 从 2.22.0 开始,`IndexAttributeFactory.simpleAttribute()`、`IndexAttributeFactory.multiValueAttribute()` 和直接创建 `new IndexSpec()` 的写法已过时,请优先使用 `IndexSpecs.single()` 和 `IndexSpecs.multi()`。 @@ -223,7 +223,7 @@ Halo 默认会为每个自定义模型建立以下几个索引,因此不需要 创建了索引的字段可以在查询时使用 `fieldSelector` 参数来查询,参考 [自定义模型 API](#extension-apis)。 -:::tip +:::tip 为查询字段创建索引 - 索引是一种存储数据结构,可提供对数据集中字段的高效查找。 - 索引将自定义模型中的字段映射到数据库行,以便在查询特定字段时不需要完整的扫描。 diff --git a/docs/developer-guide/plugin/api-reference/server/index.md b/docs/developer-guide/plugin/api-reference/server/index.md new file mode 100644 index 00000000..32f60f52 --- /dev/null +++ b/docs/developer-guide/plugin/api-reference/server/index.md @@ -0,0 +1,4 @@ +--- +title: 服务端 API 参考 +overview: true +--- \ No newline at end of file diff --git a/docs/developer-guide/plugin/api-reference/server/template-for-theme.md b/docs/developer-guide/plugin/api-reference/server/template-for-theme.md index d6a1af88..3353fee7 100644 --- a/docs/developer-guide/plugin/api-reference/server/template-for-theme.md +++ b/docs/developer-guide/plugin/api-reference/server/template-for-theme.md @@ -12,7 +12,7 @@ description: 了解如何为主题扩充模板。 首先,你需要在插件的 `resources` 目录下创建一个 `templates` 目录,然后在 `templates` 目录下提供你的模板,例如: -```text +```tree ├── templates │ ├── moment.html ``` diff --git a/docs/developer-guide/plugin/api-reference/ui/_meta.json b/docs/developer-guide/plugin/api-reference/ui/_meta.json new file mode 100644 index 00000000..c3bc4804 --- /dev/null +++ b/docs/developer-guide/plugin/api-reference/ui/_meta.json @@ -0,0 +1,12 @@ +[ + "route", + "api-request", + "formkit", + "shared", + { + "type": "dir", + "name": "components", + "label": "组件", + "collapsed": true + } +] diff --git a/docs/developer-guide/plugin/api-reference/ui/api-request.md b/docs/developer-guide/plugin/api-reference/ui/api-request.md index 22ed281d..5c8384f4 100644 --- a/docs/developer-guide/plugin/api-reference/ui/api-request.md +++ b/docs/developer-guide/plugin/api-reference/ui/api-request.md @@ -67,6 +67,6 @@ axiosInstance.get("/apis/foo.halo.run/v1alpha1/bar").then(response => { 直接从 `axios` 导入的是共享的标准 Axios 模块,不包含 Halo 的认证配置。请勿修改它的全局 defaults 或 interceptors;需要独立配置时使用 `axios.create()`。`@halo-dev/api-client` 导出的 `axiosInstance` 是另一个带有 Halo 认证和统一错误处理的实例,也不应修改它的 defaults 或 interceptors。 -:::info[提醒] +:::info 同步提高 Halo 版本要求 如果插件中使用了 `@halo-dev/api-client@2.17.0` 和 `@halo-dev/ui-plugin-bundler-kit@2.17.0`,需要提升 `plugin.yaml` 中的 `spec.requires` 版本为 `>=2.17.0`。 ::: diff --git a/docs/developer-guide/plugin/api-reference/ui/components/_meta.json b/docs/developer-guide/plugin/api-reference/ui/components/_meta.json new file mode 100644 index 00000000..22c2258d --- /dev/null +++ b/docs/developer-guide/plugin/api-reference/ui/components/_meta.json @@ -0,0 +1,14 @@ +[ + "uppy-upload", + "filter-dropdown", + "filter-clean-button", + "annotations-form", + "attachment-file-type-icon", + "attachment-selector-modal", + "has-permission", + "search-input", + "plugin-detail-modal", + "v-codemirror", + "v-tooltip", + "v-permission" +] diff --git a/docs/developer-guide/plugin/api-reference/ui/components/attachment-selector-modal.md b/docs/developer-guide/plugin/api-reference/ui/components/attachment-selector-modal.md index 50f1ba9a..bbcbdae7 100644 --- a/docs/developer-guide/plugin/api-reference/ui/components/attachment-selector-modal.md +++ b/docs/developer-guide/plugin/api-reference/ui/components/attachment-selector-modal.md @@ -5,7 +5,7 @@ description: 附件选择组件 此组件用于调出附件选择器,以供用户选择附件。 -:::info[注意] +:::info 仅支持 Console 此组件当前仅在 Console 中可用。 ::: diff --git a/docs/developer-guide/plugin/api-reference/ui/components/index.md b/docs/developer-guide/plugin/api-reference/ui/components/index.md index 57741de2..5f529c70 100644 --- a/docs/developer-guide/plugin/api-reference/ui/components/index.md +++ b/docs/developer-guide/plugin/api-reference/ui/components/index.md @@ -1,6 +1,7 @@ --- title: 组件 description: 在 Halo UI 中可使用的组件。 +overview: true --- 此文档将介绍所有在插件中可用的组件,以及它们的使用方法和区别。 @@ -34,9 +35,3 @@ import { VButton } from "@halo-dev/components"; 除了基础组件库,我们还为 Halo 的前端封装了一些业务组件和指令,这些组件已经在全局注册,你可以直接在插件中使用这些组件和指令。 以下是所有可用的业务组件和指令: - -```mdx-code-block -import DocCardList from '@theme/DocCardList'; - - -``` diff --git a/docs/developer-guide/plugin/api-reference/ui/index.md b/docs/developer-guide/plugin/api-reference/ui/index.md new file mode 100644 index 00000000..2c5bdea7 --- /dev/null +++ b/docs/developer-guide/plugin/api-reference/ui/index.md @@ -0,0 +1,4 @@ +--- +title: UI API 参考 +overview: true +--- \ No newline at end of file diff --git a/docs/developer-guide/plugin/api-reference/ui/route.md b/docs/developer-guide/plugin/api-reference/ui/route.md index ce75f607..33f3184f 100644 --- a/docs/developer-guide/plugin/api-reference/ui/route.md +++ b/docs/developer-guide/plugin/api-reference/ui/route.md @@ -94,7 +94,7 @@ export interface RouteRecordAppend { - `PostsRoot`(文章) - `NotificationsRoot`(消息) -:::info[提示] +:::info RouteRecordRaw 类型来源 `RouteRecordRaw` 来自 Vue Router,详见 [API 文档 | Vue Router](https://router.vuejs.org/zh/api/#Type-Aliases-RouteRecordRaw) ::: diff --git a/docs/developer-guide/plugin/basics/_meta.json b/docs/developer-guide/plugin/basics/_meta.json new file mode 100644 index 00000000..281d9711 --- /dev/null +++ b/docs/developer-guide/plugin/basics/_meta.json @@ -0,0 +1,17 @@ +[ + "structure", + "manifest", + "devtools", + { + "type": "dir", + "name": "server", + "label": "服务端", + "collapsed": true + }, + { + "type": "dir", + "name": "ui", + "label": "UI", + "collapsed": true + } +] diff --git a/docs/developer-guide/plugin/basics/devtools.md b/docs/developer-guide/plugin/basics/devtools.md index 22386f56..f5798332 100644 --- a/docs/developer-guide/plugin/basics/devtools.md +++ b/docs/developer-guide/plugin/basics/devtools.md @@ -93,7 +93,7 @@ halo { - `debugPort`:调试模式下的调试端口号,默认是自动分配端口号,你可以修改此配置来固定调试端口号。 - `suspend`:是否在启动时挂起,如果开启则会在启动时挂起直到有调试器连接到 Halo 服务。 -:::warning +:::warning Halo 2.20 版本兼容性 由于 Halo 2.20.0 版本更改了初始化和登录流程,如果 `halo.version` 指定 `2.20.x` 版本需要将 `run.halo.plugin.devtools` 版本升级到 `0.2.0` 及以上。 ::: @@ -123,7 +123,7 @@ logging: run.halo.app: DEBUG ``` -更多配置项请参考 [Halo 配置列表](../../../getting-started/install/config.md#配置列表)。 +更多配置项请参考 [Halo 配置列表](../../../guide/install/config.md#配置列表)。 ### haloServer 任务 @@ -357,12 +357,12 @@ const { data } = await momentsConsoleApiClient.moment.listTags({ }); ``` -:::tip +:::tip API 客户端生成流程 它会先执行 `generateOpenApiDocs` 任务根据配置访问 `/v3/api-docs/extensionApis` 获取 OpenAPI 文档, 并将 OpenAPI 的 Schema 文件保存到 `openApi.outputDir` 目录下,然后再由 `generateApiClient` 任务根据 Schema 文件生成 API 客户端代码到 `openApi.generator.outputDir` 目录下。 ::: -:::warning +:::warning 避免误删生成目录 执行 `generateApiClient` 任务时会先删除 `openApi.generator.outputDir` 下的所有文件,因此建议将 API client 的输出目录设置为一个独立的目录,以避免误删其他文件。 执行 `generateApiClient` 前建议注释掉你所配置的 `build` 任务对应的 `dependsOn` 任务,以避免因依赖前端构建任务可能无法生成 API Client 的问题。 diff --git a/docs/developer-guide/plugin/basics/index.md b/docs/developer-guide/plugin/basics/index.md new file mode 100644 index 00000000..a61a47dd --- /dev/null +++ b/docs/developer-guide/plugin/basics/index.md @@ -0,0 +1,4 @@ +--- +title: 基础 +overview: true +--- \ No newline at end of file diff --git a/docs/developer-guide/plugin/basics/manifest.md b/docs/developer-guide/plugin/basics/manifest.md index 2683243b..41945f9c 100644 --- a/docs/developer-guide/plugin/basics/manifest.md +++ b/docs/developer-guide/plugin/basics/manifest.md @@ -50,7 +50,7 @@ spec: | `spec.description` | 插件的简短描述,用于说明插件的用途。 | | `spec.license` | 插件的许可协议,包含协议名称和链接。参考:[Software License](https://en.wikipedia.org/wiki/Software_license)。 | -:::tip +:::tip settingName 需要对应资源 如果你在 plugin.yaml 中配置了 `settingName` 但确没有对应的 `Setting` 自定义模型资源文件,会导致插件无法启动,原因是 `Setting` 模型 `metadata.name` 为你配置的 `settingName` 的资源无法找到。 ::: @@ -100,7 +100,7 @@ halo: - C:\path\to\halo-plugin-hello-world ``` -:::tip +:::tip development 模式的插件加载方式 1. `development` 开发模式下,既可以运行 `fixed-plugin-path` 下的插件,也可以运行通过 `Console` 管理端安装的 JAR 格式的插件。 2. 如果使用 [DevTools 运行方式](../hello-world.md#run-with-devtools) 来开发插件,则不需要配置 `runtime-mode` 和 `fixed-plugin-path`。 diff --git a/docs/developer-guide/plugin/basics/server/_meta.json b/docs/developer-guide/plugin/basics/server/_meta.json new file mode 100644 index 00000000..327b21f4 --- /dev/null +++ b/docs/developer-guide/plugin/basics/server/_meta.json @@ -0,0 +1 @@ +["lifecycle", "object-management"] diff --git a/docs/developer-guide/plugin/basics/server/index.md b/docs/developer-guide/plugin/basics/server/index.md new file mode 100644 index 00000000..0843e4a5 --- /dev/null +++ b/docs/developer-guide/plugin/basics/server/index.md @@ -0,0 +1,4 @@ +--- +title: 服务端基础 +overview: true +--- \ No newline at end of file diff --git a/docs/developer-guide/plugin/basics/server/lifecycle.md b/docs/developer-guide/plugin/basics/server/lifecycle.md index 7aea5326..9c62628d 100644 --- a/docs/developer-guide/plugin/basics/server/lifecycle.md +++ b/docs/developer-guide/plugin/basics/server/lifecycle.md @@ -27,7 +27,7 @@ public void delete() { 1. 继承 `run.halo.app.plugin.BasePlugin` 类后,你可以重写这些方法来干预插件的生命周期,例如在插件启动时初始化一些资源,在插件停止时清理掉这些资源。 2. 一个插件项目只允许有一个类继承 `BasePlugin` 类且标记为 Bean,此时这个类将被作为插件的后端入口,如果有多个类继承了 `BasePlugin` 会导致插件无法启动或生命周期方法无法被调用。 -:::tip +:::tip 将 BasePlugin 注册为 Bean 如果一个类继承了 `BasePlugin` 类但没有标记为 Bean,那么它将不会被 Halo 识别到,其中的生命周期方法也不会被调用。 ::: diff --git a/docs/developer-guide/plugin/basics/structure.md b/docs/developer-guide/plugin/basics/structure.md index 3195528f..5f8e4d33 100644 --- a/docs/developer-guide/plugin/basics/structure.md +++ b/docs/developer-guide/plugin/basics/structure.md @@ -5,7 +5,7 @@ description: 了解插件项目的文件结构 当你创建一个新的插件项目时,典型的目录结构如下所示: -```text +```tree ├── ui │ ├── src │ │ ├── assets @@ -50,7 +50,7 @@ description: 了解插件项目的文件结构 - `plugin.yaml`:这是插件的描述文件,位于 `src/main/resources` 目录下。该文件是必须的,包含插件的基本信息,如插件名称、版本、作者、描述以及依赖等内容。 - `resources/ui`:插件 JAR 中的推荐 UI 资源目录。Gradle 会将 `ui/build/dist` 的完整构建产物复制到 `build/resources/main/ui` 后打包,其中可能包含 `ui-plugin.json`、入口、样式、异步分块和其他静态资源。如果插件不包含 UI 部分,此目录可以忽略。 -:::warning[注意] +:::warning 优先使用 resources/ui 从 2.11 开始,Halo 支持了 UC 个人中心,且个人中心和 Console 的插件机制共享,因此推荐使用 `resources/ui`。Halo 2.x 仍兼容旧项目使用的 `resources/console`,并优先读取 `ui`。 ::: diff --git a/docs/developer-guide/plugin/basics/ui/_meta.json b/docs/developer-guide/plugin/basics/ui/_meta.json new file mode 100644 index 00000000..3afd53f4 --- /dev/null +++ b/docs/developer-guide/plugin/basics/ui/_meta.json @@ -0,0 +1 @@ +["intro", "entry", "build"] diff --git a/docs/developer-guide/plugin/basics/ui/build.md b/docs/developer-guide/plugin/basics/ui/build.md index 2e10700c..9cd300e3 100644 --- a/docs/developer-guide/plugin/basics/ui/build.md +++ b/docs/developer-guide/plugin/basics/ui/build.md @@ -269,7 +269,7 @@ export default viteConfig({ 成功的 ESM 构建会额外生成保留文件 `ui-plugin.json`,并可能包含异步 JavaScript、CSS 和其他静态资源。以下目录仅作示意,实际入口和启动样式路径以 `ui-plugin.json` 为准: -```text +```tree build/dist/ ├── ui-plugin.json ├── main..js # 默认 ESM 入口 diff --git a/docs/developer-guide/plugin/basics/ui/index.md b/docs/developer-guide/plugin/basics/ui/index.md new file mode 100644 index 00000000..9b047543 --- /dev/null +++ b/docs/developer-guide/plugin/basics/ui/index.md @@ -0,0 +1,4 @@ +--- +title: UI 基础 +overview: true +--- \ No newline at end of file diff --git a/docs/developer-guide/plugin/examples/index.md b/docs/developer-guide/plugin/examples/index.md new file mode 100644 index 00000000..74adc8eb --- /dev/null +++ b/docs/developer-guide/plugin/examples/index.md @@ -0,0 +1,4 @@ +--- +title: 案例和最佳实践 +overview: true +--- \ No newline at end of file diff --git a/docs/developer-guide/plugin/extension-points/_meta.json b/docs/developer-guide/plugin/extension-points/_meta.json new file mode 100644 index 00000000..ce18bcb4 --- /dev/null +++ b/docs/developer-guide/plugin/extension-points/_meta.json @@ -0,0 +1,14 @@ +[ + { + "type": "dir", + "name": "server", + "label": "服务端", + "collapsed": true + }, + { + "type": "dir", + "name": "ui", + "label": "UI", + "collapsed": true + } +] diff --git a/docs/developer-guide/plugin/extension-points/index.md b/docs/developer-guide/plugin/extension-points/index.md new file mode 100644 index 00000000..25613b3d --- /dev/null +++ b/docs/developer-guide/plugin/extension-points/index.md @@ -0,0 +1,4 @@ +--- +title: 扩展点和定制化 +overview: true +--- \ No newline at end of file diff --git a/docs/developer-guide/plugin/extension-points/server/_meta.json b/docs/developer-guide/plugin/extension-points/server/_meta.json new file mode 100644 index 00000000..705a68a6 --- /dev/null +++ b/docs/developer-guide/plugin/extension-points/server/_meta.json @@ -0,0 +1,18 @@ +[ + "additional-webfilter", + "authentication-webfilter", + "attachment", + "comment-subject", + "comment-widget", + "element-tag-post-processor", + "excerpt-generator", + "halo-documents-provider", + "notifier", + "search-engine", + "template-head-processor", + "template-footer-processor", + "post-content", + "singlepage-content", + "user-creating-handler", + "username-password-authentication-manager" +] diff --git a/docs/developer-guide/plugin/extension-points/server/index.md b/docs/developer-guide/plugin/extension-points/server/index.md index 45cb79ec..30816e61 100644 --- a/docs/developer-guide/plugin/extension-points/server/index.md +++ b/docs/developer-guide/plugin/extension-points/server/index.md @@ -1,6 +1,7 @@ --- -title: 扩展点 +title: 服务端扩展点 description: Halo 服务端为插件提供的扩展点接口 +overview: true --- 术语: @@ -48,7 +49,7 @@ spec: description: "Support sending notifications to users via email" ``` -:::tip +:::tip 声明扩展点资源 单实例或多实例的扩展点需要声明对应的 `ExtensionPointDefinition` 自定义模型对象被称之为扩展点定义,用于描述该扩展点的信息,例如:扩展点的名称、描述、扩展点的类型等。 单实例或多实例扩展点的实现也必须声明一个对应的 `ExtensionDefinition` 自定义模型对象被称之为扩展定义,用于描述该扩展的信息,例如:扩展的名称、描述、对应扩展点的对象名称等。 @@ -57,9 +58,3 @@ spec: 关于如何在插件中声明自定义模型对象请参考:[自定义模型](../../api-reference/server/extension.md#declare-extension-object) 以下是目前已支持的扩展点列表: - -```mdx-code-block -import DocCardList from '@theme/DocCardList'; - - -``` diff --git a/docs/developer-guide/plugin/extension-points/ui/_meta.json b/docs/developer-guide/plugin/extension-points/ui/_meta.json new file mode 100644 index 00000000..d58cf590 --- /dev/null +++ b/docs/developer-guide/plugin/extension-points/ui/_meta.json @@ -0,0 +1,24 @@ +[ + "attachment-selector-create", + "editor-create", + "plugin-self-tabs-create", + "default-editor-extension-create", + "comment-subject-ref-create", + "backup-tabs-create", + "plugin-installation-tabs-create", + "theme-list-tabs-create", + "post-list-item-operation-create", + "single-page-list-item-operation-create", + "comment-list-item-operation-create", + "reply-list-item-operation-create", + "plugin-list-item-operation-create", + "backup-list-item-operation-create", + "attachment-list-item-operation-create", + "theme-list-item-operation-create", + "plugin-list-item-field-create", + "post-list-item-field-create", + "single-page-list-item-field-create", + "user-detail-tabs-create", + "uc-user-profile-tabs-create", + "dashboard-widgets" +] diff --git a/docs/developer-guide/plugin/extension-points/ui/attachment-list-item-operation-create.md b/docs/developer-guide/plugin/extension-points/ui/attachment-list-item-operation-create.md deleted file mode 100644 index 441f69d6..00000000 --- a/docs/developer-guide/plugin/extension-points/ui/attachment-list-item-operation-create.md +++ /dev/null @@ -1,98 +0,0 @@ ---- -title: 附件数据列表操作菜单 -description: 扩展附件数据列表操作菜单 - attachment:list-item:operation:create ---- - -此扩展点用于扩展附件数据列表的操作菜单项。 - -![附件数据列表操作菜单](/img/developer-guide/plugin/extension-points/ui/attachment-list-item-operation-create.png) - -## 定义方式 - -```ts -export default definePlugin({ - extensionPoints: { - "attachment:list-item:operation:create": ( - attachment: Ref - ): OperationItem[] | Promise[]> => { - return [ - { - priority: 10, - component: markRaw(VDropdownItem), - props: {}, - action: (item?: Attachment) => { - // do something - }, - label: "foo", - hidden: false, - permissions: [], - children: [], - }, - ]; - }, - }, -}); -``` - -```mdx-code-block -import OperationItem from "./interface/OperationItem.md"; - - -``` - -## 示例 - -此示例将实现一个下载附件到本地的操作菜单项。 - -```ts -import { definePlugin, type OperationItem } from "@halo-dev/ui-shared"; -import { Toast, VDropdownItem } from "@halo-dev/components"; -import { markRaw, type Ref } from "vue"; -import type { Attachment } from "@halo-dev/api-client"; - -export default definePlugin({ - extensionPoints: { - "attachment:list-item:operation:create": ( - attachment: Ref - ): OperationItem[] | Promise[]> => { - return [ - { - priority: 10, - component: markRaw(VDropdownItem), - props: {}, - action: (item?: Attachment) => { - if (!item?.status?.permalink) { - Toast.error("该附件没有下载地址"); - return; - } - - const a = document.createElement("a"); - a.href = item.status.permalink; - a.download = item?.spec.displayName || item.metadata.name; - a.click(); - }, - label: "下载", - hidden: false, - permissions: [], - children: [], - }, - ]; - }, - }, -}); - -``` - -## 实现案例 - -- [https://github.com/halo-dev/plugin-s3](https://github.com/halo-dev/plugin-s3) - -## 类型定义 - -### Attachment - -```mdx-code-block -import Attachment from "./interface/Attachment.md"; - - -``` diff --git a/versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/attachment-list-item-operation-create.md b/docs/developer-guide/plugin/extension-points/ui/attachment-list-item-operation-create.mdx similarity index 98% rename from versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/attachment-list-item-operation-create.md rename to docs/developer-guide/plugin/extension-points/ui/attachment-list-item-operation-create.mdx index 441f69d6..63eedf12 100644 --- a/versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/attachment-list-item-operation-create.md +++ b/docs/developer-guide/plugin/extension-points/ui/attachment-list-item-operation-create.mdx @@ -34,11 +34,9 @@ export default definePlugin({ }); ``` -```mdx-code-block import OperationItem from "./interface/OperationItem.md"; -``` ## 示例 @@ -91,8 +89,6 @@ export default definePlugin({ ### Attachment -```mdx-code-block import Attachment from "./interface/Attachment.md"; -``` diff --git a/docs/developer-guide/plugin/extension-points/ui/backup-list-item-operation-create.md b/docs/developer-guide/plugin/extension-points/ui/backup-list-item-operation-create.md deleted file mode 100644 index c545d7d4..00000000 --- a/docs/developer-guide/plugin/extension-points/ui/backup-list-item-operation-create.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: 备份数据列表操作菜单 -description: 扩展备份数据列表操作菜单 - backup:list-item:operation:create ---- - -此扩展点用于扩展备份数据列表的操作菜单项。 - -![备份数据列表操作菜单](/img/developer-guide/plugin/extension-points/ui/backup-list-item-operation-create.png) - -## 定义方式 - -```ts -export default definePlugin({ - extensionPoints: { - "backup:list-item:operation:create": ( - backup: Ref - ): OperationItem[] | Promise[]> => { - return [ - { - priority: 10, - component: markRaw(VDropdownItem), - props: {}, - action: (item?: Backup) => { - // do something - }, - label: "foo", - hidden: false, - permissions: [], - children: [], - }, - ]; - }, - }, -}); -``` - -```mdx-code-block -import OperationItem from "./interface/OperationItem.md"; - - -``` diff --git a/versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/backup-list-item-operation-create.md b/docs/developer-guide/plugin/extension-points/ui/backup-list-item-operation-create.mdx similarity index 97% rename from versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/backup-list-item-operation-create.md rename to docs/developer-guide/plugin/extension-points/ui/backup-list-item-operation-create.mdx index c545d7d4..66d7dc24 100644 --- a/versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/backup-list-item-operation-create.md +++ b/docs/developer-guide/plugin/extension-points/ui/backup-list-item-operation-create.mdx @@ -34,8 +34,6 @@ export default definePlugin({ }); ``` -```mdx-code-block import OperationItem from "./interface/OperationItem.md"; -``` diff --git a/docs/developer-guide/plugin/extension-points/ui/comment-list-item-operation-create.md b/docs/developer-guide/plugin/extension-points/ui/comment-list-item-operation-create.md deleted file mode 100644 index edcd1b01..00000000 --- a/docs/developer-guide/plugin/extension-points/ui/comment-list-item-operation-create.md +++ /dev/null @@ -1,81 +0,0 @@ ---- -title: 评论数据列表操作菜单 -description: 扩展评论数据列表操作菜单 - comment:list-item:operation:create ---- - -此扩展点用于扩展评论数据列表的操作菜单项。 - -![评论数据列表操作菜单](/img/developer-guide/plugin/extension-points/ui/comment-list-item-operation-create.png) - -## 定义方式 - -```ts -export default definePlugin({ - extensionPoints: { - "comment:list-item:operation:create": ( - comment: Ref - ): OperationItem[] | Promise[]> => { - return [ - { - priority: 10, - component: markRaw(VDropdownItem), - props: {}, - action: (item?: ListedComment) => { - // do something - }, - label: "foo", - hidden: false, - permissions: [], - children: [], - }, - ]; - }, - }, -}); -``` - -```mdx-code-block -import OperationItem from "./interface/OperationItem.md"; - - -``` - -## 示例 - -此示例将实现一个操作菜单项。 - -```ts -import type { ListedComment } from "@halo-dev/api-client"; -import { VDropdownItem } from "@halo-dev/components"; -import { definePlugin } from "@halo-dev/ui-shared"; -import { markRaw } from "vue"; - -export default definePlugin({ - extensionPoints: { - "comment:list-item:operation:create": () => { - return [ - { - priority: 21, - component: markRaw(VDropdownItem), - label: "测试评论菜单", - visible: true, - permissions: [], - action: async (comment: ListedComment) => { - console.log(comment) - }, - }, - ]; - }, - }, -}); -``` - -## 类型定义 - -### ListedComment - -```mdx-code-block -import ListedComment from "./interface/ListedComment.md"; - - -``` diff --git a/versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/comment-list-item-operation-create.md b/docs/developer-guide/plugin/extension-points/ui/comment-list-item-operation-create.mdx similarity index 97% rename from versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/comment-list-item-operation-create.md rename to docs/developer-guide/plugin/extension-points/ui/comment-list-item-operation-create.mdx index edcd1b01..7fec7f4b 100644 --- a/versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/comment-list-item-operation-create.md +++ b/docs/developer-guide/plugin/extension-points/ui/comment-list-item-operation-create.mdx @@ -34,11 +34,9 @@ export default definePlugin({ }); ``` -```mdx-code-block import OperationItem from "./interface/OperationItem.md"; -``` ## 示例 @@ -74,8 +72,6 @@ export default definePlugin({ ### ListedComment -```mdx-code-block import ListedComment from "./interface/ListedComment.md"; -``` diff --git a/docs/developer-guide/plugin/extension-points/ui/comment-subject-ref-create.md b/docs/developer-guide/plugin/extension-points/ui/comment-subject-ref-create.md index 6c9e51c4..a8f70099 100644 --- a/docs/developer-guide/plugin/extension-points/ui/comment-subject-ref-create.md +++ b/docs/developer-guide/plugin/extension-points/ui/comment-subject-ref-create.md @@ -5,7 +5,7 @@ description: 扩展评论来源显示 - comment:subject-ref:create Console 的评论管理列表的评论来源默认仅支持显示来自文章和页面的评论,如果其他插件中的业务模块也使用了评论,那么就可以通过该拓展点来扩展评论来源的显示。 -:::info[提示] +:::info 需要后端扩展点配合 此扩展点需要后端配合使用,请参考 [评论主体展示](../server/comment-subject.md)。 ::: diff --git a/docs/developer-guide/plugin/extension-points/ui/default-editor-extension-create.md b/docs/developer-guide/plugin/extension-points/ui/default-editor-extension-create.md index 7b3935f8..ae13f046 100644 --- a/docs/developer-guide/plugin/extension-points/ui/default-editor-extension-create.md +++ b/docs/developer-guide/plugin/extension-points/ui/default-editor-extension-create.md @@ -17,7 +17,7 @@ export default definePlugin({ }); ``` -:::info[提示] +:::info 扩展类型与 Tiptap 一致 AnyExtension 类型来自 [Tiptap](https://github.com/ueberdosis/tiptap),这意味着 Halo 默认编辑器的扩展点返回类型与 Tiptap 的扩展完全一致,Tiptap 的扩展文档可参考:[https://tiptap.dev/docs/editor/api/extensions](https://tiptap.dev/docs/editor/api/extensions)。此外,Halo 也为默认编辑器的扩展提供了一些独有的参数,用于实现工具栏、指令等扩展。 ::: diff --git a/docs/developer-guide/plugin/extension-points/ui/index.md b/docs/developer-guide/plugin/extension-points/ui/index.md deleted file mode 100644 index 8d6b594c..00000000 --- a/docs/developer-guide/plugin/extension-points/ui/index.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: 扩展点 -description: Halo UI 为插件提供的扩展点接口 ---- - -UI 扩展点是用于扩展 Console 和 UC 的界面的接口,通过实现扩展点接口,插件可以在 Console 和 UC 中扩展功能。 - -以下是目前已支持的扩展点列表: - -```mdx-code-block -import DocCardList from '@theme/DocCardList'; - - -``` diff --git a/versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/index.md b/docs/developer-guide/plugin/extension-points/ui/index.mdx similarity index 71% rename from versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/index.md rename to docs/developer-guide/plugin/extension-points/ui/index.mdx index 8d6b594c..1819a7fc 100644 --- a/versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/index.md +++ b/docs/developer-guide/plugin/extension-points/ui/index.mdx @@ -1,14 +1,9 @@ --- -title: 扩展点 +title: UI 扩展点 description: Halo UI 为插件提供的扩展点接口 +overview: true --- UI 扩展点是用于扩展 Console 和 UC 的界面的接口,通过实现扩展点接口,插件可以在 Console 和 UC 中扩展功能。 以下是目前已支持的扩展点列表: - -```mdx-code-block -import DocCardList from '@theme/DocCardList'; - - -``` diff --git a/docs/developer-guide/plugin/extension-points/ui/plugin-list-item-field-create.md b/docs/developer-guide/plugin/extension-points/ui/plugin-list-item-field-create.mdx similarity index 98% rename from docs/developer-guide/plugin/extension-points/ui/plugin-list-item-field-create.md rename to docs/developer-guide/plugin/extension-points/ui/plugin-list-item-field-create.mdx index 508d08c7..17845bbb 100644 --- a/docs/developer-guide/plugin/extension-points/ui/plugin-list-item-field-create.md +++ b/docs/developer-guide/plugin/extension-points/ui/plugin-list-item-field-create.mdx @@ -77,8 +77,6 @@ export default definePlugin({ ### Plugin -```mdx-code-block import Plugin from "./interface/Plugin.md"; -``` diff --git a/docs/developer-guide/plugin/extension-points/ui/plugin-list-item-operation-create.md b/docs/developer-guide/plugin/extension-points/ui/plugin-list-item-operation-create.mdx similarity index 96% rename from docs/developer-guide/plugin/extension-points/ui/plugin-list-item-operation-create.md rename to docs/developer-guide/plugin/extension-points/ui/plugin-list-item-operation-create.mdx index 1c7e31de..508181da 100644 --- a/docs/developer-guide/plugin/extension-points/ui/plugin-list-item-operation-create.md +++ b/docs/developer-guide/plugin/extension-points/ui/plugin-list-item-operation-create.mdx @@ -34,11 +34,9 @@ export default definePlugin({ }); ``` -```mdx-code-block import OperationItem from "./interface/OperationItem.md"; -``` ## 实现案例 @@ -48,8 +46,6 @@ import OperationItem from "./interface/OperationItem.md"; ### Plugin -```mdx-code-block import Plugin from "./interface/Plugin.md"; -``` diff --git a/docs/developer-guide/plugin/extension-points/ui/plugin-self-tabs-create.md b/docs/developer-guide/plugin/extension-points/ui/plugin-self-tabs-create.md deleted file mode 100644 index 88b5d54f..00000000 --- a/docs/developer-guide/plugin/extension-points/ui/plugin-self-tabs-create.md +++ /dev/null @@ -1,90 +0,0 @@ ---- -title: 插件详情选项卡 -description: 扩展当前插件的详情选项卡 - plugin:self:tabs:create ---- - -此扩展点用于在 Console 的插件详情页面中添加自定义选项卡,可以用于自定义插件的配置页面。 - -![插件详情选项卡](/img/developer-guide/plugin/extension-points/ui/plugin-self-tabs-create.png) - -## 定义方式 - -```ts -export default definePlugin({ - extensionPoints: { - "plugin:self:tabs:create": (): PluginTab[] | Promise => { - return [ - { - id: "foo", - label: "foo", - component: markRaw(FooComponent), - permissions: [], - }, - ]; - }, - }, -}); -``` - -```ts title="PluginTab" -export interface PluginTab { - id: string; // 选项卡 ID,不能与设置表单的 group 重复 - label: string; // 选项卡标题 - component: Raw; // 选项卡面板组件 - permissions?: string[]; // 选项卡权限 -} -``` - -其中,`component` 组件可以注入(inject)以下属性: - -- `plugin`:当前插件对象,类型为 Ref\<[Plugin](#plugin)\>。 - -## 示例 - -此示例实现了一个自定义选项卡,用于获取插件的数据并显示名称。 - -```ts -import { definePlugin, PluginTab } from "@halo-dev/ui-shared"; -import MyComponent from "./views/my-component.vue"; -import { markRaw } from "vue"; -export default definePlugin({ - components: {}, - routes: [], - extensionPoints: { - "plugin:self:tabs:create": () : PluginTab[] => { - return [ - { - id: "my-tab-panel", - label: "My Tab Panel", - component: markRaw(MyComponent), - permissions: [] - }, - ]; - }, - }, -}); -``` - -```vue title="./views/my-component.vue" - - - -``` - -## 实现案例 - -- [https://github.com/halo-dev/plugin-app-store](https://github.com/halo-dev/plugin-app-store) - -## 类型定义 - -### Plugin - -```mdx-code-block -import Plugin from "./interface/Plugin.md"; - - -``` diff --git a/versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/plugin-self-tabs-create.md b/docs/developer-guide/plugin/extension-points/ui/plugin-self-tabs-create.mdx similarity index 98% rename from versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/plugin-self-tabs-create.md rename to docs/developer-guide/plugin/extension-points/ui/plugin-self-tabs-create.mdx index 88b5d54f..7a4a2177 100644 --- a/versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/plugin-self-tabs-create.md +++ b/docs/developer-guide/plugin/extension-points/ui/plugin-self-tabs-create.mdx @@ -83,8 +83,6 @@ const plugin = inject>("plugin"); ### Plugin -```mdx-code-block import Plugin from "./interface/Plugin.md"; -``` diff --git a/docs/developer-guide/plugin/extension-points/ui/post-list-item-field-create.md b/docs/developer-guide/plugin/extension-points/ui/post-list-item-field-create.md deleted file mode 100644 index 277a13af..00000000 --- a/docs/developer-guide/plugin/extension-points/ui/post-list-item-field-create.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -title: 文章数据列表显示字段 -description: 扩展文章数据列表显示字段 - post:list-item:field:create ---- - -此扩展点用于扩展文章数据列表的显示字段。 - -![文章数据列表显示字段](/img/developer-guide/plugin/extension-points/ui/post-list-item-field-create.png) - -## 定义方式 - -```ts -export default definePlugin({ - extensionPoints: { - "post:list-item:field:create": (post: Ref): EntityFieldItem[] | Promise => { - return [ - { - priority: 0, - position: "start", - component: markRaw(FooComponent), - props: {}, - permissions: [], - hidden: false, - } - ]; - }, - }, -}); -``` - -```ts title="EntityFieldItem" -export interface EntityFieldItem { - priority: number; - position: "start" | "end"; - component: Raw; - props?: Record\; - permissions?: string[]; - hidden?: boolean; -} -``` - -## 示例 - -此示例将添加一个显示文章 slug(别名)的字段。 - -```ts -import { definePlugin } from "@halo-dev/ui-shared"; -import { markRaw, type Ref } from "vue"; -import type { ListedPost } from "@halo-dev/api-client"; -import { VEntityField } from "@halo-dev/components"; - -export default definePlugin({ - extensionPoints: { - "post:list-item:field:create": (post: Ref) => { - return [ - { - priority: 0, - position: "end", - component: markRaw(VEntityField), - props: { - description: post.value.post.spec.slug, - }, - permissions: [], - hidden: false, - }, - ]; - }, - }, -}); -``` - -## 类型定义 - -### ListedPost - -```mdx-code-block -import ListedPost from "./interface/ListedPost.md"; - - -``` diff --git a/versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/post-list-item-field-create.md b/docs/developer-guide/plugin/extension-points/ui/post-list-item-field-create.mdx similarity index 98% rename from versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/post-list-item-field-create.md rename to docs/developer-guide/plugin/extension-points/ui/post-list-item-field-create.mdx index 277a13af..d324c603 100644 --- a/versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/post-list-item-field-create.md +++ b/docs/developer-guide/plugin/extension-points/ui/post-list-item-field-create.mdx @@ -73,8 +73,6 @@ export default definePlugin({ ### ListedPost -```mdx-code-block import ListedPost from "./interface/ListedPost.md"; -``` diff --git a/docs/developer-guide/plugin/extension-points/ui/post-list-item-operation-create.md b/docs/developer-guide/plugin/extension-points/ui/post-list-item-operation-create.mdx similarity index 98% rename from docs/developer-guide/plugin/extension-points/ui/post-list-item-operation-create.md rename to docs/developer-guide/plugin/extension-points/ui/post-list-item-operation-create.mdx index d686e185..c0055000 100644 --- a/docs/developer-guide/plugin/extension-points/ui/post-list-item-operation-create.md +++ b/docs/developer-guide/plugin/extension-points/ui/post-list-item-operation-create.mdx @@ -34,11 +34,9 @@ export default definePlugin({ }); ``` -```mdx-code-block import OperationItem from "./interface/OperationItem.md"; -``` ## 示例 @@ -85,8 +83,6 @@ export default definePlugin({ ### ListedPost -```mdx-code-block import ListedPost from "./interface/ListedPost.md"; -``` diff --git a/docs/developer-guide/plugin/extension-points/ui/reply-list-item-operation-create.md b/docs/developer-guide/plugin/extension-points/ui/reply-list-item-operation-create.mdx similarity index 97% rename from docs/developer-guide/plugin/extension-points/ui/reply-list-item-operation-create.md rename to docs/developer-guide/plugin/extension-points/ui/reply-list-item-operation-create.mdx index ccbe7bf7..d17752f4 100644 --- a/docs/developer-guide/plugin/extension-points/ui/reply-list-item-operation-create.md +++ b/docs/developer-guide/plugin/extension-points/ui/reply-list-item-operation-create.mdx @@ -34,11 +34,9 @@ export default definePlugin({ }); ``` -```mdx-code-block import OperationItem from "./interface/OperationItem.md"; -``` ## 示例 @@ -74,8 +72,6 @@ export default definePlugin({ ### ListedReply -```mdx-code-block import ListedReply from "./interface/ListedReply.md"; -``` diff --git a/docs/developer-guide/plugin/extension-points/ui/single-page-list-item-field-create.md b/docs/developer-guide/plugin/extension-points/ui/single-page-list-item-field-create.md deleted file mode 100644 index 23c90c97..00000000 --- a/docs/developer-guide/plugin/extension-points/ui/single-page-list-item-field-create.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -title: 页面数据列表显示字段 -description: 扩展页面数据列表显示字段 - single-page:list-item:field:create ---- - -此扩展点用于扩展页面数据列表的显示字段。 - -![页面数据列表显示字段](/img/developer-guide/plugin/extension-points/ui/single-page-list-item-field-create.png) - -## 定义方式 - -```ts -export default definePlugin({ - extensionPoints: { - "single-page:list-item:field:create": (singlePage: Ref): EntityFieldItem[] | Promise => { - return [ - { - priority: 0, - position: "start", - component: markRaw(FooComponent), - props: {}, - permissions: [], - hidden: false, - } - ]; - }, - }, -}); -``` - -```ts title="EntityFieldItem" -export interface EntityFieldItem { - priority: number; - position: "start" | "end"; - component: Raw; - props?: Record\; - permissions?: string[]; - hidden?: boolean; -} -``` - -## 示例 - -此示例将添加一个显示页面 slug(别名)的字段。 - -```ts -import { definePlugin } from "@halo-dev/ui-shared"; -import { markRaw, type Ref } from "vue"; -import type { ListedSinglePage } from "@halo-dev/api-client"; -import { VEntityField } from "@halo-dev/components"; - -export default definePlugin({ - extensionPoints: { - "single-page:list-item:field:create": (singlePage: Ref) => { - return [ - { - priority: 0, - position: "end", - component: markRaw(VEntityField), - props: { - description: singlePage.value.page.spec.slug, - }, - permissions: [], - hidden: false, - }, - ]; - }, - }, -}); -``` - -## 类型定义 - -### ListedSinglePage - -```mdx-code-block -import ListedSinglePage from "./interface/ListedSinglePage.md"; - - -``` diff --git a/versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/single-page-list-item-field-create.md b/docs/developer-guide/plugin/extension-points/ui/single-page-list-item-field-create.mdx similarity index 98% rename from versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/single-page-list-item-field-create.md rename to docs/developer-guide/plugin/extension-points/ui/single-page-list-item-field-create.mdx index 23c90c97..1058ea55 100644 --- a/versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/single-page-list-item-field-create.md +++ b/docs/developer-guide/plugin/extension-points/ui/single-page-list-item-field-create.mdx @@ -73,8 +73,6 @@ export default definePlugin({ ### ListedSinglePage -```mdx-code-block import ListedSinglePage from "./interface/ListedSinglePage.md"; -``` diff --git a/docs/developer-guide/plugin/extension-points/ui/single-page-list-item-operation-create.md b/docs/developer-guide/plugin/extension-points/ui/single-page-list-item-operation-create.md deleted file mode 100644 index 890901fe..00000000 --- a/docs/developer-guide/plugin/extension-points/ui/single-page-list-item-operation-create.md +++ /dev/null @@ -1,92 +0,0 @@ ---- -title: 页面数据列表操作菜单 -description: 扩展页面数据列表操作菜单 - single-page:list-item:operation:create ---- - -此扩展点用于扩展页面数据列表的操作菜单项。 - -![页面数据列表操作菜单](/img/developer-guide/plugin/extension-points/ui/single-page-list-item-operation-create.png) - -## 定义方式 - -```ts -export default definePlugin({ - extensionPoints: { - "single-page:list-item:operation:create": ( - singlePage: Ref - ): OperationItem[] | Promise[]> => { - return [ - { - priority: 10, - component: markRaw(VDropdownItem), - props: {}, - action: (item?: ListedSinglePage) => { - // do something - }, - label: "foo", - hidden: false, - permissions: [], - children: [], - }, - ]; - }, - }, -}); -``` - -```mdx-code-block -import OperationItem from "./interface/OperationItem.md"; - - -``` - -## 示例 - -此示例将实现一个操作菜单项,点击后会将页面内容作为文件下载到本地。 - -```ts -import type { ListedSinglePage } from "@halo-dev/api-client"; -import { VDropdownItem } from "@halo-dev/components"; -import { definePlugin } from "@halo-dev/ui-shared"; -import axios from "axios"; -import { markRaw } from "vue"; - -export default definePlugin({ - extensionPoints: { - "single-page:list-item:operation:create": () => { - return [ - { - priority: 21, - component: markRaw(VDropdownItem), - label: "下载到本地", - visible: true, - permissions: [], - action: async (singlePage: ListedSinglePage) => { - const { data } = await axios.get( - `/apis/api.console.halo.run/v1alpha1/single-pages/${singlePage.page.metadata.name}/head-content` - ); - const blob = new Blob([data.raw], { - type: "text/plain;charset=utf-8", - }); - const url = window.URL.createObjectURL(blob); - const link = document.createElement("a"); - link.href = url; - link.download = `${singlePage.page.spec.title}.${data.rawType}`; - link.click(); - }, - }, - ]; - }, - }, -}); -``` - -## 类型定义 - -### ListedSinglePage - -```mdx-code-block -import ListedSinglePage from "./interface/ListedSinglePage.md"; - - -``` diff --git a/versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/single-page-list-item-operation-create.md b/docs/developer-guide/plugin/extension-points/ui/single-page-list-item-operation-create.mdx similarity index 98% rename from versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/single-page-list-item-operation-create.md rename to docs/developer-guide/plugin/extension-points/ui/single-page-list-item-operation-create.mdx index 890901fe..4c1c3256 100644 --- a/versioned_docs/version-2.23/developer-guide/plugin/extension-points/ui/single-page-list-item-operation-create.md +++ b/docs/developer-guide/plugin/extension-points/ui/single-page-list-item-operation-create.mdx @@ -34,11 +34,9 @@ export default definePlugin({ }); ``` -```mdx-code-block import OperationItem from "./interface/OperationItem.md"; -``` ## 示例 @@ -85,8 +83,6 @@ export default definePlugin({ ### ListedSinglePage -```mdx-code-block import ListedSinglePage from "./interface/ListedSinglePage.md"; -``` diff --git a/docs/developer-guide/plugin/extension-points/ui/theme-list-item-operation-create.md b/docs/developer-guide/plugin/extension-points/ui/theme-list-item-operation-create.md deleted file mode 100644 index 8d4f1696..00000000 --- a/docs/developer-guide/plugin/extension-points/ui/theme-list-item-operation-create.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -title: 主题数据列表操作菜单 -description: 扩展主题数据列表操作菜单 - theme:list-item:operation:create ---- - -此扩展点用于扩展主题数据列表的操作菜单项。 - -![主题数据列表操作菜单](/img/developer-guide/plugin/extension-points/ui/theme-list-item-operation-create.png) - -## 定义方式 - -```ts -export default definePlugin({ - extensionPoints: { - "theme:list-item:operation:create": ( - theme: Ref - ): OperationItem[] | Promise[]> => { - return [ - { - priority: 10, - component: markRaw(VDropdownItem), - props: {}, - action: (item?: Theme) => { - // do something - }, - label: "foo", - hidden: false, - permissions: [], - children: [], - }, - ]; - }, - }, -}); -``` - -```mdx-code-block -import OperationItem from "./interface/OperationItem.md"; - - -``` - -## 示例 - -此示例将实现一个跳转到前台预览主题的操作菜单项。 - -```ts -import { definePlugin, type OperationItem } from "@halo-dev/ui-shared"; -import { VButton } from "@halo-dev/components"; -import { markRaw, type Ref } from "vue"; -import type { Theme } from "@halo-dev/api-client"; - -export default definePlugin({ - extensionPoints: { - "theme:list-item:operation:create": ( - theme: Ref - ): OperationItem[] | Promise[]> => { - return [ - { - priority: 10, - component: markRaw(VButton), - props: { - size: "sm", - }, - action: (item?: Theme) => { - window.open(`/?preview-theme=${item?.metadata.name}`); - }, - label: "前台预览", - hidden: false, - permissions: [], - children: [], - }, - ]; - }, - }, -}); -``` - -## 实现案例 - -- [https://github.com/halo-dev/plugin-app-store](https://github.com/halo-dev/plugin-app-store) - -## 类型定义 - -### Theme - -```mdx-code-block -import Theme from "./interface/Theme.md"; - - -``` diff --git a/versioned_docs/version-2.22/developer-guide/plugin/extension-points/ui/theme-list-item-operation-create.md b/docs/developer-guide/plugin/extension-points/ui/theme-list-item-operation-create.mdx similarity index 97% rename from versioned_docs/version-2.22/developer-guide/plugin/extension-points/ui/theme-list-item-operation-create.md rename to docs/developer-guide/plugin/extension-points/ui/theme-list-item-operation-create.mdx index 8d4f1696..0a86de83 100644 --- a/versioned_docs/version-2.22/developer-guide/plugin/extension-points/ui/theme-list-item-operation-create.md +++ b/docs/developer-guide/plugin/extension-points/ui/theme-list-item-operation-create.mdx @@ -34,11 +34,9 @@ export default definePlugin({ }); ``` -```mdx-code-block import OperationItem from "./interface/OperationItem.md"; -``` ## 示例 @@ -84,8 +82,6 @@ export default definePlugin({ ### Theme -```mdx-code-block import Theme from "./interface/Theme.md"; -``` diff --git a/docs/developer-guide/plugin/index.md b/docs/developer-guide/plugin/index.md new file mode 100644 index 00000000..ecec1e1e --- /dev/null +++ b/docs/developer-guide/plugin/index.md @@ -0,0 +1,4 @@ +--- +title: 插件开发 +overview: true +--- \ No newline at end of file diff --git a/docs/developer-guide/plugin/interaction/_meta.json b/docs/developer-guide/plugin/interaction/_meta.json new file mode 100644 index 00000000..c493e2cb --- /dev/null +++ b/docs/developer-guide/plugin/interaction/_meta.json @@ -0,0 +1 @@ +["dependency", "shared-events", "making-plugin-extensible"] diff --git a/docs/developer-guide/plugin/interaction/dependency.md b/docs/developer-guide/plugin/interaction/dependency.md index b16b9e6d..23427e85 100644 --- a/docs/developer-guide/plugin/interaction/dependency.md +++ b/docs/developer-guide/plugin/interaction/dependency.md @@ -94,7 +94,7 @@ Halo 插件系统支持在 `plugin.yaml` 文件中通过 `pluginDependencies` 在 Gradle 项目中,推荐使用标准的项目结构,以便于插件代码的管理和依赖的声明。以下是一个典型的 Halo 插件项目结构示例: -```plaintext +```tree my-halo-plugin/ ├── build.gradle # 项目的构建配置 ├── settings.gradle # Gradle 设置文件 @@ -117,7 +117,7 @@ my-halo-plugin/ 以下是一个优化后的项目结构示例,包含 `api` 和 `plugin` 模块: -```plaintext +```tree my-halo-plugin/ ├── build.gradle # 根项目构建配置文件 ├── settings.gradle # 设置文件,声明子模块 diff --git a/docs/developer-guide/plugin/interaction/index.md b/docs/developer-guide/plugin/interaction/index.md new file mode 100644 index 00000000..54b7937e --- /dev/null +++ b/docs/developer-guide/plugin/interaction/index.md @@ -0,0 +1,4 @@ +--- +title: 与其他插件交互 +overview: true +--- \ No newline at end of file diff --git a/docs/developer-guide/plugin/interaction/shared-events.md b/docs/developer-guide/plugin/interaction/shared-events.md index e72662a8..f7a7e7ab 100644 --- a/docs/developer-guide/plugin/interaction/shared-events.md +++ b/docs/developer-guide/plugin/interaction/shared-events.md @@ -130,7 +130,7 @@ public class CustomEventPublisher { 3. 配置插件 B 的 `plugin.yaml` 中的 `pluginDependencies` 依赖插件 A,参考 [插件依赖声明](dependency.md#依赖声明方式) -:::info +:::info 将依赖插件 API 声明为 compileOnly 关于为什么必须将插件 A 的 `plugin-a-api` 声明为 `compileOnly`? 插件类加载的顺序是: diff --git a/docs/developer-guide/plugin/prepare.md b/docs/developer-guide/plugin/prepare.md index de624924..ec9d3786 100644 --- a/docs/developer-guide/plugin/prepare.md +++ b/docs/developer-guide/plugin/prepare.md @@ -7,7 +7,7 @@ description: 插件开发的准备工作 在创建你的第一个插件之前,请确保你具备以下条件: -- 你能通过 [Docker 运行 Halo](../../getting-started/install/docker) 或在[开发环境运行 Halo](../core/run.md)。 +- 你能通过 [Docker 运行 Halo](../../guide/install/docker.mdx) 或在[开发环境运行 Halo](../core/run.md)。 - 你熟悉 Java Web 开发并掌握 [Spring Boot](https://spring.io/projects/spring-boot/) 框架。 - 你需要在计算机上安装最新的 LTS 版本的 Node.js,如果你还没有 Node.js 安装,你可以在这里下载 [Node.js 18 LTS](https://nodejs.org/)。 - 你熟悉 Vue 和 TypeScript。 diff --git a/docs/developer-guide/plugin/security/index.md b/docs/developer-guide/plugin/security/index.md new file mode 100644 index 00000000..79add5af --- /dev/null +++ b/docs/developer-guide/plugin/security/index.md @@ -0,0 +1,4 @@ +--- +title: 安全和权限管理 +overview: true +--- \ No newline at end of file diff --git a/docs/developer-guide/plugin/security/role-template.md b/docs/developer-guide/plugin/security/role-template.md index 60ee69d6..3de75e42 100644 --- a/docs/developer-guide/plugin/security/role-template.md +++ b/docs/developer-guide/plugin/security/role-template.md @@ -46,7 +46,7 @@ rules: - 以 `/api` 开头,且以 `/api//[//]` 规则组成 APIs,最少路径层级为 3 即 `/api//`,最多路径层级为 5 即包含 `` 和 ``,例如 `/api/v1/posts`。 - 以 `/apis///[//]` 规则组成的 APIs,最少路径层级为 4 即 `/apis///`,最多路径层级为 6 即包含 `` 和 ``,例如 `/apis/my-plugin.halo.run/v1alpha1/persons`。 -:::info[注意] +:::info API 路径限制 `[]`包裹的部分表示可选,`/api` 前缀被 Halo 保留,不允许插件定义以 `/api` 开头的资源型 APIs,所以插件的资源型 APIs 都是以 `/apis` 开头的。 ::: diff --git a/docs/developer-guide/restful-api/_meta.json b/docs/developer-guide/restful-api/_meta.json new file mode 100644 index 00000000..8b0c4b38 --- /dev/null +++ b/docs/developer-guide/restful-api/_meta.json @@ -0,0 +1 @@ +["introduction", "api-client"] diff --git a/docs/developer-guide/restful-api/api-client.md b/docs/developer-guide/restful-api/api-client.md index 1e1a236f..d40780fb 100644 --- a/docs/developer-guide/restful-api/api-client.md +++ b/docs/developer-guide/restful-api/api-client.md @@ -13,7 +13,7 @@ description: 介绍使用 API Client 请求库发起 API 请求的方式 pnpm install @halo-dev/api-client axios ``` -:::info[提示] +:::info 推荐使用 TypeScript 推荐在项目中引入 TypeScript,可以获得更好的类型提示。 ::: @@ -107,6 +107,6 @@ coreApiClient.content.post.listPost().then(response => { }) ``` -:::info[提示] +:::info 查看认证方式 认证方式的说明请参考:[认证方式](./introduction.md#认证方式) ::: diff --git a/docs/developer-guide/restful-api/index.md b/docs/developer-guide/restful-api/index.md new file mode 100644 index 00000000..1d2adc0f --- /dev/null +++ b/docs/developer-guide/restful-api/index.md @@ -0,0 +1,4 @@ +--- +title: RESTful API +overview: true +--- \ No newline at end of file diff --git a/docs/developer-guide/restful-api/introduction.md b/docs/developer-guide/restful-api/introduction.md index 90da9a77..de86b5e8 100644 --- a/docs/developer-guide/restful-api/introduction.md +++ b/docs/developer-guide/restful-api/introduction.md @@ -27,7 +27,7 @@ Halo 提供了 RESTful 风格的 API,Halo 的前端(主要为 Console 和 UC 个人令牌是一种用于访问 Halo API 的安全凭证,你可以使用个人令牌代替您的 Halo 账户密码进行身份验证。 -在个人中心的**个人令牌**页面中,可以根据当前用户已有的权限创建个人令牌,创建方式可参考:[个人中心 / 个人令牌](../../user-guide/user-center.md#个人令牌) +在个人中心的**个人令牌**页面中,可以根据当前用户已有的权限创建个人令牌,创建方式可参考:[个人中心 / 个人令牌](../../guide/use/user-center.md#个人令牌) 创建成功后,将会得到一个 `pat_` 开头的字符串,接下来在所需请求的请求头中添加 `Authorization` 字段,值为 `Bearer ` 即可。 @@ -59,10 +59,10 @@ axios.get('https://demo.halo.run/apis/content.halo.run/v1alpha1/posts', { ### Basic Auth -:::warning +:::warning Basic Auth 默认关闭 Basic Auth 认证方式已经在 Halo 2.20 默认关闭,需要手动添加 `halo.security.basic-auth.disabled=false` 启动参数来开启。 -配置详情可见:[配置列表](../../getting-started/install/config.md#halo-独有配置) +配置详情可见:[配置列表](../../guide/install/config.md#halo-独有配置) ::: Basic Auth 是一种通过用户名和密码进行身份验证的方式,你可以使用 Halo 账户的用户名和密码进行身份验证。 diff --git a/docs/developer-guide/theme/_meta.json b/docs/developer-guide/theme/_meta.json new file mode 100644 index 00000000..a2cd3d73 --- /dev/null +++ b/docs/developer-guide/theme/_meta.json @@ -0,0 +1,27 @@ +[ + "prepare", + "config", + "structure", + "ui-plugin", + "page-layout", + "static-resources", + "settings", + "annotations", + { + "type": "dir", + "name": "template-variables", + "label": "模板编写", + "collapsed": true + }, + { + "type": "dir", + "name": "finder-apis", + "label": "Finder API", + "collapsed": true + }, + "image-optimization", + "global-variables", + "template-tag", + "code-snippets", + "api-changelog" +] diff --git a/docs/developer-guide/theme/config.md b/docs/developer-guide/theme/config.md index db14bcda..dc883794 100644 --- a/docs/developer-guide/theme/config.md +++ b/docs/developer-guide/theme/config.md @@ -90,6 +90,6 @@ npx @halo-dev/convert-theme-config-to-next theme 执行完成之后即可看到主题目录下生成了 `theme.2.0.yaml` 文件,重命名为 `theme.yaml` 即可。 -:::tip +:::tip 修改转换后的资源名称 转换完成之后需要修改 `metadata.name`、`spec.settingName` 和 `spec.configMapName`。 ::: diff --git a/docs/developer-guide/theme/finder-apis.md b/docs/developer-guide/theme/finder-apis.md deleted file mode 100644 index fc4522f3..00000000 --- a/docs/developer-guide/theme/finder-apis.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Finder API -description: 本文档介绍 Finder API 的使用方法。 ---- - -import DocCardList from '@theme/DocCardList'; - -目前在主题模板中获取数据可以使用对应路由提供的 [模板变量](./template-variables),但为了满足在任意位置获取数据的需求,我们提供了 Finder API。 - - diff --git a/docs/developer-guide/theme/finder-apis/_meta.json b/docs/developer-guide/theme/finder-apis/_meta.json new file mode 100644 index 00000000..6f44f5be --- /dev/null +++ b/docs/developer-guide/theme/finder-apis/_meta.json @@ -0,0 +1,12 @@ +[ + "category", + "tag", + "post", + "single-page", + "comment", + "contributor", + "menu", + "site-stats", + "theme", + "plugin" +] diff --git a/docs/developer-guide/theme/finder-apis/category.md b/docs/developer-guide/theme/finder-apis/category.md deleted file mode 100644 index 4ecef87a..00000000 --- a/docs/developer-guide/theme/finder-apis/category.md +++ /dev/null @@ -1,224 +0,0 @@ ---- -title: 文章分类 -description: 文章分类 - CategoryFinder ---- - -import CategoryVo from "../vo/_CategoryVo.md" -import CategoryTreeVo from "../vo/_CategoryTreeVo.md" - -## getByName(name) - -```js -categoryFinder.getByName(name) -``` - -:::info[提示] -通常建议配合 [主题设置](../settings.md) 和 [分类选择器](../../form-schema.md#categoryselect) 使用,让用户自行选择所需的分类。 -::: - -### 描述 - -根据 `metadata.name` 获取文章分类。 - -### 参数 - -1. `name:string` - 分类的唯一标识 `metadata.name`。 - -### 返回值 - -[#CategoryVo](#categoryvo) - -### 示例 - -```html -
- -
-``` - -## getByNames(names) - -```js -categoryFinder.getByNames(names) -``` - -:::info[提示] -通常建议配合 [主题设置](../settings.md) 和 [分类选择器](../../form-schema.md#categoryselect) 使用,让用户自行选择所需的分类。 -::: - -### 描述 - -根据一组 `metadata.name` 获取文章分类。 - -### 参数 - -1. `names:List` - 分类的唯一标识 `metadata.name` 的集合。 - -### 返回值 - -List\<[#CategoryVo](#categoryvo)\> - -### 示例 - -```html -
- -
-``` - -## list(page,size) - -```js -categoryFinder.list(page,size) -``` - -### 描述 - -根据分页参数获取分类列表。 - -### 参数 - -1. `page:int` - 分页页码,从 1 开始 -2. `size:int` - 分页条数 - -### 返回值 - -[#ListResult\](#listresultcategoryvo) - -### 示例 - -```html -
    -
  • - -
  • -
-``` - -## listAll() - -```js -categoryFinder.listAll() -``` - -### 描述 - -获取所有文章分类。 - -### 参数 - -无 - -### 返回值 - -List\<[#CategoryVo](#categoryvo)\> - -### 示例 - -```html -
    -
  • - -
  • -
-``` - -## listAsTree() - -```js -categoryFinder.listAsTree() -``` - -### 描述 - -获取所有文章分类的多层级结构。 - -### 参数 - -无 - -### 返回值 - -List\<[#CategoryTreeVo](#categorytreevo)\> - -### 示例 - -```html -
-
    -
  • -
-
-``` - -```html title="/templates/category-tree.html" - -``` - -## getBreadcrumbs(name) - -```js -categoryFinder.getBreadcrumbs('category-foo') -``` - -### 描述 - -获取分类树结构的路径节点,可以通过此方法来构建面包屑导航。 - -### 参数 - -- `name:string` - 分类的唯一标识 `metadata.name`,必填。 - -### 返回值 - -List\<[#CategoryVo](#categoryvo)\> - -### 示例 - -```html -
- - - / - -
-``` - -## 类型定义 - -### CategoryVo - - - -### ListResult\ - -```json title="ListResult" -{ - "page": 0, // 当前页码 - "size": 0, // 每页条数 - "total": 0, // 总条数 - "items": "List<#CategoryVo>", // 分类列表数据 - "first": true, // 是否为第一页 - "last": true, // 是否为最后一页 - "hasNext": true, // 是否有下一页 - "hasPrevious": true, // 是否有上一页 - "totalPages": 0 // 总页数 -} -``` - -- [#CategoryVo](#categoryvo) - -### CategoryTreeVo - - - -- [#CategoryTreeVo](#categorytreevo) diff --git a/versioned_docs/version-2.22/developer-guide/theme/finder-apis/category.md b/docs/developer-guide/theme/finder-apis/category.mdx similarity index 98% rename from versioned_docs/version-2.22/developer-guide/theme/finder-apis/category.md rename to docs/developer-guide/theme/finder-apis/category.mdx index 4ecef87a..a3002b2a 100644 --- a/versioned_docs/version-2.22/developer-guide/theme/finder-apis/category.md +++ b/docs/developer-guide/theme/finder-apis/category.mdx @@ -12,7 +12,7 @@ import CategoryTreeVo from "../vo/_CategoryTreeVo.md" categoryFinder.getByName(name) ``` -:::info[提示] +:::info 配合分类选择器使用 通常建议配合 [主题设置](../settings.md) 和 [分类选择器](../../form-schema.md#categoryselect) 使用,让用户自行选择所需的分类。 ::: @@ -42,7 +42,7 @@ categoryFinder.getByName(name) categoryFinder.getByNames(names) ``` -:::info[提示] +:::info 配合分类选择器使用 通常建议配合 [主题设置](../settings.md) 和 [分类选择器](../../form-schema.md#categoryselect) 使用,让用户自行选择所需的分类。 ::: diff --git a/docs/developer-guide/theme/finder-apis/comment.md b/docs/developer-guide/theme/finder-apis/comment.mdx similarity index 100% rename from docs/developer-guide/theme/finder-apis/comment.md rename to docs/developer-guide/theme/finder-apis/comment.mdx diff --git a/docs/developer-guide/theme/finder-apis/contributor.md b/docs/developer-guide/theme/finder-apis/contributor.mdx similarity index 100% rename from docs/developer-guide/theme/finder-apis/contributor.md rename to docs/developer-guide/theme/finder-apis/contributor.mdx diff --git a/docs/developer-guide/theme/finder-apis/index.md b/docs/developer-guide/theme/finder-apis/index.md new file mode 100644 index 00000000..24d272b5 --- /dev/null +++ b/docs/developer-guide/theme/finder-apis/index.md @@ -0,0 +1,7 @@ +--- +title: Finder API +description: 本文档介绍 Finder API 的使用方法。 +overview: true +--- + +目前在主题模板中获取数据可以使用对应路由提供的 [模板变量](../template-variables/index.md),但为了满足在任意位置获取数据的需求,我们提供了 Finder API。 diff --git a/docs/developer-guide/theme/finder-apis/menu.md b/docs/developer-guide/theme/finder-apis/menu.mdx similarity index 100% rename from docs/developer-guide/theme/finder-apis/menu.md rename to docs/developer-guide/theme/finder-apis/menu.mdx diff --git a/docs/developer-guide/theme/finder-apis/post.md b/docs/developer-guide/theme/finder-apis/post.mdx similarity index 99% rename from docs/developer-guide/theme/finder-apis/post.md rename to docs/developer-guide/theme/finder-apis/post.mdx index 2d63b606..3e345bed 100644 --- a/docs/developer-guide/theme/finder-apis/post.md +++ b/docs/developer-guide/theme/finder-apis/post.mdx @@ -72,7 +72,7 @@ postFinder.cursor(postName); 根据文章的 `metadata.name` 获取相邻的文章(上一篇 / 下一篇)。 -:::info[提示] +:::info 上一篇与下一篇的定义 上一篇文章是指发布时间较当前文章更早的文章,下一篇文章是指发布时间较当前文章更新的文章。 ::: @@ -115,7 +115,7 @@ postFinder.cursorByCategory(postName); 主分类为文章 `spec.categories` 中的第一个分类。此方法只匹配同一分类下的文章,不会包含子分类中的文章。如果当前文章没有分类、未发布或者不存在,将返回空的导航结果。 -:::info[提示] +:::info 上一篇与下一篇的定义 上一篇文章是指发布时间较当前文章更早的文章,下一篇文章是指发布时间较当前文章更新的文章。 ::: diff --git a/docs/developer-guide/theme/finder-apis/single-page.md b/docs/developer-guide/theme/finder-apis/single-page.mdx similarity index 100% rename from docs/developer-guide/theme/finder-apis/single-page.md rename to docs/developer-guide/theme/finder-apis/single-page.mdx diff --git a/docs/developer-guide/theme/finder-apis/tag.md b/docs/developer-guide/theme/finder-apis/tag.md deleted file mode 100644 index 0e8a4c5d..00000000 --- a/docs/developer-guide/theme/finder-apis/tag.md +++ /dev/null @@ -1,147 +0,0 @@ ---- -title: 文章标签 -description: 文章标签 - TagFinder ---- - -import TagVo from "../vo/_TagVo.md" - -## getByName(name) - -```js -tagFinder.getByName(name) -``` - -:::info[提示] -通常建议配合 [主题设置](../settings.md) 和 [标签选择器](../../form-schema.md#tagselect) 使用,让用户自行选择所需的标签。 -::: - -### 描述 - -根据 `metadata.name` 获取标签。 - -### 参数 - -1. `name:string` - 标签的唯一标识 `metadata.name`。 - -### 返回值 - -[#TagVo](#tagvo) - -### 示例 - -```html -
- -
-``` - -## getByNames(names) - -```js -tagFinder.getByNames(names) -``` - -:::info[提示] -通常建议配合 [主题设置](../settings.md) 和 [标签选择器](../../form-schema.md#tagselect) 使用,让用户自行选择所需的标签。 -::: - -### 描述 - -根据一组 `metadata.name` 获取标签。 - -### 参数 - -1. `names:List` - 标签的唯一标识 `metadata.name` 的集合。 - -### 返回值 - -List\<[#TagVo](#tagvo)\> - -### 示例 - -```html -
- -
-``` - -## list(page,size) - -```js -tagFinder.list(page,size) -``` - -### 描述 - -根据分页参数获取标签列表。 - -### 参数 - -1. `page:int` - 分页页码,从 1 开始 -2. `size:int` - 分页条数 - -### 返回值 - -[#ListResult\](#listresulttagvo) - -### 示例 - -```html -
    -
  • - -
  • -
-``` - -## listAll() - -```js -tagFinder.listAll() -``` - -### 描述 - -获取所有文章标签。 - -### 参数 - -无 - -### 返回值 - -List\<[#TagVo](#tagvo)\> - -### 示例 - -```html -
    -
  • - -
  • -
-``` - -## 类型定义 - -### TagVo - - - -### ListResult\ - -```json title="ListResult" -{ - "page": 0, // 当前页码 - "size": 0, // 每页条数 - "total": 0, // 总条数 - "items": "List<#TagVo>", // 标签列表数据 - "first": true, // 是否为第一页 - "last": true, // 是否为最后一页 - "hasNext": true, // 是否有下一页 - "hasPrevious": true, // 是否有上一页 - "totalPages": 0 // 总页数 -} -``` - -- [#TagVo](#tagvo) diff --git a/versioned_docs/version-2.23/developer-guide/theme/finder-apis/tag.md b/docs/developer-guide/theme/finder-apis/tag.mdx similarity index 97% rename from versioned_docs/version-2.23/developer-guide/theme/finder-apis/tag.md rename to docs/developer-guide/theme/finder-apis/tag.mdx index 0e8a4c5d..14227fad 100644 --- a/versioned_docs/version-2.23/developer-guide/theme/finder-apis/tag.md +++ b/docs/developer-guide/theme/finder-apis/tag.mdx @@ -11,7 +11,7 @@ import TagVo from "../vo/_TagVo.md" tagFinder.getByName(name) ``` -:::info[提示] +:::info 配合标签选择器使用 通常建议配合 [主题设置](../settings.md) 和 [标签选择器](../../form-schema.md#tagselect) 使用,让用户自行选择所需的标签。 ::: @@ -41,7 +41,7 @@ tagFinder.getByName(name) tagFinder.getByNames(names) ``` -:::info[提示] +:::info 配合标签选择器使用 通常建议配合 [主题设置](../settings.md) 和 [标签选择器](../../form-schema.md#tagselect) 使用,让用户自行选择所需的标签。 ::: diff --git a/docs/developer-guide/theme/global-variables.md b/docs/developer-guide/theme/global-variables.md deleted file mode 100644 index 3ed501a6..00000000 --- a/docs/developer-guide/theme/global-variables.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: 全局变量 -description: 本文档介绍 Halo 为模板引擎提供的专有全局变量。 ---- - -import SiteSettingVo from "./vo/_SiteSettingVo.md" -import ThemeVo from "./vo/_ThemeVo.md" - -Halo 目前为模板引擎在全局提供了一些变量,本文档将列出已提供的变量以及介绍这些变量的使用方法。 - -## site - -### 描述 - -提供了部分可公开的系统相关的设置项,其中所有参数均来自于 Console 的系统设置。 - -### 类型 - - - -### 示例 - -显示站点标题: - -```html -

-``` - -显示站点 Logo: - -```html -Logo -``` - -显示当前 Halo 版本: - -```html - -``` - -## #halo.matchVersion(constraint) - -### 描述 - -用于判断当前运行的 Halo 版本是否满足指定的语义化版本范围,适合在主题模板中为依赖新版 Halo 能力的片段添加兼容判断。 - -版本范围格式遵循 [Semantic Range Expressions](https://github.com/zafarkhaja/jsemver#range-expressions),例如 `>=2.25.0`、`>2.0.0 & <3.0.0` 等。 - -:::tip -开发版本 `0.0.0` 会始终返回 `true`,以便在本地开发环境中调试主题模板。 -::: - -### 示例 - -仅在 Halo 版本满足要求时渲染模板片段: - -```html -
- -
-``` - -判断一个版本范围: - -```html -
- -
-``` - -## theme - -### 描述 - -关于当前激活主题的信息。 - -### 类型 - - - -### 示例 - -显示主题名称: - -```html -

-``` - -在静态资源加入版本号参数,以防止升级之后的缓存问题: - -```html - - -``` diff --git a/versioned_docs/version-2.25/developer-guide/theme/global-variables.md b/docs/developer-guide/theme/global-variables.mdx similarity index 98% rename from versioned_docs/version-2.25/developer-guide/theme/global-variables.md rename to docs/developer-guide/theme/global-variables.mdx index 3ed501a6..59ae1f86 100644 --- a/versioned_docs/version-2.25/developer-guide/theme/global-variables.md +++ b/docs/developer-guide/theme/global-variables.mdx @@ -46,7 +46,7 @@ Halo 目前为模板引擎在全局提供了一些变量,本文档将列出已 版本范围格式遵循 [Semantic Range Expressions](https://github.com/zafarkhaja/jsemver#range-expressions),例如 `>=2.25.0`、`>2.0.0 & <3.0.0` 等。 -:::tip +:::tip 开发版本行为 开发版本 `0.0.0` 会始终返回 `true`,以便在本地开发环境中调试主题模板。 ::: diff --git a/docs/developer-guide/theme/image-optimization.md b/docs/developer-guide/theme/image-optimization.md index 83eac94e..c4227753 100644 --- a/docs/developer-guide/theme/image-optimization.md +++ b/docs/developer-guide/theme/image-optimization.md @@ -13,13 +13,13 @@ description: 本文档介绍如何使用 Halo 的缩略图特性来优化图片 - 提升加载性能:通过为图片提供多个尺寸的缩略图,浏览器可以选择最适合当前视窗的图片进行加载,从而减少不必要的带宽使用,提升页面加载速度,改善用户体验。 - 兼容性好:响应式图片是基于 HTML 标准的实现,不需要额外的 JavaScript 或 CSS,因此兼容性非常好。 -:::info +:::info 了解响应式图片 建议阅读 [响应式图片](https://developer.mozilla.org/zh-CN/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images) 文档,以了解更多关于响应式图片的知识,以及如何在不同场景下使用。 ::: ## Finder API -:::info +:::info Halo 2.22 自动添加响应式属性 从 Halo 2.22 开始,Halo 会自动为页面上的所有图片添加响应式图片的相关属性,无需主题主动适配,如果你的主题需要手动为部分图片自定义属性,可以使用下方的 `Finder API`。 ::: diff --git a/docs/developer-guide/theme/index.md b/docs/developer-guide/theme/index.md new file mode 100644 index 00000000..bee7f6dd --- /dev/null +++ b/docs/developer-guide/theme/index.md @@ -0,0 +1,4 @@ +--- +title: 主题开发 +overview: true +--- \ No newline at end of file diff --git a/docs/developer-guide/theme/prepare.md b/docs/developer-guide/theme/prepare.md index 02a1d7d8..1fef557f 100644 --- a/docs/developer-guide/theme/prepare.md +++ b/docs/developer-guide/theme/prepare.md @@ -7,9 +7,9 @@ description: 主题开发所需的准备工作和基本的项目搭建 ## 搭建开发环境 -Halo 在本地开发环境的运行可参考[开发环境运行](../core/run.md),或者使用 [Docker](../../getting-started/install/docker.md) 运行。 +Halo 在本地开发环境的运行可参考[开发环境运行](../core/run.md),或者使用 [Docker](../../guide/install/docker.mdx) 运行。 -:::tip +:::tip 启用主题实时更新 为了保证在开发时,主题代码可以实时生效,需要注意以下事项: - 使用 Halo 源码运行时,需要在配置文件中包含如下配置: @@ -53,11 +53,11 @@ spec: url: "https://github.com/halo-sigs/theme-foo/blob/main/LICENSE" ``` -:::info[提示] +:::info 查看主题配置文档 主题的配置文件详细文档请参考 [配置文件](./config.md)。 ::: -:::info[提示] +:::info 查看主题目录结构 主题项目的目录结构请参考 [主题目录结构](./structure.md)。 ::: @@ -69,7 +69,7 @@ spec: - [halo-sigs/theme-vite-starter](https://github.com/halo-dev/theme-vite-starter) - 与 Vite 集成的主题模板,由 Vite 负责资源构建。 - [halo-sigs/theme-astro-starter](https://github.com/halo-sigs/theme-astro-starter) - 以 Astro 作为预渲染框架的主题模板。 -:::info[提示] +:::info 从模板仓库创建主题 以上 GitHub 都被设置为了模板仓库(Template repository),点击仓库主页的 `Use this template` 按钮即可通过此模板创建一个新的仓库。 创建新的主题仓库并克隆到本地开发环境之后,需要确保主题文件夹名称和 `theme.yaml` 中的 `metadata.name` 字段一致,否则可能导致部分资源无法正常加载。 diff --git a/docs/developer-guide/theme/settings.md b/docs/developer-guide/theme/settings.md index 3e2639de..f15d0d2d 100644 --- a/docs/developer-guide/theme/settings.md +++ b/docs/developer-guide/theme/settings.md @@ -5,7 +5,7 @@ description: 介绍主题如何定义以及使用设置选项。 此文档将讲解如何在主题中定义和使用设置项,如 [表单定义](../form-schema) 中所说,目前 Halo 的 Console 端的所有表单都使用了 [FormKit](https://github.com/formkit/formkit) 的方案。 -:::tip +:::tip 先了解 FormKit 表单定义 有关 FormKit 定义表单的更多信息,请参考 [表单定义](../form-schema),此文档仅针对主题中的设置项进行讲解。 ::: @@ -39,7 +39,7 @@ spec: url: "https://github.com/halo-sigs/theme-foo/blob/main/LICENSE" ``` -:::tip +:::tip 保持配置名称一致 `settingName` 和 `configMapName` 必须同时配置,且可以自定义名称,但是 `settingName` 必须和 Setting 的 `metadata.name` 一致。 ::: @@ -82,7 +82,7 @@ spec: value: "double" ``` -:::tip +:::tip 保持 Setting 名称一致 Setting 资源的 `metadata.name` 必须和 `theme.yaml` 中的 `spec.settingName` 一致。 ::: @@ -134,6 +134,6 @@ npx @halo-dev/convert-theme-config-to-next settings 执行完成之后即可看到主题目录下生成了 `settings.2.0.yaml` 文件,重命名为 `settings.yaml` 即可。 -:::tip +:::tip 修改转换后的资源名称 转换完成之后需要修改 `metadata.name` 字段。 ::: diff --git a/docs/developer-guide/theme/static-resources.md b/docs/developer-guide/theme/static-resources.md index 7bd22609..563be7d9 100644 --- a/docs/developer-guide/theme/static-resources.md +++ b/docs/developer-guide/theme/static-resources.md @@ -24,7 +24,7 @@ description: 本文档介绍主题的静态资源的引用方法。 以上方式仅支持在 HTML 标签中使用,且必须使用 `@{}` 包裹才能渲染为正确的路径。如果需要在非 HTML 标签中得到正确的路径,我们提供了 `#theme.assets()` API。 -:::info[注意] +:::info 资源地址无需包含 /assets/ 需要注意的是,调用 `#theme.assets()` 的时候,资源地址不需要添加 `/assets/`。 ::: @@ -50,6 +50,6 @@ function loadScript(url) { ``` -:::info[提示] +:::info 在 JavaScript 中使用 Thymeleaf 关于在 JavaScript 中使用 Thymeleaf 语法可以参考 Thymeleaf 官方文档:[JavaScript inlining](https://www.thymeleaf.org/doc/tutorials/3.1/usingthymeleaf.html#javascript-inlining) ::: diff --git a/docs/developer-guide/theme/structure.md b/docs/developer-guide/theme/structure.md index 1b2a7a6a..37cfe157 100644 --- a/docs/developer-guide/theme/structure.md +++ b/docs/developer-guide/theme/structure.md @@ -5,7 +5,7 @@ description: 主题的目录结构介绍 Halo 2.0 的主题基本目录结构如下: -```bash title="~/halo2-dev/themes/my-theme" +```tree title="~/halo2-dev/themes/my-theme" my-theme ├── templates/ │ ├── assets/ diff --git a/docs/developer-guide/theme/template-route-mapping.md b/docs/developer-guide/theme/template-route-mapping.md index f72852ff..b9cb11fe 100644 --- a/docs/developer-guide/theme/template-route-mapping.md +++ b/docs/developer-guide/theme/template-route-mapping.md @@ -79,7 +79,7 @@ customTemplates: 最终使用者即可在文章设置、独立页面设置、分类设置中选择自定义模板。 -:::info[提示] +:::info 自定义模板要求 1. 自定义模板与默认模板的功能相同,区别仅在于可以让使用者选择不同于默认模板风格的模板。 2. 自定义模板的文件名需要以 `.html` 结尾,且需要在 `/templates/` 目录下创建。 diff --git a/docs/developer-guide/theme/template-tag.md b/docs/developer-guide/theme/template-tag.md index 0394a7fe..84613065 100644 --- a/docs/developer-guide/theme/template-tag.md +++ b/docs/developer-guide/theme/template-tag.md @@ -51,6 +51,6 @@ Halo 为满足部分代码注入和模板扩展点的需求,提供了一些专 ``` -:::info[注意] +:::info 建议实现完整标签 为了保证 Halo 的功能完整性,建议主题开发者尽可能在主题中实现此标签。 ::: diff --git a/docs/developer-guide/theme/template-variables.md b/docs/developer-guide/theme/template-variables.md deleted file mode 100644 index 48dd15c6..00000000 --- a/docs/developer-guide/theme/template-variables.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: 模板编写 ---- - -此章节我们将详细介绍如何在主题中编写页面的模板,以下是 Halo 核心中支持的所有模板: - -```mdx-code-block -import DocCardList from '@theme/DocCardList'; - - -``` diff --git a/docs/developer-guide/theme/template-variables/_meta.json b/docs/developer-guide/theme/template-variables/_meta.json new file mode 100644 index 00000000..a8c2bca3 --- /dev/null +++ b/docs/developer-guide/theme/template-variables/_meta.json @@ -0,0 +1,13 @@ +[ + "index_", + "post", + "page", + "archives", + "tags", + "tag", + "categories", + "category", + "author", + "auth", + "error" +] diff --git a/docs/developer-guide/theme/template-variables/archives.md b/docs/developer-guide/theme/template-variables/archives.mdx similarity index 100% rename from docs/developer-guide/theme/template-variables/archives.md rename to docs/developer-guide/theme/template-variables/archives.mdx diff --git a/docs/developer-guide/theme/template-variables/auth.md b/docs/developer-guide/theme/template-variables/auth.md index ad5c3680..f5a4da8e 100644 --- a/docs/developer-guide/theme/template-variables/auth.md +++ b/docs/developer-guide/theme/template-variables/auth.md @@ -13,7 +13,7 @@ Halo 2.20 重构了登录、注册等页面,现在支持通过主题自定义 要实现自定义登录、注册等模板,只需要在主题的 `templates` 目录中新建与 Halo 源码中 `application/src/main/resources/templates` 同名的模板文件即可,下面是 Halo 源码中的目录结构: -```bash +```tree ├── challenges │   └── two-factor │   ├── totp.html 两步验证页面 diff --git a/docs/developer-guide/theme/template-variables/author.md b/docs/developer-guide/theme/template-variables/author.mdx similarity index 100% rename from docs/developer-guide/theme/template-variables/author.md rename to docs/developer-guide/theme/template-variables/author.mdx diff --git a/docs/developer-guide/theme/template-variables/categories.md b/docs/developer-guide/theme/template-variables/categories.mdx similarity index 100% rename from docs/developer-guide/theme/template-variables/categories.md rename to docs/developer-guide/theme/template-variables/categories.mdx diff --git a/docs/developer-guide/theme/template-variables/category.md b/docs/developer-guide/theme/template-variables/category.md deleted file mode 100644 index 2a775540..00000000 --- a/docs/developer-guide/theme/template-variables/category.md +++ /dev/null @@ -1,146 +0,0 @@ ---- -title: 分类归档 -description: category.html - /categories/:slug ---- - -import CategoryVo from "../vo/_CategoryVo.md" -import TagVo from "../vo/_TagVo.md" -import ContributorVo from "../vo/_ContributorVo.md"; -import ListedPostVo from "../vo/_ListedPostVo.md" - -用于根据分类列出所有文章的页面。 - -## 路由信息 - -- 模板路径:`/templates/category.html` -- 访问路径:`/categories/:slug` - -### 自定义模板 - -除了上面提到的 `category.html`,主题作者还可以添加多种形式的额外渲染模板,提供给用户选择,可以通过这个功能实现将网站上的文章内容进行领域划分,比如网站上同时存在新闻、文档、博客等分区,那么就可以利用这个功能提供多个模板,同时 Halo 还支持为分类设置文章渲染模板,详情可见[新建文章分类](../../../user-guide/posts.md#新建文章分类)。 - -定义方式为: - -```yaml title="theme.yaml" -customTemplates: - category: - - name: {name} - description: {description} - screenshot: {screenshot} - file: {file}.html -``` - -- `name`:模板名称 -- `description`:模板描述 -- `screenshot`:模板预览图 -- `file`:模板文件名,需要在 `/templates/` 目录下创建 - -示例: - -```yaml title="theme.yaml" -customTemplates: - category: - - name: 新闻 - description: 用于展示新闻分类下的文章 - screenshot: - file: category_news.html - - name: 博客 - description: 用于展示博客分类下的文章 - screenshot: - file: category_blog.html -``` - -:::info -需要注意,修改 theme.yaml 需要[重载主题配置](../../../user-guide/themes.md#重载主题配置)。 -::: - -## 变量 - -### category - -#### 变量类型 - -[#CategoryVo](#categoryvo) - -### posts - -#### 变量类型 - -[#UrlContextListResult\](#urlcontextlistresultlistedpostvo) - -#### 示例 - -```html title="/templates/category.html" -
-

-
    -
  • - -
  • -
- -
-``` - -### _templateId - -#### 变量值 - -`category` - -## 类型定义 - -### CategoryVo - - - -### TagVo - - - -### ContributorVo - - - -### ListedPostVo - - - -- [#CategoryVo](#categoryvo) -- [#TagVo](#tagvo) -- [#ContributorVo](#contributorvo) - -### UrlContextListResult\ - -```json title="UrlContextListResult" -{ - "page": 0, // 当前页码 - "size": 0, // 每页条数 - "total": 0, // 总条数 - "items": "List<#ListedPostVo>", // 文章列表数据 - "first": true, // 是否为第一页 - "last": true, // 是否为最后一页 - "hasNext": true, // 是否有下一页 - "hasPrevious": true, // 是否有上一页 - "totalPages": 0, // 总页数 - "nextUrl": "string", // 下一页链接 - "prevUrl": "string" // 上一页链接 -} -``` - -- [#ListedPostVo](#listedpostvo) diff --git a/versioned_docs/version-2.23/developer-guide/theme/template-variables/category.md b/docs/developer-guide/theme/template-variables/category.mdx similarity index 95% rename from versioned_docs/version-2.23/developer-guide/theme/template-variables/category.md rename to docs/developer-guide/theme/template-variables/category.mdx index 2a775540..2e6aaeec 100644 --- a/versioned_docs/version-2.23/developer-guide/theme/template-variables/category.md +++ b/docs/developer-guide/theme/template-variables/category.mdx @@ -17,7 +17,7 @@ import ListedPostVo from "../vo/_ListedPostVo.md" ### 自定义模板 -除了上面提到的 `category.html`,主题作者还可以添加多种形式的额外渲染模板,提供给用户选择,可以通过这个功能实现将网站上的文章内容进行领域划分,比如网站上同时存在新闻、文档、博客等分区,那么就可以利用这个功能提供多个模板,同时 Halo 还支持为分类设置文章渲染模板,详情可见[新建文章分类](../../../user-guide/posts.md#新建文章分类)。 +除了上面提到的 `category.html`,主题作者还可以添加多种形式的额外渲染模板,提供给用户选择,可以通过这个功能实现将网站上的文章内容进行领域划分,比如网站上同时存在新闻、文档、博客等分区,那么就可以利用这个功能提供多个模板,同时 Halo 还支持为分类设置文章渲染模板,详情可见[新建文章分类](../../../guide/use/posts.md#新建文章分类)。 定义方式为: @@ -50,8 +50,8 @@ customTemplates: file: category_blog.html ``` -:::info -需要注意,修改 theme.yaml 需要[重载主题配置](../../../user-guide/themes.md#重载主题配置)。 +:::info 修改 theme.yaml 后重载配置 +需要注意,修改 theme.yaml 需要[重载主题配置](../../../guide/use/themes.md#重载主题配置)。 ::: ## 变量 diff --git a/docs/developer-guide/theme/template-variables/error.md b/docs/developer-guide/theme/template-variables/error.md index d5211ece..38127351 100644 --- a/docs/developer-guide/theme/template-variables/error.md +++ b/docs/developer-guide/theme/template-variables/error.md @@ -8,7 +8,7 @@ description: 关于错误页面的模板变量 - 模板路径:`/templates/error/{404,4xx,500,5xx,error}.html` - 访问路径:无固定访问路径,由异常决定 -:::info[提示] +:::info 错误模板匹配顺序 错误页面的可使用模板由状态码决定,例如 404 状态码对应的模板为 `/templates/error/404.html` 或者 `/templates/error/4xx.html`。也可以使用 `/templates/error/error.html` 作为默认模板。 识别顺序如下: diff --git a/versioned_docs/version-2.23/developer-guide/theme/template-variables.md b/docs/developer-guide/theme/template-variables/index.md similarity index 63% rename from versioned_docs/version-2.23/developer-guide/theme/template-variables.md rename to docs/developer-guide/theme/template-variables/index.md index 48dd15c6..808b2d23 100644 --- a/versioned_docs/version-2.23/developer-guide/theme/template-variables.md +++ b/docs/developer-guide/theme/template-variables/index.md @@ -1,11 +1,6 @@ --- title: 模板编写 +overview: true --- 此章节我们将详细介绍如何在主题中编写页面的模板,以下是 Halo 核心中支持的所有模板: - -```mdx-code-block -import DocCardList from '@theme/DocCardList'; - - -``` diff --git a/docs/developer-guide/theme/template-variables/index_.md b/docs/developer-guide/theme/template-variables/index_.mdx similarity index 100% rename from docs/developer-guide/theme/template-variables/index_.md rename to docs/developer-guide/theme/template-variables/index_.mdx diff --git a/docs/developer-guide/theme/template-variables/page.md b/docs/developer-guide/theme/template-variables/page.md deleted file mode 100644 index 56cac963..00000000 --- a/docs/developer-guide/theme/template-variables/page.md +++ /dev/null @@ -1,90 +0,0 @@ ---- -title: 单页面 -description: page.html - /:slug ---- - -import SinglePageVo from "../vo/_SinglePageVo.md" -import ContributorVo from "../vo/_ContributorVo.md" -import ContentVo from "../vo/_ContentVo.md" - -页面与文章类似,同样包含页面标题和富文本形式的页面内容。与文章不同的是页面无法设置所属分类和标签信息,一般用于站点中单一展示功能的页面,例如常见的站点关于页面、联系我们页面等。 - -## 路由信息 - -- 模板路径:`/templates/page.html` -- 访问路径:`/:slug` - -### 自定义模板 - -除了上面提到的 `page.html`,主题作者还可以添加多种形式的额外渲染模板,提供给用户选择,此举可以丰富网站的使用类型。 - -定义方式为: - -```yaml title="theme.yaml" -customTemplates: - page: - - name: {name} - description: {description} - screenshot: {screenshot} - file: {file}.html -``` - -- `name`:模板名称 -- `description`:模板描述 -- `screenshot`:模板预览图 -- `file`:模板文件名,需要在 `/templates/` 目录下创建 - -示例: - -```yaml title="theme.yaml" -customTemplates: - page: - - name: 关于公司 - description: 用于展示公司的一些信息 - screenshot: - file: page_about.html -``` - -:::info -需要注意,修改 theme.yaml 需要[重载主题配置](../../../user-guide/themes.md#重载主题配置)。 -::: - -## 变量 - -### singlePage - -#### 变量类型 - -[#SinglePageVo](#singlepagevo) - -#### 示例 - -```html title="/templates/page.html" -
-

-
-
-``` - -### _templateId - -#### 变量值 - -`page` - -## 类型定义 - -### SinglePageVo - - - -- [#ContentVo](#contentvo) -- [#ContributorVo](#contributorvo) - -### ContentVo - - - -### ContributorVo - - diff --git a/versioned_docs/version-2.22/developer-guide/theme/template-variables/page.md b/docs/developer-guide/theme/template-variables/page.mdx similarity index 95% rename from versioned_docs/version-2.22/developer-guide/theme/template-variables/page.md rename to docs/developer-guide/theme/template-variables/page.mdx index 56cac963..5c19e62a 100644 --- a/versioned_docs/version-2.22/developer-guide/theme/template-variables/page.md +++ b/docs/developer-guide/theme/template-variables/page.mdx @@ -45,8 +45,8 @@ customTemplates: file: page_about.html ``` -:::info -需要注意,修改 theme.yaml 需要[重载主题配置](../../../user-guide/themes.md#重载主题配置)。 +:::info 修改 theme.yaml 后重载配置 +需要注意,修改 theme.yaml 需要[重载主题配置](../../../guide/use/themes.md#重载主题配置)。 ::: ## 变量 diff --git a/docs/developer-guide/theme/template-variables/post.md b/docs/developer-guide/theme/template-variables/post.md deleted file mode 100644 index 0be11f4c..00000000 --- a/docs/developer-guide/theme/template-variables/post.md +++ /dev/null @@ -1,97 +0,0 @@ ---- -title: 文章 -description: post.html - /archives/:slug ---- - -import CategoryVo from "../vo/_CategoryVo.md" -import TagVo from "../vo/_TagVo.md" -import ContentVo from "../vo/_ContentVo.md" -import ContributorVo from "../vo/_ContributorVo.md" -import PostVo from "../vo/_PostVo.md" - -文章详情页面的模板。 - -## 路由信息 - -- 模板路径:`/templates/post.html` -- 访问路径:默认为 `/archives/:slug`,用户可手动更改为其他路由形式,可参考:[主题路由设置](../../../user-guide/settings.md#主题路由设置) - -### 自定义模板 - -除了上面提到的 `post.html`,主题作者还可以添加多种形式的额外渲染模板,提供给用户选择,此举可以丰富网站的使用类型,用户设置方式可参考 [文章设置](../../../user-guide/posts.md#文章设置)。 - -定义方式为: - -```yaml title="theme.yaml" -customTemplates: - post: - - name: {name} - description: {description} - screenshot: {screenshot} - file: {file}.html -``` - -- `name`:模板名称 -- `description`:模板描述 -- `screenshot`:模板预览图 -- `file`:模板文件名,需要在 `/templates/` 目录下创建 - -示例: - -```yaml title="theme.yaml" -customTemplates: - post: - - name: 文档 - description: 文档类型的文章 - screenshot: - file: post_documentation.html -``` - -:::info -需要注意,修改 theme.yaml 需要[重载主题配置](../../../user-guide/themes.md#重载主题配置)。 -::: - -## 变量 - -### post - -#### 变量类型 - -[#PostVo](#postvo) - -#### 示例 - -```html title="/templates/post.html" -
-

-
-
-``` - -### _templateId - -#### 变量值 - -`post` - -## 类型定义 - -### CategoryVo - - - -### TagVo - - - -### ContributorVo - - - -### ContentVo - - - -### PostVo - - diff --git a/versioned_docs/version-2.23/developer-guide/theme/template-variables/post.md b/docs/developer-guide/theme/template-variables/post.mdx similarity index 89% rename from versioned_docs/version-2.23/developer-guide/theme/template-variables/post.md rename to docs/developer-guide/theme/template-variables/post.mdx index 0be11f4c..cf293487 100644 --- a/versioned_docs/version-2.23/developer-guide/theme/template-variables/post.md +++ b/docs/developer-guide/theme/template-variables/post.mdx @@ -14,11 +14,11 @@ import PostVo from "../vo/_PostVo.md" ## 路由信息 - 模板路径:`/templates/post.html` -- 访问路径:默认为 `/archives/:slug`,用户可手动更改为其他路由形式,可参考:[主题路由设置](../../../user-guide/settings.md#主题路由设置) +- 访问路径:默认为 `/archives/:slug`,用户可手动更改为其他路由形式,可参考:[主题路由设置](../../../guide/use/settings.md#主题路由设置) ### 自定义模板 -除了上面提到的 `post.html`,主题作者还可以添加多种形式的额外渲染模板,提供给用户选择,此举可以丰富网站的使用类型,用户设置方式可参考 [文章设置](../../../user-guide/posts.md#文章设置)。 +除了上面提到的 `post.html`,主题作者还可以添加多种形式的额外渲染模板,提供给用户选择,此举可以丰富网站的使用类型,用户设置方式可参考 [文章设置](../../../guide/use/posts.md#文章设置)。 定义方式为: @@ -47,8 +47,8 @@ customTemplates: file: post_documentation.html ``` -:::info -需要注意,修改 theme.yaml 需要[重载主题配置](../../../user-guide/themes.md#重载主题配置)。 +:::info 修改 theme.yaml 后重载配置 +需要注意,修改 theme.yaml 需要[重载主题配置](../../../guide/use/themes.md#重载主题配置)。 ::: ## 变量 diff --git a/docs/developer-guide/theme/template-variables/tag.md b/docs/developer-guide/theme/template-variables/tag.mdx similarity index 100% rename from docs/developer-guide/theme/template-variables/tag.md rename to docs/developer-guide/theme/template-variables/tag.mdx diff --git a/docs/developer-guide/theme/template-variables/tags.md b/docs/developer-guide/theme/template-variables/tags.mdx similarity index 100% rename from docs/developer-guide/theme/template-variables/tags.md rename to docs/developer-guide/theme/template-variables/tags.mdx diff --git a/docs/developer-guide/theme/ui-plugin.md b/docs/developer-guide/theme/ui-plugin.md index d03657fb..0299aa85 100644 --- a/docs/developer-guide/theme/ui-plugin.md +++ b/docs/developer-guide/theme/ui-plugin.md @@ -11,7 +11,7 @@ description: 通过主题扩展 Console 和 UC 界面 将 UI 项目放在主题根目录的 `ui-plugin` 目录中: -```text +```tree theme-root/ ├── templates/ ├── theme.yaml diff --git a/docs/getting-started/first-post.md b/docs/getting-started/first-post.md deleted file mode 100644 index 3c370d91..00000000 --- a/docs/getting-started/first-post.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: 第一篇文章 -description: Halo 安装后写第一篇文章:进入控制台、编辑发布、分类标签与前台访问。 ---- - - -