@waline/client 2.1.0 → 2.1.1
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/component.js +1 -1
- package/dist/component.js.map +1 -1
- package/dist/legacy.js +1 -1
- package/dist/legacy.js.map +1 -1
- package/dist/pageview.cjs.js +1 -1
- package/dist/pageview.cjs.js.map +1 -1
- package/dist/pageview.d.ts +9 -1
- package/dist/pageview.esm.js +1 -1
- package/dist/pageview.esm.js.map +1 -1
- package/dist/pageview.js +1 -1
- package/dist/pageview.js.map +1 -1
- package/dist/shim.d.ts +27 -3
- package/dist/shim.esm.d.ts +27 -3
- package/dist/shim.esm.js +1 -1
- package/dist/shim.esm.js.map +1 -1
- package/dist/shim.js +1 -1
- package/dist/shim.js.map +1 -1
- package/dist/waline.cjs.d.ts +27 -3
- package/dist/waline.cjs.js +1 -1
- package/dist/waline.cjs.js.map +1 -1
- package/dist/waline.css +1 -1
- package/dist/waline.css.map +1 -1
- package/dist/waline.d.ts +27 -3
- package/dist/waline.esm.d.ts +27 -3
- package/dist/waline.esm.js +1 -1
- package/dist/waline.esm.js.map +1 -1
- package/dist/waline.js +1 -1
- package/dist/waline.js.map +1 -1
- package/package.json +17 -3
- package/src/comment.ts +11 -0
- package/src/components/Waline.vue +1 -0
- package/src/pageview.ts +12 -1
- package/src/styles/card.scss +4 -4
- package/src/styles/config.scss +2 -2
- package/src/styles/layout.scss +3 -3
- package/src/utils/fetch.ts +20 -7
- package/src/widgets/recentComments.ts +11 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@waline/client",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.1",
|
|
4
4
|
"description": "client for waline comment system",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"valine",
|
|
@@ -24,9 +24,23 @@
|
|
|
24
24
|
"require": "./dist/shim.js",
|
|
25
25
|
"default": "./dist/shim.js"
|
|
26
26
|
},
|
|
27
|
-
"./dist":
|
|
27
|
+
"./dist": {
|
|
28
|
+
"import": "./dist/shim.esm.js",
|
|
29
|
+
"require": "./dist/shim.js",
|
|
30
|
+
"default": "./dist/shim.js"
|
|
31
|
+
},
|
|
32
|
+
"./dist/pageview": {
|
|
33
|
+
"import": "./dist/pageview.esm.js",
|
|
34
|
+
"require": "./dist/pageview.cjs.js",
|
|
35
|
+
"default": "./dist/pageview.js"
|
|
36
|
+
},
|
|
37
|
+
"./dist/waline": {
|
|
38
|
+
"import": "./dist/waline.esm.js",
|
|
39
|
+
"require": "./dist/waline.cjs.js",
|
|
40
|
+
"default": "./dist/waline.js"
|
|
41
|
+
},
|
|
28
42
|
"./dist/waline.css": "./dist/waline.css",
|
|
29
|
-
"./dist/*": "./dist
|
|
43
|
+
"./dist/*": "./dist/*",
|
|
30
44
|
"./src/*": "./src/*",
|
|
31
45
|
"./package.json": "./package.json"
|
|
32
46
|
},
|
package/src/comment.ts
CHANGED
|
@@ -27,12 +27,22 @@ export interface WalineCommentCountOptions {
|
|
|
27
27
|
* @default window.location.pathname
|
|
28
28
|
*/
|
|
29
29
|
path?: string;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* 错误提示消息所使用的语言
|
|
33
|
+
*
|
|
34
|
+
* Language of error message
|
|
35
|
+
*
|
|
36
|
+
* @default 'zh-CN'
|
|
37
|
+
*/
|
|
38
|
+
lang?: string;
|
|
30
39
|
}
|
|
31
40
|
|
|
32
41
|
export const commentCount = ({
|
|
33
42
|
serverURL,
|
|
34
43
|
path = window.location.pathname,
|
|
35
44
|
selector = '.waline-comment-count',
|
|
45
|
+
lang = 'zh-CN',
|
|
36
46
|
}: // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
37
47
|
WalineCommentCountOptions): WalineAbort => {
|
|
38
48
|
const controller = new AbortController();
|
|
@@ -48,6 +58,7 @@ WalineCommentCountOptions): WalineAbort => {
|
|
|
48
58
|
paths: Array.from(elements).map((element) =>
|
|
49
59
|
decodePath(element.dataset.path || element.getAttribute('id') || path)
|
|
50
60
|
),
|
|
61
|
+
lang,
|
|
51
62
|
signal: controller.signal,
|
|
52
63
|
token: userInfo.value?.token,
|
|
53
64
|
})
|
package/src/pageview.ts
CHANGED
|
@@ -41,6 +41,15 @@ export interface WalinePageviewCountOptions {
|
|
|
41
41
|
* @default true
|
|
42
42
|
*/
|
|
43
43
|
update?: boolean;
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* 错误提示消息所使用的语言
|
|
47
|
+
*
|
|
48
|
+
* Language of error message
|
|
49
|
+
*
|
|
50
|
+
* @default 'zh-CN'
|
|
51
|
+
*/
|
|
52
|
+
lang?: string;
|
|
44
53
|
}
|
|
45
54
|
|
|
46
55
|
const renderVisitorCount = (
|
|
@@ -57,6 +66,7 @@ export const pageviewCount = ({
|
|
|
57
66
|
path = window.location.pathname,
|
|
58
67
|
selector = '.waline-pageview-count',
|
|
59
68
|
update = true,
|
|
69
|
+
lang = 'zh-CN',
|
|
60
70
|
}: WalinePageviewCountOptions): WalineAbort => {
|
|
61
71
|
const controller = new AbortController();
|
|
62
72
|
|
|
@@ -75,6 +85,7 @@ export const pageviewCount = ({
|
|
|
75
85
|
fetchPageviews({
|
|
76
86
|
serverURL,
|
|
77
87
|
paths: elements.map((element) => getQuery(element) || path),
|
|
88
|
+
lang,
|
|
78
89
|
signal: controller.signal,
|
|
79
90
|
})
|
|
80
91
|
.then((counts) => renderVisitorCount(counts, elements))
|
|
@@ -85,7 +96,7 @@ export const pageviewCount = ({
|
|
|
85
96
|
const normalElements = elements.filter((element) => !filter(element));
|
|
86
97
|
const elementsNeedstoBeFetched = elements.filter(filter);
|
|
87
98
|
|
|
88
|
-
void updatePageviews({ serverURL, path }).then((count) =>
|
|
99
|
+
void updatePageviews({ serverURL, path, lang }).then((count) =>
|
|
89
100
|
renderVisitorCount(
|
|
90
101
|
new Array<number>(normalElements.length).fill(count),
|
|
91
102
|
normalElements
|
package/src/styles/card.scss
CHANGED
|
@@ -85,12 +85,12 @@
|
|
|
85
85
|
.wl-badge {
|
|
86
86
|
display: inline-block;
|
|
87
87
|
|
|
88
|
-
margin-right:
|
|
88
|
+
margin-right: 1em;
|
|
89
89
|
padding: 0 0.3em;
|
|
90
|
-
border
|
|
90
|
+
border: 1px solid var(--waline-badge-color);
|
|
91
|
+
border-radius: 4px;
|
|
91
92
|
|
|
92
|
-
|
|
93
|
-
color: var(--waline-white);
|
|
93
|
+
color: var(--waline-badge-color);
|
|
94
94
|
|
|
95
95
|
font-size: var(--waline-badge-font-size);
|
|
96
96
|
}
|
package/src/styles/config.scss
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
:root {
|
|
2
2
|
// font-size
|
|
3
|
-
--waline-font-size:
|
|
3
|
+
--waline-font-size: 1rem;
|
|
4
4
|
|
|
5
5
|
// regular colors
|
|
6
6
|
--waline-white: #fff;
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
|
|
31
31
|
// badge
|
|
32
32
|
--waline-badge-color: #3498db;
|
|
33
|
-
--waline-badge-font-size: 0.
|
|
33
|
+
--waline-badge-font-size: 0.75em;
|
|
34
34
|
|
|
35
35
|
// info
|
|
36
36
|
--waline-info-bgcolor: #f8f8f8;
|
package/src/styles/layout.scss
CHANGED
package/src/utils/fetch.ts
CHANGED
|
@@ -18,6 +18,7 @@ const errorCheck = <T = unknown>(data: T | FetchErrorData, name = ''): T => {
|
|
|
18
18
|
|
|
19
19
|
export interface FetchCountOptions {
|
|
20
20
|
serverURL: string;
|
|
21
|
+
lang: string;
|
|
21
22
|
paths: string[];
|
|
22
23
|
signal: AbortSignal;
|
|
23
24
|
token?: string;
|
|
@@ -25,6 +26,7 @@ export interface FetchCountOptions {
|
|
|
25
26
|
|
|
26
27
|
export const fetchCommentCount = ({
|
|
27
28
|
serverURL,
|
|
29
|
+
lang,
|
|
28
30
|
paths,
|
|
29
31
|
signal,
|
|
30
32
|
token,
|
|
@@ -36,7 +38,7 @@ export const fetchCommentCount = ({
|
|
|
36
38
|
fetch(
|
|
37
39
|
`${serverURL}/comment?type=count&url=${encodeURIComponent(
|
|
38
40
|
paths.join(',')
|
|
39
|
-
)}`,
|
|
41
|
+
)}&lang=${lang}`,
|
|
40
42
|
{ signal, headers }
|
|
41
43
|
)
|
|
42
44
|
.then((resp) => resp.json() as Promise<number | number[]>)
|
|
@@ -47,6 +49,7 @@ export const fetchCommentCount = ({
|
|
|
47
49
|
};
|
|
48
50
|
export interface FetchRecentOptions {
|
|
49
51
|
serverURL: string;
|
|
52
|
+
lang: string;
|
|
50
53
|
count: number;
|
|
51
54
|
signal: AbortSignal;
|
|
52
55
|
token?: string;
|
|
@@ -54,6 +57,7 @@ export interface FetchRecentOptions {
|
|
|
54
57
|
|
|
55
58
|
export const fetchRecentComment = ({
|
|
56
59
|
serverURL,
|
|
60
|
+
lang,
|
|
57
61
|
count,
|
|
58
62
|
signal,
|
|
59
63
|
token,
|
|
@@ -61,7 +65,7 @@ export const fetchRecentComment = ({
|
|
|
61
65
|
const headers: Record<string, string> = {};
|
|
62
66
|
if (token) headers.Authorization = `Bearer ${token}`;
|
|
63
67
|
|
|
64
|
-
return fetch(`${serverURL}/comment?type=recent&count=${count}`, {
|
|
68
|
+
return fetch(`${serverURL}/comment?type=recent&count=${count}&lang=${lang}`, {
|
|
65
69
|
signal,
|
|
66
70
|
headers,
|
|
67
71
|
})
|
|
@@ -76,6 +80,7 @@ export interface FetchListOptions {
|
|
|
76
80
|
pageSize: number;
|
|
77
81
|
signal: AbortSignal;
|
|
78
82
|
token?: string;
|
|
83
|
+
lang: string;
|
|
79
84
|
}
|
|
80
85
|
|
|
81
86
|
export interface FetchListResult {
|
|
@@ -86,6 +91,7 @@ export interface FetchListResult {
|
|
|
86
91
|
|
|
87
92
|
export const fetchCommentList = ({
|
|
88
93
|
serverURL,
|
|
94
|
+
lang,
|
|
89
95
|
path,
|
|
90
96
|
page,
|
|
91
97
|
pageSize,
|
|
@@ -98,7 +104,7 @@ export const fetchCommentList = ({
|
|
|
98
104
|
return fetch(
|
|
99
105
|
`${serverURL}/comment?path=${encodeURIComponent(
|
|
100
106
|
path
|
|
101
|
-
)}&pageSize=${pageSize}&page=${page}`,
|
|
107
|
+
)}&pageSize=${pageSize}&page=${page}&lang=${lang}`,
|
|
102
108
|
{ signal, headers }
|
|
103
109
|
)
|
|
104
110
|
.then((resp) => resp.json() as Promise<FetchListResult>)
|
|
@@ -139,18 +145,23 @@ export const postComment = ({
|
|
|
139
145
|
|
|
140
146
|
export interface FetchPageviewsOptions {
|
|
141
147
|
serverURL: string;
|
|
148
|
+
lang: string;
|
|
142
149
|
paths: string[];
|
|
143
150
|
signal: AbortSignal;
|
|
144
151
|
}
|
|
145
152
|
|
|
146
153
|
export const fetchPageviews = ({
|
|
147
154
|
serverURL,
|
|
155
|
+
lang,
|
|
148
156
|
paths,
|
|
149
157
|
signal,
|
|
150
158
|
}: FetchPageviewsOptions): Promise<number[]> =>
|
|
151
|
-
fetch(
|
|
152
|
-
|
|
153
|
-
|
|
159
|
+
fetch(
|
|
160
|
+
`${serverURL}/article?path=${encodeURIComponent(
|
|
161
|
+
paths.join(',')
|
|
162
|
+
)}&lang=${lang}`,
|
|
163
|
+
{ signal }
|
|
164
|
+
)
|
|
154
165
|
.then((resp) => resp.json() as Promise<number[] | number>)
|
|
155
166
|
.then((data) => errorCheck(data, 'visit count'))
|
|
156
167
|
// TODO: Improve this API
|
|
@@ -158,14 +169,16 @@ export const fetchPageviews = ({
|
|
|
158
169
|
|
|
159
170
|
export interface UpdatePageviewsOptions {
|
|
160
171
|
serverURL: string;
|
|
172
|
+
lang: string;
|
|
161
173
|
path: string;
|
|
162
174
|
}
|
|
163
175
|
|
|
164
176
|
export const updatePageviews = ({
|
|
165
177
|
serverURL,
|
|
178
|
+
lang,
|
|
166
179
|
path,
|
|
167
180
|
}: UpdatePageviewsOptions): Promise<number> =>
|
|
168
|
-
fetch(`${serverURL}/article`, {
|
|
181
|
+
fetch(`${serverURL}/article?lang=${lang}`, {
|
|
169
182
|
method: 'POST',
|
|
170
183
|
headers: {
|
|
171
184
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
@@ -24,6 +24,15 @@ export interface WalineRecentCommentsOptions {
|
|
|
24
24
|
* Element to be mounted
|
|
25
25
|
*/
|
|
26
26
|
el?: string | HTMLElement;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* 错误提示消息所使用的语言
|
|
30
|
+
*
|
|
31
|
+
* Language of error message
|
|
32
|
+
*
|
|
33
|
+
* @default 'zh-CN'
|
|
34
|
+
*/
|
|
35
|
+
lang?: string;
|
|
27
36
|
}
|
|
28
37
|
|
|
29
38
|
export interface WalineRecentCommentsResult {
|
|
@@ -46,6 +55,7 @@ export const RecentComments = ({
|
|
|
46
55
|
el,
|
|
47
56
|
serverURL,
|
|
48
57
|
count,
|
|
58
|
+
lang = 'zh-CN',
|
|
49
59
|
}: WalineRecentCommentsOptions): Promise<WalineRecentCommentsResult> => {
|
|
50
60
|
const userInfo = useUserInfo();
|
|
51
61
|
const root = getRoot(el);
|
|
@@ -54,6 +64,7 @@ export const RecentComments = ({
|
|
|
54
64
|
return fetchRecentComment({
|
|
55
65
|
serverURL,
|
|
56
66
|
count,
|
|
67
|
+
lang,
|
|
57
68
|
signal: controller.signal,
|
|
58
69
|
token: userInfo.value?.token,
|
|
59
70
|
}).then((comments) => {
|