@jpmorganchase/mosaic-plugins 0.1.0-beta.7 → 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 +16 -2
- package/dist/$AliasPlugin.js +227 -60
- package/dist/$AliasPlugin.js.map +1 -1
- package/dist/$CodeModPlugin.js +118 -34
- package/dist/$CodeModPlugin.js.map +1 -1
- package/dist/$RefPlugin.js +450 -121
- package/dist/$RefPlugin.js.map +1 -1
- package/dist/$TagPlugin.js +234 -71
- package/dist/$TagPlugin.js.map +1 -1
- package/dist/BreadcrumbsPlugin.js +114 -45
- package/dist/BreadcrumbsPlugin.js.map +1 -1
- package/dist/LazyPagePlugin.js +252 -81
- package/dist/LazyPagePlugin.js.map +1 -1
- package/dist/LocalFolderSavePlugin.js +160 -43
- package/dist/LocalFolderSavePlugin.js.map +1 -1
- package/dist/NextPrevPagePlugin.js +153 -43
- package/dist/NextPrevPagePlugin.js.map +1 -1
- package/dist/PagesWithoutFileExtPlugin.js +117 -34
- package/dist/PagesWithoutFileExtPlugin.js.map +1 -1
- package/dist/SharedConfigPlugin.js +170 -39
- package/dist/SharedConfigPlugin.js.map +1 -1
- package/dist/SidebarPlugin.js +312 -84
- package/dist/SidebarPlugin.js.map +1 -1
- package/dist/SiteMapPlugin.js +90 -36
- package/dist/SiteMapPlugin.js.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 +5 -5
package/dist/SidebarPlugin.js
CHANGED
|
@@ -1,41 +1,83 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
return
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
var
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
|
|
1
|
+
function _arrayLikeToArray(arr, len) {
|
|
2
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
3
|
+
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
4
|
+
return arr2;
|
|
5
|
+
}
|
|
6
|
+
function _arrayWithoutHoles(arr) {
|
|
7
|
+
if (Array.isArray(arr)) return _arrayLikeToArray(arr);
|
|
8
|
+
}
|
|
9
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
10
|
+
try {
|
|
11
|
+
var info = gen[key](arg);
|
|
12
|
+
var value = info.value;
|
|
13
|
+
} catch (error) {
|
|
14
|
+
reject(error);
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
if (info.done) {
|
|
18
|
+
resolve(value);
|
|
19
|
+
} else {
|
|
20
|
+
Promise.resolve(value).then(_next, _throw);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
function _asyncToGenerator(fn) {
|
|
24
|
+
return function() {
|
|
25
|
+
var self = this, args = arguments;
|
|
26
|
+
return new Promise(function(resolve, reject) {
|
|
27
|
+
var gen = fn.apply(self, args);
|
|
28
|
+
function _next(value) {
|
|
29
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
30
|
+
}
|
|
31
|
+
function _throw(err) {
|
|
32
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
33
|
+
}
|
|
34
|
+
_next(undefined);
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
function _iterableToArray(iter) {
|
|
39
|
+
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
40
|
+
}
|
|
41
|
+
function _nonIterableSpread() {
|
|
42
|
+
throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
43
|
+
}
|
|
44
|
+
function _toConsumableArray(arr) {
|
|
45
|
+
return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
|
|
46
|
+
}
|
|
47
|
+
function _unsupportedIterableToArray(o, minLen) {
|
|
48
|
+
if (!o) return;
|
|
49
|
+
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
|
50
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
51
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
52
|
+
if (n === "Map" || n === "Set") return Array.from(n);
|
|
53
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
54
|
+
}
|
|
55
|
+
import regeneratorRuntime from "regenerator-runtime";
|
|
56
|
+
import path from "path";
|
|
16
57
|
function createFileGlob(patterns, pageExtensions) {
|
|
17
58
|
if (Array.isArray(patterns)) {
|
|
18
|
-
return patterns.map(
|
|
59
|
+
return patterns.map(function(pattern) {
|
|
60
|
+
return createFileGlob(pattern, pageExtensions);
|
|
61
|
+
});
|
|
19
62
|
}
|
|
20
63
|
if (pageExtensions.length === 1) {
|
|
21
|
-
return
|
|
64
|
+
return "".concat(patterns).concat(pageExtensions[0]);
|
|
22
65
|
}
|
|
23
|
-
return
|
|
66
|
+
return "".concat(patterns, "{").concat(pageExtensions.join(","), "}");
|
|
24
67
|
}
|
|
25
68
|
function isSubfolderIndex(page, dirName) {
|
|
26
|
-
return page.fullPath.split(
|
|
69
|
+
return page.fullPath.split("/").length === String(dirName).split("/").length + 2;
|
|
27
70
|
}
|
|
28
71
|
function sortFn(pageA, pageB, dirName) {
|
|
29
72
|
// Always pin /index to the front
|
|
30
|
-
|
|
73
|
+
var route = "".concat(dirName, "/index");
|
|
31
74
|
if (pageA.route === route) {
|
|
32
75
|
return -1;
|
|
33
76
|
}
|
|
34
77
|
if (pageB.route === route) {
|
|
35
78
|
return 1;
|
|
36
79
|
}
|
|
37
|
-
return (
|
|
38
|
-
(pageA.sidebar && pageA.sidebar.priority ? pageA.sidebar.priority : -1));
|
|
80
|
+
return (pageB.sidebar && pageB.sidebar.priority ? pageB.sidebar.priority : -1) - (pageA.sidebar && pageA.sidebar.priority ? pageA.sidebar.priority : -1);
|
|
39
81
|
}
|
|
40
82
|
function filterFn(page) {
|
|
41
83
|
return !(page.sidebar && page.sidebar.exclude);
|
|
@@ -43,71 +85,257 @@ function filterFn(page) {
|
|
|
43
85
|
/**
|
|
44
86
|
* Sorts the pages in a folder by priority and then exports a JSON file (name: `options.filename`) with the
|
|
45
87
|
* sidebar tree from that directory downwards and adds sidebar data into frontmatter for each page.
|
|
46
|
-
*/
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
return
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
88
|
+
*/ var SidebarPlugin = {
|
|
89
|
+
$beforeSend: function $beforeSend(mutableFilesystem, param, options) {
|
|
90
|
+
var config = param.config, serialiser = param.serialiser, ignorePages = param.ignorePages, pageExtensions = param.pageExtensions;
|
|
91
|
+
return _asyncToGenerator(/*#__PURE__*/ regeneratorRuntime.mark(function _callee() {
|
|
92
|
+
var setPageRefs, setChildPageRefs, _setChildPageRefs, addSidebarDataToFrontmatter, dirs, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, dirName, sidebarFilePath, pages, i;
|
|
93
|
+
return regeneratorRuntime.wrap(function _callee$(_ctx) {
|
|
94
|
+
while(1)switch(_ctx.prev = _ctx.next){
|
|
95
|
+
case 0:
|
|
96
|
+
setPageRefs = function _setPageRefs(sidebarFilePath, page, i) {
|
|
97
|
+
config.setRef(sidebarFilePath, [
|
|
98
|
+
"pages",
|
|
99
|
+
"".concat(i),
|
|
100
|
+
"id",
|
|
101
|
+
"$ref"
|
|
102
|
+
], "".concat(page.fullPath, "#/route"));
|
|
103
|
+
var label = page.sidebar && page.sidebar.label ? "".concat(page.fullPath, "#/sidebar/label") : "".concat(page.fullPath, "#/title");
|
|
104
|
+
config.setRef(sidebarFilePath, [
|
|
105
|
+
"pages",
|
|
106
|
+
"".concat(i),
|
|
107
|
+
"name",
|
|
108
|
+
"$ref"
|
|
109
|
+
], label);
|
|
110
|
+
config.setRef(sidebarFilePath, [
|
|
111
|
+
"pages",
|
|
112
|
+
"".concat(i),
|
|
113
|
+
"data",
|
|
114
|
+
"link",
|
|
115
|
+
"$ref"
|
|
116
|
+
], "".concat(page.fullPath, "#/route"));
|
|
117
|
+
};
|
|
118
|
+
setChildPageRefs = function _setChildPageRefs1(page, dirName, i, sidebarFilePath) {
|
|
119
|
+
return _setChildPageRefs.apply(this, arguments);
|
|
120
|
+
};
|
|
121
|
+
_setChildPageRefs = function __setChildPageRefs() {
|
|
122
|
+
_setChildPageRefs = _asyncToGenerator(/*#__PURE__*/ regeneratorRuntime.mark(function _callee(page, dirName, i, sidebarFilePath) {
|
|
123
|
+
var childDirName, childNodeSidebarPath, childPages, j;
|
|
124
|
+
return regeneratorRuntime.wrap(function _callee$(_ctx) {
|
|
125
|
+
while(1)switch(_ctx.prev = _ctx.next){
|
|
126
|
+
case 0:
|
|
127
|
+
if (!isSubfolderIndex(page, dirName)) {
|
|
128
|
+
_ctx.next = 11;
|
|
129
|
+
break;
|
|
130
|
+
}
|
|
131
|
+
childDirName = path.posix.dirname(page.fullPath);
|
|
132
|
+
childNodeSidebarPath = path.posix.join(childDirName, options.filename);
|
|
133
|
+
_ctx.t0 = Promise;
|
|
134
|
+
_ctx.next = 6;
|
|
135
|
+
return mutableFilesystem.promises.glob(createFileGlob([
|
|
136
|
+
"*",
|
|
137
|
+
"*/index"
|
|
138
|
+
], pageExtensions), {
|
|
139
|
+
onlyFiles: true,
|
|
140
|
+
cwd: String(childDirName),
|
|
141
|
+
ignore: ignorePages.map(function(ignore) {
|
|
142
|
+
return "**/".concat(ignore);
|
|
143
|
+
})
|
|
144
|
+
});
|
|
145
|
+
case 6:
|
|
146
|
+
_ctx.t1 = _ctx.sent.map(function() {
|
|
147
|
+
var _ref = _asyncToGenerator(/*#__PURE__*/ regeneratorRuntime.mark(function _callee(pagePath) {
|
|
148
|
+
var deserialisedPage;
|
|
149
|
+
return regeneratorRuntime.wrap(function _callee$(_ctx) {
|
|
150
|
+
while(1)switch(_ctx.prev = _ctx.next){
|
|
151
|
+
case 0:
|
|
152
|
+
_ctx.t0 = serialiser;
|
|
153
|
+
_ctx.t1 = pagePath;
|
|
154
|
+
_ctx.next = 4;
|
|
155
|
+
return mutableFilesystem.promises.readFile(pagePath);
|
|
156
|
+
case 4:
|
|
157
|
+
_ctx.t2 = _ctx.sent;
|
|
158
|
+
_ctx.next = 7;
|
|
159
|
+
return _ctx.t0.deserialise.call(_ctx.t0, _ctx.t1, _ctx.t2);
|
|
160
|
+
case 7:
|
|
161
|
+
deserialisedPage = _ctx.sent;
|
|
162
|
+
return _ctx.abrupt("return", deserialisedPage);
|
|
163
|
+
case 9:
|
|
164
|
+
case "end":
|
|
165
|
+
return _ctx.stop();
|
|
166
|
+
}
|
|
167
|
+
}, _callee);
|
|
168
|
+
}));
|
|
169
|
+
return function(pagePath) {
|
|
170
|
+
return _ref.apply(this, arguments);
|
|
171
|
+
};
|
|
172
|
+
}());
|
|
173
|
+
_ctx.next = 9;
|
|
174
|
+
return _ctx.t0.all.call(_ctx.t0, _ctx.t1);
|
|
175
|
+
case 9:
|
|
176
|
+
childPages = _ctx.sent.filter(function(filterPage) {
|
|
177
|
+
return filterFn(filterPage);
|
|
178
|
+
});
|
|
179
|
+
if (childPages.length > 1) {
|
|
180
|
+
for(j = 1; j < childPages.length; j++){
|
|
181
|
+
config.setRef(sidebarFilePath, [
|
|
182
|
+
"pages",
|
|
183
|
+
"".concat(i),
|
|
184
|
+
"childNodes",
|
|
185
|
+
"".concat(j - 1),
|
|
186
|
+
"$ref"
|
|
187
|
+
], "".concat(childNodeSidebarPath, "#/pages/").concat(j));
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
case 11:
|
|
191
|
+
case "end":
|
|
192
|
+
return _ctx.stop();
|
|
193
|
+
}
|
|
194
|
+
}, _callee);
|
|
195
|
+
}));
|
|
196
|
+
return _setChildPageRefs.apply(this, arguments);
|
|
197
|
+
};
|
|
198
|
+
addSidebarDataToFrontmatter = function _addSidebarDataToFrontmatter(page, dirName) {
|
|
199
|
+
var _posix;
|
|
200
|
+
var dirNameLevels = String(dirName).split("/").filter(function(level) {
|
|
201
|
+
return level;
|
|
202
|
+
});
|
|
203
|
+
var sidebarRootDir = (_posix = path.posix).join.apply(_posix, [
|
|
204
|
+
"/"
|
|
205
|
+
].concat(_toConsumableArray(dirNameLevels.slice(0, dirNameLevels.length < 3 ? dirNameLevels.length : 3)), [
|
|
206
|
+
"/"
|
|
207
|
+
]));
|
|
208
|
+
config.setRef(String(page.fullPath), [
|
|
209
|
+
"sidebarData",
|
|
210
|
+
"$ref"
|
|
211
|
+
], path.posix.join(String(sidebarRootDir), options.filename, "#", "pages"));
|
|
212
|
+
};
|
|
213
|
+
;
|
|
214
|
+
;
|
|
215
|
+
;
|
|
216
|
+
;
|
|
217
|
+
_ctx.next = 10;
|
|
218
|
+
return mutableFilesystem.promises.glob("**", {
|
|
219
|
+
onlyDirectories: true,
|
|
220
|
+
cwd: "/"
|
|
221
|
+
});
|
|
222
|
+
case 10:
|
|
223
|
+
dirs = _ctx.sent;
|
|
224
|
+
_iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
225
|
+
_ctx.prev = 12;
|
|
226
|
+
_iterator = dirs[Symbol.iterator]();
|
|
227
|
+
case 14:
|
|
228
|
+
if (_iteratorNormalCompletion = (_step = _iterator.next()).done) {
|
|
229
|
+
_ctx.next = 30;
|
|
230
|
+
break;
|
|
231
|
+
}
|
|
232
|
+
dirName = _step.value;
|
|
233
|
+
sidebarFilePath = path.posix.join(String(dirName), options.filename);
|
|
234
|
+
_ctx.t0 = Promise;
|
|
235
|
+
_ctx.next = 20;
|
|
236
|
+
return mutableFilesystem.promises.glob(createFileGlob([
|
|
237
|
+
"*",
|
|
238
|
+
"*/index"
|
|
239
|
+
], pageExtensions), {
|
|
64
240
|
onlyFiles: true,
|
|
65
|
-
cwd: String(
|
|
66
|
-
ignore: ignorePages.map(ignore
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
241
|
+
cwd: String(dirName),
|
|
242
|
+
ignore: ignorePages.map(function(ignore) {
|
|
243
|
+
return "**/".concat(ignore);
|
|
244
|
+
})
|
|
245
|
+
});
|
|
246
|
+
case 20:
|
|
247
|
+
_ctx.t1 = _ctx.sent.map(function() {
|
|
248
|
+
var _ref = _asyncToGenerator(/*#__PURE__*/ regeneratorRuntime.mark(function _callee(pagePath) {
|
|
249
|
+
var deserialisedPage;
|
|
250
|
+
return regeneratorRuntime.wrap(function _callee$(_ctx) {
|
|
251
|
+
while(1)switch(_ctx.prev = _ctx.next){
|
|
252
|
+
case 0:
|
|
253
|
+
_ctx.t0 = serialiser;
|
|
254
|
+
_ctx.t1 = pagePath;
|
|
255
|
+
_ctx.next = 4;
|
|
256
|
+
return mutableFilesystem.promises.readFile(pagePath);
|
|
257
|
+
case 4:
|
|
258
|
+
_ctx.t2 = _ctx.sent;
|
|
259
|
+
_ctx.next = 7;
|
|
260
|
+
return _ctx.t0.deserialise.call(_ctx.t0, _ctx.t1, _ctx.t2);
|
|
261
|
+
case 7:
|
|
262
|
+
deserialisedPage = _ctx.sent;
|
|
263
|
+
return _ctx.abrupt("return", deserialisedPage);
|
|
264
|
+
case 9:
|
|
265
|
+
case "end":
|
|
266
|
+
return _ctx.stop();
|
|
267
|
+
}
|
|
268
|
+
}, _callee);
|
|
269
|
+
}));
|
|
270
|
+
return function(pagePath) {
|
|
271
|
+
return _ref.apply(this, arguments);
|
|
272
|
+
};
|
|
273
|
+
}());
|
|
274
|
+
_ctx.next = 23;
|
|
275
|
+
return _ctx.t0.all.call(_ctx.t0, _ctx.t1);
|
|
276
|
+
case 23:
|
|
277
|
+
pages = _ctx.sent.filter(function(page) {
|
|
278
|
+
return filterFn(page);
|
|
279
|
+
}).sort(function(pageA, pageB) {
|
|
280
|
+
return sortFn(pageA, pageB, dirName);
|
|
281
|
+
});
|
|
282
|
+
for(i = 0; i < pages.length; i++){
|
|
283
|
+
setPageRefs(sidebarFilePath, pages[i], i);
|
|
284
|
+
setChildPageRefs(pages[i], dirName, i, sidebarFilePath);
|
|
285
|
+
addSidebarDataToFrontmatter(pages[i], dirName);
|
|
75
286
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
287
|
+
_ctx.next = 27;
|
|
288
|
+
return mutableFilesystem.promises.writeFile(sidebarFilePath, "[]");
|
|
289
|
+
case 27:
|
|
290
|
+
_iteratorNormalCompletion = true;
|
|
291
|
+
_ctx.next = 14;
|
|
292
|
+
break;
|
|
293
|
+
case 30:
|
|
294
|
+
_ctx.next = 36;
|
|
295
|
+
break;
|
|
296
|
+
case 32:
|
|
297
|
+
_ctx.prev = 32;
|
|
298
|
+
_ctx.t2 = _ctx["catch"](12);
|
|
299
|
+
_didIteratorError = true;
|
|
300
|
+
_iteratorError = _ctx.t2;
|
|
301
|
+
case 36:
|
|
302
|
+
_ctx.prev = 36;
|
|
303
|
+
_ctx.prev = 37;
|
|
304
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
305
|
+
_iterator.return();
|
|
306
|
+
}
|
|
307
|
+
case 39:
|
|
308
|
+
_ctx.prev = 39;
|
|
309
|
+
if (!_didIteratorError) {
|
|
310
|
+
_ctx.next = 42;
|
|
311
|
+
break;
|
|
312
|
+
}
|
|
313
|
+
throw _iteratorError;
|
|
314
|
+
case 42:
|
|
315
|
+
return _ctx.finish(39);
|
|
316
|
+
case 43:
|
|
317
|
+
return _ctx.finish(36);
|
|
318
|
+
case 44:
|
|
319
|
+
case "end":
|
|
320
|
+
return _ctx.stop();
|
|
106
321
|
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
322
|
+
}, _callee, null, [
|
|
323
|
+
[
|
|
324
|
+
12,
|
|
325
|
+
32,
|
|
326
|
+
36,
|
|
327
|
+
44
|
|
328
|
+
],
|
|
329
|
+
[
|
|
330
|
+
37,
|
|
331
|
+
,
|
|
332
|
+
39,
|
|
333
|
+
43
|
|
334
|
+
]
|
|
335
|
+
]);
|
|
336
|
+
}))();
|
|
110
337
|
}
|
|
111
338
|
};
|
|
112
|
-
|
|
339
|
+
export default SidebarPlugin;
|
|
340
|
+
|
|
113
341
|
//# sourceMappingURL=SidebarPlugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SidebarPlugin.js","sourceRoot":"","sources":["../src/SidebarPlugin.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../src/SidebarPlugin.ts"],"sourcesContent":["import path from 'path';\nimport type { Plugin as PluginType } from '@jpmorganchase/mosaic-types';\nimport { Page } from '@jpmorganchase/mosaic-types';\n\nfunction createFileGlob(patterns, pageExtensions) {\n if (Array.isArray(patterns)) {\n return patterns.map(pattern => createFileGlob(pattern, pageExtensions));\n }\n if (pageExtensions.length === 1) {\n return `${patterns}${pageExtensions[0]}`;\n }\n return `${patterns}{${pageExtensions.join(',')}}`;\n}\nfunction isSubfolderIndex(page, dirName) {\n return page.fullPath.split('/').length === String(dirName).split('/').length + 2;\n}\n\nfunction sortFn(pageA, pageB, dirName) {\n // Always pin /index to the front\n\n const route = `${dirName}/index`;\n if (pageA.route === route) {\n return -1;\n }\n if (pageB.route === route) {\n return 1;\n }\n return (\n (pageB.sidebar && pageB.sidebar.priority ? pageB.sidebar.priority : -1) -\n (pageA.sidebar && pageA.sidebar.priority ? pageA.sidebar.priority : -1)\n );\n}\n\nfunction filterFn(page) {\n return !(page.sidebar && page.sidebar.exclude);\n}\n\ninterface SidebarPluginConfigData {\n dirs: string[];\n refs: { [key: string]: { $$path: (number | string)[]; $$value: string }[] };\n}\n\ninterface SidebarPluginPage extends Page {\n sidebar?: {\n label?: string;\n };\n}\n\ninterface SidebarPluginOptions {\n filename: string;\n}\n\n/**\n * Sorts the pages in a folder by priority and then exports a JSON file (name: `options.filename`) with the\n * sidebar tree from that directory downwards and adds sidebar data into frontmatter for each page.\n */\nconst SidebarPlugin: PluginType<SidebarPluginPage, SidebarPluginOptions, SidebarPluginConfigData> =\n {\n async $beforeSend(\n mutableFilesystem,\n { config, serialiser, ignorePages, pageExtensions },\n options\n ) {\n function setPageRefs(sidebarFilePath: string, page: SidebarPluginPage, i: number) {\n config.setRef(sidebarFilePath, ['pages', `${i}`, 'id', '$ref'], `${page.fullPath}#/route`);\n\n const label =\n page.sidebar && page.sidebar.label\n ? `${page.fullPath}#/sidebar/label`\n : `${page.fullPath}#/title`;\n\n config.setRef(sidebarFilePath, ['pages', `${i}`, 'name', '$ref'], label);\n\n config.setRef(\n sidebarFilePath,\n ['pages', `${i}`, 'data', 'link', '$ref'],\n `${page.fullPath}#/route`\n );\n }\n\n async function setChildPageRefs(page, dirName, i, sidebarFilePath) {\n if (isSubfolderIndex(page, dirName)) {\n const childDirName = path.posix.dirname(page.fullPath);\n const childNodeSidebarPath = path.posix.join(childDirName, options.filename);\n const childPages = (\n await Promise.all(\n (\n (await mutableFilesystem.promises.glob(\n createFileGlob(['*', '*/index'], pageExtensions),\n {\n onlyFiles: true,\n cwd: String(childDirName),\n ignore: ignorePages.map(ignore => `**/${ignore}`)\n }\n )) as string[]\n ).map(async pagePath => {\n const deserialisedPage = await serialiser.deserialise(\n pagePath,\n await mutableFilesystem.promises.readFile(pagePath)\n );\n return deserialisedPage;\n })\n )\n ).filter(filterPage => filterFn(filterPage));\n if (childPages.length > 1) {\n for (let j = 1; j < childPages.length; j++) {\n config.setRef(\n sidebarFilePath,\n ['pages', `${i}`, 'childNodes', `${j - 1}`, '$ref'],\n `${childNodeSidebarPath}#/pages/${j}`\n );\n }\n }\n }\n }\n\n function addSidebarDataToFrontmatter(page, dirName) {\n const dirNameLevels = String(dirName)\n .split('/')\n .filter(level => level);\n const sidebarRootDir = path.posix.join(\n '/',\n ...dirNameLevels.slice(0, dirNameLevels.length < 3 ? dirNameLevels.length : 3),\n '/'\n );\n\n config.setRef(\n String(page.fullPath),\n ['sidebarData', '$ref'],\n path.posix.join(String(sidebarRootDir), options.filename, '#', 'pages')\n );\n }\n\n const dirs = await mutableFilesystem.promises.glob('**', {\n onlyDirectories: true,\n cwd: '/'\n });\n for (const dirName of dirs) {\n const sidebarFilePath = path.posix.join(String(dirName), options.filename);\n const pages = (\n await Promise.all(\n (\n (await mutableFilesystem.promises.glob(\n createFileGlob(['*', '*/index'], pageExtensions),\n {\n onlyFiles: true,\n cwd: String(dirName),\n ignore: ignorePages.map(ignore => `**/${ignore}`)\n }\n )) as string[]\n ).map(async pagePath => {\n const deserialisedPage = await serialiser.deserialise(\n pagePath,\n await mutableFilesystem.promises.readFile(pagePath)\n );\n return deserialisedPage;\n })\n )\n )\n .filter(page => filterFn(page))\n .sort((pageA, pageB) => sortFn(pageA, pageB, dirName));\n\n for (let i = 0; i < pages.length; i++) {\n setPageRefs(sidebarFilePath, pages[i], i);\n setChildPageRefs(pages[i], dirName, i, sidebarFilePath);\n addSidebarDataToFrontmatter(pages[i], dirName);\n }\n await mutableFilesystem.promises.writeFile(sidebarFilePath, '[]');\n }\n }\n };\nexport default SidebarPlugin;\n"],"names":["path","createFileGlob","patterns","pageExtensions","Array","isArray","map","pattern","length","join","isSubfolderIndex","page","dirName","fullPath","split","String","sortFn","pageA","pageB","route","sidebar","priority","filterFn","exclude","SidebarPlugin","$beforeSend","mutableFilesystem","options","config","serialiser","ignorePages","setPageRefs","setChildPageRefs","addSidebarDataToFrontmatter","dirs","sidebarFilePath","pages","i","setRef","label","childDirName","childNodeSidebarPath","childPages","j","posix","dirname","filename","Promise","promises","glob","onlyFiles","cwd","ignore","pagePath","deserialisedPage","readFile","deserialise","all","filter","filterPage","dirNameLevels","level","sidebarRootDir","slice","onlyDirectories","sort","writeFile"],"mappings":"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"}
|
package/dist/SiteMapPlugin.js
CHANGED
|
@@ -1,42 +1,96 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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);
|
|
18
22
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
yield sharedFilesystem.promises.writeFile('/sitemap.xml', urlSet);
|
|
23
|
+
function _throw(err) {
|
|
24
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
25
|
+
}
|
|
26
|
+
_next(undefined);
|
|
24
27
|
});
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
import regeneratorRuntime from "regenerator-runtime";
|
|
31
|
+
var SiteMapPlugin = {
|
|
32
|
+
afterUpdate: // Merge together all of the individual sitemaps from each source
|
|
33
|
+
function afterUpdate(_, param) {
|
|
34
|
+
var sharedFilesystem = param.sharedFilesystem, globalConfig = param.globalConfig;
|
|
35
|
+
return _asyncToGenerator(/*#__PURE__*/ regeneratorRuntime.mark(function _callee() {
|
|
36
|
+
var urls, urlSet;
|
|
37
|
+
return regeneratorRuntime.wrap(function _callee$(_ctx) {
|
|
38
|
+
while(1)switch(_ctx.prev = _ctx.next){
|
|
39
|
+
case 0:
|
|
40
|
+
if (Array.isArray(globalConfig.data.sitemaps)) {
|
|
41
|
+
_ctx.next = 2;
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
44
|
+
return _ctx.abrupt("return");
|
|
45
|
+
case 2:
|
|
46
|
+
urls = globalConfig.data.sitemaps.map(function(items) {
|
|
47
|
+
return items.map(function(item) {
|
|
48
|
+
return " <url>\n <loc>".concat(String(item), "</loc>\n <changefreq>weekly</changefreq>\n <priority>0.5</priority>\n </url>");
|
|
49
|
+
}).join("\n");
|
|
50
|
+
});
|
|
51
|
+
urlSet = '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">\n '.concat(urls, "\n\n</urlset>");
|
|
52
|
+
_ctx.next = 6;
|
|
53
|
+
return sharedFilesystem.promises.writeFile("/sitemap.xml", urlSet);
|
|
54
|
+
case 6:
|
|
55
|
+
case "end":
|
|
56
|
+
return _ctx.stop();
|
|
57
|
+
}
|
|
58
|
+
}, _callee);
|
|
59
|
+
}))();
|
|
25
60
|
},
|
|
26
|
-
// Store a sitemap for just this source
|
|
27
|
-
$beforeSend(mutableFilesystem,
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
61
|
+
$beforeSend: // Store a sitemap for just this source
|
|
62
|
+
function $beforeSend(mutableFilesystem, param) {
|
|
63
|
+
var config = param.config, ignorePages = param.ignorePages;
|
|
64
|
+
return _asyncToGenerator(/*#__PURE__*/ regeneratorRuntime.mark(function _callee() {
|
|
65
|
+
return regeneratorRuntime.wrap(function _callee$(_ctx) {
|
|
66
|
+
while(1)switch(_ctx.prev = _ctx.next){
|
|
67
|
+
case 0:
|
|
68
|
+
_ctx.t0 = config;
|
|
69
|
+
_ctx.next = 3;
|
|
70
|
+
return mutableFilesystem.promises.glob("**", {
|
|
71
|
+
onlyFiles: true,
|
|
72
|
+
ignore: ignorePages.map(function(ignore) {
|
|
73
|
+
return "**/".concat(ignore);
|
|
74
|
+
}),
|
|
75
|
+
cwd: "/"
|
|
76
|
+
});
|
|
77
|
+
case 3:
|
|
78
|
+
_ctx.t1 = _ctx.sent;
|
|
79
|
+
_ctx.t2 = [
|
|
80
|
+
_ctx.t1
|
|
81
|
+
];
|
|
82
|
+
_ctx.t3 = {
|
|
83
|
+
sitemaps: _ctx.t2
|
|
84
|
+
};
|
|
85
|
+
_ctx.t0.setData.call(_ctx.t0, _ctx.t3);
|
|
86
|
+
case 7:
|
|
87
|
+
case "end":
|
|
88
|
+
return _ctx.stop();
|
|
89
|
+
}
|
|
90
|
+
}, _callee);
|
|
91
|
+
}))();
|
|
39
92
|
}
|
|
40
93
|
};
|
|
41
|
-
|
|
94
|
+
export default SiteMapPlugin;
|
|
95
|
+
|
|
42
96
|
//# sourceMappingURL=SiteMapPlugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../src/SiteMapPlugin.ts"],"sourcesContent":["import type { Page, Plugin as PluginType } from '@jpmorganchase/mosaic-types';\n\ninterface SiteMapPluginConfigData {\n sitemaps: Array<string[]>;\n}\n\nconst SiteMapPlugin: PluginType<Page, unknown, SiteMapPluginConfigData, SiteMapPluginConfigData> = {\n // Merge together all of the individual sitemaps from each source\n async afterUpdate(_, { sharedFilesystem, globalConfig }) {\n if (!Array.isArray(globalConfig.data.sitemaps)) {\n return;\n }\n\n const urls = globalConfig.data.sitemaps.map(items =>\n items\n .map(\n item =>\n `\\t<url>\\n\\t\\t<loc>${String(\n item\n )}</loc>\\n\\t\\t<changefreq>weekly</changefreq>\\n\\t\\t<priority>0.5</priority>\\n\\t</url>`\n )\n .join('\\n')\n );\n\n const urlSet = `<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\\n ${urls}\\n\\n</urlset>`;\n await sharedFilesystem.promises.writeFile('/sitemap.xml', urlSet);\n },\n // Store a sitemap for just this source\n async $beforeSend(mutableFilesystem, { config, ignorePages }) {\n config.setData({\n sitemaps: [\n (await mutableFilesystem.promises.glob('**', {\n onlyFiles: true,\n ignore: ignorePages.map(ignore => `**/${ignore}`),\n cwd: '/'\n })) as Array<string>\n ]\n });\n }\n};\n\nexport default SiteMapPlugin;\n"],"names":["SiteMapPlugin","afterUpdate","_","sharedFilesystem","globalConfig","urls","urlSet","Array","isArray","data","sitemaps","map","items","item","String","join","promises","writeFile","$beforeSend","mutableFilesystem","config","ignorePages","glob","onlyFiles","ignore","cwd","setData"],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,IAAMA,aAAa,GAAgF;IAE3FC,WAAW,EADjB,iEAAiE;IACjE,SAAMA,WAAW,CAACC,CAAC,EAAE,KAAkC;YAAhCC,gBAAgB,GAAlB,KAAkC,CAAhCA,gBAAgB,EAAEC,YAAY,GAAhC,KAAkC,CAAdA,YAAY;eAAI,wDAAA,mBAAA;gBAKjDC,IAAI,EAWJC,MAAM;;;;4BAfPC,KAAK,CAACC,OAAO,CAACJ,YAAY,CAACK,IAAI,CAACC,QAAQ,CAAC;;;;;;wBAIxCL,IAAI,GAAGD,YAAY,CAACK,IAAI,CAACC,QAAQ,CAACC,GAAG,CAACC,SAAAA,KAAK;mCAC/CA,KAAK,CACFD,GAAG,CACFE,SAAAA,IAAI;uCACF,AAAC,iBAAkB,CAEjB,MAAmF,CAFhEC,MAAM,CACzBD,IAAI,CACL,EAAC,gFAAmF,CAAC;6BAAA,CACzF,CACAE,IAAI,CAAC,IAAI,CAAC;yBAAA,CACd,CAAC;wBAEIT,MAAM,GAAG,AAAC,iEAA+D,CAAO,MAAa,CAAlBD,IAAI,EAAC,eAAa,CAAC,CAAC;;+BAC/FF,gBAAgB,CAACa,QAAQ,CAACC,SAAS,CAAC,cAAc,EAAEX,MAAM,CAAC;;;;;;SAClE,EAAA;KAAA;IAEKY,WAAW,EADjB,uCAAuC;IACvC,SAAMA,WAAW,CAACC,iBAAiB,EAAE,KAAuB;YAArBC,MAAM,GAAR,KAAuB,CAArBA,MAAM,EAAEC,WAAW,GAArB,KAAuB,CAAbA,WAAW;eAAI,wDAAA,mBAAA;;;;kCAC5DD,MAAM;;+BAEKD,iBAAiB,CAACH,QAAQ,CAACM,IAAI,CAAC,IAAI,EAAE;4BAC3CC,SAAS,EAAE,IAAI;4BACfC,MAAM,EAAEH,WAAW,CAACV,GAAG,CAACa,SAAAA,MAAM;uCAAI,AAAC,KAAG,CAAS,MAAA,CAAPA,MAAM,CAAE;6BAAA,CAAC;4BACjDC,GAAG,EAAE,GAAG;yBACT,CAAC;;;kCALM;;yBAMT;kCAPY;4BACbf,QAAQ;yBAOT;wBARDU,QAAOM,OAAO,uBAQZ,CAAA;;;;;;SACH,EAAA;KAAA;CACF,AAAC;AAEF,eAAe1B,aAAa,CAAC"}
|