artalk 2.4.1 → 2.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/Artalk.css +1 -1
  2. package/dist/Artalk.es.js +206 -104
  3. package/dist/Artalk.iife.js +1 -1
  4. package/dist/Artalk.js +1 -1
  5. package/dist/ArtalkLite.css +1 -1
  6. package/dist/ArtalkLite.es.js +206 -104
  7. package/dist/ArtalkLite.iife.js +1 -1
  8. package/dist/ArtalkLite.js +1 -1
  9. package/dist/i18n/jp.js +1 -0
  10. package/dist/i18n/zh-TW.js +1 -0
  11. package/dist/src/api/index.d.ts +1 -1
  12. package/dist/src/api/system.d.ts +7 -0
  13. package/dist/src/api/user.d.ts +16 -2
  14. package/dist/src/artalk.d.ts +0 -6
  15. package/dist/src/context.d.ts +4 -0
  16. package/dist/src/i18n/index.d.ts +68 -74
  17. package/dist/src/list/list-lite.d.ts +17 -7
  18. package/dist/src/list/list.d.ts +1 -0
  19. package/dist/types/artalk-config.d.ts +5 -1
  20. package/dist/types/artalk-data.d.ts +23 -0
  21. package/dist/types/context.d.ts +3 -0
  22. package/dist/types/event.d.ts +1 -1
  23. package/package.json +4 -3
  24. package/scripts/build-i18n.mjs +46 -0
  25. package/src/api/index.ts +3 -2
  26. package/src/api/system.ts +7 -0
  27. package/src/api/user.ts +59 -2
  28. package/src/artalk.ts +0 -35
  29. package/src/comment/render.ts +2 -1
  30. package/src/context.ts +33 -3
  31. package/src/defaults.ts +2 -2
  32. package/src/editor/editor.ts +8 -8
  33. package/src/editor/plugs/upload-plug.ts +1 -1
  34. package/src/i18n/index.ts +18 -90
  35. package/src/i18n/jp.ts +83 -0
  36. package/src/i18n/zh-TW.ts +83 -0
  37. package/src/layer/sidebar-layer.ts +10 -8
  38. package/src/lib/checker/admin-checker.ts +4 -1
  39. package/src/lib/checker/captcha-checker.ts +1 -0
  40. package/src/lib/stat.ts +9 -1
  41. package/src/lib/utils.ts +8 -1
  42. package/src/list/list-lite.ts +68 -26
  43. package/src/list/list.ts +10 -18
  44. package/src/style/main.less +17 -0
  45. package/test/ArtalkI18n.html +1 -0
  46. package/types/artalk-config.d.ts +5 -1
  47. package/types/artalk-data.d.ts +23 -0
  48. package/types/context.d.ts +3 -0
  49. package/types/event.d.ts +1 -1
package/src/list/list.ts CHANGED
@@ -23,20 +23,7 @@ export default class List extends ListLite {
23
23
  el.querySelector('.atk-list-body')!.append(this.$el)
24
24
  this.$el = el
25
25
 
26
- // 平铺模式
27
- if (this.ctx.conf.flatMode === true) {
28
- this.flatMode = true // 遵循配置总是开启平铺模式
29
- } else if (this.conf.nestMax && this.conf.nestMax <= 1) {
30
- this.flatMode = true // 嵌套层数值无效时,强制开启平铺模式
31
- } else if (this.ctx.conf.flatMode === 'auto') {
32
- // 自动判断启用平铺模式
33
- if (window.matchMedia("(max-width: 768px)").matches)
34
- this.flatMode = true
35
- }
36
-
37
26
  // 分页模式
38
- this.pageMode = this.conf.pagination.readMore ? 'read-more' : 'pagination'
39
- this.pageSize = this.conf.pagination.pageSize || 20
40
27
  this.repositionAt = this.$el
41
28
 
42
29
  // 操作按钮
@@ -48,11 +35,6 @@ export default class List extends ListLite {
48
35
  })
49
36
  this.$commentCountNum = this.$commentCount.querySelector('.atk-comment-count-num')!
50
37
 
51
- // 评论列表排序 Dropdown 下拉选择层
52
- if (this.ctx.conf.listSort) {
53
- this.initDropdown()
54
- }
55
-
56
38
  // copyright
57
39
  this.$el.querySelector<HTMLElement>('.atk-copyright')!.innerHTML = `Powered By <a href="https://artalk.js.org" target="_blank" title="Artalk v${ARTALK_VERSION}">Artalk</a>`
58
40
 
