@docusaurus/utils 0.0.0-4713 → 0.0.0-4715
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/lib/markdownLinks.js +1 -1
- package/lib/markdownLinks.js.map +1 -1
- package/lib/markdownParser.d.ts.map +1 -1
- package/lib/markdownParser.js +25 -16
- package/lib/markdownParser.js.map +1 -1
- package/lib/urlUtils.js +2 -2
- package/lib/urlUtils.js.map +1 -1
- package/package.json +4 -4
- package/src/markdownLinks.ts +1 -1
- package/src/markdownParser.ts +34 -27
- package/src/urlUtils.ts +2 -2
package/lib/markdownLinks.js
CHANGED
|
@@ -37,7 +37,7 @@ function replaceMarkdownLinks({ siteDir, fileString, filePath, contentPaths, sou
|
|
|
37
37
|
// This is [Document 1](doc1.md) -> we replace this doc1.md with correct
|
|
38
38
|
// ink
|
|
39
39
|
// [doc1]: doc1.md -> we replace this doc1.md with correct link
|
|
40
|
-
const mdRegex = /(
|
|
40
|
+
const mdRegex = /(?:\]\(|\]:\s*)(?!https?:\/\/|@site\/)(?<filename>[^'")\]\s>]+\.mdx?)/g;
|
|
41
41
|
let mdMatch = mdRegex.exec(modifiedLine);
|
|
42
42
|
while (mdMatch !== null) {
|
|
43
43
|
// Replace it to correct html link.
|
package/lib/markdownLinks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdownLinks.js","sourceRoot":"","sources":["../src/markdownLinks.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAEH,wDAAwB;AACxB,2CAA4C;AA0B5C,SAAgB,oBAAoB,CAAyB,EAC3D,OAAO,EACP,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,iBAAiB,GACa;IAC9B,MAAM,EAAC,WAAW,EAAE,oBAAoB,EAAC,GAAG,YAAY,CAAC;IAEzD,MAAM,mBAAmB,GAA4B,EAAE,CAAC;IAExD,+DAA+D;IAC/D,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,aAAa,GAAG,EAAE,CAAC;IACvB,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAChD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;YACjC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAE,CAAC,CAAC,CAAE,CAAC;YAChD,IAAI,CAAC,WAAW,EAAE;gBAChB,WAAW,GAAG,IAAI,CAAC;gBACnB,aAAa,GAAG,SAAS,CAAC;gBAC1B,wEAAwE;gBACxE,YAAY;aACb;iBAAM,IAAI,SAAS,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,EAAE;gBACnD,WAAW,GAAG,KAAK,CAAC;aACrB;SACF;QACD,IAAI,WAAW,EAAE;YACf,OAAO,IAAI,CAAC;SACb;QAED,IAAI,YAAY,GAAG,IAAI,CAAC;QACxB,2DAA2D;QAC3D,wEAAwE;QACxE,MAAM;QACN,+DAA+D;QAC/D,MAAM,OAAO,GACX,
|
|
1
|
+
{"version":3,"file":"markdownLinks.js","sourceRoot":"","sources":["../src/markdownLinks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdownParser.d.ts","sourceRoot":"","sources":["../src/markdownParser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,CAUA;AAKD,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAwEpE;AAED,wBAAgB,gBAAgB,CAAC,mBAAmB,EAAE,MAAM,GAAG;IAC7D,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;CACjB,CAMA;AAcD,wBAAgB,yBAAyB,CACvC,gBAAgB,EAAE,MAAM,EACxB,OAAO,CAAC,EAAE;IAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAAC,GACvC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAA;CAAC,
|
|
1
|
+
{"version":3,"file":"markdownParser.d.ts","sourceRoot":"","sources":["../src/markdownParser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,CAUA;AAKD,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAwEpE;AAED,wBAAgB,gBAAgB,CAAC,mBAAmB,EAAE,MAAM,GAAG;IAC7D,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;CACjB,CAMA;AAcD,wBAAgB,yBAAyB,CACvC,gBAAgB,EAAE,MAAM,EACxB,OAAO,CAAC,EAAE;IAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAAC,GACvC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAA;CAAC,CAyCrD;AAED,aAAK,cAAc,GAAG;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,mBAAmB,EAAE,MAAM,EAC3B,OAAO,CAAC,EAAE;IAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAAC,GACvC,cAAc,CAuBhB"}
|
package/lib/markdownParser.js
CHANGED
|
@@ -13,11 +13,11 @@ const gray_matter_1 = tslib_1.__importDefault(require("gray-matter"));
|
|
|
13
13
|
// Input: ## Some heading {#some-heading}
|
|
14
14
|
// Output: {text: "## Some heading", id: "some-heading"}
|
|
15
15
|
function parseMarkdownHeadingId(heading) {
|
|
16
|
-
const customHeadingIdRegex =
|
|
16
|
+
const customHeadingIdRegex = /\s*\{#(?<id>[\w-]+)\}$/;
|
|
17
17
|
const matches = customHeadingIdRegex.exec(heading);
|
|
18
18
|
if (matches) {
|
|
19
19
|
return {
|
|
20
|
-
text: matches
|
|
20
|
+
text: heading.replace(matches[0], ''),
|
|
21
21
|
id: matches.groups.id,
|
|
22
22
|
};
|
|
23
23
|
}
|
|
@@ -66,9 +66,9 @@ function createExcerpt(fileString) {
|
|
|
66
66
|
// Remove HTML tags.
|
|
67
67
|
.replace(/<[^>]*>/g, '')
|
|
68
68
|
// Remove Title headers
|
|
69
|
-
.replace(
|
|
69
|
+
.replace(/^#[^#]+#?/gm, '')
|
|
70
70
|
// Remove Markdown + ATX-style headers
|
|
71
|
-
.replace(/^#{1,6}\s*(?<text>[^#]*)\s
|
|
71
|
+
.replace(/^#{1,6}\s*(?<text>[^#]*)\s*#{0,6}/gm, '$1')
|
|
72
72
|
// Remove emphasis.
|
|
73
73
|
.replace(/(?<opening>[*_]{1,3})(?<text>.*?)\1/g, '$2')
|
|
74
74
|
// Remove strikethroughs.
|
|
@@ -76,7 +76,7 @@ function createExcerpt(fileString) {
|
|
|
76
76
|
// Remove images.
|
|
77
77
|
.replace(/!\[(?<alt>.*?)\][[(].*?[\])]/g, '$1')
|
|
78
78
|
// Remove footnotes.
|
|
79
|
-
.replace(/\[\^.+?\](?::
|
|
79
|
+
.replace(/\[\^.+?\](?:: .*$)?/g, '')
|
|
80
80
|
// Remove inline links.
|
|
81
81
|
.replace(/\[(?<alt>.*?)\][[(].*?[\])]/g, '$1')
|
|
82
82
|
// Remove inline code.
|
|
@@ -88,7 +88,7 @@ function createExcerpt(fileString) {
|
|
|
88
88
|
// Remove Emoji names within colons include preceding whitespace.
|
|
89
89
|
.replace(/\s?:(?:::|[^:\n])+:/g, '')
|
|
90
90
|
// Remove custom Markdown heading id.
|
|
91
|
-
.replace(
|
|
91
|
+
.replace(/\{#*[\w-]+\}/, '')
|
|
92
92
|
.trim();
|
|
93
93
|
if (cleanedLine) {
|
|
94
94
|
return cleanedLine;
|
|
@@ -119,23 +119,32 @@ function toTextContentTitle(contentTitle) {
|
|
|
119
119
|
function parseMarkdownContentTitle(contentUntrimmed, options) {
|
|
120
120
|
const removeContentTitleOption = options?.removeContentTitle ?? false;
|
|
121
121
|
const content = contentUntrimmed.trim();
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
const
|
|
126
|
-
|
|
127
|
-
|
|
122
|
+
// We only need to detect import statements that will be parsed by MDX as
|
|
123
|
+
// `import` nodes, as broken syntax can't render anyways. That means any block
|
|
124
|
+
// that has `import` at the very beginning and surrounded by empty lines.
|
|
125
|
+
const contentWithoutImport = content
|
|
126
|
+
.replace(/^(?:import\s(?:.|\n(?!\n))*\n{2,})*/, '')
|
|
127
|
+
.trim();
|
|
128
|
+
const regularTitleMatch = /^#[ \t]+(?<title>[^ \t].*)(?:\n|$)/.exec(contentWithoutImport);
|
|
129
|
+
const alternateTitleMatch = /^(?<title>.*)\n=+(?:\n|$)/.exec(contentWithoutImport);
|
|
128
130
|
const titleMatch = regularTitleMatch ?? alternateTitleMatch;
|
|
129
|
-
|
|
130
|
-
if (!pattern || !title) {
|
|
131
|
+
if (!titleMatch) {
|
|
131
132
|
return { content, contentTitle: undefined };
|
|
132
133
|
}
|
|
133
134
|
const newContent = removeContentTitleOption
|
|
134
|
-
? content.replace(
|
|
135
|
+
? content.replace(titleMatch[0], '')
|
|
135
136
|
: content;
|
|
137
|
+
if (regularTitleMatch) {
|
|
138
|
+
return {
|
|
139
|
+
content: newContent.trim(),
|
|
140
|
+
contentTitle: toTextContentTitle(regularTitleMatch
|
|
141
|
+
.groups.title.trim()
|
|
142
|
+
.replace(/\s*(?:\{#*[\w-]+\}|#+)$/, '')).trim(),
|
|
143
|
+
};
|
|
144
|
+
}
|
|
136
145
|
return {
|
|
137
146
|
content: newContent.trim(),
|
|
138
|
-
contentTitle: toTextContentTitle(title.trim()).trim(),
|
|
147
|
+
contentTitle: toTextContentTitle(alternateTitleMatch.groups.title.trim().replace(/\s*=+$/, '')).trim(),
|
|
139
148
|
};
|
|
140
149
|
}
|
|
141
150
|
exports.parseMarkdownContentTitle = parseMarkdownContentTitle;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdownParser.js","sourceRoot":"","sources":["../src/markdownParser.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAEH,wEAAwC;AACxC,sEAAiC;AAEjC,yCAAyC;AACzC,wDAAwD;AACxD,SAAgB,sBAAsB,CAAC,OAAe;IAIpD,MAAM,oBAAoB,GAAG,
|
|
1
|
+
{"version":3,"file":"markdownParser.js","sourceRoot":"","sources":["../src/markdownParser.ts"],"names":[],"mappings":"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"}
|
package/lib/urlUtils.js
CHANGED
|
@@ -50,7 +50,7 @@ function normalizeUrl(rawUrls) {
|
|
|
50
50
|
if (component !== '/') {
|
|
51
51
|
if (i > 0) {
|
|
52
52
|
// Removing the starting slashes for each component but the first.
|
|
53
|
-
component = component.replace(
|
|
53
|
+
component = component.replace(/^\/+/,
|
|
54
54
|
// Special case where the first element of rawUrls is empty
|
|
55
55
|
// ["", "/hello"] => /hello
|
|
56
56
|
component[0] === '/' && !hasStartingSlash ? '/' : '');
|
|
@@ -58,7 +58,7 @@ function normalizeUrl(rawUrls) {
|
|
|
58
58
|
hasEndingSlash = component[component.length - 1] === '/';
|
|
59
59
|
// Removing the ending slashes for each component but the last. For the
|
|
60
60
|
// last component we will combine multiple slashes to a single one.
|
|
61
|
-
component = component.replace(
|
|
61
|
+
component = component.replace(/\/+$/, i < urls.length - 1 ? '' : '/');
|
|
62
62
|
}
|
|
63
63
|
hasStartingSlash = true;
|
|
64
64
|
resultArray.push(component);
|
package/lib/urlUtils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"urlUtils.js","sourceRoot":"","sources":["../src/urlUtils.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAEH,uCAAuC;AACvC,gFAAqD;AAErD,SAAgB,YAAY,CAAC,OAAiB;IAC5C,MAAM,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;IAC1B,MAAM,WAAW,GAAG,EAAE,CAAC;IAEvB,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,IAAI,cAAc,GAAG,KAAK,CAAC;IAE3B,MAAM,eAAe,GAAG,CAAC,GAAa,EAAgC,EAAE,CACtE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;IAEjB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE;QAC1B,OAAO,EAAE,CAAC;KACX;IAED,2EAA2E;IAC3E,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAG,CAAC;QAC5B,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YACxD,wEAAwE;YACxE,8BAA8B;YAC9B,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;SAClC;aAAM;YACL,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;SAC3B;KACF;IAED,2DAA2D;IAC3D,gCAAgC;IAChC,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IACvE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,0BAA0B,EAAE,WAAW,CAAC,CAAC;IAEnE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QACvC,IAAI,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAExB,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;YACjC,MAAM,IAAI,SAAS,CAAC,kCAAkC,OAAO,SAAS,EAAE,CAAC,CAAC;SAC3E;QAED,IAAI,SAAS,KAAK,EAAE,EAAE;YACpB,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,EAAE;gBAC3C,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACvB;YACD,uCAAuC;YACvC,SAAS;SACV;QAED,IAAI,SAAS,KAAK,GAAG,EAAE;YACrB,IAAI,CAAC,GAAG,CAAC,EAAE;gBACT,kEAAkE;gBAClE,SAAS,GAAG,SAAS,CAAC,OAAO,CAC3B,
|
|
1
|
+
{"version":3,"file":"urlUtils.js","sourceRoot":"","sources":["../src/urlUtils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@docusaurus/utils",
|
|
3
|
-
"version": "0.0.0-
|
|
3
|
+
"version": "0.0.0-4715",
|
|
4
4
|
"description": "Node utility functions for Docusaurus packages.",
|
|
5
5
|
"main": "./lib/index.js",
|
|
6
6
|
"types": "./lib/index.d.ts",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
},
|
|
19
19
|
"license": "MIT",
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@docusaurus/logger": "0.0.0-
|
|
21
|
+
"@docusaurus/logger": "0.0.0-4715",
|
|
22
22
|
"@svgr/webpack": "^6.0.0",
|
|
23
23
|
"file-loader": "^6.2.0",
|
|
24
24
|
"fs-extra": "^10.0.1",
|
|
@@ -38,12 +38,12 @@
|
|
|
38
38
|
"node": ">=14"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
|
-
"@docusaurus/types": "0.0.0-
|
|
41
|
+
"@docusaurus/types": "0.0.0-4715",
|
|
42
42
|
"@types/dedent": "^0.7.0",
|
|
43
43
|
"@types/github-slugger": "^1.3.0",
|
|
44
44
|
"@types/micromatch": "^4.0.2",
|
|
45
45
|
"@types/react-dom": "^17.0.13",
|
|
46
46
|
"dedent": "^0.7.0"
|
|
47
47
|
},
|
|
48
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "4e437fa53e0fb6cfc5b6c4d2291c91302f8868be"
|
|
49
49
|
}
|
package/src/markdownLinks.ts
CHANGED
|
@@ -68,7 +68,7 @@ export function replaceMarkdownLinks<T extends ContentPaths>({
|
|
|
68
68
|
// ink
|
|
69
69
|
// [doc1]: doc1.md -> we replace this doc1.md with correct link
|
|
70
70
|
const mdRegex =
|
|
71
|
-
/(
|
|
71
|
+
/(?:\]\(|\]:\s*)(?!https?:\/\/|@site\/)(?<filename>[^'")\]\s>]+\.mdx?)/g;
|
|
72
72
|
let mdMatch = mdRegex.exec(modifiedLine);
|
|
73
73
|
while (mdMatch !== null) {
|
|
74
74
|
// Replace it to correct html link.
|
package/src/markdownParser.ts
CHANGED
|
@@ -14,11 +14,11 @@ export function parseMarkdownHeadingId(heading: string): {
|
|
|
14
14
|
text: string;
|
|
15
15
|
id?: string;
|
|
16
16
|
} {
|
|
17
|
-
const customHeadingIdRegex =
|
|
17
|
+
const customHeadingIdRegex = /\s*\{#(?<id>[\w-]+)\}$/;
|
|
18
18
|
const matches = customHeadingIdRegex.exec(heading);
|
|
19
19
|
if (matches) {
|
|
20
20
|
return {
|
|
21
|
-
text: matches
|
|
21
|
+
text: heading.replace(matches[0]!, ''),
|
|
22
22
|
id: matches.groups!.id!,
|
|
23
23
|
};
|
|
24
24
|
}
|
|
@@ -69,9 +69,9 @@ export function createExcerpt(fileString: string): string | undefined {
|
|
|
69
69
|
// Remove HTML tags.
|
|
70
70
|
.replace(/<[^>]*>/g, '')
|
|
71
71
|
// Remove Title headers
|
|
72
|
-
.replace(
|
|
72
|
+
.replace(/^#[^#]+#?/gm, '')
|
|
73
73
|
// Remove Markdown + ATX-style headers
|
|
74
|
-
.replace(/^#{1,6}\s*(?<text>[^#]*)\s
|
|
74
|
+
.replace(/^#{1,6}\s*(?<text>[^#]*)\s*#{0,6}/gm, '$1')
|
|
75
75
|
// Remove emphasis.
|
|
76
76
|
.replace(/(?<opening>[*_]{1,3})(?<text>.*?)\1/g, '$2')
|
|
77
77
|
// Remove strikethroughs.
|
|
@@ -79,7 +79,7 @@ export function createExcerpt(fileString: string): string | undefined {
|
|
|
79
79
|
// Remove images.
|
|
80
80
|
.replace(/!\[(?<alt>.*?)\][[(].*?[\])]/g, '$1')
|
|
81
81
|
// Remove footnotes.
|
|
82
|
-
.replace(/\[\^.+?\](?::
|
|
82
|
+
.replace(/\[\^.+?\](?:: .*$)?/g, '')
|
|
83
83
|
// Remove inline links.
|
|
84
84
|
.replace(/\[(?<alt>.*?)\][[(].*?[\])]/g, '$1')
|
|
85
85
|
// Remove inline code.
|
|
@@ -91,7 +91,7 @@ export function createExcerpt(fileString: string): string | undefined {
|
|
|
91
91
|
// Remove Emoji names within colons include preceding whitespace.
|
|
92
92
|
.replace(/\s?:(?:::|[^:\n])+:/g, '')
|
|
93
93
|
// Remove custom Markdown heading id.
|
|
94
|
-
.replace(
|
|
94
|
+
.replace(/\{#*[\w-]+\}/, '')
|
|
95
95
|
.trim();
|
|
96
96
|
|
|
97
97
|
if (cleanedLine) {
|
|
@@ -132,35 +132,42 @@ export function parseMarkdownContentTitle(
|
|
|
132
132
|
const removeContentTitleOption = options?.removeContentTitle ?? false;
|
|
133
133
|
|
|
134
134
|
const content = contentUntrimmed.trim();
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
const
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
`^(?:${IMPORT_STATEMENT})*?${ALTERNATE_TITLE}`,
|
|
149
|
-
'g',
|
|
150
|
-
).exec(content);
|
|
135
|
+
// We only need to detect import statements that will be parsed by MDX as
|
|
136
|
+
// `import` nodes, as broken syntax can't render anyways. That means any block
|
|
137
|
+
// that has `import` at the very beginning and surrounded by empty lines.
|
|
138
|
+
const contentWithoutImport = content
|
|
139
|
+
.replace(/^(?:import\s(?:.|\n(?!\n))*\n{2,})*/, '')
|
|
140
|
+
.trim();
|
|
141
|
+
|
|
142
|
+
const regularTitleMatch = /^#[ \t]+(?<title>[^ \t].*)(?:\n|$)/.exec(
|
|
143
|
+
contentWithoutImport,
|
|
144
|
+
);
|
|
145
|
+
const alternateTitleMatch = /^(?<title>.*)\n=+(?:\n|$)/.exec(
|
|
146
|
+
contentWithoutImport,
|
|
147
|
+
);
|
|
151
148
|
|
|
152
149
|
const titleMatch = regularTitleMatch ?? alternateTitleMatch;
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
if (!pattern || !title) {
|
|
150
|
+
if (!titleMatch) {
|
|
156
151
|
return {content, contentTitle: undefined};
|
|
157
152
|
}
|
|
158
153
|
const newContent = removeContentTitleOption
|
|
159
|
-
? content.replace(
|
|
154
|
+
? content.replace(titleMatch[0]!, '')
|
|
160
155
|
: content;
|
|
156
|
+
if (regularTitleMatch) {
|
|
157
|
+
return {
|
|
158
|
+
content: newContent.trim(),
|
|
159
|
+
contentTitle: toTextContentTitle(
|
|
160
|
+
regularTitleMatch
|
|
161
|
+
.groups!.title!.trim()
|
|
162
|
+
.replace(/\s*(?:\{#*[\w-]+\}|#+)$/, ''),
|
|
163
|
+
).trim(),
|
|
164
|
+
};
|
|
165
|
+
}
|
|
161
166
|
return {
|
|
162
167
|
content: newContent.trim(),
|
|
163
|
-
contentTitle: toTextContentTitle(
|
|
168
|
+
contentTitle: toTextContentTitle(
|
|
169
|
+
alternateTitleMatch!.groups!.title!.trim().replace(/\s*=+$/, ''),
|
|
170
|
+
).trim(),
|
|
164
171
|
};
|
|
165
172
|
}
|
|
166
173
|
|
package/src/urlUtils.ts
CHANGED
|
@@ -58,7 +58,7 @@ export function normalizeUrl(rawUrls: string[]): string {
|
|
|
58
58
|
if (i > 0) {
|
|
59
59
|
// Removing the starting slashes for each component but the first.
|
|
60
60
|
component = component.replace(
|
|
61
|
-
|
|
61
|
+
/^\/+/,
|
|
62
62
|
// Special case where the first element of rawUrls is empty
|
|
63
63
|
// ["", "/hello"] => /hello
|
|
64
64
|
component[0] === '/' && !hasStartingSlash ? '/' : '',
|
|
@@ -68,7 +68,7 @@ export function normalizeUrl(rawUrls: string[]): string {
|
|
|
68
68
|
hasEndingSlash = component[component.length - 1] === '/';
|
|
69
69
|
// Removing the ending slashes for each component but the last. For the
|
|
70
70
|
// last component we will combine multiple slashes to a single one.
|
|
71
|
-
component = component.replace(
|
|
71
|
+
component = component.replace(/\/+$/, i < urls.length - 1 ? '' : '/');
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
hasStartingSlash = true;
|