@astryxdesign/core 0.6.2-canary.2acc24f → 0.6.2-canary.400998f
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/Markdown/Markdown.fr23.bench.js +14 -112
- package/dist/Markdown/Markdown.fr23.sampling.d.ts +2 -0
- package/dist/Markdown/Markdown.fr23.sampling.d.ts.map +1 -0
- package/dist/Markdown/Markdown.fr23.sampling.js +43 -0
- package/dist/Markdown/ast.d.ts +1 -1
- package/dist/Markdown/ast.js +1 -1
- package/dist/Markdown/index.d.ts +2 -2
- package/dist/Markdown/index.d.ts.map +1 -1
- package/dist/Markdown/index.js +2 -2
- package/dist/Markdown/parser/index.d.ts +10 -0
- package/dist/Markdown/parser/index.d.ts.map +1 -0
- package/dist/Markdown/parser/index.js +10 -0
- package/dist/Markdown/parser.d.ts +26 -4
- package/dist/Markdown/parser.d.ts.map +1 -1
- package/dist/Markdown/parser.js +30 -7
- package/dist/Markdown/plugins/frontmatter.d.ts +32 -0
- package/dist/Markdown/plugins/frontmatter.d.ts.map +1 -0
- package/dist/Markdown/plugins/frontmatter.js +132 -0
- package/dist/Markdown/plugins/index.d.ts +2 -0
- package/dist/Markdown/plugins/index.d.ts.map +1 -1
- package/dist/Markdown/plugins/index.js +2 -1
- package/dist/Outline/parseOutlineFromMarkdown.d.ts.map +1 -1
- package/dist/Outline/parseOutlineFromMarkdown.js +2 -2
- package/package.json +8 -3
- package/src/Markdown/Markdown.doc.mjs +50 -0
- package/src/Markdown/Markdown.fr23.bench.ts +14 -128
- package/src/Markdown/Markdown.fr23.perf.test.ts +45 -7
- package/src/Markdown/Markdown.fr23.sampling.ts +49 -0
- package/src/Markdown/Markdown.spec.md +50 -17
- package/src/Markdown/ast.ts +1 -1
- package/src/Markdown/index.ts +3 -1
- package/src/Markdown/parser/index.ts +64 -0
- package/src/Markdown/parser.public.test.ts +103 -0
- package/src/Markdown/parser.ts +70 -7
- package/src/Markdown/plugins/frontmatter.test.tsx +125 -0
- package/src/Markdown/plugins/frontmatter.ts +198 -0
- package/src/Markdown/plugins/index.ts +6 -0
- package/src/Markdown/plugins/protocol.test.tsx +71 -1
- package/src/Outline/parseOutlineFromMarkdown.ts +6 -2
|
@@ -7,27 +7,22 @@
|
|
|
7
7
|
* @position Benchmark body for Markdown.fr23.perf.test.ts; not a test itself
|
|
8
8
|
*
|
|
9
9
|
* Run as its own process, one measurement at a time, by
|
|
10
|
-
* `Markdown.fr23.perf.test.ts`.
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
10
|
+
* `Markdown.fr23.perf.test.ts`. The fresh process isolates engine state left
|
|
11
|
+
* behind by other plugin configurations. The harness must also run separately
|
|
12
|
+
* from other tests: a child process still shares machine resources, and CPU
|
|
13
|
+
* time does not remove cache or memory-bandwidth contention.
|
|
14
14
|
*
|
|
15
15
|
* The timed region is exactly the spec's protocol — ten untimed warmups,
|
|
16
16
|
* then nine alternating paired rounds averaging 20 iterations a side,
|
|
17
17
|
* reported as the median of the nine paired ratios — against the omitted
|
|
18
|
-
* baseline, for a stable list and a recreated equivalent one.
|
|
18
|
+
* baseline, for a stable list and a recreated equivalent one. Each ratio
|
|
19
|
+
* comes from one sample, never a selection by the fastest baseline.
|
|
19
20
|
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
* sides unequally, and this process can still be sharing cores with the
|
|
23
|
-
* test runner that spawned it. So each attempt also records how much the
|
|
24
|
-
* BASELINE's own per-round time moved: when the same work varies by more
|
|
25
|
-
* than a few percent across the attempt, the machine was not holding still
|
|
26
|
-
* and the attempt is discarded and retried, not averaged in. The accepted
|
|
27
|
-
* figure is one untouched run of the spec's statistic; only invalid
|
|
28
|
-
* attempts are dropped, and exhausting them fails loudly.
|
|
21
|
+
* The harness retries a fresh process only when the A/A control is invalid.
|
|
22
|
+
* A helper-overhead failure is never retried to obtain a passing sample.
|
|
29
23
|
*/
|
|
30
24
|
|
|
25
|
+
import { measureMarkdownPairedRatio } from "./Markdown.fr23.sampling.js";
|
|
31
26
|
import { parseMarkdown } from "./parser.js";
|
|
32
27
|
import { createMarkdownPlugin } from "./plugins/index.js";
|
|
33
28
|
import { createMarkdownFenceTransform } from "./plugins/semanticFence.js";
|
|
@@ -41,98 +36,6 @@ function benchmarkDocument(sections) {
|
|
|
41
36
|
length: sections
|
|
42
37
|
}, (_, index) => [`## Section ${index}`, '', `AST-${index} belongs to @{owner-${index}} with TODO follow-up.`, '', `- First item ${index}`, '- Second item', '', `> Quoted detail ${index}`, '', '| Item | Detail |', '| --- | --- |', `| ${index} | ordinary prose |`, '', '```text', `opaque ${index}`, '```'].join('\n')).join('\n\n');
|
|
43
38
|
}
|
|
44
|
-
function median(values) {
|
|
45
|
-
const sorted = [...values].sort((left, right) => left - right);
|
|
46
|
-
return sorted[Math.floor(sorted.length / 2)];
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* The CPU time this process spent on 20 iterations, in microseconds.
|
|
51
|
-
*
|
|
52
|
-
* CPU time, not wall clock: this process can be sharing cores with the test
|
|
53
|
-
* runner that spawned it, and a wall clock counts the milliseconds it spent
|
|
54
|
-
* descheduled as if the work had taken them. It does not distribute that
|
|
55
|
-
* penalty evenly between the two sides of a paired round either, which is
|
|
56
|
-
* exactly the error the pairing is supposed to remove. CPU time counts only
|
|
57
|
-
* cycles actually spent on this work, so the ratio reports the helpers
|
|
58
|
-
* whether or not the machine is busy.
|
|
59
|
-
*/
|
|
60
|
-
function measureAverage(callback) {
|
|
61
|
-
const start = process.cpuUsage();
|
|
62
|
-
for (let iteration = 0; iteration < 20; iteration++) {
|
|
63
|
-
benchmarkSink ^= callback();
|
|
64
|
-
}
|
|
65
|
-
const used = process.cpuUsage(start);
|
|
66
|
-
return (used.user + used.system) / 20;
|
|
67
|
-
}
|
|
68
|
-
/** Ten untimed warmups, then the median of nine alternating paired rounds. */
|
|
69
|
-
function pairedMedianRatio(baseline, candidate) {
|
|
70
|
-
for (let warmup = 0; warmup < 10; warmup++) {
|
|
71
|
-
benchmarkSink ^= baseline();
|
|
72
|
-
benchmarkSink ^= candidate();
|
|
73
|
-
}
|
|
74
|
-
const ratios = [];
|
|
75
|
-
const baselineTimes = [];
|
|
76
|
-
for (let round = 0; round < 9; round++) {
|
|
77
|
-
const baselineFirst = round % 2 === 0;
|
|
78
|
-
const first = measureAverage(baselineFirst ? baseline : candidate);
|
|
79
|
-
const second = measureAverage(baselineFirst ? candidate : baseline);
|
|
80
|
-
const baselineTime = baselineFirst ? first : second;
|
|
81
|
-
const candidateTime = baselineFirst ? second : first;
|
|
82
|
-
baselineTimes.push(baselineTime);
|
|
83
|
-
ratios.push(candidateTime / baselineTime);
|
|
84
|
-
}
|
|
85
|
-
void benchmarkSink;
|
|
86
|
-
return {
|
|
87
|
-
ratio: median(ratios),
|
|
88
|
-
baselineCost: median(baselineTimes)
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
/** Sleeps without spinning, so a busy machine can finish what it is doing. */
|
|
93
|
-
function pause(milliseconds) {
|
|
94
|
-
Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, milliseconds);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
/**
|
|
98
|
-
* The spec's statistic, taken from the least-contended attempt.
|
|
99
|
-
*
|
|
100
|
-
* Each attempt is one untouched run of the protocol — ten warmups, one
|
|
101
|
-
* nine-pair median — and nothing is averaged across them. What varies
|
|
102
|
-
* between attempts is only how much of the machine this process had, and
|
|
103
|
-
* `baselineCost` measures exactly that: the same baseline work, timed the
|
|
104
|
-
* same way, independent of anything the helpers do. Taking the attempt with
|
|
105
|
-
* the cheapest baseline therefore picks the run least disturbed by whatever
|
|
106
|
-
* else the box was doing, without touching the statistic itself.
|
|
107
|
-
*
|
|
108
|
-
* CPU time already removes descheduling, but not cache and memory-bandwidth
|
|
109
|
-
* pressure from a neighbour, which lands hardest on whichever side of the
|
|
110
|
-
* pair touches more memory. That is the residue this selection removes.
|
|
111
|
-
*/
|
|
112
|
-
function leastContendedRatio(baseline, candidate) {
|
|
113
|
-
let best;
|
|
114
|
-
for (let attempt = 0; attempt < 5; attempt++) {
|
|
115
|
-
const measured = pairedMedianRatio(baseline, candidate);
|
|
116
|
-
if (best === undefined || measured.baselineCost < best.baselineCost) {
|
|
117
|
-
best = measured;
|
|
118
|
-
}
|
|
119
|
-
pause(250);
|
|
120
|
-
}
|
|
121
|
-
return best.ratio;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
/**
|
|
125
|
-
* The same protocol with the SAME work on both sides.
|
|
126
|
-
*
|
|
127
|
-
* An A/A run has no overhead to find, so whatever it reports above 1.0 is
|
|
128
|
-
* the measurement's own error on this machine right now. It is the honest
|
|
129
|
-
* way to tell a helper regression from a busy box: without it, a contended
|
|
130
|
-
* run blames the helpers for time they never spent. The result bounds what
|
|
131
|
-
* any A/B number here can be trusted to resolve.
|
|
132
|
-
*/
|
|
133
|
-
function controlRatio(baseline) {
|
|
134
|
-
return leastContendedRatio(baseline, baseline);
|
|
135
|
-
}
|
|
136
39
|
|
|
137
40
|
/** Matches a prose identifier in every fixture section. */
|
|
138
41
|
const identifierPlugin = createMarkdownPlugin({
|
|
@@ -224,13 +127,12 @@ function measure(sections) {
|
|
|
224
127
|
plugins: [...representative]
|
|
225
128
|
}).length;
|
|
226
129
|
primePipeline([empty, withStableList, withRecreatedList]);
|
|
227
|
-
// The control
|
|
228
|
-
//
|
|
229
|
-
|
|
230
|
-
const control = controlRatio(empty);
|
|
130
|
+
// The A/A control measures identical work. Only a failed control can
|
|
131
|
+
// invalidate this sample; neither helper ratio participates in selection.
|
|
132
|
+
const control = measureMarkdownPairedRatio(empty, empty);
|
|
231
133
|
return {
|
|
232
|
-
stable:
|
|
233
|
-
recreated:
|
|
134
|
+
stable: measureMarkdownPairedRatio(empty, withStableList),
|
|
135
|
+
recreated: measureMarkdownPairedRatio(empty, withRecreatedList),
|
|
234
136
|
control
|
|
235
137
|
};
|
|
236
138
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Markdown.fr23.sampling.d.ts","sourceRoot":"","sources":["../../src/Markdown/Markdown.fr23.sampling.ts"],"names":[],"mappings":"AAmBA,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,MAAM,EACtB,SAAS,EAAE,MAAM,MAAM,EACvB,GAAG,GAAE,MAAM,MAAgB,GAC1B,MAAM,CAyBR"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @file Markdown.fr23.sampling.ts
|
|
5
|
+
* @input Baseline/candidate callbacks and a microsecond CPU clock
|
|
6
|
+
* @output The FR23 paired-median ratio
|
|
7
|
+
* @position Test-only sampling for Markdown.fr23.bench.ts
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
function cpuTime() {
|
|
11
|
+
const used = process.cpuUsage();
|
|
12
|
+
return used.user + used.system;
|
|
13
|
+
}
|
|
14
|
+
function median(values) {
|
|
15
|
+
const sorted = [...values].sort((left, right) => left - right);
|
|
16
|
+
return sorted[Math.floor(sorted.length / 2)];
|
|
17
|
+
}
|
|
18
|
+
export function measureMarkdownPairedRatio(baseline, candidate, now = cpuTime) {
|
|
19
|
+
let sink = 0;
|
|
20
|
+
const average = callback => {
|
|
21
|
+
const start = now();
|
|
22
|
+
for (let iteration = 0; iteration < 20; iteration++) {
|
|
23
|
+
sink ^= callback();
|
|
24
|
+
}
|
|
25
|
+
return (now() - start) / 20;
|
|
26
|
+
};
|
|
27
|
+
for (let warmup = 0; warmup < 10; warmup++) {
|
|
28
|
+
sink ^= baseline();
|
|
29
|
+
sink ^= candidate();
|
|
30
|
+
}
|
|
31
|
+
const ratios = [];
|
|
32
|
+
for (let round = 0; round < 9; round++) {
|
|
33
|
+
const baselineFirst = round % 2 === 0;
|
|
34
|
+
const first = average(baselineFirst ? baseline : candidate);
|
|
35
|
+
const second = average(baselineFirst ? candidate : baseline);
|
|
36
|
+
const baselineTime = baselineFirst ? first : second;
|
|
37
|
+
const candidateTime = baselineFirst ? second : first;
|
|
38
|
+
ratios.push(candidateTime / baselineTime);
|
|
39
|
+
}
|
|
40
|
+
void sink;
|
|
41
|
+
// Selecting a sample by its cheapest baseline also selects denominator noise.
|
|
42
|
+
return median(ratios);
|
|
43
|
+
}
|
package/dist/Markdown/ast.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @file ast.ts
|
|
3
3
|
* @input Parsed Markdown structure and optional Astryx extension nodes
|
|
4
4
|
* @output Canonical immutable MDAST-aligned Markdown node types and text projection
|
|
5
|
-
* @position
|
|
5
|
+
* @position Public canonical Markdown tree shared by parsing, transforms, rendering, and Outline
|
|
6
6
|
*/
|
|
7
7
|
export type MarkdownAstDataValue = null | boolean | number | string | ReadonlyArray<MarkdownAstDataValue> | {
|
|
8
8
|
readonly [key: string]: MarkdownAstDataValue;
|
package/dist/Markdown/ast.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* @file ast.ts
|
|
5
5
|
* @input Parsed Markdown structure and optional Astryx extension nodes
|
|
6
6
|
* @output Canonical immutable MDAST-aligned Markdown node types and text projection
|
|
7
|
-
* @position
|
|
7
|
+
* @position Public canonical Markdown tree shared by parsing, transforms, rendering, and Outline
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
const markdownAstLegacyCodeLanguage = Symbol('MarkdownAstLegacyCodeLanguage');
|
package/dist/Markdown/index.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @file index.ts
|
|
3
|
-
* @output Exports Markdown component, parser functions, and types
|
|
3
|
+
* @output Exports Markdown component, canonical and compatibility parser functions, and types
|
|
4
4
|
* @position Component entry point; re-exported by /packages/core/src/index.ts
|
|
5
5
|
*/
|
|
6
6
|
export { visitMarkdownNodes } from './ast';
|
|
7
7
|
export type { MarkdownAstPoint, MarkdownAstDataValue, MarkdownAstPosition, MarkdownAstNodeBase, MarkdownAstExtensionNode, MarkdownAstText, MarkdownAstInlineCode, MarkdownAstInlineMath, MarkdownAstLink, MarkdownAstImage, MarkdownAstCitation, MarkdownAstBreak, MarkdownAstPhrasingContent, MarkdownAstHeading, MarkdownAstParagraph, MarkdownAstCode, MarkdownAstMath, MarkdownAstBlockquote, MarkdownAstList, MarkdownAstListItem, MarkdownAstTable, MarkdownAstTableRow, MarkdownAstTableCell, MarkdownAstThematicBreak, MarkdownAstBlockContent, MarkdownAstRoot, MarkdownAstNodeMap, MarkdownAstNode, } from './ast';
|
|
8
8
|
export { Markdown } from './Markdown';
|
|
9
9
|
export type { MarkdownProps, MarkdownSource, MarkdownComponents, MarkdownInlinePlugin, } from './Markdown';
|
|
10
|
-
export { parseMarkdown, parseMarkdownIncremental, createIncrementalState, parseInline, } from './parser';
|
|
10
|
+
export { parseMarkdown, parseMarkdownAst, parseMarkdownIncremental, createIncrementalState, parseInline, parseInlineAst, } from './parser';
|
|
11
11
|
export type { BlockNode, BlockNodeWithMath, MathBlockNode, InlineNode, InlineNodeWithMath, MathInlineNode, SourceRange, ListItemNode, TableCellNode, TableAlignment, ParseOptions, MathParseOptions, IncrementalParseOptions, IncrementalMathParseOptions, IncrementalState as IncrementalParseState, } from './parser';
|
|
12
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Markdown/index.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AAEH,OAAO,EAAC,kBAAkB,EAAC,MAAM,OAAO,CAAC;AACzC,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,0BAA0B,EAC1B,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,uBAAuB,EACvB,eAAe,EACf,kBAAkB,EAClB,eAAe,GAChB,MAAM,OAAO,CAAC;AAEf,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AACpC,YAAY,EACV,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,sBAAsB,EACtB,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Markdown/index.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AAEH,OAAO,EAAC,kBAAkB,EAAC,MAAM,OAAO,CAAC;AACzC,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,0BAA0B,EAC1B,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,uBAAuB,EACvB,eAAe,EACf,kBAAkB,EAClB,eAAe,GAChB,MAAM,OAAO,CAAC;AAEf,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AACpC,YAAY,EACV,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,wBAAwB,EACxB,sBAAsB,EACtB,WAAW,EACX,cAAc,GACf,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,SAAS,EACT,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,WAAW,EACX,YAAY,EACZ,aAAa,EACb,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,uBAAuB,EACvB,2BAA2B,EAC3B,gBAAgB,IAAI,qBAAqB,GAC1C,MAAM,UAAU,CAAC"}
|
package/dist/Markdown/index.js
CHANGED
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* @file index.ts
|
|
7
|
-
* @output Exports Markdown component, parser functions, and types
|
|
7
|
+
* @output Exports Markdown component, canonical and compatibility parser functions, and types
|
|
8
8
|
* @position Component entry point; re-exported by /packages/core/src/index.ts
|
|
9
9
|
*/
|
|
10
10
|
export { visitMarkdownNodes } from "./ast.js";
|
|
11
11
|
export { Markdown } from "./Markdown.js";
|
|
12
|
-
export { parseMarkdown, parseMarkdownIncremental, createIncrementalState, parseInline } from "./parser.js";
|
|
12
|
+
export { parseMarkdown, parseMarkdownAst, parseMarkdownIncremental, createIncrementalState, parseInline, parseInlineAst } from "./parser.js";
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file index.ts
|
|
3
|
+
* @input Markdown source and public parser options
|
|
4
|
+
* @output Server-safe legacy and canonical Markdown parser entry points and types
|
|
5
|
+
* @position Public subpath entry point: `@astryxdesign/core/Markdown/parser`
|
|
6
|
+
*/
|
|
7
|
+
export { createIncrementalState, parseInline, parseInlineAst, parseMarkdown, parseMarkdownAst, parseMarkdownIncremental, } from '../parser';
|
|
8
|
+
export type { BlockNode, BlockNodeWithMath, MathBlockNode, InlineNode, InlineNodeWithMath, MathInlineNode, SourceRange, ListItemNode, TableCellNode, TableAlignment, ParseOptions, MathParseOptions, IncrementalParseOptions, IncrementalMathParseOptions, IncrementalState as IncrementalParseState, } from '../parser';
|
|
9
|
+
export type { MarkdownAstPoint, MarkdownAstDataValue, MarkdownAstPosition, MarkdownAstNodeBase, MarkdownAstExtensionNode, MarkdownAstText, MarkdownAstInlineCode, MarkdownAstInlineMath, MarkdownAstLink, MarkdownAstImage, MarkdownAstCitation, MarkdownAstBreak, MarkdownAstPhrasingContent, MarkdownAstHeading, MarkdownAstParagraph, MarkdownAstCode, MarkdownAstMath, MarkdownAstBlockquote, MarkdownAstList, MarkdownAstListItem, MarkdownAstTable, MarkdownAstTableRow, MarkdownAstTableCell, MarkdownAstThematicBreak, MarkdownAstBlockContent, MarkdownAstRoot, MarkdownAstNodeMap, MarkdownAstNode, } from '../ast';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Markdown/parser/index.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,EACL,sBAAsB,EACtB,WAAW,EACX,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,SAAS,EACT,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,WAAW,EACX,YAAY,EACZ,aAAa,EACb,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,uBAAuB,EACvB,2BAA2B,EAC3B,gBAAgB,IAAI,qBAAqB,GAC1C,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,0BAA0B,EAC1B,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,uBAAuB,EACvB,eAAe,EACf,kBAAkB,EAClB,eAAe,GAChB,MAAM,QAAQ,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @file index.ts
|
|
5
|
+
* @input Markdown source and public parser options
|
|
6
|
+
* @output Server-safe legacy and canonical Markdown parser entry points and types
|
|
7
|
+
* @position Public subpath entry point: `@astryxdesign/core/Markdown/parser`
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
export { createIncrementalState, parseInline, parseInlineAst, parseMarkdown, parseMarkdownAst, parseMarkdownIncremental } from "../parser.js";
|
|
@@ -259,8 +259,18 @@ export declare function parseInline<const Plugins extends ReadonlyArray<Markdown
|
|
|
259
259
|
export declare function parseInline<const Plugins extends ReadonlyArray<MarkdownPluginEntry>>(text: string, options: MathParseOptionsWithoutPlugins & {
|
|
260
260
|
plugins: Plugins;
|
|
261
261
|
}): InlineNodeWithMath<MarkdownExtensionsOf<Plugins>>[];
|
|
262
|
-
/**
|
|
263
|
-
|
|
262
|
+
/**
|
|
263
|
+
* Parse inline Markdown into the canonical immutable Astryx AST.
|
|
264
|
+
*
|
|
265
|
+
* Unlike `parseInline`, this returns MDAST-aligned node names and fields. Math
|
|
266
|
+
* nodes are present only when `math: true`, and plugin extension nodes are
|
|
267
|
+
* inferred from the ordered `plugins` tuple.
|
|
268
|
+
*/
|
|
269
|
+
export declare function parseInlineAst(text: string, sourceIds?: ReadonlySet<string>): MarkdownAstPhrasingContent[];
|
|
270
|
+
export declare function parseInlineAst(text: string, options: ParseOptionsWithoutPlugins | MathParseOptionsWithoutPlugins): MarkdownAstPhrasingContent[];
|
|
271
|
+
export declare function parseInlineAst<const Plugins extends ReadonlyArray<MarkdownPluginEntry>>(text: string, options: (ParseOptionsWithoutPlugins | MathParseOptionsWithoutPlugins) & {
|
|
272
|
+
plugins: Plugins;
|
|
273
|
+
}): MarkdownAstPhrasingContent<MarkdownExtensionsOf<Plugins>>[];
|
|
264
274
|
export declare function parseMarkdown(input: string, sourceIds?: ReadonlySet<string>): BlockNode[];
|
|
265
275
|
export declare function parseMarkdown(input: string, options: MathParseOptionsWithoutPlugins): BlockNodeWithMath[];
|
|
266
276
|
export declare function parseMarkdown(input: string, options: ParseOptionsWithoutPlugins): BlockNode[];
|
|
@@ -270,8 +280,20 @@ export declare function parseMarkdown<const Plugins extends ReadonlyArray<Markdo
|
|
|
270
280
|
export declare function parseMarkdown<const Plugins extends ReadonlyArray<MarkdownPluginEntry>>(input: string, options: MathParseOptionsWithoutPlugins & {
|
|
271
281
|
plugins: Plugins;
|
|
272
282
|
}): BlockNodeWithMath<MarkdownExtensionsOf<Plugins>>[];
|
|
273
|
-
/**
|
|
274
|
-
|
|
283
|
+
/**
|
|
284
|
+
* Parse block Markdown into the canonical immutable Astryx AST.
|
|
285
|
+
*
|
|
286
|
+
* Unlike `parseMarkdown`, this returns the MDAST-aligned root used by Markdown,
|
|
287
|
+
* transforms, and Outline. Math nodes are present only when `math: true`, and
|
|
288
|
+
* plugin extension nodes are inferred from the ordered `plugins` tuple.
|
|
289
|
+
*/
|
|
290
|
+
export declare function parseMarkdownAst(input: string, sourceIds?: ReadonlySet<string>): MarkdownAstRoot;
|
|
291
|
+
export declare function parseMarkdownAst(input: string, options: ParseOptionsWithoutPlugins | MathParseOptionsWithoutPlugins): MarkdownAstRoot;
|
|
292
|
+
export declare function parseMarkdownAst<const Plugins extends ReadonlyArray<MarkdownPluginEntry>>(input: string, options: (ParseOptionsWithoutPlugins | MathParseOptionsWithoutPlugins) & {
|
|
293
|
+
plugins: Plugins;
|
|
294
|
+
}): MarkdownAstRoot<MarkdownExtensionsOf<Plugins>>;
|
|
295
|
+
/** @internal Full-parse entry point with streaming finality for Outline. */
|
|
296
|
+
export declare function parseMarkdownAstInternal(input: string, arg: ReadonlySet<string> | RuntimeParseOptions | undefined, isFinal: boolean): MarkdownAstRoot<RuntimeExtensionNode>;
|
|
275
297
|
type IncrementalBlockNode<MathEnabled extends boolean> = MathEnabled extends true ? BlockNodeWithMath : BlockNode;
|
|
276
298
|
declare const incrementalStateMode: unique symbol;
|
|
277
299
|
export interface IncrementalState<MathEnabled extends boolean = false> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/Markdown/parser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/Markdown/parser.ts"],"names":[],"mappings":"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"}
|
package/dist/Markdown/parser.js
CHANGED
|
@@ -3,9 +3,10 @@
|
|
|
3
3
|
/**
|
|
4
4
|
* @file parser.ts
|
|
5
5
|
* @input Markdown string, released parse options, and optional ordered plugins
|
|
6
|
-
* @output Canonical MDAST-aligned nodes for
|
|
6
|
+
* @output Canonical MDAST-aligned nodes for public/server consumers plus unchanged
|
|
7
7
|
* released parser-node projections; shared heading slug helpers
|
|
8
|
-
* @position Core parser and compatibility boundary; consumed by
|
|
8
|
+
* @position Core parser and compatibility boundary; consumed by public parser entry,
|
|
9
|
+
* Markdown, and Outline
|
|
9
10
|
*/
|
|
10
11
|
|
|
11
12
|
import { getMarkdownAstLegacyCodeLanguage, markMarkdownAstLegacyCodeLanguage } from "./ast.js";
|
|
@@ -925,11 +926,21 @@ function matchExtensionSyntax(source, offset, context, opts) {
|
|
|
925
926
|
};
|
|
926
927
|
}
|
|
927
928
|
export function parseInline(text, arg) {
|
|
928
|
-
return projectInlineNodes(
|
|
929
|
+
return projectInlineNodes(parseInlineAstRuntime(text, arg), wantsLegacyRanges(arg));
|
|
929
930
|
}
|
|
930
931
|
|
|
931
|
-
/**
|
|
932
|
+
/**
|
|
933
|
+
* Parse inline Markdown into the canonical immutable Astryx AST.
|
|
934
|
+
*
|
|
935
|
+
* Unlike `parseInline`, this returns MDAST-aligned node names and fields. Math
|
|
936
|
+
* nodes are present only when `math: true`, and plugin extension nodes are
|
|
937
|
+
* inferred from the ordered `plugins` tuple.
|
|
938
|
+
*/
|
|
939
|
+
|
|
932
940
|
export function parseInlineAst(text, arg) {
|
|
941
|
+
return parseInlineAstRuntime(text, arg);
|
|
942
|
+
}
|
|
943
|
+
function parseInlineAstRuntime(text, arg) {
|
|
933
944
|
const opts = resolveOptions(arg);
|
|
934
945
|
const nodes = parseInlineEntry(text, opts);
|
|
935
946
|
if ((opts.plugins?.transforms.length ?? 0) === 0) {
|
|
@@ -1787,11 +1798,23 @@ function parseList(lines, startIndex, ordered, opts) {
|
|
|
1787
1798
|
// ---------------------------------------------------------------------------
|
|
1788
1799
|
|
|
1789
1800
|
export function parseMarkdown(input, arg) {
|
|
1790
|
-
return projectMarkdownRoot(
|
|
1801
|
+
return projectMarkdownRoot(parseMarkdownAstInternal(input, arg, true), wantsLegacyRanges(arg));
|
|
1802
|
+
}
|
|
1803
|
+
|
|
1804
|
+
/**
|
|
1805
|
+
* Parse block Markdown into the canonical immutable Astryx AST.
|
|
1806
|
+
*
|
|
1807
|
+
* Unlike `parseMarkdown`, this returns the MDAST-aligned root used by Markdown,
|
|
1808
|
+
* transforms, and Outline. Math nodes are present only when `math: true`, and
|
|
1809
|
+
* plugin extension nodes are inferred from the ordered `plugins` tuple.
|
|
1810
|
+
*/
|
|
1811
|
+
|
|
1812
|
+
export function parseMarkdownAst(input, arg) {
|
|
1813
|
+
return parseMarkdownAstInternal(input, arg, true);
|
|
1791
1814
|
}
|
|
1792
1815
|
|
|
1793
|
-
/** @internal
|
|
1794
|
-
export function
|
|
1816
|
+
/** @internal Full-parse entry point with streaming finality for Outline. */
|
|
1817
|
+
export function parseMarkdownAstInternal(input, arg, isFinal) {
|
|
1795
1818
|
const resolved = resolveOptions(arg);
|
|
1796
1819
|
const opts = isFinal ? resolved : {
|
|
1797
1820
|
...resolved,
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file frontmatter.ts
|
|
3
|
+
* @input Document-start frontmatter delimiters and a typed metadata decoder
|
|
4
|
+
* @output A Markdown plugin plus a typed metadata reader for later transforms
|
|
5
|
+
* @position Optional first-party document metadata helper
|
|
6
|
+
*/
|
|
7
|
+
import type { MarkdownAstRoot } from '../ast';
|
|
8
|
+
import { type MarkdownExtensionNode, type MarkdownPluginData, type MarkdownPluginEntry } from './protocol';
|
|
9
|
+
type FrontmatterRecord = Readonly<Record<string, string>>;
|
|
10
|
+
export interface MarkdownFrontmatterOptions<Metadata extends MarkdownPluginData> {
|
|
11
|
+
/** Stable plugin and metadata namespace. */
|
|
12
|
+
readonly name: string;
|
|
13
|
+
/** Converts validated key/value fields into typed document metadata. */
|
|
14
|
+
readonly parse: (fields: FrontmatterRecord) => Metadata;
|
|
15
|
+
}
|
|
16
|
+
export type MarkdownFrontmatterParseResult<Metadata extends MarkdownPluginData> = {
|
|
17
|
+
readonly status: 'none';
|
|
18
|
+
} | {
|
|
19
|
+
readonly status: 'defer';
|
|
20
|
+
} | {
|
|
21
|
+
readonly status: 'match';
|
|
22
|
+
readonly contentStart: number;
|
|
23
|
+
readonly metadata: Metadata;
|
|
24
|
+
};
|
|
25
|
+
export interface MarkdownFrontmatter<Metadata extends MarkdownPluginData> {
|
|
26
|
+
readonly plugin: MarkdownPluginEntry<never>;
|
|
27
|
+
parse(source: string, isFinal?: boolean): MarkdownFrontmatterParseResult<Metadata>;
|
|
28
|
+
getMetadata(document: MarkdownAstRoot<MarkdownExtensionNode>): Metadata | undefined;
|
|
29
|
+
}
|
|
30
|
+
export declare function createMarkdownFrontmatter<Metadata extends MarkdownPluginData>(options: MarkdownFrontmatterOptions<Metadata>): MarkdownFrontmatter<Metadata>;
|
|
31
|
+
export {};
|
|
32
|
+
//# sourceMappingURL=frontmatter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frontmatter.d.ts","sourceRoot":"","sources":["../../../src/Markdown/plugins/frontmatter.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAKL,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EAEzB,MAAM,YAAY,CAAC;AAMpB,KAAK,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAO1D,MAAM,WAAW,0BAA0B,CACzC,QAAQ,SAAS,kBAAkB;IAEnC,4CAA4C;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,QAAQ,CAAC;CACzD;AAED,MAAM,MAAM,8BAA8B,CACxC,QAAQ,SAAS,kBAAkB,IAEjC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAC,GACzB;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CAAC,GAC1B;IACE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC7B,CAAC;AAEN,MAAM,WAAW,mBAAmB,CAAC,QAAQ,SAAS,kBAAkB;IACtE,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC5C,KAAK,CACH,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,OAAO,GAChB,8BAA8B,CAAC,QAAQ,CAAC,CAAC;IAC5C,WAAW,CACT,QAAQ,EAAE,eAAe,CAAC,qBAAqB,CAAC,GAC/C,QAAQ,GAAG,SAAS,CAAC;CACzB;AAkED,wBAAgB,yBAAyB,CAAC,QAAQ,SAAS,kBAAkB,EAC3E,OAAO,EAAE,0BAA0B,CAAC,QAAQ,CAAC,GAC5C,mBAAmB,CAAC,QAAQ,CAAC,CAoE/B"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @file frontmatter.ts
|
|
5
|
+
* @input Document-start frontmatter delimiters and a typed metadata decoder
|
|
6
|
+
* @output A Markdown plugin plus a typed metadata reader for later transforms
|
|
7
|
+
* @position Optional first-party document metadata helper
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { createMarkdownPlugin, freezeMarkdownPluginData, isMarkdownPluginData, markMarkdownTransformTrusted } from "./protocol.js";
|
|
11
|
+
const ENVELOPE_KEY = 'astryx:frontmatter';
|
|
12
|
+
const ENVELOPE_BRAND = 'astryx.markdown.frontmatter';
|
|
13
|
+
const ENVELOPE_VERSION = 1;
|
|
14
|
+
function asDataRecord(value) {
|
|
15
|
+
return value != null && typeof value === 'object' && !Array.isArray(value) ? value : {};
|
|
16
|
+
}
|
|
17
|
+
function parseEnvelope(value) {
|
|
18
|
+
if (value == null || typeof value !== 'object' || Array.isArray(value)) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
const candidate = value;
|
|
22
|
+
return candidate.brand === ENVELOPE_BRAND && candidate.version === ENVELOPE_VERSION && candidate.values != null && typeof candidate.values === 'object' && !Array.isArray(candidate.values) ? candidate : undefined;
|
|
23
|
+
}
|
|
24
|
+
function readFrontmatter(source) {
|
|
25
|
+
const openingLength = source.startsWith('---\r\n') ? 5 : source.startsWith('---\n') ? 4 : 0;
|
|
26
|
+
if (openingLength === 0) {
|
|
27
|
+
return {
|
|
28
|
+
status: 'none'
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
const body = source.slice(openingLength);
|
|
32
|
+
const close = /(?:^|\r?\n)---(?=\r?\n|$)/.exec(body);
|
|
33
|
+
if (close == null) {
|
|
34
|
+
return {
|
|
35
|
+
status: 'defer'
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
const fields = Object.create(null);
|
|
39
|
+
for (const line of body.slice(0, close.index).split(/\r?\n/)) {
|
|
40
|
+
if (line.trim() === '') {
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
const separator = line.indexOf(':');
|
|
44
|
+
const key = line.slice(0, separator).trim();
|
|
45
|
+
if (separator <= 0 || key === '' || Object.hasOwn(fields, key)) {
|
|
46
|
+
return {
|
|
47
|
+
status: 'none'
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
fields[key] = line.slice(separator + 1).trim();
|
|
51
|
+
}
|
|
52
|
+
let end = openingLength + close.index + close[0].length;
|
|
53
|
+
if (source.startsWith('\r\n', end)) {
|
|
54
|
+
end += 2;
|
|
55
|
+
} else if (source[end] === '\n') {
|
|
56
|
+
end += 1;
|
|
57
|
+
}
|
|
58
|
+
return {
|
|
59
|
+
status: 'match',
|
|
60
|
+
end,
|
|
61
|
+
fields: Object.freeze(fields)
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
export function createMarkdownFrontmatter(options) {
|
|
65
|
+
if (options.name.trim() === '') {
|
|
66
|
+
throw new TypeError('Markdown frontmatter name must be non-empty');
|
|
67
|
+
}
|
|
68
|
+
const name = options.name;
|
|
69
|
+
const parse = (source, isFinal = true) => {
|
|
70
|
+
const parsed = readFrontmatter(source);
|
|
71
|
+
if (parsed.status === 'defer') {
|
|
72
|
+
return isFinal ? {
|
|
73
|
+
status: 'none'
|
|
74
|
+
} : parsed;
|
|
75
|
+
}
|
|
76
|
+
if (parsed.status === 'none') {
|
|
77
|
+
return parsed;
|
|
78
|
+
}
|
|
79
|
+
const metadata = options.parse(parsed.fields);
|
|
80
|
+
if (!isMarkdownPluginData(metadata)) {
|
|
81
|
+
throw new TypeError('Markdown frontmatter metadata must be finite JSON-like data');
|
|
82
|
+
}
|
|
83
|
+
return {
|
|
84
|
+
status: 'match',
|
|
85
|
+
contentStart: parsed.end,
|
|
86
|
+
metadata: freezeMarkdownPluginData(metadata)
|
|
87
|
+
};
|
|
88
|
+
};
|
|
89
|
+
const transform = (document, context) => {
|
|
90
|
+
const parsed = parse(context.source, context.isFinal);
|
|
91
|
+
if (parsed.status === 'none') {
|
|
92
|
+
return document;
|
|
93
|
+
}
|
|
94
|
+
if (parsed.status === 'defer') {
|
|
95
|
+
return {
|
|
96
|
+
...document,
|
|
97
|
+
children: []
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
const documentData = asDataRecord(document.data);
|
|
101
|
+
const prior = parseEnvelope(documentData[ENVELOPE_KEY]);
|
|
102
|
+
const envelope = Object.freeze({
|
|
103
|
+
brand: ENVELOPE_BRAND,
|
|
104
|
+
version: ENVELOPE_VERSION,
|
|
105
|
+
values: Object.freeze({
|
|
106
|
+
...prior?.values,
|
|
107
|
+
[name]: parsed.metadata
|
|
108
|
+
})
|
|
109
|
+
});
|
|
110
|
+
return {
|
|
111
|
+
...document,
|
|
112
|
+
data: Object.freeze({
|
|
113
|
+
...documentData,
|
|
114
|
+
[ENVELOPE_KEY]: envelope
|
|
115
|
+
}),
|
|
116
|
+
children: document.children.filter(node => (node.position?.end.offset ?? Infinity) > parsed.contentStart)
|
|
117
|
+
};
|
|
118
|
+
};
|
|
119
|
+
const plugin = createMarkdownPlugin({
|
|
120
|
+
name,
|
|
121
|
+
apiVersion: 1,
|
|
122
|
+
transform: markMarkdownTransformTrusted(transform)
|
|
123
|
+
});
|
|
124
|
+
return Object.freeze({
|
|
125
|
+
plugin,
|
|
126
|
+
parse,
|
|
127
|
+
getMetadata(document) {
|
|
128
|
+
const data = asDataRecord(document.data);
|
|
129
|
+
return parseEnvelope(data[ENVELOPE_KEY])?.values[name];
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
}
|
|
@@ -10,5 +10,7 @@ export { createMarkdownFenceTransform } from './semanticFence';
|
|
|
10
10
|
export type { MarkdownFenceContext, MarkdownFenceNode, MarkdownFenceTransformOptions, } from './semanticFence';
|
|
11
11
|
export { createMarkdownSourceDecoration, getMarkdownSourceDecorations, } from './sourceDecoration';
|
|
12
12
|
export type { MarkdownSourceDecoration, MarkdownSourceDecorationOptions, MarkdownSourceDecorationRange, } from './sourceDecoration';
|
|
13
|
+
export { createMarkdownFrontmatter } from './frontmatter';
|
|
14
|
+
export type { MarkdownFrontmatter, MarkdownFrontmatterOptions, MarkdownFrontmatterParseResult, } from './frontmatter';
|
|
13
15
|
export type { MarkdownPluginData, MarkdownExtensionNode, MarkdownTokenizerInput, MarkdownTokenizeResult, MarkdownSyntaxContribution, MarkdownSyntaxCapability, MarkdownTransformContext, MarkdownTransform, MarkdownExtensionRenderer, MarkdownExtensionRenderers, MarkdownSyntaxPluginDefinition, MarkdownTransformPluginDefinition, MarkdownPluginDefinition, MarkdownPluginEntry, MarkdownNodeOf, MarkdownExtensionsOf, } from './protocol';
|
|
14
16
|
//# sourceMappingURL=index.d.ts.map
|