@docusaurus/utils 0.0.0-4518 → 0.0.0-4524
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/index.d.ts +2 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +8 -8
- package/lib/index.js.map +1 -1
- package/lib/markdownLinks.d.ts.map +1 -1
- package/lib/markdownLinks.js +6 -3
- package/lib/markdownLinks.js.map +1 -1
- package/lib/markdownParser.d.ts.map +1 -1
- package/lib/markdownParser.js +15 -16
- package/lib/markdownParser.js.map +1 -1
- package/lib/pathUtils.d.ts +14 -1
- package/lib/pathUtils.d.ts.map +1 -1
- package/lib/pathUtils.js +19 -11
- package/lib/pathUtils.js.map +1 -1
- package/lib/tags.d.ts +8 -0
- package/lib/tags.d.ts.map +1 -1
- package/lib/tags.js +13 -9
- package/lib/tags.js.map +1 -1
- package/lib/urlUtils.d.ts.map +1 -1
- package/lib/urlUtils.js +6 -4
- package/lib/urlUtils.js.map +1 -1
- package/lib/webpackUtils.d.ts.map +1 -1
- package/lib/webpackUtils.js +3 -2
- package/lib/webpackUtils.js.map +1 -1
- package/package.json +4 -4
- package/src/index.ts +13 -12
- package/src/markdownLinks.ts +6 -3
- package/src/markdownParser.ts +15 -14
- package/src/pathUtils.ts +19 -11
- package/src/tags.ts +13 -9
- package/src/urlUtils.ts +6 -4
- package/src/webpackUtils.ts +3 -2
package/lib/index.d.ts
CHANGED
|
@@ -50,7 +50,8 @@ export declare function getPluginI18nPath({ siteDir, locale, pluginName, pluginI
|
|
|
50
50
|
/**
|
|
51
51
|
* @param permalink The URL that the HTML file corresponds to, without base URL
|
|
52
52
|
* @param outDir Full path to the output directory
|
|
53
|
-
* @param trailingSlash The site config option. If provided, only one path will
|
|
53
|
+
* @param trailingSlash The site config option. If provided, only one path will
|
|
54
|
+
* be read.
|
|
54
55
|
* @returns This returns a buffer, which you have to decode string yourself if
|
|
55
56
|
* needed. (Not always necessary since the output isn't for human consumption
|
|
56
57
|
* anyways, and most HTML manipulation libs accept buffers)
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;AAQH,OAAO,KAAK,EACV,iBAAiB,EACjB,sBAAsB,EACtB,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAO3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAGhC,wBAAsB,QAAQ,CAC5B,iBAAiB,EAAE,MAAM,EACzB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,OAA+C,GACzD,OAAO,CAAC,IAAI,CAAC,CA2Bf;AAKD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK/C;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAKnD;AAGD;;GAEG;AACH,wBAAgB,YAAY,CAC1B,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,EACf,aAAa,CAAC,EAAE,MAAM,EACtB,OAAO,GAAE,OAA+C,GACvD,MAAM,CAiBR;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAWpD;AAGD,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAEjE;AACD,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAK5D;AAGD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEpD;AACD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAKhE;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,KAAK,EAAE,CAAC,EAAE,EACV,WAAW,EAAE,MAAM,GAClB;IACD,IAAI,EAAE,CAAC,GAAG,SAAS,CAAC;IACpB,QAAQ,EAAE,CAAC,GAAG,SAAS,CAAC;CACzB,CAWA;AAED,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EACP,MAAM,EACN,UAAU,EACV,QAA4B,EAC5B,QAAa,GACd,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;AAQH,OAAO,KAAK,EACV,iBAAiB,EACjB,sBAAsB,EACtB,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAO3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAGhC,wBAAsB,QAAQ,CAC5B,iBAAiB,EAAE,MAAM,EACzB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,OAA+C,GACzD,OAAO,CAAC,IAAI,CAAC,CA2Bf;AAKD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK/C;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAKnD;AAGD;;GAEG;AACH,wBAAgB,YAAY,CAC1B,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,EACf,aAAa,CAAC,EAAE,MAAM,EACtB,OAAO,GAAE,OAA+C,GACvD,MAAM,CAiBR;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAWpD;AAGD,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAEjE;AACD,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAK5D;AAGD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEpD;AACD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAKhE;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,KAAK,EAAE,CAAC,EAAE,EACV,WAAW,EAAE,MAAM,GAClB;IACD,IAAI,EAAE,CAAC,GAAG,SAAS,CAAC;IACpB,QAAQ,EAAE,CAAC,GAAG,SAAS,CAAC;CACzB,CAWA;AAED,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EACP,MAAM,EACN,UAAU,EACV,QAA4B,EAC5B,QAAa,GACd,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB,GAAG,MAAM,CAYT;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,OAAO,GAAG,SAAS,GACjC,OAAO,CAAC,MAAM,CAAC,CAqBjB;AAED,wBAAsB,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAC3C,KAAK,EAAE,CAAC,EAAE,EACV,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAC3B,OAAO,CAAC,CAAC,EAAE,CAAC,CAQd;AAED,wBAAsB,mBAAmB,CAAC,CAAC,EACzC,KAAK,EAAE,CAAC,EAAE,EACV,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,GACpC,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAQxB;AAED,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,iBAAiB,EAAE,iBAAiB,GACnC,IAAI,CAoBN;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,sBAAsB,EAAE,GACjC,sBAAsB,CAExB;AAID,wBAAgB,6BAA6B,CAC3C,eAAe,EAAE,eAAe,EAChC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GACzC,eAAe,CAQjB"}
|
package/lib/index.js
CHANGED
|
@@ -160,7 +160,8 @@ function getElementsAround(array, aroundIndex) {
|
|
|
160
160
|
exports.getElementsAround = getElementsAround;
|
|
161
161
|
function getPluginI18nPath({ siteDir, locale, pluginName, pluginId = constants_1.DEFAULT_PLUGIN_ID, subPaths = [], }) {
|
|
162
162
|
return path_1.default.join(siteDir, 'i18n',
|
|
163
|
-
// namespace first by locale: convenient to work in a single folder for a
|
|
163
|
+
// namespace first by locale: convenient to work in a single folder for a
|
|
164
|
+
// translator
|
|
164
165
|
locale,
|
|
165
166
|
// Make it convenient to use for single-instance
|
|
166
167
|
// ie: return "docs", not "docs-default" nor "docs/default"
|
|
@@ -170,7 +171,8 @@ exports.getPluginI18nPath = getPluginI18nPath;
|
|
|
170
171
|
/**
|
|
171
172
|
* @param permalink The URL that the HTML file corresponds to, without base URL
|
|
172
173
|
* @param outDir Full path to the output directory
|
|
173
|
-
* @param trailingSlash The site config option. If provided, only one path will
|
|
174
|
+
* @param trailingSlash The site config option. If provided, only one path will
|
|
175
|
+
* be read.
|
|
174
176
|
* @returns This returns a buffer, which you have to decode string yourself if
|
|
175
177
|
* needed. (Not always necessary since the output isn't for human consumption
|
|
176
178
|
* anyways, and most HTML manipulation libs accept buffers)
|
|
@@ -184,13 +186,11 @@ async function readOutputHTMLFile(permalink, outDir, trailingSlash) {
|
|
|
184
186
|
else if (trailingSlash === false) {
|
|
185
187
|
return fs_extra_1.default.readFile(withoutTrailingSlashPath);
|
|
186
188
|
}
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
throw new Error(`Expected output HTML file to be found at ${withTrailingSlashPath}`);
|
|
191
|
-
}
|
|
192
|
-
return fs_extra_1.default.readFile(HTMLPath);
|
|
189
|
+
const HTMLPath = await findAsyncSequential([withTrailingSlashPath, withoutTrailingSlashPath], fs_extra_1.default.pathExists);
|
|
190
|
+
if (!HTMLPath) {
|
|
191
|
+
throw new Error(`Expected output HTML file to be found at ${withTrailingSlashPath}`);
|
|
193
192
|
}
|
|
193
|
+
return fs_extra_1.default.readFile(HTMLPath);
|
|
194
194
|
}
|
|
195
195
|
exports.readOutputHTMLFile = readOutputHTMLFile;
|
|
196
196
|
async function mapAsyncSequential(array, action) {
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAEH,6EAAwC;AACxC,6DAAwB;AACxB,mCAAkC;AAClC,mCAAiC;AACjC,qEAA0B;AAC1B,6BAAwB;AAOxB,qFAAqD;AAErD,2CAAiD;AACjD,2CAA8C;AAE9C,2DAA4B;AAC5B,0DAA2B;AAC3B,sDAAuB;AACvB,gEAAiC;AACjC,+DAAgC;AAChC,yDAA0B;AAC1B,2DAA4B;AAC5B,2DAA4B;AAC5B,2DAA4B;AAC5B,8DAA+B;AAC/B,+DAAgC;AAEhC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;AACpC,KAAK,UAAU,QAAQ,CAC5B,iBAAyB,EACzB,IAAY,EACZ,OAAe,EACf,YAAqB,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;IAE1D,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;IAEpD,IAAI,SAAS,EAAE;QACb,MAAM,kBAAE,CAAC,SAAS,CAAC,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3C,MAAM,kBAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACtC,OAAO;KACR;IAED,IAAI,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEtC,2DAA2D;IAC3D,wDAAwD;IACxD,sEAAsE;IACtE,IAAI,CAAC,QAAQ,IAAI,kBAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;QACxC,MAAM,WAAW,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACxD,QAAQ,GAAG,IAAA,mBAAU,EAAC,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/D,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;KAClC;IAED,MAAM,WAAW,GAAG,IAAA,mBAAU,EAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEpE,IAAI,QAAQ,KAAK,WAAW,EAAE;QAC5B,MAAM,kBAAE,CAAC,SAAS,CAAC,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3C,MAAM,kBAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACtC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;KACrC;AACH,CAAC;AAhCD,4BAgCC;AAED,MAAM,OAAO,GAAG,yCAAyC,CAAC;AAC1D,MAAM,KAAK,GAAG,2BAA2B,CAAC;AAE1C;;;GAGG;AACH,SAAgB,UAAU,CAAC,IAAY;IACrC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;KACrC;IACD,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;AAC3D,CAAC;AALD,gCAKC;AAED,SAAgB,UAAU,CAAC,QAAgB;IACzC,OAAO,QAAQ;SACZ,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;SACvC,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AALD,gCAKC;AAED,MAAM,cAAc,GAAG,IAAI,GAAG,EAAE,CAAC;AACjC;;GAEG;AACH,SAAgB,YAAY,CAC1B,UAAkB,EAClB,MAAe,EACf,aAAsB,EACtB,UAAmB,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;IAExD,IAAI,SAAS,GAAuB,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACnE,IAAI,CAAC,SAAS,EAAE;QACd,IAAI,OAAO,EAAE;YACX,SAAS,GAAG,IAAA,sBAAU,EAAC,UAAU,EAAE,CAAC,CAAC,CAAC;SACvC;aAAM;YACL,IAAI,GAAG,GAAG,UAAU,CAAC;YACrB,IAAI,aAAa,EAAE;gBACjB,MAAM,SAAS,GAAG,IAAA,sBAAU,EAAC,UAAU,EAAE,CAAC,CAAC,CAAC;gBAC5C,GAAG,GAAG,GAAG,aAAa,GAAG,SAAS,EAAE,CAAC;aACtC;YACD,MAAM,IAAI,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAA,oBAAQ,EAAC,GAAG,CAAC,CAAC;YACnD,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SACnD;QACD,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;KAC3C;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAtBD,oCAsBC;AAED,SAAgB,eAAe,CAAC,GAAW;IACzC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;QACxB,OAAO,KAAK,CAAC;KACd;IACD,IAAI;QACF,oCAAoC;QACpC,MAAM,cAAc,GAAG,IAAI,SAAG,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC,QAAQ,CAAC;QACnE,OAAO,cAAc,KAAK,GAAG,IAAI,cAAc,KAAK,SAAS,CAAC,GAAG,CAAC,CAAC;KACpE;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,KAAK,CAAC;KACd;AACH,CAAC;AAXD,0CAWC;AAED,qDAAqD;AACrD,SAAgB,eAAe,CAAC,EAAU,EAAE,IAAa;IACvD,OAAO,IAAA,0BAAqB,EAAC,EAAE,EAAE,IAAI,CAAC,CAAC;AACzC,CAAC;AAFD,0CAEC;AACD,SAAgB,eAAe,CAAC,GAAW;IACzC,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;AAC/C,CAAC;AAFD,0CAEC;AAED,SAAgB,wBAAwB,CAAC,GAAW;IAClD,OAAO,GAAG,CAAC,QAAQ,CAAC,cAAI,CAAC,GAAG,CAAC;QAC3B,CAAC,CAAC,GAAG;QACL,CAAC,CAAC,sEAAsE;YACtE,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,cAAI,CAAC,GAAG,EAAE,CAAC;AAC7C,CAAC;AALD,4DAKC;AAED,6DAA6D;AAC7D,SAAgB,gBAAgB,CAAC,GAAW;IAC1C,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC;AAC7C,CAAC;AAFD,4CAEC;AACD,SAAgB,mBAAmB,CAAC,GAAW;IAC7C,OAAO,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAChC,CAAC;AAFD,kDAEC;AAED,SAAgB,YAAY,CAAC,GAAW,EAAE,MAAc;IACtD,IAAI,MAAM,KAAK,EAAE,EAAE;QACjB,OAAO,GAAG,CAAC,CAAC,+BAA+B;KAC5C;IACD,OAAO,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACnE,CAAC;AALD,oCAKC;AAED,SAAgB,YAAY,CAAC,GAAW,EAAE,MAAc;IACtD,OAAO,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACjE,CAAC;AAFD,oCAEC;AAED,SAAgB,iBAAiB,CAC/B,KAAU,EACV,WAAmB;IAKnB,MAAM,GAAG,GAAG,CAAC,CAAC;IACd,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7B,IAAI,WAAW,GAAG,GAAG,IAAI,WAAW,GAAG,GAAG,EAAE;QAC1C,MAAM,IAAI,KAAK,CACb,0CAA0C,KAAK,CAAC,MAAM,iBAAiB,GAAG,QAAQ,GAAG,sBAAsB,WAAW,GAAG,CAC1H,CAAC;KACH;IACD,MAAM,QAAQ,GAAG,WAAW,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;IAC1E,MAAM,IAAI,GAAG,WAAW,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;IACtE,OAAO,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;AAC1B,CAAC;AAjBD,8CAiBC;AAED,SAAgB,iBAAiB,CAAC,EAChC,OAAO,EACP,MAAM,EACN,UAAU,EACV,QAAQ,GAAG,6BAAiB,EAC5B,QAAQ,GAAG,EAAE,GAOd;IACC,OAAO,cAAI,CAAC,IAAI,CACd,OAAO,EACP,MAAM;IACN,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdownLinks.d.ts","sourceRoot":"","sources":["../src/markdownLinks.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,oBAAY,YAAY,GAAG;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,oBAAY,kBAAkB,CAAC,CAAC,SAAS,YAAY,IAAI;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,CAAC,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,oBAAY,0BAA0B,CAAC,CAAC,SAAS,YAAY,IAAI;IAC/D,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,CAAC,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3C,CAAC;AAEF,oBAAY,0BAA0B,CAAC,CAAC,SAAS,YAAY,IAAI;IAC/D,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;CAC9C,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,YAAY,EAAE,EAC3D,OAAO,EACP,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,iBAAiB,GAClB,EAAE,0BAA0B,CAAC,CAAC,CAAC,GAAG,0BAA0B,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"markdownLinks.d.ts","sourceRoot":"","sources":["../src/markdownLinks.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,oBAAY,YAAY,GAAG;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,oBAAY,kBAAkB,CAAC,CAAC,SAAS,YAAY,IAAI;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,CAAC,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,oBAAY,0BAA0B,CAAC,CAAC,SAAS,YAAY,IAAI;IAC/D,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,CAAC,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3C,CAAC;AAEF,oBAAY,0BAA0B,CAAC,CAAC,SAAS,YAAY,IAAI;IAC/D,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;CAC9C,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,YAAY,EAAE,EAC3D,OAAO,EACP,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,iBAAiB,GAClB,EAAE,0BAA0B,CAAC,CAAC,CAAC,GAAG,0BAA0B,CAAC,CAAC,CAAC,CA0E/D"}
|
package/lib/markdownLinks.js
CHANGED
|
@@ -21,7 +21,8 @@ function replaceMarkdownLinks({ siteDir, fileString, filePath, contentPaths, sou
|
|
|
21
21
|
if (!fencedBlock) {
|
|
22
22
|
fencedBlock = true;
|
|
23
23
|
[lastCodeFence] = line.trim().match(/^`+/);
|
|
24
|
-
// If we are in a ````-fenced block, all ``` would be plain text instead
|
|
24
|
+
// If we are in a ````-fenced block, all ``` would be plain text instead
|
|
25
|
+
// of fences
|
|
25
26
|
}
|
|
26
27
|
else if (line.trim().match(/^`+/)[0].length >= lastCodeFence.length) {
|
|
27
28
|
fencedBlock = false;
|
|
@@ -32,7 +33,8 @@ function replaceMarkdownLinks({ siteDir, fileString, filePath, contentPaths, sou
|
|
|
32
33
|
}
|
|
33
34
|
let modifiedLine = line;
|
|
34
35
|
// Replace inline-style links or reference-style links e.g:
|
|
35
|
-
// This is [Document 1](doc1.md) -> we replace this doc1.md with correct
|
|
36
|
+
// This is [Document 1](doc1.md) -> we replace this doc1.md with correct
|
|
37
|
+
// ink
|
|
36
38
|
// [doc1]: doc1.md -> we replace this doc1.md with correct link
|
|
37
39
|
const mdRegex = /(?:(?:\]\()|(?:\]:\s?))(?!https?:\/\/|@site\/)([^'")\]\s>]+\.mdx?)/g;
|
|
38
40
|
let mdMatch = mdRegex.exec(modifiedLine);
|
|
@@ -51,7 +53,8 @@ function replaceMarkdownLinks({ siteDir, fileString, filePath, contentPaths, sou
|
|
|
51
53
|
? sourceToPermalink[aliasedSourceMatch]
|
|
52
54
|
: undefined;
|
|
53
55
|
if (permalink) {
|
|
54
|
-
// MDX won't be happy if the permalink contains a space, we need to
|
|
56
|
+
// MDX won't be happy if the permalink contains a space, we need to
|
|
57
|
+
// convert it to %20
|
|
55
58
|
const encodedPermalink = permalink
|
|
56
59
|
.split('/')
|
|
57
60
|
.map((part) => part.replace(/\s/g, '%20'))
|
package/lib/markdownLinks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdownLinks.js","sourceRoot":"","sources":["../src/markdownLinks.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAEH,6DAAwB;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,IAAI,CAAC,WAAW,EAAE;gBAChB,WAAW,GAAG,IAAI,CAAC;gBACnB,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAE,CAAC;gBAC5C,
|
|
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,
|
|
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"}
|
package/lib/markdownParser.js
CHANGED
|
@@ -21,9 +21,7 @@ function parseMarkdownHeadingId(heading) {
|
|
|
21
21
|
id: matches[2],
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
|
-
|
|
25
|
-
return { text: heading, id: undefined };
|
|
26
|
-
}
|
|
24
|
+
return { text: heading, id: undefined };
|
|
27
25
|
}
|
|
28
26
|
exports.parseMarkdownHeadingId = parseMarkdownHeadingId;
|
|
29
27
|
// Hacky way of stripping out import statements from the excerpt
|
|
@@ -53,7 +51,8 @@ function createExcerpt(fileString) {
|
|
|
53
51
|
if (!inCode) {
|
|
54
52
|
inCode = true;
|
|
55
53
|
[lastCodeFence] = fileLine.trim().match(/^`+/);
|
|
56
|
-
// If we are in a ````-fenced block, all ``` would be plain text instead
|
|
54
|
+
// If we are in a ````-fenced block, all ``` would be plain text instead
|
|
55
|
+
// of fences
|
|
57
56
|
}
|
|
58
57
|
else if (fileLine.trim().match(/^`+/)[0].length >= lastCodeFence.length) {
|
|
59
58
|
inCode = false;
|
|
@@ -104,9 +103,11 @@ function parseFrontMatter(markdownFileContent) {
|
|
|
104
103
|
};
|
|
105
104
|
}
|
|
106
105
|
exports.parseFrontMatter = parseFrontMatter;
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
106
|
+
/**
|
|
107
|
+
* Try to convert markdown heading to text. Does not need to be perfect, it is
|
|
108
|
+
* only used as a fallback when frontMatter.title is not provided. For now, we
|
|
109
|
+
* just unwrap possible inline code blocks (# `config.js`)
|
|
110
|
+
*/
|
|
110
111
|
function toTextContentTitle(contentTitle) {
|
|
111
112
|
if (contentTitle.startsWith('`') && contentTitle.endsWith('`')) {
|
|
112
113
|
return contentTitle.substring(1, contentTitle.length - 1);
|
|
@@ -128,15 +129,13 @@ function parseMarkdownContentTitle(contentUntrimmed, options) {
|
|
|
128
129
|
if (!pattern || !title) {
|
|
129
130
|
return { content, contentTitle: undefined };
|
|
130
131
|
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
};
|
|
139
|
-
}
|
|
132
|
+
const newContent = removeContentTitleOption
|
|
133
|
+
? content.replace(pattern, '')
|
|
134
|
+
: content;
|
|
135
|
+
return {
|
|
136
|
+
content: newContent.trim(),
|
|
137
|
+
contentTitle: toTextContentTitle(title.trim()).trim(),
|
|
138
|
+
};
|
|
140
139
|
}
|
|
141
140
|
exports.parseMarkdownContentTitle = parseMarkdownContentTitle;
|
|
142
141
|
function parseMarkdownString(markdownFileContent, options) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdownParser.js","sourceRoot":"","sources":["../src/markdownParser.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAEH,6EAAwC;AACxC,2EAAiC;AAEjC,yCAAyC;AACzC,wDAAwD;AACxD,SAAgB,sBAAsB,CAAC,OAAe;IAIpD,MAAM,oBAAoB,GAAG,yBAAyB,CAAC;IACvD,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnD,IAAI,OAAO,EAAE;QACX,OAAO;YACL,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;YAChB,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;SACf,CAAC;KACH;
|
|
1
|
+
{"version":3,"file":"markdownParser.js","sourceRoot":"","sources":["../src/markdownParser.ts"],"names":[],"mappings":"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"}
|
package/lib/pathUtils.d.ts
CHANGED
|
@@ -17,6 +17,18 @@ export declare const shortName: (str: string) => string;
|
|
|
17
17
|
* Adopted from https://github.com/sindresorhus/slash/blob/main/index.js
|
|
18
18
|
*/
|
|
19
19
|
export declare function posixPath(str: string): string;
|
|
20
|
+
/**
|
|
21
|
+
* When you want to display a path in a message/warning/error, it's more
|
|
22
|
+
* convenient to:
|
|
23
|
+
*
|
|
24
|
+
* - make it relative to `cwd()`
|
|
25
|
+
* - convert to posix (ie not using windows \ path separator)
|
|
26
|
+
*
|
|
27
|
+
* This way, Jest tests can run more reliably on any computer/CI on both
|
|
28
|
+
* Unix/Windows
|
|
29
|
+
* For Windows users this is not perfect (as they see / instead of \) but it's
|
|
30
|
+
* probably good enough
|
|
31
|
+
*/
|
|
20
32
|
export declare function toMessageRelativeFilePath(filePath: string): string;
|
|
21
33
|
/**
|
|
22
34
|
* Alias filepath relative to site directory, very useful so that we
|
|
@@ -27,7 +39,8 @@ export declare function aliasedSitePath(filePath: string, siteDir: string): stri
|
|
|
27
39
|
/**
|
|
28
40
|
* When you have a path like C:\X\Y
|
|
29
41
|
* It is not safe to use directly when generating code
|
|
30
|
-
* For example, this would fail due to unescaped \:
|
|
42
|
+
* For example, this would fail due to unescaped \:
|
|
43
|
+
* `<img src={require('${filePath}')} />`
|
|
31
44
|
* But this would work: `<img src={require('${escapePath(filePath)}')} />`
|
|
32
45
|
*
|
|
33
46
|
* posixPath can't be used in all cases, because forward slashes are only valid
|
package/lib/pathUtils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pathUtils.d.ts","sourceRoot":"","sources":["../src/pathUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"pathUtils.d.ts","sourceRoot":"","sources":["../src/pathUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAgBH,eAAO,MAAM,aAAa,QAAS,MAAM,KAAG,OAIgC,CAAC;AAE7E,eAAO,MAAM,SAAS,QAAS,MAAM,KAAG,MAiBvC,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAY7C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAElE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAKzE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAK9C"}
|
package/lib/pathUtils.js
CHANGED
|
@@ -10,7 +10,8 @@ exports.escapePath = exports.aliasedSitePath = exports.toMessageRelativeFilePath
|
|
|
10
10
|
const tslib_1 = require("tslib");
|
|
11
11
|
// Based on https://github.com/gatsbyjs/gatsby/pull/21518/files
|
|
12
12
|
const path_1 = (0, tslib_1.__importDefault)(require("path"));
|
|
13
|
-
// MacOS (APFS) and Windows (NTFS) filename length limit = 255 chars,
|
|
13
|
+
// MacOS (APFS) and Windows (NTFS) filename length limit = 255 chars,
|
|
14
|
+
// Others = 255 bytes
|
|
14
15
|
const MAX_PATH_SEGMENT_CHARS = 255;
|
|
15
16
|
const MAX_PATH_SEGMENT_BYTES = 255;
|
|
16
17
|
// Space for appending things to the string like file extensions and so on
|
|
@@ -18,7 +19,7 @@ const SPACE_FOR_APPENDING = 10;
|
|
|
18
19
|
const isMacOs = () => process.platform === 'darwin';
|
|
19
20
|
const isWindows = () => process.platform === 'win32';
|
|
20
21
|
const isNameTooLong = (str) =>
|
|
21
|
-
//
|
|
22
|
+
// Not entirely correct: we can't assume FS from OS. But good enough?
|
|
22
23
|
isMacOs() || isWindows()
|
|
23
24
|
? str.length + SPACE_FOR_APPENDING > MAX_PATH_SEGMENT_CHARS // MacOS (APFS) and Windows (NTFS) filename length limit (255 chars)
|
|
24
25
|
: Buffer.from(str).length + SPACE_FOR_APPENDING > MAX_PATH_SEGMENT_BYTES; // Other (255 bytes)
|
|
@@ -47,7 +48,8 @@ exports.shortName = shortName;
|
|
|
47
48
|
*/
|
|
48
49
|
function posixPath(str) {
|
|
49
50
|
const isExtendedLengthPath = /^\\\\\?\\/.test(str);
|
|
50
|
-
// Forward slashes are only valid Windows paths when they don't contain non-
|
|
51
|
+
// Forward slashes are only valid Windows paths when they don't contain non-
|
|
52
|
+
// ascii characters.
|
|
51
53
|
// eslint-disable-next-line no-control-regex
|
|
52
54
|
const hasNonAscii = /[^\u0000-\u0080]+/.test(str);
|
|
53
55
|
if (isExtendedLengthPath || hasNonAscii) {
|
|
@@ -56,13 +58,18 @@ function posixPath(str) {
|
|
|
56
58
|
return str.replace(/\\/g, '/');
|
|
57
59
|
}
|
|
58
60
|
exports.posixPath = posixPath;
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
61
|
+
/**
|
|
62
|
+
* When you want to display a path in a message/warning/error, it's more
|
|
63
|
+
* convenient to:
|
|
64
|
+
*
|
|
65
|
+
* - make it relative to `cwd()`
|
|
66
|
+
* - convert to posix (ie not using windows \ path separator)
|
|
67
|
+
*
|
|
68
|
+
* This way, Jest tests can run more reliably on any computer/CI on both
|
|
69
|
+
* Unix/Windows
|
|
70
|
+
* For Windows users this is not perfect (as they see / instead of \) but it's
|
|
71
|
+
* probably good enough
|
|
72
|
+
*/
|
|
66
73
|
function toMessageRelativeFilePath(filePath) {
|
|
67
74
|
return posixPath(path_1.default.relative(process.cwd(), filePath));
|
|
68
75
|
}
|
|
@@ -82,7 +89,8 @@ exports.aliasedSitePath = aliasedSitePath;
|
|
|
82
89
|
/**
|
|
83
90
|
* When you have a path like C:\X\Y
|
|
84
91
|
* It is not safe to use directly when generating code
|
|
85
|
-
* For example, this would fail due to unescaped \:
|
|
92
|
+
* For example, this would fail due to unescaped \:
|
|
93
|
+
* `<img src={require('${filePath}')} />`
|
|
86
94
|
* But this would work: `<img src={require('${escapePath(filePath)}')} />`
|
|
87
95
|
*
|
|
88
96
|
* posixPath can't be used in all cases, because forward slashes are only valid
|
package/lib/pathUtils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pathUtils.js","sourceRoot":"","sources":["../src/pathUtils.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAEH,+DAA+D;AAE/D,6DAAwB;AAExB,
|
|
1
|
+
{"version":3,"file":"pathUtils.js","sourceRoot":"","sources":["../src/pathUtils.ts"],"names":[],"mappings":"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"}
|
package/lib/tags.d.ts
CHANGED
|
@@ -15,5 +15,13 @@ export declare type TaggedItemGroup<Item> = {
|
|
|
15
15
|
tag: Tag;
|
|
16
16
|
items: Item[];
|
|
17
17
|
};
|
|
18
|
+
/**
|
|
19
|
+
* Permits to group docs/blogPosts by tag (provided by front matter)
|
|
20
|
+
* Note: groups are indexed by permalink, because routes must be unique in the
|
|
21
|
+
* end. Labels may vary on 2 md files but they are normalized. Docs with
|
|
22
|
+
* label='some label' and label='some-label' should end-up in the same
|
|
23
|
+
* group/page in the end. We can't create 2 routes /some-label because one would
|
|
24
|
+
* override the other
|
|
25
|
+
*/
|
|
18
26
|
export declare function groupTaggedItems<Item>(items: Item[], getItemTags: (item: Item) => Tag[]): Record<string, TaggedItemGroup<Item>>;
|
|
19
27
|
//# sourceMappingURL=tags.d.ts.map
|
package/lib/tags.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../src/tags.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,oBAAY,GAAG,GAAG;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,oBAAY,cAAc,GAAG,MAAM,GAAG,GAAG,CAAC;AAE1C,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,cAAc,GAC7B,GAAG,CAyBL;AAED,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,EAChB,eAAe,GAAE,cAAc,EAAE,GAAG,SAAc,GACjD,GAAG,EAAE,CAMP;AAED,oBAAY,eAAe,CAAC,IAAI,IAAI;IAClC,GAAG,EAAE,GAAG,CAAC;IACT,KAAK,EAAE,IAAI,EAAE,CAAC;CACf,CAAC;
|
|
1
|
+
{"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../src/tags.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,oBAAY,GAAG,GAAG;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,oBAAY,cAAc,GAAG,MAAM,GAAG,GAAG,CAAC;AAE1C,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,cAAc,GAC7B,GAAG,CAyBL;AAED,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,EAChB,eAAe,GAAE,cAAc,EAAE,GAAG,SAAc,GACjD,GAAG,EAAE,CAMP;AAED,oBAAY,eAAe,CAAC,IAAI,IAAI;IAClC,GAAG,EAAE,GAAG,CAAC;IACT,KAAK,EAAE,IAAI,EAAE,CAAC;CACf,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EACnC,KAAK,EAAE,IAAI,EAAE,EACb,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,GAAG,EAAE,GACjC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CA8BvC"}
|
package/lib/tags.js
CHANGED
|
@@ -18,9 +18,9 @@ function normalizeFrontMatterTag(tagsPath, frontMatterTag) {
|
|
|
18
18
|
}
|
|
19
19
|
// TODO maybe make ensure the permalink is valid url path?
|
|
20
20
|
function normalizeTagPermalink(permalink) {
|
|
21
|
-
// note: we always apply tagsPath on purpose
|
|
22
|
-
//
|
|
23
|
-
// tagsPath is different for each doc version
|
|
21
|
+
// note: we always apply tagsPath on purpose. For versioned docs, v1/doc.md
|
|
22
|
+
// and v2/doc.md tags with custom permalinks don't lead to the same created
|
|
23
|
+
// page. tagsPath is different for each doc version
|
|
24
24
|
return (0, urlUtils_1.normalizeUrl)([tagsPath, permalink]);
|
|
25
25
|
}
|
|
26
26
|
const tag = typeof frontMatterTag === 'string'
|
|
@@ -37,17 +37,21 @@ function normalizeFrontMatterTags(tagsPath, frontMatterTags = []) {
|
|
|
37
37
|
return (0, lodash_1.uniqBy)(tags, (tag) => tag.permalink);
|
|
38
38
|
}
|
|
39
39
|
exports.normalizeFrontMatterTags = normalizeFrontMatterTags;
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
40
|
+
/**
|
|
41
|
+
* Permits to group docs/blogPosts by tag (provided by front matter)
|
|
42
|
+
* Note: groups are indexed by permalink, because routes must be unique in the
|
|
43
|
+
* end. Labels may vary on 2 md files but they are normalized. Docs with
|
|
44
|
+
* label='some label' and label='some-label' should end-up in the same
|
|
45
|
+
* group/page in the end. We can't create 2 routes /some-label because one would
|
|
46
|
+
* override the other
|
|
47
|
+
*/
|
|
45
48
|
function groupTaggedItems(items, getItemTags) {
|
|
46
49
|
const result = {};
|
|
47
50
|
function handleItemTag(item, tag) {
|
|
48
51
|
var _a;
|
|
49
52
|
// Init missing tag groups
|
|
50
|
-
// TODO: it's not really clear what should be the behavior if 2 items have
|
|
53
|
+
// TODO: it's not really clear what should be the behavior if 2 items have
|
|
54
|
+
// the same tag but the permalink is different for each
|
|
51
55
|
// For now, the first tag found wins
|
|
52
56
|
result[tag.permalink] = (_a = result[tag.permalink]) !== null && _a !== void 0 ? _a : {
|
|
53
57
|
tag,
|
package/lib/tags.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tags.js","sourceRoot":"","sources":["../src/tags.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,mCAA+C;AAC/C,yCAAwC;AASxC,SAAgB,uBAAuB,CACrC,QAAgB,EAChB,cAA8B;IAE9B,SAAS,WAAW,CAAC,SAAiB;QACpC,OAAO;YACL,KAAK,EAAE,SAAS;YAChB,SAAS,EAAE,IAAA,kBAAS,EAAC,SAAS,CAAC;SAChC,CAAC;IACJ,CAAC;IAED,0DAA0D;IAC1D,SAAS,qBAAqB,CAAC,SAAiB;QAC9C,
|
|
1
|
+
{"version":3,"file":"tags.js","sourceRoot":"","sources":["../src/tags.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,mCAA+C;AAC/C,yCAAwC;AASxC,SAAgB,uBAAuB,CACrC,QAAgB,EAChB,cAA8B;IAE9B,SAAS,WAAW,CAAC,SAAiB;QACpC,OAAO;YACL,KAAK,EAAE,SAAS;YAChB,SAAS,EAAE,IAAA,kBAAS,EAAC,SAAS,CAAC;SAChC,CAAC;IACJ,CAAC;IAED,0DAA0D;IAC1D,SAAS,qBAAqB,CAAC,SAAiB;QAC9C,2EAA2E;QAC3E,2EAA2E;QAC3E,mDAAmD;QACnD,OAAO,IAAA,uBAAY,EAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,GAAG,GACP,OAAO,cAAc,KAAK,QAAQ;QAChC,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC;QAC7B,CAAC,CAAC,cAAc,CAAC;IAErB,OAAO;QACL,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,SAAS,EAAE,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC;KAChD,CAAC;AACJ,CAAC;AA5BD,0DA4BC;AAED,SAAgB,wBAAwB,CACtC,QAAgB,EAChB,kBAAgD,EAAE;IAElD,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACvC,uBAAuB,CAAC,QAAQ,EAAE,GAAG,CAAC,CACvC,CAAC;IAEF,OAAO,IAAA,eAAM,EAAC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC9C,CAAC;AATD,4DASC;AAOD;;;;;;;GAOG;AACH,SAAgB,gBAAgB,CAC9B,KAAa,EACb,WAAkC;IAElC,MAAM,MAAM,GAA0C,EAAE,CAAC;IAEzD,SAAS,aAAa,CAAC,IAAU,EAAE,GAAQ;;QACzC,0BAA0B;QAC1B,0EAA0E;QAC1E,uDAAuD;QACvD,oCAAoC;QACpC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,MAAA,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,mCAAI;YAC/C,GAAG;YACH,KAAK,EAAE,EAAE;SACV,CAAC;QAEF,oBAAoB;QACpB,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACrB,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAChC,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,mEAAmE;IACnE,wDAAwD;IACxD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACtC,KAAK,CAAC,KAAK,GAAG,IAAA,aAAI,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAjCD,4CAiCC"}
|
package/lib/urlUtils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"urlUtils.d.ts","sourceRoot":"","sources":["../src/urlUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"urlUtils.d.ts","sourceRoot":"","sources":["../src/urlUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CA8EtD;AAED,wBAAgB,UAAU,CACxB,gBAAgB,EAAE,MAAM,EACxB,OAAO,CAAC,EAAE,MAAM,GACf,MAAM,GAAG,SAAS,CAKpB"}
|
package/lib/urlUtils.js
CHANGED
|
@@ -16,7 +16,8 @@ function normalizeUrl(rawUrls) {
|
|
|
16
16
|
if (urls[0].match(/^[^/:]+:\/*$/) && urls.length > 1) {
|
|
17
17
|
const first = urls.shift();
|
|
18
18
|
if (first.startsWith('file:') && urls[0].startsWith('/')) {
|
|
19
|
-
// Force a double slash here, else we lose the information that the next
|
|
19
|
+
// Force a double slash here, else we lose the information that the next
|
|
20
|
+
// segment is an absolute path
|
|
20
21
|
urls[0] = `${first}//${urls[0]}`;
|
|
21
22
|
}
|
|
22
23
|
else {
|
|
@@ -43,12 +44,13 @@ function normalizeUrl(rawUrls) {
|
|
|
43
44
|
if (i > 0) {
|
|
44
45
|
// Removing the starting slashes for each component but the first.
|
|
45
46
|
component = component.replace(/^[/]+/,
|
|
46
|
-
// Special case where the first element of rawUrls is empty
|
|
47
|
+
// Special case where the first element of rawUrls is empty
|
|
48
|
+
// ["", "/hello"] => /hello
|
|
47
49
|
component[0] === '/' && !hasStartingSlash ? '/' : '');
|
|
48
50
|
}
|
|
49
51
|
hasEndingSlash = component[component.length - 1] === '/';
|
|
50
|
-
// Removing the ending slashes for each component but the last.
|
|
51
|
-
//
|
|
52
|
+
// Removing the ending slashes for each component but the last. For the
|
|
53
|
+
// last component we will combine multiple slashes to a single one.
|
|
52
54
|
component = component.replace(/[/]+$/, i < urls.length - 1 ? '' : '/');
|
|
53
55
|
}
|
|
54
56
|
hasStartingSlash = true;
|
package/lib/urlUtils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"urlUtils.js","sourceRoot":"","sources":["../src/urlUtils.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,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,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,EAAE,CAAC;QAC3B,IAAI,KAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YACzD,
|
|
1
|
+
{"version":3,"file":"urlUtils.js","sourceRoot":"","sources":["../src/urlUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webpackUtils.d.ts","sourceRoot":"","sources":["../src/webpackUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,SAAS,CAAC;AAQzC,aAAK,WAAW,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE3D,aAAK,eAAe,GAAG;IACrB,OAAO,EAAE;QACP,IAAI,EAAE,CAAC,OAAO,EAAE;YAAC,MAAM,EAAE,WAAW,CAAA;SAAC,KAAK,WAAW,CAAC;QACtD,GAAG,EAAE,CAAC,OAAO,EAAE;YAAC,MAAM,EAAE,WAAW,CAAA;SAAC,KAAK,WAAW,CAAC;QACrD,6BAA6B,EAAE,MAAM,CAAC;QACtC,4BAA4B,EAAE,MAAM,CAAC;KACtC,CAAC;IACF,KAAK,EAAE;QACL,MAAM,EAAE,MAAM,WAAW,CAAC;QAC1B,KAAK,EAAE,MAAM,WAAW,CAAC;QACzB,KAAK,EAAE,MAAM,WAAW,CAAC;QACzB,GAAG,EAAE,MAAM,WAAW,CAAC;QACvB,WAAW,EAAE,MAAM,WAAW,CAAC;KAChC,CAAC;CACH,CAAC;AAGF,wBAAgB,kBAAkB,IAAI,eAAe,
|
|
1
|
+
{"version":3,"file":"webpackUtils.d.ts","sourceRoot":"","sources":["../src/webpackUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,SAAS,CAAC;AAQzC,aAAK,WAAW,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE3D,aAAK,eAAe,GAAG;IACrB,OAAO,EAAE;QACP,IAAI,EAAE,CAAC,OAAO,EAAE;YAAC,MAAM,EAAE,WAAW,CAAA;SAAC,KAAK,WAAW,CAAC;QACtD,GAAG,EAAE,CAAC,OAAO,EAAE;YAAC,MAAM,EAAE,WAAW,CAAA;SAAC,KAAK,WAAW,CAAC;QACrD,6BAA6B,EAAE,MAAM,CAAC;QACtC,4BAA4B,EAAE,MAAM,CAAC;KACtC,CAAC;IACF,KAAK,EAAE;QACL,MAAM,EAAE,MAAM,WAAW,CAAC;QAC1B,KAAK,EAAE,MAAM,WAAW,CAAC;QACzB,KAAK,EAAE,MAAM,WAAW,CAAC;QACzB,GAAG,EAAE,MAAM,WAAW,CAAC;QACvB,WAAW,EAAE,MAAM,WAAW,CAAC;KAChC,CAAC;CACH,CAAC;AAGF,wBAAgB,kBAAkB,IAAI,eAAe,CA8GpD"}
|
package/lib/webpackUtils.js
CHANGED
|
@@ -13,7 +13,8 @@ const pathUtils_1 = require("./pathUtils");
|
|
|
13
13
|
const constants_1 = require("./constants");
|
|
14
14
|
// Inspired by https://github.com/gatsbyjs/gatsby/blob/8e6e021014da310b9cc7d02e58c9b3efe938c665/packages/gatsby/src/utils/webpack-utils.ts#L447
|
|
15
15
|
function getFileLoaderUtils() {
|
|
16
|
-
// files/images < urlLoaderLimit will be inlined as base64 strings directly in
|
|
16
|
+
// files/images < urlLoaderLimit will be inlined as base64 strings directly in
|
|
17
|
+
// the html
|
|
17
18
|
const urlLoaderLimit = constants_1.WEBPACK_URL_LOADER_LIMIT;
|
|
18
19
|
// defines the path/pattern of the assets handled by webpack
|
|
19
20
|
const fileLoaderFileName = (folder) => `${constants_1.OUTPUT_STATIC_ASSETS_DIR_NAME}/${folder}/[name]-[hash].[ext]`;
|
|
@@ -32,7 +33,7 @@ function getFileLoaderUtils() {
|
|
|
32
33
|
fallback: require.resolve('file-loader'),
|
|
33
34
|
},
|
|
34
35
|
}),
|
|
35
|
-
// TODO
|
|
36
|
+
// TODO avoid conflicts with the ideal-image plugin
|
|
36
37
|
// TODO this may require a little breaking change for ideal-image users?
|
|
37
38
|
// Maybe with the ideal image plugin, all md images should be "ideal"?
|
|
38
39
|
// This is used to force url-loader+file-loader on markdown images
|
package/lib/webpackUtils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webpackUtils.js","sourceRoot":"","sources":["../src/webpackUtils.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAGH,6DAAwB;AACxB,2CAAuC;AACvC,2CAGqB;AAoBrB,+IAA+I;AAC/I,SAAgB,kBAAkB;IAChC,
|
|
1
|
+
{"version":3,"file":"webpackUtils.js","sourceRoot":"","sources":["../src/webpackUtils.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-4524",
|
|
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-4524",
|
|
22
22
|
"@mdx-js/runtime": "^1.6.22",
|
|
23
23
|
"@svgr/webpack": "^6.0.0",
|
|
24
24
|
"file-loader": "^6.2.0",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"node": ">=14"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@docusaurus/types": "0.0.0-
|
|
42
|
+
"@docusaurus/types": "0.0.0-4524",
|
|
43
43
|
"@types/dedent": "^0.7.0",
|
|
44
44
|
"@types/github-slugger": "^1.3.0",
|
|
45
45
|
"@types/micromatch": "^4.0.2",
|
|
@@ -53,5 +53,5 @@
|
|
|
53
53
|
"react-dom": "*",
|
|
54
54
|
"webpack": "^5.0.0"
|
|
55
55
|
},
|
|
56
|
-
"gitHead": "
|
|
56
|
+
"gitHead": "41a6bff3a67446f7d2a2972cbe4d05fec7378a15"
|
|
57
57
|
}
|
package/src/index.ts
CHANGED
|
@@ -200,7 +200,8 @@ export function getPluginI18nPath({
|
|
|
200
200
|
return path.join(
|
|
201
201
|
siteDir,
|
|
202
202
|
'i18n',
|
|
203
|
-
// namespace first by locale: convenient to work in a single folder for a
|
|
203
|
+
// namespace first by locale: convenient to work in a single folder for a
|
|
204
|
+
// translator
|
|
204
205
|
locale,
|
|
205
206
|
// Make it convenient to use for single-instance
|
|
206
207
|
// ie: return "docs", not "docs-default" nor "docs/default"
|
|
@@ -212,7 +213,8 @@ export function getPluginI18nPath({
|
|
|
212
213
|
/**
|
|
213
214
|
* @param permalink The URL that the HTML file corresponds to, without base URL
|
|
214
215
|
* @param outDir Full path to the output directory
|
|
215
|
-
* @param trailingSlash The site config option. If provided, only one path will
|
|
216
|
+
* @param trailingSlash The site config option. If provided, only one path will
|
|
217
|
+
* be read.
|
|
216
218
|
* @returns This returns a buffer, which you have to decode string yourself if
|
|
217
219
|
* needed. (Not always necessary since the output isn't for human consumption
|
|
218
220
|
* anyways, and most HTML manipulation libs accept buffers)
|
|
@@ -231,18 +233,17 @@ export async function readOutputHTMLFile(
|
|
|
231
233
|
return fs.readFile(withTrailingSlashPath);
|
|
232
234
|
} else if (trailingSlash === false) {
|
|
233
235
|
return fs.readFile(withoutTrailingSlashPath);
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
236
|
+
}
|
|
237
|
+
const HTMLPath = await findAsyncSequential(
|
|
238
|
+
[withTrailingSlashPath, withoutTrailingSlashPath],
|
|
239
|
+
fs.pathExists,
|
|
240
|
+
);
|
|
241
|
+
if (!HTMLPath) {
|
|
242
|
+
throw new Error(
|
|
243
|
+
`Expected output HTML file to be found at ${withTrailingSlashPath}`,
|
|
238
244
|
);
|
|
239
|
-
if (!HTMLPath) {
|
|
240
|
-
throw new Error(
|
|
241
|
-
`Expected output HTML file to be found at ${withTrailingSlashPath}`,
|
|
242
|
-
);
|
|
243
|
-
}
|
|
244
|
-
return fs.readFile(HTMLPath);
|
|
245
245
|
}
|
|
246
|
+
return fs.readFile(HTMLPath);
|
|
246
247
|
}
|
|
247
248
|
|
|
248
249
|
export async function mapAsyncSequential<T, R>(
|
package/src/markdownLinks.ts
CHANGED
|
@@ -51,7 +51,8 @@ export function replaceMarkdownLinks<T extends ContentPaths>({
|
|
|
51
51
|
if (!fencedBlock) {
|
|
52
52
|
fencedBlock = true;
|
|
53
53
|
[lastCodeFence] = line.trim().match(/^`+/)!;
|
|
54
|
-
// If we are in a ````-fenced block, all ``` would be plain text instead
|
|
54
|
+
// If we are in a ````-fenced block, all ``` would be plain text instead
|
|
55
|
+
// of fences
|
|
55
56
|
} else if (line.trim().match(/^`+/)![0].length >= lastCodeFence.length) {
|
|
56
57
|
fencedBlock = false;
|
|
57
58
|
}
|
|
@@ -62,7 +63,8 @@ export function replaceMarkdownLinks<T extends ContentPaths>({
|
|
|
62
63
|
|
|
63
64
|
let modifiedLine = line;
|
|
64
65
|
// Replace inline-style links or reference-style links e.g:
|
|
65
|
-
// This is [Document 1](doc1.md) -> we replace this doc1.md with correct
|
|
66
|
+
// This is [Document 1](doc1.md) -> we replace this doc1.md with correct
|
|
67
|
+
// ink
|
|
66
68
|
// [doc1]: doc1.md -> we replace this doc1.md with correct link
|
|
67
69
|
const mdRegex =
|
|
68
70
|
/(?:(?:\]\()|(?:\]:\s?))(?!https?:\/\/|@site\/)([^'")\]\s>]+\.mdx?)/g;
|
|
@@ -86,7 +88,8 @@ export function replaceMarkdownLinks<T extends ContentPaths>({
|
|
|
86
88
|
: undefined;
|
|
87
89
|
|
|
88
90
|
if (permalink) {
|
|
89
|
-
// MDX won't be happy if the permalink contains a space, we need to
|
|
91
|
+
// MDX won't be happy if the permalink contains a space, we need to
|
|
92
|
+
// convert it to %20
|
|
90
93
|
const encodedPermalink = permalink
|
|
91
94
|
.split('/')
|
|
92
95
|
.map((part) => part.replace(/\s/g, '%20'))
|
package/src/markdownParser.ts
CHANGED
|
@@ -21,9 +21,8 @@ export function parseMarkdownHeadingId(heading: string): {
|
|
|
21
21
|
text: matches[1],
|
|
22
22
|
id: matches[2],
|
|
23
23
|
};
|
|
24
|
-
} else {
|
|
25
|
-
return {text: heading, id: undefined};
|
|
26
24
|
}
|
|
25
|
+
return {text: heading, id: undefined};
|
|
27
26
|
}
|
|
28
27
|
|
|
29
28
|
// Hacky way of stripping out import statements from the excerpt
|
|
@@ -56,7 +55,8 @@ export function createExcerpt(fileString: string): string | undefined {
|
|
|
56
55
|
if (!inCode) {
|
|
57
56
|
inCode = true;
|
|
58
57
|
[lastCodeFence] = fileLine.trim().match(/^`+/)!;
|
|
59
|
-
// If we are in a ````-fenced block, all ``` would be plain text instead
|
|
58
|
+
// If we are in a ````-fenced block, all ``` would be plain text instead
|
|
59
|
+
// of fences
|
|
60
60
|
} else if (
|
|
61
61
|
fileLine.trim().match(/^`+/)![0].length >= lastCodeFence.length
|
|
62
62
|
) {
|
|
@@ -113,9 +113,11 @@ export function parseFrontMatter(markdownFileContent: string): {
|
|
|
113
113
|
};
|
|
114
114
|
}
|
|
115
115
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
116
|
+
/**
|
|
117
|
+
* Try to convert markdown heading to text. Does not need to be perfect, it is
|
|
118
|
+
* only used as a fallback when frontMatter.title is not provided. For now, we
|
|
119
|
+
* just unwrap possible inline code blocks (# `config.js`)
|
|
120
|
+
*/
|
|
119
121
|
function toTextContentTitle(contentTitle: string): string {
|
|
120
122
|
if (contentTitle.startsWith('`') && contentTitle.endsWith('`')) {
|
|
121
123
|
return contentTitle.substring(1, contentTitle.length - 1);
|
|
@@ -152,15 +154,14 @@ export function parseMarkdownContentTitle(
|
|
|
152
154
|
|
|
153
155
|
if (!pattern || !title) {
|
|
154
156
|
return {content, contentTitle: undefined};
|
|
155
|
-
} else {
|
|
156
|
-
const newContent = removeContentTitleOption
|
|
157
|
-
? content.replace(pattern, '')
|
|
158
|
-
: content;
|
|
159
|
-
return {
|
|
160
|
-
content: newContent.trim(),
|
|
161
|
-
contentTitle: toTextContentTitle(title.trim()).trim(),
|
|
162
|
-
};
|
|
163
157
|
}
|
|
158
|
+
const newContent = removeContentTitleOption
|
|
159
|
+
? content.replace(pattern, '')
|
|
160
|
+
: content;
|
|
161
|
+
return {
|
|
162
|
+
content: newContent.trim(),
|
|
163
|
+
contentTitle: toTextContentTitle(title.trim()).trim(),
|
|
164
|
+
};
|
|
164
165
|
}
|
|
165
166
|
|
|
166
167
|
type ParsedMarkdown = {
|
package/src/pathUtils.ts
CHANGED
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
|
|
10
10
|
import path from 'path';
|
|
11
11
|
|
|
12
|
-
// MacOS (APFS) and Windows (NTFS) filename length limit = 255 chars,
|
|
12
|
+
// MacOS (APFS) and Windows (NTFS) filename length limit = 255 chars,
|
|
13
|
+
// Others = 255 bytes
|
|
13
14
|
const MAX_PATH_SEGMENT_CHARS = 255;
|
|
14
15
|
const MAX_PATH_SEGMENT_BYTES = 255;
|
|
15
16
|
// Space for appending things to the string like file extensions and so on
|
|
@@ -19,7 +20,7 @@ const isMacOs = () => process.platform === 'darwin';
|
|
|
19
20
|
const isWindows = () => process.platform === 'win32';
|
|
20
21
|
|
|
21
22
|
export const isNameTooLong = (str: string): boolean =>
|
|
22
|
-
//
|
|
23
|
+
// Not entirely correct: we can't assume FS from OS. But good enough?
|
|
23
24
|
isMacOs() || isWindows()
|
|
24
25
|
? str.length + SPACE_FOR_APPENDING > MAX_PATH_SEGMENT_CHARS // MacOS (APFS) and Windows (NTFS) filename length limit (255 chars)
|
|
25
26
|
: Buffer.from(str).length + SPACE_FOR_APPENDING > MAX_PATH_SEGMENT_BYTES; // Other (255 bytes)
|
|
@@ -56,7 +57,8 @@ export const shortName = (str: string): string => {
|
|
|
56
57
|
export function posixPath(str: string): string {
|
|
57
58
|
const isExtendedLengthPath = /^\\\\\?\\/.test(str);
|
|
58
59
|
|
|
59
|
-
// Forward slashes are only valid Windows paths when they don't contain non-
|
|
60
|
+
// Forward slashes are only valid Windows paths when they don't contain non-
|
|
61
|
+
// ascii characters.
|
|
60
62
|
// eslint-disable-next-line no-control-regex
|
|
61
63
|
const hasNonAscii = /[^\u0000-\u0080]+/.test(str);
|
|
62
64
|
|
|
@@ -66,13 +68,18 @@ export function posixPath(str: string): string {
|
|
|
66
68
|
return str.replace(/\\/g, '/');
|
|
67
69
|
}
|
|
68
70
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
71
|
+
/**
|
|
72
|
+
* When you want to display a path in a message/warning/error, it's more
|
|
73
|
+
* convenient to:
|
|
74
|
+
*
|
|
75
|
+
* - make it relative to `cwd()`
|
|
76
|
+
* - convert to posix (ie not using windows \ path separator)
|
|
77
|
+
*
|
|
78
|
+
* This way, Jest tests can run more reliably on any computer/CI on both
|
|
79
|
+
* Unix/Windows
|
|
80
|
+
* For Windows users this is not perfect (as they see / instead of \) but it's
|
|
81
|
+
* probably good enough
|
|
82
|
+
*/
|
|
76
83
|
export function toMessageRelativeFilePath(filePath: string): string {
|
|
77
84
|
return posixPath(path.relative(process.cwd(), filePath));
|
|
78
85
|
}
|
|
@@ -92,7 +99,8 @@ export function aliasedSitePath(filePath: string, siteDir: string): string {
|
|
|
92
99
|
/**
|
|
93
100
|
* When you have a path like C:\X\Y
|
|
94
101
|
* It is not safe to use directly when generating code
|
|
95
|
-
* For example, this would fail due to unescaped \:
|
|
102
|
+
* For example, this would fail due to unescaped \:
|
|
103
|
+
* `<img src={require('${filePath}')} />`
|
|
96
104
|
* But this would work: `<img src={require('${escapePath(filePath)}')} />`
|
|
97
105
|
*
|
|
98
106
|
* posixPath can't be used in all cases, because forward slashes are only valid
|
package/src/tags.ts
CHANGED
|
@@ -28,9 +28,9 @@ export function normalizeFrontMatterTag(
|
|
|
28
28
|
|
|
29
29
|
// TODO maybe make ensure the permalink is valid url path?
|
|
30
30
|
function normalizeTagPermalink(permalink: string): string {
|
|
31
|
-
// note: we always apply tagsPath on purpose
|
|
32
|
-
//
|
|
33
|
-
// tagsPath is different for each doc version
|
|
31
|
+
// note: we always apply tagsPath on purpose. For versioned docs, v1/doc.md
|
|
32
|
+
// and v2/doc.md tags with custom permalinks don't lead to the same created
|
|
33
|
+
// page. tagsPath is different for each doc version
|
|
34
34
|
return normalizeUrl([tagsPath, permalink]);
|
|
35
35
|
}
|
|
36
36
|
|
|
@@ -61,11 +61,14 @@ export type TaggedItemGroup<Item> = {
|
|
|
61
61
|
items: Item[];
|
|
62
62
|
};
|
|
63
63
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
64
|
+
/**
|
|
65
|
+
* Permits to group docs/blogPosts by tag (provided by front matter)
|
|
66
|
+
* Note: groups are indexed by permalink, because routes must be unique in the
|
|
67
|
+
* end. Labels may vary on 2 md files but they are normalized. Docs with
|
|
68
|
+
* label='some label' and label='some-label' should end-up in the same
|
|
69
|
+
* group/page in the end. We can't create 2 routes /some-label because one would
|
|
70
|
+
* override the other
|
|
71
|
+
*/
|
|
69
72
|
export function groupTaggedItems<Item>(
|
|
70
73
|
items: Item[],
|
|
71
74
|
getItemTags: (item: Item) => Tag[],
|
|
@@ -74,7 +77,8 @@ export function groupTaggedItems<Item>(
|
|
|
74
77
|
|
|
75
78
|
function handleItemTag(item: Item, tag: Tag) {
|
|
76
79
|
// Init missing tag groups
|
|
77
|
-
// TODO: it's not really clear what should be the behavior if 2 items have
|
|
80
|
+
// TODO: it's not really clear what should be the behavior if 2 items have
|
|
81
|
+
// the same tag but the permalink is different for each
|
|
78
82
|
// For now, the first tag found wins
|
|
79
83
|
result[tag.permalink] = result[tag.permalink] ?? {
|
|
80
84
|
tag,
|
package/src/urlUtils.ts
CHANGED
|
@@ -16,7 +16,8 @@ export function normalizeUrl(rawUrls: string[]): string {
|
|
|
16
16
|
if (urls[0].match(/^[^/:]+:\/*$/) && urls.length > 1) {
|
|
17
17
|
const first = urls.shift();
|
|
18
18
|
if (first!.startsWith('file:') && urls[0].startsWith('/')) {
|
|
19
|
-
// Force a double slash here, else we lose the information that the next
|
|
19
|
+
// Force a double slash here, else we lose the information that the next
|
|
20
|
+
// segment is an absolute path
|
|
20
21
|
urls[0] = `${first}//${urls[0]}`;
|
|
21
22
|
} else {
|
|
22
23
|
urls[0] = first + urls[0];
|
|
@@ -48,14 +49,15 @@ export function normalizeUrl(rawUrls: string[]): string {
|
|
|
48
49
|
// Removing the starting slashes for each component but the first.
|
|
49
50
|
component = component.replace(
|
|
50
51
|
/^[/]+/,
|
|
51
|
-
// Special case where the first element of rawUrls is empty
|
|
52
|
+
// Special case where the first element of rawUrls is empty
|
|
53
|
+
// ["", "/hello"] => /hello
|
|
52
54
|
component[0] === '/' && !hasStartingSlash ? '/' : '',
|
|
53
55
|
);
|
|
54
56
|
}
|
|
55
57
|
|
|
56
58
|
hasEndingSlash = component[component.length - 1] === '/';
|
|
57
|
-
// Removing the ending slashes for each component but the last.
|
|
58
|
-
//
|
|
59
|
+
// Removing the ending slashes for each component but the last. For the
|
|
60
|
+
// last component we will combine multiple slashes to a single one.
|
|
59
61
|
component = component.replace(/[/]+$/, i < urls.length - 1 ? '' : '/');
|
|
60
62
|
}
|
|
61
63
|
|
package/src/webpackUtils.ts
CHANGED
|
@@ -33,7 +33,8 @@ type FileLoaderUtils = {
|
|
|
33
33
|
|
|
34
34
|
// Inspired by https://github.com/gatsbyjs/gatsby/blob/8e6e021014da310b9cc7d02e58c9b3efe938c665/packages/gatsby/src/utils/webpack-utils.ts#L447
|
|
35
35
|
export function getFileLoaderUtils(): FileLoaderUtils {
|
|
36
|
-
// files/images < urlLoaderLimit will be inlined as base64 strings directly in
|
|
36
|
+
// files/images < urlLoaderLimit will be inlined as base64 strings directly in
|
|
37
|
+
// the html
|
|
37
38
|
const urlLoaderLimit = WEBPACK_URL_LOADER_LIMIT;
|
|
38
39
|
|
|
39
40
|
// defines the path/pattern of the assets handled by webpack
|
|
@@ -56,7 +57,7 @@ export function getFileLoaderUtils(): FileLoaderUtils {
|
|
|
56
57
|
},
|
|
57
58
|
}),
|
|
58
59
|
|
|
59
|
-
// TODO
|
|
60
|
+
// TODO avoid conflicts with the ideal-image plugin
|
|
60
61
|
// TODO this may require a little breaking change for ideal-image users?
|
|
61
62
|
// Maybe with the ideal image plugin, all md images should be "ideal"?
|
|
62
63
|
// This is used to force url-loader+file-loader on markdown images
|