├── .editorconfig
├── .github
└── workflows
│ └── node.js.yml
├── .gitignore
├── .husky
└── pre-commit
├── .markdownlint.json
├── .npmrc
├── .vscode
├── extensions.json
└── settings.json
├── OWNERS
├── README.md
├── docs
├── about.md
├── contribution
│ ├── issue.md
│ ├── pr.md
│ └── sponsor.md
├── developer-guide
│ ├── annotations-form.md
│ ├── core
│ │ ├── build.md
│ │ ├── code-style.md
│ │ ├── framework.md
│ │ ├── prepare.md
│ │ ├── run.md
│ │ └── structure.md
│ ├── form-schema.md
│ ├── plugin
│ │ ├── api-reference
│ │ │ ├── server
│ │ │ │ ├── extension-client.md
│ │ │ │ ├── extension-getter.md
│ │ │ │ ├── extension.md
│ │ │ │ ├── finder-for-theme.md
│ │ │ │ ├── login-handler-enhancer.md
│ │ │ │ ├── notification.md
│ │ │ │ ├── reconciler.md
│ │ │ │ ├── reverseproxy.md
│ │ │ │ ├── setting-fetcher.md
│ │ │ │ ├── template-for-theme.md
│ │ │ │ └── websocket.md
│ │ │ └── ui
│ │ │ │ ├── api-request.md
│ │ │ │ ├── components
│ │ │ │ ├── annotations-form.md
│ │ │ │ ├── attachment-file-type-icon.md
│ │ │ │ ├── attachment-selector-modal.md
│ │ │ │ ├── filter-clean-button.md
│ │ │ │ ├── filter-dropdown.md
│ │ │ │ ├── has-permission.md
│ │ │ │ ├── index.md
│ │ │ │ ├── plugin-detail-modal.md
│ │ │ │ ├── search-input.md
│ │ │ │ ├── uppy-upload.md
│ │ │ │ ├── v-codemirror.md
│ │ │ │ ├── v-permission.md
│ │ │ │ └── v-tooltip.md
│ │ │ │ └── route.md
│ │ ├── appendices.md
│ │ ├── basics
│ │ │ ├── devtools.md
│ │ │ ├── manifest.md
│ │ │ ├── server
│ │ │ │ ├── lifecycle.md
│ │ │ │ └── object-management.md
│ │ │ ├── structure.md
│ │ │ └── ui
│ │ │ │ ├── build.md
│ │ │ │ ├── entry.md
│ │ │ │ └── intro.md
│ │ ├── examples
│ │ │ └── todolist.md
│ │ ├── extension-points
│ │ │ ├── server
│ │ │ │ ├── additional-webfilter.md
│ │ │ │ ├── attachment.md
│ │ │ │ ├── authentication-webfilter.md
│ │ │ │ ├── comment-subject.md
│ │ │ │ ├── comment-widget.md
│ │ │ │ ├── index.md
│ │ │ │ ├── notifier.md
│ │ │ │ ├── post-content.md
│ │ │ │ ├── singlepage-content.md
│ │ │ │ ├── template-footer-processor.md
│ │ │ │ ├── template-head-processor.md
│ │ │ │ └── username-password-authentication-manager.md
│ │ │ └── ui
│ │ │ │ ├── attachment-list-item-operation-create.md
│ │ │ │ ├── attachment-selector-create.md
│ │ │ │ ├── backup-list-item-operation-create.md
│ │ │ │ ├── backup-tabs-create.md
│ │ │ │ ├── comment-list-item-operation-create.md
│ │ │ │ ├── comment-subject-ref-create.md
│ │ │ │ ├── dashboard-widgets.md
│ │ │ │ ├── default-editor-extension-create.md
│ │ │ │ ├── editor-create.md
│ │ │ │ ├── index.md
│ │ │ │ ├── interface
│ │ │ │ ├── Attachment.md
│ │ │ │ ├── ListedComment.md
│ │ │ │ ├── ListedPost.md
│ │ │ │ ├── ListedReply.md
│ │ │ │ ├── ListedSinglePage.md
│ │ │ │ ├── OperationItem.md
│ │ │ │ ├── Plugin.md
│ │ │ │ └── Theme.md
│ │ │ │ ├── plugin-installation-tabs-create.md
│ │ │ │ ├── plugin-list-item-field-create.md
│ │ │ │ ├── plugin-list-item-operation-create.md
│ │ │ │ ├── plugin-self-tabs-create.md
│ │ │ │ ├── post-list-item-field-create.md
│ │ │ │ ├── post-list-item-operation-create.md
│ │ │ │ ├── reply-list-item-operation-create.md
│ │ │ │ ├── single-page-list-item-field-create.md
│ │ │ │ ├── single-page-list-item-operation-create.md
│ │ │ │ ├── theme-list-item-operation-create.md
│ │ │ │ ├── theme-list-tabs-create.md
│ │ │ │ ├── uc-user-profile-tabs-create.md
│ │ │ │ └── user-detail-tabs-create.md
│ │ ├── hello-world.md
│ │ ├── interaction
│ │ │ ├── dependency.md
│ │ │ ├── making-plugin-extensible.md
│ │ │ └── shared-events.md
│ │ ├── introduction.md
│ │ ├── prepare.md
│ │ ├── publish.md
│ │ └── security
│ │ │ ├── rbac.md
│ │ │ ├── role-template.md
│ │ │ └── ui-permission.md
│ ├── restful-api
│ │ ├── api-client.md
│ │ └── introduction.md
│ └── theme
│ │ ├── annotations.md
│ │ ├── code-snippets.md
│ │ ├── config.md
│ │ ├── finder-apis.md
│ │ ├── finder-apis
│ │ ├── category.md
│ │ ├── comment.md
│ │ ├── contributor.md
│ │ ├── menu.md
│ │ ├── plugin.md
│ │ ├── post.md
│ │ ├── single-page.md
│ │ ├── site-stats.md
│ │ ├── tag.md
│ │ └── theme.md
│ │ ├── global-variables.md
│ │ ├── image-optimization.md
│ │ ├── prepare.md
│ │ ├── settings.md
│ │ ├── static-resources.md
│ │ ├── structure.md
│ │ ├── template-route-mapping.md
│ │ ├── template-tag.md
│ │ ├── template-variables.md
│ │ ├── template-variables
│ │ ├── archives.md
│ │ ├── auth.md
│ │ ├── author.md
│ │ ├── categories.md
│ │ ├── category.md
│ │ ├── error.md
│ │ ├── index_.md
│ │ ├── page.md
│ │ ├── post.md
│ │ ├── tag.md
│ │ └── tags.md
│ │ └── vo
│ │ ├── _CategoryTreeVo.md
│ │ ├── _CategoryVo.md
│ │ ├── _CommentVo.md
│ │ ├── _ContentVo.md
│ │ ├── _ContributorVo.md
│ │ ├── _ListedPostVo.md
│ │ ├── _ListedSinglePageVo.md
│ │ ├── _MenuItemVo.md
│ │ ├── _MenuVo.md
│ │ ├── _PostVo.md
│ │ ├── _ReplyVo.md
│ │ ├── _SinglePageVo.md
│ │ ├── _SiteSettingVo.md
│ │ ├── _TagVo.md
│ │ ├── _ThemeVo.md
│ │ └── _UserVo.md
├── getting-started
│ ├── first-post.md
│ ├── install
│ │ ├── 1panel.md
│ │ ├── cloud
│ │ │ ├── alibaba-cloud-computenest.md
│ │ │ ├── alibaba-cloud-market.md
│ │ │ └── tencent-cloud-lighthouse.md
│ │ ├── config.md
│ │ ├── docker-compose.md
│ │ ├── docker.md
│ │ ├── helm.md
│ │ ├── jar-file.md
│ │ ├── offline.md
│ │ ├── other
│ │ │ ├── nginxproxymanager.md
│ │ │ └── traefik.md
│ │ ├── podman.md
│ │ └── slots
│ │ │ ├── _docker-args.md
│ │ │ └── _docker-registry-list.md
│ ├── migrate-from-1.x.md
│ ├── prepare.md
│ └── setup.md
├── intro.md
└── user-guide
│ ├── app-store.md
│ ├── attachments.md
│ ├── backup.md
│ ├── common.md
│ ├── faq.md
│ ├── menus.md
│ ├── pages.md
│ ├── plugins.md
│ ├── posts.md
│ ├── settings.md
│ ├── themes.md
│ ├── user-center.md
│ └── users.md
├── docusaurus.config.js
├── i18n
└── zh-Hans
│ ├── code.json
│ ├── docusaurus-plugin-content-docs
│ ├── current.json
│ ├── version-2.16.json
│ ├── version-2.17.json
│ ├── version-2.18.json
│ ├── version-2.19.json
│ ├── version-2.20.json
│ └── version-2.21.json
│ └── docusaurus-theme-classic
│ ├── footer.json
│ └── navbar.json
├── index.js
├── netlify.toml
├── package.json
├── pnpm-lock.yaml
├── pnpm-workspace.yaml
├── sidebars.js
├── src
├── components
│ └── .gitkeep
├── css
│ └── custom.css
├── pages
│ └── versions.tsx
└── theme
│ └── SearchBar.js
├── static
├── .nojekyll
└── img
│ ├── adaptive2.png
│ ├── annotation-setting
│ └── annotation-setting-preview.png
│ ├── create-repository-for-hello-world-plugin.png
│ ├── developer-guide
│ ├── plugin
│ │ ├── basic
│ │ │ └── server
│ │ │ │ └── post-content-version-generation.png
│ │ ├── extension-points
│ │ │ └── ui
│ │ │ │ ├── attachment-list-item-operation-create.png
│ │ │ │ ├── attachment-selector-create.png
│ │ │ │ ├── backup-list-item-operation-create.png
│ │ │ │ ├── backup-tabs-create.png
│ │ │ │ ├── comment-list-item-operation-create.png
│ │ │ │ ├── comment-subject-ref-create.png
│ │ │ │ ├── dashboard-widgets.png
│ │ │ │ ├── default-editor-extension-bubble-menu.png
│ │ │ │ ├── default-editor-extension-drag.png
│ │ │ │ ├── default-editor-extension-slash-command.png
│ │ │ │ ├── default-editor-extension-toolbar.png
│ │ │ │ ├── default-editor-extension-toolbox.png
│ │ │ │ ├── editor-create.png
│ │ │ │ ├── plugin-installation-tabs-create.png
│ │ │ │ ├── plugin-list-item-field-create.png
│ │ │ │ ├── plugin-list-item-operation-create.png
│ │ │ │ ├── plugin-self-tabs-create.png
│ │ │ │ ├── post-list-item-field-create.png
│ │ │ │ ├── post-list-item-operation-create.png
│ │ │ │ ├── reply-list-item-operation-create.png
│ │ │ │ ├── single-page-list-item-field-create.png
│ │ │ │ ├── single-page-list-item-operation-create.png
│ │ │ │ ├── theme-list-item-operation-create.png
│ │ │ │ ├── theme-list-tabs-create.png
│ │ │ │ ├── uc-user-profile-tabs-create.png
│ │ │ │ └── user-detail-tabs-create.png
│ │ └── use-devtools.png
│ ├── rest-api
│ │ └── swagger-ui-overview.png
│ └── theme
│ │ ├── custom-login-layout.png
│ │ └── custom-signup-layout.png
│ ├── developer-run
│ ├── IntelliJ-IDEA-Profiles-Win.png
│ └── IntelliJ-IDEA-Profiles-macOS.png
│ ├── favicon-96x96.png
│ ├── formkit
│ ├── formkit-repeater.png
│ └── formkit-verify-form.png
│ ├── halo-data-export.png
│ ├── halo-plugin-hello-world-todo-swagger-api.png
│ ├── install
│ ├── 1panel
│ │ ├── 1panel.png
│ │ ├── app-store-halo.png
│ │ ├── halo-console.png
│ │ ├── halo-status.png
│ │ ├── install-halo.png
│ │ ├── new-site.png
│ │ ├── openresty-mysql.png
│ │ └── site.png
│ ├── alibab-cloud-computenest
│ │ ├── deploy_1.jpg
│ │ ├── deploy_2.jpg
│ │ └── halo-setup.jpg
│ ├── alibaba-cloud-market
│ │ ├── 1panel-add-domain.png
│ │ ├── 1panel-installed-apps.png
│ │ ├── 1panel-update-halo-external-url.png
│ │ ├── 1panel-upgrade-halo.png
│ │ ├── 1panel-website.png
│ │ ├── 1panel.png
│ │ ├── buy-1.png
│ │ ├── buy-2.png
│ │ ├── buy-3.jpeg
│ │ ├── buy-4.jpeg
│ │ ├── get-1panel-info.png
│ │ ├── instance.png
│ │ ├── iptables-1panel.jpeg
│ │ └── iptables-http.jpeg
│ └── tencent-cloud-lighthouse
│ │ ├── 1panel-info.png
│ │ ├── 1panel-login.png
│ │ ├── 1panel-overview.png
│ │ ├── application.png
│ │ ├── buy.png
│ │ ├── domain.png
│ │ ├── external-url.png
│ │ ├── firewall.png
│ │ ├── halo-setup.png
│ │ ├── installed-apps.png
│ │ ├── upgrade.png
│ │ └── websites.png
│ ├── migrate
│ ├── halo1.6-export.png
│ ├── halo2.0-migrate-plugin-1.png
│ ├── halo2.0-migrate-plugin-2.png
│ ├── halo2.0-migrate-plugin-3.png
│ └── halo2.0-migrate-plugin.png
│ ├── nginx-proxy-manager
│ ├── Nginx-Proxy-Manager-1.png
│ ├── Nginx-Proxy-Manager-2.png
│ ├── Nginx-Proxy-Manager-3.png
│ ├── Nginx-Proxy-Manager-4.png
│ ├── Nginx-Proxy-Manager-5.png
│ ├── Nginx-Proxy-Manager-6.png
│ ├── Nginx-Proxy-Manager-7.png
│ └── Nginx-Proxy-Manager-8.png
│ ├── plugin-hello-world.png
│ ├── setup
│ ├── setup-2.20.png
│ └── setup.png
│ ├── theme
│ └── reload-theme-config.png
│ ├── todo-ui.png
│ ├── todolist-in-list.png
│ ├── uc
│ ├── totp-config.png
│ ├── totp.png
│ ├── uc-entry.png
│ ├── uc-notification-preferences.png
│ ├── uc-notifications.png
│ ├── uc-pat-creation.png
│ ├── uc-pat-token.png
│ ├── uc-pat.png
│ ├── uc-posts.png
│ ├── uc-profile.png
│ └── user-devices.png
│ └── user-guide
│ ├── app-store
│ ├── app-store-license-generate-license-1.png
│ ├── app-store-license-generate-license-2.png
│ ├── app-store-license-generate-license-3.png
│ ├── app-store-license-manage.png
│ ├── app-store-license-offline-option.png
│ ├── app-store-license-offline.png
│ ├── app-store-license-status.png
│ ├── app-store-page.png
│ ├── app-store-pat.png
│ ├── app-store-plugin-license.png
│ ├── app-store-plugins.png
│ ├── app-store-themes.png
│ ├── app-store-upgrade-plugin.png
│ └── app-store-upgrade-theme.png
│ ├── attachments
│ ├── attachment-batch-operate.png
│ ├── attachment-detail.png
│ ├── attachment-group-add.png
│ ├── attachment-group-delete.png
│ ├── attachment-move.png
│ ├── attachment-policy-add-local.png
│ ├── attachment-policy-add.png
│ ├── attachment-policy-operate.png
│ ├── attachment-policy.png
│ ├── attachment-upload-multiple.png
│ └── attachment-upload.png
│ ├── backup
│ ├── backup-complete.png
│ ├── backup-running.png
│ ├── before-restore.png
│ ├── create-backup.png
│ ├── restore-complete.png
│ ├── restore-upload.png
│ ├── restore.png
│ └── waiting-restart.png
│ ├── common
│ ├── login.png
│ ├── signup.png
│ └── 控制台界面说明.png
│ ├── menus
│ ├── create-menu-item-2.png
│ ├── create-menu-item.png
│ ├── create-menu.png
│ ├── menu-item-operation.png
│ ├── menu-operation.png
│ ├── menus.png
│ └── sort.gif
│ ├── pages
│ └── page-about.png
│ ├── plugins
│ ├── extension-point-settings-entry.png
│ ├── extension-point-settings.png
│ ├── plugin-install.png
│ ├── plugin-setting.png
│ ├── plugin-switch.png
│ └── plugin-uninstall.png
│ ├── posts
│ ├── category-create-2.png
│ ├── category-create.png
│ ├── category-move.gif
│ ├── post-edit.png
│ ├── post-setting.png
│ ├── tag-create.png
│ └── tag-list.png
│ ├── settings
│ └── setting-basic.png
│ ├── themes
│ ├── theme-install-alt.png
│ ├── theme-install.png
│ ├── theme-preview.png
│ ├── theme-setting.png
│ └── theme-uninstall.png
│ ├── user-permission.png
│ └── users
│ ├── auth-providers-2.20+.png
│ ├── auth-providers-entry.png
│ ├── auth-providers.png
│ ├── role-creation.png
│ ├── role-fork.png
│ ├── role-management.png
│ ├── user-operate.png
│ ├── user-setting-2.20+.png
│ └── user-setting.png
├── versioned_docs
├── version-2.16
│ ├── about.md
│ ├── contribution
│ │ ├── issue.md
│ │ ├── pr.md
│ │ └── sponsor.md
│ ├── developer-guide
│ │ ├── annotations-form.md
│ │ ├── core
│ │ │ ├── build.md
│ │ │ ├── code-style.md
│ │ │ ├── prepare.md
│ │ │ ├── run.md
│ │ │ └── structure.md
│ │ ├── form-schema.md
│ │ ├── plugin
│ │ │ ├── api-reference
│ │ │ │ ├── server
│ │ │ │ │ ├── extension-client.md
│ │ │ │ │ ├── extension-points
│ │ │ │ │ │ ├── additional-webfilter.md
│ │ │ │ │ │ ├── attachment.md
│ │ │ │ │ │ ├── authentication-webfilter.md
│ │ │ │ │ │ ├── comment-subject.md
│ │ │ │ │ │ ├── comment-widget.md
│ │ │ │ │ │ ├── index.md
│ │ │ │ │ │ ├── notifier.md
│ │ │ │ │ │ ├── post-content.md
│ │ │ │ │ │ ├── singlepage-content.md
│ │ │ │ │ │ ├── template-head-processor.md
│ │ │ │ │ │ └── username-password-authentication-manager.md
│ │ │ │ │ ├── extension.md
│ │ │ │ │ ├── finder-for-theme.md
│ │ │ │ │ ├── reconciler.md
│ │ │ │ │ ├── reverseproxy.md
│ │ │ │ │ ├── role-template.md
│ │ │ │ │ ├── template-for-theme.md
│ │ │ │ │ └── websocket.md
│ │ │ │ └── ui
│ │ │ │ │ ├── components
│ │ │ │ │ ├── annotations-form.md
│ │ │ │ │ ├── attachment-file-type-icon.md
│ │ │ │ │ ├── attachment-selector-modal.md
│ │ │ │ │ ├── filter-clean-button.md
│ │ │ │ │ ├── filter-dropdown.md
│ │ │ │ │ ├── has-permission.md
│ │ │ │ │ ├── index.md
│ │ │ │ │ ├── search-input.md
│ │ │ │ │ ├── uppy-upload.md
│ │ │ │ │ ├── v-codemirror.md
│ │ │ │ │ ├── v-permission.md
│ │ │ │ │ └── v-tooltip.md
│ │ │ │ │ ├── extension-points
│ │ │ │ │ ├── attachment-list-item-operation-create.md
│ │ │ │ │ ├── attachment-selector-create.md
│ │ │ │ │ ├── backup-list-item-operation-create.md
│ │ │ │ │ ├── backup-tabs-create.md
│ │ │ │ │ ├── comment-subject-ref-create.md
│ │ │ │ │ ├── default-editor-extension-create.md
│ │ │ │ │ ├── editor-create.md
│ │ │ │ │ ├── index.md
│ │ │ │ │ ├── interface
│ │ │ │ │ │ ├── Attachment.md
│ │ │ │ │ │ ├── ListedPost.md
│ │ │ │ │ │ ├── OperationItem.md
│ │ │ │ │ │ ├── Plugin.md
│ │ │ │ │ │ └── Theme.md
│ │ │ │ │ ├── plugin-installation-tabs-create.md
│ │ │ │ │ ├── plugin-list-item-field-create.md
│ │ │ │ │ ├── plugin-list-item-operation-create.md
│ │ │ │ │ ├── plugin-self-tabs-create.md
│ │ │ │ │ ├── post-list-item-field-create.md
│ │ │ │ │ ├── post-list-item-operation-create.md
│ │ │ │ │ ├── theme-list-item-operation-create.md
│ │ │ │ │ ├── theme-list-tabs-create.md
│ │ │ │ │ ├── uc-user-profile-tabs-create.md
│ │ │ │ │ └── user-detail-tabs-create.md
│ │ │ │ │ └── route.md
│ │ │ ├── appendices.md
│ │ │ ├── basics
│ │ │ │ ├── devtools.md
│ │ │ │ ├── framework.md
│ │ │ │ ├── manifest.md
│ │ │ │ ├── server
│ │ │ │ │ ├── lifecycle.md
│ │ │ │ │ └── object-management.md
│ │ │ │ ├── structure.md
│ │ │ │ └── ui
│ │ │ │ │ ├── entry.md
│ │ │ │ │ └── intro.md
│ │ │ ├── examples
│ │ │ │ └── todolist.md
│ │ │ ├── hello-world.md
│ │ │ ├── introduction.md
│ │ │ ├── prepare.md
│ │ │ └── publish.md
│ │ └── theme
│ │ │ ├── annotations.md
│ │ │ ├── code-snippets.md
│ │ │ ├── config.md
│ │ │ ├── finder-apis.md
│ │ │ ├── finder-apis
│ │ │ ├── category.md
│ │ │ ├── comment.md
│ │ │ ├── contributor.md
│ │ │ ├── menu.md
│ │ │ ├── plugin.md
│ │ │ ├── post.md
│ │ │ ├── single-page.md
│ │ │ ├── site-stats.md
│ │ │ ├── tag.md
│ │ │ └── theme.md
│ │ │ ├── global-variables.md
│ │ │ ├── prepare.md
│ │ │ ├── settings.md
│ │ │ ├── static-resources.md
│ │ │ ├── structure.md
│ │ │ ├── template-route-mapping.md
│ │ │ ├── template-tag.md
│ │ │ ├── template-variables.md
│ │ │ ├── template-variables
│ │ │ ├── archives.md
│ │ │ ├── author.md
│ │ │ ├── categories.md
│ │ │ ├── category.md
│ │ │ ├── error.md
│ │ │ ├── index_.md
│ │ │ ├── page.md
│ │ │ ├── post.md
│ │ │ ├── tag.md
│ │ │ └── tags.md
│ │ │ └── vo
│ │ │ ├── _CategoryTreeVo.md
│ │ │ ├── _CategoryVo.md
│ │ │ ├── _CommentVo.md
│ │ │ ├── _ContentVo.md
│ │ │ ├── _ContributorVo.md
│ │ │ ├── _ListedPostVo.md
│ │ │ ├── _ListedSinglePageVo.md
│ │ │ ├── _MenuItemVo.md
│ │ │ ├── _MenuVo.md
│ │ │ ├── _PostVo.md
│ │ │ ├── _ReplyVo.md
│ │ │ ├── _SinglePageVo.md
│ │ │ ├── _SiteSettingVo.md
│ │ │ ├── _TagVo.md
│ │ │ ├── _ThemeVo.md
│ │ │ └── _UserVo.md
│ ├── getting-started
│ │ ├── first-post.md
│ │ ├── install
│ │ │ ├── 1panel.md
│ │ │ ├── cloud
│ │ │ │ └── tencent-cloud-lighthouse.md
│ │ │ ├── docker-compose.md
│ │ │ ├── docker.md
│ │ │ ├── helm.md
│ │ │ ├── jar-file.md
│ │ │ ├── other
│ │ │ │ ├── nginxproxymanager.md
│ │ │ │ └── traefik.md
│ │ │ ├── podman.md
│ │ │ └── slots
│ │ │ │ ├── _docker-args.md
│ │ │ │ └── _docker-registry-list.md
│ │ ├── migrate-from-1.x.md
│ │ ├── prepare.md
│ │ └── setup.md
│ ├── intro.md
│ └── user-guide
│ │ ├── app-store.md
│ │ ├── attachments.md
│ │ ├── backup.md
│ │ ├── common.md
│ │ ├── faq.md
│ │ ├── menus.md
│ │ ├── pages.md
│ │ ├── plugins.md
│ │ ├── posts.md
│ │ ├── settings.md
│ │ ├── themes.md
│ │ ├── user-center.md
│ │ └── users.md
├── version-2.17
│ ├── about.md
│ ├── contribution
│ │ ├── issue.md
│ │ ├── pr.md
│ │ └── sponsor.md
│ ├── developer-guide
│ │ ├── annotations-form.md
│ │ ├── core
│ │ │ ├── build.md
│ │ │ ├── code-style.md
│ │ │ ├── prepare.md
│ │ │ ├── run.md
│ │ │ └── structure.md
│ │ ├── form-schema.md
│ │ ├── plugin
│ │ │ ├── api-reference
│ │ │ │ ├── server
│ │ │ │ │ ├── extension-client.md
│ │ │ │ │ ├── extension-points
│ │ │ │ │ │ ├── additional-webfilter.md
│ │ │ │ │ │ ├── attachment.md
│ │ │ │ │ │ ├── authentication-webfilter.md
│ │ │ │ │ │ ├── comment-subject.md
│ │ │ │ │ │ ├── comment-widget.md
│ │ │ │ │ │ ├── index.md
│ │ │ │ │ │ ├── notifier.md
│ │ │ │ │ │ ├── post-content.md
│ │ │ │ │ │ ├── singlepage-content.md
│ │ │ │ │ │ ├── template-footer-processor.md
│ │ │ │ │ │ ├── template-head-processor.md
│ │ │ │ │ │ └── username-password-authentication-manager.md
│ │ │ │ │ ├── extension.md
│ │ │ │ │ ├── finder-for-theme.md
│ │ │ │ │ ├── login-handler-enhancer.md
│ │ │ │ │ ├── reconciler.md
│ │ │ │ │ ├── reverseproxy.md
│ │ │ │ │ ├── role-template.md
│ │ │ │ │ ├── setting-fetcher.md
│ │ │ │ │ ├── template-for-theme.md
│ │ │ │ │ └── websocket.md
│ │ │ │ └── ui
│ │ │ │ │ ├── api-request.md
│ │ │ │ │ ├── components
│ │ │ │ │ ├── annotations-form.md
│ │ │ │ │ ├── attachment-file-type-icon.md
│ │ │ │ │ ├── attachment-selector-modal.md
│ │ │ │ │ ├── filter-clean-button.md
│ │ │ │ │ ├── filter-dropdown.md
│ │ │ │ │ ├── has-permission.md
│ │ │ │ │ ├── index.md
│ │ │ │ │ ├── plugin-detail-modal.md
│ │ │ │ │ ├── search-input.md
│ │ │ │ │ ├── uppy-upload.md
│ │ │ │ │ ├── v-codemirror.md
│ │ │ │ │ ├── v-permission.md
│ │ │ │ │ └── v-tooltip.md
│ │ │ │ │ ├── extension-points
│ │ │ │ │ ├── attachment-list-item-operation-create.md
│ │ │ │ │ ├── attachment-selector-create.md
│ │ │ │ │ ├── backup-list-item-operation-create.md
│ │ │ │ │ ├── backup-tabs-create.md
│ │ │ │ │ ├── comment-subject-ref-create.md
│ │ │ │ │ ├── default-editor-extension-create.md
│ │ │ │ │ ├── editor-create.md
│ │ │ │ │ ├── index.md
│ │ │ │ │ ├── interface
│ │ │ │ │ │ ├── Attachment.md
│ │ │ │ │ │ ├── ListedPost.md
│ │ │ │ │ │ ├── OperationItem.md
│ │ │ │ │ │ ├── Plugin.md
│ │ │ │ │ │ └── Theme.md
│ │ │ │ │ ├── plugin-installation-tabs-create.md
│ │ │ │ │ ├── plugin-list-item-field-create.md
│ │ │ │ │ ├── plugin-list-item-operation-create.md
│ │ │ │ │ ├── plugin-self-tabs-create.md
│ │ │ │ │ ├── post-list-item-field-create.md
│ │ │ │ │ ├── post-list-item-operation-create.md
│ │ │ │ │ ├── theme-list-item-operation-create.md
│ │ │ │ │ ├── theme-list-tabs-create.md
│ │ │ │ │ ├── uc-user-profile-tabs-create.md
│ │ │ │ │ └── user-detail-tabs-create.md
│ │ │ │ │ └── route.md
│ │ │ ├── appendices.md
│ │ │ ├── basics
│ │ │ │ ├── devtools.md
│ │ │ │ ├── framework.md
│ │ │ │ ├── manifest.md
│ │ │ │ ├── server
│ │ │ │ │ ├── lifecycle.md
│ │ │ │ │ └── object-management.md
│ │ │ │ ├── structure.md
│ │ │ │ └── ui
│ │ │ │ │ ├── entry.md
│ │ │ │ │ └── intro.md
│ │ │ ├── examples
│ │ │ │ └── todolist.md
│ │ │ ├── hello-world.md
│ │ │ ├── introduction.md
│ │ │ ├── prepare.md
│ │ │ └── publish.md
│ │ └── theme
│ │ │ ├── annotations.md
│ │ │ ├── code-snippets.md
│ │ │ ├── config.md
│ │ │ ├── finder-apis.md
│ │ │ ├── finder-apis
│ │ │ ├── category.md
│ │ │ ├── comment.md
│ │ │ ├── contributor.md
│ │ │ ├── menu.md
│ │ │ ├── plugin.md
│ │ │ ├── post.md
│ │ │ ├── single-page.md
│ │ │ ├── site-stats.md
│ │ │ ├── tag.md
│ │ │ └── theme.md
│ │ │ ├── global-variables.md
│ │ │ ├── prepare.md
│ │ │ ├── settings.md
│ │ │ ├── static-resources.md
│ │ │ ├── structure.md
│ │ │ ├── template-route-mapping.md
│ │ │ ├── template-tag.md
│ │ │ ├── template-variables.md
│ │ │ ├── template-variables
│ │ │ ├── archives.md
│ │ │ ├── author.md
│ │ │ ├── categories.md
│ │ │ ├── category.md
│ │ │ ├── error.md
│ │ │ ├── index_.md
│ │ │ ├── page.md
│ │ │ ├── post.md
│ │ │ ├── tag.md
│ │ │ └── tags.md
│ │ │ └── vo
│ │ │ ├── _CategoryTreeVo.md
│ │ │ ├── _CategoryVo.md
│ │ │ ├── _CommentVo.md
│ │ │ ├── _ContentVo.md
│ │ │ ├── _ContributorVo.md
│ │ │ ├── _ListedPostVo.md
│ │ │ ├── _ListedSinglePageVo.md
│ │ │ ├── _MenuItemVo.md
│ │ │ ├── _MenuVo.md
│ │ │ ├── _PostVo.md
│ │ │ ├── _ReplyVo.md
│ │ │ ├── _SinglePageVo.md
│ │ │ ├── _SiteSettingVo.md
│ │ │ ├── _TagVo.md
│ │ │ ├── _ThemeVo.md
│ │ │ └── _UserVo.md
│ ├── getting-started
│ │ ├── first-post.md
│ │ ├── install
│ │ │ ├── 1panel.md
│ │ │ ├── cloud
│ │ │ │ └── tencent-cloud-lighthouse.md
│ │ │ ├── docker-compose.md
│ │ │ ├── docker.md
│ │ │ ├── helm.md
│ │ │ ├── jar-file.md
│ │ │ ├── offline.md
│ │ │ ├── other
│ │ │ │ ├── nginxproxymanager.md
│ │ │ │ └── traefik.md
│ │ │ ├── podman.md
│ │ │ └── slots
│ │ │ │ ├── _docker-args.md
│ │ │ │ └── _docker-registry-list.md
│ │ ├── migrate-from-1.x.md
│ │ ├── prepare.md
│ │ └── setup.md
│ ├── intro.md
│ └── user-guide
│ │ ├── app-store.md
│ │ ├── attachments.md
│ │ ├── backup.md
│ │ ├── common.md
│ │ ├── faq.md
│ │ ├── menus.md
│ │ ├── pages.md
│ │ ├── plugins.md
│ │ ├── posts.md
│ │ ├── settings.md
│ │ ├── themes.md
│ │ ├── user-center.md
│ │ └── users.md
├── version-2.18
│ ├── about.md
│ ├── contribution
│ │ ├── issue.md
│ │ ├── pr.md
│ │ └── sponsor.md
│ ├── developer-guide
│ │ ├── annotations-form.md
│ │ ├── core
│ │ │ ├── build.md
│ │ │ ├── code-style.md
│ │ │ ├── prepare.md
│ │ │ ├── run.md
│ │ │ └── structure.md
│ │ ├── form-schema.md
│ │ ├── plugin
│ │ │ ├── api-reference
│ │ │ │ ├── server
│ │ │ │ │ ├── extension-client.md
│ │ │ │ │ ├── extension-getter.md
│ │ │ │ │ ├── extension-points
│ │ │ │ │ │ ├── additional-webfilter.md
│ │ │ │ │ │ ├── attachment.md
│ │ │ │ │ │ ├── authentication-webfilter.md
│ │ │ │ │ │ ├── comment-subject.md
│ │ │ │ │ │ ├── comment-widget.md
│ │ │ │ │ │ ├── index.md
│ │ │ │ │ │ ├── notifier.md
│ │ │ │ │ │ ├── post-content.md
│ │ │ │ │ │ ├── singlepage-content.md
│ │ │ │ │ │ ├── template-footer-processor.md
│ │ │ │ │ │ ├── template-head-processor.md
│ │ │ │ │ │ └── username-password-authentication-manager.md
│ │ │ │ │ ├── extension.md
│ │ │ │ │ ├── finder-for-theme.md
│ │ │ │ │ ├── login-handler-enhancer.md
│ │ │ │ │ ├── reconciler.md
│ │ │ │ │ ├── reverseproxy.md
│ │ │ │ │ ├── role-template.md
│ │ │ │ │ ├── setting-fetcher.md
│ │ │ │ │ ├── template-for-theme.md
│ │ │ │ │ └── websocket.md
│ │ │ │ └── ui
│ │ │ │ │ ├── api-request.md
│ │ │ │ │ ├── components
│ │ │ │ │ ├── annotations-form.md
│ │ │ │ │ ├── attachment-file-type-icon.md
│ │ │ │ │ ├── attachment-selector-modal.md
│ │ │ │ │ ├── filter-clean-button.md
│ │ │ │ │ ├── filter-dropdown.md
│ │ │ │ │ ├── has-permission.md
│ │ │ │ │ ├── index.md
│ │ │ │ │ ├── plugin-detail-modal.md
│ │ │ │ │ ├── search-input.md
│ │ │ │ │ ├── uppy-upload.md
│ │ │ │ │ ├── v-codemirror.md
│ │ │ │ │ ├── v-permission.md
│ │ │ │ │ └── v-tooltip.md
│ │ │ │ │ ├── extension-points
│ │ │ │ │ ├── attachment-list-item-operation-create.md
│ │ │ │ │ ├── attachment-selector-create.md
│ │ │ │ │ ├── backup-list-item-operation-create.md
│ │ │ │ │ ├── backup-tabs-create.md
│ │ │ │ │ ├── comment-subject-ref-create.md
│ │ │ │ │ ├── default-editor-extension-create.md
│ │ │ │ │ ├── editor-create.md
│ │ │ │ │ ├── index.md
│ │ │ │ │ ├── interface
│ │ │ │ │ │ ├── Attachment.md
│ │ │ │ │ │ ├── ListedPost.md
│ │ │ │ │ │ ├── OperationItem.md
│ │ │ │ │ │ ├── Plugin.md
│ │ │ │ │ │ └── Theme.md
│ │ │ │ │ ├── plugin-installation-tabs-create.md
│ │ │ │ │ ├── plugin-list-item-field-create.md
│ │ │ │ │ ├── plugin-list-item-operation-create.md
│ │ │ │ │ ├── plugin-self-tabs-create.md
│ │ │ │ │ ├── post-list-item-field-create.md
│ │ │ │ │ ├── post-list-item-operation-create.md
│ │ │ │ │ ├── theme-list-item-operation-create.md
│ │ │ │ │ ├── theme-list-tabs-create.md
│ │ │ │ │ ├── uc-user-profile-tabs-create.md
│ │ │ │ │ └── user-detail-tabs-create.md
│ │ │ │ │ └── route.md
│ │ │ ├── appendices.md
│ │ │ ├── basics
│ │ │ │ ├── devtools.md
│ │ │ │ ├── framework.md
│ │ │ │ ├── manifest.md
│ │ │ │ ├── server
│ │ │ │ │ ├── lifecycle.md
│ │ │ │ │ └── object-management.md
│ │ │ │ ├── structure.md
│ │ │ │ └── ui
│ │ │ │ │ ├── entry.md
│ │ │ │ │ └── intro.md
│ │ │ ├── examples
│ │ │ │ └── todolist.md
│ │ │ ├── hello-world.md
│ │ │ ├── introduction.md
│ │ │ ├── prepare.md
│ │ │ └── publish.md
│ │ └── theme
│ │ │ ├── annotations.md
│ │ │ ├── code-snippets.md
│ │ │ ├── config.md
│ │ │ ├── finder-apis.md
│ │ │ ├── finder-apis
│ │ │ ├── category.md
│ │ │ ├── comment.md
│ │ │ ├── contributor.md
│ │ │ ├── menu.md
│ │ │ ├── plugin.md
│ │ │ ├── post.md
│ │ │ ├── single-page.md
│ │ │ ├── site-stats.md
│ │ │ ├── tag.md
│ │ │ └── theme.md
│ │ │ ├── global-variables.md
│ │ │ ├── prepare.md
│ │ │ ├── settings.md
│ │ │ ├── static-resources.md
│ │ │ ├── structure.md
│ │ │ ├── template-route-mapping.md
│ │ │ ├── template-tag.md
│ │ │ ├── template-variables.md
│ │ │ ├── template-variables
│ │ │ ├── archives.md
│ │ │ ├── author.md
│ │ │ ├── categories.md
│ │ │ ├── category.md
│ │ │ ├── error.md
│ │ │ ├── index_.md
│ │ │ ├── page.md
│ │ │ ├── post.md
│ │ │ ├── tag.md
│ │ │ └── tags.md
│ │ │ └── vo
│ │ │ ├── _CategoryTreeVo.md
│ │ │ ├── _CategoryVo.md
│ │ │ ├── _CommentVo.md
│ │ │ ├── _ContentVo.md
│ │ │ ├── _ContributorVo.md
│ │ │ ├── _ListedPostVo.md
│ │ │ ├── _ListedSinglePageVo.md
│ │ │ ├── _MenuItemVo.md
│ │ │ ├── _MenuVo.md
│ │ │ ├── _PostVo.md
│ │ │ ├── _ReplyVo.md
│ │ │ ├── _SinglePageVo.md
│ │ │ ├── _SiteSettingVo.md
│ │ │ ├── _TagVo.md
│ │ │ ├── _ThemeVo.md
│ │ │ └── _UserVo.md
│ ├── getting-started
│ │ ├── first-post.md
│ │ ├── install
│ │ │ ├── 1panel.md
│ │ │ ├── cloud
│ │ │ │ └── tencent-cloud-lighthouse.md
│ │ │ ├── docker-compose.md
│ │ │ ├── docker.md
│ │ │ ├── helm.md
│ │ │ ├── jar-file.md
│ │ │ ├── offline.md
│ │ │ ├── other
│ │ │ │ ├── nginxproxymanager.md
│ │ │ │ └── traefik.md
│ │ │ ├── podman.md
│ │ │ └── slots
│ │ │ │ ├── _docker-args.md
│ │ │ │ └── _docker-registry-list.md
│ │ ├── migrate-from-1.x.md
│ │ ├── prepare.md
│ │ └── setup.md
│ ├── intro.md
│ └── user-guide
│ │ ├── app-store.md
│ │ ├── attachments.md
│ │ ├── backup.md
│ │ ├── common.md
│ │ ├── faq.md
│ │ ├── menus.md
│ │ ├── pages.md
│ │ ├── plugins.md
│ │ ├── posts.md
│ │ ├── settings.md
│ │ ├── themes.md
│ │ ├── user-center.md
│ │ └── users.md
├── version-2.19
│ ├── about.md
│ ├── contribution
│ │ ├── issue.md
│ │ ├── pr.md
│ │ └── sponsor.md
│ ├── developer-guide
│ │ ├── annotations-form.md
│ │ ├── core
│ │ │ ├── build.md
│ │ │ ├── code-style.md
│ │ │ ├── prepare.md
│ │ │ ├── run.md
│ │ │ └── structure.md
│ │ ├── form-schema.md
│ │ ├── plugin
│ │ │ ├── api-reference
│ │ │ │ ├── server
│ │ │ │ │ ├── extension-client.md
│ │ │ │ │ ├── extension-getter.md
│ │ │ │ │ ├── extension-points
│ │ │ │ │ │ ├── additional-webfilter.md
│ │ │ │ │ │ ├── attachment.md
│ │ │ │ │ │ ├── authentication-webfilter.md
│ │ │ │ │ │ ├── comment-subject.md
│ │ │ │ │ │ ├── comment-widget.md
│ │ │ │ │ │ ├── index.md
│ │ │ │ │ │ ├── notifier.md
│ │ │ │ │ │ ├── post-content.md
│ │ │ │ │ │ ├── singlepage-content.md
│ │ │ │ │ │ ├── template-footer-processor.md
│ │ │ │ │ │ ├── template-head-processor.md
│ │ │ │ │ │ └── username-password-authentication-manager.md
│ │ │ │ │ ├── extension.md
│ │ │ │ │ ├── finder-for-theme.md
│ │ │ │ │ ├── login-handler-enhancer.md
│ │ │ │ │ ├── reconciler.md
│ │ │ │ │ ├── reverseproxy.md
│ │ │ │ │ ├── role-template.md
│ │ │ │ │ ├── setting-fetcher.md
│ │ │ │ │ ├── template-for-theme.md
│ │ │ │ │ └── websocket.md
│ │ │ │ └── ui
│ │ │ │ │ ├── api-request.md
│ │ │ │ │ ├── components
│ │ │ │ │ ├── annotations-form.md
│ │ │ │ │ ├── attachment-file-type-icon.md
│ │ │ │ │ ├── attachment-selector-modal.md
│ │ │ │ │ ├── filter-clean-button.md
│ │ │ │ │ ├── filter-dropdown.md
│ │ │ │ │ ├── has-permission.md
│ │ │ │ │ ├── index.md
│ │ │ │ │ ├── plugin-detail-modal.md
│ │ │ │ │ ├── search-input.md
│ │ │ │ │ ├── uppy-upload.md
│ │ │ │ │ ├── v-codemirror.md
│ │ │ │ │ ├── v-permission.md
│ │ │ │ │ └── v-tooltip.md
│ │ │ │ │ ├── extension-points
│ │ │ │ │ ├── attachment-list-item-operation-create.md
│ │ │ │ │ ├── attachment-selector-create.md
│ │ │ │ │ ├── backup-list-item-operation-create.md
│ │ │ │ │ ├── backup-tabs-create.md
│ │ │ │ │ ├── comment-list-item-operation-create.md
│ │ │ │ │ ├── comment-subject-ref-create.md
│ │ │ │ │ ├── default-editor-extension-create.md
│ │ │ │ │ ├── editor-create.md
│ │ │ │ │ ├── index.md
│ │ │ │ │ ├── interface
│ │ │ │ │ │ ├── Attachment.md
│ │ │ │ │ │ ├── ListedComment.md
│ │ │ │ │ │ ├── ListedPost.md
│ │ │ │ │ │ ├── ListedReply.md
│ │ │ │ │ │ ├── OperationItem.md
│ │ │ │ │ │ ├── Plugin.md
│ │ │ │ │ │ └── Theme.md
│ │ │ │ │ ├── plugin-installation-tabs-create.md
│ │ │ │ │ ├── plugin-list-item-field-create.md
│ │ │ │ │ ├── plugin-list-item-operation-create.md
│ │ │ │ │ ├── plugin-self-tabs-create.md
│ │ │ │ │ ├── post-list-item-field-create.md
│ │ │ │ │ ├── post-list-item-operation-create.md
│ │ │ │ │ ├── reply-list-item-operation-create.md
│ │ │ │ │ ├── theme-list-item-operation-create.md
│ │ │ │ │ ├── theme-list-tabs-create.md
│ │ │ │ │ ├── uc-user-profile-tabs-create.md
│ │ │ │ │ └── user-detail-tabs-create.md
│ │ │ │ │ └── route.md
│ │ │ ├── appendices.md
│ │ │ ├── basics
│ │ │ │ ├── devtools.md
│ │ │ │ ├── framework.md
│ │ │ │ ├── manifest.md
│ │ │ │ ├── server
│ │ │ │ │ ├── lifecycle.md
│ │ │ │ │ └── object-management.md
│ │ │ │ ├── structure.md
│ │ │ │ └── ui
│ │ │ │ │ ├── entry.md
│ │ │ │ │ └── intro.md
│ │ │ ├── examples
│ │ │ │ └── todolist.md
│ │ │ ├── hello-world.md
│ │ │ ├── introduction.md
│ │ │ ├── prepare.md
│ │ │ └── publish.md
│ │ ├── restful-api
│ │ │ ├── api-client.md
│ │ │ └── introduction.md
│ │ └── theme
│ │ │ ├── annotations.md
│ │ │ ├── code-snippets.md
│ │ │ ├── config.md
│ │ │ ├── finder-apis.md
│ │ │ ├── finder-apis
│ │ │ ├── category.md
│ │ │ ├── comment.md
│ │ │ ├── contributor.md
│ │ │ ├── menu.md
│ │ │ ├── plugin.md
│ │ │ ├── post.md
│ │ │ ├── single-page.md
│ │ │ ├── site-stats.md
│ │ │ ├── tag.md
│ │ │ └── theme.md
│ │ │ ├── global-variables.md
│ │ │ ├── image-optimization.md
│ │ │ ├── prepare.md
│ │ │ ├── settings.md
│ │ │ ├── static-resources.md
│ │ │ ├── structure.md
│ │ │ ├── template-route-mapping.md
│ │ │ ├── template-tag.md
│ │ │ ├── template-variables.md
│ │ │ ├── template-variables
│ │ │ ├── archives.md
│ │ │ ├── author.md
│ │ │ ├── categories.md
│ │ │ ├── category.md
│ │ │ ├── error.md
│ │ │ ├── index_.md
│ │ │ ├── page.md
│ │ │ ├── post.md
│ │ │ ├── tag.md
│ │ │ └── tags.md
│ │ │ └── vo
│ │ │ ├── _CategoryTreeVo.md
│ │ │ ├── _CategoryVo.md
│ │ │ ├── _CommentVo.md
│ │ │ ├── _ContentVo.md
│ │ │ ├── _ContributorVo.md
│ │ │ ├── _ListedPostVo.md
│ │ │ ├── _ListedSinglePageVo.md
│ │ │ ├── _MenuItemVo.md
│ │ │ ├── _MenuVo.md
│ │ │ ├── _PostVo.md
│ │ │ ├── _ReplyVo.md
│ │ │ ├── _SinglePageVo.md
│ │ │ ├── _SiteSettingVo.md
│ │ │ ├── _TagVo.md
│ │ │ ├── _ThemeVo.md
│ │ │ └── _UserVo.md
│ ├── getting-started
│ │ ├── first-post.md
│ │ ├── install
│ │ │ ├── 1panel.md
│ │ │ ├── cloud
│ │ │ │ ├── alibaba-cloud-computenest.md
│ │ │ │ └── tencent-cloud-lighthouse.md
│ │ │ ├── docker-compose.md
│ │ │ ├── docker.md
│ │ │ ├── helm.md
│ │ │ ├── jar-file.md
│ │ │ ├── offline.md
│ │ │ ├── other
│ │ │ │ ├── nginxproxymanager.md
│ │ │ │ └── traefik.md
│ │ │ ├── podman.md
│ │ │ └── slots
│ │ │ │ ├── _docker-args.md
│ │ │ │ └── _docker-registry-list.md
│ │ ├── migrate-from-1.x.md
│ │ ├── prepare.md
│ │ └── setup.md
│ ├── intro.md
│ └── user-guide
│ │ ├── app-store.md
│ │ ├── attachments.md
│ │ ├── backup.md
│ │ ├── common.md
│ │ ├── faq.md
│ │ ├── menus.md
│ │ ├── pages.md
│ │ ├── plugins.md
│ │ ├── posts.md
│ │ ├── settings.md
│ │ ├── themes.md
│ │ ├── user-center.md
│ │ └── users.md
├── version-2.20
│ ├── about.md
│ ├── contribution
│ │ ├── issue.md
│ │ ├── pr.md
│ │ └── sponsor.md
│ ├── developer-guide
│ │ ├── annotations-form.md
│ │ ├── core
│ │ │ ├── build.md
│ │ │ ├── code-style.md
│ │ │ ├── framework.md
│ │ │ ├── prepare.md
│ │ │ ├── run.md
│ │ │ └── structure.md
│ │ ├── form-schema.md
│ │ ├── plugin
│ │ │ ├── api-reference
│ │ │ │ ├── server
│ │ │ │ │ ├── extension-client.md
│ │ │ │ │ ├── extension-getter.md
│ │ │ │ │ ├── extension.md
│ │ │ │ │ ├── finder-for-theme.md
│ │ │ │ │ ├── login-handler-enhancer.md
│ │ │ │ │ ├── notification.md
│ │ │ │ │ ├── reconciler.md
│ │ │ │ │ ├── reverseproxy.md
│ │ │ │ │ ├── setting-fetcher.md
│ │ │ │ │ ├── template-for-theme.md
│ │ │ │ │ └── websocket.md
│ │ │ │ └── ui
│ │ │ │ │ ├── api-request.md
│ │ │ │ │ ├── components
│ │ │ │ │ ├── annotations-form.md
│ │ │ │ │ ├── attachment-file-type-icon.md
│ │ │ │ │ ├── attachment-selector-modal.md
│ │ │ │ │ ├── filter-clean-button.md
│ │ │ │ │ ├── filter-dropdown.md
│ │ │ │ │ ├── has-permission.md
│ │ │ │ │ ├── index.md
│ │ │ │ │ ├── plugin-detail-modal.md
│ │ │ │ │ ├── search-input.md
│ │ │ │ │ ├── uppy-upload.md
│ │ │ │ │ ├── v-codemirror.md
│ │ │ │ │ ├── v-permission.md
│ │ │ │ │ └── v-tooltip.md
│ │ │ │ │ └── route.md
│ │ │ ├── appendices.md
│ │ │ ├── basics
│ │ │ │ ├── devtools.md
│ │ │ │ ├── manifest.md
│ │ │ │ ├── server
│ │ │ │ │ ├── lifecycle.md
│ │ │ │ │ └── object-management.md
│ │ │ │ ├── structure.md
│ │ │ │ └── ui
│ │ │ │ │ ├── entry.md
│ │ │ │ │ └── intro.md
│ │ │ ├── examples
│ │ │ │ └── todolist.md
│ │ │ ├── extension-points
│ │ │ │ ├── server
│ │ │ │ │ ├── additional-webfilter.md
│ │ │ │ │ ├── attachment.md
│ │ │ │ │ ├── authentication-webfilter.md
│ │ │ │ │ ├── comment-subject.md
│ │ │ │ │ ├── comment-widget.md
│ │ │ │ │ ├── index.md
│ │ │ │ │ ├── notifier.md
│ │ │ │ │ ├── post-content.md
│ │ │ │ │ ├── singlepage-content.md
│ │ │ │ │ ├── template-footer-processor.md
│ │ │ │ │ ├── template-head-processor.md
│ │ │ │ │ └── username-password-authentication-manager.md
│ │ │ │ └── ui
│ │ │ │ │ ├── attachment-list-item-operation-create.md
│ │ │ │ │ ├── attachment-selector-create.md
│ │ │ │ │ ├── backup-list-item-operation-create.md
│ │ │ │ │ ├── backup-tabs-create.md
│ │ │ │ │ ├── comment-list-item-operation-create.md
│ │ │ │ │ ├── comment-subject-ref-create.md
│ │ │ │ │ ├── default-editor-extension-create.md
│ │ │ │ │ ├── editor-create.md
│ │ │ │ │ ├── index.md
│ │ │ │ │ ├── interface
│ │ │ │ │ ├── Attachment.md
│ │ │ │ │ ├── ListedComment.md
│ │ │ │ │ ├── ListedPost.md
│ │ │ │ │ ├── ListedReply.md
│ │ │ │ │ ├── OperationItem.md
│ │ │ │ │ ├── Plugin.md
│ │ │ │ │ └── Theme.md
│ │ │ │ │ ├── plugin-installation-tabs-create.md
│ │ │ │ │ ├── plugin-list-item-field-create.md
│ │ │ │ │ ├── plugin-list-item-operation-create.md
│ │ │ │ │ ├── plugin-self-tabs-create.md
│ │ │ │ │ ├── post-list-item-field-create.md
│ │ │ │ │ ├── post-list-item-operation-create.md
│ │ │ │ │ ├── reply-list-item-operation-create.md
│ │ │ │ │ ├── theme-list-item-operation-create.md
│ │ │ │ │ ├── theme-list-tabs-create.md
│ │ │ │ │ ├── uc-user-profile-tabs-create.md
│ │ │ │ │ └── user-detail-tabs-create.md
│ │ │ ├── hello-world.md
│ │ │ ├── interaction
│ │ │ │ ├── dependency.md
│ │ │ │ ├── making-plugin-extensible.md
│ │ │ │ └── shared-events.md
│ │ │ ├── introduction.md
│ │ │ ├── prepare.md
│ │ │ ├── publish.md
│ │ │ └── security
│ │ │ │ ├── rbac.md
│ │ │ │ ├── role-template.md
│ │ │ │ └── ui-permission.md
│ │ ├── restful-api
│ │ │ ├── api-client.md
│ │ │ └── introduction.md
│ │ └── theme
│ │ │ ├── annotations.md
│ │ │ ├── code-snippets.md
│ │ │ ├── config.md
│ │ │ ├── finder-apis.md
│ │ │ ├── finder-apis
│ │ │ ├── category.md
│ │ │ ├── comment.md
│ │ │ ├── contributor.md
│ │ │ ├── menu.md
│ │ │ ├── plugin.md
│ │ │ ├── post.md
│ │ │ ├── single-page.md
│ │ │ ├── site-stats.md
│ │ │ ├── tag.md
│ │ │ └── theme.md
│ │ │ ├── global-variables.md
│ │ │ ├── image-optimization.md
│ │ │ ├── prepare.md
│ │ │ ├── settings.md
│ │ │ ├── static-resources.md
│ │ │ ├── structure.md
│ │ │ ├── template-route-mapping.md
│ │ │ ├── template-tag.md
│ │ │ ├── template-variables.md
│ │ │ ├── template-variables
│ │ │ ├── archives.md
│ │ │ ├── auth.md
│ │ │ ├── author.md
│ │ │ ├── categories.md
│ │ │ ├── category.md
│ │ │ ├── error.md
│ │ │ ├── index_.md
│ │ │ ├── page.md
│ │ │ ├── post.md
│ │ │ ├── tag.md
│ │ │ └── tags.md
│ │ │ └── vo
│ │ │ ├── _CategoryTreeVo.md
│ │ │ ├── _CategoryVo.md
│ │ │ ├── _CommentVo.md
│ │ │ ├── _ContentVo.md
│ │ │ ├── _ContributorVo.md
│ │ │ ├── _ListedPostVo.md
│ │ │ ├── _ListedSinglePageVo.md
│ │ │ ├── _MenuItemVo.md
│ │ │ ├── _MenuVo.md
│ │ │ ├── _PostVo.md
│ │ │ ├── _ReplyVo.md
│ │ │ ├── _SinglePageVo.md
│ │ │ ├── _SiteSettingVo.md
│ │ │ ├── _TagVo.md
│ │ │ ├── _ThemeVo.md
│ │ │ └── _UserVo.md
│ ├── getting-started
│ │ ├── first-post.md
│ │ ├── install
│ │ │ ├── 1panel.md
│ │ │ ├── cloud
│ │ │ │ ├── alibaba-cloud-computenest.md
│ │ │ │ ├── alibaba-cloud-market.md
│ │ │ │ └── tencent-cloud-lighthouse.md
│ │ │ ├── config.md
│ │ │ ├── docker-compose.md
│ │ │ ├── docker.md
│ │ │ ├── helm.md
│ │ │ ├── jar-file.md
│ │ │ ├── offline.md
│ │ │ ├── other
│ │ │ │ ├── nginxproxymanager.md
│ │ │ │ └── traefik.md
│ │ │ ├── podman.md
│ │ │ └── slots
│ │ │ │ ├── _docker-args.md
│ │ │ │ └── _docker-registry-list.md
│ │ ├── migrate-from-1.x.md
│ │ ├── prepare.md
│ │ └── setup.md
│ ├── intro.md
│ └── user-guide
│ │ ├── app-store.md
│ │ ├── attachments.md
│ │ ├── backup.md
│ │ ├── common.md
│ │ ├── faq.md
│ │ ├── menus.md
│ │ ├── pages.md
│ │ ├── plugins.md
│ │ ├── posts.md
│ │ ├── settings.md
│ │ ├── themes.md
│ │ ├── user-center.md
│ │ └── users.md
└── version-2.21
│ ├── about.md
│ ├── contribution
│ ├── issue.md
│ ├── pr.md
│ └── sponsor.md
│ ├── developer-guide
│ ├── annotations-form.md
│ ├── core
│ │ ├── build.md
│ │ ├── code-style.md
│ │ ├── framework.md
│ │ ├── prepare.md
│ │ ├── run.md
│ │ └── structure.md
│ ├── form-schema.md
│ ├── plugin
│ │ ├── api-reference
│ │ │ ├── server
│ │ │ │ ├── extension-client.md
│ │ │ │ ├── extension-getter.md
│ │ │ │ ├── extension.md
│ │ │ │ ├── finder-for-theme.md
│ │ │ │ ├── login-handler-enhancer.md
│ │ │ │ ├── notification.md
│ │ │ │ ├── reconciler.md
│ │ │ │ ├── reverseproxy.md
│ │ │ │ ├── setting-fetcher.md
│ │ │ │ ├── template-for-theme.md
│ │ │ │ └── websocket.md
│ │ │ └── ui
│ │ │ │ ├── api-request.md
│ │ │ │ ├── components
│ │ │ │ ├── annotations-form.md
│ │ │ │ ├── attachment-file-type-icon.md
│ │ │ │ ├── attachment-selector-modal.md
│ │ │ │ ├── filter-clean-button.md
│ │ │ │ ├── filter-dropdown.md
│ │ │ │ ├── has-permission.md
│ │ │ │ ├── index.md
│ │ │ │ ├── plugin-detail-modal.md
│ │ │ │ ├── search-input.md
│ │ │ │ ├── uppy-upload.md
│ │ │ │ ├── v-codemirror.md
│ │ │ │ ├── v-permission.md
│ │ │ │ └── v-tooltip.md
│ │ │ │ └── route.md
│ │ ├── appendices.md
│ │ ├── basics
│ │ │ ├── devtools.md
│ │ │ ├── manifest.md
│ │ │ ├── server
│ │ │ │ ├── lifecycle.md
│ │ │ │ └── object-management.md
│ │ │ ├── structure.md
│ │ │ └── ui
│ │ │ │ ├── build.md
│ │ │ │ ├── entry.md
│ │ │ │ └── intro.md
│ │ ├── examples
│ │ │ └── todolist.md
│ │ ├── extension-points
│ │ │ ├── server
│ │ │ │ ├── additional-webfilter.md
│ │ │ │ ├── attachment.md
│ │ │ │ ├── authentication-webfilter.md
│ │ │ │ ├── comment-subject.md
│ │ │ │ ├── comment-widget.md
│ │ │ │ ├── index.md
│ │ │ │ ├── notifier.md
│ │ │ │ ├── post-content.md
│ │ │ │ ├── singlepage-content.md
│ │ │ │ ├── template-footer-processor.md
│ │ │ │ ├── template-head-processor.md
│ │ │ │ └── username-password-authentication-manager.md
│ │ │ └── ui
│ │ │ │ ├── attachment-list-item-operation-create.md
│ │ │ │ ├── attachment-selector-create.md
│ │ │ │ ├── backup-list-item-operation-create.md
│ │ │ │ ├── backup-tabs-create.md
│ │ │ │ ├── comment-list-item-operation-create.md
│ │ │ │ ├── comment-subject-ref-create.md
│ │ │ │ ├── dashboard-widgets.md
│ │ │ │ ├── default-editor-extension-create.md
│ │ │ │ ├── editor-create.md
│ │ │ │ ├── index.md
│ │ │ │ ├── interface
│ │ │ │ ├── Attachment.md
│ │ │ │ ├── ListedComment.md
│ │ │ │ ├── ListedPost.md
│ │ │ │ ├── ListedReply.md
│ │ │ │ ├── ListedSinglePage.md
│ │ │ │ ├── OperationItem.md
│ │ │ │ ├── Plugin.md
│ │ │ │ └── Theme.md
│ │ │ │ ├── plugin-installation-tabs-create.md
│ │ │ │ ├── plugin-list-item-field-create.md
│ │ │ │ ├── plugin-list-item-operation-create.md
│ │ │ │ ├── plugin-self-tabs-create.md
│ │ │ │ ├── post-list-item-field-create.md
│ │ │ │ ├── post-list-item-operation-create.md
│ │ │ │ ├── reply-list-item-operation-create.md
│ │ │ │ ├── single-page-list-item-field-create.md
│ │ │ │ ├── single-page-list-item-operation-create.md
│ │ │ │ ├── theme-list-item-operation-create.md
│ │ │ │ ├── theme-list-tabs-create.md
│ │ │ │ ├── uc-user-profile-tabs-create.md
│ │ │ │ └── user-detail-tabs-create.md
│ │ ├── hello-world.md
│ │ ├── interaction
│ │ │ ├── dependency.md
│ │ │ ├── making-plugin-extensible.md
│ │ │ └── shared-events.md
│ │ ├── introduction.md
│ │ ├── prepare.md
│ │ ├── publish.md
│ │ └── security
│ │ │ ├── rbac.md
│ │ │ ├── role-template.md
│ │ │ └── ui-permission.md
│ ├── restful-api
│ │ ├── api-client.md
│ │ └── introduction.md
│ └── theme
│ │ ├── annotations.md
│ │ ├── code-snippets.md
│ │ ├── config.md
│ │ ├── finder-apis.md
│ │ ├── finder-apis
│ │ ├── category.md
│ │ ├── comment.md
│ │ ├── contributor.md
│ │ ├── menu.md
│ │ ├── plugin.md
│ │ ├── post.md
│ │ ├── single-page.md
│ │ ├── site-stats.md
│ │ ├── tag.md
│ │ └── theme.md
│ │ ├── global-variables.md
│ │ ├── image-optimization.md
│ │ ├── prepare.md
│ │ ├── settings.md
│ │ ├── static-resources.md
│ │ ├── structure.md
│ │ ├── template-route-mapping.md
│ │ ├── template-tag.md
│ │ ├── template-variables.md
│ │ ├── template-variables
│ │ ├── archives.md
│ │ ├── auth.md
│ │ ├── author.md
│ │ ├── categories.md
│ │ ├── category.md
│ │ ├── error.md
│ │ ├── index_.md
│ │ ├── page.md
│ │ ├── post.md
│ │ ├── tag.md
│ │ └── tags.md
│ │ └── vo
│ │ ├── _CategoryTreeVo.md
│ │ ├── _CategoryVo.md
│ │ ├── _CommentVo.md
│ │ ├── _ContentVo.md
│ │ ├── _ContributorVo.md
│ │ ├── _ListedPostVo.md
│ │ ├── _ListedSinglePageVo.md
│ │ ├── _MenuItemVo.md
│ │ ├── _MenuVo.md
│ │ ├── _PostVo.md
│ │ ├── _ReplyVo.md
│ │ ├── _SinglePageVo.md
│ │ ├── _SiteSettingVo.md
│ │ ├── _TagVo.md
│ │ ├── _ThemeVo.md
│ │ └── _UserVo.md
│ ├── getting-started
│ ├── first-post.md
│ ├── install
│ │ ├── 1panel.md
│ │ ├── cloud
│ │ │ ├── alibaba-cloud-computenest.md
│ │ │ ├── alibaba-cloud-market.md
│ │ │ └── tencent-cloud-lighthouse.md
│ │ ├── config.md
│ │ ├── docker-compose.md
│ │ ├── docker.md
│ │ ├── helm.md
│ │ ├── jar-file.md
│ │ ├── offline.md
│ │ ├── other
│ │ │ ├── nginxproxymanager.md
│ │ │ └── traefik.md
│ │ ├── podman.md
│ │ └── slots
│ │ │ ├── _docker-args.md
│ │ │ └── _docker-registry-list.md
│ ├── migrate-from-1.x.md
│ ├── prepare.md
│ └── setup.md
│ ├── intro.md
│ └── user-guide
│ ├── app-store.md
│ ├── attachments.md
│ ├── backup.md
│ ├── common.md
│ ├── faq.md
│ ├── menus.md
│ ├── pages.md
│ ├── plugins.md
│ ├── posts.md
│ ├── settings.md
│ ├── themes.md
│ ├── user-center.md
│ └── users.md
├── versioned_sidebars
├── version-2.16-sidebars.json
├── version-2.17-sidebars.json
├── version-2.18-sidebars.json
├── version-2.19-sidebars.json
├── version-2.20-sidebars.json
└── version-2.21-sidebars.json
├── versions.json
└── versionsArchived.json
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*.md]
4 | indent_style = space
5 | indent_size = 2
6 | end_of_line = lf
7 | charset = utf-8
8 | trim_trailing_whitespace = false
9 | insert_final_newline = true
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Dependencies
2 | /node_modules
3 |
4 | # Production
5 | /build
6 |
7 | # Generated files
8 | .docusaurus
9 | .cache-loader
10 |
11 | # Misc
12 | .DS_Store
13 | .env.local
14 | .env.development.local
15 | .env.test.local
16 | .env.production.local
17 |
18 | # Editor
19 |
20 | .idea
21 |
22 | npm-debug.log*
23 | yarn-debug.log*
24 | yarn-error.log*
25 |
--------------------------------------------------------------------------------
/.husky/pre-commit:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | . "$(dirname "$0")/_/husky.sh"
3 |
4 | pnpm lint
5 |
--------------------------------------------------------------------------------
/.markdownlint.json:
--------------------------------------------------------------------------------
1 | {
2 | "MD033": false,
3 | "MD024": false,
4 | "MD029": false,
5 | "MD041": false,
6 | "MD010": {
7 | "code_blocks": true,
8 | "spaces_per_tab": 4
9 | },
10 | "MD046": false,
11 | "line-length": false,
12 | "fix": true
13 | }
--------------------------------------------------------------------------------
/.npmrc:
--------------------------------------------------------------------------------
1 | shamefully-hoist=true
2 |
--------------------------------------------------------------------------------
/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | "recommendations": ["davidanson.vscode-markdownlint"]
3 | }
4 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "[markdown]": {
3 | "editor.defaultFormatter": "yzhang.markdown-all-in-one"
4 | },
5 | "i18n-ally.localesPaths": [
6 | "i18n"
7 | ]
8 | }
9 |
--------------------------------------------------------------------------------
/OWNERS:
--------------------------------------------------------------------------------
1 | reviewers:
2 | - ruibaby
3 | - guqing
4 | - JohnNiang
5 | - wan92hen
6 |
7 | approvers:
8 | - ruibaby
9 | - guqing
10 | - JohnNiang
11 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # The open-source repo for [docs.halo.run](https://docs.halo.run)
2 |
3 | This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator.
4 |
5 | ### Installation
6 |
7 | ```
8 | $ pnpm install
9 | ```
10 |
11 | > If you don’t have pnpm installed, you can install it with the following command:
12 |
13 | ```
14 | npm install -g pnpm
15 | ```
16 |
17 | ### Local Development
18 |
19 | ```
20 | $ pnpm start
21 | ```
22 |
23 | This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.
24 |
25 | ### Build
26 |
27 | ```
28 | $ pnpm build
29 | ```
30 |
31 | This command generates static content into the `build` directory and can be served using any static contents hosting service.
32 |
--------------------------------------------------------------------------------
/docs/about.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 关于文档
3 | description: 关于本文档站点的一些说明
4 | ---
5 |
6 | :::note
7 | 此文档使用 [Docusaurus](https://docusaurus.io/) 搭建,感谢 [Docusaurus](https://github.com/facebook/docusaurus) 社区所做的贡献。
8 | :::
9 |
10 | ## 参与贡献
11 |
12 | :::tip
13 | 如果你发现文档中有不正确或者需要添加的内容,非常欢迎参与到文档编辑当中。
14 | :::
15 |
16 | 当前文档的仓库地址为 [halo-dev/docs](https://github.com/halo-dev/docs) ,所以你可以 fork 此仓库,修改之后提交 `Pull request` 等待我们合并即可。
17 |
--------------------------------------------------------------------------------
/docs/contribution/issue.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 问题反馈
3 | description: 问题反馈渠道及指南
4 | ---
5 |
6 | :::info
7 | 如果您在使用过程中遇到了什么问题,您可以通过下面的方式反馈,但请尽量按照要求提出反馈。
8 | :::
9 |
10 | ## GitHub Issues
11 |
12 | 链接:[https://github.com/halo-dev/halo/issues](https://github.com/halo-dev/halo/issues)
13 |
14 | 如果你在使用过程中,遇到了一些 bug 或者需要添加某些新特性,请尽量在 GitHub Issues 进行反馈,这非常有助于我们跟踪解决此问题,您也可以很方便的接收到处理状态。
15 |
16 | 建议步骤:
17 |
18 | 1. 在 [Issues 列表](https://github.com/halo-dev/halo/issues) 搜索相关问题,看看是否有其他人已经提到了此问题。
19 | 2. 如果当前还没有人遇到您类似的问题,那么请点击右上角的 `New issue` 按钮创建新的 issue。
20 | 3. 选择正确的反馈类型。
21 | 4. 请尽可能详细的按照模板填写内容。
22 | 5. 点击 `Submit new issue` 提交 issue。
23 |
24 | ## Halo 官方社区
25 |
26 | 链接:[https://bbs.halo.run](https://bbs.halo.run)
27 |
28 | 此平台主要目的用于与其他 Halo 用户进行交流。但如果您对 GitHub 不是很熟悉或者没有账号,您也可以在此平台进行反馈。
29 |
--------------------------------------------------------------------------------
/docs/contribution/sponsor.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 赞助我们
3 | description: 如果 Halo 对你有帮助,不妨赞助我们
4 | ---
5 |
6 | ## 为什么需要赞助
7 |
8 | 我们花费了大量的精力来维护这个软件,并且也提供了不少资金来维护服务器,域名等。因此我们需要赞助来节省部分开发成本。你的赞助不仅仅会被我们用来支付一些开发成本(比如服务器,OSS,域名等),还会让我们有更多的信心和精力投入到这个开源项目的开发中。从而让项目保持更加健康的成长以及迭代。
9 |
10 | ## 赞助形式
11 |
12 | :::info
13 | 你可以通过任何形式对我们赞助,不限于资金。
14 | :::
15 |
16 | ### 资金赞助
17 |
18 | - 爱发电:[https://afdian.com/a/halo-dev](https://afdian.com/a/halo-dev)
19 |
20 | ### 通过我们的推广链接购买服务器
21 |
22 | 如果你当前还没有购买服务器,可以考虑通过以下链接购买,这会为我们带来一部分收益。
23 |
24 | - 阿里云:[https://www.aliyun.com/daily-act/ecs/activity_selection?userCode=j57gyupo](https://www.aliyun.com/daily-act/ecs/activity_selection?userCode=j57gyupo)
25 | - 阿里云新人专享:[https://www.aliyun.com/minisite/goods?userCode=j57gyupo](https://www.aliyun.com/minisite/goods?userCode=j57gyupo)
26 | - 腾讯云:[https://curl.qcloud.com/9Ogon25Y](https://curl.qcloud.com/9Ogon25Y)
27 |
--------------------------------------------------------------------------------
/docs/developer-guide/core/code-style.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 代码风格
3 | description: 代码风格的相关配置说明
4 | ---
5 |
6 | Halo 添加了 checkstyle 插件,来保证每位提交者代码的风格保持一致,减少无效代码的修改。本篇文章主要讲解如何在 IDEA 中添加 CheckStyle 插件,并引入项目所提供的 checkstyle.xml 配置。
7 |
8 | ## 安装 CheckStyle-IDEA
9 |
10 | - 进入 IDEA 插件市场。
11 | - 搜索 CheckStyle-IDEA,点击安装即可。
12 |
13 | ## 配置 CheckStyle
14 |
15 | - 进入 CheckStyle 配置(File | Settings | Tools | Checkstyle)。
16 | - 选择 Checkstyle 版本:9.3(以文件 `application/build.gradle` 中指定的版本为准)。
17 | - 在配置文件中点击添加按钮,配置描述可随便填写(推荐 Halo Checks),选择 ./config/checkstyle/checkstyle.xml,点击下一步和完成。
18 | - 勾选刚刚创建的配置文件。
19 |
20 | ## 配置 Editor
21 |
22 | - 进入编辑器配置(File | Settings | Editor | Code Style)
23 |
24 | - 导入 checkstyle.xm 配置:
25 |
26 | 
27 |
28 | - 选择 `./config/checkstyle/checkstyle.xml` 配置文件,点击确定即可。
29 |
30 | 至此,有关代码风格检查工具和格式化配置已经完成。
31 |
--------------------------------------------------------------------------------
/docs/developer-guide/core/prepare.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 准备工作
3 | description: 开发环境的准备工作
4 | ---
5 |
6 | ## 环境要求
7 |
8 | - [OpenJDK 21 LTS](https://github.com/openjdk/jdk)
9 | - [Node.js 20 LTS](https://nodejs.org)
10 | - [pnpm 10](https://pnpm.io/)
11 | - [IntelliJ IDEA](https://www.jetbrains.com/idea/)
12 | - [Git](https://git-scm.com/)
13 | - [Docker](https://www.docker.com/)(可选)
14 |
15 | ## 名词解释
16 |
17 | ### 工作目录
18 |
19 | 指 Halo 所依赖的工作目录,在 Halo 运行的时候会在系统当前用户目录下产生一个 halo-next 的文件夹,绝对路径为 ~/halo-next。里面通常包含下列目录或文件:
20 |
21 | 1. `db`:存放 H2 Database 的物理文件,如果你使用其他数据库,那么不会存在这个目录。
22 | 2. `themes`:里面包含用户所安装的主题。
23 | 2. `plugins`:里面包含用户所安装的插件。
24 | 5. `attachments`:附件目录。
25 | 4. `logs`:运行日志目录。
26 |
--------------------------------------------------------------------------------
/docs/developer-guide/plugin/api-reference/ui/components/attachment-file-type-icon.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: AttachmentFileTypeIcon
3 | description: 附件文件类型图标组件
4 | ---
5 |
6 | 此组件用于根据文件名显示文件类型图标。
7 |
8 | ## 使用示例
9 |
10 | ```html
11 |
12 |
13 |
14 |
15 |
16 | ```
17 |
18 | ## Props
19 |
20 | | 属性名 | 类型 | 默认值 | 描述 |
21 | |--------------|---------------------|-----------|------------------------------------|
22 | | `fileName` | string \| undefined | undefined | 文件名,可以是字符串或未定义。 |
23 | | `displayExt` | boolean | true | 可选,是否显示文件扩展名,默认为 true。 |
24 | | `width` | number | 10 | 可选,组件宽度,默认为 10。 |
25 | | `height` | number | 10 | 可选,组件高度,默认为 10。 |
26 |
--------------------------------------------------------------------------------
/docs/developer-guide/plugin/api-reference/ui/components/filter-clean-button.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: FilterCleanButton
3 | description: 过滤器清除按钮组件
4 | ---
5 |
6 | ## 使用示例
7 |
8 | ```html
9 |
14 |
15 |
16 |
17 |
18 | ```
19 |
--------------------------------------------------------------------------------
/docs/developer-guide/plugin/api-reference/ui/components/has-permission.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: HasPermission
3 | description: 权限判断组件
4 | ---
5 |
6 | 此组件用于根据权限控制元素的显示与隐藏。
7 |
8 | ## 使用方式
9 |
10 | ```html
11 |
14 |
15 |
16 |
17 | 删除
18 |
19 |
20 | ```
21 |
22 | ## Props
23 |
24 | | 属性名 | 类型 | 默认值 | 描述 |
25 | |---------------|----------|------|-----------------------|
26 | | `permissions` | string[] | 无,必填 | 定义组件所需的权限列表。 |
27 |
--------------------------------------------------------------------------------
/docs/developer-guide/plugin/api-reference/ui/components/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 组件
3 | description: 在 Halo UI 中可使用的组件。
4 | ---
5 |
6 | 此文档将介绍所有在插件中可用的组件,以及它们的使用方法和区别。
7 |
8 | ## 基础组件库
9 |
10 | 我们为 Halo 的前端封装了一个基础组件的库,你可以在插件中使用这些组件。
11 |
12 | 安装方式:
13 |
14 | ```bash
15 | pnpm install @halo-dev/components
16 | ```
17 |
18 | 在 Vue 组件中:
19 |
20 | ```html
21 |
24 |
25 |
26 | Hello
27 |
28 | ```
29 |
30 | 所有可用的基础组件以及文档可查阅:[https://halo-ui-components.pages.dev](https://halo-ui-components.pages.dev)
31 |
32 | ## 业务组件和指令
33 |
34 | 除了基础组件库,我们还为 Halo 的前端封装了一些业务组件和指令,这些组件已经在全局注册,你可以直接在插件中使用这些组件和指令。
35 |
36 | 以下是所有可用的业务组件和指令:
37 |
38 | ```mdx-code-block
39 | import DocCardList from '@theme/DocCardList';
40 |
41 |
42 | ```
43 |
--------------------------------------------------------------------------------
/docs/developer-guide/plugin/api-reference/ui/components/plugin-detail-modal.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: PluginDetailModal
3 | description: 插件详情弹窗组件
4 | ---
5 |
6 | 此组件可以在 UI 部分的任意组件中打开差价的详情和设置弹窗,可以用于实现在不打断正常操作流程的情况下让用户查看和修改插件的详细信息。
7 |
8 | ## 使用方式
9 |
10 | ```html
11 |
20 |
21 |
22 |
23 |
24 | ```
25 |
26 | ## Props
27 |
28 | | 属性名 | 类型 | 默认值 | 描述 |
29 | | ------ | ------ | -------- | --------------------------------------------- |
30 | | `name` | string | 无,必填 | 插件名称,即 plugin.yaml 中的 `metadata.name` |
31 |
--------------------------------------------------------------------------------
/docs/developer-guide/plugin/api-reference/ui/components/v-permission.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: v-permission
3 | description: 权限指令
4 | ---
5 |
6 | 与 [HasPermission](./has-permission.md) 组件相同,此指令也是用于根据权限控制元素的显示与隐藏。
7 |
8 | ## 使用方式
9 |
10 | ```html
11 |
14 |
15 |
16 | 删除
17 |
18 | ```
19 |
--------------------------------------------------------------------------------
/docs/developer-guide/plugin/api-reference/ui/components/v-tooltip.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: v-tooltip
3 | description: Tooltip 指令
4 | ---
5 |
6 | 此指令用于在任何元素上添加一个提示框。
7 |
8 | ## 使用方式
9 |
10 | ```html
11 |
14 |
15 |
16 |
17 |
18 | ```
19 |
--------------------------------------------------------------------------------
/docs/developer-guide/plugin/appendices.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 附录
3 | description: 附录
4 | ---
--------------------------------------------------------------------------------
/docs/developer-guide/plugin/basics/ui/intro.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 介绍
3 | description: 介绍插件 UI 部分的基础知识。
4 | ---
5 |
6 | Halo 插件体系的 UI 部分可以让开发者在 Console 控制台和 UC 个人中心添加新的页面或者扩展已有的功能。
7 |
8 | 在开始之前,建议先熟悉或安装以下库和工具:
9 |
10 | 1. [Node.js 20+](https://nodejs.org)
11 | 2. [pnpm 10+](https://pnpm.io)
12 | 3. [Vue.js 3](https://vuejs.org)
13 |
--------------------------------------------------------------------------------
/docs/developer-guide/plugin/extension-points/ui/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 扩展点
3 | description: Halo UI 为插件提供的扩展点接口
4 | ---
5 |
6 | UI 扩展点是用于扩展 Console 和 UC 的界面的接口,通过实现扩展点接口,插件可以在 Console 和 UC 中扩展功能。
7 |
8 | 以下是目前已支持的扩展点列表:
9 |
10 | ```mdx-code-block
11 | import DocCardList from '@theme/DocCardList';
12 |
13 |
14 | ```
15 |
--------------------------------------------------------------------------------
/docs/developer-guide/plugin/extension-points/ui/interface/Attachment.md:
--------------------------------------------------------------------------------
1 | ```ts
2 | export interface Attachment {
3 | apiVersion: "storage.halo.run/v1alpha1"
4 | kind: "Attachment"
5 | metadata: {
6 | annotations: {}
7 | creationTimestamp: string
8 | labels: {}
9 | name: string // 附件的唯一标识
10 | version: number
11 | }
12 | spec: {
13 | displayName: string // 附件名称
14 | groupName: string // 附件分组
15 | mediaType: string // 附件类型
16 | ownerName: string // 附件上传者
17 | policyName: string // 附件存储策略
18 | size: number // 附件大小
19 | tags: Array
20 | }
21 | status: {
22 | permalink: string // 附件固定访问地址
23 | }
24 | }
25 | ```
26 |
--------------------------------------------------------------------------------
/docs/developer-guide/plugin/extension-points/ui/interface/OperationItem.md:
--------------------------------------------------------------------------------
1 | ```ts title="OperationItem"
2 | export interface OperationItem {
3 | priority: number; // 排序优先级
4 | component: Raw; // 菜单项组件
5 | props?: Record\; // 菜单项组件属性
6 | action?: (item?: T) => void; // 菜单项点击事件
7 | label?: string; // 菜单项标题
8 | hidden?: boolean; // 菜单项是否隐藏
9 | permissions?: string[]; // 菜单项 UI 权限
10 | children?: OperationItem[]; // 子菜单项
11 | }
12 | ```
13 |
--------------------------------------------------------------------------------
/docs/developer-guide/plugin/introduction.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 介绍
3 | description: Halo 插件机制的简介
4 | ---
5 |
6 | Halo 采用可插拔架构,功能模块之间耦合度低、灵活性提高,支持用户按需安装、卸载插件,操作便捷。同时提供插件开发接口以确保较高扩展性和可维护性,这个系列的文档将帮助你了解如何开发 Halo 插件。
7 |
--------------------------------------------------------------------------------
/docs/developer-guide/plugin/prepare.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 准备工作
3 | description: 插件开发的准备工作
4 | ---
5 |
6 | 在 Halo 中,插件是使用 Java 和 JavaScript / TypeScript 编写的,UI 使用 [Vuejs](https://vuejs.org) 编写。
7 |
8 | 在创建你的第一个插件之前,请确保你具备以下条件:
9 |
10 | - 你能通过 [Docker 运行 Halo](../../getting-started/install/docker) 或在[开发环境运行 Halo](../core/run.md)。
11 | - 你熟悉 Java Web 开发并掌握 [Spring Boot](https://spring.io/projects/spring-boot/) 框架。
12 | - 你需要在计算机上安装最新的 LTS 版本的 Node.js,如果你还没有 Node.js 安装,你可以在这里下载 [Node.js 18 LTS](https://nodejs.org/)。
13 | - 你熟悉 Vue 和 TypeScript。
14 | - 你应该熟悉使用 Node.js 包管理器。
15 | - Git 是一个版本控制系统,用于跟踪代码的更改,您需要 Git 来下载示例插件并发布插件。
16 |
17 | 同时需要先阅读 [Halo 架构概览](../core/framework.md) 以了解 Halo 的核心概念和技术栈。
18 |
--------------------------------------------------------------------------------
/docs/developer-guide/theme/finder-apis.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Finder API
3 | description: 本文档介绍 Finder API 的使用方法。
4 | ---
5 |
6 | import DocCardList from '@theme/DocCardList';
7 |
8 | 目前在主题模板中获取数据可以使用对应路由提供的 [模板变量](./template-variables),但为了满足在任意位置获取数据的需求,我们提供了 Finder API。
9 |
10 |
11 |
--------------------------------------------------------------------------------
/docs/developer-guide/theme/finder-apis/site-stats.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 站点统计
3 | description: 站点统计 - SiteStatsFinder
4 | ---
5 |
6 | ## getStats()
7 |
8 | ```js
9 | siteStatsFinder.getStats()
10 | ```
11 |
12 | ### 描述
13 |
14 | 获取站点的统计信息。
15 |
16 | ### 参数
17 |
18 | 无
19 |
20 | ### 返回值
21 |
22 | [#SiteStatsVo](#sitestatsvo)
23 |
24 | ### 示例
25 |
26 | ```html
27 |
31 | ```
32 |
33 | ## 类型定义
34 |
35 | ### SiteStatsVo
36 |
37 | ```json title="SiteStatsVo"
38 | {
39 | "visit": 0, // 访问数量
40 | "upvote": 0, // 点赞数量
41 | "comment": 0, // 评论数量
42 | "post": 0, // 文章数量
43 | "category": 0 // 分类数量
44 | }
45 | ```
46 |
--------------------------------------------------------------------------------
/docs/developer-guide/theme/template-variables.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 模板编写
3 | ---
4 |
5 | 此章节我们将详细介绍如何在主题中编写页面的模板,以下是 Halo 核心中支持的所有模板:
6 |
7 | ```mdx-code-block
8 | import DocCardList from '@theme/DocCardList';
9 |
10 |
11 | ```
12 |
--------------------------------------------------------------------------------
/docs/developer-guide/theme/template-variables/tags.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 文章标签集合
3 | description: tags.html - /tags
4 | ---
5 |
6 | import TagVo from '../vo/_TagVo.md'
7 |
8 | 用于列出所有文章标签的页面,可以用于实现标签墙等功能。
9 |
10 | ## 路由信息
11 |
12 | - 模板路径:`/templates/tags.html`
13 | - 访问路径:`/tags`
14 |
15 | ## 变量
16 |
17 | ### tags
18 |
19 | #### 变量类型
20 |
21 | List\<[#TagVo](#tagvo)\>
22 |
23 | #### 示例
24 |
25 | ```html title="/templates/tags.html"
26 |
29 | ```
30 |
31 | ### _templateId
32 |
33 | #### 变量值
34 |
35 | `tags`
36 |
37 | ## 类型定义
38 |
39 | ### TagVo
40 |
41 |
42 |
--------------------------------------------------------------------------------
/docs/developer-guide/theme/vo/_ContentVo.md:
--------------------------------------------------------------------------------
1 | ```json title="ContentVo"
2 | {
3 | "raw": "string", // 原始文本,一般用于给编辑器使用
4 | "content": "string" // 最终渲染的文本
5 | }
6 | ```
7 |
--------------------------------------------------------------------------------
/docs/developer-guide/theme/vo/_ContributorVo.md:
--------------------------------------------------------------------------------
1 | ```json title="ContributorVo"
2 | {
3 | "name": "string", // 用户名
4 | "displayName": "string", // 显示名称
5 | "avatar": "string", // 头像
6 | "bio": "string", // 描述
7 | "permalink": "string", // 作者的文章归档页面链接
8 | "metadata": {
9 | "name": "string", // 唯一标识
10 | "labels": {
11 | "additionalProp1": "string"
12 | },
13 | "annotations": {
14 | "additionalProp1": "string"
15 | },
16 | "creationTimestamp": "2022-11-20T13:06:38.512Z", // 创建时间
17 | }
18 | }
19 | ```
20 |
--------------------------------------------------------------------------------
/docs/developer-guide/theme/vo/_MenuVo.md:
--------------------------------------------------------------------------------
1 | ```json title="MenuVo"
2 | {
3 | "metadata": {
4 | "name": "string", // 唯一标识
5 | "labels": {
6 | "additionalProp1": "string"
7 | },
8 | "annotations": {
9 | "additionalProp1": "string"
10 | },
11 | "creationTimestamp": "2022-11-20T14:44:58.984Z", // 创建时间
12 | },
13 | "spec": {
14 | "displayName": "string", // 显示名称
15 | "menuItems": [ // 菜单的菜单项名称集合,即 MenuItem 的 metadata.name 的集合
16 | "string"
17 | ]
18 | },
19 | "menuItems": "List<#MenuItemVo>" // 菜单项的集合
20 | }
21 | ```
22 |
--------------------------------------------------------------------------------
/docs/developer-guide/theme/vo/_TagVo.md:
--------------------------------------------------------------------------------
1 | ```json title="TagVo"
2 | {
3 | "metadata": {
4 | "name": "string", // 唯一标识
5 | "labels": {
6 | "additionalProp1": "string"
7 | },
8 | "annotations": {
9 | "additionalProp1": "string"
10 | },
11 | "creationTimestamp": "2022-11-20T13:06:38.512Z", // 创建时间
12 | },
13 | "spec": {
14 | "displayName": "string", // 显示名称
15 | "slug": "string", // 别名,通常用于生成 status.permalink
16 | "color": "#F9fEB1", // 背景颜色
17 | "cover": "string" // 封面图
18 | },
19 | "status": {
20 | "permalink": "string", // 固定链接
21 | },
22 | "postCount": 0 // 文章数量
23 | }
24 | ```
25 |
--------------------------------------------------------------------------------
/docs/getting-started/first-post.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 第一篇文章
3 | description: 安装完成后,如何写下第一篇文章。
4 | ---
5 |
6 |
7 |
8 |
9 | ## 登录管理端
10 |
11 | 浏览器访问 `/console` 即可进入 Halo 管理端。
12 |
13 | ## 新建文章
14 |
15 | Halo 安装完成后,默认初始化了一篇 `Hello Halo` 文章,接下来我们将创建并发布一篇自己的文章。
16 |
17 | 1. 在 Halo 管理端,点击仪表盘页面中的 `创建文章` 快捷入口,即可进入到文章编辑页面。
18 | 2. 在文章编辑器中,你可以尽情写下你想展现的内容。
19 | 3. 当内容编辑完成后,点击右上角的 `发布` 按钮,给文章设置一个合适的标题和别名,同时可以设置文章所属分类、标签及其他一些高级设置。
20 | 4. 确认无误后,点击弹框下方的 `发布` 按钮,我们的第一篇文章就成功发布了。
21 |
22 | :::info
23 | 关于文章相关其他功能及文章各种设置项的说明,请参考《[用户指南 - 文章](../user-guide/posts.md)》章节
24 | :::
25 |
26 | ## 查看文章
27 |
28 | 文章发布成功后,就可以在主题端查看到我们刚刚创建的文章了。
29 |
30 | 浏览器访问域名进入站点首页,站点展示的内容及样式由当前启用的主题所决定。
31 |
32 | 接下来,选一款喜欢的主题,尽情体验 Halo 吧!
33 |
--------------------------------------------------------------------------------
/docs/getting-started/install/cloud/alibaba-cloud-computenest.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 阿里云计算巢部署
3 | description: 使用阿里云计算巢服务部署 Halo
4 | ---
5 |
6 | 阿里云计算巢提供了软件与资源的一体化交付的完善基础能力,助力服务商、开发者的提升服务能力和降低运营成本。计算巢已经支持快速部署 Halo 社区版。
7 |
8 | ## 部署流程
9 |
10 | 1. 访问计算巢 Halo 社区版服务[部署链接](https://computenest.console.aliyun.com/service/instance/create/default?type=user&ServiceId=service-71b471d79c224520bba3),按提示填写部署参数:
11 |
12 | 
13 | 2. 参数填写完成后可以看到对应询价明细,确认参数后点击**下一步:确认订单**。确认订单完成后同意服务协议并点击**立即创建**进入部署阶段。
14 | 3. 等待部署完成后进入服务实例管理,在控制台找到 Halo 服务访问链接。
15 |
16 | 
17 | 4. 单击链接访问 Halo 服务。
18 |
19 | 
20 |
--------------------------------------------------------------------------------
/docs/getting-started/install/slots/_docker-registry-list.md:
--------------------------------------------------------------------------------
1 | 目前 Halo 官方维护的 Docker 镜像仓库,可以根据自己的需求选择合适的镜像源:
2 |
3 | - registry.fit2cloud.com/halo/halo
4 | - [halohub/halo](https://hub.docker.com/r/halohub/halo)
5 | - [ghcr.io/halo-dev/halo](https://github.com/halo-dev/halo/pkgs/container/halo)
6 |
7 | :::info 注意
8 | 目前 Halo 2 并未更新 Docker 的 latest 标签镜像,主要因为 Halo 2 不兼容 1.x 版本,防止使用者误操作。我们推荐使用固定版本的标签,比如 `2.21` 或者 `2.21.0`。
9 |
10 | - `registry.fit2cloud.com/halo/halo:2`:表示最新的 2.x 版本,即每次发布新版本都会更新此镜像。
11 | - `registry.fit2cloud.com/halo/halo:2.21`:表示最新的 2.21.x 版本,即每次发布 patch 版本都会同时更新此镜像。
12 | - `registry.fit2cloud.com/halo/halo:2.21.0`:表示一个具体的版本。
13 |
14 | 后续文档以 `registry.fit2cloud.com/halo/halo:2.21` 为例。
15 | :::
16 |
--------------------------------------------------------------------------------
/docs/getting-started/setup.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 初始化
3 | description: 首次安装的初始化指南
4 | ---
5 |
6 | 通过之前的安装文档,你已经成功安装了 Halo,在首次访问网站的时候会自动跳转到初始化页面,你需要完成这个步骤才能正常使用 Halo。
7 |
8 | 
9 |
10 | 表单项说明:
11 |
12 | 1. **站点标题**:网站的名称,将会显示在浏览器标签页上。
13 | 2. **用户名**:初始管理员的用户名。
14 | 3. **电子邮箱**:初始管理员的邮箱地址。
15 | 4. **密码**:初始管理员的密码。
16 | 5. **确认密码**:重复输入密码以验证是否匹配。
17 |
18 | 输入完成之后点击**初始化**按钮即可完成初始化,初始化完成之后,将会跳转到登录页面,输入刚才设置的用户名和密码即可登录。
19 |
--------------------------------------------------------------------------------
/docs/user-guide/pages.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 页面
3 | description: 页面管理相关功能说明
4 | ---
5 |
6 | 页面与文章类似,同样包含页面标题和富文本形式的页面内容。与文章不同的是页面无法设置所属分类和标签信息,一般用于站点中单一展示功能的页面,例如常见的站点关于页面、联系我们页面等。
7 |
8 | 自定义页面的访问链接为 `/{slug}` 其中 `slug` 为自定义页面的别名。
9 |
10 | 对于如下的关于页面,便可以通过 `/about` 地址进行访问。
11 |
12 | 
13 |
14 | :::info
15 | 自定义页面默认使用主题端的 `page.html` 模板进行渲染,如果主题中提供了针对自定义页面的其他模板,用户可以通过修改自定义页面高级设置中的自定义模板设置进行使用。
16 | :::
17 |
18 | #### 页面操作
19 |
20 | 对于页面的新建、设置、发布及删除等操作,与文章操作基本一致,具体操作请参考[《用户指南 - 文章》](./posts.md)章节,此处不再赘述。
21 |
--------------------------------------------------------------------------------
/netlify.toml:
--------------------------------------------------------------------------------
1 | [build.environment]
2 | NODE_VERSION = "16"
3 | NPM_FLAGS = "--version"
4 |
5 | [build]
6 | publish = "build"
7 | command = "npx pnpm install --store=node_modules/.pnpm-store && npx pnpm build"
--------------------------------------------------------------------------------
/pnpm-workspace.yaml:
--------------------------------------------------------------------------------
1 | onlyBuiltDependencies:
2 | - '@swc/core'
3 | - core-js
4 | - core-js-pure
5 |
--------------------------------------------------------------------------------
/src/components/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/src/components/.gitkeep
--------------------------------------------------------------------------------
/src/theme/SearchBar.js:
--------------------------------------------------------------------------------
1 | import React, { useEffect } from "react";
2 | import "meilisearch-docsearch/css";
3 |
4 | export default function SearchBarWrapper(props) {
5 | useEffect(() => {
6 | const docsearch = require("meilisearch-docsearch").default;
7 |
8 | const destroy = docsearch({
9 | container: "#docsearch",
10 | host: "https://docsearch.halo.run",
11 | // Default Search API Key
12 | // Use it to search from the frontend
13 | apiKey:
14 | "883d046131979fa8bc9bbc7d006ccb13a353cb5ce847cca50a49fad4f35b3f77",
15 | indexUid: "docs",
16 | });
17 |
18 | return () => destroy();
19 | }, []);
20 | return (
21 | <>
22 |
23 | >
24 | );
25 | }
26 |
--------------------------------------------------------------------------------
/static/.nojekyll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/.nojekyll
--------------------------------------------------------------------------------
/static/img/adaptive2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/adaptive2.png
--------------------------------------------------------------------------------
/static/img/annotation-setting/annotation-setting-preview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/annotation-setting/annotation-setting-preview.png
--------------------------------------------------------------------------------
/static/img/create-repository-for-hello-world-plugin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/create-repository-for-hello-world-plugin.png
--------------------------------------------------------------------------------
/static/img/developer-guide/plugin/basic/server/post-content-version-generation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/developer-guide/plugin/basic/server/post-content-version-generation.png
--------------------------------------------------------------------------------
/static/img/developer-guide/plugin/extension-points/ui/attachment-list-item-operation-create.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/developer-guide/plugin/extension-points/ui/attachment-list-item-operation-create.png
--------------------------------------------------------------------------------
/static/img/developer-guide/plugin/extension-points/ui/attachment-selector-create.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/developer-guide/plugin/extension-points/ui/attachment-selector-create.png
--------------------------------------------------------------------------------
/static/img/developer-guide/plugin/extension-points/ui/backup-list-item-operation-create.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/developer-guide/plugin/extension-points/ui/backup-list-item-operation-create.png
--------------------------------------------------------------------------------
/static/img/developer-guide/plugin/extension-points/ui/backup-tabs-create.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/developer-guide/plugin/extension-points/ui/backup-tabs-create.png
--------------------------------------------------------------------------------
/static/img/developer-guide/plugin/extension-points/ui/comment-list-item-operation-create.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/developer-guide/plugin/extension-points/ui/comment-list-item-operation-create.png
--------------------------------------------------------------------------------
/static/img/developer-guide/plugin/extension-points/ui/comment-subject-ref-create.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/developer-guide/plugin/extension-points/ui/comment-subject-ref-create.png
--------------------------------------------------------------------------------
/static/img/developer-guide/plugin/extension-points/ui/dashboard-widgets.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/developer-guide/plugin/extension-points/ui/dashboard-widgets.png
--------------------------------------------------------------------------------
/static/img/developer-guide/plugin/extension-points/ui/default-editor-extension-bubble-menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/developer-guide/plugin/extension-points/ui/default-editor-extension-bubble-menu.png
--------------------------------------------------------------------------------
/static/img/developer-guide/plugin/extension-points/ui/default-editor-extension-drag.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/developer-guide/plugin/extension-points/ui/default-editor-extension-drag.png
--------------------------------------------------------------------------------
/static/img/developer-guide/plugin/extension-points/ui/default-editor-extension-slash-command.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/developer-guide/plugin/extension-points/ui/default-editor-extension-slash-command.png
--------------------------------------------------------------------------------
/static/img/developer-guide/plugin/extension-points/ui/default-editor-extension-toolbar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/developer-guide/plugin/extension-points/ui/default-editor-extension-toolbar.png
--------------------------------------------------------------------------------
/static/img/developer-guide/plugin/extension-points/ui/default-editor-extension-toolbox.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/developer-guide/plugin/extension-points/ui/default-editor-extension-toolbox.png
--------------------------------------------------------------------------------
/static/img/developer-guide/plugin/extension-points/ui/editor-create.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/developer-guide/plugin/extension-points/ui/editor-create.png
--------------------------------------------------------------------------------
/static/img/developer-guide/plugin/extension-points/ui/plugin-installation-tabs-create.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/developer-guide/plugin/extension-points/ui/plugin-installation-tabs-create.png
--------------------------------------------------------------------------------
/static/img/developer-guide/plugin/extension-points/ui/plugin-list-item-field-create.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/developer-guide/plugin/extension-points/ui/plugin-list-item-field-create.png
--------------------------------------------------------------------------------
/static/img/developer-guide/plugin/extension-points/ui/plugin-list-item-operation-create.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/developer-guide/plugin/extension-points/ui/plugin-list-item-operation-create.png
--------------------------------------------------------------------------------
/static/img/developer-guide/plugin/extension-points/ui/plugin-self-tabs-create.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/developer-guide/plugin/extension-points/ui/plugin-self-tabs-create.png
--------------------------------------------------------------------------------
/static/img/developer-guide/plugin/extension-points/ui/post-list-item-field-create.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/developer-guide/plugin/extension-points/ui/post-list-item-field-create.png
--------------------------------------------------------------------------------
/static/img/developer-guide/plugin/extension-points/ui/post-list-item-operation-create.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/developer-guide/plugin/extension-points/ui/post-list-item-operation-create.png
--------------------------------------------------------------------------------
/static/img/developer-guide/plugin/extension-points/ui/reply-list-item-operation-create.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/developer-guide/plugin/extension-points/ui/reply-list-item-operation-create.png
--------------------------------------------------------------------------------
/static/img/developer-guide/plugin/extension-points/ui/single-page-list-item-field-create.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/developer-guide/plugin/extension-points/ui/single-page-list-item-field-create.png
--------------------------------------------------------------------------------
/static/img/developer-guide/plugin/extension-points/ui/single-page-list-item-operation-create.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/developer-guide/plugin/extension-points/ui/single-page-list-item-operation-create.png
--------------------------------------------------------------------------------
/static/img/developer-guide/plugin/extension-points/ui/theme-list-item-operation-create.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/developer-guide/plugin/extension-points/ui/theme-list-item-operation-create.png
--------------------------------------------------------------------------------
/static/img/developer-guide/plugin/extension-points/ui/theme-list-tabs-create.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/developer-guide/plugin/extension-points/ui/theme-list-tabs-create.png
--------------------------------------------------------------------------------
/static/img/developer-guide/plugin/extension-points/ui/uc-user-profile-tabs-create.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/developer-guide/plugin/extension-points/ui/uc-user-profile-tabs-create.png
--------------------------------------------------------------------------------
/static/img/developer-guide/plugin/extension-points/ui/user-detail-tabs-create.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/developer-guide/plugin/extension-points/ui/user-detail-tabs-create.png
--------------------------------------------------------------------------------
/static/img/developer-guide/plugin/use-devtools.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/developer-guide/plugin/use-devtools.png
--------------------------------------------------------------------------------
/static/img/developer-guide/rest-api/swagger-ui-overview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/developer-guide/rest-api/swagger-ui-overview.png
--------------------------------------------------------------------------------
/static/img/developer-guide/theme/custom-login-layout.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/developer-guide/theme/custom-login-layout.png
--------------------------------------------------------------------------------
/static/img/developer-guide/theme/custom-signup-layout.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/developer-guide/theme/custom-signup-layout.png
--------------------------------------------------------------------------------
/static/img/developer-run/IntelliJ-IDEA-Profiles-Win.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/developer-run/IntelliJ-IDEA-Profiles-Win.png
--------------------------------------------------------------------------------
/static/img/developer-run/IntelliJ-IDEA-Profiles-macOS.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/developer-run/IntelliJ-IDEA-Profiles-macOS.png
--------------------------------------------------------------------------------
/static/img/favicon-96x96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/favicon-96x96.png
--------------------------------------------------------------------------------
/static/img/formkit/formkit-repeater.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/formkit/formkit-repeater.png
--------------------------------------------------------------------------------
/static/img/formkit/formkit-verify-form.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/formkit/formkit-verify-form.png
--------------------------------------------------------------------------------
/static/img/halo-data-export.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/halo-data-export.png
--------------------------------------------------------------------------------
/static/img/halo-plugin-hello-world-todo-swagger-api.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/halo-plugin-hello-world-todo-swagger-api.png
--------------------------------------------------------------------------------
/static/img/install/1panel/1panel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/install/1panel/1panel.png
--------------------------------------------------------------------------------
/static/img/install/1panel/app-store-halo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/install/1panel/app-store-halo.png
--------------------------------------------------------------------------------
/static/img/install/1panel/halo-console.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/install/1panel/halo-console.png
--------------------------------------------------------------------------------
/static/img/install/1panel/halo-status.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/install/1panel/halo-status.png
--------------------------------------------------------------------------------
/static/img/install/1panel/install-halo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/install/1panel/install-halo.png
--------------------------------------------------------------------------------
/static/img/install/1panel/new-site.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/install/1panel/new-site.png
--------------------------------------------------------------------------------
/static/img/install/1panel/openresty-mysql.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/install/1panel/openresty-mysql.png
--------------------------------------------------------------------------------
/static/img/install/1panel/site.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/install/1panel/site.png
--------------------------------------------------------------------------------
/static/img/install/alibab-cloud-computenest/deploy_1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/install/alibab-cloud-computenest/deploy_1.jpg
--------------------------------------------------------------------------------
/static/img/install/alibab-cloud-computenest/deploy_2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/install/alibab-cloud-computenest/deploy_2.jpg
--------------------------------------------------------------------------------
/static/img/install/alibab-cloud-computenest/halo-setup.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/install/alibab-cloud-computenest/halo-setup.jpg
--------------------------------------------------------------------------------
/static/img/install/alibaba-cloud-market/1panel-add-domain.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/install/alibaba-cloud-market/1panel-add-domain.png
--------------------------------------------------------------------------------
/static/img/install/alibaba-cloud-market/1panel-installed-apps.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/install/alibaba-cloud-market/1panel-installed-apps.png
--------------------------------------------------------------------------------
/static/img/install/alibaba-cloud-market/1panel-update-halo-external-url.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/install/alibaba-cloud-market/1panel-update-halo-external-url.png
--------------------------------------------------------------------------------
/static/img/install/alibaba-cloud-market/1panel-upgrade-halo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/install/alibaba-cloud-market/1panel-upgrade-halo.png
--------------------------------------------------------------------------------
/static/img/install/alibaba-cloud-market/1panel-website.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/install/alibaba-cloud-market/1panel-website.png
--------------------------------------------------------------------------------
/static/img/install/alibaba-cloud-market/1panel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/install/alibaba-cloud-market/1panel.png
--------------------------------------------------------------------------------
/static/img/install/alibaba-cloud-market/buy-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/install/alibaba-cloud-market/buy-1.png
--------------------------------------------------------------------------------
/static/img/install/alibaba-cloud-market/buy-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/install/alibaba-cloud-market/buy-2.png
--------------------------------------------------------------------------------
/static/img/install/alibaba-cloud-market/buy-3.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/install/alibaba-cloud-market/buy-3.jpeg
--------------------------------------------------------------------------------
/static/img/install/alibaba-cloud-market/buy-4.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/install/alibaba-cloud-market/buy-4.jpeg
--------------------------------------------------------------------------------
/static/img/install/alibaba-cloud-market/get-1panel-info.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/install/alibaba-cloud-market/get-1panel-info.png
--------------------------------------------------------------------------------
/static/img/install/alibaba-cloud-market/instance.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/install/alibaba-cloud-market/instance.png
--------------------------------------------------------------------------------
/static/img/install/alibaba-cloud-market/iptables-1panel.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/install/alibaba-cloud-market/iptables-1panel.jpeg
--------------------------------------------------------------------------------
/static/img/install/alibaba-cloud-market/iptables-http.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/install/alibaba-cloud-market/iptables-http.jpeg
--------------------------------------------------------------------------------
/static/img/install/tencent-cloud-lighthouse/1panel-info.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/install/tencent-cloud-lighthouse/1panel-info.png
--------------------------------------------------------------------------------
/static/img/install/tencent-cloud-lighthouse/1panel-login.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/install/tencent-cloud-lighthouse/1panel-login.png
--------------------------------------------------------------------------------
/static/img/install/tencent-cloud-lighthouse/1panel-overview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/install/tencent-cloud-lighthouse/1panel-overview.png
--------------------------------------------------------------------------------
/static/img/install/tencent-cloud-lighthouse/application.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/install/tencent-cloud-lighthouse/application.png
--------------------------------------------------------------------------------
/static/img/install/tencent-cloud-lighthouse/buy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/install/tencent-cloud-lighthouse/buy.png
--------------------------------------------------------------------------------
/static/img/install/tencent-cloud-lighthouse/domain.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/install/tencent-cloud-lighthouse/domain.png
--------------------------------------------------------------------------------
/static/img/install/tencent-cloud-lighthouse/external-url.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/install/tencent-cloud-lighthouse/external-url.png
--------------------------------------------------------------------------------
/static/img/install/tencent-cloud-lighthouse/firewall.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/install/tencent-cloud-lighthouse/firewall.png
--------------------------------------------------------------------------------
/static/img/install/tencent-cloud-lighthouse/halo-setup.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/install/tencent-cloud-lighthouse/halo-setup.png
--------------------------------------------------------------------------------
/static/img/install/tencent-cloud-lighthouse/installed-apps.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/install/tencent-cloud-lighthouse/installed-apps.png
--------------------------------------------------------------------------------
/static/img/install/tencent-cloud-lighthouse/upgrade.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/install/tencent-cloud-lighthouse/upgrade.png
--------------------------------------------------------------------------------
/static/img/install/tencent-cloud-lighthouse/websites.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/install/tencent-cloud-lighthouse/websites.png
--------------------------------------------------------------------------------
/static/img/migrate/halo1.6-export.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/migrate/halo1.6-export.png
--------------------------------------------------------------------------------
/static/img/migrate/halo2.0-migrate-plugin-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/migrate/halo2.0-migrate-plugin-1.png
--------------------------------------------------------------------------------
/static/img/migrate/halo2.0-migrate-plugin-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/migrate/halo2.0-migrate-plugin-2.png
--------------------------------------------------------------------------------
/static/img/migrate/halo2.0-migrate-plugin-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/migrate/halo2.0-migrate-plugin-3.png
--------------------------------------------------------------------------------
/static/img/migrate/halo2.0-migrate-plugin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/migrate/halo2.0-migrate-plugin.png
--------------------------------------------------------------------------------
/static/img/nginx-proxy-manager/Nginx-Proxy-Manager-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/nginx-proxy-manager/Nginx-Proxy-Manager-1.png
--------------------------------------------------------------------------------
/static/img/nginx-proxy-manager/Nginx-Proxy-Manager-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/nginx-proxy-manager/Nginx-Proxy-Manager-2.png
--------------------------------------------------------------------------------
/static/img/nginx-proxy-manager/Nginx-Proxy-Manager-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/nginx-proxy-manager/Nginx-Proxy-Manager-3.png
--------------------------------------------------------------------------------
/static/img/nginx-proxy-manager/Nginx-Proxy-Manager-4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/nginx-proxy-manager/Nginx-Proxy-Manager-4.png
--------------------------------------------------------------------------------
/static/img/nginx-proxy-manager/Nginx-Proxy-Manager-5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/nginx-proxy-manager/Nginx-Proxy-Manager-5.png
--------------------------------------------------------------------------------
/static/img/nginx-proxy-manager/Nginx-Proxy-Manager-6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/nginx-proxy-manager/Nginx-Proxy-Manager-6.png
--------------------------------------------------------------------------------
/static/img/nginx-proxy-manager/Nginx-Proxy-Manager-7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/nginx-proxy-manager/Nginx-Proxy-Manager-7.png
--------------------------------------------------------------------------------
/static/img/nginx-proxy-manager/Nginx-Proxy-Manager-8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/nginx-proxy-manager/Nginx-Proxy-Manager-8.png
--------------------------------------------------------------------------------
/static/img/plugin-hello-world.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/plugin-hello-world.png
--------------------------------------------------------------------------------
/static/img/setup/setup-2.20.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/setup/setup-2.20.png
--------------------------------------------------------------------------------
/static/img/setup/setup.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/setup/setup.png
--------------------------------------------------------------------------------
/static/img/theme/reload-theme-config.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/theme/reload-theme-config.png
--------------------------------------------------------------------------------
/static/img/todo-ui.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/todo-ui.png
--------------------------------------------------------------------------------
/static/img/todolist-in-list.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/todolist-in-list.png
--------------------------------------------------------------------------------
/static/img/uc/totp-config.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/uc/totp-config.png
--------------------------------------------------------------------------------
/static/img/uc/totp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/uc/totp.png
--------------------------------------------------------------------------------
/static/img/uc/uc-entry.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/uc/uc-entry.png
--------------------------------------------------------------------------------
/static/img/uc/uc-notification-preferences.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/uc/uc-notification-preferences.png
--------------------------------------------------------------------------------
/static/img/uc/uc-notifications.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/uc/uc-notifications.png
--------------------------------------------------------------------------------
/static/img/uc/uc-pat-creation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/uc/uc-pat-creation.png
--------------------------------------------------------------------------------
/static/img/uc/uc-pat-token.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/uc/uc-pat-token.png
--------------------------------------------------------------------------------
/static/img/uc/uc-pat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/uc/uc-pat.png
--------------------------------------------------------------------------------
/static/img/uc/uc-posts.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/uc/uc-posts.png
--------------------------------------------------------------------------------
/static/img/uc/uc-profile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/uc/uc-profile.png
--------------------------------------------------------------------------------
/static/img/uc/user-devices.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/uc/user-devices.png
--------------------------------------------------------------------------------
/static/img/user-guide/app-store/app-store-license-generate-license-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/app-store/app-store-license-generate-license-1.png
--------------------------------------------------------------------------------
/static/img/user-guide/app-store/app-store-license-generate-license-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/app-store/app-store-license-generate-license-2.png
--------------------------------------------------------------------------------
/static/img/user-guide/app-store/app-store-license-generate-license-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/app-store/app-store-license-generate-license-3.png
--------------------------------------------------------------------------------
/static/img/user-guide/app-store/app-store-license-manage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/app-store/app-store-license-manage.png
--------------------------------------------------------------------------------
/static/img/user-guide/app-store/app-store-license-offline-option.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/app-store/app-store-license-offline-option.png
--------------------------------------------------------------------------------
/static/img/user-guide/app-store/app-store-license-offline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/app-store/app-store-license-offline.png
--------------------------------------------------------------------------------
/static/img/user-guide/app-store/app-store-license-status.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/app-store/app-store-license-status.png
--------------------------------------------------------------------------------
/static/img/user-guide/app-store/app-store-page.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/app-store/app-store-page.png
--------------------------------------------------------------------------------
/static/img/user-guide/app-store/app-store-pat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/app-store/app-store-pat.png
--------------------------------------------------------------------------------
/static/img/user-guide/app-store/app-store-plugin-license.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/app-store/app-store-plugin-license.png
--------------------------------------------------------------------------------
/static/img/user-guide/app-store/app-store-plugins.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/app-store/app-store-plugins.png
--------------------------------------------------------------------------------
/static/img/user-guide/app-store/app-store-themes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/app-store/app-store-themes.png
--------------------------------------------------------------------------------
/static/img/user-guide/app-store/app-store-upgrade-plugin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/app-store/app-store-upgrade-plugin.png
--------------------------------------------------------------------------------
/static/img/user-guide/app-store/app-store-upgrade-theme.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/app-store/app-store-upgrade-theme.png
--------------------------------------------------------------------------------
/static/img/user-guide/attachments/attachment-batch-operate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/attachments/attachment-batch-operate.png
--------------------------------------------------------------------------------
/static/img/user-guide/attachments/attachment-detail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/attachments/attachment-detail.png
--------------------------------------------------------------------------------
/static/img/user-guide/attachments/attachment-group-add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/attachments/attachment-group-add.png
--------------------------------------------------------------------------------
/static/img/user-guide/attachments/attachment-group-delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/attachments/attachment-group-delete.png
--------------------------------------------------------------------------------
/static/img/user-guide/attachments/attachment-move.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/attachments/attachment-move.png
--------------------------------------------------------------------------------
/static/img/user-guide/attachments/attachment-policy-add-local.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/attachments/attachment-policy-add-local.png
--------------------------------------------------------------------------------
/static/img/user-guide/attachments/attachment-policy-add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/attachments/attachment-policy-add.png
--------------------------------------------------------------------------------
/static/img/user-guide/attachments/attachment-policy-operate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/attachments/attachment-policy-operate.png
--------------------------------------------------------------------------------
/static/img/user-guide/attachments/attachment-policy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/attachments/attachment-policy.png
--------------------------------------------------------------------------------
/static/img/user-guide/attachments/attachment-upload-multiple.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/attachments/attachment-upload-multiple.png
--------------------------------------------------------------------------------
/static/img/user-guide/attachments/attachment-upload.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/attachments/attachment-upload.png
--------------------------------------------------------------------------------
/static/img/user-guide/backup/backup-complete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/backup/backup-complete.png
--------------------------------------------------------------------------------
/static/img/user-guide/backup/backup-running.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/backup/backup-running.png
--------------------------------------------------------------------------------
/static/img/user-guide/backup/before-restore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/backup/before-restore.png
--------------------------------------------------------------------------------
/static/img/user-guide/backup/create-backup.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/backup/create-backup.png
--------------------------------------------------------------------------------
/static/img/user-guide/backup/restore-complete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/backup/restore-complete.png
--------------------------------------------------------------------------------
/static/img/user-guide/backup/restore-upload.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/backup/restore-upload.png
--------------------------------------------------------------------------------
/static/img/user-guide/backup/restore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/backup/restore.png
--------------------------------------------------------------------------------
/static/img/user-guide/backup/waiting-restart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/backup/waiting-restart.png
--------------------------------------------------------------------------------
/static/img/user-guide/common/login.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/common/login.png
--------------------------------------------------------------------------------
/static/img/user-guide/common/signup.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/common/signup.png
--------------------------------------------------------------------------------
/static/img/user-guide/common/控制台界面说明.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/common/控制台界面说明.png
--------------------------------------------------------------------------------
/static/img/user-guide/menus/create-menu-item-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/menus/create-menu-item-2.png
--------------------------------------------------------------------------------
/static/img/user-guide/menus/create-menu-item.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/menus/create-menu-item.png
--------------------------------------------------------------------------------
/static/img/user-guide/menus/create-menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/menus/create-menu.png
--------------------------------------------------------------------------------
/static/img/user-guide/menus/menu-item-operation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/menus/menu-item-operation.png
--------------------------------------------------------------------------------
/static/img/user-guide/menus/menu-operation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/menus/menu-operation.png
--------------------------------------------------------------------------------
/static/img/user-guide/menus/menus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/menus/menus.png
--------------------------------------------------------------------------------
/static/img/user-guide/menus/sort.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/menus/sort.gif
--------------------------------------------------------------------------------
/static/img/user-guide/pages/page-about.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/pages/page-about.png
--------------------------------------------------------------------------------
/static/img/user-guide/plugins/extension-point-settings-entry.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/plugins/extension-point-settings-entry.png
--------------------------------------------------------------------------------
/static/img/user-guide/plugins/extension-point-settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/plugins/extension-point-settings.png
--------------------------------------------------------------------------------
/static/img/user-guide/plugins/plugin-install.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/plugins/plugin-install.png
--------------------------------------------------------------------------------
/static/img/user-guide/plugins/plugin-setting.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/plugins/plugin-setting.png
--------------------------------------------------------------------------------
/static/img/user-guide/plugins/plugin-switch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/plugins/plugin-switch.png
--------------------------------------------------------------------------------
/static/img/user-guide/plugins/plugin-uninstall.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/plugins/plugin-uninstall.png
--------------------------------------------------------------------------------
/static/img/user-guide/posts/category-create-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/posts/category-create-2.png
--------------------------------------------------------------------------------
/static/img/user-guide/posts/category-create.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/posts/category-create.png
--------------------------------------------------------------------------------
/static/img/user-guide/posts/category-move.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/posts/category-move.gif
--------------------------------------------------------------------------------
/static/img/user-guide/posts/post-edit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/posts/post-edit.png
--------------------------------------------------------------------------------
/static/img/user-guide/posts/post-setting.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/posts/post-setting.png
--------------------------------------------------------------------------------
/static/img/user-guide/posts/tag-create.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/posts/tag-create.png
--------------------------------------------------------------------------------
/static/img/user-guide/posts/tag-list.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/posts/tag-list.png
--------------------------------------------------------------------------------
/static/img/user-guide/settings/setting-basic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/settings/setting-basic.png
--------------------------------------------------------------------------------
/static/img/user-guide/themes/theme-install-alt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/themes/theme-install-alt.png
--------------------------------------------------------------------------------
/static/img/user-guide/themes/theme-install.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/themes/theme-install.png
--------------------------------------------------------------------------------
/static/img/user-guide/themes/theme-preview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/themes/theme-preview.png
--------------------------------------------------------------------------------
/static/img/user-guide/themes/theme-setting.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/themes/theme-setting.png
--------------------------------------------------------------------------------
/static/img/user-guide/themes/theme-uninstall.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/themes/theme-uninstall.png
--------------------------------------------------------------------------------
/static/img/user-guide/user-permission.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/user-permission.png
--------------------------------------------------------------------------------
/static/img/user-guide/users/auth-providers-2.20+.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/users/auth-providers-2.20+.png
--------------------------------------------------------------------------------
/static/img/user-guide/users/auth-providers-entry.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/users/auth-providers-entry.png
--------------------------------------------------------------------------------
/static/img/user-guide/users/auth-providers.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/users/auth-providers.png
--------------------------------------------------------------------------------
/static/img/user-guide/users/role-creation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/users/role-creation.png
--------------------------------------------------------------------------------
/static/img/user-guide/users/role-fork.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/users/role-fork.png
--------------------------------------------------------------------------------
/static/img/user-guide/users/role-management.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/users/role-management.png
--------------------------------------------------------------------------------
/static/img/user-guide/users/user-operate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/users/user-operate.png
--------------------------------------------------------------------------------
/static/img/user-guide/users/user-setting-2.20+.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/users/user-setting-2.20+.png
--------------------------------------------------------------------------------
/static/img/user-guide/users/user-setting.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/halo-dev/docs/552146f8a7cbf6bd432fd1a7cbec1f70d711aef4/static/img/user-guide/users/user-setting.png
--------------------------------------------------------------------------------
/versioned_docs/version-2.16/about.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 关于文档
3 | description: 关于本文档站点的一些说明
4 | ---
5 |
6 | :::note
7 | 此文档使用 [Docusaurus](https://docusaurus.io/) 搭建,感谢 [Docusaurus](https://github.com/facebook/docusaurus) 社区所做的贡献。
8 | :::
9 |
10 | ## 参与贡献
11 |
12 | :::tip
13 | 如果你发现文档中有不正确或者需要添加的内容,非常欢迎参与到文档编辑当中。
14 | :::
15 |
16 | 当前文档的仓库地址为 [halo-dev/docs](https://github.com/halo-dev/docs) ,所以你可以 fork 此仓库,修改之后提交 `Pull request` 等待我们合并即可。
17 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.16/contribution/issue.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 问题反馈
3 | description: 问题反馈渠道及指南
4 | ---
5 |
6 | :::info
7 | 如果您在使用过程中遇到了什么问题,您可以通过下面的方式反馈,但请尽量按照要求提出反馈。
8 | :::
9 |
10 | ## GitHub Issues
11 |
12 | 链接:[https://github.com/halo-dev/halo/issues](https://github.com/halo-dev/halo/issues)
13 |
14 | 如果你在使用过程中,遇到了一些 bug 或者需要添加某些新特性,请尽量在 GitHub Issues 进行反馈,这非常有助于我们跟踪解决此问题,您也可以很方便的接收到处理状态。
15 |
16 | 建议步骤:
17 |
18 | 1. 在 [Issues 列表](https://github.com/halo-dev/halo/issues) 搜索相关问题,看看是否有其他人已经提到了此问题。
19 | 2. 如果当前还没有人遇到您类似的问题,那么请点击右上角的 `New issue` 按钮创建新的 issue。
20 | 3. 选择正确的反馈类型。
21 | 4. 请尽可能详细的按照模板填写内容。
22 | 5. 点击 `Submit new issue` 提交 issue。
23 |
24 | ## Halo 官方社区
25 |
26 | 链接:[https://bbs.halo.run](https://bbs.halo.run)
27 |
28 | 此平台主要目的用于与其他 Halo 用户进行交流。但如果您对 GitHub 不是很熟悉或者没有账号,您也可以在此平台进行反馈。
29 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.16/contribution/sponsor.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 赞助我们
3 | description: 如果 Halo 对你有帮助,不妨赞助我们
4 | ---
5 |
6 | ## 为什么需要赞助
7 |
8 | 我们花费了大量的精力来维护这个软件,并且也提供了不少资金来维护服务器,域名等。因此我们需要赞助来节省部分开发成本。你的赞助不仅仅会被我们用来支付一些开发成本(比如服务器,OSS,域名等),还会让我们有更多的信心和精力投入到这个开源项目的开发中。从而让项目保持更加健康的成长以及迭代。
9 |
10 | ## 赞助形式
11 |
12 | :::info
13 | 你可以通过任何形式对我们赞助,不限于资金。
14 | :::
15 |
16 | ### 资金赞助
17 |
18 | - 爱发电:[https://afdian.com/a/halo-dev](https://afdian.com/a/halo-dev)
19 |
20 | ### 通过我们的推广链接购买服务器
21 |
22 | 如果你当前还没有购买服务器,可以考虑通过以下链接购买,这会为我们带来一部分收益。
23 |
24 | - 阿里云:[https://www.aliyun.com/daily-act/ecs/activity_selection?userCode=j57gyupo](https://www.aliyun.com/daily-act/ecs/activity_selection?userCode=j57gyupo)
25 | - 阿里云新人专享:[https://www.aliyun.com/minisite/goods?userCode=j57gyupo](https://www.aliyun.com/minisite/goods?userCode=j57gyupo)
26 | - 腾讯云:[https://curl.qcloud.com/9Ogon25Y](https://curl.qcloud.com/9Ogon25Y)
27 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.16/developer-guide/core/code-style.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 代码风格
3 | description: 代码风格的相关配置说明
4 | ---
5 |
6 | Halo 添加了 checkstyle 插件,来保证每位提交者代码的风格保持一致,减少无效代码的修改。本篇文章主要讲解如何在 IDEA 中添加 CheckStyle 插件,并引入项目所提供的 checkstyle.xml 配置。
7 |
8 | ## 安装 CheckStyle-IDEA
9 |
10 | - 进入 IDEA 插件市场。
11 | - 搜索 CheckStyle-IDEA,点击安装即可。
12 |
13 | ## 配置 CheckStyle
14 |
15 | - 进入 CheckStyle 配置(File | Settings | Tools | Checkstyle)。
16 | - 选择 Checkstyle 版本:9.3(以文件 `application/build.gradle` 中指定的版本为准)。
17 | - 在配置文件中点击添加按钮,配置描述可随便填写(推荐 Halo Checks),选择 ./config/checkstyle/checkstyle.xml,点击下一步和完成。
18 | - 勾选刚刚创建的配置文件。
19 |
20 | ## 配置 Editor
21 |
22 | - 进入编辑器配置(File | Settings | Editor | Code Style)
23 |
24 | - 导入 checkstyle.xm 配置:
25 |
26 | 
27 |
28 | - 选择 `./config/checkstyle/checkstyle.xml` 配置文件,点击确定即可。
29 |
30 | 至此,有关代码风格检查工具和格式化配置已经完成。
31 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.16/developer-guide/core/prepare.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 准备工作
3 | description: 开发环境的准备工作
4 | ---
5 |
6 | ## 环境要求
7 |
8 | - [OpenJDK 17 LTS](https://github.com/openjdk/jdk)
9 | - [Node.js 20 LTS](https://nodejs.org)
10 | - [pnpm 9](https://pnpm.io/)
11 | - [IntelliJ IDEA](https://www.jetbrains.com/idea/)
12 | - [Git](https://git-scm.com/)
13 | - [Docker](https://www.docker.com/)(可选)
14 |
15 | ## 名词解释
16 |
17 | ### 工作目录
18 |
19 | 指 Halo 所依赖的工作目录,在 Halo 运行的时候会在系统当前用户目录下产生一个 halo-next 的文件夹,绝对路径为 ~/halo-next。里面通常包含下列目录或文件:
20 |
21 | 1. `db`:存放 H2 Database 的物理文件,如果你使用其他数据库,那么不会存在这个目录。
22 | 2. `themes`:里面包含用户所安装的主题。
23 | 2. `plugins`:里面包含用户所安装的插件。
24 | 5. `attachments`:附件目录。
25 | 4. `logs`:运行日志目录。
26 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.16/developer-guide/plugin/api-reference/ui/components/attachment-file-type-icon.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: AttachmentFileTypeIcon
3 | description: 附件文件类型图标组件
4 | ---
5 |
6 | 此组件用于根据文件名显示文件类型图标。
7 |
8 | ## 使用示例
9 |
10 | ```html
11 |
12 |
13 |
14 |
15 |
16 | ```
17 |
18 | ## Props
19 |
20 | | 属性名 | 类型 | 默认值 | 描述 |
21 | |--------------|---------------------|-----------|------------------------------------|
22 | | `fileName` | string \| undefined | undefined | 文件名,可以是字符串或未定义。 |
23 | | `displayExt` | boolean | true | 可选,是否显示文件扩展名,默认为 true。 |
24 | | `width` | number | 10 | 可选,组件宽度,默认为 10。 |
25 | | `height` | number | 10 | 可选,组件高度,默认为 10。 |
26 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.16/developer-guide/plugin/api-reference/ui/components/filter-clean-button.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: FilterCleanButton
3 | description: 过滤器清除按钮组件
4 | ---
5 |
6 | ## 使用示例
7 |
8 | ```html
9 |
14 |
15 |
16 |
17 |
18 | ```
19 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.16/developer-guide/plugin/api-reference/ui/components/has-permission.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: HasPermission
3 | description: 权限判断组件
4 | ---
5 |
6 | 此组件用于根据权限控制元素的显示与隐藏。
7 |
8 | ## 使用方式
9 |
10 | ```html
11 |
14 |
15 |
16 |
17 | 删除
18 |
19 |
20 | ```
21 |
22 | ## Props
23 |
24 | | 属性名 | 类型 | 默认值 | 描述 |
25 | |---------------|----------|------|-----------------------|
26 | | `permissions` | string[] | 无,必填 | 定义组件所需的权限列表。 |
27 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.16/developer-guide/plugin/api-reference/ui/components/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 组件
3 | description: 在 Halo UI 中可使用的组件。
4 | ---
5 |
6 | 此文档将介绍所有在插件中可用的组件,以及它们的使用方法和区别。
7 |
8 | ## 基础组件库
9 |
10 | 我们为 Halo 的前端封装了一个基础组件的库,你可以在插件中使用这些组件。
11 |
12 | 安装方式:
13 |
14 | ```bash
15 | pnpm install @halo-dev/components
16 | ```
17 |
18 | 在 Vue 组件中:
19 |
20 | ```html
21 |
24 |
25 |
26 | Hello
27 |
28 | ```
29 |
30 | 所有可用的基础组件以及文档可查阅:[https://halo-ui-components.pages.dev](https://halo-ui-components.pages.dev)
31 |
32 | ## 业务组件和指令
33 |
34 | 除了基础组件库,我们还为 Halo 的前端封装了一些业务组件和指令,这些组件已经在全局注册,你可以直接在插件中使用这些组件和指令。
35 |
36 | 以下是所有可用的业务组件和指令:
37 |
38 | ```mdx-code-block
39 | import DocCardList from '@theme/DocCardList';
40 |
41 |
42 | ```
43 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.16/developer-guide/plugin/api-reference/ui/components/v-permission.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: v-permission
3 | description: 权限指令
4 | ---
5 |
6 | 与 [HasPermission](./has-permission.md) 组件相同,此指令也是用于根据权限控制元素的显示与隐藏。
7 |
8 | ## 使用方式
9 |
10 | ```html
11 |
14 |
15 |
16 | 删除
17 |
18 | ```
19 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.16/developer-guide/plugin/api-reference/ui/components/v-tooltip.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: v-tooltip
3 | description: Tooltip 指令
4 | ---
5 |
6 | 此指令用于在任何元素上添加一个提示框。
7 |
8 | ## 使用方式
9 |
10 | ```html
11 |
14 |
15 |
16 |
17 |
18 | ```
19 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.16/developer-guide/plugin/api-reference/ui/extension-points/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 扩展点
3 | description: Halo UI 为插件提供的扩展点接口
4 | ---
5 |
6 | UI 扩展点是用于扩展 Console 和 UC 的界面的接口,通过实现扩展点接口,插件可以在 Console 和 UC 中扩展功能。
7 |
8 | 以下是目前已支持的扩展点列表:
9 |
10 | ```mdx-code-block
11 | import DocCardList from '@theme/DocCardList';
12 |
13 |
14 | ```
15 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.16/developer-guide/plugin/api-reference/ui/extension-points/interface/Attachment.md:
--------------------------------------------------------------------------------
1 | ```ts
2 | export interface Attachment {
3 | apiVersion: "storage.halo.run/v1alpha1"
4 | kind: "Attachment"
5 | metadata: {
6 | annotations: {}
7 | creationTimestamp: string
8 | labels: {}
9 | name: string // 附件的唯一标识
10 | version: number
11 | }
12 | spec: {
13 | displayName: string // 附件名称
14 | groupName: string // 附件分组
15 | mediaType: string // 附件类型
16 | ownerName: string // 附件上传者
17 | policyName: string // 附件存储策略
18 | size: number // 附件大小
19 | tags: Array
20 | }
21 | status: {
22 | permalink: string // 附件固定访问地址
23 | }
24 | }
25 | ```
26 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.16/developer-guide/plugin/api-reference/ui/extension-points/interface/OperationItem.md:
--------------------------------------------------------------------------------
1 | ```ts title="OperationItem"
2 | export interface OperationItem {
3 | priority: number; // 排序优先级
4 | component: Raw; // 菜单项组件
5 | props?: Record\; // 菜单项组件属性
6 | action?: (item?: T) => void; // 菜单项点击事件
7 | label?: string; // 菜单项标题
8 | hidden?: boolean; // 菜单项是否隐藏
9 | permissions?: string[]; // 菜单项 UI 权限
10 | children?: OperationItem[]; // 子菜单项
11 | }
12 | ```
13 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.16/developer-guide/plugin/appendices.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 附录
3 | description: 附录
4 | ---
--------------------------------------------------------------------------------
/versioned_docs/version-2.16/developer-guide/plugin/basics/ui/intro.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 介绍
3 | description: 介绍插件 UI 部分的基础知识。
4 | ---
5 |
6 | Halo 插件体系的 UI 部分可以让开发者在 Console 控制台和 UC 个人中心添加新的页面或者扩展已有的功能。
7 |
8 | 在开始之前,建议先熟悉或安装以下库和工具:
9 |
10 | 1. [Node.js 18+](https://nodejs.org)
11 | 2. [pnpm 8+](https://pnpm.io)
12 | 3. [Vue.js 3](https://vuejs.org)
13 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.16/developer-guide/plugin/introduction.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 介绍
3 | description: 插件开发的准备工作
4 | ---
5 |
6 | Halo 采用可插拔架构,功能模块之间耦合度低、灵活性提高,支持用户按需安装、卸载插件,操作便捷。同时提供插件开发接口以确保较高扩展性和可维护性,这个系列的文档将帮助你了解如何开发 Halo 插件。
7 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.16/developer-guide/plugin/prepare.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 准备工作
3 | description: 插件开发的准备工作
4 | ---
5 |
6 | 在 Halo 中,插件是使用 Java 和 JavaScript / TypeScript 编写的,UI 使用 [Vuejs](https://vuejs.org) 编写。
7 |
8 | 在创建你的第一个插件之前,请确保你具备以下条件:
9 |
10 | - 你能通过 [Docker 运行 Halo](../../getting-started/install/docker) 或在[开发环境运行 Halo](../core/run.md)。
11 | - 你熟悉 Java Web 开发并掌握 [Spring Boot](https://spring.io/projects/spring-boot/) 框架。
12 | - 你需要在计算机上安装最新的 LTS 版本的 Node.js,如果你还没有Node.js安装,你可以在这里下载 [Node.js 18 LTS](https://nodejs.org/)。
13 | - 你熟悉 Vue 和 TypeScript。
14 | - 你应该熟悉使用 Node.js 包管理器。
15 | - Git 是一个版本控制系统,用于跟踪代码的更改,您需要 Git 来下载示例插件并发布插件。
16 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.16/developer-guide/theme/finder-apis.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Finder API
3 | description: 本文档介绍 Finder API 的使用方法。
4 | ---
5 |
6 | import DocCardList from '@theme/DocCardList';
7 |
8 | 目前在主题模板中获取数据可以使用对应路由提供的 [模板变量](./template-variables),但为了满足在任意位置获取数据的需求,我们提供了 Finder API。
9 |
10 |
11 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.16/developer-guide/theme/finder-apis/plugin.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 插件
3 | description: 插件 - PluginFinder
4 | ---
5 |
6 | ## available(pluginName)
7 |
8 | ```js
9 | pluginFinder.available(pluginName)
10 | ```
11 |
12 | ### 描述
13 |
14 | 判断一个插件是否可用,会同时判断插件是否安装和启用。
15 |
16 | ### 参数
17 |
18 | 1. `pluginName:string` - 插件的唯一标识 `metadata.name`。
19 |
20 | ### 返回值
21 |
22 | `boolean` - 插件是否可用
23 |
24 | ### 示例
25 |
26 | ```html
27 |
28 |
29 |
30 | 搜索
31 |
32 |
33 | ```
34 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.16/developer-guide/theme/finder-apis/site-stats.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 站点统计
3 | description: 站点统计 - SiteStatsFinder
4 | ---
5 |
6 | ## getStats()
7 |
8 | ```js
9 | siteStatsFinder.getStats()
10 | ```
11 |
12 | ### 描述
13 |
14 | 获取站点的统计信息。
15 |
16 | ### 参数
17 |
18 | 无
19 |
20 | ### 返回值
21 |
22 | [#SiteStatsVo](#sitestatsvo)
23 |
24 | ### 示例
25 |
26 | ```html
27 |
31 | ```
32 |
33 | ## 类型定义
34 |
35 | ### SiteStatsVo
36 |
37 | ```json title="SiteStatsVo"
38 | {
39 | "visit": 0, // 访问数量
40 | "upvote": 0, // 点赞数量
41 | "comment": 0, // 评论数量
42 | "post": 0, // 文章数量
43 | "category": 0 // 分类数量
44 | }
45 | ```
46 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.16/developer-guide/theme/template-variables.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 模板变量
3 | ---
4 |
5 | import DocCardList from '@theme/DocCardList';
6 |
7 |
8 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.16/developer-guide/theme/template-variables/tags.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 文章标签集合
3 | description: tags.html - /tags
4 | ---
5 |
6 | import TagVo from '../vo/_TagVo.md'
7 |
8 | ## 路由信息
9 |
10 | - 模板路径:`/templates/tags.html`
11 | - 访问路径:`/tags`
12 |
13 | ## 变量
14 |
15 | ### tags
16 |
17 | #### 变量类型
18 |
19 | List\<[#TagVo](#tagvo)\>
20 |
21 | #### 示例
22 |
23 | ```html title="/templates/tags.html"
24 |
27 | ```
28 |
29 | ### _templateId
30 |
31 | #### 变量值
32 |
33 | `tags`
34 |
35 | ## 类型定义
36 |
37 | ### TagVo
38 |
39 |
40 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.16/developer-guide/theme/vo/_ContentVo.md:
--------------------------------------------------------------------------------
1 | ```json title="ContentVo"
2 | {
3 | "raw": "string", // 原始文本,一般用于给编辑器使用
4 | "content": "string" // 最终渲染的文本
5 | }
6 | ```
7 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.16/developer-guide/theme/vo/_ContributorVo.md:
--------------------------------------------------------------------------------
1 | ```json title="ContributorVo"
2 | {
3 | "name": "string", // 用户名
4 | "displayName": "string", // 显示名称
5 | "avatar": "string", // 头像
6 | "bio": "string", // 描述
7 | "permalink": "string", // 作者的文章归档页面链接
8 | "metadata": {
9 | "name": "string", // 唯一标识
10 | "labels": {
11 | "additionalProp1": "string"
12 | },
13 | "annotations": {
14 | "additionalProp1": "string"
15 | },
16 | "creationTimestamp": "2022-11-20T13:06:38.512Z", // 创建时间
17 | }
18 | }
19 | ```
20 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.16/developer-guide/theme/vo/_MenuVo.md:
--------------------------------------------------------------------------------
1 | ```json title="MenuVo"
2 | {
3 | "metadata": {
4 | "name": "string", // 唯一标识
5 | "labels": {
6 | "additionalProp1": "string"
7 | },
8 | "annotations": {
9 | "additionalProp1": "string"
10 | },
11 | "creationTimestamp": "2022-11-20T14:44:58.984Z", // 创建时间
12 | },
13 | "spec": {
14 | "displayName": "string", // 显示名称
15 | "menuItems": [ // 菜单的菜单项名称集合,即 MenuItem 的 metadata.name 的集合
16 | "string"
17 | ]
18 | },
19 | "menuItems": "List<#MenuItemVo>" // 菜单项的集合
20 | }
21 | ```
22 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.16/developer-guide/theme/vo/_TagVo.md:
--------------------------------------------------------------------------------
1 | ```json title="TagVo"
2 | {
3 | "metadata": {
4 | "name": "string", // 唯一标识
5 | "labels": {
6 | "additionalProp1": "string"
7 | },
8 | "annotations": {
9 | "additionalProp1": "string"
10 | },
11 | "creationTimestamp": "2022-11-20T13:06:38.512Z", // 创建时间
12 | },
13 | "spec": {
14 | "displayName": "string", // 显示名称
15 | "slug": "string", // 别名,通常用于生成 status.permalink
16 | "color": "#F9fEB1", // 背景颜色
17 | "cover": "string" // 封面图
18 | },
19 | "status": {
20 | "permalink": "string", // 固定链接
21 | },
22 | "postCount": 0 // 文章数量
23 | }
24 | ```
25 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.16/getting-started/first-post.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 第一篇文章
3 | description: 安装完成后,如何写下第一篇文章。
4 | ---
5 |
6 |
7 |
8 |
9 | ## 登录管理端
10 |
11 | 浏览器访问 `/console` 即可进入 Halo 管理端。
12 |
13 | ## 新建文章
14 |
15 | Halo 安装完成后,默认初始化了一篇 `Hello Halo` 文章,接下来我们将创建并发布一篇自己的文章。
16 |
17 | 1. 在 Halo 管理端,点击仪表盘页面中的 `创建文章` 快捷入口,即可进入到文章编辑页面。
18 | 2. 在文章编辑器中,你可以尽情写下你想展现的内容。
19 | 3. 当内容编辑完成后,点击右上角的 `发布` 按钮,给文章设置一个合适的标题和别名,同时可以设置文章所属分类、标签及其他一些高级设置。
20 | 4. 确认无误后,点击弹框下方的 `发布` 按钮,我们的第一篇文章就成功发布了。
21 |
22 | :::info
23 | 关于文章相关其他功能及文章各种设置项的说明,请参考《[用户指南-文章](../user-guide/posts.md)》章节
24 | :::
25 |
26 | ## 查看文章
27 |
28 | 文章发布成功后,就可以在主题端查看到我们刚刚创建的文章了。
29 |
30 | 浏览器访问域名进入站点首页,站点展示的内容及样式由当前启用的主题所决定。
31 |
32 | 接下来,选一款喜欢的主题,尽情体验 Halo 吧!
33 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.16/getting-started/install/slots/_docker-registry-list.md:
--------------------------------------------------------------------------------
1 | 目前 Halo 官方维护的 Docker 镜像仓库,可以根据自己的需求选择合适的镜像源:
2 |
3 | - registry.fit2cloud.com/halo/halo
4 | - [halohub/halo](https://hub.docker.com/r/halohub/halo)
5 | - [ghcr.io/halo-dev/halo](https://github.com/halo-dev/halo/pkgs/container/halo)
6 |
7 | :::info 注意
8 | 目前 Halo 2 并未更新 Docker 的 latest 标签镜像,主要因为 Halo 2 不兼容 1.x 版本,防止使用者误操作。我们推荐使用固定版本的标签,比如 `2.16` 或者 `2.16.0`。
9 |
10 | - `registry.fit2cloud.com/halo/halo:2`:表示最新的 2.x 版本,即每次发布新版本都会更新此镜像。
11 | - `registry.fit2cloud.com/halo/halo:2.16`:表示最新的 2.16.x 版本,即每次发布 patch 版本都会同时更新此镜像。
12 | - `registry.fit2cloud.com/halo/halo:2.16.0`:表示一个具体的版本。
13 |
14 | 后续文档以 `registry.fit2cloud.com/halo/halo:2.16` 为例。
15 | :::
16 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.16/getting-started/setup.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 初始化
3 | description: 首次安装的初始化指南
4 | ---
5 |
6 | 通过之前的安装文档,你已经成功安装了 Halo,在首次访问网站的时候会自动跳转到初始化页面,你需要完成这个步骤才能正常使用 Halo。
7 |
8 | 
9 |
10 | 表单项说明:
11 |
12 | 1. **站点名称**:网站的名称,将会显示在浏览器标签页上。
13 | 2. **邮箱**:初始管理员的邮箱地址。
14 | 3. **用户名**:初始管理员的用户名。
15 | 4. **密码**:初始管理员的密码。
16 | 5. **确认密码**:重复输入密码以验证是否匹配。
17 |
18 | 输入完成之后点击**初始化**按钮即可完成初始化,初始化完成之后,将会跳转到登录页面,输入刚才设置的用户名和密码即可登录。
19 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.16/user-guide/pages.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 页面
3 | description: 页面管理相关功能说明
4 | ---
5 |
6 | 页面与文章类似,同样包含页面标题和富文本形式的页面内容。与文章不同的是页面无法设置所属分类和标签信息,一般用于站点中单一展示功能的页面,例如常见的站点关于页面、联系我们页面等。
7 |
8 | 自定义页面的访问链接为 `/{slug}` 其中 `slug` 为自定义页面的别名。
9 |
10 | 对于如下的关于页面,便可以通过 `/about` 地址进行访问。
11 |
12 | 
13 |
14 | :::info
15 | 自定义页面默认使用主题端的 `page.html` 模板进行渲染,如果主题中提供了针对自定义页面的其他模板,用户可以通过修改自定义页面高级设置中的自定义模板设置进行使用。
16 | :::
17 |
18 | #### 页面操作
19 |
20 | 对于页面的新建、设置、发布及删除等操作,与文章操作基本一致,具体操作请参考[《用户指南-文章》](./posts.md)章节,此处不再赘述。
21 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.17/about.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 关于文档
3 | description: 关于本文档站点的一些说明
4 | ---
5 |
6 | :::note
7 | 此文档使用 [Docusaurus](https://docusaurus.io/) 搭建,感谢 [Docusaurus](https://github.com/facebook/docusaurus) 社区所做的贡献。
8 | :::
9 |
10 | ## 参与贡献
11 |
12 | :::tip
13 | 如果你发现文档中有不正确或者需要添加的内容,非常欢迎参与到文档编辑当中。
14 | :::
15 |
16 | 当前文档的仓库地址为 [halo-dev/docs](https://github.com/halo-dev/docs) ,所以你可以 fork 此仓库,修改之后提交 `Pull request` 等待我们合并即可。
17 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.17/contribution/issue.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 问题反馈
3 | description: 问题反馈渠道及指南
4 | ---
5 |
6 | :::info
7 | 如果您在使用过程中遇到了什么问题,您可以通过下面的方式反馈,但请尽量按照要求提出反馈。
8 | :::
9 |
10 | ## GitHub Issues
11 |
12 | 链接:[https://github.com/halo-dev/halo/issues](https://github.com/halo-dev/halo/issues)
13 |
14 | 如果你在使用过程中,遇到了一些 bug 或者需要添加某些新特性,请尽量在 GitHub Issues 进行反馈,这非常有助于我们跟踪解决此问题,您也可以很方便的接收到处理状态。
15 |
16 | 建议步骤:
17 |
18 | 1. 在 [Issues 列表](https://github.com/halo-dev/halo/issues) 搜索相关问题,看看是否有其他人已经提到了此问题。
19 | 2. 如果当前还没有人遇到您类似的问题,那么请点击右上角的 `New issue` 按钮创建新的 issue。
20 | 3. 选择正确的反馈类型。
21 | 4. 请尽可能详细的按照模板填写内容。
22 | 5. 点击 `Submit new issue` 提交 issue。
23 |
24 | ## Halo 官方社区
25 |
26 | 链接:[https://bbs.halo.run](https://bbs.halo.run)
27 |
28 | 此平台主要目的用于与其他 Halo 用户进行交流。但如果您对 GitHub 不是很熟悉或者没有账号,您也可以在此平台进行反馈。
29 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.17/contribution/sponsor.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 赞助我们
3 | description: 如果 Halo 对你有帮助,不妨赞助我们
4 | ---
5 |
6 | ## 为什么需要赞助
7 |
8 | 我们花费了大量的精力来维护这个软件,并且也提供了不少资金来维护服务器,域名等。因此我们需要赞助来节省部分开发成本。你的赞助不仅仅会被我们用来支付一些开发成本(比如服务器,OSS,域名等),还会让我们有更多的信心和精力投入到这个开源项目的开发中。从而让项目保持更加健康的成长以及迭代。
9 |
10 | ## 赞助形式
11 |
12 | :::info
13 | 你可以通过任何形式对我们赞助,不限于资金。
14 | :::
15 |
16 | ### 资金赞助
17 |
18 | - 爱发电:[https://afdian.com/a/halo-dev](https://afdian.com/a/halo-dev)
19 |
20 | ### 通过我们的推广链接购买服务器
21 |
22 | 如果你当前还没有购买服务器,可以考虑通过以下链接购买,这会为我们带来一部分收益。
23 |
24 | - 阿里云:[https://www.aliyun.com/daily-act/ecs/activity_selection?userCode=j57gyupo](https://www.aliyun.com/daily-act/ecs/activity_selection?userCode=j57gyupo)
25 | - 阿里云新人专享:[https://www.aliyun.com/minisite/goods?userCode=j57gyupo](https://www.aliyun.com/minisite/goods?userCode=j57gyupo)
26 | - 腾讯云:[https://curl.qcloud.com/9Ogon25Y](https://curl.qcloud.com/9Ogon25Y)
27 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.17/developer-guide/core/code-style.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 代码风格
3 | description: 代码风格的相关配置说明
4 | ---
5 |
6 | Halo 添加了 checkstyle 插件,来保证每位提交者代码的风格保持一致,减少无效代码的修改。本篇文章主要讲解如何在 IDEA 中添加 CheckStyle 插件,并引入项目所提供的 checkstyle.xml 配置。
7 |
8 | ## 安装 CheckStyle-IDEA
9 |
10 | - 进入 IDEA 插件市场。
11 | - 搜索 CheckStyle-IDEA,点击安装即可。
12 |
13 | ## 配置 CheckStyle
14 |
15 | - 进入 CheckStyle 配置(File | Settings | Tools | Checkstyle)。
16 | - 选择 Checkstyle 版本:9.3(以文件 `application/build.gradle` 中指定的版本为准)。
17 | - 在配置文件中点击添加按钮,配置描述可随便填写(推荐 Halo Checks),选择 ./config/checkstyle/checkstyle.xml,点击下一步和完成。
18 | - 勾选刚刚创建的配置文件。
19 |
20 | ## 配置 Editor
21 |
22 | - 进入编辑器配置(File | Settings | Editor | Code Style)
23 |
24 | - 导入 checkstyle.xm 配置:
25 |
26 | 
27 |
28 | - 选择 `./config/checkstyle/checkstyle.xml` 配置文件,点击确定即可。
29 |
30 | 至此,有关代码风格检查工具和格式化配置已经完成。
31 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.17/developer-guide/core/prepare.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 准备工作
3 | description: 开发环境的准备工作
4 | ---
5 |
6 | ## 环境要求
7 |
8 | - [OpenJDK 17 LTS](https://github.com/openjdk/jdk)
9 | - [Node.js 20 LTS](https://nodejs.org)
10 | - [pnpm 9](https://pnpm.io/)
11 | - [IntelliJ IDEA](https://www.jetbrains.com/idea/)
12 | - [Git](https://git-scm.com/)
13 | - [Docker](https://www.docker.com/)(可选)
14 |
15 | ## 名词解释
16 |
17 | ### 工作目录
18 |
19 | 指 Halo 所依赖的工作目录,在 Halo 运行的时候会在系统当前用户目录下产生一个 halo-next 的文件夹,绝对路径为 ~/halo-next。里面通常包含下列目录或文件:
20 |
21 | 1. `db`:存放 H2 Database 的物理文件,如果你使用其他数据库,那么不会存在这个目录。
22 | 2. `themes`:里面包含用户所安装的主题。
23 | 2. `plugins`:里面包含用户所安装的插件。
24 | 5. `attachments`:附件目录。
25 | 4. `logs`:运行日志目录。
26 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.17/developer-guide/plugin/api-reference/ui/components/attachment-file-type-icon.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: AttachmentFileTypeIcon
3 | description: 附件文件类型图标组件
4 | ---
5 |
6 | 此组件用于根据文件名显示文件类型图标。
7 |
8 | ## 使用示例
9 |
10 | ```html
11 |
12 |
13 |
14 |
15 |
16 | ```
17 |
18 | ## Props
19 |
20 | | 属性名 | 类型 | 默认值 | 描述 |
21 | |--------------|---------------------|-----------|------------------------------------|
22 | | `fileName` | string \| undefined | undefined | 文件名,可以是字符串或未定义。 |
23 | | `displayExt` | boolean | true | 可选,是否显示文件扩展名,默认为 true。 |
24 | | `width` | number | 10 | 可选,组件宽度,默认为 10。 |
25 | | `height` | number | 10 | 可选,组件高度,默认为 10。 |
26 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.17/developer-guide/plugin/api-reference/ui/components/filter-clean-button.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: FilterCleanButton
3 | description: 过滤器清除按钮组件
4 | ---
5 |
6 | ## 使用示例
7 |
8 | ```html
9 |
14 |
15 |
16 |
17 |
18 | ```
19 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.17/developer-guide/plugin/api-reference/ui/components/has-permission.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: HasPermission
3 | description: 权限判断组件
4 | ---
5 |
6 | 此组件用于根据权限控制元素的显示与隐藏。
7 |
8 | ## 使用方式
9 |
10 | ```html
11 |
14 |
15 |
16 |
17 | 删除
18 |
19 |
20 | ```
21 |
22 | ## Props
23 |
24 | | 属性名 | 类型 | 默认值 | 描述 |
25 | |---------------|----------|------|-----------------------|
26 | | `permissions` | string[] | 无,必填 | 定义组件所需的权限列表。 |
27 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.17/developer-guide/plugin/api-reference/ui/components/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 组件
3 | description: 在 Halo UI 中可使用的组件。
4 | ---
5 |
6 | 此文档将介绍所有在插件中可用的组件,以及它们的使用方法和区别。
7 |
8 | ## 基础组件库
9 |
10 | 我们为 Halo 的前端封装了一个基础组件的库,你可以在插件中使用这些组件。
11 |
12 | 安装方式:
13 |
14 | ```bash
15 | pnpm install @halo-dev/components
16 | ```
17 |
18 | 在 Vue 组件中:
19 |
20 | ```html
21 |
24 |
25 |
26 | Hello
27 |
28 | ```
29 |
30 | 所有可用的基础组件以及文档可查阅:[https://halo-ui-components.pages.dev](https://halo-ui-components.pages.dev)
31 |
32 | ## 业务组件和指令
33 |
34 | 除了基础组件库,我们还为 Halo 的前端封装了一些业务组件和指令,这些组件已经在全局注册,你可以直接在插件中使用这些组件和指令。
35 |
36 | 以下是所有可用的业务组件和指令:
37 |
38 | ```mdx-code-block
39 | import DocCardList from '@theme/DocCardList';
40 |
41 |
42 | ```
43 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.17/developer-guide/plugin/api-reference/ui/components/plugin-detail-modal.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: PluginDetailModal
3 | description: 插件详情弹窗组件
4 | ---
5 |
6 | 此组件可以在 UI 部分的任意组件中打开差价的详情和设置弹窗,可以用于实现在不打断正常操作流程的情况下让用户查看和修改插件的详细信息。
7 |
8 | ## 使用方式
9 |
10 | ```html
11 |
20 |
21 |
22 |
23 |
24 | ```
25 |
26 | ## Props
27 |
28 | | 属性名 | 类型 | 默认值 | 描述 |
29 | | ------ | ------ | -------- | --------------------------------------------- |
30 | | `name` | string | 无,必填 | 插件名称,即 plugin.yaml 中的 `metadata.name` |
31 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.17/developer-guide/plugin/api-reference/ui/components/v-permission.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: v-permission
3 | description: 权限指令
4 | ---
5 |
6 | 与 [HasPermission](./has-permission.md) 组件相同,此指令也是用于根据权限控制元素的显示与隐藏。
7 |
8 | ## 使用方式
9 |
10 | ```html
11 |
14 |
15 |
16 | 删除
17 |
18 | ```
19 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.17/developer-guide/plugin/api-reference/ui/components/v-tooltip.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: v-tooltip
3 | description: Tooltip 指令
4 | ---
5 |
6 | 此指令用于在任何元素上添加一个提示框。
7 |
8 | ## 使用方式
9 |
10 | ```html
11 |
14 |
15 |
16 |
17 |
18 | ```
19 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.17/developer-guide/plugin/api-reference/ui/extension-points/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 扩展点
3 | description: Halo UI 为插件提供的扩展点接口
4 | ---
5 |
6 | UI 扩展点是用于扩展 Console 和 UC 的界面的接口,通过实现扩展点接口,插件可以在 Console 和 UC 中扩展功能。
7 |
8 | 以下是目前已支持的扩展点列表:
9 |
10 | ```mdx-code-block
11 | import DocCardList from '@theme/DocCardList';
12 |
13 |
14 | ```
15 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.17/developer-guide/plugin/api-reference/ui/extension-points/interface/Attachment.md:
--------------------------------------------------------------------------------
1 | ```ts
2 | export interface Attachment {
3 | apiVersion: "storage.halo.run/v1alpha1"
4 | kind: "Attachment"
5 | metadata: {
6 | annotations: {}
7 | creationTimestamp: string
8 | labels: {}
9 | name: string // 附件的唯一标识
10 | version: number
11 | }
12 | spec: {
13 | displayName: string // 附件名称
14 | groupName: string // 附件分组
15 | mediaType: string // 附件类型
16 | ownerName: string // 附件上传者
17 | policyName: string // 附件存储策略
18 | size: number // 附件大小
19 | tags: Array
20 | }
21 | status: {
22 | permalink: string // 附件固定访问地址
23 | }
24 | }
25 | ```
26 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.17/developer-guide/plugin/api-reference/ui/extension-points/interface/OperationItem.md:
--------------------------------------------------------------------------------
1 | ```ts title="OperationItem"
2 | export interface OperationItem {
3 | priority: number; // 排序优先级
4 | component: Raw; // 菜单项组件
5 | props?: Record\; // 菜单项组件属性
6 | action?: (item?: T) => void; // 菜单项点击事件
7 | label?: string; // 菜单项标题
8 | hidden?: boolean; // 菜单项是否隐藏
9 | permissions?: string[]; // 菜单项 UI 权限
10 | children?: OperationItem[]; // 子菜单项
11 | }
12 | ```
13 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.17/developer-guide/plugin/appendices.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 附录
3 | description: 附录
4 | ---
--------------------------------------------------------------------------------
/versioned_docs/version-2.17/developer-guide/plugin/basics/ui/intro.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 介绍
3 | description: 介绍插件 UI 部分的基础知识。
4 | ---
5 |
6 | Halo 插件体系的 UI 部分可以让开发者在 Console 控制台和 UC 个人中心添加新的页面或者扩展已有的功能。
7 |
8 | 在开始之前,建议先熟悉或安装以下库和工具:
9 |
10 | 1. [Node.js 18+](https://nodejs.org)
11 | 2. [pnpm 8+](https://pnpm.io)
12 | 3. [Vue.js 3](https://vuejs.org)
13 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.17/developer-guide/plugin/introduction.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 介绍
3 | description: 插件开发的准备工作
4 | ---
5 |
6 | Halo 采用可插拔架构,功能模块之间耦合度低、灵活性提高,支持用户按需安装、卸载插件,操作便捷。同时提供插件开发接口以确保较高扩展性和可维护性,这个系列的文档将帮助你了解如何开发 Halo 插件。
7 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.17/developer-guide/plugin/prepare.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 准备工作
3 | description: 插件开发的准备工作
4 | ---
5 |
6 | 在 Halo 中,插件是使用 Java 和 JavaScript / TypeScript 编写的,UI 使用 [Vuejs](https://vuejs.org) 编写。
7 |
8 | 在创建你的第一个插件之前,请确保你具备以下条件:
9 |
10 | - 你能通过 [Docker 运行 Halo](../../getting-started/install/docker) 或在[开发环境运行 Halo](../core/run.md)。
11 | - 你熟悉 Java Web 开发并掌握 [Spring Boot](https://spring.io/projects/spring-boot/) 框架。
12 | - 你需要在计算机上安装最新的 LTS 版本的 Node.js,如果你还没有Node.js安装,你可以在这里下载 [Node.js 18 LTS](https://nodejs.org/)。
13 | - 你熟悉 Vue 和 TypeScript。
14 | - 你应该熟悉使用 Node.js 包管理器。
15 | - Git 是一个版本控制系统,用于跟踪代码的更改,您需要 Git 来下载示例插件并发布插件。
16 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.17/developer-guide/theme/finder-apis.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Finder API
3 | description: 本文档介绍 Finder API 的使用方法。
4 | ---
5 |
6 | import DocCardList from '@theme/DocCardList';
7 |
8 | 目前在主题模板中获取数据可以使用对应路由提供的 [模板变量](./template-variables),但为了满足在任意位置获取数据的需求,我们提供了 Finder API。
9 |
10 |
11 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.17/developer-guide/theme/finder-apis/site-stats.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 站点统计
3 | description: 站点统计 - SiteStatsFinder
4 | ---
5 |
6 | ## getStats()
7 |
8 | ```js
9 | siteStatsFinder.getStats()
10 | ```
11 |
12 | ### 描述
13 |
14 | 获取站点的统计信息。
15 |
16 | ### 参数
17 |
18 | 无
19 |
20 | ### 返回值
21 |
22 | [#SiteStatsVo](#sitestatsvo)
23 |
24 | ### 示例
25 |
26 | ```html
27 |
31 | ```
32 |
33 | ## 类型定义
34 |
35 | ### SiteStatsVo
36 |
37 | ```json title="SiteStatsVo"
38 | {
39 | "visit": 0, // 访问数量
40 | "upvote": 0, // 点赞数量
41 | "comment": 0, // 评论数量
42 | "post": 0, // 文章数量
43 | "category": 0 // 分类数量
44 | }
45 | ```
46 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.17/developer-guide/theme/template-variables.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 模板变量
3 | ---
4 |
5 | import DocCardList from '@theme/DocCardList';
6 |
7 |
8 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.17/developer-guide/theme/template-variables/tags.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 文章标签集合
3 | description: tags.html - /tags
4 | ---
5 |
6 | import TagVo from '../vo/_TagVo.md'
7 |
8 | ## 路由信息
9 |
10 | - 模板路径:`/templates/tags.html`
11 | - 访问路径:`/tags`
12 |
13 | ## 变量
14 |
15 | ### tags
16 |
17 | #### 变量类型
18 |
19 | List\<[#TagVo](#tagvo)\>
20 |
21 | #### 示例
22 |
23 | ```html title="/templates/tags.html"
24 |
27 | ```
28 |
29 | ### _templateId
30 |
31 | #### 变量值
32 |
33 | `tags`
34 |
35 | ## 类型定义
36 |
37 | ### TagVo
38 |
39 |
40 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.17/developer-guide/theme/vo/_ContentVo.md:
--------------------------------------------------------------------------------
1 | ```json title="ContentVo"
2 | {
3 | "raw": "string", // 原始文本,一般用于给编辑器使用
4 | "content": "string" // 最终渲染的文本
5 | }
6 | ```
7 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.17/developer-guide/theme/vo/_ContributorVo.md:
--------------------------------------------------------------------------------
1 | ```json title="ContributorVo"
2 | {
3 | "name": "string", // 用户名
4 | "displayName": "string", // 显示名称
5 | "avatar": "string", // 头像
6 | "bio": "string", // 描述
7 | "permalink": "string", // 作者的文章归档页面链接
8 | "metadata": {
9 | "name": "string", // 唯一标识
10 | "labels": {
11 | "additionalProp1": "string"
12 | },
13 | "annotations": {
14 | "additionalProp1": "string"
15 | },
16 | "creationTimestamp": "2022-11-20T13:06:38.512Z", // 创建时间
17 | }
18 | }
19 | ```
20 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.17/developer-guide/theme/vo/_MenuVo.md:
--------------------------------------------------------------------------------
1 | ```json title="MenuVo"
2 | {
3 | "metadata": {
4 | "name": "string", // 唯一标识
5 | "labels": {
6 | "additionalProp1": "string"
7 | },
8 | "annotations": {
9 | "additionalProp1": "string"
10 | },
11 | "creationTimestamp": "2022-11-20T14:44:58.984Z", // 创建时间
12 | },
13 | "spec": {
14 | "displayName": "string", // 显示名称
15 | "menuItems": [ // 菜单的菜单项名称集合,即 MenuItem 的 metadata.name 的集合
16 | "string"
17 | ]
18 | },
19 | "menuItems": "List<#MenuItemVo>" // 菜单项的集合
20 | }
21 | ```
22 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.17/developer-guide/theme/vo/_TagVo.md:
--------------------------------------------------------------------------------
1 | ```json title="TagVo"
2 | {
3 | "metadata": {
4 | "name": "string", // 唯一标识
5 | "labels": {
6 | "additionalProp1": "string"
7 | },
8 | "annotations": {
9 | "additionalProp1": "string"
10 | },
11 | "creationTimestamp": "2022-11-20T13:06:38.512Z", // 创建时间
12 | },
13 | "spec": {
14 | "displayName": "string", // 显示名称
15 | "slug": "string", // 别名,通常用于生成 status.permalink
16 | "color": "#F9fEB1", // 背景颜色
17 | "cover": "string" // 封面图
18 | },
19 | "status": {
20 | "permalink": "string", // 固定链接
21 | },
22 | "postCount": 0 // 文章数量
23 | }
24 | ```
25 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.17/getting-started/first-post.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 第一篇文章
3 | description: 安装完成后,如何写下第一篇文章。
4 | ---
5 |
6 |
7 |
8 |
9 | ## 登录管理端
10 |
11 | 浏览器访问 `/console` 即可进入 Halo 管理端。
12 |
13 | ## 新建文章
14 |
15 | Halo 安装完成后,默认初始化了一篇 `Hello Halo` 文章,接下来我们将创建并发布一篇自己的文章。
16 |
17 | 1. 在 Halo 管理端,点击仪表盘页面中的 `创建文章` 快捷入口,即可进入到文章编辑页面。
18 | 2. 在文章编辑器中,你可以尽情写下你想展现的内容。
19 | 3. 当内容编辑完成后,点击右上角的 `发布` 按钮,给文章设置一个合适的标题和别名,同时可以设置文章所属分类、标签及其他一些高级设置。
20 | 4. 确认无误后,点击弹框下方的 `发布` 按钮,我们的第一篇文章就成功发布了。
21 |
22 | :::info
23 | 关于文章相关其他功能及文章各种设置项的说明,请参考《[用户指南-文章](../user-guide/posts.md)》章节
24 | :::
25 |
26 | ## 查看文章
27 |
28 | 文章发布成功后,就可以在主题端查看到我们刚刚创建的文章了。
29 |
30 | 浏览器访问域名进入站点首页,站点展示的内容及样式由当前启用的主题所决定。
31 |
32 | 接下来,选一款喜欢的主题,尽情体验 Halo 吧!
33 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.17/getting-started/install/slots/_docker-registry-list.md:
--------------------------------------------------------------------------------
1 | 目前 Halo 官方维护的 Docker 镜像仓库,可以根据自己的需求选择合适的镜像源:
2 |
3 | - registry.fit2cloud.com/halo/halo
4 | - [halohub/halo](https://hub.docker.com/r/halohub/halo)
5 | - [ghcr.io/halo-dev/halo](https://github.com/halo-dev/halo/pkgs/container/halo)
6 |
7 | :::info 注意
8 | 目前 Halo 2 并未更新 Docker 的 latest 标签镜像,主要因为 Halo 2 不兼容 1.x 版本,防止使用者误操作。我们推荐使用固定版本的标签,比如 `2.17` 或者 `2.17.0`。
9 |
10 | - `registry.fit2cloud.com/halo/halo:2`:表示最新的 2.x 版本,即每次发布新版本都会更新此镜像。
11 | - `registry.fit2cloud.com/halo/halo:2.17`:表示最新的 2.17.x 版本,即每次发布 patch 版本都会同时更新此镜像。
12 | - `registry.fit2cloud.com/halo/halo:2.17.0`:表示一个具体的版本。
13 |
14 | 后续文档以 `registry.fit2cloud.com/halo/halo:2.17` 为例。
15 | :::
16 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.17/getting-started/setup.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 初始化
3 | description: 首次安装的初始化指南
4 | ---
5 |
6 | 通过之前的安装文档,你已经成功安装了 Halo,在首次访问网站的时候会自动跳转到初始化页面,你需要完成这个步骤才能正常使用 Halo。
7 |
8 | 
9 |
10 | 表单项说明:
11 |
12 | 1. **站点名称**:网站的名称,将会显示在浏览器标签页上。
13 | 2. **邮箱**:初始管理员的邮箱地址。
14 | 3. **用户名**:初始管理员的用户名。
15 | 4. **密码**:初始管理员的密码。
16 | 5. **确认密码**:重复输入密码以验证是否匹配。
17 |
18 | 输入完成之后点击**初始化**按钮即可完成初始化,初始化完成之后,将会跳转到登录页面,输入刚才设置的用户名和密码即可登录。
19 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.17/user-guide/pages.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 页面
3 | description: 页面管理相关功能说明
4 | ---
5 |
6 | 页面与文章类似,同样包含页面标题和富文本形式的页面内容。与文章不同的是页面无法设置所属分类和标签信息,一般用于站点中单一展示功能的页面,例如常见的站点关于页面、联系我们页面等。
7 |
8 | 自定义页面的访问链接为 `/{slug}` 其中 `slug` 为自定义页面的别名。
9 |
10 | 对于如下的关于页面,便可以通过 `/about` 地址进行访问。
11 |
12 | 
13 |
14 | :::info
15 | 自定义页面默认使用主题端的 `page.html` 模板进行渲染,如果主题中提供了针对自定义页面的其他模板,用户可以通过修改自定义页面高级设置中的自定义模板设置进行使用。
16 | :::
17 |
18 | #### 页面操作
19 |
20 | 对于页面的新建、设置、发布及删除等操作,与文章操作基本一致,具体操作请参考[《用户指南-文章》](./posts.md)章节,此处不再赘述。
21 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.18/about.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 关于文档
3 | description: 关于本文档站点的一些说明
4 | ---
5 |
6 | :::note
7 | 此文档使用 [Docusaurus](https://docusaurus.io/) 搭建,感谢 [Docusaurus](https://github.com/facebook/docusaurus) 社区所做的贡献。
8 | :::
9 |
10 | ## 参与贡献
11 |
12 | :::tip
13 | 如果你发现文档中有不正确或者需要添加的内容,非常欢迎参与到文档编辑当中。
14 | :::
15 |
16 | 当前文档的仓库地址为 [halo-dev/docs](https://github.com/halo-dev/docs) ,所以你可以 fork 此仓库,修改之后提交 `Pull request` 等待我们合并即可。
17 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.18/contribution/issue.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 问题反馈
3 | description: 问题反馈渠道及指南
4 | ---
5 |
6 | :::info
7 | 如果您在使用过程中遇到了什么问题,您可以通过下面的方式反馈,但请尽量按照要求提出反馈。
8 | :::
9 |
10 | ## GitHub Issues
11 |
12 | 链接:[https://github.com/halo-dev/halo/issues](https://github.com/halo-dev/halo/issues)
13 |
14 | 如果你在使用过程中,遇到了一些 bug 或者需要添加某些新特性,请尽量在 GitHub Issues 进行反馈,这非常有助于我们跟踪解决此问题,您也可以很方便的接收到处理状态。
15 |
16 | 建议步骤:
17 |
18 | 1. 在 [Issues 列表](https://github.com/halo-dev/halo/issues) 搜索相关问题,看看是否有其他人已经提到了此问题。
19 | 2. 如果当前还没有人遇到您类似的问题,那么请点击右上角的 `New issue` 按钮创建新的 issue。
20 | 3. 选择正确的反馈类型。
21 | 4. 请尽可能详细的按照模板填写内容。
22 | 5. 点击 `Submit new issue` 提交 issue。
23 |
24 | ## Halo 官方社区
25 |
26 | 链接:[https://bbs.halo.run](https://bbs.halo.run)
27 |
28 | 此平台主要目的用于与其他 Halo 用户进行交流。但如果您对 GitHub 不是很熟悉或者没有账号,您也可以在此平台进行反馈。
29 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.18/contribution/sponsor.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 赞助我们
3 | description: 如果 Halo 对你有帮助,不妨赞助我们
4 | ---
5 |
6 | ## 为什么需要赞助
7 |
8 | 我们花费了大量的精力来维护这个软件,并且也提供了不少资金来维护服务器,域名等。因此我们需要赞助来节省部分开发成本。你的赞助不仅仅会被我们用来支付一些开发成本(比如服务器,OSS,域名等),还会让我们有更多的信心和精力投入到这个开源项目的开发中。从而让项目保持更加健康的成长以及迭代。
9 |
10 | ## 赞助形式
11 |
12 | :::info
13 | 你可以通过任何形式对我们赞助,不限于资金。
14 | :::
15 |
16 | ### 资金赞助
17 |
18 | - 爱发电:[https://afdian.com/a/halo-dev](https://afdian.com/a/halo-dev)
19 |
20 | ### 通过我们的推广链接购买服务器
21 |
22 | 如果你当前还没有购买服务器,可以考虑通过以下链接购买,这会为我们带来一部分收益。
23 |
24 | - 阿里云:[https://www.aliyun.com/daily-act/ecs/activity_selection?userCode=j57gyupo](https://www.aliyun.com/daily-act/ecs/activity_selection?userCode=j57gyupo)
25 | - 阿里云新人专享:[https://www.aliyun.com/minisite/goods?userCode=j57gyupo](https://www.aliyun.com/minisite/goods?userCode=j57gyupo)
26 | - 腾讯云:[https://curl.qcloud.com/9Ogon25Y](https://curl.qcloud.com/9Ogon25Y)
27 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.18/developer-guide/core/code-style.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 代码风格
3 | description: 代码风格的相关配置说明
4 | ---
5 |
6 | Halo 添加了 checkstyle 插件,来保证每位提交者代码的风格保持一致,减少无效代码的修改。本篇文章主要讲解如何在 IDEA 中添加 CheckStyle 插件,并引入项目所提供的 checkstyle.xml 配置。
7 |
8 | ## 安装 CheckStyle-IDEA
9 |
10 | - 进入 IDEA 插件市场。
11 | - 搜索 CheckStyle-IDEA,点击安装即可。
12 |
13 | ## 配置 CheckStyle
14 |
15 | - 进入 CheckStyle 配置(File | Settings | Tools | Checkstyle)。
16 | - 选择 Checkstyle 版本:9.3(以文件 `application/build.gradle` 中指定的版本为准)。
17 | - 在配置文件中点击添加按钮,配置描述可随便填写(推荐 Halo Checks),选择 ./config/checkstyle/checkstyle.xml,点击下一步和完成。
18 | - 勾选刚刚创建的配置文件。
19 |
20 | ## 配置 Editor
21 |
22 | - 进入编辑器配置(File | Settings | Editor | Code Style)
23 |
24 | - 导入 checkstyle.xm 配置:
25 |
26 | 
27 |
28 | - 选择 `./config/checkstyle/checkstyle.xml` 配置文件,点击确定即可。
29 |
30 | 至此,有关代码风格检查工具和格式化配置已经完成。
31 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.18/developer-guide/core/prepare.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 准备工作
3 | description: 开发环境的准备工作
4 | ---
5 |
6 | ## 环境要求
7 |
8 | - [OpenJDK 17 LTS](https://github.com/openjdk/jdk)
9 | - [Node.js 20 LTS](https://nodejs.org)
10 | - [pnpm 9](https://pnpm.io/)
11 | - [IntelliJ IDEA](https://www.jetbrains.com/idea/)
12 | - [Git](https://git-scm.com/)
13 | - [Docker](https://www.docker.com/)(可选)
14 |
15 | ## 名词解释
16 |
17 | ### 工作目录
18 |
19 | 指 Halo 所依赖的工作目录,在 Halo 运行的时候会在系统当前用户目录下产生一个 halo-next 的文件夹,绝对路径为 ~/halo-next。里面通常包含下列目录或文件:
20 |
21 | 1. `db`:存放 H2 Database 的物理文件,如果你使用其他数据库,那么不会存在这个目录。
22 | 2. `themes`:里面包含用户所安装的主题。
23 | 2. `plugins`:里面包含用户所安装的插件。
24 | 5. `attachments`:附件目录。
25 | 4. `logs`:运行日志目录。
26 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.18/developer-guide/plugin/api-reference/ui/components/attachment-file-type-icon.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: AttachmentFileTypeIcon
3 | description: 附件文件类型图标组件
4 | ---
5 |
6 | 此组件用于根据文件名显示文件类型图标。
7 |
8 | ## 使用示例
9 |
10 | ```html
11 |
12 |
13 |
14 |
15 |
16 | ```
17 |
18 | ## Props
19 |
20 | | 属性名 | 类型 | 默认值 | 描述 |
21 | |--------------|---------------------|-----------|------------------------------------|
22 | | `fileName` | string \| undefined | undefined | 文件名,可以是字符串或未定义。 |
23 | | `displayExt` | boolean | true | 可选,是否显示文件扩展名,默认为 true。 |
24 | | `width` | number | 10 | 可选,组件宽度,默认为 10。 |
25 | | `height` | number | 10 | 可选,组件高度,默认为 10。 |
26 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.18/developer-guide/plugin/api-reference/ui/components/filter-clean-button.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: FilterCleanButton
3 | description: 过滤器清除按钮组件
4 | ---
5 |
6 | ## 使用示例
7 |
8 | ```html
9 |
14 |
15 |
16 |
17 |
18 | ```
19 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.18/developer-guide/plugin/api-reference/ui/components/has-permission.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: HasPermission
3 | description: 权限判断组件
4 | ---
5 |
6 | 此组件用于根据权限控制元素的显示与隐藏。
7 |
8 | ## 使用方式
9 |
10 | ```html
11 |
14 |
15 |
16 |
17 | 删除
18 |
19 |
20 | ```
21 |
22 | ## Props
23 |
24 | | 属性名 | 类型 | 默认值 | 描述 |
25 | |---------------|----------|------|-----------------------|
26 | | `permissions` | string[] | 无,必填 | 定义组件所需的权限列表。 |
27 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.18/developer-guide/plugin/api-reference/ui/components/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 组件
3 | description: 在 Halo UI 中可使用的组件。
4 | ---
5 |
6 | 此文档将介绍所有在插件中可用的组件,以及它们的使用方法和区别。
7 |
8 | ## 基础组件库
9 |
10 | 我们为 Halo 的前端封装了一个基础组件的库,你可以在插件中使用这些组件。
11 |
12 | 安装方式:
13 |
14 | ```bash
15 | pnpm install @halo-dev/components
16 | ```
17 |
18 | 在 Vue 组件中:
19 |
20 | ```html
21 |
24 |
25 |
26 | Hello
27 |
28 | ```
29 |
30 | 所有可用的基础组件以及文档可查阅:[https://halo-ui-components.pages.dev](https://halo-ui-components.pages.dev)
31 |
32 | ## 业务组件和指令
33 |
34 | 除了基础组件库,我们还为 Halo 的前端封装了一些业务组件和指令,这些组件已经在全局注册,你可以直接在插件中使用这些组件和指令。
35 |
36 | 以下是所有可用的业务组件和指令:
37 |
38 | ```mdx-code-block
39 | import DocCardList from '@theme/DocCardList';
40 |
41 |
42 | ```
43 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.18/developer-guide/plugin/api-reference/ui/components/plugin-detail-modal.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: PluginDetailModal
3 | description: 插件详情弹窗组件
4 | ---
5 |
6 | 此组件可以在 UI 部分的任意组件中打开差价的详情和设置弹窗,可以用于实现在不打断正常操作流程的情况下让用户查看和修改插件的详细信息。
7 |
8 | ## 使用方式
9 |
10 | ```html
11 |
20 |
21 |
22 |
23 |
24 | ```
25 |
26 | ## Props
27 |
28 | | 属性名 | 类型 | 默认值 | 描述 |
29 | | ------ | ------ | -------- | --------------------------------------------- |
30 | | `name` | string | 无,必填 | 插件名称,即 plugin.yaml 中的 `metadata.name` |
31 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.18/developer-guide/plugin/api-reference/ui/components/v-permission.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: v-permission
3 | description: 权限指令
4 | ---
5 |
6 | 与 [HasPermission](./has-permission.md) 组件相同,此指令也是用于根据权限控制元素的显示与隐藏。
7 |
8 | ## 使用方式
9 |
10 | ```html
11 |
14 |
15 |
16 | 删除
17 |
18 | ```
19 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.18/developer-guide/plugin/api-reference/ui/components/v-tooltip.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: v-tooltip
3 | description: Tooltip 指令
4 | ---
5 |
6 | 此指令用于在任何元素上添加一个提示框。
7 |
8 | ## 使用方式
9 |
10 | ```html
11 |
14 |
15 |
16 |
17 |
18 | ```
19 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.18/developer-guide/plugin/api-reference/ui/extension-points/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 扩展点
3 | description: Halo UI 为插件提供的扩展点接口
4 | ---
5 |
6 | UI 扩展点是用于扩展 Console 和 UC 的界面的接口,通过实现扩展点接口,插件可以在 Console 和 UC 中扩展功能。
7 |
8 | 以下是目前已支持的扩展点列表:
9 |
10 | ```mdx-code-block
11 | import DocCardList from '@theme/DocCardList';
12 |
13 |
14 | ```
15 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.18/developer-guide/plugin/api-reference/ui/extension-points/interface/Attachment.md:
--------------------------------------------------------------------------------
1 | ```ts
2 | export interface Attachment {
3 | apiVersion: "storage.halo.run/v1alpha1"
4 | kind: "Attachment"
5 | metadata: {
6 | annotations: {}
7 | creationTimestamp: string
8 | labels: {}
9 | name: string // 附件的唯一标识
10 | version: number
11 | }
12 | spec: {
13 | displayName: string // 附件名称
14 | groupName: string // 附件分组
15 | mediaType: string // 附件类型
16 | ownerName: string // 附件上传者
17 | policyName: string // 附件存储策略
18 | size: number // 附件大小
19 | tags: Array
20 | }
21 | status: {
22 | permalink: string // 附件固定访问地址
23 | }
24 | }
25 | ```
26 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.18/developer-guide/plugin/api-reference/ui/extension-points/interface/OperationItem.md:
--------------------------------------------------------------------------------
1 | ```ts title="OperationItem"
2 | export interface OperationItem {
3 | priority: number; // 排序优先级
4 | component: Raw; // 菜单项组件
5 | props?: Record\; // 菜单项组件属性
6 | action?: (item?: T) => void; // 菜单项点击事件
7 | label?: string; // 菜单项标题
8 | hidden?: boolean; // 菜单项是否隐藏
9 | permissions?: string[]; // 菜单项 UI 权限
10 | children?: OperationItem[]; // 子菜单项
11 | }
12 | ```
13 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.18/developer-guide/plugin/appendices.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 附录
3 | description: 附录
4 | ---
--------------------------------------------------------------------------------
/versioned_docs/version-2.18/developer-guide/plugin/basics/ui/intro.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 介绍
3 | description: 介绍插件 UI 部分的基础知识。
4 | ---
5 |
6 | Halo 插件体系的 UI 部分可以让开发者在 Console 控制台和 UC 个人中心添加新的页面或者扩展已有的功能。
7 |
8 | 在开始之前,建议先熟悉或安装以下库和工具:
9 |
10 | 1. [Node.js 18+](https://nodejs.org)
11 | 2. [pnpm 8+](https://pnpm.io)
12 | 3. [Vue.js 3](https://vuejs.org)
13 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.18/developer-guide/plugin/introduction.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 介绍
3 | description: 插件开发的准备工作
4 | ---
5 |
6 | Halo 采用可插拔架构,功能模块之间耦合度低、灵活性提高,支持用户按需安装、卸载插件,操作便捷。同时提供插件开发接口以确保较高扩展性和可维护性,这个系列的文档将帮助你了解如何开发 Halo 插件。
7 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.18/developer-guide/plugin/prepare.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 准备工作
3 | description: 插件开发的准备工作
4 | ---
5 |
6 | 在 Halo 中,插件是使用 Java 和 JavaScript / TypeScript 编写的,UI 使用 [Vuejs](https://vuejs.org) 编写。
7 |
8 | 在创建你的第一个插件之前,请确保你具备以下条件:
9 |
10 | - 你能通过 [Docker 运行 Halo](../../getting-started/install/docker) 或在[开发环境运行 Halo](../core/run.md)。
11 | - 你熟悉 Java Web 开发并掌握 [Spring Boot](https://spring.io/projects/spring-boot/) 框架。
12 | - 你需要在计算机上安装最新的 LTS 版本的 Node.js,如果你还没有Node.js安装,你可以在这里下载 [Node.js 18 LTS](https://nodejs.org/)。
13 | - 你熟悉 Vue 和 TypeScript。
14 | - 你应该熟悉使用 Node.js 包管理器。
15 | - Git 是一个版本控制系统,用于跟踪代码的更改,您需要 Git 来下载示例插件并发布插件。
16 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.18/developer-guide/theme/finder-apis.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Finder API
3 | description: 本文档介绍 Finder API 的使用方法。
4 | ---
5 |
6 | import DocCardList from '@theme/DocCardList';
7 |
8 | 目前在主题模板中获取数据可以使用对应路由提供的 [模板变量](./template-variables),但为了满足在任意位置获取数据的需求,我们提供了 Finder API。
9 |
10 |
11 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.18/developer-guide/theme/finder-apis/site-stats.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 站点统计
3 | description: 站点统计 - SiteStatsFinder
4 | ---
5 |
6 | ## getStats()
7 |
8 | ```js
9 | siteStatsFinder.getStats()
10 | ```
11 |
12 | ### 描述
13 |
14 | 获取站点的统计信息。
15 |
16 | ### 参数
17 |
18 | 无
19 |
20 | ### 返回值
21 |
22 | [#SiteStatsVo](#sitestatsvo)
23 |
24 | ### 示例
25 |
26 | ```html
27 |
31 | ```
32 |
33 | ## 类型定义
34 |
35 | ### SiteStatsVo
36 |
37 | ```json title="SiteStatsVo"
38 | {
39 | "visit": 0, // 访问数量
40 | "upvote": 0, // 点赞数量
41 | "comment": 0, // 评论数量
42 | "post": 0, // 文章数量
43 | "category": 0 // 分类数量
44 | }
45 | ```
46 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.18/developer-guide/theme/template-variables.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 模板变量
3 | ---
4 |
5 | import DocCardList from '@theme/DocCardList';
6 |
7 |
8 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.18/developer-guide/theme/template-variables/tags.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 文章标签集合
3 | description: tags.html - /tags
4 | ---
5 |
6 | import TagVo from '../vo/_TagVo.md'
7 |
8 | ## 路由信息
9 |
10 | - 模板路径:`/templates/tags.html`
11 | - 访问路径:`/tags`
12 |
13 | ## 变量
14 |
15 | ### tags
16 |
17 | #### 变量类型
18 |
19 | List\<[#TagVo](#tagvo)\>
20 |
21 | #### 示例
22 |
23 | ```html title="/templates/tags.html"
24 |
27 | ```
28 |
29 | ### _templateId
30 |
31 | #### 变量值
32 |
33 | `tags`
34 |
35 | ## 类型定义
36 |
37 | ### TagVo
38 |
39 |
40 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.18/developer-guide/theme/vo/_ContentVo.md:
--------------------------------------------------------------------------------
1 | ```json title="ContentVo"
2 | {
3 | "raw": "string", // 原始文本,一般用于给编辑器使用
4 | "content": "string" // 最终渲染的文本
5 | }
6 | ```
7 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.18/developer-guide/theme/vo/_ContributorVo.md:
--------------------------------------------------------------------------------
1 | ```json title="ContributorVo"
2 | {
3 | "name": "string", // 用户名
4 | "displayName": "string", // 显示名称
5 | "avatar": "string", // 头像
6 | "bio": "string", // 描述
7 | "permalink": "string", // 作者的文章归档页面链接
8 | "metadata": {
9 | "name": "string", // 唯一标识
10 | "labels": {
11 | "additionalProp1": "string"
12 | },
13 | "annotations": {
14 | "additionalProp1": "string"
15 | },
16 | "creationTimestamp": "2022-11-20T13:06:38.512Z", // 创建时间
17 | }
18 | }
19 | ```
20 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.18/developer-guide/theme/vo/_MenuVo.md:
--------------------------------------------------------------------------------
1 | ```json title="MenuVo"
2 | {
3 | "metadata": {
4 | "name": "string", // 唯一标识
5 | "labels": {
6 | "additionalProp1": "string"
7 | },
8 | "annotations": {
9 | "additionalProp1": "string"
10 | },
11 | "creationTimestamp": "2022-11-20T14:44:58.984Z", // 创建时间
12 | },
13 | "spec": {
14 | "displayName": "string", // 显示名称
15 | "menuItems": [ // 菜单的菜单项名称集合,即 MenuItem 的 metadata.name 的集合
16 | "string"
17 | ]
18 | },
19 | "menuItems": "List<#MenuItemVo>" // 菜单项的集合
20 | }
21 | ```
22 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.18/developer-guide/theme/vo/_TagVo.md:
--------------------------------------------------------------------------------
1 | ```json title="TagVo"
2 | {
3 | "metadata": {
4 | "name": "string", // 唯一标识
5 | "labels": {
6 | "additionalProp1": "string"
7 | },
8 | "annotations": {
9 | "additionalProp1": "string"
10 | },
11 | "creationTimestamp": "2022-11-20T13:06:38.512Z", // 创建时间
12 | },
13 | "spec": {
14 | "displayName": "string", // 显示名称
15 | "slug": "string", // 别名,通常用于生成 status.permalink
16 | "color": "#F9fEB1", // 背景颜色
17 | "cover": "string" // 封面图
18 | },
19 | "status": {
20 | "permalink": "string", // 固定链接
21 | },
22 | "postCount": 0 // 文章数量
23 | }
24 | ```
25 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.18/getting-started/first-post.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 第一篇文章
3 | description: 安装完成后,如何写下第一篇文章。
4 | ---
5 |
6 |
7 |
8 |
9 | ## 登录管理端
10 |
11 | 浏览器访问 `/console` 即可进入 Halo 管理端。
12 |
13 | ## 新建文章
14 |
15 | Halo 安装完成后,默认初始化了一篇 `Hello Halo` 文章,接下来我们将创建并发布一篇自己的文章。
16 |
17 | 1. 在 Halo 管理端,点击仪表盘页面中的 `创建文章` 快捷入口,即可进入到文章编辑页面。
18 | 2. 在文章编辑器中,你可以尽情写下你想展现的内容。
19 | 3. 当内容编辑完成后,点击右上角的 `发布` 按钮,给文章设置一个合适的标题和别名,同时可以设置文章所属分类、标签及其他一些高级设置。
20 | 4. 确认无误后,点击弹框下方的 `发布` 按钮,我们的第一篇文章就成功发布了。
21 |
22 | :::info
23 | 关于文章相关其他功能及文章各种设置项的说明,请参考《[用户指南-文章](../user-guide/posts.md)》章节
24 | :::
25 |
26 | ## 查看文章
27 |
28 | 文章发布成功后,就可以在主题端查看到我们刚刚创建的文章了。
29 |
30 | 浏览器访问域名进入站点首页,站点展示的内容及样式由当前启用的主题所决定。
31 |
32 | 接下来,选一款喜欢的主题,尽情体验 Halo 吧!
33 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.18/getting-started/install/slots/_docker-registry-list.md:
--------------------------------------------------------------------------------
1 | 目前 Halo 官方维护的 Docker 镜像仓库,可以根据自己的需求选择合适的镜像源:
2 |
3 | - registry.fit2cloud.com/halo/halo
4 | - [halohub/halo](https://hub.docker.com/r/halohub/halo)
5 | - [ghcr.io/halo-dev/halo](https://github.com/halo-dev/halo/pkgs/container/halo)
6 |
7 | :::info 注意
8 | 目前 Halo 2 并未更新 Docker 的 latest 标签镜像,主要因为 Halo 2 不兼容 1.x 版本,防止使用者误操作。我们推荐使用固定版本的标签,比如 `2.18` 或者 `2.18.0`。
9 |
10 | - `registry.fit2cloud.com/halo/halo:2`:表示最新的 2.x 版本,即每次发布新版本都会更新此镜像。
11 | - `registry.fit2cloud.com/halo/halo:2.18`:表示最新的 2.18.x 版本,即每次发布 patch 版本都会同时更新此镜像。
12 | - `registry.fit2cloud.com/halo/halo:2.18.0`:表示一个具体的版本。
13 |
14 | 后续文档以 `registry.fit2cloud.com/halo/halo:2.18` 为例。
15 | :::
16 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.18/getting-started/setup.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 初始化
3 | description: 首次安装的初始化指南
4 | ---
5 |
6 | 通过之前的安装文档,你已经成功安装了 Halo,在首次访问网站的时候会自动跳转到初始化页面,你需要完成这个步骤才能正常使用 Halo。
7 |
8 | 
9 |
10 | 表单项说明:
11 |
12 | 1. **站点名称**:网站的名称,将会显示在浏览器标签页上。
13 | 2. **邮箱**:初始管理员的邮箱地址。
14 | 3. **用户名**:初始管理员的用户名。
15 | 4. **密码**:初始管理员的密码。
16 | 5. **确认密码**:重复输入密码以验证是否匹配。
17 |
18 | 输入完成之后点击**初始化**按钮即可完成初始化,初始化完成之后,将会跳转到登录页面,输入刚才设置的用户名和密码即可登录。
19 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.18/user-guide/pages.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 页面
3 | description: 页面管理相关功能说明
4 | ---
5 |
6 | 页面与文章类似,同样包含页面标题和富文本形式的页面内容。与文章不同的是页面无法设置所属分类和标签信息,一般用于站点中单一展示功能的页面,例如常见的站点关于页面、联系我们页面等。
7 |
8 | 自定义页面的访问链接为 `/{slug}` 其中 `slug` 为自定义页面的别名。
9 |
10 | 对于如下的关于页面,便可以通过 `/about` 地址进行访问。
11 |
12 | 
13 |
14 | :::info
15 | 自定义页面默认使用主题端的 `page.html` 模板进行渲染,如果主题中提供了针对自定义页面的其他模板,用户可以通过修改自定义页面高级设置中的自定义模板设置进行使用。
16 | :::
17 |
18 | #### 页面操作
19 |
20 | 对于页面的新建、设置、发布及删除等操作,与文章操作基本一致,具体操作请参考[《用户指南-文章》](./posts.md)章节,此处不再赘述。
21 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.19/about.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 关于文档
3 | description: 关于本文档站点的一些说明
4 | ---
5 |
6 | :::note
7 | 此文档使用 [Docusaurus](https://docusaurus.io/) 搭建,感谢 [Docusaurus](https://github.com/facebook/docusaurus) 社区所做的贡献。
8 | :::
9 |
10 | ## 参与贡献
11 |
12 | :::tip
13 | 如果你发现文档中有不正确或者需要添加的内容,非常欢迎参与到文档编辑当中。
14 | :::
15 |
16 | 当前文档的仓库地址为 [halo-dev/docs](https://github.com/halo-dev/docs) ,所以你可以 fork 此仓库,修改之后提交 `Pull request` 等待我们合并即可。
17 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.19/contribution/issue.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 问题反馈
3 | description: 问题反馈渠道及指南
4 | ---
5 |
6 | :::info
7 | 如果您在使用过程中遇到了什么问题,您可以通过下面的方式反馈,但请尽量按照要求提出反馈。
8 | :::
9 |
10 | ## GitHub Issues
11 |
12 | 链接:[https://github.com/halo-dev/halo/issues](https://github.com/halo-dev/halo/issues)
13 |
14 | 如果你在使用过程中,遇到了一些 bug 或者需要添加某些新特性,请尽量在 GitHub Issues 进行反馈,这非常有助于我们跟踪解决此问题,您也可以很方便的接收到处理状态。
15 |
16 | 建议步骤:
17 |
18 | 1. 在 [Issues 列表](https://github.com/halo-dev/halo/issues) 搜索相关问题,看看是否有其他人已经提到了此问题。
19 | 2. 如果当前还没有人遇到您类似的问题,那么请点击右上角的 `New issue` 按钮创建新的 issue。
20 | 3. 选择正确的反馈类型。
21 | 4. 请尽可能详细的按照模板填写内容。
22 | 5. 点击 `Submit new issue` 提交 issue。
23 |
24 | ## Halo 官方社区
25 |
26 | 链接:[https://bbs.halo.run](https://bbs.halo.run)
27 |
28 | 此平台主要目的用于与其他 Halo 用户进行交流。但如果您对 GitHub 不是很熟悉或者没有账号,您也可以在此平台进行反馈。
29 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.19/contribution/sponsor.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 赞助我们
3 | description: 如果 Halo 对你有帮助,不妨赞助我们
4 | ---
5 |
6 | ## 为什么需要赞助
7 |
8 | 我们花费了大量的精力来维护这个软件,并且也提供了不少资金来维护服务器,域名等。因此我们需要赞助来节省部分开发成本。你的赞助不仅仅会被我们用来支付一些开发成本(比如服务器,OSS,域名等),还会让我们有更多的信心和精力投入到这个开源项目的开发中。从而让项目保持更加健康的成长以及迭代。
9 |
10 | ## 赞助形式
11 |
12 | :::info
13 | 你可以通过任何形式对我们赞助,不限于资金。
14 | :::
15 |
16 | ### 资金赞助
17 |
18 | - 爱发电:[https://afdian.com/a/halo-dev](https://afdian.com/a/halo-dev)
19 |
20 | ### 通过我们的推广链接购买服务器
21 |
22 | 如果你当前还没有购买服务器,可以考虑通过以下链接购买,这会为我们带来一部分收益。
23 |
24 | - 阿里云:[https://www.aliyun.com/daily-act/ecs/activity_selection?userCode=j57gyupo](https://www.aliyun.com/daily-act/ecs/activity_selection?userCode=j57gyupo)
25 | - 阿里云新人专享:[https://www.aliyun.com/minisite/goods?userCode=j57gyupo](https://www.aliyun.com/minisite/goods?userCode=j57gyupo)
26 | - 腾讯云:[https://curl.qcloud.com/9Ogon25Y](https://curl.qcloud.com/9Ogon25Y)
27 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.19/developer-guide/core/code-style.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 代码风格
3 | description: 代码风格的相关配置说明
4 | ---
5 |
6 | Halo 添加了 checkstyle 插件,来保证每位提交者代码的风格保持一致,减少无效代码的修改。本篇文章主要讲解如何在 IDEA 中添加 CheckStyle 插件,并引入项目所提供的 checkstyle.xml 配置。
7 |
8 | ## 安装 CheckStyle-IDEA
9 |
10 | - 进入 IDEA 插件市场。
11 | - 搜索 CheckStyle-IDEA,点击安装即可。
12 |
13 | ## 配置 CheckStyle
14 |
15 | - 进入 CheckStyle 配置(File | Settings | Tools | Checkstyle)。
16 | - 选择 Checkstyle 版本:9.3(以文件 `application/build.gradle` 中指定的版本为准)。
17 | - 在配置文件中点击添加按钮,配置描述可随便填写(推荐 Halo Checks),选择 ./config/checkstyle/checkstyle.xml,点击下一步和完成。
18 | - 勾选刚刚创建的配置文件。
19 |
20 | ## 配置 Editor
21 |
22 | - 进入编辑器配置(File | Settings | Editor | Code Style)
23 |
24 | - 导入 checkstyle.xm 配置:
25 |
26 | 
27 |
28 | - 选择 `./config/checkstyle/checkstyle.xml` 配置文件,点击确定即可。
29 |
30 | 至此,有关代码风格检查工具和格式化配置已经完成。
31 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.19/developer-guide/core/prepare.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 准备工作
3 | description: 开发环境的准备工作
4 | ---
5 |
6 | ## 环境要求
7 |
8 | - [OpenJDK 17 LTS](https://github.com/openjdk/jdk)
9 | - [Node.js 20 LTS](https://nodejs.org)
10 | - [pnpm 9](https://pnpm.io/)
11 | - [IntelliJ IDEA](https://www.jetbrains.com/idea/)
12 | - [Git](https://git-scm.com/)
13 | - [Docker](https://www.docker.com/)(可选)
14 |
15 | ## 名词解释
16 |
17 | ### 工作目录
18 |
19 | 指 Halo 所依赖的工作目录,在 Halo 运行的时候会在系统当前用户目录下产生一个 halo-next 的文件夹,绝对路径为 ~/halo-next。里面通常包含下列目录或文件:
20 |
21 | 1. `db`:存放 H2 Database 的物理文件,如果你使用其他数据库,那么不会存在这个目录。
22 | 2. `themes`:里面包含用户所安装的主题。
23 | 2. `plugins`:里面包含用户所安装的插件。
24 | 5. `attachments`:附件目录。
25 | 4. `logs`:运行日志目录。
26 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.19/developer-guide/plugin/api-reference/ui/components/attachment-file-type-icon.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: AttachmentFileTypeIcon
3 | description: 附件文件类型图标组件
4 | ---
5 |
6 | 此组件用于根据文件名显示文件类型图标。
7 |
8 | ## 使用示例
9 |
10 | ```html
11 |
12 |
13 |
14 |
15 |
16 | ```
17 |
18 | ## Props
19 |
20 | | 属性名 | 类型 | 默认值 | 描述 |
21 | |--------------|---------------------|-----------|------------------------------------|
22 | | `fileName` | string \| undefined | undefined | 文件名,可以是字符串或未定义。 |
23 | | `displayExt` | boolean | true | 可选,是否显示文件扩展名,默认为 true。 |
24 | | `width` | number | 10 | 可选,组件宽度,默认为 10。 |
25 | | `height` | number | 10 | 可选,组件高度,默认为 10。 |
26 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.19/developer-guide/plugin/api-reference/ui/components/filter-clean-button.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: FilterCleanButton
3 | description: 过滤器清除按钮组件
4 | ---
5 |
6 | ## 使用示例
7 |
8 | ```html
9 |
14 |
15 |
16 |
17 |
18 | ```
19 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.19/developer-guide/plugin/api-reference/ui/components/has-permission.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: HasPermission
3 | description: 权限判断组件
4 | ---
5 |
6 | 此组件用于根据权限控制元素的显示与隐藏。
7 |
8 | ## 使用方式
9 |
10 | ```html
11 |
14 |
15 |
16 |
17 | 删除
18 |
19 |
20 | ```
21 |
22 | ## Props
23 |
24 | | 属性名 | 类型 | 默认值 | 描述 |
25 | |---------------|----------|------|-----------------------|
26 | | `permissions` | string[] | 无,必填 | 定义组件所需的权限列表。 |
27 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.19/developer-guide/plugin/api-reference/ui/components/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 组件
3 | description: 在 Halo UI 中可使用的组件。
4 | ---
5 |
6 | 此文档将介绍所有在插件中可用的组件,以及它们的使用方法和区别。
7 |
8 | ## 基础组件库
9 |
10 | 我们为 Halo 的前端封装了一个基础组件的库,你可以在插件中使用这些组件。
11 |
12 | 安装方式:
13 |
14 | ```bash
15 | pnpm install @halo-dev/components
16 | ```
17 |
18 | 在 Vue 组件中:
19 |
20 | ```html
21 |
24 |
25 |
26 | Hello
27 |
28 | ```
29 |
30 | 所有可用的基础组件以及文档可查阅:[https://halo-ui-components.pages.dev](https://halo-ui-components.pages.dev)
31 |
32 | ## 业务组件和指令
33 |
34 | 除了基础组件库,我们还为 Halo 的前端封装了一些业务组件和指令,这些组件已经在全局注册,你可以直接在插件中使用这些组件和指令。
35 |
36 | 以下是所有可用的业务组件和指令:
37 |
38 | ```mdx-code-block
39 | import DocCardList from '@theme/DocCardList';
40 |
41 |
42 | ```
43 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.19/developer-guide/plugin/api-reference/ui/components/plugin-detail-modal.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: PluginDetailModal
3 | description: 插件详情弹窗组件
4 | ---
5 |
6 | 此组件可以在 UI 部分的任意组件中打开差价的详情和设置弹窗,可以用于实现在不打断正常操作流程的情况下让用户查看和修改插件的详细信息。
7 |
8 | ## 使用方式
9 |
10 | ```html
11 |
20 |
21 |
22 |
23 |
24 | ```
25 |
26 | ## Props
27 |
28 | | 属性名 | 类型 | 默认值 | 描述 |
29 | | ------ | ------ | -------- | --------------------------------------------- |
30 | | `name` | string | 无,必填 | 插件名称,即 plugin.yaml 中的 `metadata.name` |
31 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.19/developer-guide/plugin/api-reference/ui/components/v-permission.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: v-permission
3 | description: 权限指令
4 | ---
5 |
6 | 与 [HasPermission](./has-permission.md) 组件相同,此指令也是用于根据权限控制元素的显示与隐藏。
7 |
8 | ## 使用方式
9 |
10 | ```html
11 |
14 |
15 |
16 | 删除
17 |
18 | ```
19 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.19/developer-guide/plugin/api-reference/ui/components/v-tooltip.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: v-tooltip
3 | description: Tooltip 指令
4 | ---
5 |
6 | 此指令用于在任何元素上添加一个提示框。
7 |
8 | ## 使用方式
9 |
10 | ```html
11 |
14 |
15 |
16 |
17 |
18 | ```
19 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.19/developer-guide/plugin/api-reference/ui/extension-points/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 扩展点
3 | description: Halo UI 为插件提供的扩展点接口
4 | ---
5 |
6 | UI 扩展点是用于扩展 Console 和 UC 的界面的接口,通过实现扩展点接口,插件可以在 Console 和 UC 中扩展功能。
7 |
8 | 以下是目前已支持的扩展点列表:
9 |
10 | ```mdx-code-block
11 | import DocCardList from '@theme/DocCardList';
12 |
13 |
14 | ```
15 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.19/developer-guide/plugin/api-reference/ui/extension-points/interface/Attachment.md:
--------------------------------------------------------------------------------
1 | ```ts
2 | export interface Attachment {
3 | apiVersion: "storage.halo.run/v1alpha1"
4 | kind: "Attachment"
5 | metadata: {
6 | annotations: {}
7 | creationTimestamp: string
8 | labels: {}
9 | name: string // 附件的唯一标识
10 | version: number
11 | }
12 | spec: {
13 | displayName: string // 附件名称
14 | groupName: string // 附件分组
15 | mediaType: string // 附件类型
16 | ownerName: string // 附件上传者
17 | policyName: string // 附件存储策略
18 | size: number // 附件大小
19 | tags: Array
20 | }
21 | status: {
22 | permalink: string // 附件固定访问地址
23 | }
24 | }
25 | ```
26 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.19/developer-guide/plugin/api-reference/ui/extension-points/interface/OperationItem.md:
--------------------------------------------------------------------------------
1 | ```ts title="OperationItem"
2 | export interface OperationItem {
3 | priority: number; // 排序优先级
4 | component: Raw; // 菜单项组件
5 | props?: Record\; // 菜单项组件属性
6 | action?: (item?: T) => void; // 菜单项点击事件
7 | label?: string; // 菜单项标题
8 | hidden?: boolean; // 菜单项是否隐藏
9 | permissions?: string[]; // 菜单项 UI 权限
10 | children?: OperationItem[]; // 子菜单项
11 | }
12 | ```
13 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.19/developer-guide/plugin/appendices.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 附录
3 | description: 附录
4 | ---
--------------------------------------------------------------------------------
/versioned_docs/version-2.19/developer-guide/plugin/basics/ui/intro.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 介绍
3 | description: 介绍插件 UI 部分的基础知识。
4 | ---
5 |
6 | Halo 插件体系的 UI 部分可以让开发者在 Console 控制台和 UC 个人中心添加新的页面或者扩展已有的功能。
7 |
8 | 在开始之前,建议先熟悉或安装以下库和工具:
9 |
10 | 1. [Node.js 18+](https://nodejs.org)
11 | 2. [pnpm 8+](https://pnpm.io)
12 | 3. [Vue.js 3](https://vuejs.org)
13 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.19/developer-guide/plugin/introduction.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 介绍
3 | description: Halo 插件机制的简介
4 | ---
5 |
6 | Halo 采用可插拔架构,功能模块之间耦合度低、灵活性提高,支持用户按需安装、卸载插件,操作便捷。同时提供插件开发接口以确保较高扩展性和可维护性,这个系列的文档将帮助你了解如何开发 Halo 插件。
7 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.19/developer-guide/plugin/prepare.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 准备工作
3 | description: 插件开发的准备工作
4 | ---
5 |
6 | 在 Halo 中,插件是使用 Java 和 JavaScript / TypeScript 编写的,UI 使用 [Vuejs](https://vuejs.org) 编写。
7 |
8 | 在创建你的第一个插件之前,请确保你具备以下条件:
9 |
10 | - 你能通过 [Docker 运行 Halo](../../getting-started/install/docker) 或在[开发环境运行 Halo](../core/run.md)。
11 | - 你熟悉 Java Web 开发并掌握 [Spring Boot](https://spring.io/projects/spring-boot/) 框架。
12 | - 你需要在计算机上安装最新的 LTS 版本的 Node.js,如果你还没有Node.js安装,你可以在这里下载 [Node.js 18 LTS](https://nodejs.org/)。
13 | - 你熟悉 Vue 和 TypeScript。
14 | - 你应该熟悉使用 Node.js 包管理器。
15 | - Git 是一个版本控制系统,用于跟踪代码的更改,您需要 Git 来下载示例插件并发布插件。
16 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.19/developer-guide/theme/finder-apis.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Finder API
3 | description: 本文档介绍 Finder API 的使用方法。
4 | ---
5 |
6 | import DocCardList from '@theme/DocCardList';
7 |
8 | 目前在主题模板中获取数据可以使用对应路由提供的 [模板变量](./template-variables),但为了满足在任意位置获取数据的需求,我们提供了 Finder API。
9 |
10 |
11 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.19/developer-guide/theme/finder-apis/site-stats.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 站点统计
3 | description: 站点统计 - SiteStatsFinder
4 | ---
5 |
6 | ## getStats()
7 |
8 | ```js
9 | siteStatsFinder.getStats()
10 | ```
11 |
12 | ### 描述
13 |
14 | 获取站点的统计信息。
15 |
16 | ### 参数
17 |
18 | 无
19 |
20 | ### 返回值
21 |
22 | [#SiteStatsVo](#sitestatsvo)
23 |
24 | ### 示例
25 |
26 | ```html
27 |
31 | ```
32 |
33 | ## 类型定义
34 |
35 | ### SiteStatsVo
36 |
37 | ```json title="SiteStatsVo"
38 | {
39 | "visit": 0, // 访问数量
40 | "upvote": 0, // 点赞数量
41 | "comment": 0, // 评论数量
42 | "post": 0, // 文章数量
43 | "category": 0 // 分类数量
44 | }
45 | ```
46 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.19/developer-guide/theme/template-variables.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 模板变量
3 | ---
4 |
5 | import DocCardList from '@theme/DocCardList';
6 |
7 |
8 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.19/developer-guide/theme/template-variables/tags.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 文章标签集合
3 | description: tags.html - /tags
4 | ---
5 |
6 | import TagVo from '../vo/_TagVo.md'
7 |
8 | ## 路由信息
9 |
10 | - 模板路径:`/templates/tags.html`
11 | - 访问路径:`/tags`
12 |
13 | ## 变量
14 |
15 | ### tags
16 |
17 | #### 变量类型
18 |
19 | List\<[#TagVo](#tagvo)\>
20 |
21 | #### 示例
22 |
23 | ```html title="/templates/tags.html"
24 |
27 | ```
28 |
29 | ### _templateId
30 |
31 | #### 变量值
32 |
33 | `tags`
34 |
35 | ## 类型定义
36 |
37 | ### TagVo
38 |
39 |
40 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.19/developer-guide/theme/vo/_ContentVo.md:
--------------------------------------------------------------------------------
1 | ```json title="ContentVo"
2 | {
3 | "raw": "string", // 原始文本,一般用于给编辑器使用
4 | "content": "string" // 最终渲染的文本
5 | }
6 | ```
7 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.19/developer-guide/theme/vo/_ContributorVo.md:
--------------------------------------------------------------------------------
1 | ```json title="ContributorVo"
2 | {
3 | "name": "string", // 用户名
4 | "displayName": "string", // 显示名称
5 | "avatar": "string", // 头像
6 | "bio": "string", // 描述
7 | "permalink": "string", // 作者的文章归档页面链接
8 | "metadata": {
9 | "name": "string", // 唯一标识
10 | "labels": {
11 | "additionalProp1": "string"
12 | },
13 | "annotations": {
14 | "additionalProp1": "string"
15 | },
16 | "creationTimestamp": "2022-11-20T13:06:38.512Z", // 创建时间
17 | }
18 | }
19 | ```
20 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.19/developer-guide/theme/vo/_MenuVo.md:
--------------------------------------------------------------------------------
1 | ```json title="MenuVo"
2 | {
3 | "metadata": {
4 | "name": "string", // 唯一标识
5 | "labels": {
6 | "additionalProp1": "string"
7 | },
8 | "annotations": {
9 | "additionalProp1": "string"
10 | },
11 | "creationTimestamp": "2022-11-20T14:44:58.984Z", // 创建时间
12 | },
13 | "spec": {
14 | "displayName": "string", // 显示名称
15 | "menuItems": [ // 菜单的菜单项名称集合,即 MenuItem 的 metadata.name 的集合
16 | "string"
17 | ]
18 | },
19 | "menuItems": "List<#MenuItemVo>" // 菜单项的集合
20 | }
21 | ```
22 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.19/developer-guide/theme/vo/_TagVo.md:
--------------------------------------------------------------------------------
1 | ```json title="TagVo"
2 | {
3 | "metadata": {
4 | "name": "string", // 唯一标识
5 | "labels": {
6 | "additionalProp1": "string"
7 | },
8 | "annotations": {
9 | "additionalProp1": "string"
10 | },
11 | "creationTimestamp": "2022-11-20T13:06:38.512Z", // 创建时间
12 | },
13 | "spec": {
14 | "displayName": "string", // 显示名称
15 | "slug": "string", // 别名,通常用于生成 status.permalink
16 | "color": "#F9fEB1", // 背景颜色
17 | "cover": "string" // 封面图
18 | },
19 | "status": {
20 | "permalink": "string", // 固定链接
21 | },
22 | "postCount": 0 // 文章数量
23 | }
24 | ```
25 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.19/getting-started/first-post.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 第一篇文章
3 | description: 安装完成后,如何写下第一篇文章。
4 | ---
5 |
6 |
7 |
8 |
9 | ## 登录管理端
10 |
11 | 浏览器访问 `/console` 即可进入 Halo 管理端。
12 |
13 | ## 新建文章
14 |
15 | Halo 安装完成后,默认初始化了一篇 `Hello Halo` 文章,接下来我们将创建并发布一篇自己的文章。
16 |
17 | 1. 在 Halo 管理端,点击仪表盘页面中的 `创建文章` 快捷入口,即可进入到文章编辑页面。
18 | 2. 在文章编辑器中,你可以尽情写下你想展现的内容。
19 | 3. 当内容编辑完成后,点击右上角的 `发布` 按钮,给文章设置一个合适的标题和别名,同时可以设置文章所属分类、标签及其他一些高级设置。
20 | 4. 确认无误后,点击弹框下方的 `发布` 按钮,我们的第一篇文章就成功发布了。
21 |
22 | :::info
23 | 关于文章相关其他功能及文章各种设置项的说明,请参考《[用户指南-文章](../user-guide/posts.md)》章节
24 | :::
25 |
26 | ## 查看文章
27 |
28 | 文章发布成功后,就可以在主题端查看到我们刚刚创建的文章了。
29 |
30 | 浏览器访问域名进入站点首页,站点展示的内容及样式由当前启用的主题所决定。
31 |
32 | 接下来,选一款喜欢的主题,尽情体验 Halo 吧!
33 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.19/getting-started/install/cloud/alibaba-cloud-computenest.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 阿里云计算巢部署
3 | description: 使用阿里云计算巢服务部署 Halo
4 | ---
5 |
6 | 阿里云计算巢提供了软件与资源的一体化交付的完善基础能力,助力服务商、开发者的提升服务能力和降低运营成本。计算巢已经支持快速部署 Halo 社区版。
7 |
8 | ## 部署流程
9 |
10 | 1. 访问计算巢 Halo 社区版服务[部署链接](https://computenest.console.aliyun.com/service/instance/create/default?type=user&ServiceId=service-71b471d79c224520bba3),按提示填写部署参数:
11 |
12 | 
13 | 2. 参数填写完成后可以看到对应询价明细,确认参数后点击**下一步:确认订单**。确认订单完成后同意服务协议并点击**立即创建**进入部署阶段。
14 | 3. 等待部署完成后进入服务实例管理, 在控制台找到 Halo 服务访问链接。
15 |
16 | 
17 | 4. 单击链接访问 Halo 服务。
18 |
19 | 
20 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.19/getting-started/install/slots/_docker-registry-list.md:
--------------------------------------------------------------------------------
1 | 目前 Halo 官方维护的 Docker 镜像仓库,可以根据自己的需求选择合适的镜像源:
2 |
3 | - registry.fit2cloud.com/halo/halo
4 | - [halohub/halo](https://hub.docker.com/r/halohub/halo)
5 | - [ghcr.io/halo-dev/halo](https://github.com/halo-dev/halo/pkgs/container/halo)
6 |
7 | :::info 注意
8 | 目前 Halo 2 并未更新 Docker 的 latest 标签镜像,主要因为 Halo 2 不兼容 1.x 版本,防止使用者误操作。我们推荐使用固定版本的标签,比如 `2.19` 或者 `2.19.0`。
9 |
10 | - `registry.fit2cloud.com/halo/halo:2`:表示最新的 2.x 版本,即每次发布新版本都会更新此镜像。
11 | - `registry.fit2cloud.com/halo/halo:2.19`:表示最新的 2.19.x 版本,即每次发布 patch 版本都会同时更新此镜像。
12 | - `registry.fit2cloud.com/halo/halo:2.19.0`:表示一个具体的版本。
13 |
14 | 后续文档以 `registry.fit2cloud.com/halo/halo:2.19` 为例。
15 | :::
16 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.19/getting-started/setup.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 初始化
3 | description: 首次安装的初始化指南
4 | ---
5 |
6 | 通过之前的安装文档,你已经成功安装了 Halo,在首次访问网站的时候会自动跳转到初始化页面,你需要完成这个步骤才能正常使用 Halo。
7 |
8 | 
9 |
10 | 表单项说明:
11 |
12 | 1. **站点名称**:网站的名称,将会显示在浏览器标签页上。
13 | 2. **邮箱**:初始管理员的邮箱地址。
14 | 3. **用户名**:初始管理员的用户名。
15 | 4. **密码**:初始管理员的密码。
16 | 5. **确认密码**:重复输入密码以验证是否匹配。
17 |
18 | 输入完成之后点击**初始化**按钮即可完成初始化,初始化完成之后,将会跳转到登录页面,输入刚才设置的用户名和密码即可登录。
19 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.19/user-guide/pages.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 页面
3 | description: 页面管理相关功能说明
4 | ---
5 |
6 | 页面与文章类似,同样包含页面标题和富文本形式的页面内容。与文章不同的是页面无法设置所属分类和标签信息,一般用于站点中单一展示功能的页面,例如常见的站点关于页面、联系我们页面等。
7 |
8 | 自定义页面的访问链接为 `/{slug}` 其中 `slug` 为自定义页面的别名。
9 |
10 | 对于如下的关于页面,便可以通过 `/about` 地址进行访问。
11 |
12 | 
13 |
14 | :::info
15 | 自定义页面默认使用主题端的 `page.html` 模板进行渲染,如果主题中提供了针对自定义页面的其他模板,用户可以通过修改自定义页面高级设置中的自定义模板设置进行使用。
16 | :::
17 |
18 | #### 页面操作
19 |
20 | 对于页面的新建、设置、发布及删除等操作,与文章操作基本一致,具体操作请参考[《用户指南-文章》](./posts.md)章节,此处不再赘述。
21 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.20/about.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 关于文档
3 | description: 关于本文档站点的一些说明
4 | ---
5 |
6 | :::note
7 | 此文档使用 [Docusaurus](https://docusaurus.io/) 搭建,感谢 [Docusaurus](https://github.com/facebook/docusaurus) 社区所做的贡献。
8 | :::
9 |
10 | ## 参与贡献
11 |
12 | :::tip
13 | 如果你发现文档中有不正确或者需要添加的内容,非常欢迎参与到文档编辑当中。
14 | :::
15 |
16 | 当前文档的仓库地址为 [halo-dev/docs](https://github.com/halo-dev/docs) ,所以你可以 fork 此仓库,修改之后提交 `Pull request` 等待我们合并即可。
17 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.20/contribution/issue.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 问题反馈
3 | description: 问题反馈渠道及指南
4 | ---
5 |
6 | :::info
7 | 如果您在使用过程中遇到了什么问题,您可以通过下面的方式反馈,但请尽量按照要求提出反馈。
8 | :::
9 |
10 | ## GitHub Issues
11 |
12 | 链接:[https://github.com/halo-dev/halo/issues](https://github.com/halo-dev/halo/issues)
13 |
14 | 如果你在使用过程中,遇到了一些 bug 或者需要添加某些新特性,请尽量在 GitHub Issues 进行反馈,这非常有助于我们跟踪解决此问题,您也可以很方便的接收到处理状态。
15 |
16 | 建议步骤:
17 |
18 | 1. 在 [Issues 列表](https://github.com/halo-dev/halo/issues) 搜索相关问题,看看是否有其他人已经提到了此问题。
19 | 2. 如果当前还没有人遇到您类似的问题,那么请点击右上角的 `New issue` 按钮创建新的 issue。
20 | 3. 选择正确的反馈类型。
21 | 4. 请尽可能详细的按照模板填写内容。
22 | 5. 点击 `Submit new issue` 提交 issue。
23 |
24 | ## Halo 官方社区
25 |
26 | 链接:[https://bbs.halo.run](https://bbs.halo.run)
27 |
28 | 此平台主要目的用于与其他 Halo 用户进行交流。但如果您对 GitHub 不是很熟悉或者没有账号,您也可以在此平台进行反馈。
29 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.20/contribution/sponsor.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 赞助我们
3 | description: 如果 Halo 对你有帮助,不妨赞助我们
4 | ---
5 |
6 | ## 为什么需要赞助
7 |
8 | 我们花费了大量的精力来维护这个软件,并且也提供了不少资金来维护服务器,域名等。因此我们需要赞助来节省部分开发成本。你的赞助不仅仅会被我们用来支付一些开发成本(比如服务器,OSS,域名等),还会让我们有更多的信心和精力投入到这个开源项目的开发中。从而让项目保持更加健康的成长以及迭代。
9 |
10 | ## 赞助形式
11 |
12 | :::info
13 | 你可以通过任何形式对我们赞助,不限于资金。
14 | :::
15 |
16 | ### 资金赞助
17 |
18 | - 爱发电:[https://afdian.com/a/halo-dev](https://afdian.com/a/halo-dev)
19 |
20 | ### 通过我们的推广链接购买服务器
21 |
22 | 如果你当前还没有购买服务器,可以考虑通过以下链接购买,这会为我们带来一部分收益。
23 |
24 | - 阿里云:[https://www.aliyun.com/daily-act/ecs/activity_selection?userCode=j57gyupo](https://www.aliyun.com/daily-act/ecs/activity_selection?userCode=j57gyupo)
25 | - 阿里云新人专享:[https://www.aliyun.com/minisite/goods?userCode=j57gyupo](https://www.aliyun.com/minisite/goods?userCode=j57gyupo)
26 | - 腾讯云:[https://curl.qcloud.com/9Ogon25Y](https://curl.qcloud.com/9Ogon25Y)
27 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.20/developer-guide/core/code-style.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 代码风格
3 | description: 代码风格的相关配置说明
4 | ---
5 |
6 | Halo 添加了 checkstyle 插件,来保证每位提交者代码的风格保持一致,减少无效代码的修改。本篇文章主要讲解如何在 IDEA 中添加 CheckStyle 插件,并引入项目所提供的 checkstyle.xml 配置。
7 |
8 | ## 安装 CheckStyle-IDEA
9 |
10 | - 进入 IDEA 插件市场。
11 | - 搜索 CheckStyle-IDEA,点击安装即可。
12 |
13 | ## 配置 CheckStyle
14 |
15 | - 进入 CheckStyle 配置(File | Settings | Tools | Checkstyle)。
16 | - 选择 Checkstyle 版本:9.3(以文件 `application/build.gradle` 中指定的版本为准)。
17 | - 在配置文件中点击添加按钮,配置描述可随便填写(推荐 Halo Checks),选择 ./config/checkstyle/checkstyle.xml,点击下一步和完成。
18 | - 勾选刚刚创建的配置文件。
19 |
20 | ## 配置 Editor
21 |
22 | - 进入编辑器配置(File | Settings | Editor | Code Style)
23 |
24 | - 导入 checkstyle.xm 配置:
25 |
26 | 
27 |
28 | - 选择 `./config/checkstyle/checkstyle.xml` 配置文件,点击确定即可。
29 |
30 | 至此,有关代码风格检查工具和格式化配置已经完成。
31 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.20/developer-guide/core/prepare.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 准备工作
3 | description: 开发环境的准备工作
4 | ---
5 |
6 | ## 环境要求
7 |
8 | - [OpenJDK 17 LTS](https://github.com/openjdk/jdk)
9 | - [Node.js 20 LTS](https://nodejs.org)
10 | - [pnpm 9](https://pnpm.io/)
11 | - [IntelliJ IDEA](https://www.jetbrains.com/idea/)
12 | - [Git](https://git-scm.com/)
13 | - [Docker](https://www.docker.com/)(可选)
14 |
15 | ## 名词解释
16 |
17 | ### 工作目录
18 |
19 | 指 Halo 所依赖的工作目录,在 Halo 运行的时候会在系统当前用户目录下产生一个 halo-next 的文件夹,绝对路径为 ~/halo-next。里面通常包含下列目录或文件:
20 |
21 | 1. `db`:存放 H2 Database 的物理文件,如果你使用其他数据库,那么不会存在这个目录。
22 | 2. `themes`:里面包含用户所安装的主题。
23 | 2. `plugins`:里面包含用户所安装的插件。
24 | 5. `attachments`:附件目录。
25 | 4. `logs`:运行日志目录。
26 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.20/developer-guide/plugin/api-reference/ui/components/attachment-file-type-icon.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: AttachmentFileTypeIcon
3 | description: 附件文件类型图标组件
4 | ---
5 |
6 | 此组件用于根据文件名显示文件类型图标。
7 |
8 | ## 使用示例
9 |
10 | ```html
11 |
12 |
13 |
14 |
15 |
16 | ```
17 |
18 | ## Props
19 |
20 | | 属性名 | 类型 | 默认值 | 描述 |
21 | |--------------|---------------------|-----------|------------------------------------|
22 | | `fileName` | string \| undefined | undefined | 文件名,可以是字符串或未定义。 |
23 | | `displayExt` | boolean | true | 可选,是否显示文件扩展名,默认为 true。 |
24 | | `width` | number | 10 | 可选,组件宽度,默认为 10。 |
25 | | `height` | number | 10 | 可选,组件高度,默认为 10。 |
26 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.20/developer-guide/plugin/api-reference/ui/components/filter-clean-button.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: FilterCleanButton
3 | description: 过滤器清除按钮组件
4 | ---
5 |
6 | ## 使用示例
7 |
8 | ```html
9 |
14 |
15 |
16 |
17 |
18 | ```
19 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.20/developer-guide/plugin/api-reference/ui/components/has-permission.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: HasPermission
3 | description: 权限判断组件
4 | ---
5 |
6 | 此组件用于根据权限控制元素的显示与隐藏。
7 |
8 | ## 使用方式
9 |
10 | ```html
11 |
14 |
15 |
16 |
17 | 删除
18 |
19 |
20 | ```
21 |
22 | ## Props
23 |
24 | | 属性名 | 类型 | 默认值 | 描述 |
25 | |---------------|----------|------|-----------------------|
26 | | `permissions` | string[] | 无,必填 | 定义组件所需的权限列表。 |
27 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.20/developer-guide/plugin/api-reference/ui/components/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 组件
3 | description: 在 Halo UI 中可使用的组件。
4 | ---
5 |
6 | 此文档将介绍所有在插件中可用的组件,以及它们的使用方法和区别。
7 |
8 | ## 基础组件库
9 |
10 | 我们为 Halo 的前端封装了一个基础组件的库,你可以在插件中使用这些组件。
11 |
12 | 安装方式:
13 |
14 | ```bash
15 | pnpm install @halo-dev/components
16 | ```
17 |
18 | 在 Vue 组件中:
19 |
20 | ```html
21 |
24 |
25 |
26 | Hello
27 |
28 | ```
29 |
30 | 所有可用的基础组件以及文档可查阅:[https://halo-ui-components.pages.dev](https://halo-ui-components.pages.dev)
31 |
32 | ## 业务组件和指令
33 |
34 | 除了基础组件库,我们还为 Halo 的前端封装了一些业务组件和指令,这些组件已经在全局注册,你可以直接在插件中使用这些组件和指令。
35 |
36 | 以下是所有可用的业务组件和指令:
37 |
38 | ```mdx-code-block
39 | import DocCardList from '@theme/DocCardList';
40 |
41 |
42 | ```
43 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.20/developer-guide/plugin/api-reference/ui/components/plugin-detail-modal.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: PluginDetailModal
3 | description: 插件详情弹窗组件
4 | ---
5 |
6 | 此组件可以在 UI 部分的任意组件中打开差价的详情和设置弹窗,可以用于实现在不打断正常操作流程的情况下让用户查看和修改插件的详细信息。
7 |
8 | ## 使用方式
9 |
10 | ```html
11 |
20 |
21 |
22 |
23 |
24 | ```
25 |
26 | ## Props
27 |
28 | | 属性名 | 类型 | 默认值 | 描述 |
29 | | ------ | ------ | -------- | --------------------------------------------- |
30 | | `name` | string | 无,必填 | 插件名称,即 plugin.yaml 中的 `metadata.name` |
31 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.20/developer-guide/plugin/api-reference/ui/components/v-permission.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: v-permission
3 | description: 权限指令
4 | ---
5 |
6 | 与 [HasPermission](./has-permission.md) 组件相同,此指令也是用于根据权限控制元素的显示与隐藏。
7 |
8 | ## 使用方式
9 |
10 | ```html
11 |
14 |
15 |
16 | 删除
17 |
18 | ```
19 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.20/developer-guide/plugin/api-reference/ui/components/v-tooltip.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: v-tooltip
3 | description: Tooltip 指令
4 | ---
5 |
6 | 此指令用于在任何元素上添加一个提示框。
7 |
8 | ## 使用方式
9 |
10 | ```html
11 |
14 |
15 |
16 |
17 |
18 | ```
19 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.20/developer-guide/plugin/appendices.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 附录
3 | description: 附录
4 | ---
--------------------------------------------------------------------------------
/versioned_docs/version-2.20/developer-guide/plugin/basics/ui/intro.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 介绍
3 | description: 介绍插件 UI 部分的基础知识。
4 | ---
5 |
6 | Halo 插件体系的 UI 部分可以让开发者在 Console 控制台和 UC 个人中心添加新的页面或者扩展已有的功能。
7 |
8 | 在开始之前,建议先熟悉或安装以下库和工具:
9 |
10 | 1. [Node.js 18+](https://nodejs.org)
11 | 2. [pnpm 8+](https://pnpm.io)
12 | 3. [Vue.js 3](https://vuejs.org)
13 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.20/developer-guide/plugin/extension-points/ui/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 扩展点
3 | description: Halo UI 为插件提供的扩展点接口
4 | ---
5 |
6 | UI 扩展点是用于扩展 Console 和 UC 的界面的接口,通过实现扩展点接口,插件可以在 Console 和 UC 中扩展功能。
7 |
8 | 以下是目前已支持的扩展点列表:
9 |
10 | ```mdx-code-block
11 | import DocCardList from '@theme/DocCardList';
12 |
13 |
14 | ```
15 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.20/developer-guide/plugin/extension-points/ui/interface/Attachment.md:
--------------------------------------------------------------------------------
1 | ```ts
2 | export interface Attachment {
3 | apiVersion: "storage.halo.run/v1alpha1"
4 | kind: "Attachment"
5 | metadata: {
6 | annotations: {}
7 | creationTimestamp: string
8 | labels: {}
9 | name: string // 附件的唯一标识
10 | version: number
11 | }
12 | spec: {
13 | displayName: string // 附件名称
14 | groupName: string // 附件分组
15 | mediaType: string // 附件类型
16 | ownerName: string // 附件上传者
17 | policyName: string // 附件存储策略
18 | size: number // 附件大小
19 | tags: Array
20 | }
21 | status: {
22 | permalink: string // 附件固定访问地址
23 | }
24 | }
25 | ```
26 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.20/developer-guide/plugin/extension-points/ui/interface/OperationItem.md:
--------------------------------------------------------------------------------
1 | ```ts title="OperationItem"
2 | export interface OperationItem {
3 | priority: number; // 排序优先级
4 | component: Raw; // 菜单项组件
5 | props?: Record\; // 菜单项组件属性
6 | action?: (item?: T) => void; // 菜单项点击事件
7 | label?: string; // 菜单项标题
8 | hidden?: boolean; // 菜单项是否隐藏
9 | permissions?: string[]; // 菜单项 UI 权限
10 | children?: OperationItem[]; // 子菜单项
11 | }
12 | ```
13 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.20/developer-guide/plugin/introduction.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 介绍
3 | description: Halo 插件机制的简介
4 | ---
5 |
6 | Halo 采用可插拔架构,功能模块之间耦合度低、灵活性提高,支持用户按需安装、卸载插件,操作便捷。同时提供插件开发接口以确保较高扩展性和可维护性,这个系列的文档将帮助你了解如何开发 Halo 插件。
7 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.20/developer-guide/plugin/prepare.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 准备工作
3 | description: 插件开发的准备工作
4 | ---
5 |
6 | 在 Halo 中,插件是使用 Java 和 JavaScript / TypeScript 编写的,UI 使用 [Vuejs](https://vuejs.org) 编写。
7 |
8 | 在创建你的第一个插件之前,请确保你具备以下条件:
9 |
10 | - 你能通过 [Docker 运行 Halo](../../getting-started/install/docker) 或在[开发环境运行 Halo](../core/run.md)。
11 | - 你熟悉 Java Web 开发并掌握 [Spring Boot](https://spring.io/projects/spring-boot/) 框架。
12 | - 你需要在计算机上安装最新的 LTS 版本的 Node.js,如果你还没有 Node.js 安装,你可以在这里下载 [Node.js 18 LTS](https://nodejs.org/)。
13 | - 你熟悉 Vue 和 TypeScript。
14 | - 你应该熟悉使用 Node.js 包管理器。
15 | - Git 是一个版本控制系统,用于跟踪代码的更改,您需要 Git 来下载示例插件并发布插件。
16 |
17 | 同时需要先阅读 [Halo 架构概览](../core/framework.md) 以了解 Halo 的核心概念和技术栈。
18 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.20/developer-guide/theme/finder-apis.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Finder API
3 | description: 本文档介绍 Finder API 的使用方法。
4 | ---
5 |
6 | import DocCardList from '@theme/DocCardList';
7 |
8 | 目前在主题模板中获取数据可以使用对应路由提供的 [模板变量](./template-variables),但为了满足在任意位置获取数据的需求,我们提供了 Finder API。
9 |
10 |
11 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.20/developer-guide/theme/template-variables.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 模板编写
3 | ---
4 |
5 | 此章节我们将详细介绍如何在主题中编写页面的模板,以下是 Halo 核心中支持的所有模板:
6 |
7 | ```mdx-code-block
8 | import DocCardList from '@theme/DocCardList';
9 |
10 |
11 | ```
12 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.20/developer-guide/theme/template-variables/tags.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 文章标签集合
3 | description: tags.html - /tags
4 | ---
5 |
6 | import TagVo from '../vo/_TagVo.md'
7 |
8 | 用于列出所有文章标签的页面,可以用于实现标签墙等功能。
9 |
10 | ## 路由信息
11 |
12 | - 模板路径:`/templates/tags.html`
13 | - 访问路径:`/tags`
14 |
15 | ## 变量
16 |
17 | ### tags
18 |
19 | #### 变量类型
20 |
21 | List\<[#TagVo](#tagvo)\>
22 |
23 | #### 示例
24 |
25 | ```html title="/templates/tags.html"
26 |
29 | ```
30 |
31 | ### _templateId
32 |
33 | #### 变量值
34 |
35 | `tags`
36 |
37 | ## 类型定义
38 |
39 | ### TagVo
40 |
41 |
42 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.20/developer-guide/theme/vo/_ContentVo.md:
--------------------------------------------------------------------------------
1 | ```json title="ContentVo"
2 | {
3 | "raw": "string", // 原始文本,一般用于给编辑器使用
4 | "content": "string" // 最终渲染的文本
5 | }
6 | ```
7 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.20/developer-guide/theme/vo/_ContributorVo.md:
--------------------------------------------------------------------------------
1 | ```json title="ContributorVo"
2 | {
3 | "name": "string", // 用户名
4 | "displayName": "string", // 显示名称
5 | "avatar": "string", // 头像
6 | "bio": "string", // 描述
7 | "permalink": "string", // 作者的文章归档页面链接
8 | "metadata": {
9 | "name": "string", // 唯一标识
10 | "labels": {
11 | "additionalProp1": "string"
12 | },
13 | "annotations": {
14 | "additionalProp1": "string"
15 | },
16 | "creationTimestamp": "2022-11-20T13:06:38.512Z", // 创建时间
17 | }
18 | }
19 | ```
20 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.20/developer-guide/theme/vo/_MenuVo.md:
--------------------------------------------------------------------------------
1 | ```json title="MenuVo"
2 | {
3 | "metadata": {
4 | "name": "string", // 唯一标识
5 | "labels": {
6 | "additionalProp1": "string"
7 | },
8 | "annotations": {
9 | "additionalProp1": "string"
10 | },
11 | "creationTimestamp": "2022-11-20T14:44:58.984Z", // 创建时间
12 | },
13 | "spec": {
14 | "displayName": "string", // 显示名称
15 | "menuItems": [ // 菜单的菜单项名称集合,即 MenuItem 的 metadata.name 的集合
16 | "string"
17 | ]
18 | },
19 | "menuItems": "List<#MenuItemVo>" // 菜单项的集合
20 | }
21 | ```
22 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.20/developer-guide/theme/vo/_TagVo.md:
--------------------------------------------------------------------------------
1 | ```json title="TagVo"
2 | {
3 | "metadata": {
4 | "name": "string", // 唯一标识
5 | "labels": {
6 | "additionalProp1": "string"
7 | },
8 | "annotations": {
9 | "additionalProp1": "string"
10 | },
11 | "creationTimestamp": "2022-11-20T13:06:38.512Z", // 创建时间
12 | },
13 | "spec": {
14 | "displayName": "string", // 显示名称
15 | "slug": "string", // 别名,通常用于生成 status.permalink
16 | "color": "#F9fEB1", // 背景颜色
17 | "cover": "string" // 封面图
18 | },
19 | "status": {
20 | "permalink": "string", // 固定链接
21 | },
22 | "postCount": 0 // 文章数量
23 | }
24 | ```
25 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.20/getting-started/first-post.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 第一篇文章
3 | description: 安装完成后,如何写下第一篇文章。
4 | ---
5 |
6 |
7 |
8 |
9 | ## 登录管理端
10 |
11 | 浏览器访问 `/console` 即可进入 Halo 管理端。
12 |
13 | ## 新建文章
14 |
15 | Halo 安装完成后,默认初始化了一篇 `Hello Halo` 文章,接下来我们将创建并发布一篇自己的文章。
16 |
17 | 1. 在 Halo 管理端,点击仪表盘页面中的 `创建文章` 快捷入口,即可进入到文章编辑页面。
18 | 2. 在文章编辑器中,你可以尽情写下你想展现的内容。
19 | 3. 当内容编辑完成后,点击右上角的 `发布` 按钮,给文章设置一个合适的标题和别名,同时可以设置文章所属分类、标签及其他一些高级设置。
20 | 4. 确认无误后,点击弹框下方的 `发布` 按钮,我们的第一篇文章就成功发布了。
21 |
22 | :::info
23 | 关于文章相关其他功能及文章各种设置项的说明,请参考《[用户指南 - 文章](../user-guide/posts.md)》章节
24 | :::
25 |
26 | ## 查看文章
27 |
28 | 文章发布成功后,就可以在主题端查看到我们刚刚创建的文章了。
29 |
30 | 浏览器访问域名进入站点首页,站点展示的内容及样式由当前启用的主题所决定。
31 |
32 | 接下来,选一款喜欢的主题,尽情体验 Halo 吧!
33 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.20/getting-started/install/cloud/alibaba-cloud-computenest.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 阿里云计算巢部署
3 | description: 使用阿里云计算巢服务部署 Halo
4 | ---
5 |
6 | 阿里云计算巢提供了软件与资源的一体化交付的完善基础能力,助力服务商、开发者的提升服务能力和降低运营成本。计算巢已经支持快速部署 Halo 社区版。
7 |
8 | ## 部署流程
9 |
10 | 1. 访问计算巢 Halo 社区版服务[部署链接](https://computenest.console.aliyun.com/service/instance/create/default?type=user&ServiceId=service-71b471d79c224520bba3),按提示填写部署参数:
11 |
12 | 
13 | 2. 参数填写完成后可以看到对应询价明细,确认参数后点击**下一步:确认订单**。确认订单完成后同意服务协议并点击**立即创建**进入部署阶段。
14 | 3. 等待部署完成后进入服务实例管理,在控制台找到 Halo 服务访问链接。
15 |
16 | 
17 | 4. 单击链接访问 Halo 服务。
18 |
19 | 
20 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.20/getting-started/install/slots/_docker-registry-list.md:
--------------------------------------------------------------------------------
1 | 目前 Halo 官方维护的 Docker 镜像仓库,可以根据自己的需求选择合适的镜像源:
2 |
3 | - registry.fit2cloud.com/halo/halo
4 | - [halohub/halo](https://hub.docker.com/r/halohub/halo)
5 | - [ghcr.io/halo-dev/halo](https://github.com/halo-dev/halo/pkgs/container/halo)
6 |
7 | :::info 注意
8 | 目前 Halo 2 并未更新 Docker 的 latest 标签镜像,主要因为 Halo 2 不兼容 1.x 版本,防止使用者误操作。我们推荐使用固定版本的标签,比如 `2.20` 或者 `2.20.0`。
9 |
10 | - `registry.fit2cloud.com/halo/halo:2`:表示最新的 2.x 版本,即每次发布新版本都会更新此镜像。
11 | - `registry.fit2cloud.com/halo/halo:2.20`:表示最新的 2.20.x 版本,即每次发布 patch 版本都会同时更新此镜像。
12 | - `registry.fit2cloud.com/halo/halo:2.20.0`:表示一个具体的版本。
13 |
14 | 后续文档以 `registry.fit2cloud.com/halo/halo:2.20` 为例。
15 | :::
16 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.20/getting-started/setup.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 初始化
3 | description: 首次安装的初始化指南
4 | ---
5 |
6 | 通过之前的安装文档,你已经成功安装了 Halo,在首次访问网站的时候会自动跳转到初始化页面,你需要完成这个步骤才能正常使用 Halo。
7 |
8 | 
9 |
10 | 表单项说明:
11 |
12 | 1. **站点标题**:网站的名称,将会显示在浏览器标签页上。
13 | 2. **用户名**:初始管理员的用户名。
14 | 3. **电子邮箱**:初始管理员的邮箱地址。
15 | 4. **密码**:初始管理员的密码。
16 | 5. **确认密码**:重复输入密码以验证是否匹配。
17 |
18 | 输入完成之后点击**初始化**按钮即可完成初始化,初始化完成之后,将会跳转到登录页面,输入刚才设置的用户名和密码即可登录。
19 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.20/user-guide/pages.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 页面
3 | description: 页面管理相关功能说明
4 | ---
5 |
6 | 页面与文章类似,同样包含页面标题和富文本形式的页面内容。与文章不同的是页面无法设置所属分类和标签信息,一般用于站点中单一展示功能的页面,例如常见的站点关于页面、联系我们页面等。
7 |
8 | 自定义页面的访问链接为 `/{slug}` 其中 `slug` 为自定义页面的别名。
9 |
10 | 对于如下的关于页面,便可以通过 `/about` 地址进行访问。
11 |
12 | 
13 |
14 | :::info
15 | 自定义页面默认使用主题端的 `page.html` 模板进行渲染,如果主题中提供了针对自定义页面的其他模板,用户可以通过修改自定义页面高级设置中的自定义模板设置进行使用。
16 | :::
17 |
18 | #### 页面操作
19 |
20 | 对于页面的新建、设置、发布及删除等操作,与文章操作基本一致,具体操作请参考[《用户指南 - 文章》](./posts.md)章节,此处不再赘述。
21 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.21/about.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 关于文档
3 | description: 关于本文档站点的一些说明
4 | ---
5 |
6 | :::note
7 | 此文档使用 [Docusaurus](https://docusaurus.io/) 搭建,感谢 [Docusaurus](https://github.com/facebook/docusaurus) 社区所做的贡献。
8 | :::
9 |
10 | ## 参与贡献
11 |
12 | :::tip
13 | 如果你发现文档中有不正确或者需要添加的内容,非常欢迎参与到文档编辑当中。
14 | :::
15 |
16 | 当前文档的仓库地址为 [halo-dev/docs](https://github.com/halo-dev/docs) ,所以你可以 fork 此仓库,修改之后提交 `Pull request` 等待我们合并即可。
17 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.21/contribution/issue.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 问题反馈
3 | description: 问题反馈渠道及指南
4 | ---
5 |
6 | :::info
7 | 如果您在使用过程中遇到了什么问题,您可以通过下面的方式反馈,但请尽量按照要求提出反馈。
8 | :::
9 |
10 | ## GitHub Issues
11 |
12 | 链接:[https://github.com/halo-dev/halo/issues](https://github.com/halo-dev/halo/issues)
13 |
14 | 如果你在使用过程中,遇到了一些 bug 或者需要添加某些新特性,请尽量在 GitHub Issues 进行反馈,这非常有助于我们跟踪解决此问题,您也可以很方便的接收到处理状态。
15 |
16 | 建议步骤:
17 |
18 | 1. 在 [Issues 列表](https://github.com/halo-dev/halo/issues) 搜索相关问题,看看是否有其他人已经提到了此问题。
19 | 2. 如果当前还没有人遇到您类似的问题,那么请点击右上角的 `New issue` 按钮创建新的 issue。
20 | 3. 选择正确的反馈类型。
21 | 4. 请尽可能详细的按照模板填写内容。
22 | 5. 点击 `Submit new issue` 提交 issue。
23 |
24 | ## Halo 官方社区
25 |
26 | 链接:[https://bbs.halo.run](https://bbs.halo.run)
27 |
28 | 此平台主要目的用于与其他 Halo 用户进行交流。但如果您对 GitHub 不是很熟悉或者没有账号,您也可以在此平台进行反馈。
29 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.21/contribution/sponsor.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 赞助我们
3 | description: 如果 Halo 对你有帮助,不妨赞助我们
4 | ---
5 |
6 | ## 为什么需要赞助
7 |
8 | 我们花费了大量的精力来维护这个软件,并且也提供了不少资金来维护服务器,域名等。因此我们需要赞助来节省部分开发成本。你的赞助不仅仅会被我们用来支付一些开发成本(比如服务器,OSS,域名等),还会让我们有更多的信心和精力投入到这个开源项目的开发中。从而让项目保持更加健康的成长以及迭代。
9 |
10 | ## 赞助形式
11 |
12 | :::info
13 | 你可以通过任何形式对我们赞助,不限于资金。
14 | :::
15 |
16 | ### 资金赞助
17 |
18 | - 爱发电:[https://afdian.com/a/halo-dev](https://afdian.com/a/halo-dev)
19 |
20 | ### 通过我们的推广链接购买服务器
21 |
22 | 如果你当前还没有购买服务器,可以考虑通过以下链接购买,这会为我们带来一部分收益。
23 |
24 | - 阿里云:[https://www.aliyun.com/daily-act/ecs/activity_selection?userCode=j57gyupo](https://www.aliyun.com/daily-act/ecs/activity_selection?userCode=j57gyupo)
25 | - 阿里云新人专享:[https://www.aliyun.com/minisite/goods?userCode=j57gyupo](https://www.aliyun.com/minisite/goods?userCode=j57gyupo)
26 | - 腾讯云:[https://curl.qcloud.com/9Ogon25Y](https://curl.qcloud.com/9Ogon25Y)
27 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.21/developer-guide/core/code-style.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 代码风格
3 | description: 代码风格的相关配置说明
4 | ---
5 |
6 | Halo 添加了 checkstyle 插件,来保证每位提交者代码的风格保持一致,减少无效代码的修改。本篇文章主要讲解如何在 IDEA 中添加 CheckStyle 插件,并引入项目所提供的 checkstyle.xml 配置。
7 |
8 | ## 安装 CheckStyle-IDEA
9 |
10 | - 进入 IDEA 插件市场。
11 | - 搜索 CheckStyle-IDEA,点击安装即可。
12 |
13 | ## 配置 CheckStyle
14 |
15 | - 进入 CheckStyle 配置(File | Settings | Tools | Checkstyle)。
16 | - 选择 Checkstyle 版本:9.3(以文件 `application/build.gradle` 中指定的版本为准)。
17 | - 在配置文件中点击添加按钮,配置描述可随便填写(推荐 Halo Checks),选择 ./config/checkstyle/checkstyle.xml,点击下一步和完成。
18 | - 勾选刚刚创建的配置文件。
19 |
20 | ## 配置 Editor
21 |
22 | - 进入编辑器配置(File | Settings | Editor | Code Style)
23 |
24 | - 导入 checkstyle.xm 配置:
25 |
26 | 
27 |
28 | - 选择 `./config/checkstyle/checkstyle.xml` 配置文件,点击确定即可。
29 |
30 | 至此,有关代码风格检查工具和格式化配置已经完成。
31 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.21/developer-guide/core/prepare.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 准备工作
3 | description: 开发环境的准备工作
4 | ---
5 |
6 | ## 环境要求
7 |
8 | - [OpenJDK 21 LTS](https://github.com/openjdk/jdk)
9 | - [Node.js 20 LTS](https://nodejs.org)
10 | - [pnpm 10](https://pnpm.io/)
11 | - [IntelliJ IDEA](https://www.jetbrains.com/idea/)
12 | - [Git](https://git-scm.com/)
13 | - [Docker](https://www.docker.com/)(可选)
14 |
15 | ## 名词解释
16 |
17 | ### 工作目录
18 |
19 | 指 Halo 所依赖的工作目录,在 Halo 运行的时候会在系统当前用户目录下产生一个 halo-next 的文件夹,绝对路径为 ~/halo-next。里面通常包含下列目录或文件:
20 |
21 | 1. `db`:存放 H2 Database 的物理文件,如果你使用其他数据库,那么不会存在这个目录。
22 | 2. `themes`:里面包含用户所安装的主题。
23 | 2. `plugins`:里面包含用户所安装的插件。
24 | 5. `attachments`:附件目录。
25 | 4. `logs`:运行日志目录。
26 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.21/developer-guide/plugin/api-reference/ui/components/attachment-file-type-icon.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: AttachmentFileTypeIcon
3 | description: 附件文件类型图标组件
4 | ---
5 |
6 | 此组件用于根据文件名显示文件类型图标。
7 |
8 | ## 使用示例
9 |
10 | ```html
11 |
12 |
13 |
14 |
15 |
16 | ```
17 |
18 | ## Props
19 |
20 | | 属性名 | 类型 | 默认值 | 描述 |
21 | |--------------|---------------------|-----------|------------------------------------|
22 | | `fileName` | string \| undefined | undefined | 文件名,可以是字符串或未定义。 |
23 | | `displayExt` | boolean | true | 可选,是否显示文件扩展名,默认为 true。 |
24 | | `width` | number | 10 | 可选,组件宽度,默认为 10。 |
25 | | `height` | number | 10 | 可选,组件高度,默认为 10。 |
26 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.21/developer-guide/plugin/api-reference/ui/components/filter-clean-button.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: FilterCleanButton
3 | description: 过滤器清除按钮组件
4 | ---
5 |
6 | ## 使用示例
7 |
8 | ```html
9 |
14 |
15 |
16 |
17 |
18 | ```
19 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.21/developer-guide/plugin/api-reference/ui/components/has-permission.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: HasPermission
3 | description: 权限判断组件
4 | ---
5 |
6 | 此组件用于根据权限控制元素的显示与隐藏。
7 |
8 | ## 使用方式
9 |
10 | ```html
11 |
14 |
15 |
16 |
17 | 删除
18 |
19 |
20 | ```
21 |
22 | ## Props
23 |
24 | | 属性名 | 类型 | 默认值 | 描述 |
25 | |---------------|----------|------|-----------------------|
26 | | `permissions` | string[] | 无,必填 | 定义组件所需的权限列表。 |
27 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.21/developer-guide/plugin/api-reference/ui/components/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 组件
3 | description: 在 Halo UI 中可使用的组件。
4 | ---
5 |
6 | 此文档将介绍所有在插件中可用的组件,以及它们的使用方法和区别。
7 |
8 | ## 基础组件库
9 |
10 | 我们为 Halo 的前端封装了一个基础组件的库,你可以在插件中使用这些组件。
11 |
12 | 安装方式:
13 |
14 | ```bash
15 | pnpm install @halo-dev/components
16 | ```
17 |
18 | 在 Vue 组件中:
19 |
20 | ```html
21 |
24 |
25 |
26 | Hello
27 |
28 | ```
29 |
30 | 所有可用的基础组件以及文档可查阅:[https://halo-ui-components.pages.dev](https://halo-ui-components.pages.dev)
31 |
32 | ## 业务组件和指令
33 |
34 | 除了基础组件库,我们还为 Halo 的前端封装了一些业务组件和指令,这些组件已经在全局注册,你可以直接在插件中使用这些组件和指令。
35 |
36 | 以下是所有可用的业务组件和指令:
37 |
38 | ```mdx-code-block
39 | import DocCardList from '@theme/DocCardList';
40 |
41 |
42 | ```
43 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.21/developer-guide/plugin/api-reference/ui/components/plugin-detail-modal.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: PluginDetailModal
3 | description: 插件详情弹窗组件
4 | ---
5 |
6 | 此组件可以在 UI 部分的任意组件中打开差价的详情和设置弹窗,可以用于实现在不打断正常操作流程的情况下让用户查看和修改插件的详细信息。
7 |
8 | ## 使用方式
9 |
10 | ```html
11 |
20 |
21 |
22 |
23 |
24 | ```
25 |
26 | ## Props
27 |
28 | | 属性名 | 类型 | 默认值 | 描述 |
29 | | ------ | ------ | -------- | --------------------------------------------- |
30 | | `name` | string | 无,必填 | 插件名称,即 plugin.yaml 中的 `metadata.name` |
31 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.21/developer-guide/plugin/api-reference/ui/components/v-permission.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: v-permission
3 | description: 权限指令
4 | ---
5 |
6 | 与 [HasPermission](./has-permission.md) 组件相同,此指令也是用于根据权限控制元素的显示与隐藏。
7 |
8 | ## 使用方式
9 |
10 | ```html
11 |
14 |
15 |
16 | 删除
17 |
18 | ```
19 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.21/developer-guide/plugin/api-reference/ui/components/v-tooltip.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: v-tooltip
3 | description: Tooltip 指令
4 | ---
5 |
6 | 此指令用于在任何元素上添加一个提示框。
7 |
8 | ## 使用方式
9 |
10 | ```html
11 |
14 |
15 |
16 |
17 |
18 | ```
19 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.21/developer-guide/plugin/appendices.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 附录
3 | description: 附录
4 | ---
--------------------------------------------------------------------------------
/versioned_docs/version-2.21/developer-guide/plugin/basics/ui/intro.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 介绍
3 | description: 介绍插件 UI 部分的基础知识。
4 | ---
5 |
6 | Halo 插件体系的 UI 部分可以让开发者在 Console 控制台和 UC 个人中心添加新的页面或者扩展已有的功能。
7 |
8 | 在开始之前,建议先熟悉或安装以下库和工具:
9 |
10 | 1. [Node.js 20+](https://nodejs.org)
11 | 2. [pnpm 10+](https://pnpm.io)
12 | 3. [Vue.js 3](https://vuejs.org)
13 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.21/developer-guide/plugin/extension-points/ui/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 扩展点
3 | description: Halo UI 为插件提供的扩展点接口
4 | ---
5 |
6 | UI 扩展点是用于扩展 Console 和 UC 的界面的接口,通过实现扩展点接口,插件可以在 Console 和 UC 中扩展功能。
7 |
8 | 以下是目前已支持的扩展点列表:
9 |
10 | ```mdx-code-block
11 | import DocCardList from '@theme/DocCardList';
12 |
13 |
14 | ```
15 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.21/developer-guide/plugin/extension-points/ui/interface/Attachment.md:
--------------------------------------------------------------------------------
1 | ```ts
2 | export interface Attachment {
3 | apiVersion: "storage.halo.run/v1alpha1"
4 | kind: "Attachment"
5 | metadata: {
6 | annotations: {}
7 | creationTimestamp: string
8 | labels: {}
9 | name: string // 附件的唯一标识
10 | version: number
11 | }
12 | spec: {
13 | displayName: string // 附件名称
14 | groupName: string // 附件分组
15 | mediaType: string // 附件类型
16 | ownerName: string // 附件上传者
17 | policyName: string // 附件存储策略
18 | size: number // 附件大小
19 | tags: Array
20 | }
21 | status: {
22 | permalink: string // 附件固定访问地址
23 | }
24 | }
25 | ```
26 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.21/developer-guide/plugin/extension-points/ui/interface/OperationItem.md:
--------------------------------------------------------------------------------
1 | ```ts title="OperationItem"
2 | export interface OperationItem {
3 | priority: number; // 排序优先级
4 | component: Raw; // 菜单项组件
5 | props?: Record\; // 菜单项组件属性
6 | action?: (item?: T) => void; // 菜单项点击事件
7 | label?: string; // 菜单项标题
8 | hidden?: boolean; // 菜单项是否隐藏
9 | permissions?: string[]; // 菜单项 UI 权限
10 | children?: OperationItem[]; // 子菜单项
11 | }
12 | ```
13 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.21/developer-guide/plugin/introduction.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 介绍
3 | description: Halo 插件机制的简介
4 | ---
5 |
6 | Halo 采用可插拔架构,功能模块之间耦合度低、灵活性提高,支持用户按需安装、卸载插件,操作便捷。同时提供插件开发接口以确保较高扩展性和可维护性,这个系列的文档将帮助你了解如何开发 Halo 插件。
7 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.21/developer-guide/plugin/prepare.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 准备工作
3 | description: 插件开发的准备工作
4 | ---
5 |
6 | 在 Halo 中,插件是使用 Java 和 JavaScript / TypeScript 编写的,UI 使用 [Vuejs](https://vuejs.org) 编写。
7 |
8 | 在创建你的第一个插件之前,请确保你具备以下条件:
9 |
10 | - 你能通过 [Docker 运行 Halo](../../getting-started/install/docker) 或在[开发环境运行 Halo](../core/run.md)。
11 | - 你熟悉 Java Web 开发并掌握 [Spring Boot](https://spring.io/projects/spring-boot/) 框架。
12 | - 你需要在计算机上安装最新的 LTS 版本的 Node.js,如果你还没有 Node.js 安装,你可以在这里下载 [Node.js 18 LTS](https://nodejs.org/)。
13 | - 你熟悉 Vue 和 TypeScript。
14 | - 你应该熟悉使用 Node.js 包管理器。
15 | - Git 是一个版本控制系统,用于跟踪代码的更改,您需要 Git 来下载示例插件并发布插件。
16 |
17 | 同时需要先阅读 [Halo 架构概览](../core/framework.md) 以了解 Halo 的核心概念和技术栈。
18 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.21/developer-guide/theme/finder-apis.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Finder API
3 | description: 本文档介绍 Finder API 的使用方法。
4 | ---
5 |
6 | import DocCardList from '@theme/DocCardList';
7 |
8 | 目前在主题模板中获取数据可以使用对应路由提供的 [模板变量](./template-variables),但为了满足在任意位置获取数据的需求,我们提供了 Finder API。
9 |
10 |
11 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.21/developer-guide/theme/template-variables.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 模板编写
3 | ---
4 |
5 | 此章节我们将详细介绍如何在主题中编写页面的模板,以下是 Halo 核心中支持的所有模板:
6 |
7 | ```mdx-code-block
8 | import DocCardList from '@theme/DocCardList';
9 |
10 |
11 | ```
12 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.21/developer-guide/theme/template-variables/tags.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 文章标签集合
3 | description: tags.html - /tags
4 | ---
5 |
6 | import TagVo from '../vo/_TagVo.md'
7 |
8 | 用于列出所有文章标签的页面,可以用于实现标签墙等功能。
9 |
10 | ## 路由信息
11 |
12 | - 模板路径:`/templates/tags.html`
13 | - 访问路径:`/tags`
14 |
15 | ## 变量
16 |
17 | ### tags
18 |
19 | #### 变量类型
20 |
21 | List\<[#TagVo](#tagvo)\>
22 |
23 | #### 示例
24 |
25 | ```html title="/templates/tags.html"
26 |
29 | ```
30 |
31 | ### _templateId
32 |
33 | #### 变量值
34 |
35 | `tags`
36 |
37 | ## 类型定义
38 |
39 | ### TagVo
40 |
41 |
42 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.21/developer-guide/theme/vo/_ContentVo.md:
--------------------------------------------------------------------------------
1 | ```json title="ContentVo"
2 | {
3 | "raw": "string", // 原始文本,一般用于给编辑器使用
4 | "content": "string" // 最终渲染的文本
5 | }
6 | ```
7 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.21/developer-guide/theme/vo/_ContributorVo.md:
--------------------------------------------------------------------------------
1 | ```json title="ContributorVo"
2 | {
3 | "name": "string", // 用户名
4 | "displayName": "string", // 显示名称
5 | "avatar": "string", // 头像
6 | "bio": "string", // 描述
7 | "permalink": "string", // 作者的文章归档页面链接
8 | "metadata": {
9 | "name": "string", // 唯一标识
10 | "labels": {
11 | "additionalProp1": "string"
12 | },
13 | "annotations": {
14 | "additionalProp1": "string"
15 | },
16 | "creationTimestamp": "2022-11-20T13:06:38.512Z", // 创建时间
17 | }
18 | }
19 | ```
20 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.21/developer-guide/theme/vo/_MenuVo.md:
--------------------------------------------------------------------------------
1 | ```json title="MenuVo"
2 | {
3 | "metadata": {
4 | "name": "string", // 唯一标识
5 | "labels": {
6 | "additionalProp1": "string"
7 | },
8 | "annotations": {
9 | "additionalProp1": "string"
10 | },
11 | "creationTimestamp": "2022-11-20T14:44:58.984Z", // 创建时间
12 | },
13 | "spec": {
14 | "displayName": "string", // 显示名称
15 | "menuItems": [ // 菜单的菜单项名称集合,即 MenuItem 的 metadata.name 的集合
16 | "string"
17 | ]
18 | },
19 | "menuItems": "List<#MenuItemVo>" // 菜单项的集合
20 | }
21 | ```
22 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.21/developer-guide/theme/vo/_TagVo.md:
--------------------------------------------------------------------------------
1 | ```json title="TagVo"
2 | {
3 | "metadata": {
4 | "name": "string", // 唯一标识
5 | "labels": {
6 | "additionalProp1": "string"
7 | },
8 | "annotations": {
9 | "additionalProp1": "string"
10 | },
11 | "creationTimestamp": "2022-11-20T13:06:38.512Z", // 创建时间
12 | },
13 | "spec": {
14 | "displayName": "string", // 显示名称
15 | "slug": "string", // 别名,通常用于生成 status.permalink
16 | "color": "#F9fEB1", // 背景颜色
17 | "cover": "string" // 封面图
18 | },
19 | "status": {
20 | "permalink": "string", // 固定链接
21 | },
22 | "postCount": 0 // 文章数量
23 | }
24 | ```
25 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.21/getting-started/first-post.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 第一篇文章
3 | description: 安装完成后,如何写下第一篇文章。
4 | ---
5 |
6 |
7 |
8 |
9 | ## 登录管理端
10 |
11 | 浏览器访问 `/console` 即可进入 Halo 管理端。
12 |
13 | ## 新建文章
14 |
15 | Halo 安装完成后,默认初始化了一篇 `Hello Halo` 文章,接下来我们将创建并发布一篇自己的文章。
16 |
17 | 1. 在 Halo 管理端,点击仪表盘页面中的 `创建文章` 快捷入口,即可进入到文章编辑页面。
18 | 2. 在文章编辑器中,你可以尽情写下你想展现的内容。
19 | 3. 当内容编辑完成后,点击右上角的 `发布` 按钮,给文章设置一个合适的标题和别名,同时可以设置文章所属分类、标签及其他一些高级设置。
20 | 4. 确认无误后,点击弹框下方的 `发布` 按钮,我们的第一篇文章就成功发布了。
21 |
22 | :::info
23 | 关于文章相关其他功能及文章各种设置项的说明,请参考《[用户指南 - 文章](../user-guide/posts.md)》章节
24 | :::
25 |
26 | ## 查看文章
27 |
28 | 文章发布成功后,就可以在主题端查看到我们刚刚创建的文章了。
29 |
30 | 浏览器访问域名进入站点首页,站点展示的内容及样式由当前启用的主题所决定。
31 |
32 | 接下来,选一款喜欢的主题,尽情体验 Halo 吧!
33 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.21/getting-started/install/cloud/alibaba-cloud-computenest.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 阿里云计算巢部署
3 | description: 使用阿里云计算巢服务部署 Halo
4 | ---
5 |
6 | 阿里云计算巢提供了软件与资源的一体化交付的完善基础能力,助力服务商、开发者的提升服务能力和降低运营成本。计算巢已经支持快速部署 Halo 社区版。
7 |
8 | ## 部署流程
9 |
10 | 1. 访问计算巢 Halo 社区版服务[部署链接](https://computenest.console.aliyun.com/service/instance/create/default?type=user&ServiceId=service-71b471d79c224520bba3),按提示填写部署参数:
11 |
12 | 
13 | 2. 参数填写完成后可以看到对应询价明细,确认参数后点击**下一步:确认订单**。确认订单完成后同意服务协议并点击**立即创建**进入部署阶段。
14 | 3. 等待部署完成后进入服务实例管理,在控制台找到 Halo 服务访问链接。
15 |
16 | 
17 | 4. 单击链接访问 Halo 服务。
18 |
19 | 
20 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.21/getting-started/install/slots/_docker-registry-list.md:
--------------------------------------------------------------------------------
1 | 目前 Halo 官方维护的 Docker 镜像仓库,可以根据自己的需求选择合适的镜像源:
2 |
3 | - registry.fit2cloud.com/halo/halo
4 | - [halohub/halo](https://hub.docker.com/r/halohub/halo)
5 | - [ghcr.io/halo-dev/halo](https://github.com/halo-dev/halo/pkgs/container/halo)
6 |
7 | :::info 注意
8 | 目前 Halo 2 并未更新 Docker 的 latest 标签镜像,主要因为 Halo 2 不兼容 1.x 版本,防止使用者误操作。我们推荐使用固定版本的标签,比如 `2.21` 或者 `2.21.0`。
9 |
10 | - `registry.fit2cloud.com/halo/halo:2`:表示最新的 2.x 版本,即每次发布新版本都会更新此镜像。
11 | - `registry.fit2cloud.com/halo/halo:2.21`:表示最新的 2.21.x 版本,即每次发布 patch 版本都会同时更新此镜像。
12 | - `registry.fit2cloud.com/halo/halo:2.21.0`:表示一个具体的版本。
13 |
14 | 后续文档以 `registry.fit2cloud.com/halo/halo:2.21` 为例。
15 | :::
16 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.21/getting-started/setup.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 初始化
3 | description: 首次安装的初始化指南
4 | ---
5 |
6 | 通过之前的安装文档,你已经成功安装了 Halo,在首次访问网站的时候会自动跳转到初始化页面,你需要完成这个步骤才能正常使用 Halo。
7 |
8 | 
9 |
10 | 表单项说明:
11 |
12 | 1. **站点标题**:网站的名称,将会显示在浏览器标签页上。
13 | 2. **用户名**:初始管理员的用户名。
14 | 3. **电子邮箱**:初始管理员的邮箱地址。
15 | 4. **密码**:初始管理员的密码。
16 | 5. **确认密码**:重复输入密码以验证是否匹配。
17 |
18 | 输入完成之后点击**初始化**按钮即可完成初始化,初始化完成之后,将会跳转到登录页面,输入刚才设置的用户名和密码即可登录。
19 |
--------------------------------------------------------------------------------
/versioned_docs/version-2.21/user-guide/pages.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 页面
3 | description: 页面管理相关功能说明
4 | ---
5 |
6 | 页面与文章类似,同样包含页面标题和富文本形式的页面内容。与文章不同的是页面无法设置所属分类和标签信息,一般用于站点中单一展示功能的页面,例如常见的站点关于页面、联系我们页面等。
7 |
8 | 自定义页面的访问链接为 `/{slug}` 其中 `slug` 为自定义页面的别名。
9 |
10 | 对于如下的关于页面,便可以通过 `/about` 地址进行访问。
11 |
12 | 
13 |
14 | :::info
15 | 自定义页面默认使用主题端的 `page.html` 模板进行渲染,如果主题中提供了针对自定义页面的其他模板,用户可以通过修改自定义页面高级设置中的自定义模板设置进行使用。
16 | :::
17 |
18 | #### 页面操作
19 |
20 | 对于页面的新建、设置、发布及删除等操作,与文章操作基本一致,具体操作请参考[《用户指南 - 文章》](./posts.md)章节,此处不再赘述。
21 |
--------------------------------------------------------------------------------
/versions.json:
--------------------------------------------------------------------------------
1 | [
2 | "2.21",
3 | "2.20",
4 | "2.19",
5 | "2.18",
6 | "2.17",
7 | "2.16"
8 | ]
9 |
--------------------------------------------------------------------------------
/versionsArchived.json:
--------------------------------------------------------------------------------
1 | {
2 | "2.x 已归档": "https://v2.archive-docs.halo.run",
3 | "1.x": "https://v1.legacy-docs.halo.run"
4 | }
5 |
--------------------------------------------------------------------------------