@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.
Files changed (52) hide show
  1. package/dist/component.js +1 -1
  2. package/dist/component.js.map +1 -1
  3. package/dist/legacy.d.ts +9 -7
  4. package/dist/legacy.js +1 -1
  5. package/dist/legacy.js.map +1 -1
  6. package/dist/pageview.cjs.js +1 -1
  7. package/dist/pageview.cjs.js.map +1 -1
  8. package/dist/pageview.d.ts +9 -1
  9. package/dist/pageview.esm.js +1 -1
  10. package/dist/pageview.esm.js.map +1 -1
  11. package/dist/pageview.js +1 -1
  12. package/dist/pageview.js.map +1 -1
  13. package/dist/shim.d.ts +38 -11
  14. package/dist/shim.esm.d.ts +38 -11
  15. package/dist/shim.esm.js +1 -1
  16. package/dist/shim.esm.js.map +1 -1
  17. package/dist/shim.js +1 -1
  18. package/dist/shim.js.map +1 -1
  19. package/dist/waline.cjs.d.ts +38 -11
  20. package/dist/waline.cjs.js +1 -1
  21. package/dist/waline.cjs.js.map +1 -1
  22. package/dist/waline.css +1 -1
  23. package/dist/waline.css.map +1 -1
  24. package/dist/waline.d.ts +38 -11
  25. package/dist/waline.esm.d.ts +38 -11
  26. package/dist/waline.esm.js +1 -1
  27. package/dist/waline.esm.js.map +1 -1
  28. package/dist/waline.js +1 -1
  29. package/dist/waline.js.map +1 -1
  30. package/package.json +23 -6
  31. package/src/comment.ts +11 -0
  32. package/src/components/CommentBox.vue +14 -8
  33. package/src/components/CommentCard.vue +5 -0
  34. package/src/components/Waline.vue +21 -40
  35. package/src/composables/timeAgo.ts +2 -48
  36. package/src/config/i18n/en.ts +6 -0
  37. package/src/config/i18n/generate.ts +6 -0
  38. package/src/config/i18n/zh-CN.ts +6 -0
  39. package/src/config/i18n/zh-TW.ts +6 -0
  40. package/src/entrys/legacy.ts +1 -1
  41. package/src/pageview.ts +12 -1
  42. package/src/styles/card.scss +4 -4
  43. package/src/styles/config.scss +2 -2
  44. package/src/styles/layout.scss +3 -3
  45. package/src/typings/comment.ts +1 -0
  46. package/src/typings/locale.ts +9 -6
  47. package/src/typings/waline.ts +1 -1
  48. package/src/utils/config.ts +1 -2
  49. package/src/utils/date.ts +54 -0
  50. package/src/utils/emoji.ts +2 -2
  51. package/src/utils/fetch.ts +20 -7
  52. package/src/widgets/recentComments.ts +11 -0
@@ -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(`${serverURL}/article?path=${encodeURIComponent(paths.join(','))}`, {
152
- signal,
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) => {