@jpmorganchase/mosaic-plugins 0.1.0-beta.6 → 0.1.0-beta.8
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/CHANGELOG.md +35 -0
- package/dist/$AliasPlugin.js +229 -64
- package/dist/$AliasPlugin.js.map +1 -1
- package/dist/$CodeModPlugin.js +118 -36
- package/dist/$CodeModPlugin.js.map +1 -1
- package/dist/$RefPlugin.js +449 -122
- package/dist/$RefPlugin.js.map +1 -1
- package/dist/$TagPlugin.js +236 -77
- package/dist/$TagPlugin.js.map +1 -1
- package/dist/BreadcrumbsPlugin.js +114 -42
- package/dist/BreadcrumbsPlugin.js.map +1 -1
- package/dist/LazyPagePlugin.js +255 -86
- package/dist/LazyPagePlugin.js.map +1 -1
- package/dist/LocalFolderSavePlugin.js +165 -0
- package/dist/LocalFolderSavePlugin.js.map +1 -0
- package/dist/NextPrevPagePlugin.js +157 -47
- package/dist/NextPrevPagePlugin.js.map +1 -1
- package/dist/PagesWithoutFileExtPlugin.js +119 -38
- package/dist/PagesWithoutFileExtPlugin.js.map +1 -1
- package/dist/ReadingTimePlugin.mjs.map +1 -1
- package/dist/SearchIndexPlugin.mjs +268 -0
- package/dist/SearchIndexPlugin.mjs.map +1 -0
- package/dist/SharedConfigPlugin.js +174 -43
- package/dist/SharedConfigPlugin.js.map +1 -1
- package/dist/SidebarPlugin.js +319 -87
- package/dist/SidebarPlugin.js.map +1 -1
- package/dist/SiteMapPlugin.js +90 -38
- package/dist/SiteMapPlugin.js.map +1 -1
- package/dist/TableOfContentsPlugin.mjs +49 -58
- package/dist/TableOfContentsPlugin.mjs.map +1 -1
- package/dist/__tests__/BreadcrumbsPlugin.test.js +160 -0
- package/dist/__tests__/BreadcrumbsPlugin.test.js.map +1 -0
- package/dist/utils/normaliseRefs.js +276 -74
- package/dist/utils/normaliseRefs.js.map +1 -1
- package/package.json +16 -5
|
@@ -1,56 +1,43 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
ignore: ignorePages.map(ignore => `**/${ignore}`),
|
|
23
|
-
cwd: '/'
|
|
24
|
-
}));
|
|
25
|
-
for (const dirName of pageDirs) {
|
|
26
|
-
const pages = (yield mutableFilesystem.promises.glob(createFileGlob('*', pageExtensions), {
|
|
27
|
-
onlyFiles: true,
|
|
28
|
-
cwd: dirName,
|
|
29
|
-
ignore: ignorePages
|
|
30
|
-
})).sort(createSortFn(pageExtensions, { indexFirst, sortBy }));
|
|
31
|
-
for (let i = 0; i < pages.length; i++) {
|
|
32
|
-
if (i > 0) {
|
|
33
|
-
config.setRef(pages[i], ['navigation', 'prev', 'title', '$ref'], `${pages[i - 1]}#/title`);
|
|
34
|
-
config.setRef(pages[i], ['navigation', 'prev', 'fullPath', '$ref'], `${pages[i - 1]}#/route`);
|
|
35
|
-
}
|
|
36
|
-
if (i < pages.length - 1) {
|
|
37
|
-
config.setRef(pages[i], ['navigation', 'next', 'title', '$ref'], `${pages[i + 1]}#/title`);
|
|
38
|
-
config.setRef(pages[i], ['navigation', 'next', 'fullPath', '$ref'], `${pages[i + 1]}#/route`);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
1
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
2
|
+
try {
|
|
3
|
+
var info = gen[key](arg);
|
|
4
|
+
var value = info.value;
|
|
5
|
+
} catch (error) {
|
|
6
|
+
reject(error);
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
if (info.done) {
|
|
10
|
+
resolve(value);
|
|
11
|
+
} else {
|
|
12
|
+
Promise.resolve(value).then(_next, _throw);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
function _asyncToGenerator(fn) {
|
|
16
|
+
return function() {
|
|
17
|
+
var self = this, args = arguments;
|
|
18
|
+
return new Promise(function(resolve, reject) {
|
|
19
|
+
var gen = fn.apply(self, args);
|
|
20
|
+
function _next(value) {
|
|
21
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
41
22
|
}
|
|
23
|
+
function _throw(err) {
|
|
24
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
25
|
+
}
|
|
26
|
+
_next(undefined);
|
|
42
27
|
});
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
import regeneratorRuntime from "regenerator-runtime";
|
|
31
|
+
import { escapeRegExp } from "lodash";
|
|
46
32
|
function createFileGlob(url, pageExtensions) {
|
|
47
33
|
if (pageExtensions.length === 1) {
|
|
48
|
-
return
|
|
34
|
+
return "".concat(url).concat(pageExtensions[0]);
|
|
49
35
|
}
|
|
50
|
-
return
|
|
36
|
+
return "".concat(url, "{").concat(pageExtensions.join(","), "}");
|
|
51
37
|
}
|
|
52
|
-
function createSortFn(pageExtensions,
|
|
53
|
-
|
|
38
|
+
function createSortFn(pageExtensions, param) {
|
|
39
|
+
var _sortBy = param.sortBy, indexFirst = param.indexFirst;
|
|
40
|
+
var indexRegExp = indexFirst && new RegExp("index".concat(pageExtensions.map(escapeRegExp).join("|"), "$"));
|
|
54
41
|
// TODO: Switch out the algorithm here, based on `sortBy`
|
|
55
42
|
return function sortFn(fullPathA, fullPathB) {
|
|
56
43
|
// Always pin /index to the front
|
|
@@ -60,4 +47,127 @@ function createSortFn(pageExtensions, { sortBy: _sortBy, indexFirst }) {
|
|
|
60
47
|
return fullPathA.localeCompare(fullPathB);
|
|
61
48
|
};
|
|
62
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* Sorts the pages in a folder alphabetically and then embeds a `navigation` property to the metadata with ordered
|
|
52
|
+
* next/prev pages
|
|
53
|
+
*/ var NextPrevPlugin = {
|
|
54
|
+
$beforeSend: function $beforeSend(mutableFilesystem, param, param1) {
|
|
55
|
+
var config = param.config, pageExtensions = param.pageExtensions, ignorePages = param.ignorePages, indexFirst = param1.indexFirst, sortBy = param1.sortBy;
|
|
56
|
+
return _asyncToGenerator(/*#__PURE__*/ regeneratorRuntime.mark(function _callee() {
|
|
57
|
+
var pageDirs, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, dirName, pages, i;
|
|
58
|
+
return regeneratorRuntime.wrap(function _callee$(_ctx) {
|
|
59
|
+
while(1)switch(_ctx.prev = _ctx.next){
|
|
60
|
+
case 0:
|
|
61
|
+
_ctx.next = 2;
|
|
62
|
+
return mutableFilesystem.promises.glob("**", {
|
|
63
|
+
onlyDirectories: true,
|
|
64
|
+
ignore: ignorePages.map(function(ignore) {
|
|
65
|
+
return "**/".concat(ignore);
|
|
66
|
+
}),
|
|
67
|
+
cwd: "/"
|
|
68
|
+
});
|
|
69
|
+
case 2:
|
|
70
|
+
pageDirs = _ctx.sent;
|
|
71
|
+
_iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
72
|
+
_ctx.prev = 4;
|
|
73
|
+
_iterator = pageDirs[Symbol.iterator]();
|
|
74
|
+
case 6:
|
|
75
|
+
if (_iteratorNormalCompletion = (_step = _iterator.next()).done) {
|
|
76
|
+
_ctx.next = 15;
|
|
77
|
+
break;
|
|
78
|
+
}
|
|
79
|
+
dirName = _step.value;
|
|
80
|
+
_ctx.next = 10;
|
|
81
|
+
return mutableFilesystem.promises.glob(createFileGlob("*", pageExtensions), {
|
|
82
|
+
onlyFiles: true,
|
|
83
|
+
cwd: dirName,
|
|
84
|
+
ignore: ignorePages
|
|
85
|
+
});
|
|
86
|
+
case 10:
|
|
87
|
+
pages = _ctx.sent.sort(createSortFn(pageExtensions, {
|
|
88
|
+
indexFirst: indexFirst,
|
|
89
|
+
sortBy: sortBy
|
|
90
|
+
}));
|
|
91
|
+
for(i = 0; i < pages.length; i++){
|
|
92
|
+
if (i > 0) {
|
|
93
|
+
config.setRef(pages[i], [
|
|
94
|
+
"navigation",
|
|
95
|
+
"prev",
|
|
96
|
+
"title",
|
|
97
|
+
"$ref"
|
|
98
|
+
], "".concat(pages[i - 1], "#/title"));
|
|
99
|
+
config.setRef(pages[i], [
|
|
100
|
+
"navigation",
|
|
101
|
+
"prev",
|
|
102
|
+
"fullPath",
|
|
103
|
+
"$ref"
|
|
104
|
+
], "".concat(pages[i - 1], "#/route"));
|
|
105
|
+
}
|
|
106
|
+
if (i < pages.length - 1) {
|
|
107
|
+
config.setRef(pages[i], [
|
|
108
|
+
"navigation",
|
|
109
|
+
"next",
|
|
110
|
+
"title",
|
|
111
|
+
"$ref"
|
|
112
|
+
], "".concat(pages[i + 1], "#/title"));
|
|
113
|
+
config.setRef(pages[i], [
|
|
114
|
+
"navigation",
|
|
115
|
+
"next",
|
|
116
|
+
"fullPath",
|
|
117
|
+
"$ref"
|
|
118
|
+
], "".concat(pages[i + 1], "#/route"));
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
case 12:
|
|
122
|
+
_iteratorNormalCompletion = true;
|
|
123
|
+
_ctx.next = 6;
|
|
124
|
+
break;
|
|
125
|
+
case 15:
|
|
126
|
+
_ctx.next = 21;
|
|
127
|
+
break;
|
|
128
|
+
case 17:
|
|
129
|
+
_ctx.prev = 17;
|
|
130
|
+
_ctx.t0 = _ctx["catch"](4);
|
|
131
|
+
_didIteratorError = true;
|
|
132
|
+
_iteratorError = _ctx.t0;
|
|
133
|
+
case 21:
|
|
134
|
+
_ctx.prev = 21;
|
|
135
|
+
_ctx.prev = 22;
|
|
136
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
137
|
+
_iterator.return();
|
|
138
|
+
}
|
|
139
|
+
case 24:
|
|
140
|
+
_ctx.prev = 24;
|
|
141
|
+
if (!_didIteratorError) {
|
|
142
|
+
_ctx.next = 27;
|
|
143
|
+
break;
|
|
144
|
+
}
|
|
145
|
+
throw _iteratorError;
|
|
146
|
+
case 27:
|
|
147
|
+
return _ctx.finish(24);
|
|
148
|
+
case 28:
|
|
149
|
+
return _ctx.finish(21);
|
|
150
|
+
case 29:
|
|
151
|
+
case "end":
|
|
152
|
+
return _ctx.stop();
|
|
153
|
+
}
|
|
154
|
+
}, _callee, null, [
|
|
155
|
+
[
|
|
156
|
+
4,
|
|
157
|
+
17,
|
|
158
|
+
21,
|
|
159
|
+
29
|
|
160
|
+
],
|
|
161
|
+
[
|
|
162
|
+
22,
|
|
163
|
+
,
|
|
164
|
+
24,
|
|
165
|
+
28
|
|
166
|
+
]
|
|
167
|
+
]);
|
|
168
|
+
}))();
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
export default NextPrevPlugin;
|
|
172
|
+
|
|
63
173
|
//# sourceMappingURL=NextPrevPagePlugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../src/NextPrevPagePlugin.ts"],"sourcesContent":["import type { Page, Plugin as PluginType } from '@jpmorganchase/mosaic-types';\nimport { escapeRegExp } from 'lodash';\n\nfunction createFileGlob(url, pageExtensions) {\n if (pageExtensions.length === 1) {\n return `${url}${pageExtensions[0]}`;\n }\n return `${url}{${pageExtensions.join(',')}}`;\n}\n\nfunction createSortFn(\n pageExtensions: string[],\n { sortBy: _sortBy, indexFirst }: NextPrevPluginOptions\n) {\n const indexRegExp =\n indexFirst && new RegExp(`index${pageExtensions.map(escapeRegExp).join('|')}$`);\n\n // TODO: Switch out the algorithm here, based on `sortBy`\n return function sortFn(fullPathA, fullPathB) {\n // Always pin /index to the front\n if (indexFirst && indexRegExp.test(fullPathA)) {\n return -1;\n }\n return fullPathA.localeCompare(fullPathB);\n };\n}\n\ninterface NextPrevPluginPage extends Page {\n nextPrev: { [key: string]: string[] };\n refs: { [key: string]: { $$path: (number | string)[]; $$value: string }[] };\n}\n\ninterface NextPrevPluginOptions {\n indexFirst?: boolean;\n sortBy?: string;\n}\n\n/**\n * Sorts the pages in a folder alphabetically and then embeds a `navigation` property to the metadata with ordered\n * next/prev pages\n */\nconst NextPrevPlugin: PluginType<NextPrevPluginPage, NextPrevPluginOptions> = {\n async $beforeSend(\n mutableFilesystem,\n { config, pageExtensions, ignorePages },\n { indexFirst, sortBy }\n ) {\n const pageDirs = (await mutableFilesystem.promises.glob('**', {\n onlyDirectories: true,\n ignore: ignorePages.map(ignore => `**/${ignore}`),\n cwd: '/'\n })) as string[];\n for (const dirName of pageDirs) {\n const pages = (\n await mutableFilesystem.promises.glob(createFileGlob('*', pageExtensions), {\n onlyFiles: true,\n cwd: dirName,\n ignore: ignorePages\n })\n ).sort(createSortFn(pageExtensions, { indexFirst, sortBy })) as string[];\n for (let i = 0; i < pages.length; i++) {\n if (i > 0) {\n config.setRef(\n pages[i],\n ['navigation', 'prev', 'title', '$ref'],\n `${pages[i - 1]}#/title`\n );\n config.setRef(\n pages[i],\n ['navigation', 'prev', 'fullPath', '$ref'],\n `${pages[i - 1]}#/route`\n );\n }\n if (i < pages.length - 1) {\n config.setRef(\n pages[i],\n ['navigation', 'next', 'title', '$ref'],\n `${pages[i + 1]}#/title`\n );\n config.setRef(\n pages[i],\n ['navigation', 'next', 'fullPath', '$ref'],\n `${pages[i + 1]}#/route`\n );\n }\n }\n }\n }\n};\n\nexport default NextPrevPlugin;\n"],"names":["escapeRegExp","createFileGlob","url","pageExtensions","length","join","createSortFn","sortBy","_sortBy","indexFirst","indexRegExp","RegExp","map","sortFn","fullPathA","fullPathB","test","localeCompare","NextPrevPlugin","$beforeSend","mutableFilesystem","config","ignorePages","pageDirs","dirName","pages","i","promises","glob","onlyDirectories","ignore","cwd","onlyFiles","sort","setRef"],"mappings":"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"}
|
|
@@ -1,47 +1,128 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
1
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
2
|
+
try {
|
|
3
|
+
var info = gen[key](arg);
|
|
4
|
+
var value = info.value;
|
|
5
|
+
} catch (error) {
|
|
6
|
+
reject(error);
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
if (info.done) {
|
|
10
|
+
resolve(value);
|
|
11
|
+
} else {
|
|
12
|
+
Promise.resolve(value).then(_next, _throw);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
function _asyncToGenerator(fn) {
|
|
16
|
+
return function() {
|
|
17
|
+
var self = this, args = arguments;
|
|
18
|
+
return new Promise(function(resolve, reject) {
|
|
19
|
+
var gen = fn.apply(self, args);
|
|
20
|
+
function _next(value) {
|
|
21
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
22
|
+
}
|
|
23
|
+
function _throw(err) {
|
|
24
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
25
|
+
}
|
|
26
|
+
_next(undefined);
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
import regeneratorRuntime from "regenerator-runtime";
|
|
31
|
+
import { escapeRegExp } from "lodash";
|
|
32
|
+
import path from "path";
|
|
33
|
+
function createPageTest(ignorePages, pageExtensions) {
|
|
34
|
+
var extTest = new RegExp("".concat(pageExtensions.map(escapeRegExp).join("|"), "$"));
|
|
35
|
+
var ignoreTest = new RegExp("".concat(ignorePages.map(escapeRegExp).join("|"), "$"));
|
|
36
|
+
return function(file) {
|
|
37
|
+
return !ignoreTest.test(file) && extTest.test(file) && !path.basename(file).startsWith(".");
|
|
38
|
+
};
|
|
39
|
+
}
|
|
17
40
|
/**
|
|
18
41
|
* Plugin that creates aliases without the file extension for every page emitted by the source.
|
|
19
42
|
* This allows pages to be retrieved from the filesystem without specifying `.mdx` (or whatever file extension is specified in `options.stripExt`).
|
|
20
43
|
* The plugin also modifies the `route` to point to the shorter alias. Friendly fullPaths are the shortest possible paths that
|
|
21
44
|
* will point to the page (see `Page` docs)
|
|
22
|
-
*/
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
return
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
45
|
+
*/ var PagesWithoutFileExtPlugin = {
|
|
46
|
+
$afterSource: function $afterSource(pages, param) {
|
|
47
|
+
var config = param.config, ignorePages = param.ignorePages, pageExtensions = param.pageExtensions;
|
|
48
|
+
return _asyncToGenerator(/*#__PURE__*/ regeneratorRuntime.mark(function _callee() {
|
|
49
|
+
var isNonHiddenPage, pageTest, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, page;
|
|
50
|
+
return regeneratorRuntime.wrap(function _callee$(_ctx) {
|
|
51
|
+
while(1)switch(_ctx.prev = _ctx.next){
|
|
52
|
+
case 0:
|
|
53
|
+
isNonHiddenPage = createPageTest(ignorePages, pageExtensions);
|
|
54
|
+
pageTest = new RegExp("".concat(pageExtensions.map(escapeRegExp).join("|"), "$"));
|
|
55
|
+
_iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
56
|
+
_ctx.prev = 3;
|
|
57
|
+
_iterator = pages[Symbol.iterator]();
|
|
58
|
+
case 5:
|
|
59
|
+
if (_iteratorNormalCompletion = (_step = _iterator.next()).done) {
|
|
60
|
+
_ctx.next = 14;
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
page = _step.value;
|
|
64
|
+
if (isNonHiddenPage(page.fullPath)) {
|
|
65
|
+
_ctx.next = 9;
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
return _ctx.abrupt("continue", 11);
|
|
69
|
+
case 9:
|
|
70
|
+
page.route = page.route.replace(pageTest, "");
|
|
71
|
+
config.setAliases(page.fullPath, [
|
|
72
|
+
page.route
|
|
73
|
+
]);
|
|
74
|
+
case 11:
|
|
75
|
+
_iteratorNormalCompletion = true;
|
|
76
|
+
_ctx.next = 5;
|
|
77
|
+
break;
|
|
78
|
+
case 14:
|
|
79
|
+
_ctx.next = 20;
|
|
80
|
+
break;
|
|
81
|
+
case 16:
|
|
82
|
+
_ctx.prev = 16;
|
|
83
|
+
_ctx.t0 = _ctx["catch"](3);
|
|
84
|
+
_didIteratorError = true;
|
|
85
|
+
_iteratorError = _ctx.t0;
|
|
86
|
+
case 20:
|
|
87
|
+
_ctx.prev = 20;
|
|
88
|
+
_ctx.prev = 21;
|
|
89
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
90
|
+
_iterator.return();
|
|
91
|
+
}
|
|
92
|
+
case 23:
|
|
93
|
+
_ctx.prev = 23;
|
|
94
|
+
if (!_didIteratorError) {
|
|
95
|
+
_ctx.next = 26;
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
throw _iteratorError;
|
|
99
|
+
case 26:
|
|
100
|
+
return _ctx.finish(23);
|
|
101
|
+
case 27:
|
|
102
|
+
return _ctx.finish(20);
|
|
103
|
+
case 28:
|
|
104
|
+
return _ctx.abrupt("return", pages);
|
|
105
|
+
case 29:
|
|
106
|
+
case "end":
|
|
107
|
+
return _ctx.stop();
|
|
31
108
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
109
|
+
}, _callee, null, [
|
|
110
|
+
[
|
|
111
|
+
3,
|
|
112
|
+
16,
|
|
113
|
+
20,
|
|
114
|
+
28
|
|
115
|
+
],
|
|
116
|
+
[
|
|
117
|
+
21,
|
|
118
|
+
,
|
|
119
|
+
23,
|
|
120
|
+
27
|
|
121
|
+
]
|
|
122
|
+
]);
|
|
123
|
+
}))();
|
|
37
124
|
}
|
|
38
125
|
};
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
const extTest = new RegExp(`${pageExtensions.map(lodash_1.escapeRegExp).join('|')}$`);
|
|
42
|
-
const ignoreTest = new RegExp(`${ignorePages.map(lodash_1.escapeRegExp).join('|')}$`);
|
|
43
|
-
return file => {
|
|
44
|
-
return !ignoreTest.test(file) && extTest.test(file) && !path_1.default.basename(file).startsWith('.');
|
|
45
|
-
};
|
|
46
|
-
}
|
|
126
|
+
export default PagesWithoutFileExtPlugin;
|
|
127
|
+
|
|
47
128
|
//# sourceMappingURL=PagesWithoutFileExtPlugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../src/PagesWithoutFileExtPlugin.ts"],"sourcesContent":["import type { Page, Plugin as PluginType } from '@jpmorganchase/mosaic-types';\nimport { escapeRegExp } from 'lodash';\nimport path from 'path';\n\nfunction createPageTest(ignorePages, pageExtensions) {\n const extTest = new RegExp(`${pageExtensions.map(escapeRegExp).join('|')}$`);\n const ignoreTest = new RegExp(`${ignorePages.map(escapeRegExp).join('|')}$`);\n return file =>\n !ignoreTest.test(file) && extTest.test(file) && !path.basename(file).startsWith('.');\n}\n\n/**\n * Plugin that creates aliases without the file extension for every page emitted by the source.\n * This allows pages to be retrieved from the filesystem without specifying `.mdx` (or whatever file extension is specified in `options.stripExt`).\n * The plugin also modifies the `route` to point to the shorter alias. Friendly fullPaths are the shortest possible paths that\n * will point to the page (see `Page` docs)\n */\nconst PagesWithoutFileExtPlugin: PluginType = {\n async $afterSource(pages, { config, ignorePages, pageExtensions }) {\n const isNonHiddenPage = createPageTest(ignorePages, pageExtensions);\n const pageTest = new RegExp(`${pageExtensions.map(escapeRegExp).join('|')}$`);\n\n for (const page of pages) {\n if (!isNonHiddenPage(page.fullPath)) {\n continue;\n }\n page.route = page.route.replace(pageTest, '');\n config.setAliases(page.fullPath, [page.route]);\n }\n return pages;\n }\n};\n\nexport default PagesWithoutFileExtPlugin;\n"],"names":["escapeRegExp","path","createPageTest","ignorePages","pageExtensions","extTest","RegExp","map","join","ignoreTest","file","test","basename","startsWith","PagesWithoutFileExtPlugin","$afterSource","pages","config","isNonHiddenPage","pageTest","page","fullPath","route","replace","setAliases"],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,SAASA,YAAY,QAAQ,QAAQ,CAAC;AACtC,OAAOC,IAAI,MAAM,MAAM,CAAC;AAExB,SAASC,cAAc,CAACC,WAAW,EAAEC,cAAc,EAAE;IACnD,IAAMC,OAAO,GAAG,IAAIC,MAAM,CAAC,AAAC,EAAA,CAA6C,MAAC,CAA5CF,cAAc,CAACG,GAAG,CAACP,YAAY,CAAC,CAACQ,IAAI,CAAC,GAAG,CAAC,EAAC,GAAC,CAAC,CAAC,AAAC;IAC7E,IAAMC,UAAU,GAAG,IAAIH,MAAM,CAAC,AAAC,EAAA,CAA0C,MAAC,CAAzCH,WAAW,CAACI,GAAG,CAACP,YAAY,CAAC,CAACQ,IAAI,CAAC,GAAG,CAAC,EAAC,GAAC,CAAC,CAAC,AAAC;IAC7E,OAAOE,SAAAA,IAAI;eACT,CAACD,UAAU,CAACE,IAAI,CAACD,IAAI,CAAC,IAAIL,OAAO,CAACM,IAAI,CAACD,IAAI,CAAC,IAAI,CAACT,IAAI,CAACW,QAAQ,CAACF,IAAI,CAAC,CAACG,UAAU,CAAC,GAAG,CAAC;KAAA,CAAC;CACxF;AAED;;;;;CAKC,GACD,IAAMC,yBAAyB,GAAe;IACtCC,YAAY,EAAlB,SAAMA,YAAY,CAACC,KAAK,EAAE,KAAuC;YAArCC,MAAM,GAAR,KAAuC,CAArCA,MAAM,EAAEd,WAAW,GAArB,KAAuC,CAA7BA,WAAW,EAAEC,cAAc,GAArC,KAAuC,CAAhBA,cAAc;eAAI,wDAAA,mBAAA;gBAC3Dc,eAAe,EACfC,QAAQ,EAET,yBAAU,EAAV,iBAAU,EAAV,cAAU,EAAV,SAAU,EAAV,KAAU,EAAJC,IAAI;;;;wBAHTF,eAAe,GAAGhB,cAAc,CAACC,WAAW,EAAEC,cAAc,CAAC,CAAC;wBAC9De,QAAQ,GAAG,IAAIb,MAAM,CAAC,AAAC,EAAA,CAA6C,MAAC,CAA5CF,cAAc,CAACG,GAAG,CAACP,YAAY,CAAC,CAACQ,IAAI,CAAC,GAAG,CAAC,EAAC,GAAC,CAAC,CAAC,CAAC;wBAEzE,yBAAU,SAAV,iBAAU,UAAV,cAAU;;wBAAV,SAAU,GAAIQ,KAAK;;4BAAnB,yBAAU,IAAV,KAAU,GAAV,SAAU;;;;wBAAJI,IAAI,GAAV,KAAU,MAAA;4BACRF,eAAe,CAACE,IAAI,CAACC,QAAQ,CAAC;;;;;;wBAGnCD,IAAI,CAACE,KAAK,GAAGF,IAAI,CAACE,KAAK,CAACC,OAAO,CAACJ,QAAQ,EAAE,EAAE,CAAC,CAAC;wBAC9CF,MAAM,CAACO,UAAU,CAACJ,IAAI,CAACC,QAAQ,EAAE;4BAACD,IAAI,CAACE,KAAK;yBAAC,CAAC,CAAC;;wBAL5C,yBAAU;;;;;;;;;wBAAV,iBAAU;wBAAV,cAAU;;;;6BAAV,yBAAU,IAAV,SAAU;4BAAV,SAAU;;;;4BAAV,CAAA,iBAAU;;;;8BAAV,cAAU;;;;;;qDAORN,KAAK;;;;;;;;;;;;;;;;;;;SACb,EAAA;KAAA;CACF,AAAC;AAEF,eAAeF,yBAAyB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ReadingTimePlugin.mjs.ts"],"sourcesContent":["import type { Page, Plugin as PluginType } from '@jpmorganchase/mosaic-types';\nimport getReadingTime from 'reading-time';\nimport markdown from 'remark-parse';\nimport { unified } from 'unified';\nimport { visit } from 'unist-util-visit';\n\n/**\n * Calculates reading time for pages and adds to frontmatter\n */\nconst ReadingTimePlugin: PluginType<
|
|
1
|
+
{"version":3,"sources":["../src/ReadingTimePlugin.mjs.ts"],"sourcesContent":["import type { Page, Plugin as PluginType } from '@jpmorganchase/mosaic-types';\nimport getReadingTime from 'reading-time';\nimport markdown from 'remark-parse';\nimport { unified } from 'unified';\nimport { visit } from 'unist-util-visit';\nimport type { Node } from 'unist';\n\ntype LeafNode = Node & {\n value?: string;\n};\n\ninterface ReadingTimePluginPage extends Page {\n readingTime?: ReturnType<typeof getReadingTime>;\n}\n\n/**\n * Calculates reading time for pages and adds to frontmatter\n */\nconst ReadingTimePlugin: PluginType<ReadingTimePluginPage> = {\n async $afterSource(pages) {\n const processor = unified().use(markdown);\n for (const page of pages) {\n const tree = await processor.parse(page.content);\n let textContent = '';\n\n visit(\n tree,\n node => node.type === 'text' || node.type === 'code',\n (node: LeafNode) => {\n textContent += node.value;\n }\n );\n page.readingTime = getReadingTime(textContent);\n }\n\n return pages;\n }\n};\n\nexport default ReadingTimePlugin;\n"],"names":["getReadingTime","markdown","unified","visit","ReadingTimePlugin","$afterSource","pages","processor","page","tree","textContent","use","parse","content","node","type","value","readingTime"],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAOA,cAAc,MAAM,cAAc,CAAC;AAC1C,OAAOC,QAAQ,MAAM,cAAc,CAAC;AACpC,SAASC,OAAO,QAAQ,SAAS,CAAC;AAClC,SAASC,KAAK,QAAQ,kBAAkB,CAAC;AAWzC;;CAEC,GACD,IAAMC,iBAAiB,GAAsC;IACrDC,YAAY,EAAlB,SAAMA,YAAY,CAACC,KAAK;eAAE,wDAAA,mBAAA;gBAClBC,SAAS,EACV,yBAAU,EAAV,iBAAU,EAAV,cAAU,EAAV,SAAU,EAAV,KAAU,EAAJC,IAAI,EACPC,IAAI,EACNC,WAAW;;;;wBAHXH,SAAS,GAAGL,OAAO,EAAE,CAACS,GAAG,CAACV,QAAQ,CAAC,CAAC;wBACrC,yBAAU,SAAV,iBAAU,UAAV,cAAU;;wBAAV,SAAU,GAAIK,KAAK;;4BAAnB,yBAAU,IAAV,KAAU,GAAV,SAAU;;;;wBAAJE,IAAI,GAAV,KAAU,MAAA;;+BACMD,SAAS,CAACK,KAAK,CAACJ,IAAI,CAACK,OAAO,CAAC;;wBAA1CJ,IAAI,YAAsC,CAAA;wBAC5CC,WAAW,GAAG,EAAE,CAAC;wBAErBP,KAAK,CACHM,IAAI,EACJK,SAAAA,IAAI;mCAAIA,IAAI,CAACC,IAAI,KAAK,MAAM,IAAID,IAAI,CAACC,IAAI,KAAK,MAAM;yBAAA,EACpD,SAACD,IAAc,EAAK;4BAClBJ,WAAW,IAAII,IAAI,CAACE,KAAK,CAAC;yBAC3B,CACF,CAAC;wBACFR,IAAI,CAACS,WAAW,GAAGjB,cAAc,CAACU,WAAW,CAAC,CAAC;;wBAX5C,yBAAU;;;;;;;;;wBAAV,iBAAU;wBAAV,cAAU;;;;6BAAV,yBAAU,IAAV,SAAU;4BAAV,SAAU;;;;4BAAV,CAAA,iBAAU;;;;8BAAV,cAAU;;;;;;qDAcRJ,KAAK;;;;;;;;;;;;;;;;;;;SACb,EAAA;KAAA;CACF,AAAC;AAEF,eAAeF,iBAAiB,CAAC"}
|