@vuepress/shared 2.0.0-beta.47 → 2.0.0-beta.50-pre

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/index.d.ts CHANGED
@@ -220,16 +220,6 @@ declare const ensureEndingSlash: (str: string) => string;
220
220
  */
221
221
  declare const formatDateString: (str: string, defaultDateString?: string) => string;
222
222
 
223
- /**
224
- * Escape html chars
225
- */
226
- declare const htmlEscape: (str: string) => string;
227
-
228
- /**
229
- * Unescape html chars
230
- */
231
- declare const htmlUnescape: (str: string) => string;
232
-
233
223
  /**
234
224
  * Determine a link is external or not
235
225
  */
@@ -286,4 +276,4 @@ declare const resolveLocalePath: (locales: LocaleConfig, routePath: string) => s
286
276
 
287
277
  declare const resolveRoutePathFromUrl: (url: string, base?: string) => string;
288
278
 
289
- export { HeadAttrsConfig, HeadConfig, HeadTag, HeadTagEmpty, HeadTagNonEmpty, LocaleConfig, LocaleData, PageBase, PageData, PageFrontmatter, PageHeader, SiteData, SiteLocaleConfig, SiteLocaleData, VuepressSSRContext, dedupeHead, ensureEndingSlash, ensureLeadingSlash, formatDateString, htmlEscape, htmlUnescape, isLinkExternal, isLinkFtp, isLinkHttp, isLinkMailto, isLinkTel, isPlainObject, removeEndingSlash, removeLeadingSlash, resolveHeadIdentifier, resolveLocalePath, resolveRoutePathFromUrl };
279
+ export { HeadAttrsConfig, HeadConfig, HeadTag, HeadTagEmpty, HeadTagNonEmpty, LocaleConfig, LocaleData, PageBase, PageData, PageFrontmatter, PageHeader, SiteData, SiteLocaleConfig, SiteLocaleData, VuepressSSRContext, dedupeHead, ensureEndingSlash, ensureLeadingSlash, formatDateString, isLinkExternal, isLinkFtp, isLinkHttp, isLinkMailto, isLinkTel, isPlainObject, removeEndingSlash, removeLeadingSlash, resolveHeadIdentifier, resolveLocalePath, resolveRoutePathFromUrl };
package/dist/index.js CHANGED
@@ -49,33 +49,6 @@ var formatDateString = (str, defaultDateString = "") => {
49
49
  return [yearStr, monthStr.padStart(2, "0"), dayStr.padStart(2, "0")].join("-");
50
50
  };
51
51
 
