@jpmorganchase/mosaic-plugins 0.1.0-beta.8 → 0.1.0-beta.9
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 -0
- package/dist/$AliasPlugin.js +60 -227
- package/dist/$AliasPlugin.js.map +1 -1
- package/dist/$CodeModPlugin.js +34 -118
- package/dist/$CodeModPlugin.js.map +1 -1
- package/dist/$RefPlugin.js +121 -450
- package/dist/$RefPlugin.js.map +1 -1
- package/dist/$TagPlugin.js +71 -234
- package/dist/$TagPlugin.js.map +1 -1
- package/dist/BreadcrumbsPlugin.js +45 -114
- package/dist/BreadcrumbsPlugin.js.map +1 -1
- package/dist/LazyPagePlugin.js +81 -252
- package/dist/LazyPagePlugin.js.map +1 -1
- package/dist/LocalFolderSavePlugin.js +43 -160
- package/dist/LocalFolderSavePlugin.js.map +1 -1
- package/dist/NextPrevPagePlugin.js +43 -153
- package/dist/NextPrevPagePlugin.js.map +1 -1
- package/dist/PagesWithoutFileExtPlugin.js +34 -117
- package/dist/PagesWithoutFileExtPlugin.js.map +1 -1
- package/dist/SharedConfigPlugin.js +39 -170
- package/dist/SharedConfigPlugin.js.map +1 -1
- package/dist/SidebarPlugin.js +84 -312
- package/dist/SidebarPlugin.js.map +1 -1
- package/dist/SiteMapPlugin.js +36 -90
- package/dist/SiteMapPlugin.js.map +1 -1
- package/dist/utils/normaliseRefs.js +74 -276
- package/dist/utils/normaliseRefs.js.map +1 -1
- package/package.json +6 -6
- package/dist/__tests__/BreadcrumbsPlugin.test.js +0 -160
- package/dist/__tests__/BreadcrumbsPlugin.test.js.map +0 -1
package/dist/SidebarPlugin.js
CHANGED
|
@@ -1,83 +1,41 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
return
|
|
5
|
-
}
|
|
6
|
-
function
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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";
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
const path_1 = __importDefault(require("path"));
|
|
57
16
|
function createFileGlob(patterns, pageExtensions) {
|
|
58
17
|
if (Array.isArray(patterns)) {
|
|
59
|
-
return patterns.map(
|
|
60
|
-
return createFileGlob(pattern, pageExtensions);
|
|
61
|
-
});
|
|
18
|
+
return patterns.map(pattern => createFileGlob(pattern, pageExtensions));
|
|
62
19
|
}
|
|
63
20
|
if (pageExtensions.length === 1) {
|
|
64
|
-
return
|
|
21
|
+
return `${patterns}${pageExtensions[0]}`;
|
|
65
22
|
}
|
|
66
|
-
return
|
|
23
|
+
return `${patterns}{${pageExtensions.join(',')}}`;
|
|
67
24
|
}
|
|
68
25
|
function isSubfolderIndex(page, dirName) {
|
|
69
|
-
return page.fullPath.split(
|
|
26
|
+
return page.fullPath.split('/').length === String(dirName).split('/').length + 2;
|
|
70
27
|
}
|
|
71
28
|
function sortFn(pageA, pageB, dirName) {
|
|
72
29
|
// Always pin /index to the front
|
|
73
|
-
|
|
30
|
+
const route = `${dirName}/index`;
|
|
74
31
|
if (pageA.route === route) {
|
|
75
32
|
return -1;
|
|
76
33
|
}
|
|
77
34
|
if (pageB.route === route) {
|
|
78
35
|
return 1;
|
|
79
36
|
}
|
|
80
|
-
return (pageB.sidebar && pageB.sidebar.priority ? pageB.sidebar.priority : -1) -
|
|
37
|
+
return ((pageB.sidebar && pageB.sidebar.priority ? pageB.sidebar.priority : -1) -
|
|
38
|
+
(pageA.sidebar && pageA.sidebar.priority ? pageA.sidebar.priority : -1));
|
|
81
39
|
}
|
|
82
40
|
function filterFn(page) {
|
|
83
41
|
return !(page.sidebar && page.sidebar.exclude);
|
|
@@ -85,257 +43,71 @@ function filterFn(page) {
|
|
|
85
43
|
/**
|
|
86
44
|
* Sorts the pages in a folder by priority and then exports a JSON file (name: `options.filename`) with the
|
|
87
45
|
* sidebar tree from that directory downwards and adds sidebar data into frontmatter for each page.
|
|
88
|
-
*/
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
return
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
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), {
|
|
46
|
+
*/
|
|
47
|
+
const SidebarPlugin = {
|
|
48
|
+
$beforeSend(mutableFilesystem, { config, serialiser, ignorePages, pageExtensions }, options) {
|
|
49
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
50
|
+
function setPageRefs(sidebarFilePath, page, i) {
|
|
51
|
+
config.setRef(sidebarFilePath, ['pages', `${i}`, 'id', '$ref'], `${page.fullPath}#/route`);
|
|
52
|
+
const label = page.sidebar && page.sidebar.label
|
|
53
|
+
? `${page.fullPath}#/sidebar/label`
|
|
54
|
+
: `${page.fullPath}#/title`;
|
|
55
|
+
config.setRef(sidebarFilePath, ['pages', `${i}`, 'name', '$ref'], label);
|
|
56
|
+
config.setRef(sidebarFilePath, ['pages', `${i}`, 'data', 'link', '$ref'], `${page.fullPath}#/route`);
|
|
57
|
+
}
|
|
58
|
+
function setChildPageRefs(page, dirName, i, sidebarFilePath) {
|
|
59
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
60
|
+
if (isSubfolderIndex(page, dirName)) {
|
|
61
|
+
const childDirName = path_1.default.posix.dirname(page.fullPath);
|
|
62
|
+
const childNodeSidebarPath = path_1.default.posix.join(childDirName, options.filename);
|
|
63
|
+
const childPages = (yield Promise.all((yield mutableFilesystem.promises.glob(createFileGlob(['*', '*/index'], pageExtensions), {
|
|
240
64
|
onlyFiles: true,
|
|
241
|
-
cwd: String(
|
|
242
|
-
ignore: ignorePages.map(
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
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);
|
|
65
|
+
cwd: String(childDirName),
|
|
66
|
+
ignore: ignorePages.map(ignore => `**/${ignore}`)
|
|
67
|
+
})).map((pagePath) => __awaiter(this, void 0, void 0, function* () {
|
|
68
|
+
const deserialisedPage = yield serialiser.deserialise(pagePath, yield mutableFilesystem.promises.readFile(pagePath));
|
|
69
|
+
return deserialisedPage;
|
|
70
|
+
})))).filter(filterPage => filterFn(filterPage));
|
|
71
|
+
if (childPages.length > 1) {
|
|
72
|
+
for (let j = 1; j < childPages.length; j++) {
|
|
73
|
+
config.setRef(sidebarFilePath, ['pages', `${i}`, 'childNodes', `${j - 1}`, '$ref'], `${childNodeSidebarPath}#/pages/${j}`);
|
|
74
|
+
}
|
|
286
75
|
}
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
return _ctx.finish(36);
|
|
318
|
-
case 44:
|
|
319
|
-
case "end":
|
|
320
|
-
return _ctx.stop();
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
function addSidebarDataToFrontmatter(page, dirName) {
|
|
80
|
+
const dirNameLevels = String(dirName)
|
|
81
|
+
.split('/')
|
|
82
|
+
.filter(level => level);
|
|
83
|
+
const sidebarRootDir = path_1.default.posix.join('/', ...dirNameLevels.slice(0, dirNameLevels.length < 3 ? dirNameLevels.length : 3), '/');
|
|
84
|
+
config.setRef(String(page.fullPath), ['sidebarData', '$ref'], path_1.default.posix.join(String(sidebarRootDir), options.filename, '#', 'pages'));
|
|
85
|
+
}
|
|
86
|
+
const dirs = yield mutableFilesystem.promises.glob('**', {
|
|
87
|
+
onlyDirectories: true,
|
|
88
|
+
cwd: '/'
|
|
89
|
+
});
|
|
90
|
+
for (const dirName of dirs) {
|
|
91
|
+
const sidebarFilePath = path_1.default.posix.join(String(dirName), options.filename);
|
|
92
|
+
const pages = (yield Promise.all((yield mutableFilesystem.promises.glob(createFileGlob(['*', '*/index'], pageExtensions), {
|
|
93
|
+
onlyFiles: true,
|
|
94
|
+
cwd: String(dirName),
|
|
95
|
+
ignore: ignorePages.map(ignore => `**/${ignore}`)
|
|
96
|
+
})).map((pagePath) => __awaiter(this, void 0, void 0, function* () {
|
|
97
|
+
const deserialisedPage = yield serialiser.deserialise(pagePath, yield mutableFilesystem.promises.readFile(pagePath));
|
|
98
|
+
return deserialisedPage;
|
|
99
|
+
}))))
|
|
100
|
+
.filter(page => filterFn(page))
|
|
101
|
+
.sort((pageA, pageB) => sortFn(pageA, pageB, dirName));
|
|
102
|
+
for (let i = 0; i < pages.length; i++) {
|
|
103
|
+
setPageRefs(sidebarFilePath, pages[i], i);
|
|
104
|
+
setChildPageRefs(pages[i], dirName, i, sidebarFilePath);
|
|
105
|
+
addSidebarDataToFrontmatter(pages[i], dirName);
|
|
321
106
|
}
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
32,
|
|
326
|
-
36,
|
|
327
|
-
44
|
|
328
|
-
],
|
|
329
|
-
[
|
|
330
|
-
37,
|
|
331
|
-
,
|
|
332
|
-
39,
|
|
333
|
-
43
|
|
334
|
-
]
|
|
335
|
-
]);
|
|
336
|
-
}))();
|
|
107
|
+
yield mutableFilesystem.promises.writeFile(sidebarFilePath, '[]');
|
|
108
|
+
}
|
|
109
|
+
});
|
|
337
110
|
}
|
|
338
111
|
};
|
|
339
|
-
|
|
340
|
-
|
|
112
|
+
exports.default = SidebarPlugin;
|
|
341
113
|
//# sourceMappingURL=SidebarPlugin.js.map
|
|
@@ -1 +1 @@
|
|
|
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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"}
|
|
1
|
+
{"version":3,"file":"SidebarPlugin.js","sourceRoot":"","sources":["../src/SidebarPlugin.ts"],"names":[],"mappings":"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"}
|
package/dist/SiteMapPlugin.js
CHANGED
|
@@ -1,96 +1,42 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
reject(
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
15
|
-
function
|
|
16
|
-
|
|
17
|
-
|
|
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);
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const SiteMapPlugin = {
|
|
13
|
+
// Merge together all of the individual sitemaps from each source
|
|
14
|
+
afterUpdate(_, { sharedFilesystem, globalConfig }) {
|
|
15
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
16
|
+
if (!Array.isArray(globalConfig.data.sitemaps)) {
|
|
17
|
+
return;
|
|
25
18
|
}
|
|
26
|
-
|
|
19
|
+
const urls = globalConfig.data.sitemaps.map(items => items
|
|
20
|
+
.map(item => `\t<url>\n\t\t<loc>${String(item)}</loc>\n\t\t<changefreq>weekly</changefreq>\n\t\t<priority>0.5</priority>\n\t</url>`)
|
|
21
|
+
.join('\n'));
|
|
22
|
+
const urlSet = `<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">\n ${urls}\n\n</urlset>`;
|
|
23
|
+
yield sharedFilesystem.promises.writeFile('/sitemap.xml', urlSet);
|
|
27
24
|
});
|
|
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
|
-
}))();
|
|
60
25
|
},
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
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
|
-
}))();
|
|
26
|
+
// Store a sitemap for just this source
|
|
27
|
+
$beforeSend(mutableFilesystem, { config, ignorePages }) {
|
|
28
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
29
|
+
config.setData({
|
|
30
|
+
sitemaps: [
|
|
31
|
+
(yield mutableFilesystem.promises.glob('**', {
|
|
32
|
+
onlyFiles: true,
|
|
33
|
+
ignore: ignorePages.map(ignore => `**/${ignore}`),
|
|
34
|
+
cwd: '/'
|
|
35
|
+
}))
|
|
36
|
+
]
|
|
37
|
+
});
|
|
38
|
+
});
|
|
92
39
|
}
|
|
93
40
|
};
|
|
94
|
-
|
|
95
|
-
|
|
41
|
+
exports.default = SiteMapPlugin;
|
|
96
42
|
//# sourceMappingURL=SiteMapPlugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"SiteMapPlugin.js","sourceRoot":"","sources":["../src/SiteMapPlugin.ts"],"names":[],"mappings":";;;;;;;;;;;AAMA,MAAM,aAAa,GAAgF;IACjG,iEAAiE;IAC3D,WAAW,CAAC,CAAC,EAAE,EAAE,gBAAgB,EAAE,YAAY,EAAE;;YACrD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAC9C,OAAO;aACR;YAED,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAClD,KAAK;iBACF,GAAG,CACF,IAAI,CAAC,EAAE,CACL,qBAAqB,MAAM,CACzB,IAAI,CACL,qFAAqF,CACzF;iBACA,IAAI,CAAC,IAAI,CAAC,CACd,CAAC;YAEF,MAAM,MAAM,GAAG,kEAAkE,IAAI,eAAe,CAAC;YACrG,MAAM,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QACpE,CAAC;KAAA;IACD,uCAAuC;IACjC,WAAW,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE;;YAC1D,MAAM,CAAC,OAAO,CAAC;gBACb,QAAQ,EAAE;oBACR,CAAC,MAAM,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE;wBAC3C,SAAS,EAAE,IAAI;wBACf,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,MAAM,EAAE,CAAC;wBACjD,GAAG,EAAE,GAAG;qBACT,CAAC,CAAkB;iBACrB;aACF,CAAC,CAAC;QACL,CAAC;KAAA;CACF,CAAC;AAEF,kBAAe,aAAa,CAAC"}
|