This is an automated email from the ASF dual-hosted git repository.

linkinstar pushed a change to branch apache
in repository https://gitbox.apache.org/repos/asf/answer.git


    from 76db5164 Merge remote-tracking branch 'origin/main' into apache
     add fa19fe63 fix(update): fix update to v1.3.6
     add d39c12f8 docs(docs): remove the images about installation
     add 98a2de61 fix: Update Test_emailRepo_VerifyCode to handle additional 
parameters
     add 2167a824 fix: set last answer ID to zero if no answers
     add 8762f5b7 typo: GetCss swagger annotation content
     add 5afa01ba perf: optimize search for unanswered questions using 
answer_count
     add 11fb3aaf Makefile: Wraped with quotes the go location in go variable
     add c3a17046 fix: gavatar use sha256 for hash
     add 38834e62 feat: Add Open Search support
     add 1b043d3a fix: branding favicon might be empty
     add 016abd1a add pvc dataSource
     add eda39380 perf: remove invalid nil pointer check in Translate function
     add 4b3e0eaa perf: update check-asf-header.sh script to support Podman
     add 96916924 perf: remove extra characters in header.html
     add b41bafad fix(dev): delete test file
     add e9c92508 Revert "fix(dev): delete test file"
     add f660b636 fix(dev): delete test file
     add 46fba3e2 docs(docs): remove the images about installation
     add fe35d6c5 Merge remote-tracking branch 'origin/main' into dev
     add 96959258 feat(badge): init entity
     add b7022949 feat(badge): update entity
     add 95f20c98 feat(badge): update entity
     add dc56fce1 feat(badge): init version update
     add 37981c13 feat(badge): init badge update data
     add ecbfd61b feat(badge): init badge update data
     add d055507c feat: Add badges to admin
     add ea43edc8 feat(badge): define func and add badge's list
     add 23b6b11f feat(badge): badge init add icon
     add 797ea9b9 feat(badge): badge info && badge award list
     add 49ba98c6 feat(badge): change badge_award entity
     add a4830a41 fix: Update Test_emailRepo_VerifyCode to handle additional 
parameters
     add 4a07fdb4 fix: set last answer ID to zero if no answers
     add 80f139ef typo: GetCss swagger annotation content
     add 5383b905 perf: optimize search for unanswered questions using 
answer_count
     add 027caa65 Makefile: Wraped with quotes the go location in go variable
     add f0b58597 feat: Add Open Search support
     add 264f9274 fix: branding favicon might be empty
     add 07e4f549 feat(badge): add event for the badge
     add b2d36e0a Merge branch 'feat/1.4.0/badges' into feat/1.4.0/badge
     add 9b0de85e feat(badge): add badge event handler
     add 8a40e959 Merge remote-tracking branch 'origin/feat/1.4.0/badge' into 
feat/1.4.0/badge
     add 122ac657 feat(badge): change badge_award check
     add 203062dd feat(badge): badge award
     add c2531f9b chore(badge): change project code struct
     add 5293f4f3 feat(badge): user's badge award list
     add 61db21e0 feat(badge): fixed user's badge award list and add recent 
user badges
     add 5c04bcec feat(badge): fixed badge detail
     add 98d93b1f feat(badge): add badge checking rule
     add 290f63f2 feat(badge): add comment for event schema
     add bb40366f feat(badge): badge manage and user center's badge list
     add cf327f59 feat(badge): badge manage add badge search
     add b0c76757 feat(badge): badge search with page
     add bede0adb feat(badge): award badge for user
     add 46ab8a20 chore(badge): remove unused comment
     add f0c433cc fix(badge): fix badge init data
     add 7d040f07 feat(badge): add badge notification
     add ebc85857 chore(badge): delete not used func
     add a590bdf3 Merge branch 'feat/1.4.0/badge' into test
     add 2e626660 add pvc dataSource
     add 5e5551a1 perf: remove invalid nil pointer check in Translate function
     add 7d5bfaa3 perf: update check-asf-header.sh script to support Podman
     add d63ce367 perf: remove extra characters in header.html
     add c50e63dd fix(dev): delete test file
     add 83155783 Revert "fix(dev): delete test file"
     add 1d9f88f8 fix(embed): embed plugin type definition
     add 59b089a4 Merge branch 'feat/1.4.0/embed' into test
     add 3d8cf0ef feat: bages ui
     add 6973a004 fix: personal add recent bages ui
     add 85340796 fix: replace share params shareUserId to share
     add 3f1f3158 fix: badge list and badge detail docking api
     add fce712e6 fix: bages detail add userCard conponent
     add 3d71bc17 fix: badge detail list styles format
     add 957c299f fix: delete log
     add 29f2ce3a fix: add link url path
     add ec31d18c feat(admin): Improve the badge list
     add 04065a8d refactor: Update query parameter name in badge list API call
     add 4afa76ba refactor: update zh_CN.yaml
     add 342c31f3 fix: add link url path
     add 3cb1be88 refactor: Update badge description styling in Admin Badges 
page
     add db1a527f refactor: Update page_size parameter in badge list API call
     add 45f410ca chore: Update tsconfig.json to exclude src/plugins directory
     add ac28c887 refactor: Update badge description styling in Admin Badges 
page
     add 90cf954d refactor: Update badge description styling in Admin Badges 
page
     add 85516530 feat:Support Render type plugins
     add 7c59d3f3 feat: Add useRenderPlugin to Editor component
     add e48a13fe refactor: Update Chinese translation for badge activation
     add e4d0322a refactor: Remove unused dropdown item in BadgeOperation 
component
     add e6aa1780 refactor: Update key prop in BadgeDetail component
     add 34684cdf refactor: Update BadgeModal component to handle badge 
