@jpmorganchase/mosaic-plugins 0.1.0-beta.19 → 0.1.0-beta.20
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/dist/SidebarPlugin.js +108 -54
- package/dist/SidebarPlugin.js.map +1 -1
- package/package.json +7 -6
package/dist/SidebarPlugin.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import path from 'path';
|
|
2
2
|
import { sidebarDataLayoutSchema } from '@jpmorganchase/mosaic-schemas';
|
|
3
|
+
import { cloneDeep } from 'lodash-es';
|
|
4
|
+
// What level the sidebar.json files are created
|
|
5
|
+
const UserJourneyRootLevel = 2;
|
|
3
6
|
function createFileGlob(patterns, pageExtensions) {
|
|
4
7
|
if (Array.isArray(patterns)) {
|
|
5
8
|
return patterns.map(pattern => createFileGlob(pattern, pageExtensions));
|
|
@@ -9,10 +12,7 @@ function createFileGlob(patterns, pageExtensions) {
|
|
|
9
12
|
}
|
|
10
13
|
return `${patterns}{${pageExtensions.join(',')}}`;
|
|
11
14
|
}
|
|
12
|
-
function
|
|
13
|
-
return page.fullPath.split('/').length === String(dirName).split('/').length + 2;
|
|
14
|
-
}
|
|
15
|
-
function sortFn(pageA, pageB, dirName) {
|
|
15
|
+
function sortPagesByPriority(pageA, pageB, dirName) {
|
|
16
16
|
// Always pin /index to the front
|
|
17
17
|
const route = `${dirName}/index`;
|
|
18
18
|
if (pageA.route === route) {
|
|
@@ -24,7 +24,15 @@ function sortFn(pageA, pageB, dirName) {
|
|
|
24
24
|
return ((pageB.sidebar && pageB.sidebar.priority ? pageB.sidebar.priority : -1) -
|
|
25
25
|
(pageA.sidebar && pageA.sidebar.priority ? pageA.sidebar.priority : -1));
|
|
26
26
|
}
|
|
27
|
-
function
|
|
27
|
+
function getPageLevel(page) {
|
|
28
|
+
return page.route.split('/').length - 2;
|
|
29
|
+
}
|
|
30
|
+
function sortByPathLevel(pathA, pathB) {
|
|
31
|
+
const pathALevel = pathA.split('/').length;
|
|
32
|
+
const pathBLevel = pathB.split('/').length;
|
|
33
|
+
return pathBLevel - pathALevel;
|
|
34
|
+
}
|
|
35
|
+
function filterPages(page) {
|
|
28
36
|
return (!(page.sidebar && page.sidebar.exclude) &&
|
|
29
37
|
sidebarDataLayoutSchema.safeParse(page.layout).success);
|
|
30
38
|
}
|
|
@@ -34,63 +42,109 @@ function filterFn(page) {
|
|
|
34
42
|
*/
|
|
35
43
|
const SidebarPlugin = {
|
|
36
44
|
async $beforeSend(mutableFilesystem, { config, serialiser, ignorePages, pageExtensions }, options) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
45
|
+
/**
|
|
46
|
+
* Create a list of pages that should be used to build a sidebar.json
|
|
47
|
+
* @param dirName - root path of sidebar
|
|
48
|
+
*/
|
|
49
|
+
async function createPageList(dirName) {
|
|
50
|
+
let pageList = await Promise.all((await mutableFilesystem.promises.glob(createFileGlob(['**'], pageExtensions), {
|
|
51
|
+
cwd: String(dirName),
|
|
52
|
+
ignore: ignorePages.map(ignore => `**/${ignore}`)
|
|
53
|
+
})).map(async (pagePath) => await serialiser.deserialise(pagePath, await mutableFilesystem.promises.readFile(pagePath))));
|
|
54
|
+
pageList = pageList
|
|
55
|
+
.filter(page => filterPages(page))
|
|
56
|
+
.sort((pageA, pageB) => sortPagesByPriority(pageA, pageB, dirName));
|
|
57
|
+
return pageList;
|
|
44
58
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
if (
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
59
|
+
/**
|
|
60
|
+
* Group the pages into parent/child hierachy
|
|
61
|
+
* @param pages - sidebar pages
|
|
62
|
+
*/
|
|
63
|
+
function createGroupMap(pages) {
|
|
64
|
+
return pages.reduce((result, page) => {
|
|
65
|
+
const name = page.sidebar?.label || page.title;
|
|
66
|
+
const id = page.route;
|
|
67
|
+
const isGroup = /\/index$/.test(page.route);
|
|
68
|
+
const groupPath = path.posix.dirname(page.fullPath);
|
|
69
|
+
const level = getPageLevel(page);
|
|
70
|
+
const newChildNode = { id, name, data: { level, link: page.route }, childNodes: [] };
|
|
71
|
+
if (isGroup) {
|
|
72
|
+
result[groupPath] = {
|
|
73
|
+
...newChildNode,
|
|
74
|
+
...result[groupPath]
|
|
75
|
+
};
|
|
61
76
|
}
|
|
62
|
-
|
|
77
|
+
else {
|
|
78
|
+
const childNodes = Object.prototype.hasOwnProperty.call(result, groupPath)
|
|
79
|
+
? result[groupPath].childNodes
|
|
80
|
+
: [];
|
|
81
|
+
result[groupPath] = {
|
|
82
|
+
...result[groupPath],
|
|
83
|
+
childNodes: [...childNodes, newChildNode]
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
return result;
|
|
87
|
+
}, {});
|
|
63
88
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
89
|
+
/**
|
|
90
|
+
* Link the group map to their parents
|
|
91
|
+
* @param groupMap - unlinked groups of pages
|
|
92
|
+
* @param dirName - root path of sidebar
|
|
93
|
+
*/
|
|
94
|
+
function linkGroupMap(groupMap, dirName) {
|
|
95
|
+
const linkedGroupMap = cloneDeep(groupMap);
|
|
96
|
+
const sortedGroupMapKeys = Object.keys(linkedGroupMap).sort(sortByPathLevel);
|
|
97
|
+
sortedGroupMapKeys.forEach(groupPath => {
|
|
98
|
+
let parentGroupPath = path.posix.dirname(groupPath);
|
|
99
|
+
if (linkedGroupMap[parentGroupPath] === undefined) {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
linkedGroupMap[parentGroupPath].childNodes = [
|
|
103
|
+
...linkedGroupMap[parentGroupPath].childNodes,
|
|
104
|
+
linkedGroupMap[groupPath]
|
|
105
|
+
];
|
|
106
|
+
});
|
|
107
|
+
return [linkedGroupMap[dirName]];
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Link each page to a sidebar.json file via ref
|
|
111
|
+
* @param pages - sidebar pages
|
|
112
|
+
* @param dirName - root path of sidebar
|
|
113
|
+
* @param maxLevel - max level
|
|
114
|
+
*/
|
|
115
|
+
function addSidebarDataToFrontmatter(pages, dirName, maxLevel = Infinity) {
|
|
116
|
+
pages.forEach(page => {
|
|
117
|
+
const pageLevel = getPageLevel(page);
|
|
118
|
+
// A page can only have one sidebar but different levels have different sidebars
|
|
119
|
+
// this enables us to support a root index that contains all pages
|
|
120
|
+
if (pageLevel <= maxLevel) {
|
|
121
|
+
// set Ref for pages below root and not above root
|
|
122
|
+
config.setRef(String(page.fullPath), ['sidebarData', '$ref'], path.posix.join(dirName, options.filename, '#', 'pages'));
|
|
123
|
+
}
|
|
124
|
+
});
|
|
70
125
|
}
|
|
71
|
-
const
|
|
126
|
+
const rootUserJourneys = await mutableFilesystem.promises.glob('**', {
|
|
72
127
|
onlyDirectories: true,
|
|
73
|
-
cwd: '/'
|
|
128
|
+
cwd: '/',
|
|
129
|
+
deep: UserJourneyRootLevel
|
|
74
130
|
});
|
|
75
|
-
|
|
131
|
+
rootUserJourneys.forEach(async (dirName) => {
|
|
76
132
|
const sidebarFilePath = path.posix.join(String(dirName), options.filename);
|
|
77
|
-
const pages =
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
setChildPageRefs(pages[i], dirName, i, sidebarFilePath);
|
|
90
|
-
addSidebarDataToFrontmatter(pages[i], dirName);
|
|
133
|
+
const pages = await createPageList(dirName);
|
|
134
|
+
const groupMap = createGroupMap(pages);
|
|
135
|
+
const sidebarData = linkGroupMap(groupMap, dirName);
|
|
136
|
+
await mutableFilesystem.promises.writeFile(sidebarFilePath, JSON.stringify({ pages: sidebarData }));
|
|
137
|
+
const dirNameLevel = dirName.split('/').length - 1;
|
|
138
|
+
let maxLevel;
|
|
139
|
+
// Add the sidebar frontmatter to each page, via ref
|
|
140
|
+
// e.g /mosaic/docs/sidebar.json -> /mosaic/docs/index.mdx
|
|
141
|
+
// The root directory contains it's own sidebar.json with everything inside it
|
|
142
|
+
// /mosaic/sidebar.json > /mosaic/index.mdx
|
|
143
|
+
if (dirNameLevel < UserJourneyRootLevel) {
|
|
144
|
+
maxLevel = UserJourneyRootLevel - 1;
|
|
91
145
|
}
|
|
92
|
-
|
|
93
|
-
}
|
|
146
|
+
addSidebarDataToFrontmatter(pages, dirName, maxLevel);
|
|
147
|
+
});
|
|
94
148
|
}
|
|
95
149
|
};
|
|
96
150
|
export default SidebarPlugin;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SidebarPlugin.js","sourceRoot":"","sources":["../src/SidebarPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"SidebarPlugin.js","sourceRoot":"","sources":["../src/SidebarPlugin.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jpmorganchase/mosaic-plugins",
|
|
3
|
-
"version": "0.1.0-beta.
|
|
3
|
+
"version": "0.1.0-beta.20",
|
|
4
4
|
"author": "",
|
|
5
5
|
"description": "Mosaic plugins for core file system",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -32,17 +32,18 @@
|
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@apidevtools/json-schema-ref-parser": "^9.0.9",
|
|
35
|
-
"@jpmorganchase/mosaic-schemas": "^0.1.0-beta.
|
|
36
|
-
"@jpmorganchase/mosaic-serialisers": "^0.1.0-beta.
|
|
37
|
-
"@jpmorganchase/mosaic-source-git-repo": "^0.1.0-beta.
|
|
38
|
-
"@jpmorganchase/mosaic-source-local-folder": "^0.1.0-beta.
|
|
39
|
-
"@jpmorganchase/mosaic-types": "^0.1.0-beta.
|
|
35
|
+
"@jpmorganchase/mosaic-schemas": "^0.1.0-beta.20",
|
|
36
|
+
"@jpmorganchase/mosaic-serialisers": "^0.1.0-beta.20",
|
|
37
|
+
"@jpmorganchase/mosaic-source-git-repo": "^0.1.0-beta.20",
|
|
38
|
+
"@jpmorganchase/mosaic-source-local-folder": "^0.1.0-beta.20",
|
|
39
|
+
"@jpmorganchase/mosaic-types": "^0.1.0-beta.20",
|
|
40
40
|
"@types/github-slugger": "^1.3.0",
|
|
41
41
|
"@vcarl/remark-headings": "^0.1.0",
|
|
42
42
|
"fs-extra": "^10.1.0",
|
|
43
43
|
"github-slugger": "^1.4.0",
|
|
44
44
|
"lodash-es": "^4.17.21",
|
|
45
45
|
"memfs": "^3.4.12",
|
|
46
|
+
"react-pro-sidebar": "^1.0.0",
|
|
46
47
|
"reading-time": "^1.5.0",
|
|
47
48
|
"remark-mdx": "^2.1.5",
|
|
48
49
|
"remark-parse": "^10.0.1",
|