@react-x11/components 0.5.0 → 0.6.0
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/README.md +18 -4
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/markdown/ast.d.ts +80 -6
- package/dist/markdown/ast.d.ts.map +1 -1
- package/dist/markdown/ast.js +13 -4
- package/dist/markdown/ast.js.map +1 -1
- package/dist/markdown/expressions.d.ts +27 -0
- package/dist/markdown/expressions.d.ts.map +1 -0
- package/dist/markdown/expressions.js +203 -0
- package/dist/markdown/expressions.js.map +1 -0
- package/dist/markdown/index.d.ts +61 -2
- package/dist/markdown/index.d.ts.map +1 -1
- package/dist/markdown/index.js +101 -2
- package/dist/markdown/index.js.map +1 -1
- package/dist/markdown/parse.d.ts +1 -1
- package/dist/markdown/parse.d.ts.map +1 -1
- package/dist/markdown/parse.js +163 -15
- package/dist/markdown/parse.js.map +1 -1
- package/dist/markdown/spans.d.ts.map +1 -1
- package/dist/markdown/spans.js +4 -0
- package/dist/markdown/spans.js.map +1 -1
- package/dist/markdown/tags.d.ts +35 -0
- package/dist/markdown/tags.d.ts.map +1 -0
- package/dist/markdown/tags.js +213 -0
- package/dist/markdown/tags.js.map +1 -0
- package/package.json +2 -1
- package/src/index.ts +4 -0
- package/src/markdown/ast.ts +85 -9
- package/src/markdown/expressions.ts +223 -0
- package/src/markdown/index.ts +190 -5
- package/src/markdown/parse.ts +230 -15
- package/src/markdown/spans.ts +4 -0
- package/src/markdown/tags.ts +240 -0
package/dist/markdown/index.js
CHANGED
|
@@ -43,9 +43,13 @@ import { tint } from 'react-x11/style';
|
|
|
43
43
|
import { registerRichText, RICHTEXT_ELEMENT, useSelectionMenu, } from '../richtext/index.js';
|
|
44
44
|
import { codeBlockLook, codeBlockRuns, codeBlockStyle, codeTextStyle, } from '../codeblock/index.js';
|
|
45
45
|
import { parse } from './parse.js';
|
|
46
|
+
import { evaluator, resolveExpressions } from './expressions.js';
|
|
47
|
+
import { SPREAD_PREFIX } from './ast.js';
|
|
46
48
|
import { runsOf, plainTextOf } from './spans.js';
|
|
47
49
|
import { useLinkClicks } from '../richtext/index.js';
|
|
48
50
|
import { hx } from './hx.js';
|
|
51
|
+
export { SPREAD_PREFIX } from './ast.js';
|
|
52
|
+
export { scanTag } from './tags.js';
|
|
49
53
|
export { parse, parseInline } from './parse.js';
|
|
50
54
|
const h = React.createElement;
|
|
51
55
|
// Registration is a shared-module function so `<Code>` can render the same
|
|
@@ -94,6 +98,31 @@ function deriveLook(theme, props) {
|
|
|
94
98
|
].join('|'),
|
|
95
99
|
};
|
|
96
100
|
}
|
|
101
|
+
// --- components ------------------------------------------------------------
|
|
102
|
+
/**
|
|
103
|
+
* The component a tag names, or undefined. Flat key first, so a map can spell
|
|
104
|
+
* a dotted name literally, then the walk, so `Card.Header` finds the property
|
|
105
|
+
* hanging off `Card`.
|
|
106
|
+
*/
|
|
107
|
+
function resolveComponent(map, name) {
|
|
108
|
+
if (!map)
|
|
109
|
+
return undefined;
|
|
110
|
+
const flat = map[name];
|
|
111
|
+
if (flat)
|
|
112
|
+
return flat;
|
|
113
|
+
if (!name.includes('.'))
|
|
114
|
+
return undefined;
|
|
115
|
+
let cur = map;
|
|
116
|
+
for (const part of name.split('.')) {
|
|
117
|
+
if (cur == null || (typeof cur !== 'object' && typeof cur !== 'function')) {
|
|
118
|
+
return undefined;
|
|
119
|
+
}
|
|
120
|
+
cur = cur[part];
|
|
121
|
+
}
|
|
122
|
+
return cur == null
|
|
123
|
+
? undefined
|
|
124
|
+
: cur;
|
|
125
|
+
}
|
|
97
126
|
function richtext(key, runs, style, wrap = true) {
|
|
98
127
|
const props = { runs };
|
|
99
128
|
if (!wrap)
|
|
@@ -158,8 +187,47 @@ function renderBlock(block, ctx, key) {
|
|
|
158
187
|
});
|
|
159
188
|
case 'table':
|
|
160
189
|
return renderTable(block, ctx, key);
|
|
190
|
+
case 'component':
|
|
191
|
+
return renderComponent(block, ctx, key);
|
|
161
192
|
}
|
|
162
193
|
}
|
|
194
|
+
/**
|
|
195
|
+
* A component block. The node only exists because the parser was told this
|
|
196
|
+
* name resolves, so the lookup here agrees by construction — the `undefined`
|
|
197
|
+
* branch is for the window between a `components` prop changing and the
|
|
198
|
+
* re-parse that follows it.
|
|
199
|
+
*
|
|
200
|
+
* Children arrive as a laid-out column of blocks, so a component places one
|
|
201
|
+
* child and does not have to know what markdown is.
|
|
202
|
+
*/
|
|
203
|
+
function renderComponent(block, ctx, key) {
|
|
204
|
+
const Component = resolveComponent(ctx.components, block.name);
|
|
205
|
+
if (!Component)
|
|
206
|
+
return null;
|
|
207
|
+
const props = {};
|
|
208
|
+
// Insertion order is the order they were written, which is what decides
|
|
209
|
+
// whether a spread overrides a named attribute or the other way round.
|
|
210
|
+
for (const [name, value] of Object.entries(block.attributes)) {
|
|
211
|
+
if (name.startsWith(SPREAD_PREFIX)) {
|
|
212
|
+
const spread = value.kind === 'expression' ? ctx.evaluate?.(value.src) : undefined;
|
|
213
|
+
if (spread && typeof spread === 'object')
|
|
214
|
+
Object.assign(props, spread);
|
|
215
|
+
continue;
|
|
216
|
+
}
|
|
217
|
+
props[name] =
|
|
218
|
+
value.kind === 'literal' ? value.value : ctx.evaluate?.(value.src);
|
|
219
|
+
}
|
|
220
|
+
const children = block.children.length === 0
|
|
221
|
+
? undefined
|
|
222
|
+
: hx('box', {
|
|
223
|
+
style: {
|
|
224
|
+
flexDirection: 'column',
|
|
225
|
+
gap: ctx.look.blockGap,
|
|
226
|
+
alignItems: 'stretch',
|
|
227
|
+
},
|
|
228
|
+
}, renderBlocks(block.children, ctx));
|
|
229
|
+
return h(React.Fragment, { key }, h(Component, props, children));
|
|
230
|
+
}
|
|
163
231
|
function renderCode(text, lang, ctx, key) {
|
|
164
232
|
const custom = ctx.fences?.[lang];
|
|
165
233
|
if (custom) {
|
|
@@ -338,7 +406,30 @@ export function Markdown(props) {
|
|
|
338
406
|
props.monoFamily,
|
|
339
407
|
props.highlight,
|
|
340
408
|
]);
|
|
341
|
-
|
|
409
|
+
// The gate the parser asks. Memoised on the map's identity so that a
|
|
410
|
+
// stable `components` prop keeps one function, and the parse memo below
|
|
411
|
+
// does not re-read the whole document on every render.
|
|
412
|
+
const componentMap = props.components;
|
|
413
|
+
const isComponent = React.useMemo(() => componentMap
|
|
414
|
+
? (name) => resolveComponent(componentMap, name) !== undefined
|
|
415
|
+
: undefined, [componentMap]);
|
|
416
|
+
// `scope` is both the gate and the bindings: giving one turns expression
|
|
417
|
+
// parsing on, and is where the compiled functions get their arguments.
|
|
418
|
+
const scope = props.scope;
|
|
419
|
+
const evaluate = React.useMemo(() => (scope ? evaluator(scope) : undefined), [scope]);
|
|
420
|
+
const doc = React.useMemo(() => {
|
|
421
|
+
const parsed = parse(source, {
|
|
422
|
+
partial,
|
|
423
|
+
...(isComponent ? { isComponent } : null),
|
|
424
|
+
...(evaluate ? { expressions: true } : null),
|
|
425
|
+
});
|
|
426
|
+
// Expressions resolve to text here rather than during the render, so
|
|
427
|
+
// every `runsOf` caller downstream keeps seeing an inline tree it
|
|
428
|
+
// already understands. `raws` is carried through, so the block cache
|
|
429
|
+
// still keys on the source text; a change of `scope` invalidates it
|
|
430
|
+
// through the seam epoch instead.
|
|
431
|
+
return evaluate ? resolveExpressions(parsed, evaluate) : parsed;
|
|
432
|
+
}, [source, partial, isComponent, evaluate]);
|
|
342
433
|
// Per-block element cache, keyed on the block's raw source (+ whether it
|
|
343
434
|
// is the live tail). Streaming appends re-render only the block that
|
|
344
435
|
// changed; everything else is the same ReactElement, so React bails out
|
|
@@ -351,13 +442,19 @@ export function Markdown(props) {
|
|
|
351
442
|
const seamsRef = React.useRef({
|
|
352
443
|
fences: props.fences,
|
|
353
444
|
resolveLanguage: props.resolveLanguage,
|
|
445
|
+
components: props.components,
|
|
446
|
+
scope: props.scope,
|
|
354
447
|
gen: 0,
|
|
355
448
|
});
|
|
356
449
|
if (seamsRef.current.fences !== props.fences ||
|
|
357
|
-
seamsRef.current.resolveLanguage !== props.resolveLanguage
|
|
450
|
+
seamsRef.current.resolveLanguage !== props.resolveLanguage ||
|
|
451
|
+
seamsRef.current.components !== props.components ||
|
|
452
|
+
seamsRef.current.scope !== props.scope) {
|
|
358
453
|
seamsRef.current = {
|
|
359
454
|
fences: props.fences,
|
|
360
455
|
resolveLanguage: props.resolveLanguage,
|
|
456
|
+
components: props.components,
|
|
457
|
+
scope: props.scope,
|
|
361
458
|
gen: seamsRef.current.gen + 1,
|
|
362
459
|
};
|
|
363
460
|
}
|
|
@@ -374,6 +471,8 @@ export function Markdown(props) {
|
|
|
374
471
|
fonts,
|
|
375
472
|
fences: props.fences,
|
|
376
473
|
resolveLanguage: props.resolveLanguage,
|
|
474
|
+
components: props.components,
|
|
475
|
+
...(evaluate ? { evaluate } : null),
|
|
377
476
|
};
|
|
378
477
|
for (let i = 0; i < doc.blocks.length; i += 1) {
|
|
379
478
|
const live = partial && i === doc.blocks.length - 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/markdown/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/markdown/index.ts"],"names":[],"mappings":"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"}
|
package/dist/markdown/parse.d.ts
CHANGED
|
@@ -4,5 +4,5 @@ export declare function parse(source: string, options?: ParseOptions): Document;
|
|
|
4
4
|
* Parse inline markdown. `atDocEnd` marks text whose end is the live end of
|
|
5
5
|
* a streaming document — only then do the implicit-close rules apply.
|
|
6
6
|
*/
|
|
7
|
-
export declare function parseInline(text: string, atDocEnd: boolean): InlineNode[];
|
|
7
|
+
export declare function parseInline(text: string, atDocEnd: boolean, expressions?: boolean): InlineNode[];
|
|
8
8
|
//# sourceMappingURL=parse.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/markdown/parse.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/markdown/parse.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAGV,QAAQ,EACR,UAAU,EAGV,YAAY,EAEb,MAAM,UAAU,CAAC;AA4IlB,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,QAAQ,CAkB1E;AA+kBD;;;GAGG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,EACjB,WAAW,UAAQ,GAClB,UAAU,EAAE,CA8Pd"}
|
package/dist/markdown/parse.js
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { closeBrace, scanTag } from './tags.js';
|
|
2
|
+
/** Nothing is a component unless the caller says so. */
|
|
3
|
+
const NO_COMPONENTS = () => false;
|
|
1
4
|
// --- line-level regexes, compiled once -------------------------------------
|
|
2
5
|
const RE_BLANK = /^[ \t]*$/;
|
|
3
6
|
const RE_ATX = /^ {0,3}(#{1,6})(?:[ \t]+(.*?))?(?:[ \t]+#+)?[ \t]*$/;
|
|
@@ -15,12 +18,81 @@ const RE_TABLE_DELIM = /^ {0,3}\|?[ \t]*:?-+:?[ \t]*(?:\|[ \t]*:?-+:?[ \t]*)*\|?
|
|
|
15
18
|
const RE_TABLE_DELIM_PREFIX = /^ {0,3}\|[ \t:|-]*$/;
|
|
16
19
|
/** Would this line open something other than a paragraph? The test lazy
|
|
17
20
|
* continuation and list/quote termination share. */
|
|
18
|
-
function isBlockStart(line) {
|
|
21
|
+
function isBlockStart(line, isComponent = NO_COMPONENTS, expressions = false) {
|
|
19
22
|
return (RE_ATX.test(line) ||
|
|
20
23
|
RE_FENCE_OPEN.test(line) ||
|
|
21
24
|
RE_HR.test(line) ||
|
|
22
25
|
RE_QUOTE.test(line) ||
|
|
23
|
-
RE_LIST.test(line)
|
|
26
|
+
RE_LIST.test(line) ||
|
|
27
|
+
isComponentBlockLine(line, isComponent, expressions));
|
|
28
|
+
}
|
|
29
|
+
/** A line that opens a component block, resolved — speculation does not
|
|
30
|
+
* interrupt a paragraph. */
|
|
31
|
+
function isComponentBlockLine(line, isComponent, expressions) {
|
|
32
|
+
const found = componentBlockAt([line], 0, isComponent, expressions);
|
|
33
|
+
return found !== null && found !== 'incomplete';
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* The component block opening at `lines[at]`, if one does.
|
|
37
|
+
*
|
|
38
|
+
* A component block owns its whole line — `<Chart/>` with prose after it is
|
|
39
|
+
* a paragraph with a tag in it, which is the inline case and not this one —
|
|
40
|
+
* but it may spend several lines doing so, because a component with six
|
|
41
|
+
* props is written down the page and MDX authors expect that to work. Lines
|
|
42
|
+
* are joined until the tag closes; a blank line gives up, since a tag does
|
|
43
|
+
* not span a paragraph break.
|
|
44
|
+
*
|
|
45
|
+
* `'incomplete'` means "still arriving", which only the live tail acts on.
|
|
46
|
+
*/
|
|
47
|
+
function componentBlockAt(lines, at, isComponent, expressions = false) {
|
|
48
|
+
// The identity check is not an optimisation: `scanTag` reports a bare
|
|
49
|
+
// `<Chart` as "still arriving" before it can know whether anyone claims
|
|
50
|
+
// the name, and a document that never opted in must not have its lazy
|
|
51
|
+
// continuation changed by a line that merely looks like a tag.
|
|
52
|
+
if (isComponent === NO_COMPONENTS)
|
|
53
|
+
return null;
|
|
54
|
+
const indent = indentOf(lines[at]);
|
|
55
|
+
if (indent > 3 || lines[at][indent] !== '<')
|
|
56
|
+
return null;
|
|
57
|
+
let text = lines[at];
|
|
58
|
+
for (let j = at; j < lines.length; j += 1) {
|
|
59
|
+
if (j > at)
|
|
60
|
+
text += `\n${lines[j]}`;
|
|
61
|
+
const tag = scanTag(text, indent, isComponent, expressions);
|
|
62
|
+
if (tag === null)
|
|
63
|
+
return null;
|
|
64
|
+
if (tag === 'incomplete') {
|
|
65
|
+
if (j + 1 < lines.length && RE_BLANK.test(lines[j + 1]))
|
|
66
|
+
return null;
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
if (tag.kind === 'close')
|
|
70
|
+
return null;
|
|
71
|
+
return text.slice(tag.end).trim() === '' ? { tag, lastLine: j } : null;
|
|
72
|
+
}
|
|
73
|
+
return 'incomplete';
|
|
74
|
+
}
|
|
75
|
+
/** The line closing `name`, counting same-name nesting, or -1. */
|
|
76
|
+
function componentCloseLine(lines, from, name, isComponent) {
|
|
77
|
+
let depth = 0;
|
|
78
|
+
for (let i = from; i < lines.length; i += 1) {
|
|
79
|
+
const indent = indentOf(lines[i]);
|
|
80
|
+
if (indent > 3 || lines[i][indent] !== '<')
|
|
81
|
+
continue;
|
|
82
|
+
const tag = scanTag(lines[i], indent, isComponent);
|
|
83
|
+
if (tag === null || tag === 'incomplete' || tag.name !== name)
|
|
84
|
+
continue;
|
|
85
|
+
if (lines[i].slice(tag.end).trim() !== '')
|
|
86
|
+
continue;
|
|
87
|
+
if (tag.kind === 'open')
|
|
88
|
+
depth += 1;
|
|
89
|
+
else if (tag.kind === 'close') {
|
|
90
|
+
if (depth === 0)
|
|
91
|
+
return i;
|
|
92
|
+
depth -= 1;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return -1;
|
|
24
96
|
}
|
|
25
97
|
/** Leading tabs advance to 4-column stops; content tabs are left alone. */
|
|
26
98
|
function expandLeadingTabs(line) {
|
|
@@ -53,7 +125,7 @@ export function parse(source, options = {}) {
|
|
|
53
125
|
const lines = normalized.split('\n').map(expandLeadingTabs);
|
|
54
126
|
const blocks = [];
|
|
55
127
|
const ranges = [];
|
|
56
|
-
parseBlocks(lines, partial, blocks, ranges);
|
|
128
|
+
parseBlocks(lines, partial, blocks, ranges, options.isComponent ?? NO_COMPONENTS, options.expressions === true);
|
|
57
129
|
return {
|
|
58
130
|
blocks,
|
|
59
131
|
raws: ranges.map(([a, b]) => lines.slice(a, b).join('\n')),
|
|
@@ -66,7 +138,7 @@ export function parse(source, options = {}) {
|
|
|
66
138
|
* anyway" rule. `ranges`, when given, receives each block's [start, endExcl)
|
|
67
139
|
* line range (only the top-level call wants them, for the streaming cache).
|
|
68
140
|
*/
|
|
69
|
-
function parseBlocks(lines, tailOpen, out, ranges) {
|
|
141
|
+
function parseBlocks(lines, tailOpen, out, ranges, isComponent = NO_COMPONENTS, expressions = false) {
|
|
70
142
|
let i = 0;
|
|
71
143
|
const n = lines.length;
|
|
72
144
|
let paraStart = -1;
|
|
@@ -83,7 +155,7 @@ function parseBlocks(lines, tailOpen, out, ranges) {
|
|
|
83
155
|
para.length = 0;
|
|
84
156
|
paraStart = -1;
|
|
85
157
|
// the paragraph owns the live tail iff its last line is the document's
|
|
86
|
-
const children = parseInline(text, tailOpen && end === n);
|
|
158
|
+
const children = parseInline(text, tailOpen && end === n, expressions);
|
|
87
159
|
if (children.length > 0)
|
|
88
160
|
commit({ type: 'paragraph', children }, start, end);
|
|
89
161
|
};
|
|
@@ -113,7 +185,7 @@ function parseBlocks(lines, tailOpen, out, ranges) {
|
|
|
113
185
|
commit({
|
|
114
186
|
type: 'heading',
|
|
115
187
|
depth: setext[1][0] === '=' ? 1 : 2,
|
|
116
|
-
children: parseInline(text, false),
|
|
188
|
+
children: parseInline(text, false, expressions),
|
|
117
189
|
}, start, i + 1);
|
|
118
190
|
i += 1;
|
|
119
191
|
continue;
|
|
@@ -141,7 +213,7 @@ function parseBlocks(lines, tailOpen, out, ranges) {
|
|
|
141
213
|
commit({
|
|
142
214
|
type: 'heading',
|
|
143
215
|
depth: atx[1].length,
|
|
144
|
-
children: parseInline(atx[2] ?? '', held),
|
|
216
|
+
children: parseInline(atx[2] ?? '', held, expressions),
|
|
145
217
|
}, i, i + 1);
|
|
146
218
|
i += 1;
|
|
147
219
|
continue;
|
|
@@ -177,6 +249,54 @@ function parseBlocks(lines, tailOpen, out, ranges) {
|
|
|
177
249
|
commit({ type: 'code', lang, text: body.join('\n'), closed }, start, i);
|
|
178
250
|
continue;
|
|
179
251
|
}
|
|
252
|
+
// A component standing where a paragraph would (docs/prd-mdx.md). Gated
|
|
253
|
+
// on `isComponent`, so a document that never opted in never gets here.
|
|
254
|
+
const component = componentBlockAt(lines, i, isComponent, expressions);
|
|
255
|
+
if (component === 'incomplete') {
|
|
256
|
+
// A tag still arriving: hold it back rather than flash `<Cha` on the
|
|
257
|
+
// screen, the way a half-arrived link is held. Only the live tail may
|
|
258
|
+
// do this — anywhere else the tag is simply never going to close.
|
|
259
|
+
if (tailOpen) {
|
|
260
|
+
flushPara(i);
|
|
261
|
+
i = n;
|
|
262
|
+
continue;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
else if (component) {
|
|
266
|
+
const { tag, lastLine } = component;
|
|
267
|
+
flushPara(i);
|
|
268
|
+
const start = i;
|
|
269
|
+
const node = (children) => ({
|
|
270
|
+
type: 'component',
|
|
271
|
+
name: tag.name,
|
|
272
|
+
attributes: tag.attributes,
|
|
273
|
+
children,
|
|
274
|
+
});
|
|
275
|
+
if (tag.kind === 'self') {
|
|
276
|
+
i = lastLine + 1;
|
|
277
|
+
commit(node([]), start, i);
|
|
278
|
+
continue;
|
|
279
|
+
}
|
|
280
|
+
const closeAt = componentCloseLine(lines, lastLine + 1, tag.name, isComponent);
|
|
281
|
+
if (closeAt !== -1) {
|
|
282
|
+
const children = [];
|
|
283
|
+
parseBlocks(lines.slice(lastLine + 1, closeAt), tailOpen && closeAt >= n, children, undefined, isComponent, expressions);
|
|
284
|
+
i = closeAt + 1;
|
|
285
|
+
commit(node(children), start, i);
|
|
286
|
+
continue;
|
|
287
|
+
}
|
|
288
|
+
// Open, with no close yet. While the document is still arriving that
|
|
289
|
+
// is the ordinary state of an element being typed: hold the tag and
|
|
290
|
+
// let the children render as the markdown they are, so the reader sees
|
|
291
|
+
// the prose rather than nothing. Mounting the component now and
|
|
292
|
+
// appending to its children instead would remount it — and lose its
|
|
293
|
+
// state — on the chunk that finally closes it.
|
|
294
|
+
if (tailOpen) {
|
|
295
|
+
i = lastLine + 1;
|
|
296
|
+
continue;
|
|
297
|
+
}
|
|
298
|
+
// Final document, never closed: the tag is text, so fall through.
|
|
299
|
+
}
|
|
180
300
|
const quote = RE_QUOTE.exec(line);
|
|
181
301
|
if (quote) {
|
|
182
302
|
flushPara(i);
|
|
@@ -194,7 +314,7 @@ function parseBlocks(lines, tailOpen, out, ranges) {
|
|
|
194
314
|
continue;
|
|
195
315
|
}
|
|
196
316
|
if (!RE_BLANK.test(l) &&
|
|
197
|
-
!isBlockStart(l) &&
|
|
317
|
+
!isBlockStart(l, isComponent, expressions) &&
|
|
198
318
|
inner.length > 0 &&
|
|
199
319
|
!RE_BLANK.test(inner[inner.length - 1])) {
|
|
200
320
|
inner.push(l); // lazy: "> a\nb" keeps b in the quote
|
|
@@ -204,7 +324,7 @@ function parseBlocks(lines, tailOpen, out, ranges) {
|
|
|
204
324
|
break;
|
|
205
325
|
}
|
|
206
326
|
const children = [];
|
|
207
|
-
parseBlocks(inner, tailOpen && i === n, children);
|
|
327
|
+
parseBlocks(inner, tailOpen && i === n, children, undefined, isComponent, expressions);
|
|
208
328
|
if (children.length > 0)
|
|
209
329
|
commit({ type: 'quote', children }, start, i);
|
|
210
330
|
continue;
|
|
@@ -215,7 +335,7 @@ function parseBlocks(lines, tailOpen, out, ranges) {
|
|
|
215
335
|
if (list && !(para.length > 0 && !list[4]) && !(held && !list[4])) {
|
|
216
336
|
flushPara(i);
|
|
217
337
|
const start = i;
|
|
218
|
-
const block = parseList(lines, i, tailOpen);
|
|
338
|
+
const block = parseList(lines, i, tailOpen, isComponent, expressions);
|
|
219
339
|
i = block.end;
|
|
220
340
|
commit(block.list, start, i);
|
|
221
341
|
continue;
|
|
@@ -247,7 +367,9 @@ function parseBlocks(lines, tailOpen, out, ranges) {
|
|
|
247
367
|
const rows = [];
|
|
248
368
|
while (i < n) {
|
|
249
369
|
const l = lines[i];
|
|
250
|
-
if (RE_BLANK.test(l) ||
|
|
370
|
+
if (RE_BLANK.test(l) ||
|
|
371
|
+
!l.includes('|') ||
|
|
372
|
+
isBlockStart(l, isComponent, expressions))
|
|
251
373
|
break;
|
|
252
374
|
rows.push(normalizeRow(splitRow(l), align.length, tailOpen && i === n - 1));
|
|
253
375
|
i += 1;
|
|
@@ -299,7 +421,7 @@ function parseBlocks(lines, tailOpen, out, ranges) {
|
|
|
299
421
|
}
|
|
300
422
|
flushPara(n);
|
|
301
423
|
}
|
|
302
|
-
function parseList(lines, from, tailOpen) {
|
|
424
|
+
function parseList(lines, from, tailOpen, isComponent = NO_COMPONENTS, expressions = false) {
|
|
303
425
|
const n = lines.length;
|
|
304
426
|
const first = RE_LIST.exec(lines[from]);
|
|
305
427
|
// caller matched — this is the narrowing, not a runtime possibility
|
|
@@ -354,7 +476,9 @@ function parseList(lines, from, tailOpen) {
|
|
|
354
476
|
i += 1;
|
|
355
477
|
continue;
|
|
356
478
|
}
|
|
357
|
-
if (pendingBlanks === 0 &&
|
|
479
|
+
if (pendingBlanks === 0 &&
|
|
480
|
+
!isBlockStart(l, isComponent, expressions) &&
|
|
481
|
+
!RE_BLANK.test(l)) {
|
|
358
482
|
inner.push(l); // lazy paragraph continuation
|
|
359
483
|
i += 1;
|
|
360
484
|
continue;
|
|
@@ -371,7 +495,7 @@ function parseList(lines, from, tailOpen) {
|
|
|
371
495
|
inner[0] = inner[0].slice(task[0].length);
|
|
372
496
|
}
|
|
373
497
|
const children = [];
|
|
374
|
-
parseBlocks(inner, tailOpen && i >= n, children);
|
|
498
|
+
parseBlocks(inner, tailOpen && i >= n, children, undefined, isComponent, expressions);
|
|
375
499
|
items.push({ checked, children });
|
|
376
500
|
}
|
|
377
501
|
return {
|
|
@@ -477,7 +601,7 @@ function classify(ch) {
|
|
|
477
601
|
* Parse inline markdown. `atDocEnd` marks text whose end is the live end of
|
|
478
602
|
* a streaming document — only then do the implicit-close rules apply.
|
|
479
603
|
*/
|
|
480
|
-
export function parseInline(text, atDocEnd) {
|
|
604
|
+
export function parseInline(text, atDocEnd, expressions = false) {
|
|
481
605
|
const items = [];
|
|
482
606
|
let buf = '';
|
|
483
607
|
const flushText = () => {
|
|
@@ -574,6 +698,30 @@ export function parseInline(text, atDocEnd) {
|
|
|
574
698
|
i += run;
|
|
575
699
|
continue;
|
|
576
700
|
}
|
|
701
|
+
// `{expr}` in the prose — rung 2 only, so a brace in an ordinary
|
|
702
|
+
// document is the character it has always been.
|
|
703
|
+
if (expressions && ch === '{') {
|
|
704
|
+
const end = closeBrace(text, i);
|
|
705
|
+
if (end === -1) {
|
|
706
|
+
// Still arriving: hold the rest of the line back rather than show
|
|
707
|
+
// half an expression. In a final document it is just text.
|
|
708
|
+
if (atDocEnd) {
|
|
709
|
+
flushText();
|
|
710
|
+
i = len;
|
|
711
|
+
continue;
|
|
712
|
+
}
|
|
713
|
+
buf += ch;
|
|
714
|
+
i += 1;
|
|
715
|
+
continue;
|
|
716
|
+
}
|
|
717
|
+
flushText();
|
|
718
|
+
items.push({
|
|
719
|
+
kind: 'node',
|
|
720
|
+
node: { type: 'expression', src: text.slice(i + 1, end - 1).trim() },
|
|
721
|
+
});
|
|
722
|
+
i = end;
|
|
723
|
+
continue;
|
|
724
|
+
}
|
|
577
725
|
if (ch === '<') {
|
|
578
726
|
const rest = text.slice(i);
|
|
579
727
|
const auto = RE_AUTOLINK.exec(rest) ?? RE_AUTOEMAIL.exec(rest);
|