@@ -104,6 +86,11 @@ export default class List extends ListLite {
104
86
  this.ctx.editorOpen()
105
87
  this.$closeCommentBtn.innerHTML = this.$t('closeComment')
106
88
  }
89
+
90
+ // 评论列表排序 Dropdown 下拉选择层
91
+ if (this.ctx.conf.listSort) {
92
+ this.initDropdown()
93
+ }
107
94
  }
108
95
 
109
96
  protected onLoad(data: ListData, offset: number) {
@@ -197,8 +184,13 @@ export default class List extends ListLite {
197
184
  }
198
185
  }
199
186
 
187
+ private dropdownLoaded = false
188
+
200
189
  /** 初始化选择下拉层 */
201
190
  protected initDropdown() {
191
+ if (this.dropdownLoaded) return
192
+ this.dropdownLoaded = true
193
+
202
194
  this.$dropdownWrap = this.$commentCount
203
195
  this.$commentCount.classList.add('atk-dropdown-wrap')
204
196
 
@@ -103,6 +103,23 @@
103
103
  tr:nth-child(even) {
104
104
  background-color: var(--at-color-bg-grey);
105
105
  }
106
+
107
+ ul {
108
+ list-style: disc;
109
+ }
110
+
111
+ ol {
112
+ list-style: decimal;
113
+ }
114
+
115
+ li + li {
116
+ margin-top: 8px;
117
+ }
118
+
119
+ li > ol,
120
+ li > ul {
121
+ margin: 8px 0 0;
122
+ }
106
123
  }
107
124
 
108
125
  .atk-hide {
@@ -1,5 +1,6 @@
1
1
  <link rel="stylesheet" href="../dist/Artalk.css">
2
2
  <script src="../dist/Artalk.js"></script>
3
+ <script src="../dist/i18n/zh-TW.js"></script>
3
4
 
4
5
  <div id="comments"></div>
5
6
 
@@ -1,4 +1,5 @@
1
1
  import { I18n } from '~/src/i18n'
2
+ import { CommentData } from './artalk-data'
2
3
 
3
4
  export default interface ArtalkConfig {
4
5
  /** 装载元素 */
@@ -39,6 +40,9 @@ export default interface ArtalkConfig {
39
40
  default: string
40
41
  }
41
42
 
43
+ /** 头像链接生成器 */
44
+ avatarURLBuilder?: (comment: CommentData) => string,
45
+
42
46
  /** 分页配置 */
43
47
  pagination: {
44
48
  /** 每次请求获取数量 */
@@ -103,7 +107,7 @@ export default interface ArtalkConfig {
103
107
  /** 版本检测 */
104
108
  versionCheck: boolean
105
109
 
106
- /** 应用后端配置 */
110
+ /** 引用后端配置 */
107
111
  useBackendConf: boolean
108
112
 
109
113
  /** 语言本地化 */
@@ -159,6 +159,29 @@ export interface UserData {
159
159
 
160
160
  /** 是否属于管理员 */
161
161
  is_admin: boolean
162
+
163
+ /** 所属站点名 */
164
+ site_names: string[]
165
+
166
+ /** 所属站点名 (字符串) */
167
+ site_names_raw: string,
168
+
169
+ /** 是否允许接收邮件通知 */
170
+ receive_email: boolean
171
+ }
172
+
173
+ export interface UserDataForAdmin extends UserData {
174
+ /** 最后一次操作 IP */
175
+ last_ip: string
176
+
177
+ /** 最后一次操作 UA */
178
+ last_ua: string
179
+
180
+ /** 是否存在于配置文件中 */
181
+ is_in_conf: boolean
182
+
183
+ /** 评论数 */
184
+ comment_count: number
162
185
  }
163
186
 
164
187
  export interface NotifyData {
@@ -143,4 +143,7 @@ export default interface ContextApi {
143
143
 
144
144
  /** 设置暗黑模式 */
145
145
  setDarkMode(darkMode: boolean): void
146
+
147
+ /** 更新配置 */
148
+ updateConf(conf: Partial<ArtalkConfig>): void
146
149
  }
package/types/event.d.ts CHANGED
@@ -9,7 +9,7 @@ export interface EventPayloadMap {
9
9
  'editor-submit': undefined // 编辑器提交时
10
10
  'editor-submitted': undefined // 编辑器提交后
11
11
  'user-changed': LocalUser // 本地用户数据变更时
12
- 'conf-updated': undefined // Artalk 配置变更时
12
+ 'conf-loaded': undefined // Artalk 配置变更时
13
13
  'sidebar-show': undefined // 侧边栏显示
14
14
  'sidebar-hide': undefined // 侧边栏隐藏
15
15
  }