A new HTTP API endpoint `GET /votes/:target_name/:target_id` is now available. (See https://artalk.js.org/http-api.html#tag/Vote/operation/GetVote)
- Implement GET endpoint for retrieving vote status
- Add tests for vote functionality
Related to: #997
This is a prerequisite PR for #983.
- Implemented `eslint-plugin-artalk` to enforce Artalk's development conventions.
- Added setup script for UI development environment.
- Created test cases for Artalk plugin rules.
- Configured TypeScript and build settings for the plugin.
- Updated documentation with installation and configuration instructions.
BREAKING CHANGE: The original Go module name was `github.com/ArtalkJS/Artalk`, which has now been modified to `github.com/artalkjs/artalk/v2` (all lowercase). This change may affect the CI pipeline or other areas if you are compiling the Artalk server and have specified the fixed Go module name. Regarding the original `-ldflags -X github.com/ArtalkJS/Artalk/internal/config.Version` and `CommitHash` definitions, please remove them, as they are now obsolete. The `Version` has been hardcoded into the Go code, and the `CommitHash` is now read from the Go build info via runtime/debug’s vcs.revision value. This change only affects the server developers and does not impact the frontend UI client.
* fix(plugin_lightbox): fix lightbox plugin import for non-browser env
* add artalk as peerDependency
* using default object of import result
* test and fix photoSwipe, fancyBox
* add minimal reproducible example
* refine docs
The statistics UI component has been updated. The default selectors for `pvEl` and `countEl` have changed from `#ArtalkPV` and `#ArtalkCount` to `.artalk-pv-count` and `.artalk-comment-count` (see #826 for more details). However, it remains backward compatible with the `#ArtalkPV` and `#ArtalkCount` elements for older versions, no HTML client updates are necessary.
In this PR, we also introduced a configuration option called `statPageKeyAttr` (value `"data-page-key"` by default) for customizing the attribute name that the statistics component uses to fetch the page key.
Add function to delete all foreign key constraints when migration.
Leave relationship maintenance to the program and reduce the difficulty of database management. Because there are many different DBs and the implementation of foreign keys may be different, and the DB may not support foreign keys, so don't rely on the foreign key function of the DB system.
* refactor(api): refactor HTTP API to version 2
* refactor: remove forced site_origin check
* refactor: update http client
* fix
* add more api description and error code
* reduce nestings in response structures
* separate unread
* refactor(api/comments): get comments
* refactor: frontend api module
* chore: remove vite temporary file
* chore: restore swagger file
* update
* 移除为管理员分配站点名的站点隔离功能,简化实现
* refactor pagesAllFetch
* fix ci
* remove useless codes
* limiter protected paths
* add test for version endpoint
* rename handler code files
* code file separate
* fix some bug of interacting with backend
* add fetch error class for handling
* fix and rename
* refactor: checker support both `Promise` and callback fn
* fix new checker captcha iframe url
* rename and add swagger id field
* replace tab with spaces in go comment
* chore: refine
* complete the validate tag for request fields and enable `--defaultRequired`
90% of the request fields of our API are required,100% of response fields in our API are required.
Each field add validate:"required" is easy to miss.
* replace original api client with auto-generated codes
* artalk pkg apply new api client
* artalk-sidebar pkg apply new api client
* fix issues
* fix sidebar locale conf and refactor user login
* fix and refactor captcha and limiter
* fix ui testing
* add script to build http client by swagger.json
BREAKING CHANGE: The following top-level functions exported by the 'artalk' npm package have been deprecated: `Artalk.update`, `Artalk.reload`, and `Artalk.destroy`. These methods now require invocation on an instance created by either `Artalk.init` or `new Artalk`. Please utilize instance-level methods instead, such as `artalkInstance.update`. For more information, refer to [the documentation](https://artalk.js.org/guide/frontend/import-framework.html). The update was implemented to enable the concurrent creation of multiple instances, adapting to situations where Vue components are simultaneously referenced across various pages. Initially, only a singular instance was permitted to mitigate memory leak concerns. However, this proved limiting for scenarios involving the caching of multiple component instances through 'keep-alive.' To better suit intricate SPA application needs, the choice was made to permit the creation of multiple independent instances. It's crucial to remember to manually invoke the `artalk.destroy` method when releasing components to avoid memory leaks (Issue #660).