@podlite/schema 0.0.41 → 0.0.42

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.
Files changed (50) hide show
  1. package/CHANGELOG.podlite +14 -2
  2. package/esm/blocks-helpers.d.ts +5 -0
  3. package/esm/blocks-helpers.js +3 -0
  4. package/esm/blocks-helpers.js.map +1 -1
  5. package/esm/exportAny.d.ts +1 -0
  6. package/esm/exportAny.js +1 -1
  7. package/esm/exportAny.js.map +1 -1
  8. package/esm/exportHtml.js +47 -5
  9. package/esm/exportHtml.js.map +1 -1
  10. package/esm/exportMarkdown.js +37 -10
  11. package/esm/exportMarkdown.js.map +1 -1
  12. package/esm/grammar.js +232 -160
  13. package/esm/grammar.js.map +1 -1
  14. package/esm/grammarfc.js +418 -406
  15. package/esm/grammarfc.js.map +1 -1
  16. package/esm/helpers/handlers.d.ts +11 -0
  17. package/esm/helpers/handlers.js +25 -0
  18. package/esm/helpers/handlers.js.map +1 -1
  19. package/esm/helpers/makeInterator.js +2 -4
  20. package/esm/helpers/makeInterator.js.map +1 -1
  21. package/esm/index.js +2 -0
  22. package/esm/index.js.map +1 -1
  23. package/esm/plugin-data-table.d.ts +2 -0
  24. package/esm/plugin-data-table.js +152 -0
  25. package/esm/plugin-data-table.js.map +1 -0
  26. package/esm/plugin-tables.d.ts +10 -0
  27. package/esm/plugin-tables.js +7 -7
  28. package/esm/plugin-tables.js.map +1 -1
  29. package/esm/selectors.d.ts +17 -1
  30. package/esm/selectors.js +294 -18
  31. package/esm/selectors.js.map +1 -1
  32. package/lib/blocks-helpers.d.ts +5 -0
  33. package/lib/blocks-helpers.js +5 -1
  34. package/lib/exportAny.d.ts +1 -0
  35. package/lib/exportAny.js +1 -1
  36. package/lib/exportHtml.js +46 -4
  37. package/lib/exportMarkdown.js +36 -9
  38. package/lib/grammar.js +232 -160
  39. package/lib/grammarfc.js +418 -406
  40. package/lib/helpers/handlers.d.ts +11 -0
  41. package/lib/helpers/handlers.js +28 -1
  42. package/lib/helpers/makeInterator.js +2 -4
  43. package/lib/index.js +2 -0
  44. package/lib/plugin-data-table.d.ts +2 -0
  45. package/lib/plugin-data-table.js +157 -0
  46. package/lib/plugin-tables.d.ts +10 -0
  47. package/lib/plugin-tables.js +8 -0
  48. package/lib/selectors.d.ts +17 -1
  49. package/lib/selectors.js +294 -18
  50. package/package.json +1 -1
package/esm/selectors.js CHANGED
@@ -1,33 +1,302 @@
1
1
  import { getFromTree, getNodeId, getTextContentFromNode, makeAttrs } from './index';
