@docusaurus/utils 0.0.0-4712 → 0.0.0-4716

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.
@@ -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 = /(?:(?:\]\()|(?:\]:\s*))(?!https?:\/\/|@site\/)(?<filename>[^'")\]\s>]+\.mdx?)/g;
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.
@@ -1 +1 @@
1
- {"version":3,"file":"markdownLinks.js","sourceRoot":"","sources":["../src/markdownLinks.ts"],"names":[],"mappings":"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"}
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,wEAAwE,CAAC;QAC3E,IAAI,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzC,OAAO,OAAO,KAAK,IAAI,EAAE;YACvB,mCAAmC;YACnC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAO,CAAC,QAAS,CAAC;YAEzC,MAAM,YAAY,GAAG;gBACnB,cAAI,CAAC,OAAO,CAAC,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;gBAChE,GAAG,oBAAoB,IAAI,kBAAkB,CAAC,MAAM,CAAC,EAAE;gBACvD,GAAG,WAAW,IAAI,kBAAkB,CAAC,MAAM,CAAC,EAAE;aAC/C,CAAC;YAEF,MAAM,kBAAkB,GAAG,YAAY;iBACpC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAA,2BAAe,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;iBACjD,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;YAE/C,MAAM,SAAS,GAAuB,kBAAkB;gBACtD,CAAC,CAAC,iBAAiB,CAAC,kBAAkB,CAAC;gBACvC,CAAC,CAAC,SAAS,CAAC;YAEd,IAAI,SAAS,EAAE;gBACb,mEAAmE;gBACnE,oBAAoB;gBACpB,MAAM,gBAAgB,GAAG,SAAS;qBAC/B,KAAK,CAAC,GAAG,CAAC;qBACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;qBACzC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACb,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;aAC/D;iBAAM;gBACL,MAAM,kBAAkB,GAA0B;oBAChD,YAAY;oBACZ,QAAQ;oBACR,IAAI,EAAE,MAAM;iBACb,CAAC;gBAEF,mBAAmB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;aAC9C;YACD,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACtC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEpC,OAAO,EAAC,UAAU,EAAE,mBAAmB,EAAC,CAAC;AAC3C,CAAC;AAjFD,oDAiFC"}
@@ -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,CAkCrD;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"}
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"}
@@ -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 = /^(?<text>.*?)\s*\{#(?<id>[\w-]+)\}$/;
16
+ const customHeadingIdRegex = /\s*\{#(?<id>[\w-]+)\}$/;
17
17
  const matches = customHeadingIdRegex.exec(heading);
18
18
  if (matches) {
19
19
  return {
20
- text: matches.groups.text,
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(/^#\s*[^#]*\s*#?/gm, '')
69
+ .replace(/^#[^#]+#?/gm, '')
70
70
  // Remove Markdown + ATX-style headers
71
- .replace(/^#{1,6}\s*(?<text>[^#]*)\s*(?:#{1,6})?/gm, '$1')
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(/\[\^.+?\](?:: .*?$)?/g, '')
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(/{#*[\w-]+}/, '')
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
- const IMPORT_STATEMENT = /import\s+(?:[\w*{}\s\n,]+from\s+)?["'\s][@\w/_.-]+["'\s];?|\n/.source;
123
- const REGULAR_TITLE = /(?<pattern>#\s*(?<title>[^#\n{]*)+[ \t]*(?<suffix>(?:{#*[\w-]+})|#)?\n*?)/
124
- .source;
125
- const ALTERNATE_TITLE = /(?<pattern>\s*(?<title>[^\n]*)\s*\n[=]+)/.source;
126
- const regularTitleMatch = new RegExp(`^(?:${IMPORT_STATEMENT})*?${REGULAR_TITLE}`, 'g').exec(content);
127
- const alternateTitleMatch = new RegExp(`^(?:${IMPORT_STATEMENT})*?${ALTERNATE_TITLE}`, 'g').exec(content);
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
- const { pattern, title } = titleMatch?.groups ?? {};
130
- if (!pattern || !title) {
131
+ if (!titleMatch) {
131
132
  return { content, contentTitle: undefined };
132
133
  }
133
134
  const newContent = removeContentTitleOption
134
- ? content.replace(pattern, '')
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":"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"}
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(/[/]+$/, i < urls.length - 1 ? '' : '/');
61
+ component = component.replace(/\/+$/, i < urls.length - 1 ? '' : '/');
62
62
  }
63
63
  hasStartingSlash = true;
64
64
  resultArray.push(component);
@@ -1 +1 @@
1
- {"version":3,"file":"urlUtils.js","sourceRoot":"","sources":["../src/urlUtils.ts"],"names":[],"mappings":"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"}
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-4712",
3
+ "version": "0.0.0-4716",
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-4712",
21
+ "@docusaurus/logger": "0.0.0-4716",
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-4712",
41
+ "@docusaurus/types": "0.0.0-4716",
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": "1e5c296e7b7113dbb926e41da5aa7f326f0d60e9"
48
+ "gitHead": "bb0c99cc87181c3285556e88233fcbb1695ae1a7"
49
49
  }
@@ -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
- /(?:(?:\]\()|(?:\]:\s*))(?!https?:\/\/|@site\/)(?<filename>[^'")\]\s>]+\.mdx?)/g;
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.
@@ -14,11 +14,11 @@ export function parseMarkdownHeadingId(heading: string): {
14
14
  text: string;
15
15
  id?: string;
16
16
  } {
17
- const customHeadingIdRegex = /^(?<text>.*?)\s*\{#(?<id>[\w-]+)\}$/;
17
+ const customHeadingIdRegex = /\s*\{#(?<id>[\w-]+)\}$/;
18
18
  const matches = customHeadingIdRegex.exec(heading);
19
19
  if (matches) {
20
20
  return {
21
- text: matches.groups!.text!,
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(/^#\s*[^#]*\s*#?/gm, '')
72
+ .replace(/^#[^#]+#?/gm, '')
73
73
  // Remove Markdown + ATX-style headers
74
- .replace(/^#{1,6}\s*(?<text>[^#]*)\s*(?:#{1,6})?/gm, '$1')
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(/\[\^.+?\](?:: .*?$)?/g, '')
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(/{#*[\w-]+}/, '')
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
- const IMPORT_STATEMENT =
137
- /import\s+(?:[\w*{}\s\n,]+from\s+)?["'\s][@\w/_.-]+["'\s];?|\n/.source;
138
- const REGULAR_TITLE =
139
- /(?<pattern>#\s*(?<title>[^#\n{]*)+[ \t]*(?<suffix>(?:{#*[\w-]+})|#)?\n*?)/
140
- .source;
141
- const ALTERNATE_TITLE = /(?<pattern>\s*(?<title>[^\n]*)\s*\n[=]+)/.source;
142
-
143
- const regularTitleMatch = new RegExp(
144
- `^(?:${IMPORT_STATEMENT})*?${REGULAR_TITLE}`,
145
- 'g',
146
- ).exec(content);
147
- const alternateTitleMatch = new RegExp(
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
- const {pattern, title} = titleMatch?.groups ?? {};
154
-
155
- if (!pattern || !title) {
150
+ if (!titleMatch) {
156
151
  return {content, contentTitle: undefined};
157
152
  }
158
153
  const newContent = removeContentTitleOption
159
- ? content.replace(pattern, '')
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(title.trim()).trim(),
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(/[/]+$/, i < urls.length - 1 ? '' : '/');
71
+ component = component.replace(/\/+$/, i < urls.length - 1 ? '' : '/');
72
72
  }
73
73
 
74
74
  hasStartingSlash = true;