@podlite/publisher 0.0.4 → 0.0.5
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 +10 -0
- package/esm/docs-injector-plugin.d.ts +6 -0
- package/esm/docs-injector-plugin.js +11 -0
- package/esm/docs-injector-plugin.js.map +1 -0
- package/esm/dump-pages-plugin.d.ts +6 -0
- package/esm/dump-pages-plugin.js +21 -0
- package/esm/dump-pages-plugin.js.map +1 -0
- package/esm/include-resolve-plugin.d.ts +3 -0
- package/esm/include-resolve-plugin.js +41 -0
- package/esm/include-resolve-plugin.js.map +1 -0
- package/esm/prev-next-plugin.d.ts +3 -0
- package/esm/prev-next-plugin.js +30 -0
- package/esm/prev-next-plugin.js.map +1 -0
- package/esm/shared.d.ts +1 -0
- package/esm/shared.js +71 -1
- package/esm/shared.js.map +1 -1
- package/esm/site-data-plugin.js +14 -18
- package/esm/site-data-plugin.js.map +1 -1
- package/lib/docs-injector-plugin.d.ts +6 -0
- package/lib/docs-injector-plugin.js +13 -0
- package/lib/dump-pages-plugin.d.ts +6 -0
- package/lib/dump-pages-plugin.js +23 -0
- package/lib/include-resolve-plugin.d.ts +3 -0
- package/lib/include-resolve-plugin.js +43 -0
- package/lib/prev-next-plugin.d.ts +3 -0
- package/lib/prev-next-plugin.js +32 -0
- package/lib/shared.d.ts +1 -0
- package/lib/shared.js +72 -1
- package/lib/site-data-plugin.js +13 -17
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
## Upcoming
|
|
4
4
|
|
|
5
|
+
## 0.0.5
|
|
6
|
+
|
|
7
|
+
- initial support for `=Include` blocks and Selectors (https://podlite.org/specification#Selectors)
|
|
8
|
+
- add support for embeded data using `=data` block
|
|
9
|
+
- refactor existed and added new plugins:
|
|
10
|
+
- docs-injector-plugin
|
|
11
|
+
- dump-pages-plugin
|
|
12
|
+
- include-resolve-plugin.spec
|
|
13
|
+
- prev-next-plugin
|
|
14
|
+
|
|
5
15
|
## 0.0.4
|
|
6
16
|
|
|
7
17
|
- add template configuration attribute for site: `:templateFile<file path>`
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
const plugin = ({ docs = [] }) => {
|
|
2
|
+
const onExit = ctx => {
|
|
3
|
+
return { ...ctx };
|
|
4
|
+
};
|
|
5
|
+
const onProcess = (recs) => {
|
|
6
|
+
return [...recs, ...docs];
|
|
7
|
+
};
|
|
8
|
+
return [onProcess, onExit];
|
|
9
|
+
};
|
|
10
|
+
export default plugin;
|
|
11
|
+
//# sourceMappingURL=docs-injector-plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docs-injector-plugin.js","sourceRoot":"","sources":["../src/docs-injector-plugin.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAgC,EAAoB,EAAE;IAC/E,MAAM,MAAM,GAAG,GAAG,CAAC,EAAE;QACnB,OAAO,EAAE,GAAG,GAAG,EAAE,CAAA;IACnB,CAAC,CAAA;IACD,MAAM,SAAS,GAAG,CAAC,IAAqB,EAAE,EAAE;QAC1C,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,CAAA;IAC3B,CAAC,CAAA;IAED,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;AAC5B,CAAC,CAAA;AAED,eAAe,MAAM,CAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { BUILT_PATH } from './constants';
|
|
2
|
+
import { streamWriteArray } from '.';
|
|
3
|
+
const plugin = ({ built_path = BUILT_PATH }) => {
|
|
4
|
+
let allRecords = [];
|
|
5
|
+
const outCtx = {};
|
|
6
|
+
const onExit = ctx => {
|
|
7
|
+
if (!ctx.testing) {
|
|
8
|
+
streamWriteArray(allRecords, `${built_path}/pages.json`)
|
|
9
|
+
.then(() => console.log('All pages written successfully'))
|
|
10
|
+
.catch(err => console.error('Error writing file:', err));
|
|
11
|
+
}
|
|
12
|
+
return { ...ctx, ...outCtx };
|
|
13
|
+
};
|
|
14
|
+
const onProcess = (recs) => {
|
|
15
|
+
allRecords.push(...recs);
|
|
16
|
+
return [...recs];
|
|
17
|
+
};
|
|
18
|
+
return [onProcess, onExit];
|
|
19
|
+
};
|
|
20
|
+
export default plugin;
|
|
21
|
+
//# sourceMappingURL=dump-pages-plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dump-pages-plugin.js","sourceRoot":"","sources":["../src/dump-pages-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAA4D,gBAAgB,EAAE,MAAM,GAAG,CAAA;AAK9F,MAAM,MAAM,GAAG,CAAC,EAAE,UAAU,GAAG,UAAU,EAA6B,EAAoB,EAAE;IAC1F,IAAI,UAAU,GAAoB,EAAE,CAAA;IAEpC,MAAM,MAAM,GAA4B,EAAE,CAAA;IAC1C,MAAM,MAAM,GAAG,GAAG,CAAC,EAAE;QACnB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;YAChB,gBAAgB,CAAC,UAAU,EAAE,GAAG,UAAU,aAAa,CAAC;iBACrD,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;iBACzD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC,CAAA;SAC3D;QACD,OAAO,EAAE,GAAG,GAAG,EAAE,GAAG,MAAM,EAAE,CAAA;IAC9B,CAAC,CAAA;IACD,MAAM,SAAS,GAAG,CAAC,IAAqB,EAAE,EAAE;QAC1C,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;QACxB,OAAO,CAAC,GAAG,IAAI,CAAC,CAAA;IAClB,CAAC,CAAA;IAED,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;AAC5B,CAAC,CAAA;AAED,eAAe,MAAM,CAAA"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { getTextContentFromNode, makeInterator } from '@podlite/schema';
|
|
2
|
+
import { runSelector } from '.';
|
|
3
|
+
const plugin = () => {
|
|
4
|
+
const outCtx = {};
|
|
5
|
+
const docsMap = new Map();
|
|
6
|
+
const onExit = ctx => ({ ...ctx, ...outCtx });
|
|
7
|
+
const processNode = (node, recs) => {
|
|
8
|
+
const rules = {
|
|
9
|
+
Include: node => {
|
|
10
|
+
const { content } = node;
|
|
11
|
+
const selector = getTextContentFromNode(content).trim();
|
|
12
|
+
console.warn(`[include] start resolve selector: ${selector}`);
|
|
13
|
+
if (selector) {
|
|
14
|
+
// try to resolve selector
|
|
15
|
+
const [block] = runSelector(selector, recs);
|
|
16
|
+
if (typeof block === 'object' && !('file' in block)) {
|
|
17
|
+
const updated = { content: block };
|
|
18
|
+
return { ...node, ...updated };
|
|
19
|
+
}
|
|
20
|
+
if (!block) {
|
|
21
|
+
console.warn(`[plugin: resolve ] selector ${selector} not found`);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return node;
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
return makeInterator(rules)(node, {});
|
|
28
|
+
};
|
|
29
|
+
const onProcess = (recs) => {
|
|
30
|
+
// convert all doc: links to file:: links
|
|
31
|
+
const docsWithIncludesResolves = recs.map(item => {
|
|
32
|
+
const node = processNode(item.node, recs);
|
|
33
|
+
// const node = item.node
|
|
34
|
+
return { ...item, node };
|
|
35
|
+
});
|
|
36
|
+
return docsWithIncludesResolves;
|
|
37
|
+
};
|
|
38
|
+
return [onProcess, onExit];
|
|
39
|
+
};
|
|
40
|
+
export default plugin;
|
|
41
|
+
//# sourceMappingURL=include-resolve-plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"include-resolve-plugin.js","sourceRoot":"","sources":["../src/include-resolve-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,sBAAsB,EAAa,aAAa,EAAW,MAAM,iBAAiB,CAAA;AACnH,OAAO,EAA4D,WAAW,EAAE,MAAM,GAAG,CAAA;AAEzF,MAAM,MAAM,GAAG,GAAqB,EAAE;IACpC,MAAM,MAAM,GAA4B,EAAE,CAAA;IAC1C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAE,CAAA;IACzB,MAAM,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC,CAAA;IAC7C,MAAM,WAAW,GAAG,CAAC,IAAa,EAAE,IAAqB,EAAE,EAAE;QAC3D,MAAM,KAAK,GAAG;YACZ,OAAO,EAAE,IAAI,CAAC,EAAE;gBACd,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;gBACxB,MAAM,QAAQ,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;gBACvD,OAAO,CAAC,IAAI,CAAC,qCAAqC,QAAQ,EAAE,CAAC,CAAA;gBAC7D,IAAI,QAAQ,EAAE;oBACZ,0BAA0B;oBAC1B,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;oBAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,EAAE;wBACnD,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;wBAClC,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,EAAE,CAAA;qBAC/B;oBACD,IAAI,CAAC,KAAK,EAAE;wBACV,OAAO,CAAC,IAAI,CAAC,+BAA+B,QAAQ,YAAY,CAAC,CAAA;qBAClE;iBACF;gBACD,OAAO,IAAI,CAAA;YACb,CAAC;SACF,CAAA;QACD,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IACvC,CAAC,CAAA;IACD,MAAM,SAAS,GAAG,CAAC,IAAqB,EAAE,EAAE;QAC1C,yCAAyC;QACzC,MAAM,wBAAwB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAC/C,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YACzC,2BAA2B;YAC3B,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,CAAA;QAC1B,CAAC,CAAC,CAAA;QAEF,OAAO,wBAAwB,CAAA;IACjC,CAAC,CAAA;IAED,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;AAC5B,CAAC,CAAA;AACD,eAAe,MAAM,CAAA"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
const plugin = () => {
|
|
2
|
+
const outCtx = {};
|
|
3
|
+
const onExit = ctx => ({ ...ctx, ...outCtx });
|
|
4
|
+
const onProcess = (recs) => {
|
|
5
|
+
const notPages = recs.filter(({ type = '' }) => type !== 'page');
|
|
6
|
+
recs.forEach(item => {
|
|
7
|
+
if (item.publishUrl) {
|
|
8
|
+
const allData = (item.type !== 'page' ? notPages : recs).filter(({ publishUrl }) => Boolean(publishUrl));
|
|
9
|
+
const articleIndex = allData.findIndex(({ publishUrl }) => publishUrl === item.publishUrl);
|
|
10
|
+
const prepareReference = (item) => {
|
|
11
|
+
if (item) {
|
|
12
|
+
const { pluginsData, node, ...rest } = item;
|
|
13
|
+
return rest;
|
|
14
|
+
}
|
|
15
|
+
return false;
|
|
16
|
+
};
|
|
17
|
+
const prev = prepareReference(allData[articleIndex - 1]);
|
|
18
|
+
const next = prepareReference(allData[articleIndex + 1]);
|
|
19
|
+
//
|
|
20
|
+
const navigate = { prev, next };
|
|
21
|
+
item.pluginsData = item.pluginsData || {};
|
|
22
|
+
item.pluginsData.navigate = navigate;
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
return recs;
|
|
26
|
+
};
|
|
27
|
+
return [onProcess, onExit];
|
|
28
|
+
};
|
|
29
|
+
export default plugin;
|
|
30
|
+
//# sourceMappingURL=prev-next-plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prev-next-plugin.js","sourceRoot":"","sources":["../src/prev-next-plugin.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,GAAG,GAAqB,EAAE;IACpC,MAAM,MAAM,GAA4B,EAAE,CAAA;IAC1C,MAAM,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC,CAAA;IAC7C,MAAM,SAAS,GAAG,CAAC,IAAqB,EAAE,EAAE;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,GAAG,EAAE,EAAO,EAAE,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,CAAA;QACrE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAClB,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAA;gBACxG,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,CAAC,CAAA;gBAC1F,MAAM,gBAAgB,GAAG,CAAC,IAAmB,EAAiB,EAAE;oBAC9D,IAAI,IAAI,EAAE;wBACR,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAA;wBAC3C,OAAO,IAAI,CAAA;qBACZ;oBACD,OAAO,KAAK,CAAA;gBACd,CAAC,CAAA;gBACD,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAA;gBACxD,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAA;gBACxD,EAAE;gBAEF,MAAM,QAAQ,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;gBAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE,CAAA;gBACzC,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAA;aACrC;QACH,CAAC,CAAC,CAAA;QAEF,OAAO,IAAI,CAAA;IACb,CAAC,CAAA;IAED,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;AAC5B,CAAC,CAAA;AAED,eAAe,MAAM,CAAA"}
|
package/esm/shared.d.ts
CHANGED
package/esm/shared.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getFromTree, makeAttrs, makeInterator } from '@podlite/schema';
|
|
1
|
+
import { getFromTree, getNodeId, getTextContentFromNode, makeAttrs, makeInterator, } from '@podlite/schema';
|
|
2
2
|
import { podlite as podlite_core } from 'podlite';
|
|
3
3
|
// now we add base60 letters
|
|
4
4
|
import translit from 'iso_9';
|
|
@@ -154,4 +154,74 @@ export const addUrl = (items) => {
|
|
|
154
154
|
return { ...item, shortUrl, publishUrl, sources };
|
|
155
155
|
});
|
|
156
156
|
};
|
|
157
|
+
const parseSelector = (selector) => {
|
|
158
|
+
// doc:File1#data1
|
|
159
|
+
const docWithAnchorPattern = /^([^:]+):([^#]+)#(.+)$/;
|
|
160
|
+
// Try doc:name#anchor pattern first
|
|
161
|
+
const anchorMatch = selector.match(docWithAnchorPattern);
|
|
162
|
+
if (anchorMatch) {
|
|
163
|
+
return {
|
|
164
|
+
scheme: anchorMatch[1],
|
|
165
|
+
document: anchorMatch[2],
|
|
166
|
+
anchor: anchorMatch[3],
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
};
|
|
170
|
+
const getDocIDs = (doc) => {
|
|
171
|
+
const ids = [];
|
|
172
|
+
// for (const item of [doc]) {
|
|
173
|
+
getFromTree(doc.node, 'NAME', 'TITLE').map(block => {
|
|
174
|
+
const conf = makeAttrs(block, {});
|
|
175
|
+
const title = getTextContentFromNode(block).trim();
|
|
176
|
+
if (conf.exists('id')) {
|
|
177
|
+
const id = conf.getFirstValue('id');
|
|
178
|
+
if (id) {
|
|
179
|
+
ids.push(id);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
ids.push(title);
|
|
183
|
+
});
|
|
184
|
+
return ids;
|
|
185
|
+
};
|
|
186
|
+
function getMapIDsBlocks(srcNode) {
|
|
187
|
+
const ids = [];
|
|
188
|
+
const idsMap = new Map();
|
|
189
|
+
const t = getFromTree(srcNode, { type: 'block' }).map(i => {
|
|
190
|
+
const id = getNodeId(i, {});
|
|
191
|
+
if (id) {
|
|
192
|
+
idsMap.set(id, i);
|
|
193
|
+
}
|
|
194
|
+
});
|
|
195
|
+
return idsMap;
|
|
196
|
+
}
|
|
197
|
+
export const runSelector = (selector, docs) => {
|
|
198
|
+
const paresedSelector = parseSelector(selector);
|
|
199
|
+
if (paresedSelector) {
|
|
200
|
+
const { scheme, document, anchor } = paresedSelector;
|
|
201
|
+
const filters = [];
|
|
202
|
+
if (scheme === 'doc') {
|
|
203
|
+
filters.push((doc) => {
|
|
204
|
+
// console.log(`[incliude] `)
|
|
205
|
+
return getDocIDs(doc).includes(document);
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
// Return documents that successfully pass all the filters.
|
|
209
|
+
const subdocs = docs.filter(item => !filters.some(fn => !fn(item)));
|
|
210
|
+
console.warn(`[include] fouond ${subdocs.length} docs for ${document}`);
|
|
211
|
+
if (anchor) {
|
|
212
|
+
const collected_blocks = [];
|
|
213
|
+
for (const d of subdocs) {
|
|
214
|
+
const idsMap = getMapIDsBlocks(d.node);
|
|
215
|
+
const block = idsMap.get(anchor);
|
|
216
|
+
if (block) {
|
|
217
|
+
collected_blocks.push(block);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
console.warn(`[include] found ${collected_blocks.length} blocks for anchor: ${anchor}`);
|
|
221
|
+
return collected_blocks;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
console.log(`[include] no any blocks found for ${selector}`);
|
|
225
|
+
return [];
|
|
226
|
+
};
|
|
157
227
|
//# sourceMappingURL=shared.js.map
|
package/esm/shared.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../src/shared.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../src/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,SAAS,EACT,sBAAsB,EACtB,SAAS,EACT,aAAa,GAGd,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,SAAS,CAAA;AACjD,4BAA4B;AAE5B,OAAO,QAAQ,MAAM,OAAO,CAAA;AAC5B,OAAO,MAAM,MAAM,WAAW,CAAA;AAE9B,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,QAAiB,EAAE,EAAE;IACvD,IAAI,CAAC,QAAQ;QAAE,OAAM;IACrB,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAA;IACrC,OAAO,kBAAkB,CAAC,IAAI,GAAG,EAAE,CAAC,CAAA;AACtC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,UAAU,EAAE,MAAM;IAClB,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,MAAM;IACb,UAAU,EAAE,MAAM;CACnB,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAW,EAAE,EAAE;IAC5C,IAAI,OAAO,GAAG,YAAY,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAC3D,IAAI,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,SAA4B,CAAA;IACpE,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAa;IAC7C,IAAI,iBAAiB,GAAG,KAAK,CAAA;IAC7B,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE;QAC9C,kBAAkB;QAClB,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;YACjD,IAAI,IAAI,CAAC,OAAO,EAAE;gBAChB,OAAO,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;aACpC;YACD,OAAM;SACP;QACD,iBAAiB,GAAG,IAAI,CAAA;IAC1B,CAAC,CAAA;IACD,MAAM,KAAK,GAAG;QACZ,OAAO,EAAE,cAAc;QACvB,QAAQ,EAAE,cAAc;KACzB,CAAA;IACD,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IAC9B,OAAO,iBAAiB,CAAA;AAC1B,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAa;IAC3C,IAAI,mBAAmB,GAAG,KAAK,CAAA;IAC/B,MAAM,KAAK,GAAG;QACZ,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE;YACjC,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;YACnC,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;gBAC5B,mBAAmB,GAAG,IAAI,CAAA;gBAC1B,OAAM;aACP;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;gBAC/B,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;aACxB;QACH,CAAC;KACF,CAAA;IACD,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;IACxC,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IACjC,OAAO,mBAAmB,CAAA;AAC5B,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAK;IAClC,IAAI,QAAQ,GAA8B,EAAE,CAAA;IAC5C,MAAM,WAAW,GAAG,KAAK,CAAC,EAAE;QAC1B,gBAAgB;QAChB,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,CAAA;QACpD,8BAA8B;QAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,EAAE,CAAA;QAC7E,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YAC5C,OAAO,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAC9C,CAAC,CAAC,CAAA;QACF,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/B,MAAM,aAAa,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAA;YACzC,kCAAkC;YAClC,MAAM,UAAU,GAAG,MAAM;iBACtB,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,iCAAiC;iBAC1E,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,0CAA0C;iBAC5F,KAAK,EAAE,CAAA;YAEV,IAAI,sBAAsB,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;YACnF,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,sBAAsB,CAAC,CAAA;YAC5F,IAAI,cAAc,CAAC,MAAM,EAAE;gBACzB,MAAM,WAAW,GAAG,WAAW,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;gBAC1D,MAAM,OAAO,GAAG,SAAS,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;gBACrE,QAAQ,CAAC,IAAI,CAAC;oBACZ,OAAO;oBACP,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,cAAc;oBACpB,WAAW;iBACZ,CAAC,CAAA;aACH;SACF;QACD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACnB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;gBAC/B,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;aAC1B;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;IACD,WAAW,CAAC,KAAK,CAAC,CAAA;IAClB,OAAO,QAAQ,CAAA;AACjB,CAAC;AACD,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,KAAsB,EAAE,EAAE;IAC/C,MAAM,OAAO,GAKN,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACnB,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;QACrB,MAAM,KAAK,GAAG,CAAC,CAAA;QACf,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;QACnC,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QACrC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;QAC1C,6BAA6B;QAC7B,IAAI,KAAK,GAAa,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACrD,IAAI,GAAG,GAAG,EAAE,CAAA;QACZ,OAAO,CAAC,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,GAAG,EAAE;YAChD,YAAY;YACZ,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAA;SACxB;QACD,IAAI,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC9B,yBAAyB;QACzB,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAA;QACtF,iBAAiB;QACjB,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;aACzE,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC;aAC7B,WAAW,EAAE,CAAA;QAEhB,OAAO,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAA;IAC/C,CAAC,CAAC,CAAA;IAEF,+CAA+C;IAC/C,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QAC3B,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;QAC1B,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QACzB,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACpC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAA;QAChB,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAA;QAC5B,OAAO,GAAG,CAAA;IACZ,CAAC,EAAE,EAAE,CAAC,CAAA;IACN,iDAAiD;IACjD,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QAC3B,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;QACpB,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACxB,GAAG,CAAC,GAAG,CAAC,EAAE,CAAA;QACV,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;QACxB,OAAO,GAAG,CAAA;IACZ,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACxB,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;QAC3D,MAAM,QAAQ,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,MAAM,EAAE,CAAA;QAC1C,6DAA6D;QAC7D,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAA;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;QAC1B,8BAA8B;QAC9B,MAAM,UAAU,GAAG,IAAI,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;QACpF,MAAM,OAAO,GAAG;YACd,QAAQ;YACR,0CAA0C;SAC3C,CAAA;QACD,OAAO,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,CAAA;IACnD,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAUD,MAAM,aAAa,GAAG,CAAC,QAAgB,EAAkB,EAAE;IACzD,kBAAkB;IAClB,MAAM,oBAAoB,GAAG,wBAAwB,CAAA;IACrD,oCAAoC;IACpC,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;IACxD,IAAI,WAAW,EAAE;QACf,OAAO;YACL,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;YACtB,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;YACxB,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;SACvB,CAAA;KACF;AACH,CAAC,CAAA;AACD,MAAM,SAAS,GAAG,CAAC,GAAkB,EAAY,EAAE;IACjD,MAAM,GAAG,GAAG,EAAE,CAAA;IACd,gCAAgC;IAChC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QACjD,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;QACjC,MAAM,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAA;QAElD,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YACrB,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;YACnC,IAAI,EAAE,EAAE;gBACN,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;aACb;SACF;QACD,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACjB,CAAC,CAAC,CAAA;IACF,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAED,SAAS,eAAe,CAAoB,OAAU;IACpD,MAAM,GAAG,GAAG,EAAE,CAAA;IACd,MAAM,MAAM,GAAG,IAAI,GAAG,EAAa,CAAA;IACnC,MAAM,CAAC,GAAG,WAAW,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACxD,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QAC3B,IAAI,EAAE,EAAE;YACN,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAM,CAAC,CAAA;SACvB;IACH,CAAC,CAAC,CAAA;IACF,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAE,IAAqB,EAA+B,EAAE;IAClG,MAAM,eAAe,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;IAC/C,IAAI,eAAe,EAAE;QACnB,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,eAAe,CAAA;QACpD,MAAM,OAAO,GAAG,EAAE,CAAA;QAClB,IAAI,MAAM,KAAK,KAAK,EAAE;YACpB,OAAO,CAAC,IAAI,CAAC,CAAC,GAAkB,EAAE,EAAE;gBAClC,6BAA6B;gBAC7B,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;YAC1C,CAAC,CAAC,CAAA;SACH;QACD,2DAA2D;QAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnE,OAAO,CAAC,IAAI,CAAC,oBAAoB,OAAO,CAAC,MAAM,aAAa,QAAQ,EAAE,CAAC,CAAA;QACvE,IAAI,MAAM,EAAE;YACV,MAAM,gBAAgB,GAAG,EAAE,CAAA;YAC3B,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE;gBACvB,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;gBACtC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;gBAChC,IAAI,KAAK,EAAE;oBACT,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;iBAC7B;aACF;YACD,OAAO,CAAC,IAAI,CAAC,mBAAmB,gBAAgB,CAAC,MAAM,uBAAuB,MAAM,EAAE,CAAC,CAAA;YACvF,OAAO,gBAAgB,CAAA;SACxB;KACF;IACD,OAAO,CAAC,GAAG,CAAC,qCAAqC,QAAQ,EAAE,CAAC,CAAA;IAC5D,OAAO,EAAE,CAAA;AACX,CAAC,CAAA"}
|
package/esm/site-data-plugin.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { getFromTree, getTextContentFromNode, makeAttrs, makeInterator } from '@podlite/schema';
|
|
2
2
|
import { BUILT_PATH, INDEX_PATH, POSTS_PATH, PUBLIC_PATH } from './constants';
|
|
3
3
|
import * as fs from 'fs';
|
|
4
|
-
import {
|
|
4
|
+
import { processFile } from '.';
|
|
5
5
|
import pathFs from 'path';
|
|
6
6
|
const plugin = ({ public_path = PUBLIC_PATH, indexFilePath = `${POSTS_PATH}/${INDEX_PATH}`, built_path = BUILT_PATH, site_url, }) => {
|
|
7
7
|
let indexPage;
|
|
@@ -71,25 +71,10 @@ const plugin = ({ public_path = PUBLIC_PATH, indexFilePath = `${POSTS_PATH}/${IN
|
|
|
71
71
|
siteInfo: siteData,
|
|
72
72
|
};
|
|
73
73
|
if (!ctx.testing) {
|
|
74
|
-
streamWriteArray(allRecords, `${built_path}/pages.json`)
|
|
75
|
-
.then(() => console.log('All pages written successfully'))
|
|
76
|
-
.catch(err => console.error('Error writing file:', err));
|
|
77
74
|
fs.writeFileSync(`${built_path}/data.json`, JSON.stringify(dataJson));
|
|
78
75
|
fs.writeFileSync(`${built_path}/siteInfo.json`, JSON.stringify(siteData, null, 2));
|
|
79
76
|
fs.writeFileSync(`${built_path}/imagesMap.json`, JSON.stringify(imagesMap, null, 2));
|
|
80
77
|
}
|
|
81
|
-
// prepare data for LastArticles component
|
|
82
|
-
if (!ctx.testing) {
|
|
83
|
-
const source = () => allRecords.filter(i => i.publishUrl).filter(({ type = '' }) => type !== 'page');
|
|
84
|
-
const articles = source().reverse().slice(0, 10);
|
|
85
|
-
// if (!articles[articles.length - 1]) {
|
|
86
|
-
// throw new Error('No articles found' + JSON.stringify({'articles.length - 1':articles.length - 1, articles, 'allRecords':allRecords.length}, null, 2))
|
|
87
|
-
// }
|
|
88
|
-
// const lastArticleUrl = articles[articles.length - 1].publishUrl
|
|
89
|
-
// const articleIndex = source().findIndex(({ publishUrl }) => publishUrl === lastArticleUrl)
|
|
90
|
-
// const prev = source()[articleIndex - 1]
|
|
91
|
-
fs.writeFileSync(`${built_path}/lastArticles.json`, JSON.stringify({ articles, prev: {} }, null, 2));
|
|
92
|
-
}
|
|
93
78
|
// process GlobalStyles
|
|
94
79
|
let stylesContent = '';
|
|
95
80
|
if (siteData.globalStyles) {
|
|
@@ -127,8 +112,19 @@ const plugin = ({ public_path = PUBLIC_PATH, indexFilePath = `${POSTS_PATH}/${IN
|
|
|
127
112
|
throw new Error('Index page not found. Used path: ' + indexFilePath);
|
|
128
113
|
}
|
|
129
114
|
indexPage.publishUrl = '/';
|
|
130
|
-
|
|
131
|
-
|
|
115
|
+
const articlesJSON = JSON.stringify(recs.filter(i => i.publishUrl).filter(({ type = '' }) => type !== 'page'));
|
|
116
|
+
const storeFile = `
|
|
117
|
+
=begin pod
|
|
118
|
+
=for NAME :id<PLUGIN_DATA>
|
|
119
|
+
SITE DATA
|
|
120
|
+
=begin data :id<articles>
|
|
121
|
+
${articlesJSON}
|
|
122
|
+
=end data
|
|
123
|
+
=end pod
|
|
124
|
+
`;
|
|
125
|
+
const storeDoc = processFile('virtual/site-data-plugin.podlite', storeFile);
|
|
126
|
+
allRecords.push(...recs, storeDoc);
|
|
127
|
+
return [...recs, storeDoc];
|
|
132
128
|
};
|
|
133
129
|
return [onProcess, onExit];
|
|
134
130
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"site-data-plugin.js","sourceRoot":"","sources":["../src/site-data-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/F,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAC7E,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,
|
|
1
|
+
{"version":3,"file":"site-data-plugin.js","sourceRoot":"","sources":["../src/site-data-plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const plugin = ({ docs = [] }) => {
|
|
4
|
+
const onExit = ctx => {
|
|
5
|
+
return { ...ctx };
|
|
6
|
+
};
|
|
7
|
+
const onProcess = (recs) => {
|
|
8
|
+
return [...recs, ...docs];
|
|
9
|
+
};
|
|
10
|
+
return [onProcess, onExit];
|
|
11
|
+
};
|
|
12
|
+
exports.default = plugin;
|
|
13
|
+
//# sourceMappingURL=docs-injector-plugin.js.map
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const constants_1 = require("./constants");
|
|
4
|
+
const _1 = require(".");
|
|
5
|
+
const plugin = ({ built_path = constants_1.BUILT_PATH }) => {
|
|
6
|
+
let allRecords = [];
|
|
7
|
+
const outCtx = {};
|
|
8
|
+
const onExit = ctx => {
|
|
9
|
+
if (!ctx.testing) {
|
|
10
|
+
(0, _1.streamWriteArray)(allRecords, `${built_path}/pages.json`)
|
|
11
|
+
.then(() => console.log('All pages written successfully'))
|
|
12
|
+
.catch(err => console.error('Error writing file:', err));
|
|
13
|
+
}
|
|
14
|
+
return { ...ctx, ...outCtx };
|
|
15
|
+
};
|
|
16
|
+
const onProcess = (recs) => {
|
|
17
|
+
allRecords.push(...recs);
|
|
18
|
+
return [...recs];
|
|
19
|
+
};
|
|
20
|
+
return [onProcess, onExit];
|
|
21
|
+
};
|
|
22
|
+
exports.default = plugin;
|
|
23
|
+
//# sourceMappingURL=dump-pages-plugin.js.map
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const schema_1 = require("@podlite/schema");
|
|
4
|
+
const _1 = require(".");
|
|
5
|
+
const plugin = () => {
|
|
6
|
+
const outCtx = {};
|
|
7
|
+
const docsMap = new Map();
|
|
8
|
+
const onExit = ctx => ({ ...ctx, ...outCtx });
|
|
9
|
+
const processNode = (node, recs) => {
|
|
10
|
+
const rules = {
|
|
11
|
+
Include: node => {
|
|
12
|
+
const { content } = node;
|
|
13
|
+
const selector = (0, schema_1.getTextContentFromNode)(content).trim();
|
|
14
|
+
console.warn(`[include] start resolve selector: ${selector}`);
|
|
15
|
+
if (selector) {
|
|
16
|
+
// try to resolve selector
|
|
17
|
+
const [block] = (0, _1.runSelector)(selector, recs);
|
|
18
|
+
if (typeof block === 'object' && !('file' in block)) {
|
|
19
|
+
const updated = { content: block };
|
|
20
|
+
return { ...node, ...updated };
|
|
21
|
+
}
|
|
22
|
+
if (!block) {
|
|
23
|
+
console.warn(`[plugin: resolve ] selector ${selector} not found`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return node;
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
return (0, schema_1.makeInterator)(rules)(node, {});
|
|
30
|
+
};
|
|
31
|
+
const onProcess = (recs) => {
|
|
32
|
+
// convert all doc: links to file:: links
|
|
33
|
+
const docsWithIncludesResolves = recs.map(item => {
|
|
34
|
+
const node = processNode(item.node, recs);
|
|
35
|
+
// const node = item.node
|
|
36
|
+
return { ...item, node };
|
|
37
|
+
});
|
|
38
|
+
return docsWithIncludesResolves;
|
|
39
|
+
};
|
|
40
|
+
return [onProcess, onExit];
|
|
41
|
+
};
|
|
42
|
+
exports.default = plugin;
|
|
43
|
+
//# sourceMappingURL=include-resolve-plugin.js.map
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const plugin = () => {
|
|
4
|
+
const outCtx = {};
|
|
5
|
+
const onExit = ctx => ({ ...ctx, ...outCtx });
|
|
6
|
+
const onProcess = (recs) => {
|
|
7
|
+
const notPages = recs.filter(({ type = '' }) => type !== 'page');
|
|
8
|
+
recs.forEach(item => {
|
|
9
|
+
if (item.publishUrl) {
|
|
10
|
+
const allData = (item.type !== 'page' ? notPages : recs).filter(({ publishUrl }) => Boolean(publishUrl));
|
|
11
|
+
const articleIndex = allData.findIndex(({ publishUrl }) => publishUrl === item.publishUrl);
|
|
12
|
+
const prepareReference = (item) => {
|
|
13
|
+
if (item) {
|
|
14
|
+
const { pluginsData, node, ...rest } = item;
|
|
15
|
+
return rest;
|
|
16
|
+
}
|
|
17
|
+
return false;
|
|
18
|
+
};
|
|
19
|
+
const prev = prepareReference(allData[articleIndex - 1]);
|
|
20
|
+
const next = prepareReference(allData[articleIndex + 1]);
|
|
21
|
+
//
|
|
22
|
+
const navigate = { prev, next };
|
|
23
|
+
item.pluginsData = item.pluginsData || {};
|
|
24
|
+
item.pluginsData.navigate = navigate;
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
return recs;
|
|
28
|
+
};
|
|
29
|
+
return [onProcess, onExit];
|
|
30
|
+
};
|
|
31
|
+
exports.default = plugin;
|
|
32
|
+
//# sourceMappingURL=prev-next-plugin.js.map
|
package/lib/shared.d.ts
CHANGED
package/lib/shared.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.addUrl = exports.getAllArticles = exports.isExistsPubdate = exports.isExistsDocBlocks = exports.makeAstFromSrc = exports.defaultLangForFile = exports.getLangFromFilename = void 0;
|
|
6
|
+
exports.runSelector = exports.addUrl = exports.getAllArticles = exports.isExistsPubdate = exports.isExistsDocBlocks = exports.makeAstFromSrc = exports.defaultLangForFile = exports.getLangFromFilename = void 0;
|
|
7
7
|
const schema_1 = require("@podlite/schema");
|
|
8
8
|
const podlite_1 = require("podlite");
|
|
9
9
|
// now we add base60 letters
|
|
@@ -166,4 +166,75 @@ const addUrl = (items) => {
|
|
|
166
166
|
});
|
|
167
167
|
};
|
|
168
168
|
exports.addUrl = addUrl;
|
|
169
|
+
const parseSelector = (selector) => {
|
|
170
|
+
// doc:File1#data1
|
|
171
|
+
const docWithAnchorPattern = /^([^:]+):([^#]+)#(.+)$/;
|
|
172
|
+
// Try doc:name#anchor pattern first
|
|
173
|
+
const anchorMatch = selector.match(docWithAnchorPattern);
|
|
174
|
+
if (anchorMatch) {
|
|
175
|
+
return {
|
|
176
|
+
scheme: anchorMatch[1],
|
|
177
|
+
document: anchorMatch[2],
|
|
178
|
+
anchor: anchorMatch[3],
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
const getDocIDs = (doc) => {
|
|
183
|
+
const ids = [];
|
|
184
|
+
// for (const item of [doc]) {
|
|
185
|
+
(0, schema_1.getFromTree)(doc.node, 'NAME', 'TITLE').map(block => {
|
|
186
|
+
const conf = (0, schema_1.makeAttrs)(block, {});
|
|
187
|
+
const title = (0, schema_1.getTextContentFromNode)(block).trim();
|
|
188
|
+
if (conf.exists('id')) {
|
|
189
|
+
const id = conf.getFirstValue('id');
|
|
190
|
+
if (id) {
|
|
191
|
+
ids.push(id);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
ids.push(title);
|
|
195
|
+
});
|
|
196
|
+
return ids;
|
|
197
|
+
};
|
|
198
|
+
function getMapIDsBlocks(srcNode) {
|
|
199
|
+
const ids = [];
|
|
200
|
+
const idsMap = new Map();
|
|
201
|
+
const t = (0, schema_1.getFromTree)(srcNode, { type: 'block' }).map(i => {
|
|
202
|
+
const id = (0, schema_1.getNodeId)(i, {});
|
|
203
|
+
if (id) {
|
|
204
|
+
idsMap.set(id, i);
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
return idsMap;
|
|
208
|
+
}
|
|
209
|
+
const runSelector = (selector, docs) => {
|
|
210
|
+
const paresedSelector = parseSelector(selector);
|
|
211
|
+
if (paresedSelector) {
|
|
212
|
+
const { scheme, document, anchor } = paresedSelector;
|
|
213
|
+
const filters = [];
|
|
214
|
+
if (scheme === 'doc') {
|
|
215
|
+
filters.push((doc) => {
|
|
216
|
+
// console.log(`[incliude] `)
|
|
217
|
+
return getDocIDs(doc).includes(document);
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
// Return documents that successfully pass all the filters.
|
|
221
|
+
const subdocs = docs.filter(item => !filters.some(fn => !fn(item)));
|
|
222
|
+
console.warn(`[include] fouond ${subdocs.length} docs for ${document}`);
|
|
223
|
+
if (anchor) {
|
|
224
|
+
const collected_blocks = [];
|
|
225
|
+
for (const d of subdocs) {
|
|
226
|
+
const idsMap = getMapIDsBlocks(d.node);
|
|
227
|
+
const block = idsMap.get(anchor);
|
|
228
|
+
if (block) {
|
|
229
|
+
collected_blocks.push(block);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
console.warn(`[include] found ${collected_blocks.length} blocks for anchor: ${anchor}`);
|
|
233
|
+
return collected_blocks;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
console.log(`[include] no any blocks found for ${selector}`);
|
|
237
|
+
return [];
|
|
238
|
+
};
|
|
239
|
+
exports.runSelector = runSelector;
|
|
169
240
|
//# sourceMappingURL=shared.js.map
|
package/lib/site-data-plugin.js
CHANGED
|
@@ -95,25 +95,10 @@ const plugin = ({ public_path = constants_1.PUBLIC_PATH, indexFilePath = `${cons
|
|
|
95
95
|
siteInfo: siteData,
|
|
96
96
|
};
|
|
97
97
|
if (!ctx.testing) {
|
|
98
|
-
(0, _1.streamWriteArray)(allRecords, `${built_path}/pages.json`)
|
|
99
|
-
.then(() => console.log('All pages written successfully'))
|
|
100
|
-
.catch(err => console.error('Error writing file:', err));
|
|
101
98
|
fs.writeFileSync(`${built_path}/data.json`, JSON.stringify(dataJson));
|
|
102
99
|
fs.writeFileSync(`${built_path}/siteInfo.json`, JSON.stringify(siteData, null, 2));
|
|
103
100
|
fs.writeFileSync(`${built_path}/imagesMap.json`, JSON.stringify(imagesMap, null, 2));
|
|
104
101
|
}
|
|
105
|
-
// prepare data for LastArticles component
|
|
106
|
-
if (!ctx.testing) {
|
|
107
|
-
const source = () => allRecords.filter(i => i.publishUrl).filter(({ type = '' }) => type !== 'page');
|
|
108
|
-
const articles = source().reverse().slice(0, 10);
|
|
109
|
-
// if (!articles[articles.length - 1]) {
|
|
110
|
-
// throw new Error('No articles found' + JSON.stringify({'articles.length - 1':articles.length - 1, articles, 'allRecords':allRecords.length}, null, 2))
|
|
111
|
-
// }
|
|
112
|
-
// const lastArticleUrl = articles[articles.length - 1].publishUrl
|
|
113
|
-
// const articleIndex = source().findIndex(({ publishUrl }) => publishUrl === lastArticleUrl)
|
|
114
|
-
// const prev = source()[articleIndex - 1]
|
|
115
|
-
fs.writeFileSync(`${built_path}/lastArticles.json`, JSON.stringify({ articles, prev: {} }, null, 2));
|
|
116
|
-
}
|
|
117
102
|
// process GlobalStyles
|
|
118
103
|
let stylesContent = '';
|
|
119
104
|
if (siteData.globalStyles) {
|
|
@@ -151,8 +136,19 @@ const plugin = ({ public_path = constants_1.PUBLIC_PATH, indexFilePath = `${cons
|
|
|
151
136
|
throw new Error('Index page not found. Used path: ' + indexFilePath);
|
|
152
137
|
}
|
|
153
138
|
indexPage.publishUrl = '/';
|
|
154
|
-
|
|
155
|
-
|
|
139
|
+
const articlesJSON = JSON.stringify(recs.filter(i => i.publishUrl).filter(({ type = '' }) => type !== 'page'));
|
|
140
|
+
const storeFile = `
|
|
141
|
+
=begin pod
|
|
142
|
+
=for NAME :id<PLUGIN_DATA>
|
|
143
|
+
SITE DATA
|
|
144
|
+
=begin data :id<articles>
|
|
145
|
+
${articlesJSON}
|
|
146
|
+
=end data
|
|
147
|
+
=end pod
|
|
148
|
+
`;
|
|
149
|
+
const storeDoc = (0, _1.processFile)('virtual/site-data-plugin.podlite', storeFile);
|
|
150
|
+
allRecords.push(...recs, storeDoc);
|
|
151
|
+
return [...recs, storeDoc];
|
|
156
152
|
};
|
|
157
153
|
return [onProcess, onExit];
|
|
158
154
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@podlite/publisher",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.5",
|
|
4
4
|
"description": "Library that powers publishing and CLI tools for the Podlite markup language",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"license": "MIT",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"markup-language"
|
|
34
34
|
],
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@podlite/schema": "0.0.
|
|
36
|
+
"@podlite/schema": "0.0.24",
|
|
37
37
|
"crc-32": "^1.2.2",
|
|
38
38
|
"gray-matter": "^4.0.3",
|
|
39
39
|
"iso_9": "^1.0.4",
|