cancellation and confirmation
     add 76d455e6 refactor: Restore zh_CN.yaml
     add 1e8072ba refactor: Update translation for achievements
     add 065bf980 chore: Add License
     add 82d7445e fix: embed controller add error return
     add 7d8e679d docs: enable wiki
     add 15531f42 build swagger documentation on go generate
     add 493d5c07 requested changes
     add b20e656c feat(config): add deactivate plugin config cli
     add 2cc47835 Merge branch 'feat/1.4.0/config' into test
     add 1af1f77a feat: Add RenderController to handle rendering configuration
     add 6214fed8 docs: Add render api
     add 16605eaf Fix error on multiple make generate runs (#1087)
     add 9082623c fix(badge): remove duplicate default badges
     add 49db6e78 Merge branch 'feat/1.4.0/badge' into test
     add 17c69c3c fix: badges link url
     add 341b0ab8 refactor: Remove unnecessary CSS property in Editor utils
     add 701343e8 Fix error on multiple make generate runs (#1087)
     add 23323d93 fix: When using base_url, some links are missing the base path
     add 11de15c1 Merge branch 'fix/link' into test
     add 9594acb6 fix: badges index page show award count
     add 90faa87e refactor(badge): remove unused code
     add 6aa64092 feat(badge): feat badge description url
     add 4f80f9e9 feat(badge): badge list earned return earned total
     add 1666b941 feat(badge): badge list earned return earned total
     add 8b9f5d44 refactor: Add links to badge names and award counts in Admin 
Badges page
     add afaf11ff refactor: Update badge labels to use multiplication symbol 
instead of 'x'
     add ca8c4b40 refactor: Update badge labels to use multiplication symbol 
instead of 'x'
     add d72cf56b refactor: Add text truncation to TopList component link
     add 2aa16ff8 refactor: Update badge description rendering in Admin Badges 
page
     add f6b93f2b refactor(badge): remove unused code
     add 292dfe6d feat(badge): feat badge description url
     add 41d63bd2 feat(badge): delete red dot when no unread notification
     add 63e1da69 refactor: add err handling for activeUser
     add 2eaa7dba Merge remote-tracking branch 'origin/dev' into 
feat/1.4.0/badge
     add 0606d87b Merge branch 'feat/1.4.0/badge' into test
     add 8a31d29c Fix ListNewestEarned in high version MySQL
     add 70acbe38 fix: styles
     add a36d2e81 feat(badge): delete useless field
     add a2c725ab refactor: Update BadgeOperation component to conditionally 
render dropdown items based on badge status
     add daab3eeb feat: Add animation to badgeModal
     add d316764f Merge branch 'test' into feat/1.4.0/badge
     add fec34ae9 feat(badge): delete useless field
     add 052b78be fix(badge): remove red dot only when the badge notification 
has been read
     add 5c5300a6 Merge branch 'feat/1.4.0/badge' into test
     add 811d6de6 docs: enable wiki
     add 832fa688 change in the display of emoticons
     add c592231f Merge branch 'main' into dev
     add 86cde0e9 fix: style
     add 1ebff254 Merge branch 'dev' of github.com:answerdev/answer into dev
     add eacb79e5 feat(recommend): add tag-based recommendations in question 
page
     add cf7b2f0c fix(recommend): fix for all database backend
     add 8142d78e fix(recommend): redirect unauth users from recommend page
     add cb5a0b70 chore(lint): lint code and regenerate docs
     add 2ca5e8bb Merge branch 'dev' into test
     add b5401915 fix: badge detial not show empty
     add d5d9f38c feat(badge): add trigger object id for all badge award event
     add 323ee0e3 docs(makefile): upgrade version
     add 1a8e2fa0 # Conflicts: #        i18n/da_DK.yaml #       i18n/de_DE.yaml 
#       i18n/es_ES.yaml #       i18n/ko_KR.yaml #       i18n/pl_PL.yaml #       
i18n/uk_UA.yaml #       i18n/vi_VN.yaml #       i18n/zh_CN.yaml
     add 2dd4cc4f New translations en_us.yaml (Chinese Simplified)
     add 3c8aa03f fix(badge): fixed badge description translation
     add fa509526 fix(badge): fixed badge description translation
     add a1e427c8 refactor(ui): Update i18n fields
     add bd7a8c03 fix(badge): fixed badge description translation
     add dd8bdc23 fix(badge): fixed badge description translation
     add c3b61df0 New translations en_us.yaml (Vietnamese)
     add 2664c159 New translations en_us.yaml (Swedish)
     add 6017cab5 New translations en_us.yaml (Portuguese)
     add 57bef7da New translations en_us.yaml (Romanian)
     add 53485964 New translations en_us.yaml (French)
     add 427ed2a8 New translations en_us.yaml (Spanish)
     add dc7a288b New translations en_us.yaml (Czech)
     add 6ca0aec7 New translations en_us.yaml (Danish)
     add 11bc7226 New translations en_us.yaml (German)
     add f8c13871 New translations en_us.yaml (Italian)
     add 5f94c05c New translations en_us.yaml (Japanese)
     add 24f8b61c New translations en_us.yaml (Korean)
     add 6e8511d2 New translations en_us.yaml (Polish)
     add e7f48217 New translations en_us.yaml (Russian)
     add 748dc66c New translations en_us.yaml (Slovak)
     add 40ca81ed New translations en_us.yaml (Turkish)
     add e55c78b8 New translations en_us.yaml (Ukrainian)
     add 61293622 New translations en_us.yaml (Chinese Simplified)
     add 3285b56a New translations en_us.yaml (Chinese Traditional)
     add f96b6677 New translations en_us.yaml (Indonesian)
     add a9c7490d New translations en_us.yaml (Persian)
     add ddcecacc New translations en_us.yaml (Hindi)
     add 7f8605af New translations en_us.yaml (Telugu)
     add 23d2bdb5 New translations en_us.yaml (Welsh)
     add e70050d2 New translations en_us.yaml (Vietnamese)
     add 56f03bc0 New translations en_us.yaml (Swedish)
     add 32d1463f New translations en_us.yaml (Portuguese)
     add fe7620c3 New translations en_us.yaml (Romanian)
     add 5210ef87 New translations en_us.yaml (French)
     add d672527b New translations en_us.yaml (Spanish)
     add 6b771302 New translations en_us.yaml (Czech)
     add 934d2722 New translations en_us.yaml (Danish)
     add 30d4415a New translations en_us.yaml (German)
     add 297abec7 New translations en_us.yaml (Italian)
     add b06d67a1 New translations en_us.yaml (Japanese)
     add 2c31c009 New translations en_us.yaml (Korean)
     add 9cfbcc00 New translations en_us.yaml (Polish)
     add 5687bb3b New translations en_us.yaml (Russian)
     add 3f2fa6ca New translations en_us.yaml (Slovak)
     add c4c41466 New translations en_us.yaml (Turkish)
     add f235ecc7 New translations en_us.yaml (Ukrainian)
     add 4d3544ff New translations en_us.yaml (Chinese Simplified)
     add 7dbffca9 New translations en_us.yaml (Chinese Traditional)
     add f0f5d9a2 New translations en_us.yaml (Indonesian)
     add e0241e8a New translations en_us.yaml (Persian)
     add efdc06d7 New translations en_us.yaml (Hindi)
     add d05b6496 New translations en_us.yaml (Telugu)
     add da546a8f New translations en_us.yaml (Welsh)
     add df3164a1 New translations en_us.yaml (Chinese Simplified)
     add 6fb7131e Merge branch 'dev' into test
     add 3ec9cc33 feat: install page support i18n
     add c7513649 fix: add getInstallLanguageConfig
     add fb9bece0 fix: format code
     add 26afc097 feat(install): add get language mapping api
     add 1d33c882 fix: change fail
     add 2e67b9ca fix(swagger): fix title and description on swagger docs
     add 462e1d04 Merge branch 'dev' into test
     add 6c9203a7 fix: setup install language error
     add 48c23878 chore: sync swagger
     add be00ce4f fix: install plugin dependencies
     add 659a3383 fix: GetUserIsAdminModerator failed
     add 211659a5 fix: missing url title for 
PermalinkQuestionIDAndTitleByShortID
     add 94828f71 fix: 404 page return 200 status code
     add 465f4bff fix(badge): resolve id when set badge object id
     add 65cb3049 ci(github): only formal tag will push the latest image
     add 4c0e669d ci(github): remove tags-ignore
     add bbf634aa ci(github): rename github action name
     add 8e6fa13c CI: only formal tag will push the latest image (#1116)
     add 2597a626 Merge branch 'main' into dev
     add 0d6ea89a refactor(gomod): upgrade golang and dependence version
     add 66eb2d1c Merge branch 'dev' into test
     add e7eecc05 fix: badge list style
     add e24a7181 fix: badge detail delete loader
     add b927953f fix: change badges detail item key
     add eb595aad fix: fix rendering issue in badge list
     add cfbe458e fix: update axios to latest version,fix github security 
CVE-2024-28849
     add 7ff80389 fix: badge modal set zindex attribute
     add db80f630 Merge branch 'feat/1.4.1/badge-style' into test
     add 88dabcc4 fix: badges allow 404
     add 3cf4cd62 fix: badge detail params change
     add 36983898 fix: Personal homepage interface request error
     add b9064e3e fix: set default theme color constance
     add 106aeab1 refactor(pluginKit): update useRender hooks to include 
request parameter
     add 5ffa5583 Merge branch 'test' of github.com:answerdev/answer into test
     add f8fd872b update: tag styles change
     add 6817fafc refactor(gomod): replace pinyin dependency
     add e062cbcb refactor(gomod): replace pinyin dependency
     add d6fa819f refactor(gomod): downgrade dependency
     add 0cff10b1 Merge branch 'dev' into test
     add 88b52d86 fix: Optimize badge animation effect
     add 0db889af fix: fix typo in plugin
     add a0f24b3c refactor(pluginKit): update useRender hooks to include 
request parameter
     add 500c774f fix: Some contents of en_us.yaml have newline errors
     add 62d2d2a8 refactor(pluginKit): improve plugin registration process
     add 9479f1f8 chore(ui): Dynamically import plugins
     add dc61ab7e refactor(pluginKit): update plugin registration process
     add 84a49321 chore(ui): update pre-install script in package.json
     add 95b9af55 refactor(pluginKit): update addPluginToIndexTs function to 
include pluginFolder parameter
     add 59080727 refactor(ui): update pre-install script in package.json
     add df507a9d refactor(pluginKit): remove unused loadPlugins function
     add ad477136 refactor(ui): update pluginKit refresh method
     add 057f66cf style: Improve the display of personal page when there is no 
information
     add 3e91f03b change minimum username length to 2 instead of 4
     add 18c802ae change i18n strings
     add bd0d9fda docs: regenerate docs
     add 3eb9822c feat(question): support linking question
     add f575aa9b docs: add Apache License headers to source files
     add d0d275a6 style: move questionLink function to common service
     add 6f576c29 feat: add title to question linked page
     add ab920ac0 perf: skip link addition for same question id
     add b328a2b4 style: use ReplaceAll instead of Replace
     add 62b9104a fix: support short id
     add 74368ec9 perf: optimize question link processing
     add fe60e5e5 perf: optimize question linked display processing
     add dc41218c refactor(ui): Update linked question UI text
     add 9f912b38 refactor(utils): Refactor plugin registration in Plugins class
     add 4c9e37fa Add importer plugin type
     add 5aad9e95 Add importer service
     add 73c7a229 Fix importer
     add 2fd6ac37 Fix err
     add 1e82b043 Fix line87
     add 23729505 refactor(ui): LinkedQuestions component to handle empty data
     add 6da9d718 Merge branch 'dev' into test
     add 86020654 refactor(provider): add importer provider
     add 2114aa93 Merge branch 'dev' into test
     add 43c09e8b fix: badge modal zindex
     add e893a656 fix: badge modal zindex
     add 24b53d53 fix: personal badges list style
     add 81fbea17 fix: linked page list add order params
     add 13c17f1d fix: Only the active issue list shows update time
     add e0ffb967 fix: linked question component not use empty content
     add a3a7a366 fix: personal page empty state
     add 1997af87 fix: eslint
     add a8e008de feat: Support related and hot questions template
     add 916dba3f feat(pager): Show 404 when page is out of range (#1135)
     add 23cc755a feat(question): add question linking feature for closing 
question
     add fe1576ba Merge branch 'dev' into test
     add f93fd518 fix: display error message and HTML for invalid order
     add bc8c6993 feat(question): add closed question linking
     add 07e80aba Merge branch 'dev' into test
     add 7e4aa98c fix: navbar header dropdown cannot auto close
     add 5fd09d87 refactor(router): comment out UI index file check for dynamic 
routing
     add 5f28f106 refactor(router): comment out UI index file check for dynamic 
routing
     add c0a1f4e5 fix(ui): route plugins register failed
     add 49033820 refactor(ui): extract event logic of plugin kit out
     add 6e51cc75 refactor(ui): optimize initial loading
     add 8753716c refactor(ui): optimize initial loading and extract event 
logic of plugin kit out
     add 9fa6ef68 chore(ui): copy style from `public/index.html` to keep 
consistency
     add 895c1c41 fix: add 400 second tag search debounce
     add 0c5eb64f Merge branch 'dev' into test
     add dd16be0a docs(Makefile): upgrade version to 1.4.1
     add f581e8b7 docs(ui): add Apache license header to 
InitialLoadingPlaceholder components
     add 76fe2187 # Conflicts: #        i18n/da_DK.yaml #       i18n/de_DE.yaml 
#       i18n/es_ES.yaml #       i18n/fa_IR.yaml #       i18n/fr_FR.yaml #       
i18n/it_IT.yaml #       i18n/ko_KR.yaml #       i18n/pl_PL.yaml #       
i18n/pt_PT.yaml #       i18n/ro_RO.yaml #       i18n/ru_RU.yaml #       
i18n/sv_SE.yaml #       i18n/uk_UA.yaml #       i18n/vi_VN.yaml #       
i18n/zh_CN.yaml
     add cea87404 docs(i18n): update translation progress
     add f35561ff docs(i18n): update translation
     add 962221be ci(gorelease): Upgrade Goreleaser version to 2 and update 
snapshot version template
     add 08c2fc78 docs(ui): add Apache license header to 
InitialLoadingPlaceholder components
     add 18e3becb Merge branch 'main' into release/1.4.1
     add 1a21cd07 docs(i18n): update translation progress
     add e6cafaaa docs(i18n): update translation
     add b9402e62 ci(gorelease): Upgrade Goreleaser version to 2 and update 
snapshot version template
     add 8affa9fa ci(plugin): make default plugin list
     add e39319da Merge branch 'release/1.4.1'
     add 8cff85b7 docs: update license files
     add eeb79b3a fix: missing js-sha256 license
     add 6d933c2d docs: add front-matter license files
     add 3a688a09 Merge branch 'lufei-fix/licenses'
     add 8e3ce7d3 docs: rename codemirror license file name
     add 350db91d fix: fixed project initialization not allowing access to the 
plug-in interface, causing the page to continue loading #1162
     add c2ad8c64 fix: delete unused log
     add 5f468c6f perf: optimize tag has new tag check
     add ad638712 fix: add status filter when update tag rel
     add 5546bb55 fix: wrong status when enable tag rel
     add 68570d72 fix: resolve 404 error on Tags static page
     add bb739414 feat: update template files
     add 6fc8a6e9 fix: display timezone on Dashboard when set to UTC
     add fcecc07f fix: update useRenderHtmlPlugin to target specific HTML 
element
     add fdd3b4db fix: Tag summary display is not as expected on tag detail page
     add 1fe3b7d8 refactor(gomock): update gomock dependence and docs
     add f29b43b9 feat(file): update the max image size
     add e7ee4ea9 fix(review): reject the review when delete question
     add ad956d68 fix: Markdown parsing without incrementing ordered list 
numbers
     add 241d6f4c feat: actions add toast tips
     add 9df9f7a1 perf: add note to email body
     add 98eceff5 feat: Add key metrics to the dashboard
     add 5060e087 fix(search): fix the wrong offset when searching
     add 655a7e48 feat(question): add linked count feature to question
     add b9fb7589 feat(question): sort questions by update time for frequent tab
     add a955ba06 feat(upload): add support for file attachments and enhance 
image upload
     add bc20a71a feat: The editor has added support for uploading attachments, 
and the management background has added file upload configuration information.
     add 4831f6ef fix: Add file upload error handling
     add aac2370f feat(upload): add support for file attachments and enhance 
image upload
     add 4e792ea4 fix: length error
     add 7b4044c1 fix: Optimize the mobile style of QueryGroup component
     add 4f01ccd5 fix: Optimize the mobile style of QueryGroup component 
dropdown btns
     add 1ea05660 fix: The pre tag sets the maximum height #1168
     add 73eb2a11 test: fix TestGetAvatarURL
     add 43a474b4 feat(storage): add upload file condition to plugin upload
     add b558de8a feat(user): add top questions and answers to user homepage
     add e41a8522 fix: administrator add user failure
     add 565ee3cc fix: Attachment accept type adjustment, editor plug-in 
insertion position added conditional restrictions
     add 9fcf1836 refactor: remove unused heading options and clean up icon 
styles
     add 7f776470 refactor(i18n): update formatting instructions to mention 
post IDs
     add 0ad4defb feat(file): implement file download functionality
     add 7a8cc6a5 refactor(uploader): improve file upload and download 
functionality subpath constants - Adjust file download
     add 9c266c5f feat(upload): add support for attachment uploads and improve 
image handling
     add a4752957 feat: Add delete external user login info by user ID
     add f6d517b9 docs(Makefile): upgrade version to 1.4.2
     add 803da785 # Conflicts: #        i18n/da_DK.yaml #       i18n/de_DE.yaml 
#       i18n/es_ES.yaml #       i18n/fa_IR.yaml #       i18n/fr_FR.yaml #       
i18n/it_IT.yaml #       i18n/ko_KR.yaml #       i18n/pl_PL.yaml #       
i18n/pt_PT.yaml #       i18n/ro_RO.yaml #       i18n/ru_RU.yaml #       
i18n/sv_SE.yaml #       i18n/uk_UA.yaml #       i18n/vi_VN.yaml #       
i18n/zh_CN.yaml
     add 4eb731fc Merge branch 'main' into main
     add 6ae18901 Update translation (#1199)
     add f7731bc6 Release/1.4.2 (#1200)
     add 06189473 refactor(name): rename incubator-answer
     add bbb2e662 docs(disclaimer): remove disclaimer
     add 5886c1ec build(release): remove DISCLAIMER file from release assets
     new 4a8ab2ef Merge branch 'main' into apache

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .asf.yaml                                          |    2 +-
 .github/workflows/build-binary-for-release.yml     |    2 +-
 ...ease.yml => build-image-for-latest-release.yml} |    6 +-
 .github/workflows/build-image-for-release.yml      |    2 -
 .goreleaser.yaml                                   |   16 +-
 .vaunt/config.yaml                                 |    4 +-
 DISCLAIMER                                         |   10 -
 Dockerfile                                         |    6 +-
 Makefile                                           |   17 +-
 NOTICE                                             |    4 +-
 README.md                                          |   20 +-
 charts/templates/pvc.yaml                          |    8 +-
 charts/values.yaml                                 |    8 +-
 cmd/answer/main.go                                 |    8 +-
 cmd/command.go                                     |   21 +-
 cmd/main.go                                        |   14 +-
 cmd/wire.go                                        |   26 +-
 cmd/wire_gen.go                                    |  206 +-
 dev/i18n/zh_CN.yaml                                | 2035 --------------
 docs/docs.go                                       | 1006 ++++++-
 docs/img/install-database.png                      |  Bin 13214 -> 0 bytes
 docs/img/install-site-info.png                     |  Bin 43093 -> 0 bytes
 docs/release/LICENSE                               |   12 +-
 docs/release/NOTICE                                |    4 +-
 .../licenses/LICENSE-Chain-Zhang-pinyin.txt        |   21 -
 ...ror5.txt => LICENSE-codemirror-basic-setup.txt} |    2 +-
 ...r5.txt => LICENSE-codemirror-lang-markdown.txt} |    2 +-
 ...r5.txt => LICENSE-codemirror-language-data.txt} |    2 +-
 ...odemirror5.txt => LICENSE-codemirror-state.txt} |    2 +-
 ...codemirror5.txt => LICENSE-codemirror-view.txt} |    2 +-
 ...Qix--color.txt => LICENSE-emn178-js-sha256.txt} |    4 +-
 ...t-matter.txt => LICENSE-jxson-front-matter.txt} |    0
 ...i18next.txt => LICENSE-mozillazg-go-pinyin.txt} |    2 +-
 docs/release/licenses/LICENSE-pvorb-node-md5.txt   |   27 -
 ...SE-golang-mock.txt => LICENSE-uber-go-mock.txt} |    0
 docs/swagger.json                                  | 1005 ++++++-
 docs/swagger.yaml                                  |  603 ++++-
 go.mod                                             |  195 +-
 go.sum                                             |  815 ++----
 i18n/af_ZA.yaml                                    |    4 +-
 i18n/ar_SA.yaml                                    |    4 +-
 i18n/az_AZ.yaml                                    |    4 +-
 i18n/bal_BA.yaml                                   |    4 +-
 i18n/ban_ID.yaml                                   |    4 +-
 i18n/bn_BD.yaml                                    |    4 +-
 i18n/bs_BA.yaml                                    |    4 +-
 i18n/ca_ES.yaml                                    |    4 +-
 i18n/cs_CZ.yaml                                    |  748 ++++--
 i18n/cy_GB.yaml                                    |  378 ++-
 i18n/da_DK.yaml                                    | 2766 +++++++++++---------
 i18n/de_DE.yaml                                    |  422 ++-
 i18n/el_GR.yaml                                    |    4 +-
 i18n/en_US.yaml                                    |  382 ++-
 i18n/es_ES.yaml                                    |  378 ++-
 i18n/fa_IR.yaml                                    |  378 ++-
 i18n/fi_FI.yaml                                    |    4 +-
 i18n/fr_FR.yaml                                    |  380 ++-
 i18n/he_IL.yaml                                    |    4 +-
 i18n/hi_IN.yaml                                    |  378 ++-
 i18n/hu_HU.yaml                                    |    4 +-
 i18n/hy_AM.yaml                                    |    4 +-
 i18n/i18n.yaml                                     |   26 +-
 i18n/id_ID.yaml                                    |  378 ++-
 i18n/it_IT.yaml                                    |  414 ++-
 i18n/ja_JP.yaml                                    | 2230 +++++++++-------
 i18n/ko_KR.yaml                                    |  386 ++-
 i18n/{hi_IN.yaml => ml_IN.yaml}                    |  368 ++-
 i18n/nl_NL.yaml                                    |    4 +-
 i18n/no_NO.yaml                                    |    5 +-
 i18n/pl_PL.yaml                                    |  390 ++-
 i18n/pt_BR.yaml                                    |    2 +-
 i18n/pt_PT.yaml                                    |  728 ++++--
 i18n/ro_RO.yaml                                    |  378 ++-
 i18n/ru_RU.yaml                                    |  378 ++-
 i18n/sk_SK.yaml                                    |  378 ++-
 i18n/sq_AL.yaml                                    |    4 +-
 i18n/sr_SP.yaml                                    |    4 +-
 i18n/sv_SE.yaml                                    |  396 ++-
 i18n/te_IN.yaml                                    |  378 ++-
 i18n/tr_TR.yaml                                    |  390 ++-
 i18n/uk_UA.yaml                                    | 1398 ++++++----
 i18n/vi_VN.yaml                                    |  504 +++-
 i18n/zh_CN.yaml                                    |  412 ++-
 i18n/zh_TW.yaml                                    |  390 ++-
 internal/base/conf/conf.go                         |   14 +-
 internal/base/constant/cache_key.go                |    2 +
 internal/base/constant/event.go                    |   75 +
 internal/base/constant/notification.go             |    8 +
 internal/base/constant/object_type.go              |   20 +-
 internal/base/constant/privilege.go                |    2 +-
 internal/base/constant/site_info.go                |    6 +
 internal/base/constant/{meta.go => upload.go}      |    6 +-
 internal/base/cron/cron.go                         |    4 +-
 internal/base/data/data.go                         |    4 +-
 internal/base/handler/handler.go                   |    6 +-
 internal/base/handler/lang.go                      |    2 +-
 internal/base/handler/response.go                  |    2 +-
 internal/base/handler/short_id.go                  |    2 +-
 internal/base/middleware/accept_language.go        |    4 +-
 internal/base/middleware/auth.go                   |   18 +-
 internal/base/middleware/avatar.go                 |    6 +-
 internal/base/middleware/rate_limit.go             |    8 +-
 internal/base/middleware/short_id.go               |    4 +-
 .../base/middleware/user_center_plugin_auth.go     |    6 +-
 internal/base/middleware/visit_img_auth.go         |    2 +-
 internal/base/pager/pagination.go                  |   12 +
 internal/base/reason/reason.go                     |    2 +
 internal/base/server/http.go                       |    8 +-
 internal/base/server/http_funcmap.go               |   12 +-
 internal/base/validator/validator.go               |    4 +-
 internal/cli/build.go                              |   41 +-
 internal/cli/config.go                             |   45 +-
 internal/cli/dump.go                               |    2 +-
 internal/cli/i18n.go                               |    6 +-
 internal/cli/install.go                            |    8 +-
 internal/cli/install_check.go                      |    6 +-
 internal/controller/activity_controller.go         |   12 +-
 internal/controller/answer_controller.go           |   26 +-
 internal/controller/badge_controller.go            |  158 ++
 internal/controller/collection_controller.go       |   10 +-
 internal/controller/comment_controller.go          |   24 +-
 internal/controller/connector_controller.go        |   14 +-
 internal/controller/controller.go                  |    2 +
 internal/controller/dashboard_controller.go        |    4 +-
 internal/controller/embed_controller.go            |   30 +-
 internal/controller/follow_controller.go           |   10 +-
 internal/controller/lang_controller.go             |    6 +-
 internal/controller/meta_controller.go             |   10 +-
 internal/controller/notification_controller.go     |   18 +-
 internal/controller/permission_controller.go       |    8 +-
 internal/controller/plugin_captcha_controller.go   |    4 +-
 .../controller/plugin_user_center_controller.go    |   12 +-
 internal/controller/question_controller.go         |   83 +-
 internal/controller/rank_controller.go             |    8 +-
 internal/controller/reason_controller.go           |    6 +-
 ..._captcha_controller.go => render_controller.go} |   37 +-
 internal/controller/report_controller.go           |   24 +-
 internal/controller/review_controller.go           |   16 +-
 internal/controller/revision_controller.go         |   22 +-
 internal/controller/search_controller.go           |   20 +-
 internal/controller/siteinfo_controller.go         |    8 +-
 internal/controller/tag_controller.go              |   21 +-
 internal/controller/template_controller.go         |  156 +-
 internal/controller/template_render/answer.go      |    2 +-
 internal/controller/template_render/comment.go     |    4 +-
 internal/controller/template_render/controller.go  |   12 +-
 internal/controller/template_render/question.go    |   26 +-
 internal/controller/template_render/tags.go        |    4 +-
 internal/controller/template_render/userinfo.go    |    2 +-
 internal/controller/upload_controller.go           |   21 +-
 internal/controller/user_controller.go             |   30 +-
 internal/controller/user_plugin_controller.go      |   12 +-
 internal/controller/vote_controller.go             |   22 +-
 internal/controller_admin/badge_controller.go      |   86 +
 internal/controller_admin/controller.go            |    1 +
 internal/controller_admin/plugin_controller.go     |    8 +-
 internal/controller_admin/role_controller.go       |    6 +-
 internal/controller_admin/siteinfo_controller.go   |   18 +-
 internal/controller_admin/theme_controller.go      |    4 +-
 .../controller_admin/user_backyard_controller.go   |   14 +-
 internal/entity/badge_award_entity.go              |   69 +
 internal/entity/badge_entity.go                    |   71 +
 .../{power_entity.go => badge_group_entity.go}     |   20 +-
 internal/entity/comment_entity.go                  |    2 +-
 internal/entity/config_entity.go                   |    2 +-
 internal/entity/question_entity.go                 |    1 +
 .../{tag_rel_entity.go => question_link_entity.go} |   31 +-
 internal/install/install_controller.go             |   41 +-
 internal/install/install_main.go                   |    4 +-
 internal/install/install_req.go                    |    6 +-
 internal/install/install_server.go                 |    7 +-
 internal/migrations/init.go                        |   36 +-
 internal/migrations/init_data.go                   |  164 +-
 internal/migrations/migrations.go                  |    7 +-
 internal/migrations/v10.go                         |    6 +-
 internal/migrations/v11.go                         |    2 +-
 internal/migrations/v12.go                         |    2 +-
 internal/migrations/v13.go                         |    8 +-
 internal/migrations/v15.go                         |    2 +-
 internal/migrations/v16.go                         |    4 +-
 internal/migrations/v17.go                         |    4 +-
 internal/migrations/v18.go                         |    6 +-
 internal/migrations/v19.go                         |    2 +-
 internal/migrations/v20.go                         |    2 +-
 internal/migrations/v22.go                         |   75 +
 internal/migrations/{v15.go => v23.go}             |    7 +-
 internal/migrations/v24.go                         |   72 +
 internal/migrations/v3.go                          |    2 +-
 internal/migrations/v4.go                          |    4 +-
 internal/migrations/v5.go                          |    2 +-
 internal/migrations/v6.go                          |    2 +-
 internal/migrations/v7.go                          |    2 +-
 internal/migrations/v8.go                          |    4 +-
 internal/migrations/v9.go                          |    2 +-
 internal/repo/activity/activity_repo.go            |   12 +-
 internal/repo/activity/answer_repo.go              |   20 +-
 internal/repo/activity/follow_repo.go              |   14 +-
 internal/repo/activity/review_repo.go              |   18 +-
 internal/repo/activity/user_active_repo.go         |   14 +-
 internal/repo/activity/vote_repo.go                |   24 +-
 internal/repo/activity_common/activity_repo.go     |   29 +-
 internal/repo/activity_common/follow.go            |   12 +-
 internal/repo/activity_common/vote.go              |   10 +-
 internal/repo/answer/answer_repo.go                |   44 +-
 internal/repo/auth/auth.go                         |   10 +-
 internal/repo/badge/badge_event_rule.go            |  253 ++
 internal/repo/badge/badge_repo.go                  |  151 ++
 internal/repo/badge_award/badge_award_repo.go      |  186 ++
 .../badge_group/badge_group_repo.go}               |   51 +-
 internal/repo/captcha/captcha.go                   |    8 +-
 internal/repo/collection/collection_group_repo.go  |   12 +-
 internal/repo/collection/collection_repo.go        |   18 +-
 internal/repo/comment/comment_repo.go              |   14 +-
 internal/repo/config/config_repo.go                |   10 +-
 internal/repo/export/email_repo.go                 |    8 +-
 internal/repo/limit/limit.go                       |    6 +-
 internal/repo/meta/meta_repo.go                    |    8 +-
 internal/repo/notification/notification_repo.go    |   28 +-
 internal/repo/plugin_config/plugin_config_repo.go  |    8 +-
 .../repo/plugin_config/plugin_user_config_repo.go  |   10 +-
 internal/repo/provider.go                          |   65 +-
 internal/repo/question/question_repo.go            |  311 ++-
 internal/repo/rank/user_rank_repo.go               |   14 +-
 internal/repo/reason/reason_repo.go                |    8 +-
 internal/repo/repo_test/auth_test.go               |    4 +-
 internal/repo/repo_test/captcha_test.go            |    2 +-
 internal/repo/repo_test/comment_repo_test.go       |   10 +-
 internal/repo/repo_test/email_repo_test.go         |    6 +-
 internal/repo/repo_test/meta_repo_test.go          |    4 +-
 internal/repo/repo_test/notification_repo_test.go  |    6 +-
 internal/repo/repo_test/reason_repo_test.go        |    6 +-
 internal/repo/repo_test/recommend_test.go          |  215 ++
 internal/repo/repo_test/repo_main_test.go          |    4 +-
 internal/repo/repo_test/revision_repo_test.go      |    8 +-
 internal/repo/repo_test/siteinfo_repo_test.go      |    4 +-
 internal/repo/repo_test/tag_rel_repo_test.go       |    8 +-
 internal/repo/repo_test/tag_repo_test.go           |   10 +-
 internal/repo/repo_test/user_backyard_repo_test.go |    6 +-
 internal/repo/repo_test/user_repo_test.go          |    4 +-
 internal/repo/report/report_repo.go                |   14 +-
 internal/repo/review/review_repo.go                |   20 +-
 internal/repo/revision/revision_repo.go            |   18 +-
 internal/repo/role/power_repo.go                   |    8 +-
 internal/repo/role/role_power_rel_repo.go          |    6 +-
 internal/repo/role/role_repo.go                    |    8 +-
 internal/repo/role/user_role_rel_repo.go           |    8 +-
 internal/repo/search_common/search_repo.go         |   47 +-
 internal/repo/search_sync/search_sync.go           |   12 +-
 internal/repo/site_info/siteinfo_repo.go           |   10 +-
 internal/repo/tag/tag_rel_repo.go                  |   40 +-
 internal/repo/tag/tag_repo.go                      |   12 +-
 internal/repo/tag_common/tag_common_repo.go        |   12 +-
 internal/repo/unique/uniqid_repo.go                |   10 +-
 internal/repo/user/user_backyard_repo.go           |   12 +-
 internal/repo/user/user_repo.go                    |   14 +-
 .../user_external_login_repo.go                    |   22 +-
 .../user_notification_config_repo.go               |   10 +-
 internal/router/answer_api_router.go               |   25 +-
 internal/router/plugin_api_router.go               |    6 +-
 internal/router/static_router.go                   |   21 +-
 internal/router/swagger_router.go                  |    6 +-
 internal/router/template_router.go                 |   10 +-
 internal/router/ui.go                              |   23 +-
 internal/schema/activity.go                        |    2 +-
 internal/schema/answer_schema.go                   |    4 +-
 internal/schema/backyard_user_schema.go            |   12 +-
 internal/schema/badge_schema.go                    |  177 ++
 internal/schema/comment_schema.go                  |    6 +-
 internal/schema/dashboard_schema.go                |    4 +
 internal/schema/email_template.go                  |    2 +-
 internal/schema/event_schema.go                    |  114 +
 internal/schema/new_question_queue_schema.go       |    4 +-
 internal/schema/notification_schema.go             |   76 +-
 internal/schema/permission.go                      |    6 +-
 internal/schema/plugin_admin_schema.go             |    2 +-
 internal/schema/plugin_option_schema.go            |   25 -
 internal/schema/plugin_user_schema.go              |    2 +-
 internal/schema/question_schema.go                 |   25 +-
 internal/schema/reason_schema.go                   |    2 +-
 internal/schema/review_schema.go                   |    4 +-
 internal/schema/revision_schema.go                 |    2 +-
 internal/schema/search_schema.go                   |    6 +-
 internal/schema/simple_obj_info_schema.go          |    4 +-
 internal/schema/siteinfo_schema.go                 |   46 +-
 internal/schema/tag_schema.go                      |    4 +-
 internal/schema/user_notification_schema.go        |    4 +-
 internal/schema/user_schema.go                     |   16 +-
 internal/service/action/captcha_service.go         |    8 +-
 internal/service/action/captcha_strategy.go        |    4 +-
 internal/service/activity/activity.go              |   30 +-
 .../service/activity/answer_activity_service.go    |    6 +-
 internal/service/activity/review_active.go         |    2 +-
 internal/service/activity_common/activity.go       |   11 +-
 internal/service/activity_queue/activity_queue.go  |    2 +-
 internal/service/answer_common/answer.go           |   11 +-
 internal/service/auth/auth.go                      |    6 +-
 internal/service/badge/badge_award_service.go      |  299 +++
 internal/service/badge/badge_event_handler.go      |   77 +
 .../badge/badge_group_service.go}                  |   22 +-
 internal/service/badge/badge_service.go            |  329 +++
 .../service/collection/collection_group_service.go |    6 +-
 internal/service/collection/collection_service.go  |    8 +-
 internal/service/collection_common/collection.go   |    2 +-
 internal/service/comment/comment_service.go        |   52 +-
 internal/service/comment_common/comment_service.go |    6 +-
 internal/service/config/config_service.go          |    2 +-
 internal/service/content/answer_service.go         |   91 +-
 .../service/content/question_hottest_service.go    |    4 +-
 internal/service/content/question_service.go       |  202 +-
 internal/service/content/revision_service.go       |   46 +-
 internal/service/content/search_service.go         |    8 +-
 internal/service/content/user_service.go           |   60 +-
 internal/service/content/vote_service.go           |   61 +-
 internal/service/dashboard/dashboard_service.go    |   63 +-
 .../event_queue.go}                                |   36 +-
 internal/service/export/email_service.go           |   16 +-
 internal/service/follow/follow_service.go          |    8 +-
 internal/service/importer/importer_service.go      |  172 ++
 internal/service/meta/meta_service.go              |   44 +-
 .../service/meta_common/meta_common_service.go     |    4 +-
 internal/service/mock/siteinfo_repo_mock.go        |   45 +-
 .../notice_queue/external_notification_queue.go    |    2 +-
 internal/service/notice_queue/notice_queue.go      |    2 +-
 .../service/notification/external_notification.go  |   20 +-
 .../notification/invite_answer_notification.go     |    4 +-
 .../notification/new_answer_notification.go        |    4 +-
 .../notification/new_comment_notification.go       |    4 +-
 .../notification/new_question_notification.go      |   12 +-
 .../service/notification/notification_service.go   |  129 +-
 .../service/notification_common/notification.go    |  168 +-
 internal/service/object_info/object_info.go        |   19 +-
 internal/service/permission/answer_permission.go   |    8 +-
 internal/service/permission/comment_permission.go  |    8 +-
 internal/service/permission/question_permission.go |    8 +-
 internal/service/permission/tag_permission.go      |    8 +-
 .../service/plugin_common/plugin_common_service.go |   24 +-
 internal/service/provider.go                       |   89 +-
 internal/service/question_common/question.go       |  260 +-
 internal/service/rank/rank_service.go              |   32 +-
 internal/service/reason/reason_service.go          |    4 +-
 internal/service/reason_common/reason.go           |    2 +-
 internal/service/report/report_service.go          |   66 +-
 internal/service/report_common/report_common.go    |    4 +-
 internal/service/report_handle/report_handle.go    |   14 +-
 internal/service/review/review_service.go          |   35 +-
 internal/service/revision/revision.go              |    2 +-
 .../service/revision_common/revision_service.go    |   12 +-
 internal/service/role/power_service.go             |    2 +-
 internal/service/role/role_service.go              |    8 +-
 internal/service/role/user_role_rel_service.go     |    2 +-
 internal/service/search_common/search.go           |    4 +-
 internal/service/search_parser/search_parser.go    |   10 +-
 internal/service/siteinfo/siteinfo_service.go      |   24 +-
 .../service/siteinfo_common/siteinfo_service.go    |    8 +-
 .../siteinfo_common/siteinfo_service_test.go       |    8 +-
 internal/service/tag/tag_service.go                |   27 +-
 internal/service/tag_common/tag_common.go          |   53 +-
 internal/service/uploader/upload.go                |  156 +-
 internal/service/user_admin/user_backyard.go       |   54 +-
 internal/service/user_common/user.go               |   33 +-
 .../user_center_login_service.go                   |   34 +-
 .../user_external_login_service.go                 |   34 +-
 .../user_notification_config_service.go            |    8 +-
 pkg/checker/file_type.go                           |   53 +-
 pkg/checker/path_ignore.go                         |    2 +-
 pkg/checker/question_link.go                       |  132 +
 pkg/checker/question_link_test.go                  |  184 ++
 pkg/checker/reserved_username.go                   |    6 +-
 pkg/checker/username.go                            |    2 +-
 pkg/converter/markdown.go                          |    1 +
 pkg/display/url.go                                 |    6 +-
 pkg/gravatar/gravatar_test.go                      |    4 +-
 pkg/htmltext/htmltext.go                           |   28 +-
 pkg/obj/obj.go                                     |    6 +-
 pkg/token/token.go                                 |    2 +-
 plugin/embed.go                                    |   10 +-
 plugin/{cache.go => importer.go}                   |   44 +-
 plugin/plugin.go                                   |   14 +-
 plugin/{embed.go => render.go}                     |   17 +-
 plugin/search.go                                   |    2 +-
 plugin/storage.go                                  |   24 +-
 script/check-asf-header.sh                         |   13 +-
 script/plugin_list                                 |    8 +-
 ui/package.json                                    |    8 +-
 ui/pnpm-lock.yaml                                  |  482 ++--
 ui/public/index.html                               |    2 +-
 ui/scripts/importPlugins.js                        |   68 +
 ui/scripts/{plugin.js => loadPlugins.js}           |   47 +-
 ui/scripts/preinstall.js                           |    2 +-
 ui/src/App.tsx                                     |    7 +-
 ui/src/common/color.scss                           |   24 +-
 ui/src/common/constants.ts                         |    5 +
 ui/src/common/interface.ts                         |   75 +-
 ui/src/components/AccordionNav/index.tsx           |   70 +-
 .../CardBadge}/index.scss                          |    9 +-
 ui/src/components/CardBadge/index.tsx              |   96 +
 ui/src/components/CustomizeTheme/index.tsx         |   29 +-
 ui/src/components/Editor/ToolBars/file.tsx         |  135 +
 ui/src/components/Editor/ToolBars/heading.tsx      |    7 +-
 ui/src/components/Editor/ToolBars/image.tsx        |  118 +-
 ui/src/components/Editor/ToolBars/index.ts         |    2 +
 ui/src/components/Editor/index.scss                |   75 -
 ui/src/components/Editor/index.tsx                 |    6 +-
 ui/src/components/Editor/toolItem.tsx              |    1 +
 ui/src/components/Editor/utils/index.ts            |    1 -
 .../Header/components/NavItems/index.tsx           |   31 +-
 .../InitialLoadingPlaceholder}/index.scss          |   53 +-
 .../InitialLoadingPlaceholder}/index.tsx           |   21 +-
 ui/src/components/Modal/BadgeModal.tsx             |  164 ++
 ui/src/components/Modal/Modal.tsx                  |    3 +
 ui/src/components/Modal/index.tsx                  |    3 +-
 ui/src/components/PageTags/index.tsx               |    2 +-
 ui/src/components/PluginRender/index.tsx           |    8 +-
 .../Timeline => components/QueryGroup}/index.scss  |   21 +-
 ui/src/components/QueryGroup/index.tsx             |  152 +-
 ui/src/components/QuestionList/index.tsx           |   23 +-
 ui/src/components/Share/index.tsx                  |    2 +-
 ui/src/components/SideNav/index.tsx                |   23 +-
 ui/src/components/TagSelector/index.tsx            |   34 +-
 ui/src/components/index.ts                         |    2 +
 ui/src/i18n/init.ts                                |    4 -
 ui/src/index.scss                                  |   34 +-
 .../Admin/Answers/components/Action/index.tsx      |    9 +
 .../components/Action}/index.tsx                   |   61 +-
 ui/src/pages/Admin/Badges/index.tsx                |  177 ++
 .../Dashboard/components/AnswerLinks/index.tsx     |    2 +-
 .../Dashboard/components/HealthStatus/index.tsx    |   11 +-
 .../Dashboard/components/Statistics/index.tsx      |   22 +
 ui/src/pages/Admin/Plugins/Installed/index.tsx     |    4 +-
 .../Admin/Questions/components/Action/index.tsx    |   20 +-
 ui/src/pages/Admin/Themes/index.tsx                |    5 +-
 .../pages/Admin/Users/components/Action/index.tsx  |   13 +-
 ui/src/pages/Admin/Users/index.tsx                 |    6 +-
 ui/src/pages/Admin/Write/index.tsx                 |  161 +-
 ui/src/pages/Admin/index.tsx                       |    1 +
 .../pages/Badges/Detail/components/Badge/index.tsx |   96 +
 .../Detail/components/HeaderLoader}/index.tsx      |   35 +-
 .../Detail/components/Loader}/index.tsx            |   44 +-
 .../Badges/Detail}/components/UserCard/index.tsx   |   63 +-
 ui/src/pages/Badges/Detail/index.tsx               |  116 +
 ui/src/pages/{Users/Settings => Badges}/index.tsx  |   48 +-
 .../pages/Install/components/FirstStep/index.tsx   |   11 +-
 ui/src/pages/Install/index.tsx                     |    2 +
 ui/src/pages/Layout/index.tsx                      |    8 +-
 .../Questions/Detail/components/Answer/index.tsx   |    2 +-
 .../index.tsx                                      |   80 +-
 .../Detail/components/Reactions/index.tsx          |    2 +-
 ui/src/pages/Questions/Detail/components/index.tsx |    2 +
 ui/src/pages/Questions/Detail/index.tsx            |    3 +
 ui/src/pages/Questions/{ => Linked}/index.tsx      |   69 +-
 ui/src/pages/Questions/index.tsx                   |   12 +-
 ui/src/pages/Tags/Detail/index.tsx                 |   35 +-
 .../components/Achievements/index.scss             |    5 +-
 .../components/Achievements/index.tsx              |   31 +-
 .../Users/Personal/components/Alert/index.tsx      |   23 +-
 .../components/Badges}/index.tsx                   |   48 +-
 .../Users/Personal/components/NavBar/index.tsx     |    4 +
 .../Users/Personal/components/Overview/index.tsx   |   62 +-
 .../Users/Personal/components/TopList/index.tsx    |   57 +-
 ui/src/pages/Users/Personal/components/index.ts    |    2 +
 ui/src/pages/Users/Personal/index.tsx              |   75 +-
 .../Users/Register/components/SignUpForm/index.tsx |    4 +-
 ui/src/pages/Users/Settings/Profile/index.tsx      |    4 +-
 .../plugins/builtin/ThirdPartyConnector/info.yaml  |    2 +-
 ui/src/router/index.tsx                            |   24 +-
 ui/src/router/routes.ts                            |   16 +
 ui/src/services/admin/{flag.ts => badges.ts}       |   22 +-
 ui/src/services/admin/index.ts                     |    1 +
 ui/src/services/client/badges.ts                   |   92 +
 ui/src/services/client/index.ts                    |    1 +
 ui/src/services/client/personal.ts                 |    6 +-
 ui/src/services/client/question.ts                 |   14 +
 ui/src/services/common.ts                          |   28 +-
 ui/src/services/install/index.ts                   |    4 +
 ui/src/stores/themeSetting.ts                      |    3 +-
 ui/src/stores/writeSetting.ts                      |    5 +
 ui/src/utils/animateGift.ts                        |  185 ++
 ui/src/utils/guard.ts                              |    7 +-
 ui/src/utils/localize.ts                           |   21 +-
 ui/src/utils/pluginKit/index.ts                    |   94 +-
 ui/src/utils/pluginKit/interface.ts                |    7 +-
 ui/src/utils/progress.ts                           |   77 +
 ui/src/utils/request.ts                            |   15 +-
 ui/template/header.html                            |   17 +-
 ui/template/homepage.html                          |  125 +-
 ui/template/{sidenav.html => hot-question.html}    |   37 +-
 ui/template/{sitemap.xml => opensearch.xml}        |   20 +-
 ui/template/question-detail.html                   |   50 +-
 ui/template/question.html                          |   50 +-
 .../{sidenav.html => related-question.html}        |   37 +-
 ui/template/sort-btns.html                         |   39 +
 ui/template/tag-detail.html                        |   87 +-
 ui/template/tags.html                              |   86 +-
 ui/tsconfig.json                                   |   25 +-
 494 files changed, 25215 insertions(+), 9929 deletions(-)
 copy .github/workflows/{build-image-for-release.yml => 
build-image-for-latest-release.yml} (91%)
 delete mode 100644 DISCLAIMER
 delete mode 100644 dev/i18n/zh_CN.yaml
 delete mode 100644 docs/img/install-database.png
 delete mode 100644 docs/img/install-site-info.png
 delete mode 100644 docs/release/licenses/LICENSE-Chain-Zhang-pinyin.txt
 copy docs/release/licenses/{LICENSE-codemirror-codemirror5.txt => 
LICENSE-codemirror-basic-setup.txt} (92%)
 copy docs/release/licenses/{LICENSE-codemirror-codemirror5.txt => 
LICENSE-codemirror-lang-markdown.txt} (92%)
 copy docs/release/licenses/{LICENSE-codemirror-codemirror5.txt => 
LICENSE-codemirror-language-data.txt} (92%)
 copy docs/release/licenses/{LICENSE-codemirror-codemirror5.txt => 
LICENSE-codemirror-state.txt} (92%)
 rename docs/release/licenses/{LICENSE-codemirror-codemirror5.txt => 
LICENSE-codemirror-view.txt} (92%)
 copy docs/release/licenses/{LICENSE-Qix--color.txt => 
LICENSE-emn178-js-sha256.txt} (95%)
 rename docs/release/licenses/{LICENSE-front-matter.txt => 
LICENSE-jxson-front-matter.txt} (100%)
 copy docs/release/licenses/{LICENSE-i18next-react-i18next.txt => 
LICENSE-mozillazg-go-pinyin.txt} (97%)
 delete mode 100644 docs/release/licenses/LICENSE-pvorb-node-md5.txt
 rename docs/release/licenses/{LICENSE-golang-mock.txt => 
LICENSE-uber-go-mock.txt} (100%)
 copy i18n/{hi_IN.yaml => ml_IN.yaml} (85%)
 create mode 100644 internal/base/constant/event.go
 copy internal/base/constant/{meta.go => upload.go} (83%)
 create mode 100644 internal/controller/badge_controller.go
 copy internal/controller/{plugin_captcha_controller.go => 
render_controller.go} (56%)
 create mode 100644 internal/controller_admin/badge_controller.go
 create mode 100644 internal/entity/badge_award_entity.go
 create mode 100644 internal/entity/badge_entity.go
 copy internal/entity/{power_entity.go => badge_group_entity.go} (61%)
 copy internal/entity/{tag_rel_entity.go => question_link_entity.go} (52%)
 create mode 100644 internal/migrations/v22.go
 copy internal/migrations/{v15.go => v23.go} (82%)
 create mode 100644 internal/migrations/v24.go
 create mode 100644 internal/repo/badge/badge_event_rule.go
 create mode 100644 internal/repo/badge/badge_repo.go
 create mode 100644 internal/repo/badge_award/badge_award_repo.go
 copy internal/{controller/template_render/comment.go => 
repo/badge_group/badge_group_repo.go} (52%)
 create mode 100644 internal/repo/repo_test/recommend_test.go
 create mode 100644 internal/schema/badge_schema.go
 create mode 100644 internal/schema/event_schema.go
 delete mode 100644 internal/schema/plugin_option_schema.go
 create mode 100644 internal/service/badge/badge_award_service.go
 create mode 100644 internal/service/badge/badge_event_handler.go
 copy internal/{migrations/v19.go => service/badge/badge_group_service.go} (65%)
 create mode 100644 internal/service/badge/badge_service.go
 copy internal/service/{activity_queue/activity_queue.go => 
event_queue/event_queue.go} (55%)
 create mode 100644 internal/service/importer/importer_service.go
 create mode 100644 pkg/checker/question_link.go
 create mode 100644 pkg/checker/question_link_test.go
 copy plugin/{cache.go => importer.go} (52%)
 copy plugin/{embed.go => render.go} (71%)
 create mode 100644 ui/scripts/importPlugins.js
 rename ui/scripts/{plugin.js => loadPlugins.js} (67%)
 copy ui/src/{pages/Users/Notifications/components/Achievements => 
components/CardBadge}/index.scss (90%)
 create mode 100644 ui/src/components/CardBadge/index.tsx
 create mode 100644 ui/src/components/Editor/ToolBars/file.tsx
 copy ui/src/{pages/Questions/Detail => 
components/InitialLoadingPlaceholder}/index.scss (58%)
 copy ui/src/{pages/Search/components/Empty => 
components/InitialLoadingPlaceholder}/index.tsx (71%)
 create mode 100644 ui/src/components/Modal/BadgeModal.tsx
 copy ui/src/{pages/Timeline => components/QueryGroup}/index.scss (85%)
 copy ui/src/pages/Admin/{Dashboard => Badges/components/Action}/index.tsx (52%)
 create mode 100644 ui/src/pages/Admin/Badges/index.tsx
 create mode 100644 ui/src/pages/Badges/Detail/components/Badge/index.tsx
 copy ui/src/pages/{50X => Badges/Detail/components/HeaderLoader}/index.tsx 
(53%)
 copy ui/src/pages/{Search/components/ListLoader => 
Badges/Detail/components/Loader}/index.tsx (55%)
 copy ui/src/{ => pages/Badges/Detail}/components/UserCard/index.tsx (59%)
 create mode 100644 ui/src/pages/Badges/Detail/index.tsx
 copy ui/src/pages/{Users/Settings => Badges}/index.tsx (52%)
 copy ui/src/pages/Questions/Detail/components/{RelatedQuestions => 
LinkedQuestions}/index.tsx (50%)
 copy ui/src/pages/Questions/{ => Linked}/index.tsx (74%)
 copy ui/src/pages/Users/{Settings => Personal/components/Badges}/index.tsx 
(57%)
 copy ui/src/services/admin/{flag.ts => badges.ts} (74%)
 create mode 100644 ui/src/services/client/badges.ts
 create mode 100644 ui/src/utils/animateGift.ts
 create mode 100644 ui/src/utils/progress.ts
 copy ui/template/{sidenav.html => hot-question.html} (50%)
 copy ui/template/{sitemap.xml => opensearch.xml} (65%)
 copy ui/template/{sidenav.html => related-question.html} (50%)
 create mode 100644 ui/template/sort-btns.html

Reply via email to