v2.7.0
v2.7.0 (2023-12-17)
Features
- ui: support
scrollRelativeTo
config option - ui/test: add end-to-end (e2e) testing using Playwright
Bug Fixes
- api/img-upload:
public_path
config enables the use of full url (#659) (#664) - lifecycle: create multi-instances at the same time (#660) (#663)
- notify_pusher: panic when admin ids array is empty (#634)
- style/list: replace
float
totext-align
in footer part (#619) - ui: scroll to the center of the viewport issue
- ui/conf: sanitize
noComment
conf option for security (#624) - ui/dark-mode:
setDarkMode
cannot save to instance config (#661) - ui/editor: fix position of the comment box when replying (#643) (#648)
Performance Improvements
- cache: implement GC feature for simple_cache pkg (#656)
Code Refactoring
- editor: refactor editor plugin manager (#609)
- editor: refactor plug kit and events (#613)
- ui: reduce coupling with
ContextApi
- ui: separate standalone admin-only-elem checker
- ui/api: loose coupling between
Api
andContext
- ui/conf: loose coupling between config and list fetch
- ui/event: refactor core event manager (#611)
- ui/layer: better layer implements and independence (#662)
- ui/list: separate list into standalone components (#618)
- ui/marked: separate markdown related codes
- ui/marked: loose coupling with
marked
func - ui/plugin: further divide functionality into plugins (#615)
- ui/stat: losing coupling of
CountWidget
- ui/types: better
ArtalkType
import and export (#620)
Documentation
- revise and add more examples
- provide clearer and more detailed instructions in CONTRIBUTING.md
- conf: disable
frontend.uaBadge
config option by default - deploy: add deployment guide for render.com (#649)
- import: update the examples in import-framework.md (#665)
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. 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).