2
+ // --- predicate parser ---------------------------------------------------
3
+ const isIdentStart = (c) => /[a-zA-Z_]/.test(c);
4
+ const isIdentCont = (c) => /[a-zA-Z0-9_-]/.test(c);
5
+ // Read an angle-bracketed value starting at `<`. Returns the inner content
6
+ // (without delimiters) and the index right after the closing `>`.
7
+ // Nested `<>` pairs are matched recursively.
8
+ const readAngleValue = (s, start) => {
9
+ if (s[start] !== '<')
10
+ return undefined;
11
+ let depth = 1;
12
+ let i = start + 1;
13
+ while (i < s.length && depth > 0) {
14
+ if (s[i] === '<')
15
+ depth++;
16
+ else if (s[i] === '>') {
17
+ depth--;
18
+ if (depth === 0)
19
+ return { value: s.slice(start + 1, i), end: i + 1 };
20
+ }
21
+ i++;
22
+ }
23
+ return undefined;
24
+ };
25
+ const parseCondition = (raw) => {
26
+ const s = raw.trim();
27
+ if (!s.startsWith(':'))
28
+ return undefined;
29
+ let i = 1;
30
+ let modifier;
31
+ if (s.startsWith('!?', i)) {
32
+ modifier = '!?';
33
+ i += 2;
34
+ }
35
+ else if (s[i] === '!') {
36
+ modifier = '!';
37
+ i += 1;
38
+ }
39
+ else if (s[i] === '?') {
40
+ modifier = '?';
41
+ i += 1;
42
+ }
43
+ if (i >= s.length || !isIdentStart(s[i]))
44
+ return undefined;
45
+ const nameStart = i;
46
+ while (i < s.length && isIdentCont(s[i]))
47
+ i++;
48
+ const attrName = s.slice(nameStart, i);
49
+ if (i >= s.length)
50
+ return { modifier, attrName };
51
+ if (s[i] === '~' && s[i + 1] === '<') {
52
+ const read = readAngleValue(s, i + 1);
53
+ if (!read || read.end !== s.length)
54
+ return undefined;
55
+ return { modifier, attrName, valueSpec: { kind: 'contains', value: read.value } };
56
+ }
57
+ if (s[i] === '<') {
58
+ const read = readAngleValue(s, i);
59
+ if (!read || read.end !== s.length)
60
+ return undefined;
61
+ return { modifier, attrName, valueSpec: { kind: 'angle', value: read.value } };
62
+ }
63
+ return undefined;
64
+ };
65
+ // Split predicate body by whitespace at top level, respecting <...> nesting.
66
+ const splitConditions = (body) => {
67
+ const chunks = [];
68
+ let depth = 0;
69
+ let buf = '';
70
+ for (let i = 0; i < body.length; i++) {
71
+ const c = body[i];
72
+ if (c === '<')
73
+ depth++;
74
+ else if (c === '>') {
75
+ if (depth === 0)
76
+ return undefined;
77
+ depth--;
78
+ }
79
+ if (depth === 0 && /\s/.test(c)) {
80
+ if (buf) {
81
+ chunks.push(buf);
82
+ buf = '';
83
+ }
84
+ continue;
85
+ }
86
+ buf += c;
87
+ }
88
+ if (depth !== 0)
89
+ return undefined;
90
+ if (buf)
91
+ chunks.push(buf);
92
+ return chunks;
93
+ };
94
+ const parsePredicate = (body) => {
95
+ const chunks = splitConditions(body);
96
+ if (!chunks)
97
+ return undefined;
98
+ const conditions = [];
99
+ for (const chunk of chunks) {
100
+ const cond = parseCondition(chunk);
101
+ if (!cond)
102
+ return undefined;
103
+ conditions.push(cond);
104
+ }
105
+ return conditions;
106
+ };
107
+ const parsePattern = (raw) => {
108
+ const s = raw.trim();
109
+ if (!s)
110
+ return undefined;
111
+ let blockType;
112
+ let i = 0;
113
+ if (s[0] === '*') {
114
+ blockType = '*';
115
+ i = 1;
116
+ }
117
+ else if (isIdentStart(s[0])) {
118
+ let j = 1;
119
+ while (j < s.length && isIdentCont(s[j]))
120
+ j++;
121
+ blockType = s.slice(0, j);
122
+ i = j;
123
+ }
124
+ else {
125
+ return undefined;
126
+ }
127
+ // skip optional whitespace between block-type and predicate
128
+ while (i < s.length && /\s/.test(s[i]))
129
+ i++;
130
+ if (i >= s.length)
131
+ return { blockType };
132
+ if (s[i] !== '[' || s[s.length - 1] !== ']')
133
+ return undefined;
134
+ const body = s.slice(i + 1, s.length - 1).trim();
135
+ if (!body)
136
+ return undefined;
137
+ const predicate = parsePredicate(body);
138
+ if (!predicate)
139
+ return undefined;
140
+ return { blockType, predicate };
141
+ };
142
+ // Split pattern-list by comma at top level, respecting [...] and <...> nesting.
143
+ const splitPatterns = (s) => {
144
+ const chunks = [];
145
+ let bracketDepth = 0;
146
+ let angleDepth = 0;
147
+ let buf = '';
148
+ for (let i = 0; i < s.length; i++) {
149
+ const c = s[i];
150
+ if (c === '[')
151
+ bracketDepth++;
152
+ else if (c === ']') {
153
+ if (bracketDepth === 0)
154
+ return undefined;
155
+ bracketDepth--;
156
+ }
157
+ else if (c === '<')
158
+ angleDepth++;
159
+ else if (c === '>') {
160
+ if (angleDepth === 0)
161
+ return undefined;
162
+ angleDepth--;
163
+ }
164
+ if (c === ',' && bracketDepth === 0 && angleDepth === 0) {
165
+ chunks.push(buf);
166
+ buf = '';
167
+ continue;
168
+ }
169
+ buf += c;
170
+ }
171
+ if (bracketDepth !== 0 || angleDepth !== 0)
172
+ return undefined;
173
+ chunks.push(buf);
174
+ return chunks;
175
+ };
176
+ const parsePatternList = (filterPart) => {
177
+ if (!filterPart)
178
+ return [];
179
+ const chunks = splitPatterns(filterPart);
180
+ if (!chunks)
181
+ return undefined;
182
+ const patterns = [];
183
+ for (const chunk of chunks) {
184
+ const trimmed = chunk.trim();
185
+ if (!trimmed)
186
+ continue;
187
+ const p = parsePattern(trimmed);
188
+ if (!p)
189
+ return undefined;
190
+ patterns.push(p);
191
+ }
192
+ return patterns;
193
+ };
2
194
  export const parseSelector = (selector) => {
3
195
  const trimmed = selector.trim();
4
196
  if (!trimmed)
5
197
  return undefined;
6
- // Split on the first '|' — left is source, right is blocks selector
198
+ // Split on the first '|' — left is source, right is pattern-list
7
199
  const pipeIdx = trimmed.indexOf('|');
8
200
  const sourcePart = (pipeIdx === -1 ? trimmed : trimmed.slice(0, pipeIdx)).trim();
9
201
  const filterPart = pipeIdx === -1 ? '' : trimmed.slice(pipeIdx + 1).trim();
10
- const blockFilters = filterPart
11
- ? filterPart
12
- .split(',')
13
- .map(s => s.trim())
14
- .filter(Boolean)
15
- : [];
16
- // Source: scheme:path or scheme:path#anchor
17
- const sourceMatch = sourcePart.match(/^([^:]+):([^#]+)(?:#(.+))?$/);
202
+ const patterns = parsePatternList(filterPart);
203
+ if (patterns === undefined)
204
+ return undefined;
205
+ // Source: scheme:path or scheme:path#anchor. Scheme is identifier-shaped
206
+ // so that bare predicates like `*[:attr<v>]` don't get consumed as scheme.
207
+ const sourceMatch = sourcePart.match(/^([a-zA-Z][a-zA-Z0-9-]*):([^#]+)(?:#(.+))?$/);
18
208
  if (sourceMatch) {
19
209
  return {
20
210
  scheme: sourceMatch[1],
21
211
  document: sourceMatch[2].trim(),
22
212
  anchor: sourceMatch[3],
23
- blockFilters,
213
+ patterns,
24
214
  };
25
215
  }
26
- if (blockFilters.length > 0) {
27
- return { blockFilters };
216
+ if (patterns.length > 0) {
217
+ return { patterns };
218
+ }
219
+ // No pipe — treat the whole input as a pattern-list (CLI-friendly shorthand
220
+ // for filter-only selectors, e.g. `head1, code[:lang<python>]`).
221
+ if (pipeIdx === -1) {
222
+ const fallback = parsePatternList(sourcePart);
223
+ if (fallback && fallback.length > 0)
224
+ return { patterns: fallback };
28
225
  }
29
226
  return undefined;
30
227
  };
228
+ // --- predicate matcher --------------------------------------------------
229
+ const matchCondition = (node, cond) => {
230
+ const attrs = makeAttrs(node, {});
231
+ const exists = attrs.exists(cond.attrName);
232
+ if (!cond.valueSpec) {
233
+ switch (cond.modifier) {
234
+ case undefined:
235
+ return exists && Boolean(attrs.getFirstValue(cond.attrName));
236
+ case '!':
237
+ return exists && attrs.getFirstValue(cond.attrName) === false;
238
+ case '?':
239
+ return exists;
240
+ case '!?':
241
+ return !exists;
242
+ }
243
+ }
244
+ if (cond.valueSpec.kind === 'angle') {
245
+ if (!exists)
246
+ return false;
247
+ const equal = String(attrs.getFirstValue(cond.attrName)) === cond.valueSpec.value;
248
+ return cond.modifier === '!' ? !equal : equal;
249
+ }
250
+ if (cond.valueSpec.kind === 'contains') {
251
+ if (!exists)
252
+ return false;
253
+ // Author-facing semantics: `:tags<a b c>` is a list of three elements.
254
+ // Grammar parses unquoted identifier sequences as a single string, so
255
+ // split string values on whitespace/comma to recover list shape.
256
+ const tokens = [];
257
+ for (const v of attrs.getAllValues(cond.attrName)) {
258
+ if (typeof v === 'string') {
259
+ for (const t of v.split(/[\s,]+/))
260
+ if (t)
261
+ tokens.push(t);
262
+ }
263
+ else {
264
+ tokens.push(String(v));
265
+ }
266
+ }
267
+ const present = tokens.includes(cond.valueSpec.value);
268
+ return cond.modifier === '!' ? !present : present;
269
+ }
270
+ return false;
271
+ };
272
+ // Replicate name/level handling from getFromTree for backward compat with
273
+ // 'head1' / 'item' style block-types.
274
+ const blockTypeMatches = (node, blockType) => {
275
+ if (blockType === '*')
276
+ return true;
277
+ const anyNode = node;
278
+ if (anyNode.name === blockType)
279
+ return true;
280
+ const m = blockType.match(/^(head|item)(\d+)?$/);
281
+ if (m) {
282
+ const [, baseName, levelStr] = m;
283
+ if (anyNode.name !== baseName)
284
+ return false;
285
+ const expectedLevel = levelStr ? parseInt(levelStr, 10) : baseName === 'item' ? 1 : undefined;
286
+ if (expectedLevel === undefined)
287
+ return true;
288
+ // Heading plugin stores level as the regex capture string; coerce.
289
+ return Number(anyNode.level) === expectedLevel;
290
+ }
291
+ return false;
292
+ };
293
+ const matchesPattern = (node, pattern) => {
294
+ if (!blockTypeMatches(node, pattern.blockType))
295
+ return false;
296
+ if (!pattern.predicate)
297
+ return true;
298
+ return pattern.predicate.every(c => matchCondition(node, c));
299
+ };
31
300
  // Normalize a path for loose suffix comparison:
32
301
  // 'src/foo.podlite' ~= 'foo.podlite'
33
302
  // './includes/x.podlite' ~= 'includes/x.podlite'
@@ -120,7 +389,7 @@ export const runSelector = (selector, docs) => {
120
389
  const parsed = parseSelector(selector);
121
390
  if (!parsed)
122
391
  return [];
123
- const { scheme, document, anchor, blockFilters } = parsed;
392
+ const { scheme, document, anchor, patterns } = parsed;
124
393
  let matchedDocs = docs;
125
394
  if (scheme === 'doc' && document) {
126
395
  matchedDocs = docs.filter(doc => getDocIDs(doc).includes(document));
@@ -142,17 +411,24 @@ export const runSelector = (selector, docs) => {
142
411
  }
143
412
  return collectedBlocks;
144
413
  }
145
- // Block filters extract blocks by name across matched docs
146
- if (blockFilters.length > 0) {
414
+ // Patternsfull-tree traversal, apply each pattern, dedupe across patterns
415
+ if (patterns.length > 0) {
147
416
  const collectedBlocks = [];
417
+ const seen = new Set();
148
418
  for (const d of matchedDocs) {
149
- for (const name of blockFilters) {
150
- collectedBlocks.push(...getFromTree(d.node, name));
419
+ const allBlocks = getFromTree(d.node, { type: 'block' });
420
+ for (const block of allBlocks) {
421
+ if (seen.has(block))
422
+ continue;
423
+ if (patterns.some(p => matchesPattern(block, p))) {
424
+ collectedBlocks.push(block);
425
+ seen.add(block);
426
+ }
151
427
  }
152
428
  }
153
429
  return collectedBlocks;
154
430
  }
155
- // No anchor, no filter — return whole docs
431
+ // No anchor, no patterns — return whole docs
156
432
  return matchedDocs.map(d => d.node);
157
433
  };
158
434
  //# sourceMappingURL=selectors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"selectors.js","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"selectors.js","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,11 @@ export declare const mkFomattingCodeO: (content: any) => {
12
12
  name: string;
13
13
  content: any[];
14
14
  };
15
+ export declare const mkFomattingCodeG: (content: any) => {
16
+ type: string;
17
+ name: string;
18
+ content: any[];
19
+ };
15
20
  export declare const mkMarkupCodeF: (formula: string) => FormattingCodeF;
16
21
  export declare const mkVerbatim: (text: any) => {
17
22
  type: string;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.mkFormulaBlock = exports.mkItemBlock = exports.mkRootBlock = exports.mkImage = exports.mkCaption = exports.mkTocItem = exports.mkTocList = exports.mkToc = exports.mkVerbatim = exports.mkMarkupCodeF = exports.mkFomattingCodeO = exports.mkFomattingCodeL = exports.mkFomattingCode = exports.mkBlankline = exports.mkBlock = exports.filterNulls = exports.mkNode = void 0;
3
+ exports.mkFormulaBlock = exports.mkItemBlock = exports.mkRootBlock = exports.mkImage = exports.mkCaption = exports.mkTocItem = exports.mkTocList = exports.mkToc = exports.mkVerbatim = exports.mkMarkupCodeF = exports.mkFomattingCodeG = exports.mkFomattingCodeO = exports.mkFomattingCodeL = exports.mkFomattingCode = exports.mkBlankline = exports.mkBlock = exports.filterNulls = exports.mkNode = void 0;
4
4
  const nanoid_1 = require("nanoid");
5
5
  const mkNode = (attr) => {
6
6
  return { ...attr };
@@ -37,6 +37,10 @@ const mkFomattingCodeO = content => {
37
37
  return (0, exports.mkNode)({ type: 'fcode', name: 'O', content: (0, exports.filterNulls)(content) });
38
38
  };
39
39
  exports.mkFomattingCodeO = mkFomattingCodeO;
40
+ const mkFomattingCodeG = content => {
41
+ return (0, exports.mkNode)({ type: 'fcode', name: 'G', content: (0, exports.filterNulls)(content) });
42
+ };
43
+ exports.mkFomattingCodeG = mkFomattingCodeG;
40
44
  const mkMarkupCodeF = (formula) => {
41
45
  return (0, exports.mkNode)({ type: 'fcode', name: 'F', content: [{ type: 'text', value: formula }] });
42
46
  };
@@ -1,6 +1,7 @@
1
1
  export declare type Options = {
2
2
  processor?: any;
3
3
  writer?: any;
4
+ context?: Record<string, unknown>;
4
5
  };
5
6
  export declare const toAny: (options?: Options, plugins?: any[]) => {
6
7
  (root: any): void;
package/lib/exportAny.js CHANGED
@@ -52,7 +52,7 @@ const toAny = (options = {}, plugins = []) => {
52
52
  let newFns = fns.slice();
53
53
  newFns.reverse();
54
54
  const interator = (0, makeInterator_1.default)(newFns.map(rule => (0, makeQuery_1.makeRule)(rule.rule, rule.fn(writer, processor, tree))).reverse());
55
- const context = {};
55
+ const context = { ...(options.context || {}) };
56
56
  writer.startWrite(tree);
57
57
  const result = interator(tree, context);
58
58
  writer.endWrite();
package/lib/exportHtml.js CHANGED
@@ -14,7 +14,7 @@ const rules = {
14
14
  ':text': (writer, processor) => (node, ctx, interator) => {
15
15
  // handle text with content
16
16
  if (node.value) {
17
- writer.write(node.value);
17
+ writer.write(ctx?.maskMode ? (0, handlers_1.maskText)(node.value) : node.value);
18
18
  }
19
19
  else {
20
20
  interator(node.content, ctx);
@@ -60,6 +60,17 @@ const rules = {
60
60
  'R<>': (0, handlers_1.wrapContent)('<var>', '</var>'),
61
61
  'K<>': (0, handlers_1.wrapContent)('<kbd>', '</kbd>'),
62
62
  'O<>': (0, handlers_1.wrapContent)('<del>', '</del>'),
63
+ 'G<>': (writer, processor) => (node, ctx, interator) => {
64
+ if (ctx.renderMode === 'draft') {
65
+ writer.writeRaw('<span class="masked-draft">');
66
+ interator(node.content, ctx);
67
+ writer.writeRaw('</span>');
68
+ return;
69
+ }
70
+ writer.writeRaw('<span class="masked">');
71
+ writer.write((0, handlers_1.maskText)((0, handlers_1.collectText)(node.content)));
72
+ writer.writeRaw('</span>');
73
+ },
63
74
  'H<>': (0, handlers_1.wrapContent)('<sup>', '</sup>'),
64
75
  'J<>': (0, handlers_1.wrapContent)('<sub>', '</sub>'),
65
76
  'L<>': (0, handlers_1.setFn)((node, ctx) => {
@@ -159,7 +170,11 @@ const rules = {
159
170
  if (node.error) {
160
171
  writer.emit('errors', node.location);
161
172
  }
162
- interator(node.value);
173
+ if (ctx?.maskMode) {
174
+ writer.write((0, handlers_1.maskText)(node.value));
175
+ return;
176
+ }
177
+ interator(node.value, ctx);
163
178
  },
164
179
  ':blankline': handlers_1.emptyContent,
165
180
  ':ambient': handlers_1.emptyContent,
@@ -215,6 +230,17 @@ const rules = {
215
230
  writer.writeRaw('</li>');
216
231
  },
217
232
  'comment:block': handlers_1.emptyContent,
233
+ 'boundary:block': (writer, processor) => (node, ctx) => {
234
+ const conf = (0, config_1.default)(node, ctx);
235
+ if (conf.exists('caption')) {
236
+ writer.writeRaw('<hr title="');
237
+ writer.write(conf.getFirstValue('caption'));
238
+ writer.writeRaw('">');
239
+ }
240
+ else {
241
+ writer.writeRaw('<hr>');
242
+ }
243
+ },
218
244
  defn: (0, handlers_1.wrapContent)('', '</dd>'),
219
245
  'term:para': (0, handlers_1.wrapContent)('<dt>', '</dt><dd>'),
220
246
  nested: (0, handlers_1.handleNested)(handlers_1.content, 1),
@@ -306,7 +332,11 @@ const rules = {
306
332
  writer.writeRaw(`<img src="${node.src}" alt="${node.alt}"/>`);
307
333
  },
308
334
  };
309
- const toHtml = opt => (0, exportAny_1.default)({ writer: writerHtml_1.default, ...opt })
335
+ const toHtml = opt => (0, exportAny_1.default)({
336
+ writer: writerHtml_1.default,
337
+ ...opt,
338
+ context: { renderMode: opt?.renderMode || 'production', ...(opt?.context || {}) },
339
+ })
310
340
  .use('*', (writer, processor) => {
311
341
  return (node, ctx, interator) => {
312
342
  // skip warnings for semantic blocks
@@ -336,6 +366,18 @@ const toHtml = opt => (0, exportAny_1.default)({ writer: writerHtml_1.default, .
336
366
  }
337
367
  };
338
368
  })
339
- .use(rules);
369
+ .use(rules)
370
+ .use('*', (writer, processor) => (node, ctx, interator, defaultFn) => {
371
+ if (!node || node.type !== 'block')
372
+ return defaultFn();
373
+ if (ctx?.maskMode)
374
+ return defaultFn();
375
+ const conf = (0, config_1.default)(node, ctx || {});
376
+ if (!conf.exists('masked') || !conf.getFirstValue('masked'))
377
+ return defaultFn();
378
+ if (ctx?.renderMode === 'draft')
379
+ return defaultFn();
380
+ return defaultFn(node, { ...(ctx || {}), maskMode: true }, interator);
381
+ });
340
382
  exports.default = toHtml;
341
383
  //# sourceMappingURL=exportHtml.js.map
@@ -12,7 +12,7 @@ const plugin_clean_location_1 = __importDefault(require("./plugin-clean-location
12
12
  const rules = {
13
13
  ':text': (writer, processor) => (node, ctx, interator) => {
14
14
  if (node.value) {
15
- writer.write(node.value);
15
+ writer.write(ctx?.maskMode ? (0, handlers_1.maskText)(node.value) : node.value);
16
16
  }
17
17
  else {
18
18
  interator(node.content, ctx);
@@ -50,6 +50,13 @@ const rules = {
50
50
  'R<>': (0, handlers_1.wrapContent)('*', '*'),
51
51
  'K<>': (0, handlers_1.wrapContent)('`', '`'),
52
52
  'O<>': (0, handlers_1.wrapContent)('~~', '~~'),
53
+ 'G<>': (writer, processor) => (node, ctx, interator) => {
54
+ if (ctx.renderMode === 'draft') {
55
+ interator(node.content, ctx);
56
+ return;
57
+ }
58
+ writer.write((0, handlers_1.maskText)((0, handlers_1.collectText)(node.content)));
59
+ },
53
60
  'H<>': (0, handlers_1.wrapContent)('<sup>', '</sup>'),
54
61
  'J<>': (0, handlers_1.wrapContent)('<sub>', '</sub>'),
55
62
  'L<>': (0, handlers_1.setFn)((node, ctx) => {
@@ -126,14 +133,14 @@ const rules = {
126
133
  const conf = (0, config_1.default)(node, ctx);
127
134
  const lang = conf.exists('lang') ? conf.getFirstValue('lang') : '';
128
135
  writer.writeRaw('```' + lang + '\n');
129
- // inside code blocks, write text without escaping
136
+ const masked = ctx?.maskMode;
130
137
  if (node.content) {
131
138
  node.content.forEach(child => {
132
139
  if (typeof child === 'string') {
133
- writer.writeRaw(child);
140
+ writer.writeRaw(masked ? (0, handlers_1.maskText)(child) : child);
134
141
  }
135
142
  else if (child.type === 'verbatim') {
136
- writer.writeRaw(child.value);
143
+ writer.writeRaw(masked ? (0, handlers_1.maskText)(child.value) : child.value);
137
144
  }
138
145
  else {
139
146
  interator([child], ctx);
@@ -146,13 +153,14 @@ const rules = {
146
153
  const conf = (0, config_1.default)(node, ctx);
147
154
  const lang = conf.exists('lang') ? conf.getFirstValue('lang') : '';
148
155
  writer.writeRaw('```' + lang + '\n');
156
+ const masked = ctx?.maskMode;
149
157
  if (node.content) {
150
158
  node.content.forEach(child => {
151
159
  if (typeof child === 'string') {
152
- writer.writeRaw(child);
160
+ writer.writeRaw(masked ? (0, handlers_1.maskText)(child) : child);
153
161
  }
154
162
  else if (child.type === 'verbatim') {
155
- writer.writeRaw(child.value);
163
+ writer.writeRaw(masked ? (0, handlers_1.maskText)(child.value) : child.value);
156
164
  }
157
165
  else {
158
166
  interator([child], ctx);
@@ -166,7 +174,7 @@ const rules = {
166
174
  if (node.error) {
167
175
  writer.emit('errors', node.location);
168
176
  }
169
- writer.writeRaw(node.value);
177
+ writer.writeRaw(ctx?.maskMode ? (0, handlers_1.maskText)(node.value) : node.value);
170
178
  },
171
179
  ':blankline': handlers_1.emptyContent,
172
180
  ':ambient': handlers_1.emptyContent,
@@ -235,6 +243,9 @@ const rules = {
235
243
  interator(node.content, ctx);
236
244
  },
237
245
  'comment:block': handlers_1.emptyContent,
246
+ 'boundary:block': (writer, processor) => (node, ctx) => {
247
+ writer.writeRaw('\n---\n');
248
+ },
238
249
  defn: (writer, processor) => (node, ctx, interator) => {
239
250
  if (node.content)
240
251
  interator(node.content, ctx);
@@ -365,7 +376,11 @@ const rules = {
365
376
  writer.writeRaw(`![${node.alt || ''}](${node.src})`);
366
377
  },
367
378
  };
368
- const toMarkdown = opt => (0, exportAny_1.default)({ writer: writerMarkdown_1.default, ...opt })
379
+ const toMarkdown = opt => (0, exportAny_1.default)({
380
+ writer: writerMarkdown_1.default,
381
+ ...opt,
382
+ context: { renderMode: opt?.renderMode || 'production', ...(opt?.context || {}) },
383
+ })
369
384
  .use('*', (writer, processor) => {
370
385
  return (node, ctx, interator) => {
371
386
  const isSemanticBlock = node => {
@@ -387,6 +402,18 @@ const toMarkdown = opt => (0, exportAny_1.default)({ writer: writerMarkdown_1.de
387
402
  }
388
403
  };
389
404
  })
390
- .use(rules);
405
+ .use(rules)
406
+ .use('*', (writer, processor) => (node, ctx, interator, defaultFn) => {
407
+ if (!node || node.type !== 'block')
408
+ return defaultFn();
409
+ if (ctx?.maskMode)
410
+ return defaultFn();
411
+ const conf = (0, config_1.default)(node, ctx || {});
412
+ if (!conf.exists('masked') || !conf.getFirstValue('masked'))
413
+ return defaultFn();
414
+ if (ctx?.renderMode === 'draft')
415
+ return defaultFn();
416
+ return defaultFn(node, { ...(ctx || {}), maskMode: true }, interator);
417
+ });
391
418
  exports.default = toMarkdown;
392
419
  //# sourceMappingURL=exportMarkdown.js.map