52
- // src/utils/htmlEscape.ts
53
- var htmlEscapeMap = {
54
- "&": "&",
55
- "<": "&lt;",
56
- ">": "&gt;",
57
- "'": "&#39;",
58
- '"': "&quot;"
59
- };
60
- var htmlEscapeRegexp = /[&<>'"]/g;
61
- var htmlEscape = (str) => str.replace(htmlEscapeRegexp, (char) => htmlEscapeMap[char]);
62
-
63
- // src/utils/htmlUnescape.ts
64
- var htmlUnescapeMap = {
65
- "&amp;": "&",
66
- "&#38;": "&",
67
- "&lt;": "<",
68
- "&#60;": "<",
69
- "&gt;": ">",
70
- "&#62;": ">",
71
- "&apos;": "'",
72
- "&#39;": "'",
73
- "&quot;": '"',
74
- "&#34;": '"'
75
- };
76
- var htmlUnescapeRegexp = /&(amp|#38|lt|#60|gt|#62|apos|#39|quot|#34);/g;
77
- var htmlUnescape = (str) => str.replace(htmlUnescapeRegexp, (char) => htmlUnescapeMap[char]);
78
-
79
52
  // src/utils/isLinkFtp.ts
80
53
  var isLinkFtp = (link) => link.startsWith("ftp://");
81
54
 
@@ -83,11 +56,12 @@ var isLinkFtp = (link) => link.startsWith("ftp://");
83
56
  var isLinkHttp = (link) => /^(https?:)?\/\//.test(link);
84
57
 
85
58
  // src/utils/isLinkExternal.ts
59
+ var markdownLinkRegexp = /.md((\?|#).*)?$/;
86
60
  var isLinkExternal = (link, base = "/") => {
87
61
  if (isLinkHttp(link) || isLinkFtp(link)) {
88
62
  return true;
89
63
  }
90
- if (link.startsWith("/") && !link.startsWith(base) && !link.endsWith(".md")) {
64
+ if (link.startsWith("/") && !link.startsWith(base) && !markdownLinkRegexp.test(link)) {
91
65
  return true;
92
66
  }
93
67
  return false;
@@ -132,8 +106,6 @@ export {
132
106
  ensureEndingSlash,
133
107
  ensureLeadingSlash,
134
108
  formatDateString,
135
- htmlEscape,
136
- htmlUnescape,
137
109
  isArray,
138
110
  isFunction,
139
111
  isLinkExternal,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vuepress/shared",
3
- "version": "2.0.0-beta.47",
3
+ "version": "2.0.0-beta.50-pre",
4
4
  "description": "Utils that shared between VuePress node and client",
5
5
  "keywords": [
6
6
  "vuepress",
@@ -19,40 +19,34 @@
19
19
  "author": "meteorlxy",
20
20
  "type": "module",
21
21
  "exports": {
22
- ".": {
23
- "import": "./dist/index.js",
24
- "require": "./dist/index.cjs"
25
- },
22
+ ".": "./dist/index.js",
26
23
  "./package.json": "./package.json"
27
24
  },
28
- "main": "./dist/index.cjs",
25
+ "main": "./dist/index.js",
29
26
  "module": "./dist/index.js",
30
27
  "types": "./dist/index.d.ts",
31
28
  "files": [
32
29
  "dist"
33
30
  ],
34
31
  "dependencies": {
35
- "@vue/shared": "^3.2.36"
32
+ "@vue/shared": "^3.2.37"
36
33
  },
37
34
  "publishConfig": {
38
35
  "access": "public"
39
36
  },
40
37
  "tsup": {
41
38
  "clean": true,
42
- "dts": [
43
- "src/index.ts"
44
- ],
39
+ "dts": "./src/index.ts",
45
40
  "entry": [
46
- "src/index.ts"
41
+ "./src/index.ts"
47
42
  ],
48
43
  "format": [
49
- "cjs",
50
44
  "esm"
51
45
  ],
52
- "outDir": "dist",
46
+ "outDir": "./dist",
53
47
  "sourcemap": false,
54
48
  "target": "es2020",
55
- "tsconfig": "tsconfig.dts.json"
49
+ "tsconfig": "../tsconfig.dts.json"
56
50
  },
57
51
  "scripts": {
58
52
  "build": "tsup",
package/dist/index.cjs DELETED
@@ -1,196 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
-
19
- // src/index.ts
20
- var src_exports = {};
21
- __export(src_exports, {
22
- dedupeHead: () => dedupeHead,
23
- ensureEndingSlash: () => ensureEndingSlash,
24
- ensureLeadingSlash: () => ensureLeadingSlash,
25
- formatDateString: () => formatDateString,
26
- htmlEscape: () => htmlEscape,
27
- htmlUnescape: () => htmlUnescape,
28
- isArray: () => import_shared.isArray,
29
- isFunction: () => import_shared.isFunction,
30
- isLinkExternal: () => isLinkExternal,
31
- isLinkFtp: () => isLinkFtp,
32
- isLinkHttp: () => isLinkHttp,
33
- isLinkMailto: () => isLinkMailto,
34
- isLinkTel: () => isLinkTel,
35
- isPlainObject: () => isPlainObject,
36
- isString: () => import_shared.isString,
37
- removeEndingSlash: () => removeEndingSlash,
38
- removeLeadingSlash: () => removeLeadingSlash,
39
- resolveHeadIdentifier: () => resolveHeadIdentifier,
40
- resolveLocalePath: () => resolveLocalePath,
41
- resolveRoutePathFromUrl: () => resolveRoutePathFromUrl
42
- });
43
- module.exports = __toCommonJS(src_exports);
44
-
45
- // src/utils/index.ts
46
- var import_shared = require("@vue/shared");
47
-
48
- // src/utils/resolveHeadIdentifier.ts
49
- var resolveHeadIdentifier = ([
50
- tag,
51
- attrs,
52
- content
53
- ]) => {
54
- if (tag === "meta" && attrs.name) {
55
- return `${tag}.${attrs.name}`;
56
- }
57
- if (["title", "base"].includes(tag)) {
58
- return tag;
59
- }
60
- if (tag === "template" && attrs.id) {
61
- return `${tag}.${attrs.id}`;
62
- }
63
- return JSON.stringify([tag, attrs, content]);
64
- };
65
-
66
- // src/utils/dedupeHead.ts
67
- var dedupeHead = (head) => {
68
- const identifierSet = /* @__PURE__ */ new Set();
69
- const result = [];
70
- head.forEach((item) => {
71
- const identifier = resolveHeadIdentifier(item);
72
- if (!identifierSet.has(identifier)) {
73
- identifierSet.add(identifier);
74
- result.push(item);
75
- }
76
- });
77
- return result;
78
- };
79
-
80
- // src/utils/ensureLeadingSlash.ts
81
- var ensureLeadingSlash = (str) => str.replace(/^\/?/, "/");
82
-
83
- // src/utils/ensureEndingSlash.ts
84
- var ensureEndingSlash = (str) => /(\.html|\/)$/.test(str) ? str : str + "/";
85
-
86
- // src/utils/formatDateString.ts
87
- var formatDateString = (str, defaultDateString = "") => {
88
- const dateMatch = str.match(/\b(\d{4})-(\d{1,2})-(\d{1,2})\b/);
89
- if (dateMatch === null) {
90
- return defaultDateString;
91
- }
92
- const [, yearStr, monthStr, dayStr] = dateMatch;
93
- return [yearStr, monthStr.padStart(2, "0"), dayStr.padStart(2, "0")].join("-");
94
- };
95
-
96
- // src/utils/htmlEscape.ts
97
- var htmlEscapeMap = {
98
- "&": "&amp;",
99
- "<": "&lt;",
100
- ">": "&gt;",
101
- "'": "&#39;",
102
- '"': "&quot;"
103
- };
104
- var htmlEscapeRegexp = /[&<>'"]/g;
105
- var htmlEscape = (str) => str.replace(htmlEscapeRegexp, (char) => htmlEscapeMap[char]);
106
-
107
- // src/utils/htmlUnescape.ts
108
- var htmlUnescapeMap = {
109
- "&amp;": "&",
110
- "&#38;": "&",
111
- "&lt;": "<",
112
- "&#60;": "<",
113
- "&gt;": ">",
114
- "&#62;": ">",
115
- "&apos;": "'",
116
- "&#39;": "'",
117
- "&quot;": '"',
118
- "&#34;": '"'
119
- };
120
- var htmlUnescapeRegexp = /&(amp|#38|lt|#60|gt|#62|apos|#39|quot|#34);/g;
121
- var htmlUnescape = (str) => str.replace(htmlUnescapeRegexp, (char) => htmlUnescapeMap[char]);
122
-
123
- // src/utils/isLinkFtp.ts
124
- var isLinkFtp = (link) => link.startsWith("ftp://");
125
-
126
- // src/utils/isLinkHttp.ts
127
- var isLinkHttp = (link) => /^(https?:)?\/\//.test(link);
128
-
129
- // src/utils/isLinkExternal.ts
130
- var isLinkExternal = (link, base = "/") => {
131
- if (isLinkHttp(link) || isLinkFtp(link)) {
132
- return true;
133
- }
134
- if (link.startsWith("/") && !link.startsWith(base) && !link.endsWith(".md")) {
135
- return true;
136
- }
137
- return false;
138
- };
139
-
140
- // src/utils/isLinkMailto.ts
141
- var isLinkMailto = (link) => /^mailto:/.test(link);
142
-
143
- // src/utils/isLinkTel.ts
144
- var isLinkTel = (link) => /^tel:/.test(link);
145
-
146
- // src/utils/isPlainObject.ts
147
- var isPlainObject = (val) => Object.prototype.toString.call(val) === "[object Object]";
148
-
149
- // src/utils/removeEndingSlash.ts
150
- var removeEndingSlash = (str) => str.replace(/\/$/, "");
151
-
152
- // src/utils/removeLeadingSlash.ts
153
- var removeLeadingSlash = (str) => str.replace(/^\//, "");
154
-
155
- // src/utils/resolveLocalePath.ts
156
- var resolveLocalePath = (locales, routePath) => {
157
- const localePaths = Object.keys(locales).sort((a, b) => {
158
- const levelDelta = b.split("/").length - a.split("/").length;
159
- if (levelDelta !== 0) {
160
- return levelDelta;
161
- }
162
- return b.length - a.length;
163
- });
164
- for (const localePath of localePaths) {
165
- if (routePath.startsWith(localePath)) {
166
- return localePath;
167
- }
168
- }
169
- return "/";
170
- };
171
-
172
- // src/utils/resolveRoutePathFromUrl.ts
173
- var resolveRoutePathFromUrl = (url, base = "/") => url.replace(/^(https?:)?\/\/[^/]*/, "").replace(new RegExp(`^${base}`), "/");
174
- // Annotate the CommonJS export names for ESM import in node:
175
- 0 && (module.exports = {
176
- dedupeHead,
177
- ensureEndingSlash,
178
- ensureLeadingSlash,
179
- formatDateString,
180
- htmlEscape,
181
- htmlUnescape,
182
- isArray,
183
- isFunction,
184
- isLinkExternal,
185
- isLinkFtp,
186
- isLinkHttp,
187
- isLinkMailto,
188
- isLinkTel,
189
- isPlainObject,
190
- isString,
191
- removeEndingSlash,
192
- removeLeadingSlash,
193
- resolveHeadIdentifier,
194
- resolveLocalePath,
195
- resolveRoutePathFromUrl
196
- });