@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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@waline/client",
3
- "version": "2.1.0",
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": "./dist/shim.js",
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/*.js",
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
  })
@@ -233,6 +233,7 @@ export default defineComponent({
233
233
 
234
234
  fetchCommentList({
235
235
  serverURL,
236
+ lang: config.value.lang,
236
237
  path,
237
238
  pageSize,
238
239
  page: pageNumber,
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
@@ -85,12 +85,12 @@
85
85
  .wl-badge {
86
86
  display: inline-block;
87
87
 
88
- margin-right: 0.5em;
88
+ margin-right: 1em;
89
89
  padding: 0 0.3em;
90
- border-radius: 3px;
90
+ border: 1px solid var(--waline-badge-color);
91
+ border-radius: 4px;
91
92
 
92
- background: var(--waline-badge-color);
93
- color: var(--waline-white);
93
+ color: var(--waline-badge-color);
94
94
 
95
95
  font-size: var(--waline-badge-font-size);
96
96
  }
@@ -1,6 +1,6 @@
1
1
  :root {
2
2
  // font-size
3
- --waline-font-size: 16px;
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.775em;
33
+ --waline-badge-font-size: 0.75em;
34
34
 
35
35
  // info
36
36
  --waline-info-bgcolor: #f8f8f8;
@@ -7,9 +7,9 @@
7
7
  .vemoji,
8
8
  .wl-emoji {
9
9
  display: inline-block;
10
- vertical-align: middle;
11
- width: 1.25em;
12
- margin: 0.25em;
10
+ vertical-align: baseline;
11
+ height: 1.25em;
12
+ margin: -0.125em 0.25em;
13
13
  }
14
14
 
15
15
  .wl-tex {
@@ -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) => {