artalk 2.1.5 → 2.1.6
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.
- package/dist/Artalk.css +1 -1
- package/dist/Artalk.es.js +30 -4
- package/dist/Artalk.iife.js +1 -1
- package/dist/Artalk.js +1 -1
- package/index.html +1 -1
- package/package.json +1 -1
- package/src/api/index.ts +12 -0
- package/src/artalk.ts +24 -2
- package/src/components/sidebar-layer.ts +1 -1
- package/src/defaults.ts +1 -0
- package/src/style/main.less +1 -1
- package/src/style/sidebar-layer.less +1 -0
- package/types/artalk-config.d.ts +3 -0
package/index.html
CHANGED
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
<body>
|
|
34
34
|
<div class="card billboard artalk-fade-in">
|
|
35
35
|
<div class="title"><a href="https://github.com/ArtalkJS/Artalk" target="_blank"><span>『 </span>Artalk<span> 』</span></a></div>
|
|
36
|
-
<div class="desc"
|
|
36
|
+
<div class="desc">一款简洁的自托管评论系统 <span id="ArtalkPV"></span></div>
|
|
37
37
|
<div class="social">
|
|
38
38
|
<a href="https://www.npmjs.com/package/artalk" target="_blank"><img src="https://img.shields.io/npm/v/artalk.svg?style=flat-square"></a>
|
|
39
39
|
<a href="https://www.npmjs.com/package/artalk" target="_blank"><img src="https://img.shields.io/npm/dt/artalk.svg?style=flat-square"></a>
|
package/package.json
CHANGED
package/src/api/index.ts
CHANGED
|
@@ -252,6 +252,18 @@ export default class Api {
|
|
|
252
252
|
return POST(this.ctx, `${this.baseURL}/mark-read`, params)
|
|
253
253
|
}
|
|
254
254
|
|
|
255
|
+
/** PV */
|
|
256
|
+
public async pv() {
|
|
257
|
+
const params: any = {
|
|
258
|
+
site_name: this.ctx.conf.site || '',
|
|
259
|
+
page_key: this.ctx.conf.pageKey || '',
|
|
260
|
+
page_title: this.ctx.conf.pageTitle || ''
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
const p = await POST<any>(this.ctx, `${this.baseURL}/pv`, params)
|
|
264
|
+
return p.pv as number
|
|
265
|
+
}
|
|
266
|
+
|
|
255
267
|
// ============================
|
|
256
268
|
// 验证码
|
|
257
269
|
// ============================
|
package/src/artalk.ts
CHANGED
|
@@ -11,6 +11,7 @@ import SidebarLayer from './components/sidebar-layer'
|
|
|
11
11
|
|
|
12
12
|
import { GetLayerWrap } from './components/layer'
|
|
13
13
|
import { EventPayloadMap, Handler } from '~/types/event'
|
|
14
|
+
import Api from './api'
|
|
14
15
|
|
|
15
16
|
/**
|
|
16
17
|
* Artalk
|
|
@@ -76,6 +77,9 @@ export default class Artalk {
|
|
|
76
77
|
|
|
77
78
|
// 事件绑定初始化
|
|
78
79
|
this.initEventBind()
|
|
80
|
+
|
|
81
|
+
// 其他
|
|
82
|
+
this.initPV()
|
|
79
83
|
}
|
|
80
84
|
|
|
81
85
|
/** 事件绑定 · 初始化 */
|
|
@@ -93,8 +97,12 @@ export default class Artalk {
|
|
|
93
97
|
|
|
94
98
|
// for layer
|
|
95
99
|
const { $wrap: $layerWrap } = GetLayerWrap(this.ctx)
|
|
96
|
-
if ($layerWrap)
|
|
97
|
-
|
|
100
|
+
if ($layerWrap) $layerWrap.querySelectorAll<HTMLElement>(`[atk-only-admin-show]`).forEach(item => items.push(item))
|
|
101
|
+
|
|
102
|
+
// for sidebar
|
|
103
|
+
// TODO: 这个其实应该写在 packages/artalk-sidebar 里面的
|
|
104
|
+
const $sidebarEl = document.querySelector<HTMLElement>('.atk-sidebar')
|
|
105
|
+
if ($sidebarEl) $sidebarEl.querySelectorAll<HTMLElement>(`[atk-only-admin-show]`).forEach(item => items.push(item))
|
|
98
106
|
|
|
99
107
|
items.forEach(($item: HTMLElement) => {
|
|
100
108
|
if (this.ctx.user.data.isAdmin)
|
|
@@ -143,6 +151,20 @@ export default class Artalk {
|
|
|
143
151
|
this.initDarkMode()
|
|
144
152
|
}
|
|
145
153
|
|
|
154
|
+
/** PV */
|
|
155
|
+
public async initPV() {
|
|
156
|
+
if (!this.conf.pvEl || !document.querySelector(this.conf.pvEl))
|
|
157
|
+
return
|
|
158
|
+
|
|
159
|
+
const $pv = document.querySelector<HTMLElement>(this.conf.pvEl)!
|
|
160
|
+
// $pv.innerText = '-' // 默认占位符
|
|
161
|
+
const pvNum = await new Api(this.ctx).pv()
|
|
162
|
+
if (Number.isNaN(Number(pvNum)))
|
|
163
|
+
return
|
|
164
|
+
|
|
165
|
+
$pv.innerText = String(pvNum)
|
|
166
|
+
}
|
|
167
|
+
|
|
146
168
|
/** 监听事件 */
|
|
147
169
|
public on<K extends keyof EventPayloadMap>(name: K, handler: Handler<EventPayloadMap[K]>) {
|
|
148
170
|
this.ctx.on(name, handler, 'external')
|
package/src/defaults.ts
CHANGED
package/src/style/main.less
CHANGED