@waline/client 2.0.6 → 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.d.ts +9 -7
- 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 +38 -11
- package/dist/shim.esm.d.ts +38 -11
- 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 +38 -11
- 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 +38 -11
- package/dist/waline.esm.d.ts +38 -11
- 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 +23 -6
- package/src/comment.ts +11 -0
- package/src/components/CommentBox.vue +14 -8
- package/src/components/CommentCard.vue +5 -0
- package/src/components/Waline.vue +21 -40
- package/src/composables/timeAgo.ts +2 -48
- package/src/config/i18n/en.ts +6 -0
- package/src/config/i18n/generate.ts +6 -0
- package/src/config/i18n/zh-CN.ts +6 -0
- package/src/config/i18n/zh-TW.ts +6 -0
- package/src/entrys/legacy.ts +1 -1
- 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/typings/comment.ts +1 -0
- package/src/typings/locale.ts +9 -6
- package/src/typings/waline.ts +1 -1
- package/src/utils/config.ts +1 -2
- package/src/utils/date.ts +54 -0
- package/src/utils/emoji.ts +2 -2
- package/src/utils/fetch.ts +20 -7
- package/src/widgets/recentComments.ts +11 -0
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) => {
|