digraph root {
graph [_draw_="c 9 -#fffffe00 C 7 -#f8f8f2 P 4 0 0 0 3703.5 4639.5 3703.5 4639.5 0 ",
applyCss=dark,
arrowsize=0.6,
bb="0,0,4639.5,3703.5",
bgcolor="#f8f8f2",
charset="UTF-8",
clusterize=false,
color="#282a36",
fontcolor="#44475a",
fontname=Agave,
margin=4.3,
overlap=voronoi,
pencolor="#282a36",
penwidth=0.8,
rankdir=LR,
shape=box,
splines=spline,
style=rounded,
truecolor=true,
xdotversion=1.7
];
node [arrowsize=0.6,
bgcolor="#f8f8f2",
color="#282a36",
fontcolor="#44475a",
fontname=Agave,
label="\N",
margin=4.3,
overlap=voronoi,
pencolor="#282a36",
penwidth=0.8,
shape=box,
splines=true,
style=rounded,
truecolor=true
];
edge [arrowsize=0.6,
bgcolor="#f8f8f2",
color="#282a36",
fontcolor="#44475a",
fontname=Agave,
fontsize=6.8,
margin=4.3,
overlap=voronoi,
pencolor="#282a36",
penwidth=0.8,
shape=box,
splines=true,
style=rounded,
truecolor=true
];
subgraph G_cc_0 {
graph [applyCss=dark,
arrowsize=0.6,
bb="",
bgcolor="#f8f8f2",
charset="UTF-8",
clusterize=false,
color="#282a36",
fontcolor="#44475a",
fontname=Agave,
margin=4.3,
overlap=voronoi,
pencolor="#282a36",
penwidth=0.8,
rankdir=LR,
shape=box,
splines=spline,
style=rounded,
truecolor=true
];
node [arrowsize=0.6,
bgcolor="#f8f8f2",
color="#282a36",
fontcolor="#44475a",
fontname=Agave,
fontsize="",
height="",
href="",
label="\N",
margin=4.3,
overlap=voronoi,
pencolor="#282a36",
penwidth=0.8,
pos="",
shape=box,
splines=true,
style=rounded,
truecolor=true,
width=""
];
edge [arrowhead="",
arrowsize=0.6,
bgcolor="#f8f8f2",
color="#282a36",
fontcolor="#44475a",
fontname=Agave,
fontsize=6.8,
href="",
margin=4.3,
overlap=voronoi,
pencolor="#282a36",
penwidth=0.8,
pos="",
reverse="",
shape=box,
splines=true,
style=rounded,
tooltip="",
truecolor=true,
type=""
];
mdt [_ldraw_="F 19 5 -Agave c 7 -#44475a t 1 T 3755 3550.3 -1 30 3 -mdt F 19 5 -Agave c 7 -#44475a t 0 T 3755 3526.3 -1 176 21 -• mdd transclusion \
F 19 5 -Agave c 7 -#44475a T 3755 3505.3 -1 235 27 -• its runnable in nodejs F 19 5 -Agave c 7 -#44475a T 3755 3484.3 -1 322 \
36 -• mq-declarative-actor can run it F 19 5 -Agave c 7 -#44475a T 3755 3463.3 -1 205 24 -• sphere of fragments F 19 5 -Agave \
c 7 -#44475a T 3755 3442.3 -1 215 25 -• dynamic paper, space F 19 5 -Agave c 7 -#44475a T 3755 3421.3 -1 244 28 -• presented \
incrementally ",
fontsize=19,
height=2.0972,
href="#mdt",
label=<
mdt
|
| • mdd transclusion | | • its runnable in nodejs | | • mq-declarative-actor can run it | | • sphere of fragments | | • dynamic paper, space | | • presented incrementally |
|
>,
pos="3916,3490.5",
shape=plain,
width=4.5];
transclusion [_ldraw_="F 9.5 5 -Agave c 7 -#44475a t 1 T 4116 3695.9 -1 55 12 -transclusion F 9.5 5 -Agave c 7 -#44475a t 0 T 4116 3682.9 -1 127 31 -• mdd \
transclusion is value. F 9.5 5 -Agave c 7 -#44475a T 4116 3673.9 -1 50 14 -• using the F 9.5 14 -Overpass Heavy c 7 -#44475a \
T 4166 3673.9 -1 301 58 -fragment://./url-in-headin⸨fragment://./url-in-headin⸩ F 9.5 5 -Agave c 7 -#44475a T 4467 3673.9 -1 \
172 38 -institute, fragments can be referenced F 9.5 5 -Agave c 7 -#44475a T 4116 3662.9 -1 190 45 -• this means a tertiary virtual \
mdd paper F 9.5 5 -Agave c 7 -#44475a T 4116 3652.9 -1 127 28 -can be created, which opens F 9.5 5 -Agave c 7 -#44475a T 4179 \
3642.9 -1 64 14 -opportunities: F 9.5 5 -Agave c 7 -#44475a T 4197 3632.9 -1 190 45 -• on render of the mdt, it can render the \
F 9.5 5 -Agave c 7 -#44475a T 4197 3622.9 -1 172 38 -referenced fragments as needed; maybe F 9.5 5 -Agave c 7 -#44475a T 4262.5 \
3612.9 -1 59 13 -add \"buttons\" F 9.5 5 -Agave c 7 -#44475a T 4197 3602.9 -1 158 38 -• on the other hand: each fragment F 9.5 \
5 -Agave c 7 -#44475a T 4197 3592.9 -1 185 41 -(anywhere) can have all mdt's (where its F 9.5 5 -Agave c 7 -#44475a T 4237.5 3582.9 \
-1 104 23 -referenced) at disposal F 9.5 5 -Agave c 7 -#44475a T 4385 3572.9 -1 149 36 -• the referencing anchor derives F 9.5 \
5 -Agave c 7 -#44475a T 4385 3562.9 -1 181 40 -information also by its position in the F 9.5 5 -Agave c 7 -#44475a T 4398.5 3552.9 \
-1 154 34 -structure of the mdt markdown tree F 9.5 5 -Agave c 7 -#44475a T 4197 3543.9 -1 77 20 -• its similiar to F 9.5 14 \
-Overpass Heavy c 7 -#44475a T 4274 3543.9 -1 305 56 -symmetric functional tree⸨symmetric functional tree⸩ F 9.5 5 -Agave c \
7 -#44475a T 4116 3532.9 -1 68 18 -• see meta-data F 9.5 5 -Agave c 7 -#44475a T 4116 3523.9 -1 68 18 -• see usage for F 9.5 \
14 -Overpass Heavy c 7 -#44475a T 4184 3523.9 -1 217 40 -fragment://voting⸨fragment://voting⸩ F 9.5 5 -Agave c 7 -#44475a T \
4116 3512.9 -1 73 19 -• valid mdd + m4 F 9.5 5 -Agave c 7 -#44475a T 4311 3502.9 -1 154 37 -• at instruction point (= heading) \
F 9.5 5 -Agave c 7 -#44475a T 4498 3492.9 -1 68 18 -• insert select F 9.5 5 -Agave c 7 -#44475a T 4498 3482.9 -1 68 18 -• inject \
select F 9.5 5 -Agave c 7 -#44475a T 4116 3473.9 -1 10 5 -• F 9.5 14 -Overpass Heavy c 7 -#44475a T 4126 3473.9 -1 355 58 -#/\
paper/paper/mechanism/md⸨#/paper/paper/mechanism/md⸩ F 9.5 5 -Agave c 7 -#44475a T 4116 3462.9 -1 41 12 -• see TOT ",
fontsize=9.5,
height=3.3889,
href="#transclusion",
label=<transclusion
|
| • mdd transclusion is value. | | • using thefragment://./url-in-headin⸨fragment://./url-in-headin⸩institute, fragments can be referenced | • this means a tertiary virtual mdd paper can be created, which opens opportunities: | | • on render of the mdt, it can render the referenced fragments as needed; maybe add "buttons" | | • on the other hand: each fragment (anywhere) can have all mdt's (where its referenced) at disposal | | | | • the referencing anchor derives information also by its position in the structure of the mdt markdown tree |
| | • its similiar tosymmetric functional tree⸨symmetric functional tree⸩ |
| | • see meta-data | | • see usage forfragment://voting⸨fragment://voting⸩ | | • valid mdd + m4 | | • at instruction point (= heading) | | | | • insert select | | | • inject select |
|
| | • #/paper/paper/mechanism/md⸨#/paper/paper/mechanism/md⸩ | | • see TOT |
|
>,
pos="4377,3581.5",
shape=plain,
width=7.2917];
mdt -> transclusion [_draw_="S 17 -setlinewidth(0.8) S 6 -dashed c 7 -#282a36 B 4 4078 3522.5 4086.5 3524.2 4095.2 3525.9 4104 3527.6 ",
_hdraw_="S 17 -setlinewidth(0.8) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 9 4113.9 3529.6 4103.21 3532.03 4109 3528.61 4104.1 3527.62 4104.1 \
3527.62 4104.1 3527.62 4109 3528.61 4104.99 3523.21 4113.9 3529.6 ",
arrowhead=open,
arrowsize=1.0,
href="#mdt👉 transclusion",
pos="e,4113.9,3529.6 4078,3522.5 4086.5,3524.2 4095.2,3525.9 4104,3527.6",
reverse=false,
style=dashed,
tooltip="-> isAnInputTo",
type=isAnInputTo];
ideas [_ldraw_="F 9.5 5 -Agave c 7 -#44475a t 1 T 4280 3433.9 -1 23 5 -ideas F 9.5 5 -Agave c 7 -#44475a t 0 T 4280 3420.9 -1 194 46 -• an extruction \
can have the codeblock and F 9.5 5 -Agave c 7 -#44475a T 4356.5 3410.9 -1 41 9 -also text F 9.5 5 -Agave c 7 -#44475a T 4280 3400.9 \
-1 176 42 -• insert is fetching cached content of F 9.5 5 -Agave c 7 -#44475a T 4347.5 3390.9 -1 41 9 -fragments F 9.5 5 -Agave \
c 7 -#44475a T 4280 3380.9 -1 46 13 -• backend? F 9.5 5 -Agave c 7 -#44475a T 4322 3370.9 -1 131 32 -• final mdd will be produced? \
F 9.5 5 -Agave c 7 -#44475a T 4322 3360.9 -1 109 27 -• makes sense for space, ",
fontsize=9.5,
height=1.1667,
href="#ideas",
label=<ideas
|
• an extruction can have the codeblock and also text | • insert is fetching cached content of fragments | | • backend? | | • final mdd will be produced? | | • makes sense for space, |
|
|
>,
pos="4377,3399.5",
shape=plain,
width=2.7222];
mdt -> ideas [_draw_="S 17 -setlinewidth(0.8) S 6 -dashed c 7 -#282a36 B 7 4078.2 3457.7 4090.3 3455.2 4102.4 3452.8 4114 3450.5 4164.7 3440.4 4221 3429.4 \
4268.3 3420.2 ",
_hdraw_="S 17 -setlinewidth(0.8) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 9 4278.3 3418.3 4269.32 3424.59 4273.39 3419.23 4268.48 3420.17 4268.48 \
3420.17 4268.48 3420.17 4273.39 3419.23 4267.64 3415.75 4278.3 3418.3 ",
arrowhead=open,
arrowsize=1.0,
href="#mdt👉 ideas",
pos="e,4278.3,3418.3 4078.2,3457.7 4090.3,3455.2 4102.4,3452.8 4114,3450.5 4164.7,3440.4 4221,3429.4 4268.3,3420.2",
reverse=false,
style=dashed,
tooltip="-> isAnInputTo",
type=isAnInputTo];
}
subgraph G_cc_1 {
graph [applyCss=dark,
arrowsize=0.6,
bb="",
bgcolor="#f8f8f2",
charset="UTF-8",
clusterize=false,
color="#282a36",
fontcolor="#44475a",
fontname=Agave,
margin=4.3,
overlap=voronoi,
pencolor="#282a36",
penwidth=0.8,
rankdir=LR,
shape=box,
splines=spline,
style=rounded,
truecolor=true
];
node [arrowsize=0.6,
bgcolor="#f8f8f2",
color="#282a36",
fontcolor="#44475a",
fontname=Agave,
fontsize="",
height="",
href="",
label="\N",
margin=4.3,
overlap=voronoi,
pencolor="#282a36",
penwidth=0.8,
pos="",
shape=box,
splines=true,
style=rounded,
truecolor=true,
width=""
];
edge [arrowhead="",
arrowsize=0.6,
arrowtail="",
bgcolor="#f8f8f2",
color="#282a36",
constrained="",
dir="",
fontcolor="#44475a",
fontname=Agave,
fontsize=6.8,
href="",
margin=4.3,
overlap=voronoi,
pencolor="#282a36",
penwidth=0.8,
pos="",
reverse="",
shape=box,
splines=true,
style=rounded,
tooltip="",
truecolor=true,
type=""
];
mdt___Markdown_Construction_Pseudo_Code_Spec [_ldraw_="F 19 5 -Agave c 7 -#44475a t 1 T 1 1282.3 -1 391 42 -mdt — Markdown Construction Pseudo-Code F 19 5 -Agave c 7 -#44475a T 1 1263.3 \
-1 40 4 -Spec F 19 5 -Agave c 7 -#44475a t 0 T 1 1244.3 -1 293 30 -Pure JavaScript library for a F 19 5 -Agave c 7 -#44475a t 4 \
T 294 1244.3 -1 410 42 -markdown construction pseudo-code language F 19 5 -Agave c 7 -#44475a t 0 T 704 1244.3 -1 332 34 - . Markdown \
is the surface syntax. F 19 5 -Agave c 7 -#ff79c6 T 1036 1244.3 -1 98 12 - # ${...} F 19 5 -Agave c 7 -#44475a T 1134 1244.3 \
-1 127 13 -headings are F 19 5 -Agave c 7 -#44475a t 4 T 1261 1244.3 -1 108 11 -extructions F 19 5 -Agave c 7 -#44475a t 0 T 1369 \
1244.3 -1 342 37 - — labeled markers that produce no F 19 5 -Agave c 7 -#44475a T 371.5 1225.3 -1 176 18 -output; bodies use \
F 19 5 -Agave c 7 -#ff79c6 T 547.5 1225.3 -1 147 17 - ```javascript F 19 5 -Agave c 7 -#44475a T 694.5 1225.3 -1 420 43 -code \
blocks for eval.The library follows a F 19 5 -Agave c 7 -#44475a t 4 T 1114.5 1225.3 -1 157 16 -compile / runner F 19 5 -Agave \
c 7 -#44475a t 0 T 1271.5 1225.3 -1 69 7 - split: F 19 5 -Agave c 7 -#44475a T 1 1204.3 -1 20 5 -• F 19 5 -Agave c 7 -#ff79c6 \
T 21 1204.3 -1 293 32 - compile(mdtText, { remark }) F 19 5 -Agave c 7 -#44475a T 314 1204.3 -1 274 30 -— static analysis, \
returns a F 19 5 -Agave c 7 -#ff79c6 T 588 1204.3 -1 79 10 - Runner F 19 5 -Agave c 7 -#44475a T 1 1183.3 -1 49 8 -• The F \
19 5 -Agave c 7 -#ff79c6 T 50 1183.3 -1 79 10 - Runner F 19 5 -Agave c 7 -#44475a T 129 1183.3 -1 400 43 -is a function — call \
it with context and F 19 5 -Agave c 7 -#44475a T 1 1164.3 -1 137 14 -opts to get a F 19 5 -Agave c 7 -#44475a t 4 T 138 1164.3 \
-1 79 8 -Document F 19 5 -Agave c 7 -#44475a t 0 T 217 1164.3 -1 332 34 - , which lazily yields expandable F 19 5 -Agave c 7 -#\
44475a t 4 T 549 1164.3 -1 79 8 -Fragment F 19 5 -Agave c 7 -#44475a t 0 T 628 1164.3 -1 79 8 - objects F 19 5 -Agave c 7 -#44475a \
T 1 1143.3 -1 176 18 -All functions are F 19 5 -Agave c 7 -#44475a t 4 T 177 1143.3 -1 40 4 -pure F 19 5 -Agave c 7 -#44475a t \
0 T 217 1143.3 -1 332 36 - — no mutation of inputs, no side F 19 5 -Agave c 7 -#44475a T 1 1124.3 -1 332 34 -effects, no classes, \
all external F 19 5 -Agave c 7 -#44475a T 114 1105.3 -1 322 33 -dependencies passed as arguments. ",
fontsize=19,
height=2.75,
href="#mdt___Markdown_Construction_Pseudo_Code_Spec",
label=<mdt — Markdown Construction Pseudo-Code Spec Pure JavaScript library for a markdown construction pseudo-code language . Markdown is the surface syntax. # ${...} headings are extructions — labeled markers that produce no output; bodies use ```javascript code blocks for eval.The library follows a compile / runner split: |
| • compile(mdtText, { remark }) — static analysis, returns a Runner | • The Runner is a function — call it with context and opts to get a Document , which lazily yields expandable Fragment objects |
|
All functions are pure — no mutation of inputs, no side effects, no classes, all external dependencies passed as arguments. |
>,
pos="856,1198.5",
shape=plain,
width=23.778];
The_idea [_ldraw_="F 9.5 5 -Agave c 7 -#44475a t 1 T 2143 2871.9 -1 37 8 -The idea F 9.5 5 -Agave c 7 -#44475a t 0 T 2143 2858.9 -1 95 24 -• sphere \
of fragments F 9.5 5 -Agave c 7 -#44475a T 2143 2848.9 -1 104 26 -• dynamic markdown OLAP F 9.5 5 -Agave c 7 -#44475a T 2143 \
2837.9 -1 14 3 -The F 9.5 5 -Agave c 7 -#ff79c6 T 2157 2837.9 -1 46 12 - # ${...} F 9.5 5 -Agave c 7 -#44475a T 2203 2837.9 -1 \
104 23 -construct is called an F 9.5 5 -Agave c 7 -#44475a t 4 T 2307 2837.9 -1 46 10 -extruction F 9.5 5 -Agave c 7 -#44475a t \
0 T 2353 2837.9 -1 176 41 - — a coined term for a labeled heading F 9.5 5 -Agave c 7 -#44475a T 2143 2828.4 -1 185 41 -marker \
that produces no output; the body F 9.5 5 -Agave c 7 -#44475a T 2143 2818.9 -1 19 4 -uses F 9.5 5 -Agave c 7 -#ff79c6 T 2162 2818.9 \
-1 68 17 - ```javascript F 9.5 5 -Agave c 7 -#44475a T 2230 2818.9 -1 271 60 -code blocks for evaluation.The name evolved through \
several F 9.5 5 -Agave c 7 -#44475a T 2279.5 2809.4 -1 113 25 -candidates during design: F 9.5 5 -Agave c 7 -#44475a T 2143 2797.9 \
-1 14 6 -• F 9.5 5 -Agave c 7 -#44475a t 4 T 2157 2797.9 -1 41 9 -expansion F 9.5 5 -Agave c 7 -#44475a t 0 T 2198 2797.9 -1 \
181 42 - — suggests something that unfolds when F 9.5 5 -Agave c 7 -#44475a T 2240.5 2788.4 -1 41 9 -activated F 9.5 5 -Agave \
c 7 -#44475a T 2143 2778.9 -1 14 6 -• F 9.5 5 -Agave c 7 -#44475a t 4 T 2157 2778.9 -1 41 9 -diversion F 9.5 5 -Agave c 7 -#\
44475a t 0 T 2198 2778.9 -1 163 38 - — content that diverts from normal F 9.5 5 -Agave c 7 -#44475a T 2227 2769.4 -1 50 11 -output \
flow F 9.5 5 -Agave c 7 -#44475a T 2143 2759.9 -1 14 6 -• F 9.5 5 -Agave c 7 -#44475a t 4 T 2157 2759.9 -1 91 20 -fragment \
instruction F 9.5 5 -Agave c 7 -#44475a t 0 T 2248 2759.9 -1 185 43 - — a fragment that carries an instruction F 9.5 5 -Agave \
c 7 -#44475a T 2143 2749.9 -1 14 6 -• F 9.5 5 -Agave c 7 -#44475a t 4 T 2157 2749.9 -1 41 9 -generator F 9.5 5 -Agave c 7 -#\
44475a t 0 T 2198 2749.9 -1 172 40 - — evokes generating content from the F 9.5 5 -Agave c 7 -#44475a T 2245 2740.4 -1 23 5 -label \
F 9.5 5 -Agave c 7 -#44475a T 2143 2730.9 -1 14 6 -• F 9.5 5 -Agave c 7 -#44475a t 4 T 2157 2730.9 -1 46 10 -extruction F 9.5 \
5 -Agave c 7 -#44475a t 0 T 2203 2730.9 -1 154 36 - — chosen; portmanteau hinting at F 9.5 5 -Agave c 7 -#44475a T 2143 2721.4 \
-1 55 12 -\"extract\" / F 9.5 5 -Agave c 7 -#44475a T 2143 2711.9 -1 64 14 -\"execute\" and F 9.5 5 -Agave c 7 -#44475a T 2218 2702.4 \
-1 64 14 -\"construction\" F 9.5 5 -Agave c 7 -#44475a T 2143 2689.9 -1 172 38 -Other ideas considered: hatch, vault, F 9.5 5 -Agave \
c 7 -#44475a T 2143 2679.9 -1 185 41 -pocket, slot, well, lens, scope, portal, F 9.5 5 -Agave c 7 -#44475a T 2143 2669.9 -1 181 \
40 -embed, injection, graft, splice, yield, F 9.5 5 -Agave c 7 -#44475a T 2206 2659.9 -1 59 13 -emit, render. ",
fontsize=9.5,
height=3.0972,
href="#The_idea",
label=<The idea
|
| • sphere of fragments | | • dynamic markdown OLAP |
|
The # ${...} construct is called an extruction — a coined term for a labeled heading marker that produces no output; the body uses ```javascript code blocks for evaluation.The name evolved through several candidates during design: |
• expansion — suggests something that unfolds when activated | • diversion — content that diverts from normal output flow | | • fragment instruction — a fragment that carries an instruction | • generator — evokes generating content from the label | • extruction — chosen; portmanteau hinting at "extract" / "execute" and "construction" |
|
Other ideas considered: hatch, vault, pocket, slot, well, lens, scope, portal, embed, injection, graft, splice, yield, emit, render. |
>,
pos="2336,2768.5",
shape=plain,
width=5.3889];
mdt___Markdown_Construction_Pseudo_Code_Spec -> The_idea [_draw_="S 17 -setlinewidth(0.8) S 6 -dashed c 7 -#282a36 B 7 887.12 1298.3 973.22 1564.3 1247 2296 1748 2647 1859.8 2725.3 2011.1 2755.2 \
2132.2 2765.6 ",
_hdraw_="S 17 -setlinewidth(0.8) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 9 2142.3 2766.5 2131.94 2770.09 2137.32 2766.06 2132.34 2765.61 2132.34 \
2765.61 2132.34 2765.61 2137.32 2766.06 2132.74 2761.13 2142.3 2766.5 ",
arrowhead=open,
arrowsize=1.0,
href="#mdt___Markdown_Construction_Pseudo_Code_Spec👉 The_idea",
pos="e,2142.3,2766.5 887.12,1298.3 973.22,1564.3 1247,2296 1748,2647 1859.8,2725.3 2011.1,2755.2 2132.2,2765.6",
reverse=false,
style=dashed,
tooltip="-> isAnInputTo",
type=isAnInputTo];
Goals [_ldraw_="F 9.5 5 -Agave c 7 -#44475a t 1 T 2159 2630.9 -1 23 5 -Goals F 9.5 5 -Agave c 7 -#44475a t 0 T 2159 2617.9 -1 154 37 -• Markdown \
is the surface language F 9.5 5 -Agave c 7 -#44475a T 2159 2608.9 -1 10 5 -• F 9.5 5 -Agave c 7 -#ff79c6 T 2169 2608.9 -1 46 \
12 - # ${...} F 9.5 5 -Agave c 7 -#44475a T 2215 2608.9 -1 59 13 -headings are F 9.5 5 -Agave c 7 -#44475a t 4 T 2274 2608.9 \
-1 50 11 -extructions F 9.5 5 -Agave c 7 -#44475a t 0 T 2324 2608.9 -1 190 44 - — labeled markers, filtered from output; F 9.5 \
5 -Agave c 7 -#44475a T 2234 2599.4 -1 46 10 -bodies use F 9.5 5 -Agave c 7 -#ff79c6 T 2280 2599.4 -1 68 17 - ```javascript F \
9.5 5 -Agave c 7 -#44475a T 2348 2599.4 -1 91 20 -code blocks for eval F 9.5 5 -Agave c 7 -#44475a T 2159 2589.9 -1 14 6 -• \
F 9.5 5 -Agave c 7 -#44475a t 4 T 2173 2589.9 -1 68 15 -Lazy by default F 9.5 5 -Agave c 7 -#44475a t 0 T 2241 2589.9 -1 176 39 \
- : only process what the consumer pulls F 9.5 5 -Agave c 7 -#44475a T 2159 2579.9 -1 14 6 -• F 9.5 5 -Agave c 7 -#44475a t \
4 T 2173 2579.9 -1 113 25 -Pure functions throughout F 9.5 5 -Agave c 7 -#44475a t 0 T 2286 2579.9 -1 149 33 - : all dependencies \
are explicit F 9.5 5 -Agave c 7 -#44475a T 2215.5 2570.4 -1 163 36 -arguments, never closed-over imports ",
fontsize=9.5,
height=1,
href="#Goals",
label=<Goals
|
| • Markdown is the surface language | • # ${...} headings are extructions — labeled markers, filtered from output; bodies use ```javascript code blocks for eval | | • Lazy by default : only process what the consumer pulls | • Pure functions throughout : all dependencies are explicit arguments, never closed-over imports |
|
>,
pos="2336,2602.5",
shape=plain,
width=4.9583];
mdt___Markdown_Construction_Pseudo_Code_Spec -> Goals [_draw_="S 17 -setlinewidth(0.8) S 6 -dashed c 7 -#282a36 B 7 887.66 1298 974.01 1558.1 1246.3 2260.8 1748 2557 1867.6 2627.6 2025.7 2636 \
2147.7 2628.3 ",
_hdraw_="S 17 -setlinewidth(0.8) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 9 2157.9 2627.6 2148.23 2632.77 2152.91 2627.94 2147.92 2628.28 2147.92 \
2628.28 2147.92 2628.28 2152.91 2627.94 2147.62 2623.8 2157.9 2627.6 ",
arrowhead=open,
arrowsize=1.0,
href="#mdt___Markdown_Construction_Pseudo_Code_Spec👉 Goals",
pos="e,2157.9,2627.6 887.66,1298 974.01,1558.1 1246.3,2260.8 1748,2557 1867.6,2627.6 2025.7,2636 2147.7,2628.3",
reverse=false,
style=dashed,
tooltip="-> isAnInputTo",
type=isAnInputTo];
mdt_as_Markdown [_ldraw_="F 9.5 5 -Agave c 7 -#44475a t 1 T 2109 2539.9 -1 68 15 -mdt as Markdown F 9.5 5 -Agave c 7 -#44475a t 0 T 2109 2530.4 -1 23 5 -Every \
F 9.5 5 -Agave c 7 -#ff79c6 T 2132 2530.4 -1 28 8 - .mdd F 9.5 5 -Agave c 7 -#44475a T 2160 2530.4 -1 82 18 -file is also valid \
F 9.5 5 -Agave c 7 -#ff79c6 T 2242 2530.4 -1 23 7 - .md F 9.5 5 -Agave c 7 -#44475a T 2265 2530.4 -1 68 15 -. Extructions ( F \
9.5 5 -Agave c 7 -#ff79c6 T 2333 2530.4 -1 55 14 - # ${label} F 9.5 5 -Agave c 7 -#44475a T 2388 2530.4 -1 176 39 -) render as \
ordinary visible headings. F 9.5 5 -Agave c 7 -#44475a T 2109 2520.9 -1 158 35 -Standard markdown renderers see no F 9.5 5 -Agave \
c 7 -#44475a T 2109 2511.4 -1 176 41 -special syntax — the mdt semantics are F 9.5 5 -Agave c 7 -#44475a T 2295.5 2501.9 -1 82 \
18 -invisible to them. ",
fontsize=9.5,
height=0.68056,
href="#mdt_as_Markdown",
label=<mdt as Markdown Every .mdd file is also valid .md . Extructions ( # ${label} ) render as ordinary visible headings. Standard markdown renderers see no special syntax — the mdt semantics are invisible to them. |
>,
pos="2336,2523.5",
shape=plain,
width=6.3472];
mdt___Markdown_Construction_Pseudo_Code_Spec -> mdt_as_Markdown [_draw_="S 17 -setlinewidth(0.8) S 6 -dashed c 7 -#282a36 B 7 890.58 1298.3 981.82 1550.4 1260.7 2215.1 1748 2489 1882.4 2564.5 2062.5 2562.8 \
2187.7 2548.7 ",
_hdraw_="S 17 -setlinewidth(0.8) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 9 2197.8 2547.5 2188.4 2553.15 2192.83 2548.09 2187.87 2548.68 2187.87 \
2548.68 2187.87 2548.68 2192.83 2548.09 2187.34 2544.21 2197.8 2547.5 ",
arrowhead=open,
arrowsize=1.0,
href="#mdt___Markdown_Construction_Pseudo_Code_Spec👉 mdt_as_Markdown",
pos="e,2197.8,2547.5 890.58,1298.3 981.82,1550.4 1260.7,2215.1 1748,2489 1882.4,2564.5 2062.5,2562.8 2187.7,2548.7",
reverse=false,
style=dashed,
tooltip="-> isAnInputTo",
type=isAnInputTo];
compile__ [_ldraw_="F 9.5 5 -Agave c 7 -#44475a t 1 T 2113 2472.9 -1 32 7 -compile F 9.5 5 -Agave c 7 -#ff79c6 t 0 T 2113 2453.9 -1 136 33 - compile(\
mdtMd, { remark }) → F 9.5 5 -Agave c 7 -#ff79c6 T 2113 2444.4 -1 32 8 -Runner F 9.5 5 -Agave c 7 -#44475a T 2113 2434.9 -1 \
154 34 -Single entry point. Takes raw mdt F 9.5 5 -Agave c 7 -#44475a T 2113 2425.4 -1 181 40 -markdown text and a remark instance (\
for F 9.5 5 -Agave c 7 -#ff79c6 T 2294 2425.4 -1 46 12 - .parse() F 9.5 5 -Agave c 7 -#44475a T 2340 2425.4 -1 55 12 -). Returns \
a F 9.5 5 -Agave c 7 -#ff79c6 T 2395 2425.4 -1 37 10 - Runner F 9.5 5 -Agave c 7 -#44475a T 2432 2425.4 -1 127 30 -— no evaluation \
happens yet. F 9.5 5 -Agave c 7 -#ff79c6 T 2113 2415.9 -1 113 26 - import { compile } from F 9.5 5 -Agave c 7 -#ff79c6 T 2113 \
2406.4 -1 172 38 -'./mdt/mdt.js' import { remark } from F 9.5 5 -Agave c 7 -#ff79c6 T 2113 2396.9 -1 113 25 -'remark' const runner = \
F 9.5 5 -Agave c 7 -#ff79c6 T 2113 2387.4 -1 136 31 -compile(sourceMd, { remark }) F 9.5 5 -Agave c 7 -#44475a T 2236 2377.9 -1 \
5 1 - F 9.5 5 -Agave c 7 -#44475a t 4 T 2241 2377.9 -1 86 19 -Compile-time errors F 9.5 5 -Agave c 7 -#44475a t 0 T 2327 2377.9 \
-1 109 24 - (thrown synchronously): F 9.5 5 -Agave c 7 -#44475a T 2113 2365.9 -1 167 40 -• Unparseable markdown (remark parse \
F 9.5 5 -Agave c 7 -#44475a T 2178 2355.9 -1 37 8 -failure) F 9.5 5 -Agave c 7 -#44475a T 2113 2344.9 -1 181 40 -During compilation, \
headings whose text F 9.5 5 -Agave c 7 -#44475a T 2113 2335.4 -1 50 11 -starts with F 9.5 5 -Agave c 7 -#ff79c6 T 2163 2335.4 -1 \
19 6 - ${ F 9.5 5 -Agave c 7 -#44475a T 2182 2335.4 -1 163 36 -are marked as extructions. They are F 9.5 5 -Agave c 7 -#44475a \
T 2113 2325.9 -1 176 39 -tracked separately but no transform is F 9.5 5 -Agave c 7 -#44475a T 2141 2316.4 -1 176 41 -applied — \
the remark AST is kept as-is. ",
fontsize=9.5,
height=2.3333,
href="#compile__",
label=<compile
compile(mdtMd, { remark }) → Runner Single entry point. Takes raw mdt markdown text and a remark instance (for .parse() ). Returns a Runner — no evaluation happens yet. import { compile } from './mdt/mdt.js' import { remark } from 'remark' const runner = compile(sourceMd, { remark }) Compile-time errors (thrown synchronously): |
• Unparseable markdown (remark parse failure) |
|
During compilation, headings whose text starts with ${ are marked as extructions. They are tracked separately but no transform is applied — the remark AST is kept as-is. |
>,
pos="2336,2396.5",
shape=plain,
width=6.2222];
mdt___Markdown_Construction_Pseudo_Code_Spec -> compile__ [_draw_="S 17 -setlinewidth(0.8) S 6 -dashed c 7 -#282a36 B 7 904.62 1298.1 1016.9 1519.9 1321.1 2056.1 1748 2303 1854.3 2364.5 1988.6 2388.9 \
2102 2397.4 ",
_hdraw_="S 17 -setlinewidth(0.8) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 9 2112.2 2398.2 2101.88 2401.9 2107.22 2397.81 2102.23 2397.42 2102.23 \
2397.42 2102.23 2397.42 2107.22 2397.81 2102.58 2392.93 2112.2 2398.2 ",
arrowhead=open,
arrowsize=1.0,
href="#mdt___Markdown_Construction_Pseudo_Code_Spec👉 compile__",
pos="e,2112.2,2398.2 904.62,1298.1 1016.9,1519.9 1321.1,2056.1 1748,2303 1854.3,2364.5 1988.6,2388.9 2102,2397.4",
reverse=false,
style=dashed,
tooltip="-> isAnInputTo",
type=isAnInputTo];
Runner [_ldraw_="F 9.5 5 -Agave c 7 -#44475a t 1 T 1749 2285.9 -1 28 6 -Runner F 9.5 5 -Agave c 7 -#ff79c6 t 0 T 1749 2266.9 -1 118 29 - runner(\
context, opts?) → F 9.5 5 -Agave c 7 -#ff79c6 T 1749 2257.4 -1 41 10 -Document F 9.5 5 -Agave c 7 -#44475a T 1749 2247.9 -1 \
176 39 -The runner is a function. Call it with F 9.5 5 -Agave c 7 -#44475a T 1749 2238.4 -1 131 29 -context and options to get \
a F 9.5 5 -Agave c 7 -#44475a t 4 T 1880 2238.4 -1 37 8 -Document F 9.5 5 -Agave c 7 -#44475a t 0 T 1917 2238.4 -1 172 40 - — \
the entry point for navigating the F 9.5 5 -Agave c 7 -#44475a T 1749 2228.9 -1 167 37 -document tree. No processing happens F \
9.5 5 -Agave c 7 -#44475a T 1749 2219.4 -1 185 41 -until you pull from the iterable or call F 9.5 5 -Agave c 7 -#44475a T 1749 \
2209.9 -1 41 9 -navigate. F 9.5 5 -Agave c 7 -#ff79c6 T 1790 2209.9 -1 28 8 - opts F 9.5 5 -Agave c 7 -#44475a T 1818 2209.9 \
-1 136 30 -carries run-time dependencies: F 9.5 5 -Agave c 7 -#ff79c6 T 1749 2200.4 -1 145 33 - opts = { sanitizeName: (str) \
F 9.5 5 -Agave c 7 -#ff79c6 T 1749 2190.9 -1 167 37 -=> str.toLowerCase().replace(/\W+/g, F 9.5 5 -Agave c 7 -#ff79c6 T 1749 2181.4 \
-1 140 32 -'-').replace(/^-+|-+$/g, '') } F 9.5 5 -Agave c 7 -#ff79c6 T 1749 2171.9 -1 64 16 - sanitizeName F 9.5 5 -Agave \
c 7 -#44475a T 1813 2171.9 -1 140 31 -defaults to the function shown F 9.5 5 -Agave c 7 -#44475a T 1749 2162.4 -1 131 29 -(lowercase, \
non-word chars to F 9.5 5 -Agave c 7 -#ff79c6 T 1880 2162.4 -1 14 5 - - F 9.5 5 -Agave c 7 -#44475a T 1894 2162.4 -1 163 36 -, \
leading/trailing dashes trimmed). F 9.5 5 -Agave c 7 -#44475a T 1828 2152.9 -1 95 21 -Callers can override. F 9.5 5 -Agave c 7 \
-#ff79c6 T 1923 2152.9 -1 82 20 - opts.loadRefBody F 9.5 5 -Agave c 7 -#44475a T 2005 2152.9 -1 5 1 -: F 9.5 5 -Agave c 7 -#44475a \
T 1749 2141.9 -1 10 5 -• F 9.5 5 -Agave c 7 -#ff79c6 T 1759 2141.9 -1 131 32 - async (item, targetDepth) → F 9.5 5 -Agave \
c 7 -#ff79c6 T 1749 2132.4 -1 32 8 -string F 9.5 5 -Agave c 7 -#44475a T 1781 2132.4 -1 158 37 -— fetches the body markdown \
for one F 9.5 5 -Agave c 7 -#ff79c6 T 1939 2132.4 -1 95 23 - insertRefsAsSubtree F 9.5 5 -Agave c 7 -#44475a T 2034 2132.4 -1 \
149 33 -item. Called lazily, only when a F 9.5 5 -Agave c 7 -#44475a T 1856.5 2122.9 -1 46 10 -Fragment's F 9.5 5 -Agave c 7 -#\
ff79c6 T 1902.5 2122.9 -1 46 12 - expand() F 9.5 5 -Agave c 7 -#44475a T 1948.5 2122.9 -1 127 28 -is iterated by the consumer. \
F 9.5 5 -Agave c 7 -#44475a T 1749 2113.9 -1 10 5 -• F 9.5 5 -Agave c 7 -#ff79c6 T 1759 2113.9 -1 59 15 - targetDepth F 9.5 \
5 -Agave c 7 -#44475a T 1818 2113.9 -1 154 34 -is the heading depth at which the F 9.5 5 -Agave c 7 -#44475a T 1749 2104.4 -1 181 \
40 -Fragment's root heading is emitted; the F 9.5 5 -Agave c 7 -#44475a T 1749 2094.9 -1 167 37 -returned body must have its own \
root F 9.5 5 -Agave c 7 -#44475a T 1749 2085.4 -1 145 32 -heading stripped and its nested F 9.5 5 -Agave c 7 -#44475a T 1749 2075.9 \
-1 172 38 -subheadings shifted so root+1 lands at F 9.5 5 -Agave c 7 -#ff79c6 T 1921 2075.9 -1 68 17 - targetDepth+1 F 9.5 5 \
-Agave c 7 -#44475a T 1989 2075.9 -1 50 11 -, root+2 at F 9.5 5 -Agave c 7 -#ff79c6 T 2039 2075.9 -1 68 17 - targetDepth+2 F \
9.5 5 -Agave c 7 -#44475a T 2107 2075.9 -1 28 6 -, etc. F 9.5 5 -Agave c 7 -#44475a T 1749 2066.9 -1 158 38 -• App integration: \
compose existing F 9.5 5 -Agave c 7 -#ff79c6 T 1907 2066.9 -1 86 21 - loadFragment(...) F 9.5 5 -Agave c 7 -#44475a T 1993 2066.9 \
-1 5 1 -+ F 9.5 5 -Agave c 7 -#ff79c6 T 1998 2066.9 -1 158 36 - relevelFragment(text, targetDepth F 9.5 5 -Agave c 7 -#ff79c6 \
T 1749 2057.4 -1 23 6 -- 1) F 9.5 5 -Agave c 7 -#44475a T 1772 2057.4 -1 77 17 -(bare import from F 9.5 5 -Agave c 7 -#ff79c6 \
T 1849 2057.4 -1 77 19 - player-utils.js F 9.5 5 -Agave c 7 -#44475a T 1926 2057.4 -1 23 5 -, not F 9.5 5 -Agave c 7 -#ff79c6 \
T 1949 2057.4 -1 100 24 - ssss.relevelFragment F 9.5 5 -Agave c 7 -#44475a T 2049 2057.4 -1 172 38 -) + a regex strip of the \
root heading. F 9.5 5 -Agave c 7 -#ff79c6 T 2221 2057.4 -1 118 28 - relevelFragment(text, N) F 9.5 5 -Agave c 7 -#44475a T 2339 \
2057.4 -1 131 29 -puts the source root at depth F 9.5 5 -Agave c 7 -#ff79c6 T 2470 2057.4 -1 23 7 - N+1 F 9.5 5 -Agave c 7 -#\
44475a T 2493 2057.4 -1 55 12 -, so passing F 9.5 5 -Agave c 7 -#ff79c6 T 2548 2057.4 -1 77 19 - targetDepth - 1 F 9.5 5 -Agave \
c 7 -#44475a T 2625 2057.4 -1 73 16 -puts the root at F 9.5 5 -Agave c 7 -#ff79c6 T 2698 2057.4 -1 59 15 - targetDepth F 9.5 \
5 -Agave c 7 -#44475a T 2757 2057.4 -1 167 39 -— after the root-strip, the source's F 9.5 5 -Agave c 7 -#44475a T 1749 2047.9 \
-1 149 33 -root+1 headings are what's left, F 9.5 5 -Agave c 7 -#44475a T 2254.5 2038.4 -1 91 20 -correctly landing at F 9.5 5 \
-Agave c 7 -#ff79c6 T 2345.5 2038.4 -1 68 17 - targetDepth+1 F 9.5 5 -Agave c 7 -#44475a T 2413.5 2038.4 -1 5 1 -. ",
fontsize=9.5,
height=3.5972,
href="#Runner",
label=<Runner
runner(context, opts?) → Document The runner is a function. Call it with context and options to get a Document — the entry point for navigating the document tree. No processing happens until you pull from the iterable or call navigate. opts carries run-time dependencies: opts = { sanitizeName: (str) => str.toLowerCase().replace(/\W+/g, '-').replace(/^-+|-+$/g, '') } sanitizeName defaults to the function shown (lowercase, non-word chars to - , leading/trailing dashes trimmed). Callers can override. opts.loadRefBody : |
• async (item, targetDepth) → string — fetches the body markdown for one insertRefsAsSubtree item. Called lazily, only when a Fragment's expand() is iterated by the consumer. | • targetDepth is the heading depth at which the Fragment's root heading is emitted; the returned body must have its own root heading stripped and its nested subheadings shifted so root+1 lands at targetDepth+1 , root+2 at targetDepth+2 , etc. | • App integration: compose existing loadFragment(...) + relevelFragment(text, targetDepth - 1) (bare import from player-utils.js , not ssss.relevelFragment ) + a regex strip of the root heading. relevelFragment(text, N) puts the source root at depth N+1 , so passing targetDepth - 1 puts the root at targetDepth — after the root-strip, the source's root+1 headings are what's left, correctly landing at targetDepth+1 . |
|
>,
pos="2336,2164.5",
shape=plain,
width=16.347];
mdt___Markdown_Construction_Pseudo_Code_Spec -> Runner [_draw_="S 17 -setlinewidth(0.8) S 6 -dashed c 7 -#282a36 B 7 933.9 1298.1 1075.3 1473.2 1394.6 1836.5 1748 2025 1751 2026.6 1754 2028.2 \
1757.1 2029.8 ",
_hdraw_="S 17 -setlinewidth(0.8) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 9 1766.2 2034.4 1755.25 2033.9 1761.74 2032.14 1757.28 2029.89 1757.28 \
2029.89 1757.28 2029.89 1761.74 2032.14 1759.31 2025.87 1766.2 2034.4 ",
arrowhead=open,
arrowsize=1.0,
href="#mdt___Markdown_Construction_Pseudo_Code_Spec👉 Runner",
pos="e,1766.2,2034.4 933.9,1298.1 1075.3,1473.2 1394.6,1836.5 1748,2025 1751,2026.6 1754,2028.2 1757.1,2029.8",
reverse=false,
style=dashed,
tooltip="-> isAnInputTo",
type=isAnInputTo];
Fragment [_ldraw_="F 9.5 5 -Agave c 7 -#44475a t 1 T 2086 2007.9 -1 37 8 -Fragment F 9.5 5 -Agave c 7 -#44475a t 0 T 2086 1998.4 -1 181 40 -A heading + \
its immediate body content. F 9.5 5 -Agave c 7 -#44475a T 2086 1988.9 -1 176 39 -A fragment is the core unit the runner F 9.5 \
5 -Agave c 7 -#44475a T 2086 1979.4 -1 154 34 -yields and the consumer navigates. F 9.5 5 -Agave c 7 -#ff79c6 T 2086 1969.9 -1 55 \
13 - { trail: F 9.5 5 -Agave c 7 -#ff79c6 T 2086 1960.4 -1 145 32 -\"getting-started/installation\", F 9.5 5 -Agave c 7 -#ff79c6 \
T 2086 1950.9 -1 176 39 -// trail-id identifying this heading F 9.5 5 -Agave c 7 -#ff79c6 T 2086 1941.4 -1 136 30 -heading: \"# \
Chapter 1\", F 9.5 5 -Agave c 7 -#ff79c6 T 2086 1931.9 -1 149 33 -// raw markdown heading string F 9.5 5 -Agave c 7 -#ff79c6 \
T 2086 1922.4 -1 181 40 -headingLevel: 1, // number F 9.5 5 -Agave c 7 -#ff79c6 T 2086 1912.9 -1 136 30 -of # characters \
body: \"Some F 9.5 5 -Agave c 7 -#ff79c6 T 2086 1903.4 -1 109 24 -introductory text.\", // F 9.5 5 -Agave c 7 -#ff79c6 T 2086 1893.9 \
-1 145 32 -canonicalized markdown body (no F 9.5 5 -Agave c 7 -#ff79c6 T 2086 1884.4 -1 190 42 -children) hasChildren: true, \
F 9.5 5 -Agave c 7 -#ff79c6 T 2086 1874.9 -1 172 38 -// does this fragment have expandable F 9.5 5 -Agave c 7 -#ff79c6 T 2086 1865.4 \
-1 100 22 -children? expand(): F 9.5 5 -Agave c 7 -#ff79c6 T 2086 1855.9 -1 158 35 -AsyncIterable, // yields F 9.5 \
5 -Agave c 7 -#ff79c6 T 2086 1846.4 -1 149 33 -child fragments toString(): \"# F 9.5 5 -Agave c 7 -#ff79c6 T 2086 1836.9 -1 140 \
31 -Chapter 1\n\nSome introductory F 9.5 5 -Agave c 7 -#ff79c6 T 2086 1827.4 -1 122 28 -text.\" // heading + body } F 9.5 5 -Agave \
c 7 -#44475a T 2086 1815.9 -1 10 5 -• F 9.5 5 -Agave c 7 -#ff79c6 T 2096 1815.9 -1 32 9 - trail F 9.5 5 -Agave c 7 -#44475a \
T 2128 1815.9 -1 181 42 -— the trail-id that uniquely identifies F 9.5 5 -Agave c 7 -#44475a T 2086 1806.4 -1 181 40 -this heading \
in the document hierarchy. F 9.5 5 -Agave c 7 -#44475a T 2086 1796.9 -1 145 32 -Computed lazily using the stack F 9.5 5 -Agave \
c 7 -#44475a T 2086 1787.4 -1 167 37 -algorithm when the fragment is first F 9.5 5 -Agave c 7 -#44475a T 2170 1777.9 -1 55 12 -materialized \
F 9.5 5 -Agave c 7 -#44475a T 2086 1768.9 -1 10 5 -• F 9.5 5 -Agave c 7 -#ff79c6 T 2096 1768.9 -1 41 11 - heading F 9.5 5 \
-Agave c 7 -#44475a T 2137 1768.9 -1 172 40 -— the heading as markdown source (e.g. F 9.5 5 -Agave c 7 -#ff79c6 T 2309 1768.9 \
-1 64 16 - \"## Details\" F 9.5 5 -Agave c 7 -#44475a T 2373 1768.9 -1 5 1 -) F 9.5 5 -Agave c 7 -#44475a T 2086 1758.9 -1 10 5 \
-• F 9.5 5 -Agave c 7 -#ff79c6 T 2096 1758.9 -1 64 16 - headingLevel F 9.5 5 -Agave c 7 -#44475a T 2160 1758.9 -1 64 16 -— \
depth (1 for F 9.5 5 -Agave c 7 -#ff79c6 T 2224 1758.9 -1 14 5 - # F 9.5 5 -Agave c 7 -#44475a T 2238 1758.9 -1 32 7 -, 2 for \
F 9.5 5 -Agave c 7 -#ff79c6 T 2270 1758.9 -1 19 6 - ## F 9.5 5 -Agave c 7 -#44475a T 2289 1758.9 -1 32 7 -, etc.) F 9.5 5 -Agave \
c 7 -#44475a T 2086 1748.9 -1 10 5 -• F 9.5 5 -Agave c 7 -#ff79c6 T 2096 1748.9 -1 28 8 - body F 9.5 5 -Agave c 7 -#44475a \
T 2124 1748.9 -1 122 29 -— the immediate body text, F 9.5 5 -Agave c 7 -#44475a t 4 T 2246 1748.9 -1 59 13 -canonicalized F 9.5 \
5 -Agave c 7 -#44475a t 0 T 2305 1748.9 -1 145 32 - (parsed nodes rendered back to F 9.5 5 -Agave c 7 -#44475a T 2086 1739.4 -1 \
185 41 -markdown). Not byte-identical to source: F 9.5 5 -Agave c 7 -#44475a T 2086 1729.9 -1 185 41 -remark normalizes list markers, \
emphasis F 9.5 5 -Agave c 7 -#44475a T 2086 1720.4 -1 154 34 -characters, wrapping. If verbatim F 9.5 5 -Agave c 7 -#44475a T \
2086 1710.9 -1 167 37 -fidelity is required, use the source F 9.5 5 -Agave c 7 -#44475a T 2086 1701.4 -1 46 10 -position ( F 9.5 \
5 -Agave c 7 -#ff79c6 T 2132 1701.4 -1 68 17 - node.position F 9.5 5 -Agave c 7 -#44475a T 2200 1701.4 -1 176 39 -) to slice \
the original text. Does NOT F 9.5 5 -Agave c 7 -#44475a T 2213.5 1691.9 -1 109 24 -include child fragments. F 9.5 5 -Agave c 7 \
-#44475a T 2086 1682.9 -1 10 5 -• F 9.5 5 -Agave c 7 -#ff79c6 T 2096 1682.9 -1 59 15 - hasChildren F 9.5 5 -Agave c 7 -#44475a \
T 2155 1682.9 -1 149 35 -— quick check without triggering F 9.5 5 -Agave c 7 -#44475a T 2174.5 1673.4 -1 41 9 -expansion F 9.5 \
5 -Agave c 7 -#44475a T 2086 1663.9 -1 10 5 -• F 9.5 5 -Agave c 7 -#ff79c6 T 2096 1663.9 -1 46 12 - expand() F 9.5 5 -Agave \
c 7 -#44475a T 2142 1663.9 -1 163 38 -— returns an async iterable of child F 9.5 5 -Agave c 7 -#ff79c6 T 2305 1663.9 -1 46 12 \
- Fragment F 9.5 5 -Agave c 7 -#44475a T 2351 1663.9 -1 185 41 -objects. Each child is itself expandable F 9.5 5 -Agave c 7 \
-#44475a T 2252 1654.4 -1 118 26 -and carries its own trail. F 9.5 5 -Agave c 7 -#44475a T 2086 1644.9 -1 10 5 -• F 9.5 5 -Agave \
c 7 -#ff79c6 T 2096 1644.9 -1 55 14 - toString() F 9.5 5 -Agave c 7 -#44475a T 2151 1644.9 -1 64 16 -— concatenates F 9.5 5 \
-Agave c 7 -#ff79c6 T 2215 1644.9 -1 91 21 - heading + \"\n\n\" + F 9.5 5 -Agave c 7 -#ff79c6 T 2086 1635.4 -1 23 6 -body F 9.5 \
5 -Agave c 7 -#44475a T 2109 1635.4 -1 181 40 -, rendered as markdown. Convenience for F 9.5 5 -Agave c 7 -#44475a T 2086 1625.9 \
-1 185 41 -getting a fragment's full self-contained F 9.5 5 -Agave c 7 -#44475a T 2175.5 1616.4 -1 41 9 -markdown. F 9.5 5 -Agave \
c 7 -#44475a T 2086 1604.9 -1 5 1 - F 9.5 5 -Agave c 7 -#44475a t 4 T 2091 1604.9 -1 50 11 -AST source: F 9.5 5 -Agave c 7 -#44475a \
t 0 T 2141 1604.9 -1 181 40 - currently the fragment is materialized F 9.5 5 -Agave c 7 -#44475a T 2086 1595.4 -1 181 40 -from \
remark's parsed AST. In the future F 9.5 5 -Agave c 7 -#44475a T 2086 1585.9 -1 149 33 -it could come from the ast-nodes F 9.5 \
5 -Agave c 7 -#44475a T 2086 1576.4 -1 46 10 -database ( F 9.5 5 -Agave c 7 -#ff79c6 T 2132 1576.4 -1 100 24 - cache_ast_lake_nodes \
F 9.5 5 -Agave c 7 -#44475a T 2232 1576.4 -1 19 4 -with F 9.5 5 -Agave c 7 -#ff79c6 T 2251 1576.4 -1 77 19 - sem = 'heading' \
F 9.5 5 -Agave c 7 -#44475a T 2328 1576.4 -1 113 25 -), where each row carries F 9.5 5 -Agave c 7 -#ff79c6 T 2441 1576.4 -1 145 \
33 - { id, mt, sem, num1, num2, ref F 9.5 5 -Agave c 7 -#ff79c6 T 2086 1566.9 -1 10 3 -} F 9.5 5 -Agave c 7 -#44475a T 2096 \
1566.9 -1 14 3 -and F 9.5 5 -Agave c 7 -#ff79c6 T 2110 1566.9 -1 32 9 - nomen F 9.5 5 -Agave c 7 -#44475a T 2142 1566.9 -1 68 \
15 -is derived from F 9.5 5 -Agave c 7 -#ff79c6 T 2210 1566.9 -1 23 7 - ref F 9.5 5 -Agave c 7 -#44475a T 2233 1566.9 -1 176 \
39 -. The fragment shape is designed to be F 9.5 5 -Agave c 7 -#44475a T 2154.5 1557.4 -1 131 29 -mappable to/from that schema: \
F 9.5 5 -Agave c 7 -#ff79c6 T 2285.5 1557.4 -1 32 9 - trail F 9.5 5 -Agave c 7 -#44475a T 2317.5 1557.4 -1 5 3 -↔ F 9.5 5 -Agave \
c 7 -#ff79c6 T 2322.5 1557.4 -1 19 6 - id F 9.5 5 -Agave c 7 -#44475a T 2341.5 1557.4 -1 5 1 -, F 9.5 5 -Agave c 7 -#ff79c6 T \
2346.5 1557.4 -1 41 11 - heading F 9.5 5 -Agave c 7 -#44475a T 2387.5 1557.4 -1 5 3 -↔ F 9.5 5 -Agave c 7 -#ff79c6 T 2392.5 \
1557.4 -1 23 7 - ref F 9.5 5 -Agave c 7 -#44475a T 2415.5 1557.4 -1 5 1 -, F 9.5 5 -Agave c 7 -#ff79c6 T 2420.5 1557.4 -1 64 \
16 - headingLevel F 9.5 5 -Agave c 7 -#44475a T 2484.5 1557.4 -1 5 3 -↔ F 9.5 5 -Agave c 7 -#ff79c6 T 2489.5 1557.4 -1 23 7 \
- sem F 9.5 5 -Agave c 7 -#44475a T 2512.5 1557.4 -1 5 1 -. ",
fontsize=9.5,
height=6.4167,
href="#Fragment",
label=<Fragment A heading + its immediate body content. A fragment is the core unit the runner yields and the consumer navigates. { trail: "getting-started/installation", // trail-id identifying this heading heading: "# Chapter 1", // raw markdown heading string headingLevel: 1, // number of # characters body: "Some introductory text.", // canonicalized markdown body (no children) hasChildren: true, // does this fragment have expandable children? expand(): AsyncIterable<Fragment>, // yields child fragments toString(): "# Chapter 1\n\nSome introductory text." // heading + body }
|
• trail — the trail-id that uniquely identifies this heading in the document hierarchy. Computed lazily using the stack algorithm when the fragment is first materialized | | • heading — the heading as markdown source (e.g. "## Details" ) | | • headingLevel — depth (1 for # , 2 for ## , etc.) | • body — the immediate body text, canonicalized (parsed nodes rendered back to markdown). Not byte-identical to source: remark normalizes list markers, emphasis characters, wrapping. If verbatim fidelity is required, use the source position ( node.position ) to slice the original text. Does NOT include child fragments. | • hasChildren — quick check without triggering expansion | • expand() — returns an async iterable of child Fragment objects. Each child is itself expandable and carries its own trail. | • toString() — concatenates heading + "\n\n" + body , rendered as markdown. Convenience for getting a fragment's full self-contained markdown. |
|
AST source: currently the fragment is materialized from remark's parsed AST. In the future it could come from the ast-nodes database ( cache_ast_lake_nodes with sem = 'heading' ), where each row carries { id, mt, sem, num1, num2, ref } and nomen is derived from ref . The fragment shape is designed to be mappable to/from that schema: trail ↔ id , heading ↔ ref , headingLevel ↔ sem . |
>,
pos="2336,1784.5",
shape=plain,
width=6.9722];
mdt___Markdown_Construction_Pseudo_Code_Spec -> Fragment [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 42 1118.2 1302.5 1160.24 1319.21 1204.33 1336.73 1250.24 1354.98 \
1297.74 1373.86 1346.59 1393.28 1396.58 1413.15 1447.45 1433.37 1499 1453.86 1550.97 1474.52 1603.14 1495.25 1655.28 1515.98 1707.16 \
1536.6 1758.54 1557.02 1809.2 1577.15 1858.9 1596.91 1907.41 1616.19 1954.5 1634.9 1999.94 1652.96 2043.49 1670.26 2084.93 1686.73 \
2085.67 1684.87 2044.2 1668.48 2000.61 1651.26 1955.14 1633.29 1908.01 1614.67 1859.46 1595.48 1809.73 1575.83 1759.03 1555.79 1707.61 \
1535.47 1655.69 1514.95 1603.51 1494.32 1551.3 1473.68 1499.29 1453.13 1447.71 1432.74 1396.79 1412.61 1346.77 1392.84 1297.87 1373.52 \
1250.34 1354.73 1204.39 1336.57 1160.27 1319.13 1118.2 1302.5 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 1118.17 1302.49 1111.12 1304.02 1107 1298.1 1114.05 1296.57 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#mdt___Markdown_Construction_Pseudo_Code_Spec👉 Fragment",
penwidth=2,
pos="s,1107,1298.1 1118.2,1302.5 1391.2,1410.7 1816.5,1579.3 2085.3,1685.8",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
Extruction [_ldraw_="F 9.5 5 -Agave c 7 -#44475a t 1 T 2138 1527.9 -1 46 10 -Extruction F 9.5 5 -Agave c 7 -#ff79c6 t 0 T 2138 1508.9 -1 154 35 - ## ${\
label} \`\`\`javascript // F 9.5 5 -Agave c 7 -#ff79c6 T 2138 1499.4 -1 172 40 -body code — only ```javascript blocks F 9.5 \
5 -Agave c 7 -#ff79c6 T 2138 1489.9 -1 95 22 -are evaluated \`\`\` F 9.5 5 -Agave c 7 -#44475a T 2138 1480.4 -1 82 18 -An extruction \
is a F 9.5 5 -Agave c 7 -#ff79c6 T 2220 1480.4 -1 46 12 - # ${...} F 9.5 5 -Agave c 7 -#44475a T 2266 1480.4 -1 59 13 -heading. \
When F 9.5 5 -Agave c 7 -#ff79c6 T 2325 1480.4 -1 37 10 - evalFn F 9.5 5 -Agave c 7 -#44475a T 2362 1480.4 -1 172 38 -is provided, \
the body is evaluated as F 9.5 5 -Agave c 7 -#44475a T 2138 1470.9 -1 77 19 -JavaScript — but F 9.5 5 -Agave c 7 -#44475a t \
4 T 2215 1470.9 -1 77 17 -only code inside F 9.5 5 -Agave c 7 -#44475a t 0 T 2292 1470.9 -1 190 42 - is extracted. Any other markdown \
content F 9.5 5 -Agave c 7 -#44475a T 2138 1461.4 -1 140 31 -in the body is ignored. Without F 9.5 5 -Agave c 7 -#ff79c6 T 2278 \
1461.4 -1 37 10 - evalFn F 9.5 5 -Agave c 7 -#44475a T 2315 1461.4 -1 154 34 -, the extruction and its body are F 9.5 5 -Agave \
c 7 -#44475a T 2297.5 1451.9 -1 77 17 -silently dropped. S 5 -solid c 7 -#282a36 p 4 2140 1429.5 2140 1445.5 2206 1445.5 2206 1429.5 \
F 9.5 5 -Agave c 7 -#44475a T 2154.5 1434.9 -1 37 8 -Property S 5 -solid c 7 -#282a36 p 4 2208 1429.5 2208 1445.5 2532 1445.5 2532 \
1429.5 F 9.5 5 -Agave c 7 -#44475a T 2358.5 1434.9 -1 23 5 -Value S 5 -solid c 7 -#282a36 p 4 2140 1411.5 2140 1427.5 2206 1427.5 \
2206 1411.5 F 9.5 5 -Agave c 7 -#44475a T 2152.5 1416.9 -1 41 9 -Detection S 5 -solid c 7 -#282a36 p 4 2208 1411.5 2208 1427.5 2532 \
1427.5 2532 1411.5 F 9.5 5 -Agave c 7 -#44475a T 2306 1417.9 -1 109 24 -Heading text starts with F 9.5 5 -Agave c 7 -#ff79c6 T 2415 \
1417.9 -1 19 6 - ${ S 5 -solid c 7 -#282a36 p 4 2140 1384.5 2140 1409.5 2206 1409.5 2206 1384.5 F 9.5 5 -Agave c 7 -#44475a T \
2163.5 1394.4 -1 19 4 -Body S 5 -solid c 7 -#282a36 p 4 2208 1384.5 2208 1409.5 2532 1409.5 2532 1384.5 F 9.5 5 -Agave c 7 -#44475a \
T 2220.5 1399.9 -1 82 18 -JavaScript code in F 9.5 5 -Agave c 7 -#ff79c6 T 2302.5 1399.9 -1 68 17 - ```javascript F 9.5 5 -Agave \
c 7 -#44475a T 2370.5 1399.9 -1 149 33 -code blocks (only when evalFn is F 9.5 5 -Agave c 7 -#44475a T 2349.5 1390.4 -1 41 9 -provided) \
S 5 -solid c 7 -#282a36 p 4 2140 1366.5 2140 1382.5 2206 1382.5 2206 1366.5 F 9.5 5 -Agave c 7 -#44475a T 2159 1371.9 -1 28 6 -Effect \
S 5 -solid c 7 -#282a36 p 4 2208 1366.5 2208 1382.5 2532 1382.5 2532 1366.5 F 9.5 5 -Agave c 7 -#44475a T 2284 1371.9 -1 172 38 \
-Removed from output; children promoted F 9.5 5 -Agave c 7 -#44475a T 2138 1355.9 -1 14 3 -The F 9.5 5 -Agave c 7 -#ff79c6 T 2152 \
1355.9 -1 55 14 - data.label F 9.5 5 -Agave c 7 -#44475a T 2207 1355.9 -1 59 13 -(text between F 9.5 5 -Agave c 7 -#ff79c6 T \
2266 1355.9 -1 23 7 - ${} F 9.5 5 -Agave c 7 -#44475a T 2289 1355.9 -1 176 39 -) is available on the heading node for F 9.5 \
5 -Agave c 7 -#44475a T 2138 1346.4 -1 167 37 -future processing but has no current F 9.5 5 -Agave c 7 -#44475a T 2285.5 1336.9 \
-1 32 7 -effect. ",
fontsize=9.5,
height=2.8056,
href="#Extruction",
label=<Extruction
## ${label} \`\`\`javascript // body code — only ```javascript blocks are evaluated \`\`\` An extruction is a # ${...} heading. When evalFn is provided, the body is evaluated as JavaScript — but only code inside is extracted. Any other markdown content in the body is ignored. Without evalFn , the extruction and its body are silently dropped. |
| Property | Value | | Detection | Heading text starts with ${ | | Body | JavaScript code in ```javascript code blocks (only when evalFn is provided) | | Effect | Removed from output; children promoted |
|
The data.label (text between ${} ) is available on the heading node for future processing but has no current effect. |
>,
pos="2336,1434.5",
shape=plain,
width=5.5278];
mdt___Markdown_Construction_Pseudo_Code_Spec -> Extruction [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 42 1489.5 1300 1524.6 1305.65 1559.84 1311.32 1595.16 1317.01 1630.48 \
1322.7 1665.73 1328.38 1700.84 1334.03 1735.74 1339.66 1770.35 1345.23 1804.6 1350.75 1838.43 1356.21 1871.75 1361.58 1904.51 1366.86 \
1936.62 1372.03 1968.01 1377.1 1998.62 1382.03 2028.37 1386.82 2057.19 1391.47 2085 1395.95 2111.75 1400.26 2137.34 1404.39 2137.66 \
1402.41 2112.05 1398.37 2085.29 1394.14 2057.47 1389.74 2028.63 1385.18 1998.87 1380.48 1968.25 1375.64 1936.84 1370.67 1904.71 \
1365.59 1871.94 1360.41 1838.6 1355.14 1804.75 1349.79 1770.48 1344.38 1735.86 1338.91 1700.94 1333.39 1665.82 1327.84 1630.55 1322.27 \
1595.21 1316.69 1559.88 1311.11 1524.62 1305.54 1489.5 1300 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 1489.14 1299.94 1482.57 1302.92 1477.3 1298 1483.87 1295.02 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#mdt___Markdown_Construction_Pseudo_Code_Spec👉 Extruction",
penwidth=2,
pos="s,1477.3,1298 1489.5,1300 1722.9,1337.2 1970.8,1376.8 2137.5,1403.4",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
Error_Handling [_ldraw_="F 9.5 5 -Agave c 7 -#44475a t 1 T 2052 1306.9 -1 64 14 -Error Handling F 9.5 5 -Agave c 7 -#44475a t 0 T 2052 1297.4 -1 5 1 - F \
9.5 5 -Agave c 7 -#44475a t 4 T 2057 1297.4 -1 55 12 -Compile-time F 9.5 5 -Agave c 7 -#44475a t 0 T 2112 1297.4 -1 50 11 - (thrown \
by F 9.5 5 -Agave c 7 -#ff79c6 T 2162 1297.4 -1 50 13 - compile() F 9.5 5 -Agave c 7 -#44475a T 2212 1297.4 -1 10 2 -): F 9.5 \
5 -Agave c 7 -#44475a T 2052 1284.9 -1 167 40 -• Unparseable markdown (remark parse F 9.5 5 -Agave c 7 -#44475a T 2117 1274.9 \
-1 37 8 -failure) F 9.5 5 -Agave c 7 -#44475a T 2052 1263.9 -1 5 1 - F 9.5 5 -Agave c 7 -#44475a t 4 T 2057 1263.9 -1 32 7 -Runtime \
F 9.5 5 -Agave c 7 -#44475a t 0 T 2089 1263.9 -1 50 11 - (caught by F 9.5 5 -Agave c 7 -#ff79c6 T 2139 1263.9 -1 86 21 - onExtructionError \
F 9.5 5 -Agave c 7 -#44475a T 2225 1263.9 -1 46 10 -callback): F 9.5 5 -Agave c 7 -#44475a T 2052 1250.9 -1 167 40 -• Syntax \
errors in extruction body JS F 9.5 5 -Agave c 7 -#44475a T 2052 1240.9 -1 176 42 -• Runtime exceptions during extruction F 9.5 \
5 -Agave c 7 -#44475a T 2117 1230.9 -1 46 10 -evaluation F 9.5 5 -Agave c 7 -#44475a T 2052 1219.9 -1 172 38 -When an extruction \
body throws during F 9.5 5 -Agave c 7 -#44475a T 2052 1210.4 -1 181 40 -evaluation, the behavior depends on the F 9.5 5 -Agave \
c 7 -#44475a T 2072 1200.9 -1 50 11 -presence of F 9.5 5 -Agave c 7 -#ff79c6 T 2122 1200.9 -1 86 21 - onExtructionError F 9.5 \
5 -Agave c 7 -#44475a T 2208 1200.9 -1 5 1 -: S 5 -solid c 7 -#282a36 p 4 2054 1178.5 2054 1194.5 2199 1194.5 2199 1178.5 F 9.5 \
5 -Agave c 7 -#44475a T 2108 1183.9 -1 37 8 -Callback S 5 -solid c 7 -#282a36 p 4 2201 1178.5 2201 1194.5 2619 1194.5 2619 1178.5 \
F 9.5 5 -Agave c 7 -#44475a T 2391.5 1183.9 -1 37 8 -Behavior S 5 -solid c 7 -#282a36 p 4 2054 1142.5 2054 1176.5 2199 1176.5 2199 \
1142.5 F 9.5 5 -Agave c 7 -#44475a T 2103 1157.9 -1 5 1 - F 9.5 5 -Agave c 7 -#44475a t 4 T 2108 1157.9 -1 37 8 -Provided F 9.5 \
5 -Agave c 7 -#44475a t 0 T 2145 1157.9 -1 5 1 - S 5 -solid c 7 -#282a36 p 4 2201 1142.5 2201 1176.5 2619 1176.5 2619 1142.5 F \
9.5 5 -Agave c 7 -#44475a T 2204 1166.9 -1 82 18 -Error is passed to F 9.5 5 -Agave c 7 -#ff79c6 T 2286 1166.9 -1 109 25 - onExtructionError(\
err, F 9.5 5 -Agave c 7 -#ff79c6 T 2204 1157.4 -1 59 14 -headingNode) F 9.5 5 -Agave c 7 -#44475a T 2263 1157.4 -1 140 31 -; \
the extruction is treated as F 9.5 5 -Agave c 7 -#44475a t 4 T 2403 1157.4 -1 50 11 -transparent F 9.5 5 -Agave c 7 -#44475a t \
0 T 2453 1157.4 -1 163 36 - (body skipped, children promoted). F 9.5 5 -Agave c 7 -#44475a T 2364.5 1147.9 -1 91 20 -Iteration \
continues. S 5 -solid c 7 -#282a36 p 4 2054 1124.5 2054 1140.5 2199 1140.5 2199 1124.5 F 9.5 5 -Agave c 7 -#44475a T 2057 1130.9 \
-1 5 1 - F 9.5 5 -Agave c 7 -#44475a t 4 T 2062 1130.9 -1 55 12 -Not provided F 9.5 5 -Agave c 7 -#44475a t 0 T 2117 1130.9 -1 \
10 2 - ( F 9.5 5 -Agave c 7 -#ff79c6 T 2127 1130.9 -1 28 8 - null F 9.5 5 -Agave c 7 -#44475a T 2155 1130.9 -1 41 9 -/omitted) \
S 5 -solid c 7 -#282a36 p 4 2201 1124.5 2201 1140.5 2619 1140.5 2619 1124.5 F 9.5 5 -Agave c 7 -#44475a T 2246 1130.9 -1 28 6 -Error \
F 9.5 5 -Agave c 7 -#44475a t 4 T 2274 1130.9 -1 46 10 -propagates F 9.5 5 -Agave c 7 -#44475a t 0 T 2320 1130.9 -1 82 18 - to the \
consumer's F 9.5 5 -Agave c 7 -#ff79c6 T 2402 1130.9 -1 50 13 - for await F 9.5 5 -Agave c 7 -#44475a T 2452 1130.9 -1 122 27 \
-loop (backward compatible). F 9.5 5 -Agave c 7 -#44475a T 2052 1113.9 -1 10 2 -In F 9.5 5 -Agave c 7 -#ff79c6 T 2062 1113.9 -1 \
46 12 - children F 9.5 5 -Agave c 7 -#44475a T 2108 1113.9 -1 181 40 -resolution, an errored child extruction F 9.5 5 -Agave \
c 7 -#44475a T 2052 1104.4 -1 158 37 -follows the same rule — treated as F 9.5 5 -Agave c 7 -#44475a T 2052 1094.9 -1 181 40 \
-transparent, its children promoted into F 9.5 5 -Agave c 7 -#44475a T 2052 1085.4 -1 55 12 -the parent's F 9.5 5 -Agave c 7 -#\
ff79c6 T 2107 1085.4 -1 46 12 - children F 9.5 5 -Agave c 7 -#44475a T 2153 1085.4 -1 212 47 -output.All errors include the source \
position ( F 9.5 5 -Agave c 7 -#ff79c6 T 2365 1085.4 -1 68 17 - node.position F 9.5 5 -Agave c 7 -#44475a T 2433 1085.4 -1 73 \
16 -) for debugging. ",
fontsize=9.5,
height=3.2361,
href="#Error_Handling",
label=<Error Handling Compile-time (thrown by compile() ): |
• Unparseable markdown (remark parse failure) |
|
| Runtime (caught by onExtructionError callback): |
| • Syntax errors in extruction body JS | • Runtime exceptions during extruction evaluation |
|
When an extruction body throws during evaluation, the behavior depends on the presence of onExtructionError : |
| Callback | Behavior | | Provided | Error is passed to onExtructionError(err, headingNode) ; the extruction is treated as transparent (body skipped, children promoted). Iteration continues. | | Not provided ( null /omitted) | Error propagates to the consumer's for await loop (backward compatible). |
|
In children resolution, an errored child extruction follows the same rule — treated as transparent, its children promoted into the parent's children output.All errors include the source position ( node.position ) for debugging. |
>,
pos="2336,1198.5",
shape=plain,
width=7.9306];
mdt___Markdown_Construction_Pseudo_Code_Spec -> Error_Handling [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 42 1724.3 1199 1741.88 1199.05 1759.38 1199.11 1776.79 1199.16 \
1794.11 1199.21 1811.33 1199.27 1828.44 1199.32 1845.42 1199.37 1862.27 1199.42 1878.99 1199.47 1895.55 1199.52 1911.95 1199.57 \
1928.19 1199.62 1944.25 1199.67 1960.12 1199.72 1975.79 1199.77 1991.26 1199.82 2006.52 1199.86 2021.55 1199.91 2036.35 1199.96 \
2050.9 1200 2050.9 1198 2036.35 1198.04 2021.55 1198.09 2006.52 1198.14 1991.26 1198.18 1975.79 1198.23 1960.12 1198.28 1944.25 \
1198.33 1928.19 1198.38 1911.95 1198.43 1895.55 1198.48 1878.99 1198.53 1862.27 1198.58 1845.42 1198.63 1828.44 1198.68 1811.33 \
1198.73 1794.11 1198.79 1776.79 1198.84 1759.38 1198.89 1741.88 1198.95 1724.3 1199 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 1724.2 1199 1718.2 1203 1712.2 1199 1718.2 1195 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#mdt___Markdown_Construction_Pseudo_Code_Spec👉 Error_Handling",
penwidth=2,
pos="s,1712.2,1199 1724.3,1199 1841.7,1199 1954.7,1199 2050.9,1199",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
Open_Questions [_ldraw_="F 9.5 5 -Agave c 7 -#44475a t 1 T 2304 1055.9 -1 64 14 -Open Questions ",
fontsize=9.5,
height=0.16667,
href="#Open_Questions",
label=<>,
pos="2336,1057.5",
shape=plain,
width=0.91667];
mdt___Markdown_Construction_Pseudo_Code_Spec -> Open_Questions [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 82 1512.7 1098.5 1524.59 1097.08 1536.48 1095.68 1548.37 1094.3 \
1560.27 1092.94 1572.16 1091.6 1584.04 1090.27 1595.92 1088.97 1607.78 1087.69 1619.63 1086.43 1631.45 1085.2 1643.26 1083.99 1655.04 \
1082.8 1666.79 1081.64 1678.52 1080.51 1690.2 1079.4 1701.85 1078.32 1713.47 1077.27 1725.03 1076.25 1736.55 1075.26 1748.02 1074.3 \
1780.01 1071.83 1812.5 1069.62 1845.33 1067.66 1878.35 1065.92 1911.4 1064.4 1944.32 1063.09 1976.96 1061.97 2009.15 1061.02 2040.74 \
1060.24 2071.56 1059.61 2101.47 1059.11 2130.31 1058.74 2157.91 1058.48 2184.12 1058.31 2208.77 1058.23 2231.73 1058.22 2252.81 \
1058.26 2271.87 1058.35 2288.75 1058.47 2303.29 1058.6 2303.31 1056.6 2288.76 1056.5 2271.88 1056.43 2252.81 1056.39 2231.72 1056.4 \
2208.77 1056.47 2184.11 1056.61 2157.89 1056.85 2130.29 1057.18 2101.45 1057.62 2071.54 1058.19 2040.7 1058.9 2009.11 1059.77 1976.92 \
1060.79 1944.28 1062 1911.36 1063.4 1878.3 1065 1845.28 1066.81 1812.45 1068.86 1779.96 1071.15 1747.98 1073.7 1736.5 1074.69 1724.99 \
1075.71 1713.42 1076.76 1701.81 1077.84 1690.16 1078.95 1678.48 1080.09 1666.76 1081.25 1655 1082.44 1643.23 1083.66 1631.42 1084.9 \
1619.6 1086.16 1607.75 1087.45 1595.89 1088.76 1584.02 1090.09 1572.14 1091.45 1560.25 1092.82 1548.36 1094.21 1536.47 1095.62 1524.58 \
1097.05 1512.7 1098.5 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 1512.51 1098.52 1507.05 1103.23 1500.6 1100 1506.06 1095.29 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#mdt___Markdown_Construction_Pseudo_Code_Spec👉 Open_Questions",
penwidth=2,
pos="s,1500.6,1100 1512.7,1098.5 1591.9,1088.9 1671.7,1080.4 1748,1074 1959.2,1056.4 2214.5,1056.8 2303.3,1057.6",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
App_Integration [_ldraw_="F 9.5 5 -Agave c 7 -#44475a t 1 T 1955 1025.9 -1 68 15 -App Integration F 9.5 5 -Agave c 7 -#44475a t 0 T 1955 1016.4 -1 154 34 \
-The MDT library is integrated into F 9.5 5 -Agave c 7 -#ff79c6 T 2109 1016.4 -1 77 19 - player-paper.js F 9.5 5 -Agave c 7 -#\
44475a T 2186 1016.4 -1 28 6 -at the F 9.5 5 -Agave c 7 -#ff79c6 T 2214 1016.4 -1 32 9 - \"mdt\" F 9.5 5 -Agave c 7 -#44475a T \
2246 1016.4 -1 185 41 -case of the extension switch (line 876). F 9.5 5 -Agave c 7 -#44475a T 2131 1006.9 -1 28 6 -When a F 9.5 \
5 -Agave c 7 -#ff79c6 T 2159 1006.9 -1 28 8 - .mdt F 9.5 5 -Agave c 7 -#44475a T 2187 1006.9 -1 68 15 -file is opened: F 9.5 \
5 -Agave c 7 -#44475a T 1955 995.9 -1 14 6 -• F 9.5 5 -Agave c 7 -#44475a t 4 T 1969 995.9 -1 68 15 -Dynamic imports F 9.5 \
5 -Agave c 7 -#44475a t 0 T 2037 995.9 -1 10 2 - : F 9.5 5 -Agave c 7 -#ff79c6 T 2047 995.9 -1 37 10 - remark F 9.5 5 -Agave \
c 7 -#44475a T 2084 995.9 -1 5 1 -+ F 9.5 5 -Agave c 7 -#ff79c6 T 2089 995.9 -1 64 16 - remark-parse F 9.5 5 -Agave c 7 -#44475a \
T 2153 995.9 -1 77 17 -loaded from CDN ( F 9.5 5 -Agave c 7 -#ff79c6 T 2230 995.9 -1 82 20 - cdn.jsdelivr.net F 9.5 5 -Agave \
c 7 -#44475a T 2312 995.9 -1 10 2 -); F 9.5 5 -Agave c 7 -#ff79c6 T 2322 995.9 -1 41 11 - compile F 9.5 5 -Agave c 7 -#44475a \
T 2363 995.9 -1 59 13 -imported from F 9.5 5 -Agave c 7 -#ff79c6 T 2422 995.9 -1 64 16 - ./mdt/mdt.js F 9.5 5 -Agave c 7 -#44475a \
T 1955 985.9 -1 14 6 -• F 9.5 5 -Agave c 7 -#44475a t 4 T 1969 985.9 -1 23 5 -Fetch F 9.5 5 -Agave c 7 -#44475a t 0 T 1992 \
985.9 -1 122 27 - : file content fetched via F 9.5 5 -Agave c 7 -#ff79c6 T 2114 985.9 -1 100 24 - ssss.fetchWithETag() F 9.5 \
5 -Agave c 7 -#44475a T 2214 985.9 -1 77 17 -with ETag caching F 9.5 5 -Agave c 7 -#44475a T 1955 975.9 -1 14 6 -• F 9.5 5 \
-Agave c 7 -#44475a t 4 T 1969 975.9 -1 32 7 -Compile F 9.5 5 -Agave c 7 -#44475a t 0 T 2001 975.9 -1 10 2 - : F 9.5 5 -Agave c \
7 -#ff79c6 T 2011 975.9 -1 122 29 - compile(data, { remark }) F 9.5 5 -Agave c 7 -#44475a T 2133 975.9 -1 5 3 -→ F 9.5 5 -Agave \
c 7 -#ff79c6 T 2138 975.9 -1 37 10 - Runner F 9.5 5 -Agave c 7 -#44475a T 1955 965.9 -1 14 6 -• F 9.5 5 -Agave c 7 -#44475a \
t 4 T 1969 965.9 -1 14 3 -Run F 9.5 5 -Agave c 7 -#44475a t 0 T 1983 965.9 -1 10 2 - : F 9.5 5 -Agave c 7 -#ff79c6 T 1993 965.9 \
-1 68 17 - runner(STATE) F 9.5 5 -Agave c 7 -#44475a T 2061 965.9 -1 5 3 -→ F 9.5 5 -Agave c 7 -#ff79c6 T 2066 965.9 -1 46 \
12 - Document F 9.5 5 -Agave c 7 -#44475a T 2112 965.9 -1 113 25 -(STATE serves as context) F 9.5 5 -Agave c 7 -#44475a T 1955 \
955.9 -1 14 6 -• F 9.5 5 -Agave c 7 -#44475a t 4 T 1969 955.9 -1 100 22 -Rebuild clean markdown F 9.5 5 -Agave c 7 -#44475a \
t 0 T 2069 955.9 -1 172 38 - : fragments recursively collected via F 9.5 5 -Agave c 7 -#ff79c6 T 2241 955.9 -1 91 22 - collectFragments()\
F 9.5 5 -Agave c 7 -#44475a T 2332 955.9 -1 145 32 -async generator, each fragment's F 9.5 5 -Agave c 7 -#ff79c6 T 2477 955.9 \
-1 55 14 - toString() F 9.5 5 -Agave c 7 -#44475a T 2532 955.9 -1 185 41 -produces heading + body with extructions F 9.5 5 -Agave \
c 7 -#44475a T 2299.5 946.4 -1 73 16 -already filtered F 9.5 5 -Agave c 7 -#44475a T 1955 936.9 -1 14 6 -• F 9.5 5 -Agave c \
7 -#44475a t 4 T 1969 936.9 -1 28 6 -Render F 9.5 5 -Agave c 7 -#44475a t 0 T 1997 936.9 -1 136 30 - : clean markdown rendered via \
F 9.5 5 -Agave c 7 -#ff79c6 T 2133 936.9 -1 104 25 - ssss.renderMarkdown() F 9.5 5 -Agave c 7 -#44475a T 1955 926.9 -1 14 6 -• \
F 9.5 5 -Agave c 7 -#44475a t 4 T 1969 926.9 -1 55 12 -Post-process F 9.5 5 -Agave c 7 -#44475a t 0 T 2024 926.9 -1 181 40 - : heading \
tabindex, relative image URL F 9.5 5 -Agave c 7 -#44475a T 2057 917.4 -1 46 10 -resolution F 9.5 5 -Agave c 7 -#44475a T 1955 905.9 \
-1 149 33 -The current integration uses the F 9.5 5 -Agave c 7 -#44475a T 1955 896.4 -1 77 17 -browser's dynamic F 9.5 5 -Agave \
c 7 -#ff79c6 T 2032 896.4 -1 46 12 - import() F 9.5 5 -Agave c 7 -#44475a T 2078 896.4 -1 136 30 -for remark (same CDN source \
as F 9.5 5 -Agave c 7 -#ff79c6 T 2214 896.4 -1 41 11 - mdd.mjs F 9.5 5 -Agave c 7 -#44475a T 2255 896.4 -1 28 6 -). The F 9.5 \
5 -Agave c 7 -#ff79c6 T 2283 896.4 -1 41 11 - context F 9.5 5 -Agave c 7 -#44475a T 2324 896.4 -1 185 41 -parameter passes the \
app's STATE object, F 9.5 5 -Agave c 7 -#44475a T 1955 886.9 -1 172 38 -with adapters mixed in for extruction F 9.5 5 -Agave c \
7 -#44475a T 2207 877.4 -1 50 11 -evaluation. ",
fontsize=9.5,
height=2.2222,
href="#App_Integration",
label=<App Integration The MDT library is integrated into player-paper.js at the "mdt" case of the extension switch (line 876). When a .mdt file is opened: |
| • Dynamic imports : remark + remark-parse loaded from CDN ( cdn.jsdelivr.net ); compile imported from ./mdt/mdt.js | | • Fetch : file content fetched via ssss.fetchWithETag() with ETag caching | | • Compile : compile(data, { remark }) → Runner | | • Run : runner(STATE) → Document (STATE serves as context) | • Rebuild clean markdown : fragments recursively collected via collectFragments() async generator, each fragment's toString() produces heading + body with extructions already filtered | | • Render : clean markdown rendered via ssss.renderMarkdown() | • Post-process : heading tabindex, relative image URL resolution |
|
The current integration uses the browser's dynamic import() for remark (same CDN source as mdd.mjs ). The context parameter passes the app's STATE object, with adapters mixed in for extruction evaluation. |
>,
pos="2336,953.5",
shape=plain,
width=10.611];
mdt___Markdown_Construction_Pseudo_Code_Spec -> App_Integration [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 82 1423.1 1097.9 1439.31 1095.12 1455.57 1092.34 1471.87 1089.56 \
1488.22 1086.78 1504.59 1084 1520.99 1081.23 1537.39 1078.46 1553.81 1075.69 1570.22 1072.94 1586.61 1070.19 1602.99 1067.46 1619.34 \
1064.73 1635.65 1062.03 1651.92 1059.33 1668.13 1056.66 1684.28 1054 1700.36 1051.37 1716.36 1048.76 1732.28 1046.17 1748.1 1043.6 \
1758.14 1041.99 1768.24 1040.37 1778.39 1038.74 1788.59 1037.12 1798.84 1035.5 1809.13 1033.87 1819.45 1032.25 1829.81 1030.62 1840.19 \
1029 1850.59 1027.38 1861 1025.76 1871.43 1024.15 1881.86 1022.54 1892.3 1020.93 1902.73 1019.32 1913.15 1017.73 1923.56 1016.13 \
1933.95 1014.54 1944.31 1012.96 1954.65 1011.39 1954.35 1009.41 1944.01 1011.02 1933.65 1012.64 1923.27 1014.27 1912.87 1015.9 1902.45 \
1017.54 1892.03 1019.18 1881.6 1020.83 1871.17 1022.48 1860.75 1024.14 1850.34 1025.79 1839.94 1027.45 1829.57 1029.11 1819.22 1030.77 \
1808.9 1032.44 1798.62 1034.1 1788.37 1035.76 1778.18 1037.42 1768.03 1039.08 1757.94 1040.74 1747.9 1042.4 1732.09 1045.02 1716.18 \
1047.67 1700.19 1050.34 1684.12 1053.03 1667.98 1055.75 1651.78 1058.48 1635.52 1061.24 1619.22 1064.01 1602.88 1066.79 1586.51 \
1069.58 1570.12 1072.39 1553.72 1075.21 1537.32 1078.03 1520.92 1080.86 1504.54 1083.7 1488.17 1086.54 1471.84 1089.38 1455.54 1092.22 \
1439.29 1095.06 1423.1 1097.9 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 1422.82 1097.95 1417.6 1102.92 1411 1100 1416.23 1095.03 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#mdt___Markdown_Construction_Pseudo_Code_Spec👉 App_Integration",
penwidth=2,
pos="s,1411,1100 1423.1,1097.9 1530.9,1079.2 1642.9,1060.2 1748,1043 1814.7,1032.1 1885.7,1021 1954.5,1010.4",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
Extruction_Evaluation [_ldraw_="F 9.5 5 -Agave c 7 -#44475a t 1 T 2166 844.9 -1 95 21 -Extruction Evaluation F 9.5 5 -Agave c 7 -#44475a t 0 T 2166 835.4 -1 172 \
38 -Extruction bodies can be evaluated as F 9.5 5 -Agave c 7 -#44475a T 2166 825.9 -1 136 30 -JavaScript at runtime when the F \
9.5 5 -Agave c 7 -#ff79c6 T 2302 825.9 -1 37 10 - evalFn F 9.5 5 -Agave c 7 -#44475a T 2339 825.9 -1 167 37 -option is passed \
to the runner. This F 9.5 5 -Agave c 7 -#44475a T 2215.5 816.4 -1 32 7 -enables F 9.5 5 -Agave c 7 -#ff79c6 T 2247.5 816.4 -1 46 \
12 - # ${...} F 9.5 5 -Agave c 7 -#44475a T 2293.5 816.4 -1 163 36 -headings to produce dynamic content. ",
fontsize=9.5,
height=0.55556,
href="#Extruction_Evaluation",
label=<Extruction Evaluation Extruction bodies can be evaluated as JavaScript at runtime when the evalFn option is passed to the runner. This enables # ${...} headings to produce dynamic content. |
>,
pos="2336,832.5",
shape=plain,
width=4.75];
mdt___Markdown_Construction_Pseudo_Code_Spec -> Extruction_Evaluation [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 82 1076.8 1095.1 1103.95 1083.2 1132.23 1070.99 1161.57 1058.55 \
1191.88 1045.93 1223.1 1033.18 1255.14 1020.36 1287.94 1007.53 1321.41 994.74 1355.48 982.06 1390.08 969.53 1425.12 957.23 1460.53 \
945.19 1496.24 933.49 1532.17 922.17 1568.25 911.3 1604.39 900.93 1640.53 891.12 1676.58 881.93 1712.47 873.41 1748.13 865.62 1769.05 \
861.45 1790.26 857.6 1811.71 854.06 1833.34 850.81 1855.1 847.85 1876.96 845.16 1898.86 842.73 1920.75 840.56 1942.59 838.62 1964.32 \
836.9 1985.9 835.41 2007.29 834.11 2028.42 833.01 2049.25 832.09 2069.74 831.33 2089.83 830.74 2109.49 830.29 2128.65 829.97 2147.27 \
829.78 2165.31 829.7 2165.29 827.7 2147.25 827.81 2128.62 828.04 2109.45 828.39 2089.78 828.87 2069.68 829.5 2049.18 830.29 2028.33 \
831.25 2007.19 832.39 1985.79 833.73 1964.2 835.26 1942.46 837.02 1920.61 839 1898.7 841.22 1876.79 843.68 1854.92 846.41 1833.14 \
849.42 1811.49 852.7 1790.03 856.29 1768.81 860.18 1747.87 864.38 1712.21 872.24 1676.31 880.83 1640.25 890.1 1604.12 899.97 1567.98 \
910.41 1531.92 921.35 1496 932.73 1460.3 944.5 1424.9 956.6 1389.87 968.97 1355.3 981.56 1321.25 994.3 1287.79 1007.15 1255.02 1020.04 \
1222.99 1032.92 1191.8 1045.72 1161.5 1058.4 1132.19 1070.9 1103.93 1083.15 1076.8 1095.1 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 1076.76 1095.12 1072.91 1101.21 1065.8 1100 1069.65 1093.9 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#mdt___Markdown_Construction_Pseudo_Code_Spec👉 Extruction_Evaluation",
penwidth=2,
pos="s,1065.8,1100 1076.8,1095.1 1253.8,1016.7 1511.2,914.61 1748,865 1886.5,835.99 2047.1,829 2165.3,828.7",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
Search_Adapter [_ldraw_="F 14 5 -Agave c 7 -#44475a T 2336 680.8 0 95 14 -Search_Adapter ",
height=0.20833,
href="#Search_Adapter",
pos="2336,684.5",
shape=plain,
width=1.3194];
mdt___Markdown_Construction_Pseudo_Code_Spec -> Search_Adapter [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 82 1058.6 1094.5 1085.88 1081 1114.43 1067.03 1144.16 1052.65 1174.99 \
1037.91 1206.83 1022.89 1239.6 1007.64 1273.21 992.22 1307.58 976.69 1342.62 961.12 1378.25 945.57 1414.38 930.1 1450.93 914.77 \
1487.81 899.64 1524.94 884.77 1562.23 870.23 1599.6 856.08 1636.97 842.37 1674.24 829.17 1711.34 816.54 1748.17 804.55 1777.95 795.38 \
1808.3 786.59 1839.08 778.19 1870.15 770.16 1901.36 762.51 1932.57 755.24 1963.63 748.34 1994.41 741.82 2024.76 735.66 2054.53 729.87 \
2083.58 724.45 2111.77 719.4 2138.96 714.71 2164.99 710.38 2189.74 706.41 2213.04 702.8 2234.77 699.55 2254.77 696.65 2272.91 694.11 \
2289.04 691.91 2288.76 689.93 2272.64 692.15 2254.5 694.72 2234.49 697.65 2212.76 700.94 2189.45 704.59 2164.7 708.6 2138.66 712.97 \
2111.47 717.7 2083.28 722.8 2054.22 728.27 2024.45 734.1 1994.1 740.31 1963.32 746.88 1932.25 753.83 1901.03 761.16 1869.82 768.86 \
1838.75 776.93 1807.96 785.39 1777.61 794.23 1747.83 803.45 1710.99 815.51 1673.9 828.2 1636.64 841.46 1599.29 855.23 1561.93 869.44 \
1524.65 884.04 1487.54 898.97 1450.67 914.16 1414.14 929.55 1378.03 945.08 1342.42 960.68 1307.4 976.31 1273.06 991.88 1239.47 1007.36 \
1206.72 1022.66 1174.9 1037.73 1144.1 1052.52 1114.39 1066.95 1085.86 1080.96 1058.6 1094.5 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 1058.57 1094.51 1054.95 1100.75 1047.8 1099.8 1051.42 1093.57 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#mdt___Markdown_Construction_Pseudo_Code_Spec👉 Search_Adapter",
penwidth=2,
pos="s,1047.8,1099.8 1058.6,1094.5 1236,1006.1 1503.5,881.93 1748,804 1944.3,741.42 2188.4,704.46 2288.9,690.92",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
Adapter_Pattern [_ldraw_="F 14 5 -Agave c 7 -#44475a T 2336 564.8 0 102 15 -Adapter_Pattern ",
height=0.20833,
href="#Adapter_Pattern",
pos="2336,568.5",
shape=plain,
width=1.4167];
mdt___Markdown_Construction_Pseudo_Code_Spec -> Adapter_Pattern [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 82 997.94 1092.6 1024.23 1073.77 1052.33 1053.95 1082.13 1033.26 \
1113.53 1011.82 1146.42 989.77 1180.7 967.22 1216.27 944.3 1253.02 921.14 1290.84 897.85 1329.64 874.58 1369.3 851.43 1409.73 828.54 \
1450.82 806.03 1492.47 784.02 1534.57 762.64 1577.02 742.02 1619.71 722.28 1662.54 703.54 1705.41 685.93 1748.21 669.57 1777.12 \
659.46 1806.68 650.04 1836.74 641.31 1867.17 633.23 1897.82 625.77 1928.53 618.92 1959.18 612.65 1989.61 606.94 2019.68 601.75 2049.24 \
597.06 2078.15 592.85 2106.27 589.1 2133.45 585.77 2159.54 582.85 2184.41 580.3 2207.9 578.11 2229.88 576.24 2250.19 574.68 2268.7 \
573.39 2285.26 572.36 2285.14 570.36 2268.57 571.42 2250.05 572.73 2229.72 574.33 2207.73 576.23 2184.23 578.46 2159.35 581.04 2133.24 \
584 2106.05 587.37 2077.91 591.17 2048.99 595.42 2019.41 600.15 1989.33 605.38 1958.88 611.15 1928.22 617.47 1897.49 624.37 1866.83 \
631.87 1836.38 640 1806.3 648.79 1776.72 658.25 1747.79 668.43 1704.98 684.85 1662.12 702.53 1619.29 721.34 1576.61 741.15 1534.17 \
761.84 1492.09 783.29 1450.46 805.36 1409.39 827.93 1368.99 850.89 1329.35 874.09 1290.58 897.43 1252.79 920.77 1216.07 943.98 1180.53 \
966.95 1146.28 989.55 1113.42 1011.65 1082.05 1033.14 1052.28 1053.87 1024.21 1073.73 997.94 1092.6 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 997.72 1092.76 995.21 1099.52 988 1099.8 990.51 1093.04 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#mdt___Markdown_Construction_Pseudo_Code_Spec👉 Adapter_Pattern",
penwidth=2,
pos="s,988,1099.8 997.94,1092.6 1166.9,970.54 1463.1,773.82 1748,669 1938.3,598.97 2181.6,577.55 2285.2,571.36",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
Example_adapters [_ldraw_="F 14 5 -Agave c 7 -#44475a T 2336 349.8 0 109 16 -Example_adapters ",
height=0.20833,
href="#Example_adapters",
pos="2336,353.5",
shape=plain,
width=1.5139];
mdt___Markdown_Construction_Pseudo_Code_Spec -> Example_adapters [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 82 978.75 1092.2 1004.51 1070.45 1032.3 1047.26 1062.01 1022.79 \
1093.51 997.18 1126.69 970.58 1161.44 943.14 1197.65 915 1235.19 886.32 1273.96 857.24 1313.83 827.91 1354.7 798.48 1396.45 769.1 \
1438.96 739.91 1482.12 711.07 1525.82 682.72 1569.93 655.01 1614.35 628.09 1658.96 602.11 1703.64 577.21 1748.28 553.55 1778.58 \
538.42 1809.67 523.83 1841.38 509.8 1873.52 496.32 1905.92 483.41 1938.4 471.07 1970.79 459.31 2002.9 448.14 2034.57 437.56 2065.6 \
427.58 2095.84 418.21 2125.09 409.46 2153.18 401.33 2179.94 393.83 2205.19 386.97 2228.75 380.76 2250.43 375.19 2270.08 370.29 2287.5 \
366.06 2302.53 362.49 2302.07 360.55 2287.04 364.13 2269.61 368.39 2249.96 373.32 2228.27 378.92 2204.7 385.17 2179.45 392.06 2152.69 \
399.6 2124.59 407.77 2095.33 416.57 2065.1 425.98 2034.05 436 2002.39 446.63 1970.27 457.85 1937.88 469.66 1905.39 482.05 1872.98 \
495.02 1840.84 508.54 1809.12 522.63 1778.03 537.27 1747.72 552.45 1703.08 576.19 1658.41 601.16 1613.82 627.21 1569.43 654.19 1525.34 \
681.97 1481.67 710.38 1438.54 739.29 1396.06 768.53 1354.34 797.97 1313.5 827.46 1273.66 856.84 1234.93 885.98 1197.42 914.71 1161.25 \
942.89 1126.54 970.38 1093.39 997.03 1061.92 1022.68 1032.25 1047.19 1004.48 1070.42 978.75 1092.2 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 978.71 1092.23 976.73 1099.16 969.57 1100 971.55 1093.07 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#mdt___Markdown_Construction_Pseudo_Code_Spec👉 Example_adapters",
penwidth=2,
pos="s,969.57,1100 978.75,1092.2 1143.4,952.2 1450.8,706.56 1748,553 1947,450.17 2210.5,383.07 2302.3,361.52",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
Conversion_tree___transclusion_provenance [_ldraw_="F 14 5 -Agave c 7 -#44475a T 2336 102.8 0 277 41 -Conversion_tree___transclusion_provenance ",
height=0.20833,
href="#Conversion_tree___transclusion_provenance",
pos="2336,106.5",
shape=plain,
width=3.8472];
mdt___Markdown_Construction_Pseudo_Code_Spec -> Conversion_tree___transclusion_provenance [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 82 944.24 1090.5 967.77 1062.44 993.73 1031.93 1022.02 999.23 1052.51 \
964.56 1085.11 928.17 1119.68 890.3 1156.13 851.19 1194.33 811.07 1234.17 770.19 1275.54 728.79 1318.33 687.1 1362.42 645.36 1407.7 \
603.82 1454.05 562.71 1501.36 522.27 1549.52 482.74 1598.41 444.37 1647.92 407.38 1697.94 372.03 1748.35 338.54 1777.96 320.25 1808.56 \
302.68 1839.93 285.86 1871.89 269.78 1904.24 254.44 1936.8 239.84 1969.36 226 2001.73 212.91 2033.72 200.58 2065.13 189 2095.77 \
178.18 2125.44 168.13 2153.95 158.84 2181.11 150.33 2206.72 142.58 2230.59 135.61 2252.52 129.41 2272.32 124 2289.79 119.37 2304.75 \
115.52 2304.25 113.58 2289.29 117.45 2271.81 122.11 2252 127.55 2230.06 133.77 2206.18 140.78 2180.56 148.56 2153.4 157.11 2124.88 \
166.44 2095.19 176.54 2064.55 187.4 2033.13 199.02 2001.13 211.4 1968.75 224.54 1936.18 238.43 1903.61 253.07 1871.25 268.46 1839.27 \
284.6 1807.89 301.48 1777.28 319.1 1747.65 337.46 1697.25 371.02 1647.25 406.45 1597.76 443.51 1548.89 481.96 1500.76 521.55 1453.48 \
562.06 1407.17 603.23 1361.93 644.84 1317.89 686.63 1275.14 728.38 1233.81 769.84 1194.01 810.77 1155.85 850.93 1119.45 890.09 1084.92 \
928 1052.37 964.43 1021.91 999.13 993.66 1031.87 967.73 1062.41 944.24 1090.5 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 944.1 1090.67 943.35 1097.84 936.44 1099.9 937.19 1092.73 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#mdt___Markdown_Construction_Pseudo_Code_Spec👉 Conversion_tree___transclusion_provenance",
penwidth=2,
pos="s,936.44,1099.9 944.24,1090.5 1092.6,911.98 1410.9,554.74 1748,338 1941.8,213.37 2213.6,137.64 2304.5,114.55",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
Document [_ldraw_="F 4.75 5 -Agave c 7 -#44475a t 1 T 3110 2916.7 -1 19 8 -Document F 4.75 5 -Agave c 7 -#44475a t 0 T 3110 2911.95 -1 50 22 -A Document \
is both an F 4.75 5 -Agave c 7 -#44475a t 4 T 3160 2911.95 -1 32 14 -async iterable F 4.75 5 -Agave c 7 -#44475a t 0 T 3192 2911.95 \
-1 84 37 - (yields root-level Fragments) and a F 4.75 5 -Agave c 7 -#44475a t 4 T 3276 2911.95 -1 32 14 -navigation hub F 4.75 \
5 -Agave c 7 -#44475a t 0 T 3308 2911.95 -1 68 30 - (find fragments by trail-id): F 4.75 5 -Agave c 7 -#ff79c6 T 3110 2907.2 -1 \
75 38 - doc【Symbol.asyncIterator】() → F 4.75 5 -Agave c 7 -#ff79c6 T 3110 2902.45 -1 55 24 -AsyncIterable F 4.75 \
5 -Agave c 7 -#ff79c6 T 3110 2897.7 -1 91 42 -doc.find(trail) → Fragment F 4.75 5 -Agave c 7 -#ff79c6 T 3110 2892.95 \
-1 93 41 -| undefined doc.children(trail) F 4.75 5 -Agave c 7 -#ff79c6 T 3110 2888.2 -1 59 28 -→ AsyncIterable \
F 4.75 5 -Agave c 7 -#ff79c6 T 3110 2883.45 -1 70 33 -doc.preamble → F 4.75 5 -Agave c 7 -#ff79c6 T 3110 2878.7 \
-1 16 8 -string F 4.75 5 -Agave c 7 -#44475a T 3110 2872.7 -1 5 5 -• F 4.75 5 -Agave c 7 -#ff79c6 T 3115 2872.7 -1 23 12 - preamble \
F 4.75 5 -Agave c 7 -#44475a T 3138 2872.7 -1 86 40 -— any text in the source that appears F 4.75 5 -Agave c 7 -#44475a T 3110 \
2867.95 -1 88 39 -before the first heading. Empty string F 4.75 5 -Agave c 7 -#44475a T 3147.5 2863.2 -1 39 17 -if there is none. \
F 4.75 5 -Agave c 7 -#44475a T 3110 2858.7 -1 5 5 -• F 4.75 5 -Agave c 7 -#ff79c6 T 3115 2858.7 -1 30 15 - find(trail) F \
4.75 5 -Agave c 7 -#44475a T 3145 2858.7 -1 93 43 -— walks lazily along the matching prefix F 4.75 5 -Agave c 7 -#44475a T 3110 \
2853.95 -1 93 41 -only. At each level it compares the next F 4.75 5 -Agave c 7 -#44475a T 3110 2849.2 -1 86 38 -trail segment against \
child sanitized F 4.75 5 -Agave c 7 -#44475a T 3110 2844.45 -1 39 17 -names and expands F 4.75 5 -Agave c 7 -#44475a t 2 T 3149 \
2844.45 -1 10 4 -only F 4.75 5 -Agave c 7 -#44475a t 0 T 3159 2844.45 -1 93 41 -the matching child, abandoning the rest. F 4.75 \
5 -Agave c 7 -#44475a T 3110 2839.7 -1 88 39 -Cost is O(path length) expansions, not F 4.75 5 -Agave c 7 -#44475a T 3131.5 2834.95 \
-1 46 20 -O(document). Returns F 4.75 5 -Agave c 7 -#ff79c6 T 3177.5 2834.95 -1 25 13 - undefined F 4.75 5 -Agave c 7 -#44475a \
T 3202.5 2834.95 -1 28 12 -if no match. F 4.75 5 -Agave c 7 -#44475a T 3110 2830.7 -1 5 5 -• F 4.75 5 -Agave c 7 -#ff79c6 T \
3115 2830.7 -1 39 19 - children(trail) F 4.75 5 -Agave c 7 -#44475a T 3154 2830.7 -1 3 3 -— F 4.75 5 -Agave c 7 -#ff79c6 T \
3157 2830.7 -1 52 25 - find(trail)?.expand() F 4.75 5 -Agave c 7 -#44475a T 3209 2830.7 -1 3 1 -. F 4.75 5 -Agave c 7 -#44475a \
T 3110 2823.7 -1 32 14 -A Document is F 4.75 5 -Agave c 7 -#44475a t 4 T 3142 2823.7 -1 57 25 -stateless and re-iterable F 4.75 \
5 -Agave c 7 -#44475a t 0 T 3199 2823.7 -1 86 40 - — each call to the runner produces a F 4.75 5 -Agave c 7 -#44475a T 3110 2818.95 \
-1 79 35 -fresh Document, and each iteration F 4.75 5 -Agave c 7 -#44475a T 3159 2814.2 -1 77 34 -re-derives from the compiled \
tree. ",
fontsize=4.75,
height=1.5139,
href="#Document",
label=<Document A Document is both an async iterable (yields root-level Fragments) and a navigation hub (find fragments by trail-id): doc【Symbol.asyncIterator】() → AsyncIterable<Fragment> doc.find(trail) → Fragment | undefined doc.children(trail) → AsyncIterable<Fragment> doc.preamble → string
|
• preamble — any text in the source that appears before the first heading. Empty string if there is none. | • find(trail) — walks lazily along the matching prefix only. At each level it compares the next trail segment against child sanitized names and expandsonlythe matching child, abandoning the rest. Cost is O(path length) expansions, not O(document). Returns undefined if no match. | | • children(trail) — find(trail)?.expand() . |
|
A Document is stateless and re-iterable — each call to the runner produces a fresh Document, and each iteration re-derives from the compiled tree. |
>,
pos="3243,2866.5",
shape=plain,
width=3.7222];
Runner -> Document [_draw_="S 17 -setlinewidth(0.8) S 6 -dashed c 7 -#282a36 B 10 2916.7 2293.6 2919.5 2296.7 2922.3 2299.8 2925 2303 2997.2 2387.8 2888.3 2718.6 \
2961 2803 2994.9 2842.4 3047.6 2860.1 3098.2 2867.4 ",
_hdraw_="S 17 -setlinewidth(0.8) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 9 3108.3 2868.7 3097.81 2871.89 3103.34 2868.06 3098.38 2867.42 3098.38 \
2867.42 3098.38 2867.42 3103.34 2868.06 3098.96 2862.96 3108.3 2868.7 ",
arrowhead=open,
arrowsize=1.0,
href="#Runner👉 Document",
pos="e,3108.3,2868.7 2916.7,2293.6 2919.5,2296.7 2922.3,2299.8 2925,2303 2997.2,2387.8 2888.3,2718.6 2961,2803 2994.9,2842.4 3047.6,2860.1 \
3098.2,2867.4",
reverse=false,
style=dashed,
tooltip="-> isAnInputTo",
type=isAnInputTo];
Usage___Iteration [_ldraw_="F 4.75 5 -Agave c 7 -#44475a t 1 T 3197 2788.7 -1 39 19 -Usage — Iteration F 4.75 5 -Agave c 7 -#ff79c6 t 0 T 3197 2779.2 -1 82 \
37 - const doc = runner({ user }); for F 4.75 5 -Agave c 7 -#ff79c6 T 3197 2774.45 -1 82 36 -await (const section of doc) { // \
F 4.75 5 -Agave c 7 -#ff79c6 T 3197 2769.7 -1 66 31 -section.heading → \"# Chapter F 4.75 5 -Agave c 7 -#ff79c6 T 3197 2764.95 \
-1 66 31 -1\" // section.body → \"Some F 4.75 5 -Agave c 7 -#ff79c6 T 3197 2760.2 -1 79 37 -text...\" // section.toString() \
→ F 4.75 5 -Agave c 7 -#ff79c6 T 3197 2755.45 -1 75 33 -\"# Chapter 1\n\nSome text...\" F 4.75 5 -Agave c 7 -#ff79c6 T 3197 \
2750.7 -1 59 26 -for await (const child of F 4.75 5 -Agave c 7 -#ff79c6 T 3197 2745.95 -1 93 41 -section.expand()) { // child.heading \
F 4.75 5 -Agave c 7 -#ff79c6 T 3197 2741.2 -1 59 28 -→ \"## Section 1.1\" // F 4.75 5 -Agave c 7 -#ff79c6 T 3197 2736.45 -1 \
93 43 -child.headingLevel → 2 // child.body F 4.75 5 -Agave c 7 -#ff79c6 T 3197 2731.7 -1 48 24 -→ \"Details...\" } } ",
fontsize=4.75,
height=0.875,
href="#Usage___Iteration",
label=<Usage — Iteration
const doc = runner({ user }); for await (const section of doc) { // section.heading → "# Chapter 1" // section.body → "Some text..." // section.toString() → "# Chapter 1\n\nSome text..." for await (const child of section.expand()) { // child.heading → "## Section 1.1" // child.headingLevel → 2 // child.body → "Details..." } }
|
>,
pos="3243,2761.5",
shape=plain,
width=1.3194];
Runner -> Usage___Iteration [_draw_="S 17 -setlinewidth(0.8) S 6 -dashed c 7 -#282a36 B 10 2916.6 2293.7 2919.5 2296.7 2922.3 2299.8 2925 2303 2985.9 2373.6 2897.1 2653.2 \
2961 2721 3017.7 2781.2 3120.8 2780 3185 2772.1 ",
_hdraw_="S 17 -setlinewidth(0.8) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 9 3194.9 2770.8 3185.57 2776.56 3189.94 2771.45 3184.99 2772.1 3184.99 \
2772.1 3184.99 2772.1 3189.94 2771.45 3184.4 2767.64 3194.9 2770.8 ",
arrowhead=open,
arrowsize=1.0,
href="#Runner👉 Usage___Iteration",
pos="e,3194.9,2770.8 2916.6,2293.7 2919.5,2296.7 2922.3,2299.8 2925,2303 2985.9,2373.6 2897.1,2653.2 2961,2721 3017.7,2781.2 3120.8,2780 \
3185,2772.1",
reverse=false,
style=dashed,
tooltip="-> isAnInputTo",
type=isAnInputTo];
Usage___Trail_navigation [_ldraw_="F 4.75 5 -Agave c 7 -#44475a t 1 T 3191 2708.7 -1 55 26 -Usage — Trail navigation F 4.75 5 -Agave c 7 -#ff79c6 t 0 T 3191 2699.2 \
-1 79 36 - const doc = runner( { user }, F 4.75 5 -Agave c 7 -#ff79c6 T 3191 2694.45 -1 61 27 -{ sanitizeName: (s) => \
F 4.75 5 -Agave c 7 -#ff79c6 T 3191 2689.7 -1 73 32 -s.toLowerCase().replace(/\W+/g, F 4.75 5 -Agave c 7 -#ff79c6 T 3191 2684.95 \
-1 57 25 -\"-\"), }, ); // Find a F 4.75 5 -Agave c 7 -#ff79c6 T 3191 2680.2 -1 82 36 -heading by trail-id const section = F \
4.75 5 -Agave c 7 -#ff79c6 T 3191 2675.45 -1 95 42 -doc.find(\"getting-started/installation\"); F 4.75 5 -Agave c 7 -#ff79c6 T 3191 \
2670.7 -1 57 25 -for await (const step of F 4.75 5 -Agave c 7 -#ff79c6 T 3191 2665.95 -1 79 35 -section.expand()) { // immediate \
F 4.75 5 -Agave c 7 -#ff79c6 T 3191 2661.2 -1 84 37 -children of ## Installation } // Or F 4.75 5 -Agave c 7 -#ff79c6 T 3191 2656.45 \
-1 82 36 -shortcut: get children directly for F 4.75 5 -Agave c 7 -#ff79c6 T 3191 2651.7 -1 48 21 -await (const step of F 4.75 \
5 -Agave c 7 -#ff79c6 T 3191 2646.95 -1 104 46 -doc.children(\"getting-started/installation\")) F 4.75 5 -Agave c 7 -#ff79c6 T 3191 \
2642.2 -1 88 39 -{ // same result } // Preamble text F 4.75 5 -Agave c 7 -#ff79c6 T 3191 2637.45 -1 57 25 -before the first \
heading F 4.75 5 -Agave c 7 -#ff79c6 T 3191 2632.7 -1 61 28 -console.log(doc.preamble); ",
fontsize=4.75,
height=1.1389,
href="#Usage___Trail_navigation",
label=<Usage — Trail navigation
const doc = runner( { user }, { sanitizeName: (s) => s.toLowerCase().replace(/\W+/g, "-"), }, ); // Find a heading by trail-id const section = doc.find("getting-started/installation"); for await (const step of section.expand()) { // immediate children of ## Installation } // Or shortcut: get children directly for await (const step of doc.children("getting-started/installation")) { // same result } // Preamble text before the first heading console.log(doc.preamble);
|
>,
pos="3243,2671.5",
shape=plain,
width=1.4722];
Runner -> Usage___Trail_navigation [_draw_="S 17 -setlinewidth(0.8) S 6 -dashed c 7 -#282a36 B 10 2916.5 2293.8 2919.4 2296.8 2922.2 2299.9 2925 2303 3019.4 2409.4 2863.7 2517.3 \
2961 2621 3016.2 2679.8 3114.8 2684 3179.2 2679.3 ",
_hdraw_="S 17 -setlinewidth(0.8) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 9 3189.2 2678.4 3179.64 2683.78 3184.22 2678.85 3179.24 2679.3 3179.24 \
2679.3 3179.24 2679.3 3184.22 2678.85 3178.84 2674.81 3189.2 2678.4 ",
arrowhead=open,
arrowsize=1.0,
href="#Runner👉 Usage___Trail_navigation",
pos="e,3189.2,2678.4 2916.5,2293.8 2919.4,2296.8 2922.2,2299.9 2925,2303 3019.4,2409.4 2863.7,2517.3 2961,2621 3016.2,2679.8 3114.8,2684 \
3179.2,2679.3",
reverse=false,
style=dashed,
tooltip="-> isAnInputTo",
type=isAnInputTo];
Trail_id [_ldraw_="F 4.75 5 -Agave c 7 -#44475a t 1 T 2963 2607.7 -1 19 8 -Trail-id F 4.75 5 -Agave c 7 -#44475a t 0 T 2963 2602.95 -1 5 2 -A F 4.75 \
5 -Agave c 7 -#44475a t 4 T 2968 2602.95 -1 19 8 -trail-id F 4.75 5 -Agave c 7 -#44475a t 0 T 2987 2602.95 -1 12 5 - is a F 4.75 \
5 -Agave c 7 -#ff79c6 T 2999 2602.95 -1 7 5 - / F 4.75 5 -Agave c 7 -#44475a T 3006 2602.95 -1 84 37 --separated path of sanitized \
heading F 4.75 5 -Agave c 7 -#44475a T 2963 2598.2 -1 93 41 -names that uniquely identifies a heading F 4.75 5 -Agave c 7 -#44475a \
T 2997 2593.45 -1 59 26 -in the document hierarchy: S 5 -solid c 7 -#282a36 p 4 2965 2576.5 2965 2587.5 3221 2587.5 3221 2576.5 \
F 4.75 5 -Agave c 7 -#44475a T 3085 2580.7 -1 16 7 -Heading S 5 -solid c 7 -#282a36 p 4 3223 2576.5 3223 2587.5 3522 2587.5 3522 \
2576.5 F 4.75 5 -Agave c 7 -#44475a T 3366.5 2580.7 -1 12 5 -Trail S 5 -solid c 7 -#282a36 p 4 2965 2563.5 2965 2574.5 3221 2574.5 \
3221 2563.5 F 4.75 5 -Agave c 7 -#ff79c6 T 3071.5 2567.7 -1 43 21 - # Getting Started S 5 -solid c 7 -#282a36 p 4 3223 2563.5 \
3223 2574.5 3522 2574.5 3522 2563.5 F 4.75 5 -Agave c 7 -#ff79c6 T 3351 2567.7 -1 43 21 - \"getting-started\" S 5 -solid c 7 -#\
282a36 p 4 2965 2550.5 2965 2561.5 3221 2561.5 3221 2550.5 F 4.75 5 -Agave c 7 -#ff79c6 T 3073.5 2554.7 -1 39 19 - ## Installation \
S 5 -solid c 7 -#282a36 p 4 3223 2550.5 3223 2561.5 3522 2561.5 3522 2550.5 F 4.75 5 -Agave c 7 -#ff79c6 T 3336 2554.7 -1 73 34 \
- \"getting-started/installation\" S 5 -solid c 7 -#282a36 p 4 2965 2537.5 2965 2548.5 3221 2548.5 3221 2537.5 F 4.75 5 -Agave \
c 7 -#ff79c6 T 3080.5 2541.7 -1 25 13 - ### Linux S 5 -solid c 7 -#282a36 p 4 3223 2537.5 3223 2548.5 3522 2548.5 3522 2537.5 \
F 4.75 5 -Agave c 7 -#ff79c6 T 3329.5 2541.7 -1 86 40 - \"getting-started/installation/linux\" S 5 -solid c 7 -#282a36 p 4 2965 \
2524.5 2965 2535.5 3221 2535.5 3221 2524.5 F 4.75 5 -Agave c 7 -#ff79c6 T 3080.5 2528.7 -1 25 13 - ### macOS S 5 -solid c 7 -#\
282a36 p 4 3223 2524.5 3223 2535.5 3522 2535.5 3522 2524.5 F 4.75 5 -Agave c 7 -#ff79c6 T 3329.5 2528.7 -1 86 40 - \"getting-started/\
installation/macos\" S 5 -solid c 7 -#282a36 p 4 2965 2511.5 2965 2522.5 3221 2522.5 3221 2511.5 F 4.75 5 -Agave c 7 -#ff79c6 T \
3081.5 2515.7 -1 23 12 - ## Usage S 5 -solid c 7 -#282a36 p 4 3223 2511.5 3223 2522.5 3522 2522.5 3522 2511.5 F 4.75 5 -Agave \
c 7 -#ff79c6 T 3344 2515.7 -1 57 27 - \"getting-started/usage\" F 4.75 5 -Agave c 7 -#44475a T 2963 2504.7 -1 68 30 -The trail \
is constructed with F 4.75 5 -Agave c 7 -#44475a t 4 T 3031 2504.7 -1 55 24 -the same stack algorithm F 4.75 5 -Agave c 7 -#44475a \
t 0 T 3086 2504.7 -1 19 8 - used by F 4.75 5 -Agave c 7 -#ff79c6 T 3105 2504.7 -1 39 19 - getHeadingTrail F 4.75 5 -Agave c 7 \
-#44475a T 3144 2504.7 -1 57 25 -in the existing codebase: F 4.75 5 -Agave c 7 -#44475a T 2963 2496.7 -1 93 44 -• Walk all heading \
nodes depth-first (in F 4.75 5 -Agave c 7 -#44475a T 2992.5 2491.7 -1 34 15 -document order) F 4.75 5 -Agave c 7 -#44475a T 2963 \
2487.7 -1 48 24 -• Maintain a stack of F 4.75 5 -Agave c 7 -#ff79c6 T 3011 2487.7 -1 50 24 - { level, sanitized } F 4.75 5 \
-Agave c 7 -#44475a T 3061 2487.7 -1 16 7 -entries F 4.75 5 -Agave c 7 -#44475a T 2963 2482.7 -1 70 34 -• When a heading at level \
N is F 4.75 5 -Agave c 7 -#44475a T 2963 2477.95 -1 91 40 -encountered, pop all stack entries where F 4.75 5 -Agave c 7 -#ff79c6 \
T 3054 2477.95 -1 28 14 - level >= N F 4.75 5 -Agave c 7 -#44475a T 3082 2477.95 -1 55 24 -, then push this heading F 4.75 5 \
-Agave c 7 -#44475a T 2963 2473.7 -1 32 17 -• The trail is F 4.75 5 -Agave c 7 -#ff79c6 T 2995 2473.7 -1 37 17 - stack.map(e => \
F 4.75 5 -Agave c 7 -#ff79c6 T 2971.5 2468.95 -1 52 24 -e.sanitized).join(\"/\") F 4.75 5 -Agave c 7 -#44475a T 2963 2462.7 -1 3 \
1 - F 4.75 5 -Agave c 7 -#44475a t 4 T 2966 2462.7 -1 25 11 -Extructions F 4.75 5 -Agave c 7 -#44475a t 0 T 2991 2462.7 -1 5 2 \
- ( F 4.75 5 -Agave c 7 -#ff79c6 T 2996 2462.7 -1 28 14 - # ${label} F 4.75 5 -Agave c 7 -#44475a T 3024 2462.7 -1 88 41 -) are \
skipped by the trail algorithm — F 4.75 5 -Agave c 7 -#44475a T 2963 2457.95 -1 75 33 -they produce no output and don't F 4.75 \
5 -Agave c 7 -#44475a T 2963 2453.2 -1 59 26 -contribute to the stack. A F 4.75 5 -Agave c 7 -#ff79c6 T 3022 2453.2 -1 28 14 - ## \
Details F 4.75 5 -Agave c 7 -#44475a T 3050 2453.2 -1 43 19 -after an extruction F 4.75 5 -Agave c 7 -#ff79c6 T 3093 2453.2 -1 \
34 17 - ## ${sidebar} F 4.75 5 -Agave c 7 -#44475a T 3127 2453.2 -1 64 28 -at the same level gets trail F 4.75 5 -Agave c 7 -#\
ff79c6 T 3191 2453.2 -1 39 19 - \"intro/details\" F 4.75 5 -Agave c 7 -#44475a T 3230 2453.2 -1 12 5 -, not F 4.75 5 -Agave c 7 \
-#ff79c6 T 3242 2453.2 -1 57 27 - \"intro/sidebar/details\" F 4.75 5 -Agave c 7 -#44475a T 3299 2453.2 -1 55 24 -.Traversal stops \
at the F 4.75 5 -Agave c 7 -#44475a t 4 T 3354 2453.2 -1 25 11 -first match F 4.75 5 -Agave c 7 -#44475a t 0 T 3379 2453.2 -1 5 \
4 - — F 4.75 5 -Agave c 7 -#ff79c6 T 3384 2453.2 -1 19 10 - find() F 4.75 5 -Agave c 7 -#44475a T 3403 2453.2 -1 7 3 -and F \
4.75 5 -Agave c 7 -#ff79c6 T 3410 2453.2 -1 28 14 - children() F 4.75 5 -Agave c 7 -#44475a T 3438 2453.2 -1 86 38 -return the \
section at the exact trail F 4.75 5 -Agave c 7 -#44475a T 2963 2448.45 -1 77 34 -without pre-processing the entire F 4.75 5 -Agave \
c 7 -#44475a T 2963 2443.7 -1 88 39 -document. Fragments past the match are F 4.75 5 -Agave c 7 -#44475a T 3224 2438.95 -1 39 17 \
-not materialized. ",
fontsize=4.75,
height=2.4306,
href="#Trail_id",
label=<Trail-id A trail-id is a / -separated path of sanitized heading names that uniquely identifies a heading in the document hierarchy: |
| Heading | Trail | | # Getting Started | "getting-started" | | ## Installation | "getting-started/installation" | | ### Linux | "getting-started/installation/linux" | | ### macOS | "getting-started/installation/macos" | | ## Usage | "getting-started/usage" |
|
| The trail is constructed with the same stack algorithm used by getHeadingTrail in the existing codebase: |
• Walk all heading nodes depth-first (in document order) | | • Maintain a stack of { level, sanitized } entries | • When a heading at level N is encountered, pop all stack entries where level >= N , then push this heading | • The trail is stack.map(e => e.sanitized).join("/") |
|
Extructions ( # ${label} ) are skipped by the trail algorithm — they produce no output and don't contribute to the stack. A ## Details after an extruction ## ${sidebar} at the same level gets trail "intro/details" , not "intro/sidebar/details" .Traversal stops at the first match — find() and children() return the section at the exact trail without pre-processing the entire document. Fragments past the match are not materialized. |
>,
pos="3243,2524.5",
shape=plain,
width=7.8194];
Runner -> Trail_id [_draw_="S 17 -setlinewidth(0.8) S 6 -dashed c 7 -#282a36 B 10 2914.9 2293.7 2918.3 2296.7 2921.7 2299.8 2925 2303 2966.6 2342.5 2921.5 2385.4 \
2961 2427 2961.8 2427.8 2962.6 2428.6 2963.4 2429.4 ",
_hdraw_="S 17 -setlinewidth(0.8) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 9 2970.7 2436.5 2960.39 2432.75 2967.12 2433.01 2963.53 2429.53 2963.53 \
2429.53 2963.53 2429.53 2967.12 2433.01 2966.67 2426.3 2970.7 2436.5 ",
arrowhead=open,
arrowsize=1.0,
href="#Runner👉 Trail_id",
pos="e,2970.7,2436.5 2914.9,2293.7 2918.3,2296.7 2921.7,2299.8 2925,2303 2966.6,2342.5 2921.5,2385.4 2961,2427 2961.8,2427.8 2962.6,2428.6 \
2963.4,2429.4",
reverse=false,
style=dashed,
tooltip="-> isAnInputTo",
type=isAnInputTo];
Usage___Extruction_evaluation_with_adapters [_ldraw_="F 4.75 5 -Agave c 7 -#44475a t 1 T 3150 2414.7 -1 79 37 -Usage — Extruction evaluation with F 4.75 5 -Agave c 7 -#44475a T 3150 \
2409.95 -1 19 8 -adapters F 4.75 5 -Agave c 7 -#44475a t 0 T 3150 2405.2 -1 10 4 -When F 4.75 5 -Agave c 7 -#ff79c6 T 3160 2405.2 \
-1 19 10 - evalFn F 4.75 5 -Agave c 7 -#44475a T 3179 2405.2 -1 86 38 -is provided, extruction bodies run as F 4.75 5 -Agave \
c 7 -#44475a T 3150 2400.45 -1 86 38 -JavaScript and can produce output via F 4.75 5 -Agave c 7 -#44475a T 3150 2395.7 -1 7 3 -the \
F 4.75 5 -Agave c 7 -#ff79c6 T 3157 2395.7 -1 19 10 - insert F 4.75 5 -Agave c 7 -#44475a T 3176 2395.7 -1 21 9 -protocol: F \
4.75 5 -Agave c 7 -#ff79c6 T 3150 2390.95 -1 57 26 - import { compile } from F 4.75 5 -Agave c 7 -#ff79c6 T 3150 2386.2 -1 91 \
40 -'./mdt/mdt.js' import { evalBody } from F 4.75 5 -Agave c 7 -#ff79c6 T 3150 2381.45 -1 88 39 -'./mdt/eval-body.js' import { \
remark } F 4.75 5 -Agave c 7 -#ff79c6 T 3150 2376.7 -1 95 42 -from 'remark' const md = `# ${greeting} F 4.75 5 -Agave c 7 -#\
ff79c6 T 3150 2371.95 -1 93 41 -\`\`\`javascript const name = _mdt_label F 4.75 5 -Agave c 7 -#ff79c6 T 3150 2367.2 -1 86 38 -return \
insert(\`Hello **\${name}**\`) F 4.75 5 -Agave c 7 -#ff79c6 T 3150 2362.45 -1 84 37 -\`\`\` # Results ## ${search mdd} F 4.75 \
5 -Agave c 7 -#ff79c6 T 3150 2357.7 -1 84 37 -\`\`\`javascript const items = await F 4.75 5 -Agave c 7 -#ff79c6 T 3150 2352.95 \
-1 48 21 -search(\"mdd\") return F 4.75 5 -Agave c 7 -#ff79c6 T 3150 2348.2 -1 50 22 -insert(items.map(i => F 4.75 5 -Agave c 7 \
-#ff79c6 T 3150 2343.45 -1 68 30 -i.uri).join(\"\n\")) \`\`\` ## F 4.75 5 -Agave c 7 -#ff79c6 T 3150 2338.7 -1 70 31 -Total \`\`\`\
javascript return F 4.75 5 -Agave c 7 -#ff79c6 T 3150 2333.95 -1 86 38 -insert(String(total)) \`\`\` ` const F 4.75 5 -Agave \
c 7 -#ff79c6 T 3150 2329.2 -1 73 36 -search = async (q) => 【 { name: F 4.75 5 -Agave c 7 -#ff79c6 T 3150 2324.45 -1 32 14 -\"\
file1\", uri: F 4.75 5 -Agave c 7 -#ff79c6 T 3150 2319.7 -1 66 29 -\"#/paper/file1\" }, { name: F 4.75 5 -Agave c 7 -#ff79c6 T \
3150 2314.95 -1 32 14 -\"file2\", uri: F 4.75 5 -Agave c 7 -#ff79c6 T 3150 2310.2 -1 61 29 -\"#/paper/file2\" }, 】 const F 4.75 \
5 -Agave c 7 -#ff79c6 T 3150 2305.45 -1 93 41 -total = 42 const runner = compile(md, { F 4.75 5 -Agave c 7 -#ff79c6 T 3150 2300.7 \
-1 88 39 -remark }) const doc = runner({ search, F 4.75 5 -Agave c 7 -#ff79c6 T 3150 2295.95 -1 82 36 -total }, { evalFn: evalBody }) \
for F 4.75 5 -Agave c 7 -#ff79c6 T 3150 2291.2 -1 75 33 -await (const section of doc) { F 4.75 5 -Agave c 7 -#ff79c6 T 3150 \
2286.45 -1 84 37 -console.log(section.toString()) // F 4.75 5 -Agave c 7 -#ff79c6 T 3150 2281.7 -1 50 24 -\"${greeting}\" → \"\n\nHello **world**\" F 4.75 5 -Agave c 7 -#ff79c6 T 3150 \
2272.2 -1 70 33 -// \"Results\" → normal heading, F 4.75 5 -Agave c 7 -#ff79c6 T 3150 2267.45 -1 93 41 -expanded below for await (\
const child F 4.75 5 -Agave c 7 -#ff79c6 T 3150 2262.7 -1 68 30 -of section.expand()) { // F 4.75 5 -Agave c 7 -#ff79c6 T \
3150 2257.95 -1 41 20 -\"${search mdd}\" → F 4.75 5 -Agave c 7 -#ff79c6 T 3150 2253.2 -1 79 35 -\"#/paper/file1\n#/paper/file2\" \
F 4.75 5 -Agave c 7 -#ff79c6 T 3150 2248.45 -1 46 22 -// \"Total\" → \"42\" F 4.75 5 -Agave c 7 -#ff79c6 T 3150 2243.7 -1 10 5 \
-} } F 4.75 5 -Agave c 7 -#44475a T 3150 2238.95 -1 43 19 -The extruction body F 4.75 5 -Agave c 7 -#ff79c6 T 3193 2238.95 -1 \
50 24 - return insert(value) F 4.75 5 -Agave c 7 -#44475a T 3243 2238.95 -1 93 41 -yields one or more Fragment-like objects \
F 4.75 5 -Agave c 7 -#44475a T 3150 2234.2 -1 66 29 -directly into the output. Any F 4.75 5 -Agave c 7 -#ff79c6 T 3216 2234.2 -1 \
16 9 - await F 4.75 5 -Agave c 7 -#44475a T 3232 2234.2 -1 91 40 --able function in context is an adapter F 4.75 5 -Agave c \
7 -#44475a T 3168.5 2229.45 -1 3 3 -— F 4.75 5 -Agave c 7 -#ff79c6 T 3171.5 2229.45 -1 19 10 - search F 4.75 5 -Agave c 7 -#\
44475a T 3190.5 2229.45 -1 3 1 -, F 4.75 5 -Agave c 7 -#ff79c6 T 3193.5 2229.45 -1 16 9 - total F 4.75 5 -Agave c 7 -#44475a \
T 3209.5 2229.45 -1 12 5 -, and F 4.75 5 -Agave c 7 -#ff79c6 T 3221.5 2229.45 -1 28 14 - _mdt_label F 4.75 5 -Agave c 7 -#44475a \
T 3249.5 2229.45 -1 68 30 -all coexist as named bindings. ",
fontsize=4.75,
height=2.6667,
href="#Usage___Extruction_evaluation_with_adapters",
label=<Usage — Extruction evaluation with adapters When evalFn is provided, extruction bodies run as JavaScript and can produce output via the insert protocol: import { compile } from './mdt/mdt.js' import { evalBody } from './mdt/eval-body.js' import { remark } from 'remark' const md = `# ${greeting} \`\`\`javascript const name = _mdt_label return insert(\`Hello **\${name}**\`) \`\`\` # Results ## ${search mdd} \`\`\`javascript const items = await search("mdd") return insert(items.map(i => i.uri).join("\\n")) \`\`\` ## Total \`\`\`javascript return insert(String(total)) \`\`\` ` const search = async (q) => 【 { name: "file1", uri: "#/paper/file1" }, { name: "file2", uri: "#/paper/file2" }, 】 const total = 42 const runner = compile(md, { remark }) const doc = runner({ search, total }, { evalFn: evalBody }) for await (const section of doc) { console.log(section.toString()) // "${greeting}" → "<!-- greeting -->\n\nHello **world**" // "Results" → normal heading, expanded below for await (const child of section.expand()) { // "${search mdd}" → "#/paper/file1\n#/paper/file2" // "Total" → "42" } } The extruction body return insert(value) yields one or more Fragment-like objects directly into the output. Any await -able function in context is an adapter — search , total , and _mdt_label all coexist as named bindings. |
>,
pos="3243,2322.5",
shape=plain,
width=2.6111];
Runner -> Usage___Extruction_evaluation_with_adapters [_draw_="S 17 -setlinewidth(0.8) S 6 -dashed c 7 -#282a36 B 4 2925 2266.7 3006.7 2281 3081.8 2294.1 3138.4 2304 ",
_hdraw_="S 17 -setlinewidth(0.8) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 9 3148.4 2305.7 3137.79 2308.46 3143.47 2304.86 3138.54 2304.02 3138.54 \
2304.02 3138.54 2304.02 3143.47 2304.86 3139.3 2299.59 3148.4 2305.7 ",
arrowhead=open,
arrowsize=1.0,
href="#Runner👉 Usage___Extruction_evaluation_with_adapters",
pos="e,3148.4,2305.7 2925,2266.7 3006.7,2281 3081.8,2294.1 3138.4,2304",
reverse=false,
style=dashed,
tooltip="-> isAnInputTo",
type=isAnInputTo];
Usage___Error_recovery [_ldraw_="F 4.75 5 -Agave c 7 -#44475a t 1 T 3149 2203.7 -1 50 24 -Usage — Error recovery F 4.75 5 -Agave c 7 -#44475a t 0 T 3149 2198.95 \
-1 70 31 -When an extruction body throws, F 4.75 5 -Agave c 7 -#ff79c6 T 3219 2198.95 -1 43 21 - onExtructionError F 4.75 5 -Agave \
c 7 -#44475a T 3262 2198.95 -1 75 33 -lets you log and skip instead of F 4.75 5 -Agave c 7 -#44475a T 3149 2194.2 -1 52 23 -crashing \
the iteration: F 4.75 5 -Agave c 7 -#ff79c6 T 3149 2189.45 -1 82 37 - const doc = runner({ search }, { F 4.75 5 -Agave c 7 -#\
ff79c6 T 3149 2184.7 -1 88 39 -evalFn: evalBody, onExtructionError: F 4.75 5 -Agave c 7 -#ff79c6 T 3149 2179.95 -1 64 28 -(err, \
headingNode) => { F 4.75 5 -Agave c 7 -#ff79c6 T 3149 2175.2 -1 75 33 -console.warn( \`Extruction F 4.75 5 -Agave c \
7 -#ff79c6 T 3149 2170.45 -1 68 30 -\"\${headingNode.data?.label}\" F 4.75 5 -Agave c 7 -#ff79c6 T 3149 2165.7 -1 93 41 -failed:\`, \
err.message, ) }, F 4.75 5 -Agave c 7 -#ff79c6 T 3149 2160.95 -1 93 41 -}) for await (const section of doc) { F 4.75 \
5 -Agave c 7 -#ff79c6 T 3149 2156.2 -1 93 41 -// Sections after the failing extruction F 4.75 5 -Agave c 7 -#ff79c6 T 3149 2151.45 \
-1 34 16 -still appear } F 4.75 5 -Agave c 7 -#44475a T 3149 2146.7 -1 88 39 -Without the callback, errors propagate F 4.75 5 \
-Agave c 7 -#44475a T 3149 2141.95 -1 39 17 -to the consumer's F 4.75 5 -Agave c 7 -#ff79c6 T 3188 2141.95 -1 25 13 - for await \
F 4.75 5 -Agave c 7 -#44475a T 3213 2141.95 -1 84 37 -loop. With the callback, the failing F 4.75 5 -Agave c 7 -#44475a T 3149 \
2137.2 -1 79 35 -extruction is silently dropped and F 4.75 5 -Agave c 7 -#44475a T 3149 2132.45 -1 77 34 -iteration continues with \
the next F 4.75 5 -Agave c 7 -#44475a T 3149 2127.7 -1 88 39 -heading. The heading node gives access F 4.75 5 -Agave c 7 -#44475a \
T 3162 2122.95 -1 39 17 -to the position ( F 4.75 5 -Agave c 7 -#ff79c6 T 3201 2122.95 -1 50 24 - headingNode.position F 4.75 \
5 -Agave c 7 -#44475a T 3251 2122.95 -1 73 32 -) for source-mapped diagnostics. ",
fontsize=4.75,
height=1.2083,
href="#Usage___Error_recovery",
label=<Usage — Error recovery When an extruction body throws, onExtructionError lets you log and skip instead of crashing the iteration: const doc = runner({ search }, { evalFn: evalBody, onExtructionError: (err, headingNode) => { console.warn( \`Extruction "\${headingNode.data?.label}" failed:\`, err.message, ) }, }) for await (const section of doc) { // Sections after the failing extruction still appear } Without the callback, errors propagate to the consumer's for await loop. With the callback, the failing extruction is silently dropped and iteration continues with the next heading. The heading node gives access to the position ( headingNode.position ) for source-mapped diagnostics. |
>,
pos="3243,2164.5",
shape=plain,
width=2.6389];
Runner -> Usage___Error_recovery [_draw_="S 17 -setlinewidth(0.8) S 6 -dashed c 7 -#282a36 B 4 2925 2164 3006 2164 3080.7 2164 3137.1 2164 ",
_hdraw_="S 17 -setlinewidth(0.8) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 9 3147.4 2164 3137.4 2168.5 3142.4 2164 3137.4 2164 3137.4 2164 3137.4 \
2164 3142.4 2164 3137.4 2159.5 3147.4 2164 ",
arrowhead=open,
arrowsize=1.0,
href="#Runner👉 Usage___Error_recovery",
pos="e,3147.4,2164 2925,2164 3006,2164 3080.7,2164 3137.1,2164",
reverse=false,
style=dashed,
tooltip="-> isAnInputTo",
type=isAnInputTo];
Usage___Adapter_with___mdt_label_ [_ldraw_="F 4.75 5 -Agave c 7 -#44475a t 1 T 3179 2097.7 -1 46 22 -Usage — Adapter with F 4.75 5 -Agave c 7 -#44475a t 0 T 3179 2092.95 \
-1 7 3 -The F 4.75 5 -Agave c 7 -#ff79c6 T 3186 2092.95 -1 28 14 - _mdt_label F 4.75 5 -Agave c 7 -#44475a T 3214 2092.95 -1 \
91 40 -binding lets one adapter serve multiple F 4.75 5 -Agave c 7 -#44475a T 3179 2088.2 -1 46 20 -extruction variants: F 4.75 \
5 -Agave c 7 -#ff79c6 T 3179 2083.45 -1 68 31 - const md = `# ${search mdd} F 4.75 5 -Agave c 7 -#ff79c6 T 3179 2078.7 -1 84 \
37 -\`\`\`javascript const items = await F 4.75 5 -Agave c 7 -#ff79c6 T 3179 2073.95 -1 77 34 -search(_mdt_label) return insert( \
F 4.75 5 -Agave c 7 -#ff79c6 T 3179 2069.2 -1 50 22 -items.map(i => \"- \" + F 4.75 5 -Agave c 7 -#ff79c6 T 3179 2064.45 -1 68 30 \
-i.uri). join(\"\n\")) \`\`\` # F 4.75 5 -Agave c 7 -#ff79c6 T 3179 2059.7 -1 84 37 -${search js} \`\`\`javascript const F 4.75 \
5 -Agave c 7 -#ff79c6 T 3179 2054.95 -1 91 40 -items = await search(_mdt_label) return F 4.75 5 -Agave c 7 -#ff79c6 T 3179 2050.2 \
-1 64 28 -insert( items.map(i => \"- \" F 4.75 5 -Agave c 7 -#ff79c6 T 3179 2045.45 -1 68 30 -+ i.name). join(\"\n\")) \`\`\` F 4.75 \
5 -Agave c 7 -#ff79c6 T 3179 2040.7 -1 86 38 -` const search = async (q) => { if F 4.75 5 -Agave c 7 -#ff79c6 T 3179 2035.95 \
-1 73 33 -(q === \"search mdd\") return 【{ F 4.75 5 -Agave c 7 -#ff79c6 T 3179 2031.2 -1 48 21 -name: \"readme\", uri: F 4.75 5 \
-Agave c 7 -#ff79c6 T 3179 2026.45 -1 57 30 -\"#/readme\" }】 return 【{ F 4.75 5 -Agave c 7 -#ff79c6 T 3179 2021.7 -1 50 22 \
-name: \"main.js\", uri: F 4.75 5 -Agave c 7 -#ff79c6 T 3179 2016.95 -1 70 33 -\"#/main.js\" }】 } const runner F 4.75 5 -Agave \
c 7 -#ff79c6 T 3179 2012.2 -1 86 38 -= compile(md, { remark }) const doc = F 4.75 5 -Agave c 7 -#ff79c6 T 3179 2007.45 -1 86 38 \
-runner({ search }, { evalFn: evalBody F 4.75 5 -Agave c 7 -#ff79c6 T 3179 2002.7 -1 7 4 -}) F 4.75 5 -Agave c 7 -#44475a T 3179 \
1997.95 -1 19 8 -The same F 4.75 5 -Agave c 7 -#ff79c6 T 3198 1997.95 -1 19 10 - search F 4.75 5 -Agave c 7 -#44475a T 3217 1997.95 \
-1 91 40 -adapter is called with the label as its F 4.75 5 -Agave c 7 -#44475a T 3179 1993.2 -1 88 41 -argument — no need to \
hardcode adapter F 4.75 5 -Agave c 7 -#44475a T 3219.5 1988.45 -1 48 21 -names per extruction. ",
fontsize=4.75,
height=1.6111,
href="#Usage___Adapter_with___mdt_label_",
label=<Usage — Adapter with The _mdt_label binding lets one adapter serve multiple extruction variants: const md = `# ${search mdd} \`\`\`javascript const items = await search(_mdt_label) return insert( items.map(i => "- " + i.uri). join("\\n")) \`\`\` # ${search js} \`\`\`javascript const items = await search(_mdt_label) return insert( items.map(i => "- " + i.name). join("\\n")) \`\`\` ` const search = async (q) => { if (q === "search mdd") return 【{ name: "readme", uri: "#/readme" }】 return 【{ name: "main.js", uri: "#/main.js" }】 } const runner = compile(md, { remark }) const doc = runner({ search }, { evalFn: evalBody }) The same search adapter is called with the label as its argument — no need to hardcode adapter names per extruction. |
>,
pos="3243,2043.5",
shape=plain,
width=1.8194];
Runner -> Usage___Adapter_with___mdt_label_ [_draw_="S 17 -setlinewidth(0.8) S 6 -dashed c 7 -#282a36 B 4 2925 2086 3021.2 2073.2 3108.3 2061.7 3166.7 2053.9 ",
_hdraw_="S 17 -setlinewidth(0.8) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 9 3176.9 2052.6 3167.55 2058.33 3171.94 2053.23 3166.98 2053.86 3166.98 \
2053.86 3166.98 2053.86 3171.94 2053.23 3166.41 2049.4 3176.9 2052.6 ",
arrowhead=open,
arrowsize=1.0,
href="#Runner👉 Usage___Adapter_with___mdt_label_",
pos="e,3176.9,2052.6 2925,2086 3021.2,2073.2 3108.3,2061.7 3166.7,2053.9",
reverse=false,
style=dashed,
tooltip="-> isAnInputTo",
type=isAnInputTo];
Usage___State_across_extructions [_ldraw_="F 4.75 5 -Agave c 7 -#44475a t 1 T 3056 1962.7 -1 73 34 -Usage — State across extructions F 4.75 5 -Agave c 7 -#44475a t 0 T 3056 \
1957.95 -1 73 32 -The runner automatically injects F 4.75 5 -Agave c 7 -#ff79c6 T 3129 1957.95 -1 23 12 - mdtState F 4.75 5 -Agave \
c 7 -#44475a T 3152 1957.95 -1 86 40 -— a plain object that persists across F 4.75 5 -Agave c 7 -#44475a T 3056 1953.2 -1 88 \
39 -extruction evaluations within the same F 4.75 5 -Agave c 7 -#44475a T 3056 1948.45 -1 21 9 -document: F 4.75 5 -Agave c 7 -#\
ff79c6 T 3056 1943.7 -1 55 25 - const md = `# ${init} F 4.75 5 -Agave c 7 -#ff79c6 T 3056 1938.95 -1 86 38 -\`\`\`javascript \
mdtState.counter = 0 F 4.75 5 -Agave c 7 -#ff79c6 T 3056 1934.2 -1 55 25 -mdtState.items = 【\"a\", F 4.75 5 -Agave c 7 -#ff79c6 \
T 3056 1929.45 -1 46 22 -\"b\", \"c\"】 \`\`\` # F 4.75 5 -Agave c 7 -#ff79c6 T 3056 1924.7 -1 61 27 -${first} \`\`\`javascript \
F 4.75 5 -Agave c 7 -#ff79c6 T 3056 1919.95 -1 93 41 -mdtState.counter++ return insert( \`Item F 4.75 5 -Agave c 7 -#ff79c6 T 3056 \
1915.2 -1 50 22 -\${mdtState.counter}: F 4.75 5 -Agave c 7 -#ff79c6 T 3056 1910.45 -1 86 40 -\${mdtState.items【0】}\` ) \`\`\` # \
F 4.75 5 -Agave c 7 -#ff79c6 T 3056 1905.7 -1 64 28 -${second} \`\`\`javascript F 4.75 5 -Agave c 7 -#ff79c6 T 3056 1900.95 -1 \
93 41 -mdtState.counter++ return insert( \`Item F 4.75 5 -Agave c 7 -#ff79c6 T 3056 1896.2 -1 50 22 -\${mdtState.counter}: F 4.75 \
5 -Agave c 7 -#ff79c6 T 3056 1891.45 -1 88 41 -\${mdtState.items【1】}\` ) \`\`\` `; F 4.75 5 -Agave c 7 -#ff79c6 T 3056 1886.7 \
-1 91 40 -const runner = compile(md, { remark }); F 4.75 5 -Agave c 7 -#ff79c6 T 3056 1881.95 -1 75 33 -const doc = runner({}, { \
evalFn: F 4.75 5 -Agave c 7 -#ff79c6 T 3056 1877.2 -1 88 39 -evalBody }); for await (const section F 4.75 5 -Agave c 7 -#ff79c6 \
T 3056 1872.45 -1 28 12 -of doc) { F 4.75 5 -Agave c 7 -#ff79c6 T 3056 1867.7 -1 86 38 -console.log(section.toString()); // \
F 4.75 5 -Agave c 7 -#ff79c6 T 3056 1862.95 -1 64 30 -\"${init}\" → transparent (no F 4.75 5 -Agave c 7 -#ff79c6 T 3056 1858.2 \
-1 70 31 -return/insert) // \"${first}\" F 4.75 5 -Agave c 7 -#ff79c6 T 3056 1853.45 -1 43 21 -→ \"Item 1: a\" // F 4.75 5 -Agave \
c 7 -#ff79c6 T 3056 1848.7 -1 52 25 -\"${second}\" → \"Item 2: F 4.75 5 -Agave c 7 -#ff79c6 T 3056 1843.95 -1 12 6 -b\" } F 4.75 \
5 -Agave c 7 -#ff79c6 T 3056 1839.2 -1 23 12 - mdtState F 4.75 5 -Agave c 7 -#44475a T 3079 1839.2 -1 21 9 -is just a F 4.75 \
5 -Agave c 7 -#ff79c6 T 3100 1839.2 -1 10 6 - {} F 4.75 5 -Agave c 7 -#44475a T 3110 1839.2 -1 93 43 -— the extruction body \
sets properties on F 4.75 5 -Agave c 7 -#44475a T 3056 1834.45 -1 93 41 -it, and subsequent evaluations read them F 4.75 5 -Agave \
c 7 -#44475a T 3056 1829.7 -1 86 38 -back. It's automatically available in F 4.75 5 -Agave c 7 -#44475a T 3056 1824.95 -1 82 36 \
-every extruction body without being F 4.75 5 -Agave c 7 -#44475a T 3056 1820.2 -1 118 52 -added to the runner context.Callers \
can pre-populate F 4.75 5 -Agave c 7 -#ff79c6 T 3174 1820.2 -1 23 12 - mdtState F 4.75 5 -Agave c 7 -#44475a T 3197 1820.2 -1 \
66 29 -by passing it in the context: F 4.75 5 -Agave c 7 -#ff79c6 T 3056 1815.45 -1 79 36 - const doc = runner( { mdtState: \
F 4.75 5 -Agave c 7 -#ff79c6 T 3056 1810.7 -1 61 27 -{ repo: \"my-repo\", branch: F 4.75 5 -Agave c 7 -#ff79c6 T 3056 1805.95 -1 \
55 24 -\"main\" } }, { evalFn: F 4.75 5 -Agave c 7 -#ff79c6 T 3056 1801.2 -1 34 16 -evalBody }, ); F 4.75 5 -Agave c 7 -#ff79c6 \
T 3056 1791.7 -1 73 33 - ## ${header} \`\`\`javascript F 4.75 5 -Agave c 7 -#ff79c6 T 3056 1786.95 -1 52 23 -return insert( \`\
Repo: F 4.75 5 -Agave c 7 -#ff79c6 T 3056 1782.2 -1 61 27 -\${mdtState.repo}, branch: F 4.75 5 -Agave c 7 -#ff79c6 T 3056 1777.45 \
-1 70 32 -\${mdtState.branch}\` ) \`\`\` F 4.75 5 -Agave c 7 -#44475a T 3056 1772.7 -1 84 37 -This is useful when extructions \
need F 4.75 5 -Agave c 7 -#44475a T 3056 1767.95 -1 88 39 -shared initialization or cross-section F 4.75 5 -Agave c 7 -#44475a \
T 3056 1763.2 -1 79 35 -communication without resorting to F 4.75 5 -Agave c 7 -#44475a T 3056 1758.45 -1 41 18 -global variables. \
F 4.75 5 -Agave c 7 -#44475a t 4 T 3097 1758.45 -1 34 15 -Why this works: F 4.75 5 -Agave c 7 -#44475a t 0 T 3131 1758.45 -1 3 1 \
- F 4.75 5 -Agave c 7 -#ff79c6 T 3134 1758.45 -1 23 12 - mdtState F 4.75 5 -Agave c 7 -#44475a T 3157 1758.45 -1 64 28 -is a \
single object stored on F 4.75 5 -Agave c 7 -#ff79c6 T 3221 1758.45 -1 34 17 - runnerContext F 4.75 5 -Agave c 7 -#44475a T 3255 \
1758.45 -1 55 24 -. Each eval call spreads F 4.75 5 -Agave c 7 -#ff79c6 T 3310 1758.45 -1 34 17 - runnerContext F 4.75 5 -Agave \
c 7 -#44475a T 3344 1758.45 -1 86 38 -into the function parameters, but the F 4.75 5 -Agave c 7 -#44475a T 3056 1753.7 -1 77 36 \
-spread copies the reference — all F 4.75 5 -Agave c 7 -#44475a T 3056 1748.95 -1 59 26 -evaluations share the same F 4.75 5 \
-Agave c 7 -#ff79c6 T 3115 1748.95 -1 23 12 - mdtState F 4.75 5 -Agave c 7 -#44475a T 3138 1748.95 -1 61 27 -object. Property \
mutations F 4.75 5 -Agave c 7 -#44475a T 3139.5 1744.2 -1 84 37 -(set/add/delete) persist; reassigning F 4.75 5 -Agave c 7 -#ff79c6 \
T 3223.5 1744.2 -1 37 18 - mdtState = ... F 4.75 5 -Agave c 7 -#44475a T 3260.5 1744.2 -1 86 38 -would only affect the local \
parameter. ",
fontsize=4.75,
height=3.125,
href="#Usage___State_across_extructions",
label=<Usage — State across extructions The runner automatically injects mdtState — a plain object that persists across extruction evaluations within the same document: const md = `# ${init} \`\`\`javascript mdtState.counter = 0 mdtState.items = 【"a", "b", "c"】 \`\`\` # ${first} \`\`\`javascript mdtState.counter++ return insert( \`Item \${mdtState.counter}: \${mdtState.items【0】}\` ) \`\`\` # ${second} \`\`\`javascript mdtState.counter++ return insert( \`Item \${mdtState.counter}: \${mdtState.items【1】}\` ) \`\`\` `; const runner = compile(md, { remark }); const doc = runner({}, { evalFn: evalBody }); for await (const section of doc) { console.log(section.toString()); // "${init}" → transparent (no return/insert) // "${first}" → "Item 1: a" // "${second}" → "Item 2: b" } mdtState is just a {} — the extruction body sets properties on it, and subsequent evaluations read them back. It's automatically available in every extruction body without being added to the runner context.Callers can pre-populate mdtState by passing it in the context: const doc = runner( { mdtState: { repo: "my-repo", branch: "main" } }, { evalFn: evalBody }, );
## ${header} \`\`\`javascript return insert( \`Repo: \${mdtState.repo}, branch: \${mdtState.branch}\` ) \`\`\` This is useful when extructions need shared initialization or cross-section communication without resorting to global variables. Why this works: mdtState is a single object stored on runnerContext . Each eval call spreads runnerContext into the function parameters, but the spread copies the reference — all evaluations share the same mdtState object. Property mutations (set/add/delete) persist; reassigning mdtState = ... would only affect the local parameter. |
>,
pos="3243,1854.5",
shape=plain,
width=5.2222];
Runner -> Usage___State_across_extructions [_draw_="S 17 -setlinewidth(0.8) S 6 -dashed c 7 -#282a36 B 10 2910 2034.5 2915.1 2031.4 2920.1 2028.2 2925 2025 2947.3 2010.4 2940.1 1993.5 \
2961 1977 2986.3 1957 3015.4 1939.6 3045 1924.8 ",
_hdraw_="S 17 -setlinewidth(0.8) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 9 3054.2 1920.2 3047.27 1928.7 3049.73 1922.44 3045.26 1924.67 3045.26 \
1924.67 3045.26 1924.67 3049.73 1922.44 3043.24 1920.65 3054.2 1920.2 ",
arrowhead=open,
arrowsize=1.0,
href="#Runner👉 Usage___State_across_extructions",
pos="e,3054.2,1920.2 2910,2034.5 2915.1,2031.4 2920.1,2028.2 2925,2025 2947.3,2010.4 2940.1,1993.5 2961,1977 2986.3,1957 3015.4,1939.6 \
3045,1924.8",
reverse=false,
style=dashed,
tooltip="-> isAnInputTo",
type=isAnInputTo];
Phases [_ldraw_="F 4.75 5 -Agave c 7 -#44475a t 1 T 3152 1719.7 -1 14 6 -Phases F 4.75 5 -Agave c 7 -#44475a t 0 T 3152 1714.95 -1 91 40 -The runner \
materializes the document in F 4.75 5 -Agave c 7 -#44475a T 3189.5 1710.2 -1 16 7 -phases: S 5 -solid c 7 -#282a36 p 4 3154 1693.5 \
3154 1704.5 3172 1704.5 3172 1693.5 F 4.75 5 -Agave c 7 -#44475a T 3157 1697.7 -1 12 5 -Phase S 5 -solid c 7 -#282a36 p 4 3174 1693.5 \
3174 1704.5 3236 1704.5 3236 1693.5 F 4.75 5 -Agave c 7 -#44475a T 3189 1697.7 -1 32 14 -What's yielded S 5 -solid c 7 -#282a36 \
p 4 3238 1693.5 3238 1704.5 3332 1704.5 3332 1693.5 F 4.75 5 -Agave c 7 -#44475a T 3274.5 1697.7 -1 21 9 -Work done S 5 -solid c \
7 -#282a36 p 4 3154 1675.5 3154 1691.5 3172 1691.5 3172 1675.5 F 4.75 5 -Agave c 7 -#44475a T 3161.5 1682.2 -1 3 1 -1 S 5 -solid \
c 7 -#282a36 p 4 3174 1675.5 3174 1691.5 3236 1691.5 3236 1675.5 F 4.75 5 -Agave c 7 -#44475a T 3177 1683.2 -1 46 20 -Root headings (\
level F 4.75 5 -Agave c 7 -#ff79c6 T 3223 1683.2 -1 7 5 - # F 4.75 5 -Agave c 7 -#44475a T 3230 1683.2 -1 3 1 -) S 5 -solid c \
7 -#282a36 p 4 3238 1675.5 3238 1691.5 3332 1691.5 3332 1675.5 F 4.75 5 -Agave c 7 -#44475a T 3251 1684.7 -1 68 30 -Walk top-level \
children, skip F 4.75 5 -Agave c 7 -#44475a T 3272.5 1679.7 -1 25 11 -extructions S 5 -solid c 7 -#282a36 p 4 3154 1657.5 3154 \
1673.5 3172 1673.5 3172 1657.5 F 4.75 5 -Agave c 7 -#44475a T 3160.5 1664.2 -1 5 2 -2+ S 5 -solid c 7 -#282a36 p 4 3174 1657.5 3174 \
1673.5 3236 1673.5 3236 1657.5 F 4.75 5 -Agave c 7 -#44475a T 3181 1664.2 -1 48 21 -Children of a section S 5 -solid c 7 -#282a36 \
p 4 3238 1657.5 3238 1673.5 3332 1673.5 3332 1657.5 F 4.75 5 -Agave c 7 -#44475a T 3241 1666.7 -1 88 39 -Walk child headings, skip \
extructions, F 4.75 5 -Agave c 7 -#44475a T 3268 1661.7 -1 34 15 -yield Fragments F 4.75 5 -Agave c 7 -#44475a T 3152 1649.7 -1 \
82 36 -No phase happens until the consumer F 4.75 5 -Agave c 7 -#44475a T 3186 1644.7 -1 14 6 -pulls. ",
fontsize=4.75,
height=1.125,
href="#Phases",
label=<Phases The runner materializes the document in phases: |
| Phase | What's yielded | Work done | | 1 | Root headings (level # ) | Walk top-level children, skip extructions | | 2+ | Children of a section | Walk child headings, skip extructions, yield Fragments |
|
No phase happens until the consumer pulls. |
>,
pos="3243,1683.5",
shape=plain,
width=2.5556];
Runner -> Phases [_draw_="S 17 -setlinewidth(0.8) S 6 -dashed c 7 -#282a36 B 10 2916.2 2034.5 2919.2 2031.4 2922.1 2028.2 2925 2025 3012 1928 2871.3 1828.6 \
2961 1734 3006 1686.5 3079.5 1674.7 3139.9 1674.5 ",
_hdraw_="S 17 -setlinewidth(0.8) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 9 3150.3 1674.5 3140.3 1679 3145.3 1674.5 3140.3 1674.5 3140.3 1674.5 \
3140.3 1674.5 3145.3 1674.5 3140.3 1670 3150.3 1674.5 ",
arrowhead=open,
arrowsize=1.0,
href="#Runner👉 Phases",
pos="e,3150.3,1674.5 2916.2,2034.5 2919.2,2031.4 2922.1,2028.2 2925,2025 3012,1928 2871.3,1828.6 2961,1734 3006,1686.5 3079.5,1674.7 \
3139.9,1674.5",
reverse=false,
style=dashed,
tooltip="-> isAnInputTo",
type=isAnInputTo];
expand___traversal [_ldraw_="F 4.75 5 -Agave c 7 -#44475a t 1 T 3115 1621.7 -1 37 16 -expand traversal F 4.75 5 -Agave c 7 -#ff79c6 t 0 T 3115 1616.95 -1 23 \
12 - expand() F 4.75 5 -Agave c 7 -#44475a T 3138 1616.95 -1 79 35 -walks the remark AST child heading F 4.75 5 -Agave c 7 -#\
44475a T 3159 1612.2 -1 14 6 -nodes: F 4.75 5 -Agave c 7 -#44475a T 3115 1604.7 -1 82 39 -• Walk child nodes left-to-right in \
F 4.75 5 -Agave c 7 -#44475a T 3139 1599.7 -1 34 15 -document order. F 4.75 5 -Agave c 7 -#44475a T 3115 1595.7 -1 75 36 -• When \
hitting a heading that is F 4.75 5 -Agave c 7 -#44475a t 4 T 3190 1595.7 -1 7 3 -not F 4.75 5 -Agave c 7 -#44475a t 0 T 3197 1595.7 \
-1 68 32 - an extruction → yield a child F 4.75 5 -Agave c 7 -#ff79c6 T 3265 1595.7 -1 23 12 - Fragment F 4.75 5 -Agave c 7 \
-#44475a T 3288 1595.7 -1 84 37 -. Its body is the run of non-heading F 4.75 5 -Agave c 7 -#44475a T 3115 1590.95 -1 93 41 -nodes \
up to the next heading at the same F 4.75 5 -Agave c 7 -#44475a T 3236.5 1586.2 -1 14 6 -level. F 4.75 5 -Agave c 7 -#44475a T \
3115 1581.7 -1 41 21 -• When hitting an F 4.75 5 -Agave c 7 -#44475a t 4 T 3156 1581.7 -1 23 10 -extruction F 4.75 5 -Agave \
c 7 -#44475a t 0 T 3179 1581.7 -1 79 37 - heading → skip (inert, no output). F 4.75 5 -Agave c 7 -#44475a T 3115 1576.7 -1 7 6 \
-• F 4.75 5 -Agave c 7 -#44475a t 4 T 3122 1576.7 -1 25 11 -Other nodes F 4.75 5 -Agave c 7 -#44475a t 0 T 3147 1576.7 -1 91 \
42 - (paragraphs, lists, etc.) → accumulate F 4.75 5 -Agave c 7 -#44475a T 3139 1571.95 -1 75 33 -into the current fragment's \
body. F 4.75 5 -Agave c 7 -#44475a T 3115 1565.7 -1 3 1 - F 4.75 5 -Agave c 7 -#44475a t 4 T 3118 1565.7 -1 43 19 -Body boundary \
rule: F 4.75 5 -Agave c 7 -#44475a t 0 T 3161 1565.7 -1 91 40 - content before the first child heading F 4.75 5 -Agave c 7 -#44475a \
T 3115 1560.95 -1 52 23 -belongs to the parent's F 4.75 5 -Agave c 7 -#ff79c6 T 3167 1560.95 -1 14 8 - body F 4.75 5 -Agave c \
7 -#44475a T 3181 1560.95 -1 70 31 -; content between child heading F 4.75 5 -Agave c 7 -#44475a t 2 T 3251 1560.95 -1 3 1 -N F \
4.75 5 -Agave c 7 -#44475a t 0 T 3254 1560.95 -1 84 37 -and the next heading belongs to child F 4.75 5 -Agave c 7 -#44475a t 2 T \
3338 1560.95 -1 3 1 -N F 4.75 5 -Agave c 7 -#44475a t 0 T 3341 1560.95 -1 5 2 -'s F 4.75 5 -Agave c 7 -#ff79c6 T 3346 1560.95 -1 \
14 8 - body F 4.75 5 -Agave c 7 -#44475a T 3360 1560.95 -1 3 1 -. ",
fontsize=4.75,
height=0.93056,
href="#expand___traversal",
label=<expand traversal expand() walks the remark AST child heading nodes: |
• Walk child nodes left-to-right in document order. | • When hitting a heading that is not an extruction → yield a child Fragment . Its body is the run of non-heading nodes up to the next heading at the same level. | | • When hitting an extruction heading → skip (inert, no output). | • Other nodes (paragraphs, lists, etc.) → accumulate into the current fragment's body. |
|
Body boundary rule: content before the first child heading belongs to the parent's body ; content between child headingNand the next heading belongs to childN's body . |
>,
pos="3243,1592.5",
shape=plain,
width=3.5972];
Fragment -> expand___traversal [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 82 2599.6 1716.8 2616.4 1712.67 2633.48 1708.5 2650.82 1704.3 2668.38 \
1700.08 2686.15 1695.84 2704.09 1691.6 2722.2 1687.36 2740.44 1683.12 2758.79 1678.9 2777.23 1674.7 2795.73 1670.54 2814.27 1666.41 \
2832.82 1662.33 2851.37 1658.3 2869.88 1654.33 2888.34 1650.43 2906.72 1646.61 2924.99 1642.88 2943.14 1639.24 2961.14 1635.69 2968.58 \
1634.26 2976.1 1632.84 2983.68 1631.44 2991.32 1630.05 2998.99 1628.67 3006.7 1627.32 3014.44 1625.98 3022.19 1624.66 3029.95 1623.35 \
3037.7 1622.07 3045.45 1620.8 3053.17 1619.56 3060.87 1618.33 3068.52 1617.13 3076.13 1615.95 3083.68 1614.79 3091.17 1613.65 3098.58 \
1612.54 3105.91 1611.45 3113.15 1610.39 3112.85 1608.41 3105.62 1609.5 3098.29 1610.62 3090.88 1611.76 3083.4 1612.93 3075.85 1614.11 \
3068.24 1615.32 3060.58 1616.56 3052.89 1617.81 3045.17 1619.09 3037.42 1620.38 3029.67 1621.7 3021.91 1623.03 3014.16 1624.38 3006.43 \
1625.75 2998.72 1627.14 2991.04 1628.54 2983.41 1629.96 2975.83 1631.4 2968.31 1632.84 2960.86 1634.31 2942.87 1637.92 2924.74 1641.63 \
2906.47 1645.44 2888.1 1649.33 2869.66 1653.3 2851.16 1657.33 2832.62 1661.43 2814.08 1665.59 2795.56 1669.79 2777.07 1674.02 2758.65 \
1678.29 2740.31 1682.58 2722.09 1686.89 2704 1691.2 2686.07 1695.51 2668.32 1699.82 2650.77 1704.11 2633.45 1708.37 2616.39 1712.61 \
2599.6 1716.8 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 2599.55 1716.81 2594.69 1722.14 2587.9 1719.7 2592.76 1714.37 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Fragment👉 expand___traversal",
penwidth=2,
pos="s,2587.9,1719.7 2599.6,1716.8 2710.6,1689.2 2841.6,1658.5 2961,1635 3010.4,1625.3 3065.1,1616.5 3113,1609.4",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
Lazy_guarantees [_ldraw_="F 4.75 5 -Agave c 7 -#44475a t 1 T 3197 1536.7 -1 34 15 -Lazy guarantees F 4.75 5 -Agave c 7 -#44475a t 0 T 3197 1529.7 -1 5 5 -• \
F 4.75 5 -Agave c 7 -#ff79c6 T 3202 1529.7 -1 23 12 - expand() F 4.75 5 -Agave c 7 -#44475a T 3225 1529.7 -1 61 27 -does nothing \
until iterated F 4.75 5 -Agave c 7 -#44475a T 3197 1523.7 -1 93 44 -• Iterating past the first few fragments F 4.75 5 -Agave \
c 7 -#44475a T 3208.5 1518.7 -1 70 31 -doesn't process later fragments ",
fontsize=4.75,
height=0.33333,
href="#Lazy_guarantees",
label=<Lazy guarantees
|
| • expand() does nothing until iterated | • Iterating past the first few fragments doesn't process later fragments |
|
>,
pos="3243,1528.5",
shape=plain,
width=1.3194];
Fragment -> Lazy_guarantees [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 82 2599 1667.6 2615.62 1660.98 2632.52 1654.36 2649.68 1647.73 \
2667.09 1641.12 2684.72 1634.54 2702.55 1628.02 2720.56 1621.55 2738.73 1615.17 2757.03 1608.89 2775.45 1602.71 2793.95 1596.67 \
2812.53 1590.77 2831.16 1585.02 2849.82 1579.46 2868.48 1574.08 2887.13 1568.91 2905.74 1563.96 2924.29 1559.25 2942.76 1554.79 \
2961.13 1550.6 2973.36 1548.03 2985.78 1545.66 2998.36 1543.49 3011.05 1541.51 3023.81 1539.71 3036.6 1538.08 3049.37 1536.61 3062.09 \
1535.3 3074.7 1534.13 3087.18 1533.11 3099.47 1532.22 3111.53 1531.44 3123.32 1530.79 3134.79 1530.24 3145.92 1529.78 3156.64 1529.42 \
3166.92 1529.14 3176.73 1528.93 3186 1528.79 3194.71 1528.7 3194.69 1526.7 3185.97 1526.82 3176.69 1526.99 3166.87 1527.23 3156.58 \
1527.55 3145.84 1527.94 3134.71 1528.43 3123.22 1529.02 3111.42 1529.72 3099.35 1530.53 3087.05 1531.46 3074.56 1532.53 3061.93 \
1533.74 3049.21 1535.09 3036.42 1536.6 3023.62 1538.28 3010.84 1540.12 2998.14 1542.15 2985.54 1544.37 2973.11 1546.78 2960.87 1549.4 \
2942.49 1553.65 2924.02 1558.17 2905.47 1562.94 2886.87 1567.95 2868.23 1573.19 2849.57 1578.63 2830.93 1584.26 2812.31 1590.06 \
2793.75 1596.03 2775.25 1602.14 2756.85 1608.37 2738.57 1614.72 2720.42 1621.16 2702.43 1627.68 2684.62 1634.26 2667.01 1640.9 2649.62 \
1647.56 2632.48 1654.25 2615.59 1660.93 2599 1667.6 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 2598.81 1667.68 2594.77 1673.64 2587.7 1672.2 2591.75 1666.23 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Fragment👉 Lazy_guarantees",
penwidth=2,
pos="s,2587.7,1672.2 2599,1667.6 2708.7,1623.4 2838.9,1577.2 2961,1550 3041.8,1532 3138.6,1528.2 3194.7,1527.7",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
Transparency_semantics [_ldraw_="F 4.75 5 -Agave c 7 -#44475a t 1 T 3116 1457.7 -1 50 22 -Transparency semantics F 4.75 5 -Agave c 7 -#44475a t 0 T 3116 1452.95 \
-1 37 16 -Extructions are F 4.75 5 -Agave c 7 -#44475a t 4 T 3153 1452.95 -1 39 17 -fully transparent F 4.75 5 -Agave c 7 -#44475a \
t 0 T 3192 1452.95 -1 93 43 - — they produce no output and their body F 4.75 5 -Agave c 7 -#44475a T 3116 1448.2 -1 75 33 -content \
is silently dropped, but F 4.75 5 -Agave c 7 -#44475a T 3116 1443.45 -1 91 40 -non-extruction headings nested under an F 4.75 \
5 -Agave c 7 -#44475a T 3116 1438.7 -1 34 15 -extruction are F 4.75 5 -Agave c 7 -#44475a t 4 T 3150 1438.7 -1 19 8 -promoted F \
4.75 5 -Agave c 7 -#44475a t 0 T 3169 1438.7 -1 93 41 - to the nearest non-extruction ancestor's F 4.75 5 -Agave c 7 -#ff79c6 T \
3262 1438.7 -1 23 12 - expand() F 4.75 5 -Agave c 7 -#44475a T 3285 1438.7 -1 86 38 -output. Their trail is computed as if F \
4.75 5 -Agave c 7 -#44475a T 3116 1433.95 -1 100 44 -the extruction doesn't exist.Implementation: F 4.75 5 -Agave c 7 -#ff79c6 T \
3216 1433.95 -1 68 31 - skipExtructionBody(startIdx, F 4.75 5 -Agave c 7 -#ff79c6 T 3116 1429.2 -1 32 15 -rootChildren) F 4.75 \
5 -Agave c 7 -#44475a T 3148 1429.2 -1 68 30 -advances past an extruction's F 4.75 5 -Agave c 7 -#44475a T 3116 1424.45 -1 84 37 \
-non-heading content but stops at any F 4.75 5 -Agave c 7 -#44475a T 3116 1419.7 -1 91 40 -heading (a promoted child), rather than \
F 4.75 5 -Agave c 7 -#44475a T 3116 1414.95 -1 84 37 -skipping the entire subtree. This is F 4.75 5 -Agave c 7 -#44475a T 3135.5 \
1410.2 -1 16 7 -used by F 4.75 5 -Agave c 7 -#ff79c6 T 3151.5 1410.2 -1 37 18 - expandChildren F 4.75 5 -Agave c 7 -#44475a T \
3188.5 1410.2 -1 3 1 -, F 4.75 5 -Agave c 7 -#ff79c6 T 3191.5 1410.2 -1 41 20 - collectBodyNodes F 4.75 5 -Agave c 7 -#44475a \
T 3232.5 1410.2 -1 12 5 -, and F 4.75 5 -Agave c 7 -#ff79c6 T 3244.5 1410.2 -1 52 25 - hasNonExtructionChild F 4.75 5 -Agave \
c 7 -#44475a T 3296.5 1410.2 -1 55 24 -to maintain consistency. ",
fontsize=4.75,
height=0.75,
href="#Transparency_semantics",
label=<Transparency semantics Extructions are fully transparent — they produce no output and their body content is silently dropped, but non-extruction headings nested under an extruction are promoted to the nearest non-extruction ancestor's expand() output. Their trail is computed as if the extruction doesn't exist.Implementation: skipExtructionBody(startIdx, rootChildren) advances past an extruction's non-heading content but stops at any heading (a promoted child), rather than skipping the entire subtree. This is used by expandChildren , collectBodyNodes , and hasNonExtructionChild to maintain consistency. |
>,
pos="3243,1434.5",
shape=plain,
width=3.5694];
Extruction -> Transparency_semantics [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 42 2547.8 1435 2574.57 1435.05 2602.25 1435.1 2630.71 1435.15 2659.83 \
1435.2 2689.48 1435.25 2719.54 1435.3 2749.88 1435.36 2780.39 1435.41 2810.93 1435.46 2841.39 1435.52 2871.63 1435.57 2901.54 1435.62 \
2930.99 1435.68 2959.86 1435.73 2988.03 1435.78 3015.36 1435.83 3041.74 1435.87 3067.03 1435.92 3091.13 1435.96 3113.9 1436 3113.9 \
1434 3091.13 1434.04 3067.03 1434.08 3041.74 1434.13 3015.36 1434.17 2988.03 1434.22 2959.86 1434.27 2930.99 1434.32 2901.54 1434.38 \
2871.63 1434.43 2841.39 1434.48 2810.93 1434.54 2780.39 1434.59 2749.88 1434.64 2719.54 1434.7 2689.48 1434.75 2659.83 1434.8 2630.71 \
1434.85 2602.25 1434.9 2574.57 1434.95 2547.8 1435 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 2547.6 1435 2541.6 1439 2535.6 1435 2541.6 1431 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Extruction👉 Transparency_semantics",
penwidth=2,
pos="s,2535.6,1435 2547.8,1435 2723,1435 2966.8,1435 3113.9,1435",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
X__What_is__context__for_ [_ldraw_="F 4.75 5 -Agave c 7 -#44475a t 1 T 3027 1327.7 -1 23 10 -1. What is F 4.75 5 -Agave c 7 -#44475a t 0 T 3027 1322.95 -1 3 1 - F \
4.75 5 -Agave c 7 -#44475a t 4 T 3030 1322.95 -1 21 9 -Resolved: F 4.75 5 -Agave c 7 -#44475a t 0 T 3051 1322.95 -1 3 1 - F 4.75 \
5 -Agave c 7 -#ff79c6 T 3054 1322.95 -1 21 11 - context F 4.75 5 -Agave c 7 -#44475a T 3075 1322.95 -1 7 3 -is F 4.75 5 -Agave \
c 7 -#44475a t 4 T 3082 1322.95 -1 12 5 -state F 4.75 5 -Agave c 7 -#44475a t 0 T 3094 1322.95 -1 86 40 - — a bag of global variables \
that the F 4.75 5 -Agave c 7 -#44475a T 3027 1318.2 -1 64 28 -document can reference. With F 4.75 5 -Agave c 7 -#ff79c6 T 3091 \
1318.2 -1 19 10 - evalFn F 4.75 5 -Agave c 7 -#44475a T 3110 1318.2 -1 88 39 -, extruction bodies can access context F 4.75 \
5 -Agave c 7 -#44475a T 3027 1313.45 -1 75 33 -keys as named parameters. Without F 4.75 5 -Agave c 7 -#ff79c6 T 3102 1313.45 -1 \
19 10 - evalFn F 4.75 5 -Agave c 7 -#44475a T 3121 1313.45 -1 3 1 -, F 4.75 5 -Agave c 7 -#ff79c6 T 3124 1313.45 -1 21 11 - context \
F 4.75 5 -Agave c 7 -#44475a T 3145 1313.45 -1 111 49 -is accepted but unused.The runner signature stays F 4.75 5 -Agave c 7 -#ff79c6 \
T 3256 1313.45 -1 55 26 - runner(context, opts?) F 4.75 5 -Agave c 7 -#44475a T 3311 1313.45 -1 66 29 -. With no active extructions, \
F 4.75 5 -Agave c 7 -#ff79c6 T 3377 1313.45 -1 21 11 - context F 4.75 5 -Agave c 7 -#44475a T 3398 1313.45 -1 61 29 -is accepted \
but unused — a F 4.75 5 -Agave c 7 -#44475a T 3213.5 1308.7 -1 59 26 -forward-looking parameter. ",
fontsize=4.75,
height=0.34722,
href="#1__What_is__context__for_",
label=<1. What is Resolved: context is state — a bag of global variables that the document can reference. With evalFn , extruction bodies can access context keys as named parameters. Without evalFn , context is accepted but unused.The runner signature stays runner(context, opts?) . With no active extructions, context is accepted but unused — a forward-looking parameter. |
>,
pos="3243,1319.5",
shape=plain,
width=6.0278];
Open_Questions -> X__What_is__context__for_ [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 122 2381.9 1056 2403.12 1055.18 2427.56 1054.3 2454.77 1053.4 2484.34 \
1052.53 2515.83 1051.71 2548.8 1051 2582.83 1050.44 2617.48 1050.05 2652.33 1049.89 2686.94 1050 2720.87 1050.41 2753.7 1051.16 \
2785 1052.3 2814.34 1053.87 2841.27 1055.91 2865.37 1058.45 2886.2 1061.54 2903.32 1065.22 2916.29 1069.5 2924.67 1074.42 2934.59 \
1084.48 2941.97 1094.85 2947.07 1105.49 2950.19 1116.36 2951.61 1127.46 2951.6 1138.75 2950.46 1150.2 2948.45 1161.77 2945.86 1173.44 \
2942.97 1185.17 2940.07 1196.93 2937.43 1208.68 2935.35 1220.4 2934.11 1232.05 2934 1243.6 2935.31 1255.02 2938.33 1266.27 2943.34 \
1277.31 2950.63 1288.09 2960.48 1298.56 2970.27 1306.76 2980.67 1313.98 2991.6 1320.25 3003 1325.64 3014.8 1330.18 3026.93 1333.95 \
3039.33 1336.97 3051.91 1339.31 3064.63 1341.02 3077.4 1342.15 3090.17 1342.74 3102.86 1342.85 3115.41 1342.53 3127.75 1341.84 3139.81 \
1340.81 3151.53 1339.5 3162.84 1337.96 3173.66 1336.25 3183.94 1334.4 3193.6 1332.48 3193.2 1330.52 3183.57 1332.46 3173.33 1334.31 \
3162.55 1336.04 3151.29 1337.6 3139.63 1338.92 3127.62 1339.97 3115.33 1340.69 3102.85 1341.03 3090.22 1340.94 3077.52 1340.38 3064.82 \
1339.28 3052.19 1337.61 3039.68 1335.31 3027.38 1332.33 3015.34 1328.62 3003.64 1324.14 2992.34 1318.83 2981.51 1312.64 2971.21 \
1305.53 2961.52 1297.44 2951.81 1287.15 2944.63 1276.59 2939.7 1265.78 2936.72 1254.75 2935.41 1243.53 2935.5 1232.13 2936.7 1220.59 \
2938.75 1208.94 2941.35 1197.23 2944.23 1185.48 2947.1 1173.73 2949.67 1162.01 2951.67 1150.36 2952.81 1138.81 2952.79 1127.38 2951.32 \
1116.13 2948.13 1105.08 2942.93 1094.28 2935.42 1083.78 2925.33 1073.58 2916.72 1068.55 2903.59 1064.24 2886.37 1060.58 2865.49 \
1057.52 2841.35 1055.02 2814.39 1053.04 2785.04 1051.52 2753.73 1050.44 2720.88 1049.75 2686.94 1049.4 2652.33 1049.37 2617.48 1049.59 \
2582.82 1050.05 2548.79 1050.68 2515.82 1051.45 2484.33 1052.33 2454.77 1053.26 2427.55 1054.21 2403.12 1055.14 2381.9 1056 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 2381.69 1056.01 2375.86 1060.25 2369.7 1056.5 2375.53 1052.26 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Open_Questions👉 1__What_is__context__for_",
penwidth=2,
pos="s,2369.7,1056.5 2381.9,1056 2511.7,1050.7 2884.5,1038.5 2925,1074 3000.9,1140.4 2886.7,1229.8 2961,1298 3023.8,1355.7 3131.3,1344.5 \
3193.4,1331.5",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
X__Extruction_label_semantics [_ldraw_="F 4.75 5 -Agave c 7 -#44475a t 1 T 3126 1284.7 -1 66 29 -2. Extruction label semantics F 4.75 5 -Agave c 7 -#44475a t 0 T 3126 1279.95 \
-1 3 1 - F 4.75 5 -Agave c 7 -#44475a t 4 T 3129 1279.95 -1 21 9 -Deferred. F 4.75 5 -Agave c 7 -#44475a t 0 T 3150 1279.95 -1 \
3 1 - F 4.75 5 -Agave c 7 -#ff79c6 T 3153 1279.95 -1 28 14 - data.label F 4.75 5 -Agave c 7 -#44475a T 3181 1279.95 -1 91 42 \
-is a free-form string — the text between F 4.75 5 -Agave c 7 -#ff79c6 T 3272 1279.95 -1 12 7 - ${} F 4.75 5 -Agave c 7 -#44475a \
T 3284 1279.95 -1 77 34 -. Its semantics are intentionally F 4.75 5 -Agave c 7 -#44475a T 3126 1275.2 -1 93 41 -undefined until \
extruction evaluation is F 4.75 5 -Agave c 7 -#44475a T 3126 1270.45 -1 82 36 -designed. Currently just stored, no F 4.75 5 -Agave \
c 7 -#44475a T 3235.5 1265.7 -1 16 7 -effect. ",
fontsize=4.75,
height=0.34722,
href="#2__Extruction_label_semantics",
label=<2. Extruction label semantics Deferred. data.label is a free-form string — the text between ${} . Its semantics are intentionally undefined until extruction evaluation is designed. Currently just stored, no effect. |
>,
pos="3243,1276.5",
shape=plain,
width=3.2917];
Open_Questions -> X__Extruction_label_semantics [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 122 2381.8 1056.1 2403 1055.3 2427.42 1054.45 2454.61 1053.59 2484.16 \
1052.75 2515.62 1051.97 2548.56 1051.3 2582.57 1050.77 2617.2 1050.42 2652.03 1050.29 2686.62 1050.42 2720.55 1050.85 2753.38 1051.62 \
2784.68 1052.76 2814.03 1054.32 2840.98 1056.34 2865.11 1058.84 2885.98 1061.88 2903.16 1065.48 2916.18 1069.68 2924.64 1074.48 \
2932.85 1082.49 2939.06 1090.79 2943.46 1099.32 2946.3 1108.07 2947.79 1117.02 2948.16 1126.14 2947.62 1135.41 2946.4 1144.79 2944.71 \
1154.27 2942.79 1163.8 2940.86 1173.36 2939.14 1182.91 2937.86 1192.43 2937.25 1201.9 2937.53 1211.28 2938.94 1220.54 2941.72 1229.64 \
2946.08 1238.55 2952.26 1247.22 2960.46 1255.61 2964.5 1258.74 2969.22 1261.61 2974.58 1264.25 2980.55 1266.65 2987.07 1268.85 2994.11 \
1270.83 3001.63 1272.62 3009.59 1274.23 3017.93 1275.65 3026.63 1276.91 3035.64 1278.01 3044.92 1278.95 3054.42 1279.75 3064.11 \
1280.41 3073.93 1280.95 3083.86 1281.36 3093.84 1281.67 3103.84 1281.87 3113.81 1281.98 3123.7 1282 3123.7 1280 3113.82 1280 3103.87 \
1279.91 3093.89 1279.73 3083.93 1279.45 3074.02 1279.06 3064.22 1278.55 3054.56 1277.91 3045.09 1277.13 3035.84 1276.21 3026.87 \
1275.14 3018.21 1273.91 3009.9 1272.51 3002 1270.93 2994.54 1269.17 2987.57 1267.22 2981.13 1265.07 2975.26 1262.72 2970.01 1260.16 \
2965.43 1257.38 2961.54 1254.39 2953.49 1246.18 2947.45 1237.73 2943.18 1229.06 2940.45 1220.19 2939.05 1211.14 2938.75 1201.92 \
2939.33 1192.58 2940.58 1183.13 2942.27 1173.62 2944.18 1164.08 2946.08 1154.53 2947.75 1145 2948.97 1135.53 2949.49 1126.15 2949.1 \
1116.88 2947.56 1107.76 2944.64 1098.83 2940.12 1090.12 2933.77 1081.68 2925.36 1073.52 2916.66 1068.59 2903.45 1064.37 2886.18 \
1060.79 2865.24 1057.79 2841.07 1055.33 2814.09 1053.37 2784.72 1051.88 2753.4 1050.8 2720.56 1050.11 2686.63 1049.75 2652.03 1049.7 \
2617.2 1049.9 2582.56 1050.33 2548.56 1050.93 2515.61 1051.68 2484.15 1052.52 2454.61 1053.43 2427.42 1054.35 2403 1055.26 2381.8 \
1056.1 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 2381.69 1056.1 2375.86 1060.35 2369.7 1056.6 2375.53 1052.36 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Open_Questions👉 2__Extruction_label_semantics",
penwidth=2,
pos="s,2369.7,1056.6 2381.8,1056.1 2511.5,1050.9 2883.9,1039.3 2925,1074 2987.7,1126.9 2899.6,1200.6 2961,1255 2985,1276.2 3058.1,1281.2 \
3123.7,1281",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
X__When_will_extruction_bodies_activate_ [_ldraw_="F 4.75 5 -Agave c 7 -#44475a t 1 T 3144 1240.7 -1 91 40 -3. When will extruction bodies activate? F 4.75 5 -Agave c 7 -#44475a t \
0 T 3144 1235.95 -1 3 1 - F 4.75 5 -Agave c 7 -#44475a t 4 T 3147 1235.95 -1 21 9 -Resolved. F 4.75 5 -Agave c 7 -#44475a t 0 T \
3168 1235.95 -1 82 36 - Extruction bodies are evaluated as F 4.75 5 -Agave c 7 -#44475a T 3144 1231.2 -1 34 15 -JavaScript when \
F 4.75 5 -Agave c 7 -#ff79c6 T 3178 1231.2 -1 19 10 - evalFn F 4.75 5 -Agave c 7 -#44475a T 3197 1231.2 -1 39 17 -is provided. \
Only F 4.75 5 -Agave c 7 -#ff79c6 T 3236 1231.2 -1 34 17 - ```javascript F 4.75 5 -Agave c 7 -#44475a T 3270 1231.2 -1 73 32 \
-code blocks within the body are F 4.75 5 -Agave c 7 -#44475a T 3144 1226.45 -1 88 41 -extracted — non-javascript code blocks \
F 4.75 5 -Agave c 7 -#44475a T 3144 1221.7 -1 91 40 -and other markdown content are ignored. F 4.75 5 -Agave c 7 -#44475a T 3144 \
1216.95 -1 16 7 -Without F 4.75 5 -Agave c 7 -#ff79c6 T 3160 1216.95 -1 19 10 - evalFn F 4.75 5 -Agave c 7 -#44475a T 3179 1216.95 \
-1 79 35 -, the body remains inert (silently F 4.75 5 -Agave c 7 -#44475a T 3233 1212.2 -1 21 9 -dropped). ",
fontsize=4.75,
height=0.48611,
href="#3__When_will_extruction_bodies_activate_",
label=<3. When will extruction bodies activate? Resolved. Extruction bodies are evaluated as JavaScript when evalFn is provided. Only ```javascript code blocks within the body are extracted — non-javascript code blocks and other markdown content are ignored. Without evalFn , the body remains inert (silently dropped). |
>,
pos="3243,1227.5",
shape=plain,
width=2.7917];
Open_Questions -> X__When_will_extruction_bodies_activate_ [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 122 2381.7 1056.2 2402.85 1055.48 2427.21 1054.71 2454.34 1053.94 \
2483.82 1053.19 2515.21 1052.5 2548.09 1051.91 2582.03 1051.45 2616.6 1051.17 2651.38 1051.1 2685.93 1051.27 2719.83 1051.73 2752.65 \
1052.5 2783.96 1053.64 2813.33 1055.16 2840.33 1057.12 2864.53 1059.53 2885.51 1062.46 2902.81 1065.91 2916 1069.92 2924.64 1074.52 \
2930.79 1080.01 2935.58 1085.76 2939.15 1091.7 2941.65 1097.83 2943.25 1104.12 2944.08 1110.57 2944.29 1117.14 2944.04 1123.81 2943.48 \
1130.56 2942.75 1137.36 2942.01 1144.19 2941.42 1151.02 2941.12 1157.83 2941.28 1164.59 2942.04 1171.29 2943.58 1177.88 2946.04 \
1184.34 2949.58 1190.64 2954.35 1196.73 2960.49 1202.59 2968.1 1208.54 2976.01 1213.97 2984.23 1218.91 2992.71 1223.37 3001.42 1227.37 \
3010.35 1230.94 3019.45 1234.09 3028.71 1236.84 3038.1 1239.21 3047.58 1241.23 3057.14 1242.9 3066.73 1244.25 3076.35 1245.3 3085.95 \
1246.07 3095.51 1246.57 3105.01 1246.83 3114.41 1246.86 3123.69 1246.69 3132.82 1246.33 3141.76 1245.8 3141.64 1243.8 3132.72 1244.35 \
3123.63 1244.73 3114.39 1244.92 3105.04 1244.91 3095.59 1244.68 3086.07 1244.2 3076.52 1243.46 3066.96 1242.43 3057.42 1241.11 3047.92 \
1239.47 3038.49 1237.5 3029.17 1235.16 3019.98 1232.45 3010.94 1229.35 3002.08 1225.83 2993.43 1221.88 2985.03 1217.49 2976.88 1212.62 \
2969.03 1207.26 2961.51 1201.41 2955.5 1195.69 2950.86 1189.78 2947.41 1183.69 2945.01 1177.44 2943.51 1171.03 2942.74 1164.49 2942.57 \
1157.84 2942.85 1151.11 2943.43 1144.33 2944.15 1137.51 2944.86 1130.69 2945.41 1123.89 2945.65 1117.14 2945.42 1110.46 2944.55 \
1103.87 2942.91 1097.42 2940.31 1091.12 2936.63 1085.01 2931.7 1079.13 2925.36 1073.48 2916.46 1068.79 2903.1 1064.75 2885.7 1061.32 \
2864.66 1058.44 2840.42 1056.07 2813.39 1054.18 2784 1052.72 2752.68 1051.66 2719.85 1050.96 2685.94 1050.58 2651.38 1050.48 2616.6 \
1050.63 2582.02 1050.99 2548.08 1051.53 2515.2 1052.19 2483.81 1052.95 2454.34 1053.77 2427.21 1054.61 2402.85 1055.43 2381.7 1056.2 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 2381.59 1056.2 2375.76 1060.45 2369.6 1056.7 2375.43 1052.46 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Open_Questions👉 3__When_will_extruction_bodies_activate_",
penwidth=2,
pos="s,2369.6,1056.7 2381.7,1056.2 2511.1,1051.5 2882.5,1040.9 2925,1074 2971.6,1110.3 2915.6,1164.2 2961,1202 3010.3,1243.1 3082.8,1248.9 \
3141.7,1244.8",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
X__Verbatim_vs_canonicalized_body [_ldraw_="F 4.75 5 -Agave c 7 -#44475a t 1 T 3175 1188.7 -1 75 33 -4. Verbatim vs canonicalized body F 4.75 5 -Agave c 7 -#44475a t 0 T 3175 \
1183.95 -1 3 1 - F 4.75 5 -Agave c 7 -#44475a t 4 T 3178 1183.95 -1 21 9 -Resolved. F 4.75 5 -Agave c 7 -#44475a t 0 T 3199 1183.95 \
-1 3 1 - F 4.75 5 -Agave c 7 -#ff79c6 T 3202 1183.95 -1 14 8 - body F 4.75 5 -Agave c 7 -#44475a T 3216 1183.95 -1 64 28 -is \
canonicalized by default F 4.75 5 -Agave c 7 -#44475a T 3175 1179.2 -1 86 38 -(re-stringified remark nodes). Source F 4.75 5 -Agave \
c 7 -#44475a T 3175 1174.45 -1 23 10 -position ( F 4.75 5 -Agave c 7 -#ff79c6 T 3198 1174.45 -1 34 17 - node.position F 4.75 \
5 -Agave c 7 -#44475a T 3232 1174.45 -1 79 35 -) is the escape hatch for verbatim F 4.75 5 -Agave c 7 -#44475a T 3175 1169.7 -1 \
91 42 -access. No default flip — canonicalized F 4.75 5 -Agave c 7 -#44475a T 3175 1164.95 -1 93 41 -is the correct default because \
consumers F 4.75 5 -Agave c 7 -#44475a T 3175 1160.2 -1 79 35 -should get consistent, predictable F 4.75 5 -Agave c 7 -#44475a \
T 3175 1155.45 -1 91 40 -markdown output. If verbatim is needed, F 4.75 5 -Agave c 7 -#44475a T 3175 1150.7 -1 84 37 -slice the \
original text using source F 4.75 5 -Agave c 7 -#44475a T 3233.5 1145.95 -1 19 8 -offsets. ",
fontsize=4.75,
height=0.68056,
href="#4__Verbatim_vs_canonicalized_body",
label=<4. Verbatim vs canonicalized body Resolved. body is canonicalized by default (re-stringified remark nodes). Source position ( node.position ) is the escape hatch for verbatim access. No default flip — canonicalized is the correct default because consumers should get consistent, predictable markdown output. If verbatim is needed, slice the original text using source offsets. |
>,
pos="3243,1168.5",
shape=plain,
width=1.9167];
Open_Questions -> X__Verbatim_vs_canonicalized_body [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 122 2381.8 1056.8 2402.83 1056.32 2427.03 1055.83 2453.98 1055.34 \
2483.26 1054.88 2514.45 1054.49 2547.12 1054.18 2580.86 1053.99 2615.24 1053.95 2649.85 1054.07 2684.26 1054.4 2718.05 1054.95 2750.8 \
1055.76 2782.09 1056.85 2811.5 1058.24 2838.61 1059.97 2862.99 1062.07 2884.22 1064.56 2901.87 1067.46 2915.5 1070.79 2924.7 1074.58 \
2928.33 1076.97 2931.39 1079.52 2933.92 1082.21 2936.01 1085.02 2937.7 1087.93 2939.08 1090.95 2940.19 1094.04 2941.11 1097.21 2941.9 \
1100.44 2942.62 1103.7 2943.34 1106.99 2944.12 1110.28 2945.03 1113.56 2946.13 1116.81 2947.5 1120.01 2949.2 1123.15 2951.3 1126.2 \
2953.86 1129.15 2956.93 1131.96 2960.59 1134.61 2970.3 1140.53 2980.35 1145.91 2990.69 1150.77 3001.28 1155.15 3012.1 1159.05 3023.09 \
1162.52 3034.22 1165.56 3045.44 1168.2 3056.73 1170.46 3068.03 1172.36 3079.31 1173.94 3090.53 1175.2 3101.65 1176.17 3112.63 1176.87 \
3123.43 1177.32 3134.02 1177.56 3144.34 1177.59 3154.36 1177.44 3164.05 1177.14 3173.35 1176.7 3173.25 1174.7 3163.97 1175.16 3154.32 \
1175.49 3144.33 1175.66 3134.04 1175.65 3123.49 1175.44 3112.73 1175.01 3101.79 1174.34 3090.71 1173.4 3079.53 1172.17 3068.29 1170.64 \
3057.04 1168.77 3045.8 1166.54 3034.63 1163.94 3023.55 1160.94 3012.61 1157.53 3001.85 1153.67 2991.31 1149.35 2981.03 1144.54 2971.05 \
1139.22 2961.41 1133.39 2957.86 1130.82 2954.9 1128.13 2952.44 1125.32 2950.43 1122.4 2948.79 1119.39 2947.46 1116.3 2946.38 1113.14 \
2945.48 1109.93 2944.7 1106.67 2943.98 1103.4 2943.25 1100.12 2942.44 1096.86 2941.49 1093.62 2940.33 1090.43 2938.9 1087.31 2937.13 \
1084.28 2934.95 1081.35 2932.29 1078.56 2929.11 1075.91 2925.3 1073.42 2915.9 1069.57 2902.11 1066.24 2884.38 1063.37 2863.1 1060.93 \
2838.69 1058.89 2811.56 1057.22 2782.13 1055.89 2750.83 1054.88 2718.07 1054.15 2684.27 1053.68 2649.85 1053.43 2615.24 1053.39 \
2580.86 1053.52 2547.12 1053.78 2514.44 1054.17 2483.26 1054.64 2453.98 1055.16 2427.03 1055.72 2402.83 1056.27 2381.8 1056.8 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 2381.7 1056.8 2375.8 1060.95 2369.7 1057.1 2375.6 1052.95 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Open_Questions👉 4__Verbatim_vs_canonicalized_body",
penwidth=2,
pos="s,2369.7,1057.1 2381.8,1056.8 2510.5,1053.6 2878.6,1046.9 2925,1074 2951.9,1089.7 2934.9,1117.1 2961,1134 3024.3,1175 3112.7,1179.1 \
3173.3,1175.7",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
X___hasChildren__and_extructions [_ldraw_="F 4.75 5 -Agave c 7 -#44475a t 1 T 3105 1120.7 -1 5 2 -5. F 4.75 5 -Agave c 7 -#44475a t 0 T 3105 1115.95 -1 3 1 - F 4.75 5 -Agave \
c 7 -#44475a t 4 T 3108 1115.95 -1 149 68 -Resolved — extructions are fully transparent with child promotion. F 4.75 5 -Agave \
c 7 -#44475a t 0 T 3257 1115.95 -1 95 42 - Extructions are skipped from both output F 4.75 5 -Agave c 7 -#44475a T 3105 1111.2 \
-1 91 40 -and navigation. Non-extruction headings F 4.75 5 -Agave c 7 -#44475a T 3146 1106.45 -1 70 31 -nested under an extruction \
are F 4.75 5 -Agave c 7 -#44475a t 4 T 3216 1106.45 -1 19 8 -promoted F 4.75 5 -Agave c 7 -#44475a t 0 T 3235 1106.45 -1 37 16 \
- to the parent's F 4.75 5 -Agave c 7 -#ff79c6 T 3272 1106.45 -1 23 12 - expand() F 4.75 5 -Agave c 7 -#44475a T 3295 1106.45 \
-1 16 7 -output: F 4.75 5 -Agave c 7 -#44475a T 3105 1099.7 -1 5 5 -• F 4.75 5 -Agave c 7 -#ff79c6 T 3110 1099.7 -1 30 15 - hasChildren \
F 4.75 5 -Agave c 7 -#44475a T 3140 1099.7 -1 28 12 -reports what F 4.75 5 -Agave c 7 -#ff79c6 T 3168 1099.7 -1 23 12 - expand()\
F 4.75 5 -Agave c 7 -#44475a T 3191 1099.7 -1 84 39 -would yield — this includes promoted F 4.75 5 -Agave c 7 -#44475a T 3159.5 \
1094.95 -1 61 27 -children under extructions. F 4.75 5 -Agave c 7 -#44475a T 3105 1089.7 -1 75 36 -• Child headings nested under \
an F 4.75 5 -Agave c 7 -#44475a T 3105 1084.7 -1 88 39 -extruction get their trail computed as F 4.75 5 -Agave c 7 -#44475a T \
3105 1079.7 -1 88 41 -if the extruction doesn't exist — they F 4.75 5 -Agave c 7 -#44475a T 3105 1074.7 -1 84 37 -attach to the \
nearest non-extruction F 4.75 5 -Agave c 7 -#44475a T 3129.5 1069.7 -1 39 17 -ancestor heading. F 4.75 5 -Agave c 7 -#44475a T \
3105 1064.7 -1 79 38 -• Extruction body content is still F 4.75 5 -Agave c 7 -#44475a T 3105 1059.7 -1 82 36 -silently dropped; \
only the promoted F 4.75 5 -Agave c 7 -#44475a T 3105 1054.7 -1 88 39 -heading (and its own subtree) survives. F 4.75 5 -Agave \
c 7 -#44475a T 3105 1050.7 -1 5 5 -• F 4.75 5 -Agave c 7 -#ff79c6 T 3110 1050.7 -1 50 24 - skipExtructionBody() F 4.75 5 \
-Agave c 7 -#44475a T 3160 1050.7 -1 84 37 -is the shared helper that implements F 4.75 5 -Agave c 7 -#44475a T 3105 1045.95 -1 \
93 41 -this: given an extruction heading index, F 4.75 5 -Agave c 7 -#44475a T 3105 1041.2 -1 77 34 -it advances past non-heading \
body F 4.75 5 -Agave c 7 -#44475a T 3105 1036.45 -1 93 41 -content but returns at the first heading F 4.75 5 -Agave c 7 -#44475a \
T 3105 1031.7 -1 86 38 -(promoted child) rather than skipping F 4.75 5 -Agave c 7 -#44475a T 3153 1026.95 -1 43 19 -the entire \
subtree. F 4.75 5 -Agave c 7 -#44475a T 3105 1022.7 -1 55 27 -• Consistency invariant: F 4.75 5 -Agave c 7 -#ff79c6 T 3160 1022.7 \
-1 23 12 - expand() F 4.75 5 -Agave c 7 -#44475a T 3183 1022.7 -1 3 1 -, F 4.75 5 -Agave c 7 -#ff79c6 T 3186 1022.7 -1 30 15 \
- hasChildren F 4.75 5 -Agave c 7 -#44475a T 3216 1022.7 -1 3 1 -, F 4.75 5 -Agave c 7 -#ff79c6 T 3219 1022.7 -1 41 20 - collectBodyNodes \
F 4.75 5 -Agave c 7 -#44475a T 3260 1022.7 -1 12 5 -, and F 4.75 5 -Agave c 7 -#ff79c6 T 3272 1022.7 -1 37 18 - findInHeadings \
F 4.75 5 -Agave c 7 -#44475a T 3309 1022.7 -1 73 32 -all agree on which headings are F 4.75 5 -Agave c 7 -#44475a T 3232 1017.95 \
-1 23 10 -reachable. F 4.75 5 -Agave c 7 -#44475a T 3105 1013.7 -1 97 46 -• Rationale: extructions are inert markers F 4.75 \
5 -Agave c 7 -#44475a T 3105 1008.95 -1 86 38 -by default; their body is dropped (or F 4.75 5 -Agave c 7 -#44475a T 3105 1004.2 \
-1 32 14 -evaluated with F 4.75 5 -Agave c 7 -#ff79c6 T 3137 1004.2 -1 19 10 - evalFn F 4.75 5 -Agave c 7 -#44475a T 3156 1004.2 \
-1 91 40 -), but document structure under them is F 4.75 5 -Agave c 7 -#44475a T 3164.5 999.45 -1 23 10 -preserved. ",
fontsize=4.75,
height=1.7778,
href="#5___hasChildren__and_extructions",
label=<5. Resolved — extructions are fully transparent with child promotion. Extructions are skipped from both output and navigation. Non-extruction headings nested under an extruction are promoted to the parent's expand() output: |
• hasChildren reports what expand() would yield — this includes promoted children under extructions. | • Child headings nested under an extruction get their trail computed as if the extruction doesn't exist — they attach to the nearest non-extruction ancestor heading. | • Extruction body content is still silently dropped; only the promoted heading (and its own subtree) survives. | • skipExtructionBody() is the shared helper that implements this: given an extruction heading index, it advances past non-heading body content but returns at the first heading (promoted child) rather than skipping the entire subtree. | • Consistency invariant: expand() , hasChildren , collectBodyNodes , and findInHeadings all agree on which headings are reachable. | • Rationale: extructions are inert markers by default; their body is dropped (or evaluated with evalFn ), but document structure under them is preserved. |
|
>,
pos="3243,1060.5",
shape=plain,
width=3.875];
Open_Questions -> X___hasChildren__and_extructions [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 42 2381.8 1058.1 2403.09 1058.21 2427.85 1058.33 2455.77 1058.47 \
2486.53 1058.62 2519.81 1058.78 2555.28 1058.95 2592.62 1059.12 2631.52 1059.31 2671.65 1059.49 2712.69 1059.68 2754.32 1059.88 \
2796.22 1060.07 2838.06 1060.27 2879.54 1060.46 2920.32 1060.65 2960.09 1060.83 2998.52 1061.01 3035.3 1061.18 3070.1 1061.35 3102.6 \
1061.5 3102.6 1059.5 3070.1 1059.44 3035.3 1059.37 2998.53 1059.3 2960.09 1059.23 2920.33 1059.15 2879.54 1059.08 2838.07 1059 2796.22 \
1058.92 2754.32 1058.84 2712.69 1058.77 2671.65 1058.69 2631.52 1058.61 2592.62 1058.54 2555.28 1058.47 2519.81 1058.4 2486.53 1058.33 \
2455.77 1058.27 2427.85 1058.21 2403.09 1058.15 2381.8 1058.1 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 2381.7 1058.1 2375.7 1062.1 2369.7 1058.1 2375.7 1054.1 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Open_Questions👉 5___hasChildren__and_extructions",
penwidth=2,
pos="s,2369.7,1058.1 2381.8,1058.1 2511.4,1058.6 2894.3,1059.8 3102.6,1060.5",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
evalBody [_ldraw_="F 4.75 5 -Agave c 7 -#44475a t 1 T 3088 973.7 -1 19 8 -evalBody F 4.75 5 -Agave c 7 -#ff79c6 t 0 T 3088 968.95 -1 41 20 - mdt/eval-body.js \
F 4.75 5 -Agave c 7 -#44475a T 3129 968.95 -1 91 40 -exports the default evaluation function: F 4.75 5 -Agave c 7 -#ff79c6 T 3088 \
964.2 -1 70 34 - evalBody(bodyText, context) → F 4.75 5 -Agave c 7 -#ff79c6 T 3088 959.45 -1 30 14 -Promise F 4.75 5 \
-Agave c 7 -#44475a T 3088 954.7 -1 25 11 -It uses the F 4.75 5 -Agave c 7 -#ff79c6 T 3113 954.7 -1 34 17 - AsyncFunction F 4.75 \
5 -Agave c 7 -#44475a T 3147 954.7 -1 64 28 -constructor (same pattern as F 4.75 5 -Agave c 7 -#ff79c6 T 3211 954.7 -1 57 27 - evalJsFilterWithContext \
F 4.75 5 -Agave c 7 -#44475a T 3268 954.7 -1 5 2 -in F 4.75 5 -Agave c 7 -#ff79c6 T 3273 954.7 -1 37 18 - filter-base.js F 4.75 \
5 -Agave c 7 -#44475a T 3310 954.7 -1 88 39 -) to evaluate the body text as JS code F 4.75 5 -Agave c 7 -#44475a T 3088 949.95 \
-1 93 41 -with the context keys available as named F 4.75 5 -Agave c 7 -#44475a T 3088 945.2 -1 25 11 -parameters. F 4.75 5 -Agave \
c 7 -#ff79c6 T 3088 940.45 -1 59 27 - import { evalBody } from F 4.75 5 -Agave c 7 -#ff79c6 T 3088 935.7 -1 66 29 -\"./mdt/eval-body.js\"; \
const F 4.75 5 -Agave c 7 -#ff79c6 T 3088 930.95 -1 77 34 -doc = runner({ search, STATE }, { F 4.75 5 -Agave c 7 -#ff79c6 T 3088 \
926.2 -1 48 22 -evalFn: evalBody }); F 4.75 5 -Agave c 7 -#44475a T 3088 921.45 -1 91 40 -Inside an extruction body, any key from \
F 4.75 5 -Agave c 7 -#44475a T 3088 916.7 -1 79 35 -the context is directly accessible: F 4.75 5 -Agave c 7 -#ff79c6 T 3088 911.95 \
-1 77 35 - ## ${the list} \`\`\`javascript F 4.75 5 -Agave c 7 -#ff79c6 T 3088 907.2 -1 68 30 -const x = await search(\"mdd\") \
F 4.75 5 -Agave c 7 -#ff79c6 T 3088 902.45 -1 59 26 -return insert( x.map(i => F 4.75 5 -Agave c 7 -#ff79c6 T 3088 897.7 -1 43 \
19 -i.uri).join(\"\n\")) F 4.75 5 -Agave c 7 -#ff79c6 T 3088 892.95 -1 16 8 -\`\`\` ",
fontsize=4.75,
height=1.2083,
href="#evalBody",
label=<evalBody mdt/eval-body.js exports the default evaluation function: evalBody(bodyText, context) → Promise<any> It uses the AsyncFunction constructor (same pattern as evalJsFilterWithContext in filter-base.js ) to evaluate the body text as JS code with the context keys available as named parameters. import { evalBody } from "./mdt/eval-body.js"; const doc = runner({ search, STATE }, { evalFn: evalBody }); Inside an extruction body, any key from the context is directly accessible: ## ${the list} \`\`\`javascript const x = await search("mdd") return insert( x.map(i => i.uri).join("\n")) \`\`\`
|
>,
pos="3243,934.5",
shape=plain,
width=4.3333];
Extruction_Evaluation -> evalBody [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 122 2520.1 823.99 2538 823.91 2556.41 823.96 2575.3 824.18 2594.62 \
824.56 2614.31 825.12 2634.34 825.89 2654.67 826.87 2675.24 828.07 2696.01 829.52 2716.93 831.23 2737.97 833.21 2759.07 835.47 2780.19 \
838.04 2801.29 840.93 2822.32 844.14 2843.23 847.7 2863.98 851.62 2884.53 855.91 2904.82 860.6 2924.82 865.68 2927.27 866.39 2929.51 \
867.14 2931.57 867.92 2933.45 868.74 2935.2 869.59 2936.84 870.47 2938.38 871.37 2939.85 872.3 2941.28 873.24 2942.7 874.2 2944.11 \
875.17 2945.55 876.15 2947.04 877.13 2948.61 878.11 2950.26 879.09 2952.04 880.06 2953.95 881.01 2956.03 881.94 2958.29 882.85 2960.75 \
883.73 2966.76 885.73 2972.83 887.67 2978.95 889.57 2985.12 891.42 2991.33 893.23 2997.59 894.99 3003.87 896.71 3010.19 898.38 3016.52 \
900.01 3022.88 901.6 3029.24 903.15 3035.61 904.65 3041.98 906.11 3048.34 907.53 3054.7 908.91 3061.04 910.25 3067.35 911.56 3073.64 \
912.82 3079.9 914.04 3086.11 915.22 3086.49 913.26 3080.27 912.1 3074.02 910.9 3067.73 909.66 3061.42 908.38 3055.09 907.07 3048.74 \
905.71 3042.38 904.31 3036.02 902.88 3029.66 901.4 3023.3 899.88 3016.95 898.31 3010.62 896.71 3004.31 895.06 2998.03 893.36 2991.79 \
891.63 2985.58 889.85 2979.42 888.02 2973.3 886.15 2967.24 884.23 2961.25 882.27 2958.83 881.41 2956.63 880.53 2954.6 879.63 2952.74 \
878.71 2951.01 877.77 2949.39 876.82 2947.85 875.87 2946.38 874.9 2944.95 873.94 2943.53 872.97 2942.1 872.01 2940.65 871.06 2939.14 \
870.12 2937.55 869.2 2935.86 868.3 2934.06 867.43 2932.11 866.59 2929.99 865.79 2927.69 865.03 2925.18 864.32 2905.13 859.29 2884.8 \
854.67 2864.21 850.44 2843.43 846.59 2822.48 843.1 2801.43 839.96 2780.31 837.15 2759.16 834.65 2738.04 832.46 2716.99 830.55 2696.05 \
828.92 2675.27 827.54 2654.69 826.4 2634.36 825.49 2614.32 824.8 2594.62 824.3 2575.3 823.99 2556.42 823.84 2538 823.85 2520.1 823.99 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 2519.8 823.99 2513.85 828.07 2507.8 824.15 2513.75 820.07 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Extruction_Evaluation👉 evalBody",
penwidth=2,
pos="s,2507.8,824.15 2520.1,823.99 2637.6,822.8 2792.6,829.91 2925,865 2942.3,869.58 2944,877.31 2961,883 3000.8,896.34 3045,906.55 3086.3,\
914.24",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
Extruction_return_value____insert________inject____built_ins [_ldraw_="F 14 5 -Agave c 7 -#44475a T 3243 862.8 0 406 60 -Extruction_return_value____insert________inject____built_ins ",
height=0.20833,
href="#Extruction_return_value____insert________inject____built_ins",
pos="3243,866.5",
shape=plain,
width=5.6389];
Extruction_Evaluation -> Extruction_return_value____insert________inject____built_ins [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 42 2519.6 839.65 2542.65 840.53 2566.54 841.45 2591.2 842.4 2616.54 \
843.37 2642.45 844.37 2668.85 845.38 2695.66 846.41 2722.77 847.45 2750.11 848.5 2777.57 849.56 2805.07 850.62 2832.52 851.67 2859.82 \
852.72 2886.9 853.76 2913.65 854.79 2939.98 855.8 2965.81 856.79 2991.04 857.76 3015.59 858.71 3039.36 859.62 3039.44 857.62 3015.66 \
856.8 2991.11 855.95 2965.87 855.08 2940.04 854.18 2913.7 853.27 2886.95 852.35 2859.87 851.41 2832.56 850.47 2805.11 849.52 2777.61 \
848.57 2750.14 847.62 2722.8 846.67 2695.68 845.73 2668.87 844.81 2642.47 843.9 2616.55 843 2591.21 842.12 2566.55 841.27 2542.65 \
840.45 2519.6 839.65 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 2519.49 839.65 2513.35 843.43 2507.5 839.21 2513.64 835.43 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Extruction_Evaluation👉 Extruction_return_value____insert________inject____built_ins",
penwidth=2,
pos="s,2507.5,839.21 2519.6,839.65 2670.2,845.14 2883.7,852.94 3039.4,858.62",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
hasChildren___extruction_evaluation [_ldraw_="F 14 5 -Agave c 7 -#44475a T 3243 828.8 0 237 35 -hasChildren___extruction_evaluation ",
height=0.20833,
href="#hasChildren___extruction_evaluation",
pos="3243,832.5",
shape=plain,
width=3.2917];
Extruction_Evaluation -> hasChildren___extruction_evaluation [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 42 2519.5 833 2547.17 833.05 2576.03 833.09 2605.94 833.14 2636.74 \
833.19 2668.27 833.25 2700.38 833.3 2732.92 833.35 2765.72 833.41 2798.63 833.46 2831.5 833.52 2864.17 833.57 2896.49 833.62 2928.3 \
833.68 2959.45 833.73 2989.78 833.78 3019.13 833.83 3047.36 833.87 3074.3 833.92 3099.8 833.96 3123.7 834 3123.7 832 3099.8 832.04 \
3074.3 832.08 3047.36 832.13 3019.13 832.17 2989.78 832.22 2959.45 832.27 2928.3 832.32 2896.49 832.38 2864.17 832.43 2831.5 832.48 \
2798.63 832.54 2765.72 832.59 2732.92 832.65 2700.38 832.7 2668.27 832.75 2636.74 832.81 2605.94 832.86 2576.03 832.91 2547.17 832.95 \
2519.5 833 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 2519.5 833 2513.5 837 2507.5 833 2513.5 829 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Extruction_Evaluation👉 hasChildren___extruction_evaluation",
penwidth=2,
pos="s,2507.5,833 2519.5,833 2699.6,833 2970,833 3123.7,833",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
Error_behavior [_ldraw_="F 14 5 -Agave c 7 -#44475a T 3243 795.8 0 95 14 -Error_behavior ",
height=0.20833,
href="#Error_behavior",
pos="3243,799.5",
shape=plain,
width=1.3194];
Extruction_Evaluation -> Error_behavior [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 42 2519.8 826.35 2552.65 825.2 2587.14 823.99 2623 822.73 2659.98 \
821.44 2697.83 820.11 2736.28 818.77 2775.09 817.41 2813.99 816.04 2852.72 814.69 2891.05 813.34 2928.69 812.03 2965.41 810.74 3000.94 \
809.5 3035.03 808.3 3067.42 807.17 3097.86 806.1 3126.09 805.11 3151.84 804.21 3174.88 803.4 3194.94 802.7 3194.86 800.7 3174.81 \
801.46 3151.78 802.34 3126.02 803.32 3097.8 804.39 3067.36 805.55 3034.98 806.78 3000.89 808.07 2965.36 809.42 2928.65 810.82 2891 \
812.25 2852.69 813.7 2813.95 815.17 2775.06 816.65 2736.26 818.12 2697.81 819.59 2659.97 821.02 2622.99 822.43 2587.13 823.79 2552.65 \
825.1 2519.8 826.35 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 2519.49 826.36 2513.64 830.57 2507.5 826.79 2513.35 822.58 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Extruction_Evaluation👉 Error_behavior",
penwidth=2,
pos="s,2507.5,826.79 2519.8,826.35 2732.8,818.57 3071.7,806.2 3194.9,801.7",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
buildInsertFragment_serialization [_ldraw_="F 14 5 -Agave c 7 -#44475a T 3243 763.8 0 223 33 -buildInsertFragment_serialization ",
height=0.20833,
href="#buildInsertFragment_serialization",
pos="3243,767.5",
shape=plain,
width=3.0972];
Extruction_Evaluation -> buildInsertFragment_serialization [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 82 2520.1 817.79 2539.05 816.28 2558.62 814.72 2578.75 813.13 2599.4 \
811.5 2620.52 809.85 2642.06 808.17 2663.97 806.47 2686.2 804.76 2708.72 803.04 2731.46 801.31 2754.39 799.58 2777.45 797.86 2800.6 \
796.14 2823.79 794.43 2846.97 792.75 2870.09 791.08 2893.1 789.44 2915.97 787.83 2938.63 786.25 2961.05 784.72 2969.5 784.15 2978.02 \
783.58 2986.62 783.01 2995.27 782.45 3003.97 781.89 3012.69 781.34 3021.44 780.78 3030.19 780.24 3038.93 779.7 3047.65 779.16 3056.34 \
778.63 3064.99 778.11 3073.57 777.6 3082.09 777.09 3090.52 776.59 3098.85 776.1 3107.07 775.62 3115.17 775.15 3123.14 774.7 3130.96 \
774.25 3130.84 772.25 3123.02 772.72 3115.06 773.21 3106.96 773.71 3098.74 774.21 3090.4 774.73 3081.97 775.25 3073.46 775.79 3064.88 \
776.33 3056.23 776.88 3047.55 777.44 3038.82 778 3030.08 778.57 3021.33 779.15 3012.59 779.73 3003.86 780.31 2995.17 780.9 2986.52 \
781.49 2977.92 782.09 2969.39 782.68 2960.95 783.28 2938.54 784.89 2915.88 786.54 2893.02 788.22 2870 789.94 2846.89 791.68 2823.71 \
793.44 2800.53 795.22 2777.39 797.02 2754.33 798.82 2731.41 800.62 2708.67 802.42 2686.16 804.22 2663.93 806 2642.02 807.77 2620.49 \
809.52 2599.38 811.24 2578.74 812.94 2558.61 814.6 2539.05 816.21 2520.1 817.79 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 2519.76 817.82 2514.1 822.29 2507.8 818.79 2513.46 814.32 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Extruction_Evaluation👉 buildInsertFragment_serialization",
penwidth=2,
pos="s,2507.8,818.79 2520.1,817.79 2644.3,807.65 2812.5,794.33 2961,784 3017,780.1 3079.3,776.28 3130.9,773.25",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
Probes [_ldraw_="F 14 5 -Agave c 7 -#44475a T 3243 729.8 0 41 6 -Probes ",
height=0.20833,
href="#Probes",
pos="3243,733.5",
shape=plain,
width=0.56944];
Extruction_Evaluation -> Probes [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 82 2480.9 811.23 2500.28 808.43 2520.53 805.54 2541.6 802.56 2563.41 \
799.51 2585.9 796.41 2609.01 793.25 2632.67 790.07 2656.82 786.86 2681.4 783.65 2706.33 780.44 2731.55 777.26 2757 774.11 2782.62 \
771 2808.33 767.95 2834.08 764.98 2859.8 762.09 2885.42 759.3 2910.88 756.62 2936.12 754.06 2961.06 751.65 2975.84 750.29 2990.84 \
749 3006 747.77 3021.25 746.61 3036.52 745.5 3051.75 744.46 3066.86 743.47 3081.79 742.54 3096.47 741.68 3110.82 740.86 3124.79 \
740.11 3138.3 739.41 3151.29 738.76 3163.68 738.17 3175.41 737.63 3186.41 737.15 3196.61 736.72 3205.95 736.33 3214.34 736 3221.74 \
735.72 3221.66 733.72 3214.27 734.02 3205.87 734.38 3196.53 734.78 3186.33 735.25 3175.33 735.76 3163.59 736.33 3151.2 736.95 3138.21 \
737.63 3124.7 738.37 3110.73 739.16 3096.37 740.01 3081.69 740.92 3066.76 741.89 3051.64 742.92 3036.41 744 3021.14 745.15 3005.89 \
746.36 2990.72 747.63 2975.72 748.96 2960.94 750.35 2935.99 752.84 2910.76 755.46 2885.3 758.21 2859.68 761.07 2833.97 764.03 2808.23 \
767.07 2782.52 770.19 2756.91 773.36 2731.46 776.58 2706.25 779.84 2681.33 783.11 2656.76 786.39 2632.62 789.66 2608.97 792.91 2585.86 \
796.12 2563.38 799.29 2541.57 802.4 2520.52 805.43 2500.27 808.38 2480.9 811.23 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 2480.77 811.25 2475.42 816.08 2468.9 813 2474.25 808.17 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Extruction_Evaluation👉 Probes",
penwidth=2,
pos="s,2468.9,813 2480.9,811.23 2607,792.78 2795.8,766.85 2961,751 3058.6,741.63 3175.9,736.5 3221.7,734.72",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
glassSearchRunAsync [_ldraw_="F 14 5 -Agave c 7 -#44475a T 3243 696.8 0 129 19 -glassSearchRunAsync ",
height=0.20833,
href="#glassSearchRunAsync",
pos="3243,700.5",
shape=plain,
width=1.7917];
Search_Adapter -> glassSearchRunAsync [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 42 2396.3 686.04 2422.7 686.54 2453.03 687.12 2486.84 687.76 2523.71 \
688.46 2563.21 689.21 2604.91 690 2648.37 690.83 2693.16 691.68 2738.86 692.54 2785.03 693.42 2831.24 694.3 2877.06 695.16 2922.06 \
696.02 2965.81 696.85 3007.88 697.65 3047.83 698.4 3085.24 699.11 3119.67 699.77 3150.7 700.35 3177.88 700.87 3177.92 698.87 3150.73 \
698.42 3119.7 697.92 3085.27 697.35 3047.86 696.74 3007.91 696.08 2965.84 695.39 2922.09 694.67 2877.08 693.93 2831.26 693.18 2785.05 \
692.42 2738.87 691.67 2693.17 690.92 2648.38 690.18 2604.91 689.47 2563.22 688.78 2523.72 688.13 2486.84 687.53 2453.03 686.97 2422.7 \
686.47 2396.3 686.04 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 2396.2 686.04 2390.13 689.93 2384.2 685.83 2390.27 681.93 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Search_Adapter👉 glassSearchRunAsync",
penwidth=2,
pos="s,2384.2,685.83 2396.3,686.04 2558.3,688.91 3010.4,696.91 3177.9,699.87",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
search___adapter [_ldraw_="F 14 5 -Agave c 7 -#44475a T 3243 664.8 0 109 16 -search___adapter ",
height=0.20833,
href="#search___adapter",
pos="3243,668.5",
shape=plain,
width=1.5139];
Search_Adapter -> search___adapter [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 42 2396.5 683.89 2423.51 683.42 2454.59 682.87 2489.27 682.26 2527.11 \
681.6 2567.63 680.89 2610.4 680.14 2654.94 679.36 2700.81 678.55 2747.54 677.73 2794.67 676.91 2841.76 676.08 2888.34 675.27 2933.95 \
674.47 2978.14 673.69 3020.45 672.95 3060.43 672.25 3097.61 671.59 3131.54 671 3161.76 670.47 3187.82 670.01 3187.78 668.01 3161.73 \
668.53 3131.51 669.14 3097.58 669.82 3060.4 670.57 3020.42 671.37 2978.11 672.22 2933.92 673.11 2888.31 674.02 2841.74 674.96 2794.65 \
675.9 2747.52 676.85 2700.79 677.79 2654.93 678.71 2610.39 679.6 2567.63 680.46 2527.1 681.27 2489.27 682.03 2454.58 682.72 2423.51 \
683.35 2396.5 683.89 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 2396.2 683.9 2390.27 688.01 2384.2 684.12 2390.12 680.01 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Search_Adapter👉 search___adapter",
penwidth=2,
pos="s,2384.2,684.12 2396.5,683.89 2562,680.78 3029,672 3187.8,669.01",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
Completion_detection [_ldraw_="F 14 5 -Agave c 7 -#44475a T 3243 630.8 0 136 20 -Completion_detection ",
height=0.20833,
href="#Completion_detection",
pos="3243,634.5",
shape=plain,
width=1.8889];
Search_Adapter -> Completion_detection [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 42 2396.7 681.73 2422.95 680.31 2453.06 678.68 2486.61 676.87 2523.17 \
674.9 2562.33 672.78 2603.66 670.55 2646.74 668.22 2691.16 665.82 2736.48 663.37 2782.29 660.9 2828.17 658.42 2873.69 655.96 2918.44 \
653.54 2961.99 651.19 3003.92 648.93 3043.81 646.77 3081.24 644.75 3115.79 642.88 3147.04 641.2 3174.56 639.71 3174.44 637.71 3146.93 \
639.27 3115.69 641.04 3081.15 642.99 3043.72 645.11 3003.83 647.37 2961.91 649.74 2918.36 652.2 2873.62 654.74 2828.11 657.31 2782.24 \
659.91 2736.43 662.5 2691.11 665.07 2646.71 667.58 2603.63 670.02 2562.31 672.36 2523.15 674.57 2486.6 676.64 2453.05 678.54 2422.95 \
680.24 2396.7 681.73 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 2396.18 681.76 2390.41 686.08 2384.2 682.42 2389.97 678.1 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Search_Adapter👉 Completion_detection",
penwidth=2,
pos="s,2384.2,682.42 2396.7,681.73 2557.9,672.81 3004.4,648.12 3174.5,638.71",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
How_it_works [_ldraw_="F 14 5 -Agave c 7 -#44475a T 3243 597.8 0 82 12 -How_it_works ",
height=0.20833,
href="#How_it_works",
pos="3243,601.5",
shape=plain,
width=1.1389];
Adapter_Pattern -> How_it_works [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 42 2399.9 571.28 2428.18 572.35 2460.64 573.57 2496.79 574.94 2536.15 \
576.42 2578.21 578.01 2622.5 579.68 2668.52 581.42 2715.78 583.2 2763.79 585.01 2812.06 586.84 2860.1 588.65 2907.42 590.43 2953.53 \
592.18 2997.94 593.85 3040.16 595.45 3079.71 596.94 3116.08 598.31 3148.79 599.55 3177.35 600.63 3201.26 601.53 3201.34 599.53 3177.42 \
598.69 3148.85 597.68 3116.14 596.53 3079.77 595.24 3040.22 593.85 2998 592.36 2953.58 590.79 2907.47 589.17 2860.14 587.5 2812.09 \
585.81 2763.82 584.11 2715.8 582.41 2668.54 580.75 2622.52 579.13 2578.23 577.56 2536.16 576.08 2496.8 574.69 2460.64 573.42 2428.18 \
572.28 2399.9 571.28 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 2399.69 571.27 2393.55 575.05 2387.7 570.83 2393.84 567.05 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Adapter_Pattern👉 How_it_works",
penwidth=2,
pos="s,2387.7,570.83 2399.9,571.28 2573.4,577.61 3058.4,595.31 3201.3,600.53",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
Naming_rules [_ldraw_="F 14 5 -Agave c 7 -#44475a T 3243 564.8 0 82 12 -Naming_rules ",
height=0.20833,
href="#Naming_rules",
pos="3243,568.5",
shape=plain,
width=1.1389];
Adapter_Pattern -> Naming_rules [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 42 2399.9 569 2428.18 569.04 2460.64 569.08 2496.8 569.12 2536.15 \
569.17 2578.22 569.22 2622.51 569.28 2668.53 569.34 2715.79 569.39 2763.8 569.45 2812.07 569.51 2860.12 569.57 2907.44 569.63 2953.56 \
569.69 2997.97 569.75 3040.19 569.8 3079.74 569.85 3116.11 569.89 3148.82 569.93 3177.38 569.97 3201.3 570 3201.3 568 3177.38 568.03 \
3148.82 568.07 3116.11 568.11 3079.74 568.15 3040.19 568.2 2997.97 568.25 2953.56 568.31 2907.44 568.37 2860.12 568.43 2812.07 568.49 \
2763.8 568.55 2715.79 568.61 2668.53 568.66 2622.51 568.72 2578.22 568.78 2536.15 568.83 2496.8 568.88 2460.64 568.92 2428.18 568.96 \
2399.9 569 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 2399.7 569 2393.7 573 2387.7 569 2393.7 565 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Adapter_Pattern👉 Naming_rules",
penwidth=2,
pos="s,2387.7,569 2399.9,569 2573.4,569 3058.4,569 3201.3,569",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
Return_protocol [_ldraw_="F 14 5 -Agave c 7 -#44475a T 3243 531.8 0 102 15 -Return_protocol ",
height=0.20833,
href="#Return_protocol",
pos="3243,535.5",
shape=plain,
width=1.4167];
Adapter_Pattern -> Return_protocol [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 42 2399.9 566.72 2427.5 565.75 2459.11 564.63 2494.26 563.4 2532.52 \
562.05 2573.4 560.61 2616.46 559.09 2661.25 557.51 2707.29 555.89 2754.13 554.24 2801.32 552.58 2848.39 550.92 2894.89 549.28 2940.37 \
547.68 2984.35 546.13 3026.39 544.64 3066.02 543.25 3102.79 541.95 3136.23 540.77 3165.9 539.73 3191.34 538.83 3191.26 536.83 3165.83 \
537.79 3136.17 538.91 3102.72 540.18 3065.96 541.56 3026.33 543.06 2984.29 544.65 2940.32 546.31 2894.85 548.03 2848.35 549.78 2801.28 \
551.56 2754.1 553.34 2707.26 555.11 2661.22 556.85 2616.44 558.54 2573.39 560.17 2532.5 561.71 2494.26 563.16 2459.1 564.48 2427.5 \
565.68 2399.9 566.72 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 2399.69 566.73 2393.84 570.95 2387.7 567.17 2393.55 562.95 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Adapter_Pattern👉 Return_protocol",
penwidth=2,
pos="s,2387.7,567.17 2399.9,566.72 2569.5,560.53 3036.9,543.47 3191.3,537.83",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
Adapter_conventions [_ldraw_="F 14 5 -Agave c 7 -#44475a T 3243 498.8 0 129 19 -Adapter_conventions ",
height=0.20833,
href="#Adapter_conventions",
pos="3243,502.5",
shape=plain,
width=1.7917];
Adapter_Pattern -> Adapter_conventions [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 82 2399.6 563.75 2417.38 562.29 2437.01 560.68 2458.36 558.93 2481.29 \
557.07 2505.7 555.1 2531.43 553.03 2558.38 550.88 2586.42 548.65 2615.41 546.36 2645.22 544.03 2675.75 541.66 2706.84 539.27 2738.38 \
536.86 2770.25 534.46 2802.3 532.07 2834.43 529.7 2866.49 527.37 2898.37 525.09 2929.93 522.87 2961.05 520.72 2972.3 519.96 2983.69 \
519.2 2995.19 518.45 3006.76 517.7 3018.39 516.96 3030.02 516.22 3041.65 515.5 3053.23 514.79 3064.74 514.09 3076.15 513.4 3087.43 \
512.73 3098.55 512.07 3109.47 511.43 3120.17 510.81 3130.62 510.2 3140.79 509.62 3150.65 509.06 3160.17 508.52 3169.31 508.01 3178.06 \
507.52 3177.94 505.52 3169.2 506.03 3160.05 506.57 3150.54 507.13 3140.68 507.72 3130.51 508.33 3120.06 508.96 3109.36 509.61 3098.44 \
510.28 3087.32 510.96 3076.05 511.66 3064.64 512.38 3053.13 513.11 3041.55 513.85 3029.92 514.61 3018.28 515.37 3006.66 516.14 2995.09 \
516.92 2983.59 517.7 2972.2 518.49 2960.95 519.28 2929.83 521.51 2898.28 523.81 2866.4 526.17 2834.35 528.59 2802.23 531.04 2770.17 \
533.51 2738.32 536 2706.78 538.48 2675.69 540.95 2645.18 543.4 2615.36 545.81 2586.38 548.17 2558.35 550.47 2531.41 552.69 2505.67 \
554.82 2481.28 556.86 2458.34 558.78 2437 560.58 2417.38 562.24 2399.6 563.75 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 2399.56 563.75 2393.91 568.24 2387.6 564.76 2393.24 560.27 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Adapter_Pattern👉 Adapter_conventions",
penwidth=2,
pos="s,2387.6,564.76 2399.6,563.75 2511.7,554.35 2755.3,534.31 2961,520 3035.5,514.82 3121.1,509.76 3178,506.52",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
X__Simple_lookup__sync_ [_ldraw_="F 14 5 -Agave c 7 -#44475a T 3243 465.8 0 156 23 -X__Simple_lookup__sync_ ",
height=0.20833,
href="#1__Simple_lookup__sync_",
pos="3243,469.5",
shape=plain,
width=2.1667];
Example_adapters -> X__Simple_lookup__sync_ [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 82 2387.5 363.79 2404.39 367.05 2423.36 370.66 2444.28 374.6 2466.99 \
378.83 2491.36 383.3 2517.25 387.99 2544.52 392.85 2573.03 397.84 2602.64 402.93 2633.21 408.09 2664.6 413.27 2696.67 418.43 2729.28 \
423.54 2762.29 428.57 2795.56 433.46 2828.95 438.19 2862.32 442.73 2895.53 447.02 2928.45 451.03 2960.92 454.74 2971.27 455.84 2981.74 \
456.89 2992.31 457.9 3002.95 458.86 3013.65 459.78 3024.38 460.65 3035.11 461.47 3045.82 462.25 3056.48 463 3067.08 463.7 3077.59 \
464.36 3087.99 464.98 3098.24 465.57 3108.33 466.12 3118.24 466.63 3127.94 467.11 3137.41 467.56 3146.61 467.97 3155.54 468.36 3164.16 \
468.71 3164.24 466.71 3155.62 466.38 3146.7 466.02 3137.49 465.63 3128.03 465.21 3118.34 464.75 3108.43 464.26 3098.34 463.74 3088.09 \
463.18 3077.7 462.58 3067.19 461.95 3056.6 461.28 3045.93 460.56 3035.23 459.81 3024.5 459.01 3013.78 458.17 3003.09 457.28 2992.45 \
456.35 2981.89 455.37 2971.42 454.34 2961.08 453.26 2928.61 449.65 2895.7 445.72 2862.48 441.51 2829.11 437.06 2795.71 432.42 2762.43 \
427.61 2729.41 422.67 2696.8 417.64 2664.72 412.56 2633.31 407.46 2602.73 402.38 2573.11 397.37 2544.59 392.44 2517.31 387.66 2491.41 \
383.04 2467.03 378.62 2444.3 374.46 2423.38 370.57 2404.4 367 2387.5 363.79 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 2387.39 363.77 2380.74 366.57 2375.6 361.51 2382.25 358.71 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Example_adapters👉 1__Simple_lookup__sync_",
penwidth=2,
pos="s,2375.6,361.51 2387.5,363.79 2492.9,384.07 2746.3,430.73 2961,454 3029.5,461.43 3107.8,465.53 3164.2,467.71",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
X__Search_adapter [_ldraw_="F 14 5 -Agave c 7 -#44475a T 3243 432.8 0 115 17 -X__Search_adapter ",
height=0.20833,
href="#2__Search_adapter",
pos="3243,436.5",
shape=plain,
width=1.5972];
Example_adapters -> X__Search_adapter [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 82 2403.4 362.18 2421.38 364.39 2441.14 366.79 2462.54 369.38 2485.48 \
372.12 2509.83 375 2535.46 378.01 2562.26 381.11 2590.1 384.29 2618.86 387.54 2648.42 390.83 2678.65 394.14 2709.43 397.45 2740.65 \
400.74 2772.17 404 2803.88 407.21 2835.65 410.34 2867.37 413.37 2898.9 416.29 2930.13 419.08 2960.94 421.71 2972.64 422.67 2984.49 \
423.6 2996.45 424.5 3008.5 425.38 3020.59 426.23 3032.71 427.06 3044.8 427.85 3056.83 428.62 3068.78 429.36 3080.61 430.08 3092.29 \
430.76 3103.77 431.42 3115.03 432.04 3126.03 432.64 3136.75 433.21 3147.13 433.75 3157.16 434.26 3166.8 434.74 3176.01 435.18 3184.75 \
435.6 3184.85 433.6 3176.1 433.21 3166.89 432.78 3157.26 432.33 3147.23 431.85 3136.84 431.33 3126.13 430.79 3115.13 430.22 3103.87 \
429.63 3092.39 429 3080.71 428.34 3068.89 427.66 3056.94 426.95 3044.9 426.21 3032.81 425.45 3020.7 424.65 3008.61 423.83 2996.56 \
422.99 2984.6 422.11 2972.75 421.21 2961.06 420.29 2930.25 417.73 2899.01 415.03 2867.48 412.19 2835.76 409.23 2803.98 406.19 2772.26 \
403.06 2740.73 399.88 2709.51 396.67 2678.72 393.43 2648.48 390.2 2618.92 386.99 2590.15 383.82 2562.31 380.7 2535.5 377.67 2509.86 \
374.73 2485.51 371.91 2462.56 369.23 2441.15 366.7 2421.39 364.34 2403.4 362.18 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 2403.11 362.14 2396.67 365.39 2391.2 360.69 2397.64 357.45 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Example_adapters👉 2__Search_adapter",
penwidth=2,
pos="s,2391.2,360.69 2403.4,362.18 2517.1,376.05 2757.3,404.26 2961,421 3038.4,427.36 3128.1,432 3184.8,434.6",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
X__HTTP_fetch [_ldraw_="F 14 5 -Agave c 7 -#44475a T 3243 399.8 0 88 13 -X__HTTP_fetch ",
height=0.20833,
href="#3__HTTP_fetch",
pos="3243,403.5",
shape=plain,
width=1.2222];
Example_adapters -> X__HTTP_fetch [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 42 2403.1 357.63 2431.52 359.24 2463.96 361.07 2499.96 363.11 2539.03 \
365.32 2580.72 367.68 2624.55 370.16 2670.04 372.73 2716.73 375.37 2764.14 378.05 2811.8 380.75 2859.24 383.43 2905.99 386.08 2951.57 \
388.66 2995.52 391.14 3037.36 393.51 3076.62 395.73 3112.83 397.78 3145.52 399.63 3174.22 401.25 3198.44 402.62 3198.56 400.62 3174.32 \
399.31 3145.62 397.76 3112.93 395.99 3076.71 394.04 3037.45 391.92 2995.6 389.65 2951.65 387.28 2906.05 384.81 2859.3 382.29 2811.85 \
379.72 2764.19 377.15 2716.77 374.58 2670.08 372.06 2624.58 369.6 2580.75 367.23 2539.05 364.98 2499.97 362.87 2463.97 360.92 2431.52 \
359.17 2403.1 357.63 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 2402.98 357.62 2396.77 361.29 2391 356.96 2397.21 353.3 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Example_adapters👉 3__HTTP_fetch",
penwidth=2,
pos="s,2391,356.96 2403.1,357.63 2578.1,367.31 3052.9,393.57 3198.5,401.62",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
X__Database_query [_ldraw_="F 14 5 -Agave c 7 -#44475a T 3243 366.8 0 115 17 -X__Database_query ",
height=0.20833,
href="#4__Database_query",
pos="3243,370.5",
shape=plain,
width=1.5972];
Example_adapters -> X__Database_query [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 42 2403.2 355.24 2430.74 355.79 2462.08 356.42 2496.79 357.12 2534.43 \
357.87 2574.58 358.68 2616.8 359.53 2660.67 360.41 2705.76 361.31 2751.62 362.23 2797.84 363.16 2843.98 364.09 2889.61 365 2934.31 \
365.9 2977.63 366.77 3019.15 367.61 3058.44 368.39 3095.07 369.13 3128.61 369.8 3158.62 370.41 3184.68 370.93 3184.72 368.93 3158.66 \
368.47 3128.64 367.95 3095.1 367.36 3058.47 366.72 3019.18 366.03 2977.66 365.3 2934.33 364.54 2889.64 363.76 2844 362.96 2797.86 \
362.15 2751.64 361.34 2705.77 360.54 2660.69 359.75 2616.81 358.98 2574.59 358.24 2534.44 357.54 2496.79 356.88 2462.08 356.27 2430.74 \
355.72 2403.2 355.24 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 2403 355.24 2396.92 359.12 2391 355.01 2397.07 351.12 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Example_adapters👉 4__Database_query",
penwidth=2,
pos="s,2391,355.01 2403.2,355.24 2573.2,358.43 3025.1,366.93 3184.7,369.93",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
X__State_access [_ldraw_="F 14 5 -Agave c 7 -#44475a T 3243 333.8 0 102 15 -X__State_access ",
height=0.20833,
href="#5__State_access",
pos="3243,337.5",
shape=plain,
width=1.4167];
Example_adapters -> X__State_access [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 42 2403.1 352.84 2431.05 352.38 2462.9 351.86 2498.2 351.28 2536.5 \
350.65 2577.36 349.98 2620.33 349.27 2664.95 348.54 2710.78 347.78 2757.36 347.02 2804.26 346.25 2851.01 345.48 2897.18 344.72 2942.3 \
343.98 2985.93 343.26 3027.63 342.58 3066.94 341.93 3103.41 341.33 3136.6 340.79 3166.05 340.3 3191.32 339.89 3191.28 337.89 3166.02 \
338.37 3136.57 338.93 3103.38 339.56 3066.91 340.25 3027.6 340.99 2985.91 341.78 2942.27 342.61 2897.15 343.47 2850.99 344.34 2804.24 \
345.23 2757.35 346.12 2710.77 347 2664.94 347.87 2620.32 348.72 2577.36 349.53 2536.5 350.31 2498.19 351.04 2462.89 351.71 2431.05 \
352.31 2403.1 352.84 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 2403 352.84 2397.07 356.95 2391 353.05 2396.93 348.95 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Example_adapters👉 5__State_access",
penwidth=2,
pos="s,2391,353.05 2403.1,352.84 2575.4,349.79 3037.8,341.6 3191.3,338.89",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
X__Composition___multiple_adapters [_ldraw_="F 14 5 -Agave c 7 -#44475a T 3243 300.8 0 230 34 -X__Composition___multiple_adapters ",
height=0.20833,
href="#6__Composition___multiple_adapters",
pos="3243,304.5",
shape=plain,
width=3.1944];
Example_adapters -> X__Composition___multiple_adapters [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 42 2403.3 350.43 2427.87 349.13 2455.54 347.67 2485.99 346.06 2518.92 \
344.32 2554 342.47 2590.93 340.52 2629.4 338.49 2669.1 336.39 2709.7 334.25 2750.91 332.07 2792.41 329.88 2833.89 327.69 2875.04 \
325.52 2915.54 323.38 2955.08 321.29 2993.36 319.27 3030.06 317.33 3064.86 315.49 3097.47 313.77 3127.55 312.18 3127.45 310.18 3097.36 \
311.85 3064.76 313.67 3029.96 315.6 2993.27 317.64 2955 319.77 2915.46 321.96 2874.97 324.22 2833.83 326.5 2792.36 328.81 2750.86 \
331.11 2709.66 333.4 2669.06 335.66 2629.37 337.87 2590.9 340 2553.98 342.06 2518.9 344.01 2485.98 345.84 2455.53 347.53 2427.87 \
349.06 2403.3 350.43 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 2402.98 350.45 2397.21 354.77 2391 351.1 2396.77 346.78 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Example_adapters👉 6__Composition___multiple_adapters",
penwidth=2,
pos="s,2391,351.1 2403.3,350.43 2556.1,342.15 2936,321.56 3127.5,311.18",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
X__Using___mdt_label__to_drive_adapters [_ldraw_="F 14 5 -Agave c 7 -#44475a T 3243 267.8 0 264 39 -X__Using___mdt_label__to_drive_adapters ",
height=0.20833,
href="#7__Using___mdt_label__to_drive_adapters",
pos="3243,271.5",
shape=plain,
width=3.6667];
Example_adapters -> X__Using___mdt_label__to_drive_adapters [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 82 2403.5 346.17 2421.47 344.1 2441.22 341.85 2462.63 339.43 2485.57 \
336.85 2509.92 334.15 2535.56 331.32 2562.36 328.41 2590.21 325.41 2618.97 322.35 2648.54 319.24 2678.77 316.11 2709.57 312.98 2740.79 \
309.85 2772.31 306.76 2804.03 303.71 2835.8 300.72 2867.51 297.82 2899.04 295.02 2930.27 292.33 2961.07 289.79 2968.4 289.2 2975.81 \
288.62 2983.27 288.05 2990.78 287.48 2998.33 286.93 3005.91 286.39 3013.51 285.85 3021.13 285.32 3028.75 284.81 3036.37 284.3 3043.98 \
283.8 3051.57 283.31 3059.13 282.83 3066.66 282.36 3074.14 281.9 3081.56 281.45 3088.92 281.01 3096.22 280.58 3103.43 280.17 3110.56 \
279.76 3110.44 277.76 3103.32 278.19 3096.1 278.63 3088.81 279.08 3081.44 279.54 3074.02 280.01 3066.54 280.49 3059.01 280.98 3051.45 \
281.48 3043.86 281.99 3036.25 282.51 3028.63 283.04 3021.01 283.58 3013.39 284.13 3005.79 284.68 2998.21 285.25 2990.65 285.83 2983.14 \
286.41 2975.68 287 2968.28 287.6 2960.93 288.21 2930.14 290.85 2898.92 293.62 2867.39 296.51 2835.69 299.5 2803.92 302.58 2772.21 \
305.72 2740.69 308.9 2709.48 312.12 2678.69 315.34 2648.46 318.55 2618.91 321.74 2590.15 324.88 2562.31 327.96 2535.52 330.95 2509.89 \
333.85 2485.54 336.62 2462.61 339.26 2441.21 341.74 2421.47 344.05 2403.5 346.17 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 2403.12 346.21 2397.62 350.89 2391.2 347.61 2396.69 342.94 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Example_adapters👉 7__Using___mdt_label__to_drive_adapters",
penwidth=2,
pos="s,2391.2,347.61 2403.5,346.17 2517.1,332.9 2757.4,305.77 2961,289 3009.7,284.98 3063.3,281.51 3110.5,278.76",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
Key_constraints [_ldraw_="F 14 5 -Agave c 7 -#44475a T 3243 234.8 0 102 15 -Key_constraints ",
height=0.20833,
href="#Key_constraints",
pos="3243,238.5",
shape=plain,
width=1.4167];
Example_adapters -> Key_constraints [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 82 2389 344.19 2406.05 341.05 2425.14 337.56 2446.14 333.77 2468.91 \
329.71 2493.3 325.41 2519.19 320.92 2546.44 316.26 2574.9 311.47 2604.44 306.58 2634.92 301.64 2666.21 296.67 2698.16 291.72 2730.63 \
286.81 2763.49 281.98 2796.6 277.27 2829.83 272.71 2863.02 268.34 2896.06 264.2 2928.79 260.31 2961.08 256.71 2973.23 255.45 2985.54 \
254.25 2997.99 253.11 3010.52 252.02 3023.09 251 3035.68 250.03 3048.25 249.11 3060.74 248.25 3073.13 247.45 3085.38 246.69 3097.44 \
245.98 3109.29 245.32 3120.88 244.7 3132.17 244.13 3143.13 243.61 3153.71 243.12 3163.88 242.68 3173.6 242.28 3182.83 241.92 3191.54 \
241.59 3191.46 239.59 3182.75 239.94 3173.52 240.33 3163.8 240.75 3153.62 241.22 3143.04 241.73 3132.08 242.28 3120.78 242.88 3109.19 \
243.52 3097.34 244.21 3085.27 244.95 3073.02 245.74 3060.63 246.58 3048.13 247.47 3035.56 248.42 3022.97 249.42 3010.38 250.48 2997.85 \
251.59 2985.4 252.76 2973.08 254 2960.92 255.29 2928.63 258.97 2895.9 262.94 2862.87 267.17 2829.68 271.62 2796.46 276.26 2763.36 \
281.05 2730.5 285.96 2698.04 290.95 2666.1 295.99 2634.83 301.03 2604.36 306.05 2574.83 311.01 2546.37 315.87 2519.14 320.6 2493.26 \
325.16 2468.87 329.51 2446.11 333.63 2425.12 337.47 2406.04 341 2389 344.19 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 2388.89 344.21 2383.74 349.25 2377.1 346.43 2382.26 341.39 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Example_adapters👉 Key_constraints",
penwidth=2,
pos="s,2377.1,346.43 2389,344.19 2495.5,324.31 2747.5,279.19 2961,256 3041.4,247.27 3135.3,242.72 3191.5,240.59",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
X__E2E_tests [_ldraw_="F 14 5 -Agave c 7 -#44475a T 3243 201.8 0 82 12 -X__E2E_tests ",
height=0.20833,
href="#6__E2E_tests",
pos="3243,205.5",
shape=plain,
width=1.1389];
Example_adapters -> X__E2E_tests [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 82 2377.5 343.45 2393.48 339.36 2411.77 334.74 2432.2 329.64 2454.63 \
324.11 2478.91 318.22 2504.88 312.02 2532.4 305.56 2561.3 298.9 2591.44 292.1 2622.66 285.21 2654.82 278.29 2687.76 271.39 2721.33 \
264.57 2755.37 257.89 2789.74 251.39 2824.27 245.14 2858.83 239.19 2893.26 233.6 2927.39 228.42 2961.1 223.71 2973.96 222.06 2987.02 \
220.53 3000.22 219.1 3013.51 217.78 3026.86 216.56 3040.2 215.44 3053.5 214.4 3066.72 213.46 3079.79 212.6 3092.69 211.82 3105.35 \
211.12 3117.75 210.49 3129.82 209.93 3141.52 209.43 3152.81 209 3163.63 208.62 3173.96 208.29 3183.73 208.01 3192.9 207.78 3201.42 \
207.59 3201.38 205.59 3192.85 205.8 3183.67 206.06 3173.9 206.36 3163.57 206.71 3152.73 207.12 3141.44 207.58 3129.73 208.1 3117.66 \
208.69 3105.26 209.35 3092.59 210.09 3079.68 210.9 3066.6 211.79 3053.38 212.76 3040.07 213.83 3026.72 214.98 3013.36 216.24 3000.06 \
217.59 2986.85 219.05 2973.78 220.62 2960.9 222.29 2927.2 227.09 2893.06 232.35 2858.64 238.03 2824.08 244.06 2789.55 250.4 2755.19 \
256.98 2721.16 263.75 2687.61 270.65 2654.68 277.63 2622.54 284.63 2591.32 291.59 2561.2 298.46 2532.31 305.19 2504.81 311.71 2478.85 \
317.98 2454.59 323.93 2432.17 329.5 2411.74 334.65 2393.47 339.32 2377.5 343.45 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 2377.41 343.47 2372.61 348.85 2365.8 346.49 2370.6 341.11 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Example_adapters👉 6__E2E_tests",
penwidth=2,
pos="s,2365.8,346.49 2377.5,343.45 2476,317.97 2738.1,253 2961,223 3046.1,211.54 3146.8,207.81 3201.4,206.59",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
sourceFragment_field [_ldraw_="F 14 5 -Agave c 7 -#44475a T 3243 168.8 0 136 20 -sourceFragment_field ",
height=0.20833,
href="#sourceFragment_field",
pos="3243,172.5",
shape=plain,
width=1.8889];
Conversion_tree___transclusion_provenance -> sourceFragment_field [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 82 2435.7 115.58 2454.82 117.25 2475.25 119.02 2496.9 120.88 2519.68 \
122.84 2543.49 124.86 2568.23 126.96 2593.82 129.11 2620.17 131.3 2647.17 133.54 2674.74 135.8 2702.78 138.07 2731.19 140.36 2759.89 \
142.64 2788.79 144.91 2817.78 147.15 2846.78 149.37 2875.69 151.54 2904.42 153.66 2932.87 155.72 2960.95 157.71 2971.96 158.47 2983.1 \
159.23 2994.35 159.98 3005.68 160.71 3017.05 161.44 3028.44 162.16 3039.82 162.87 3051.17 163.57 3062.45 164.25 3073.64 164.92 3084.71 \
165.57 3095.63 166.21 3106.37 166.83 3116.91 167.43 3127.21 168.01 3137.25 168.57 3147.01 169.11 3156.44 169.63 3165.53 170.13 3174.25 \
170.6 3174.35 168.6 3165.64 168.15 3156.55 167.68 3147.11 167.19 3137.36 166.68 3127.31 166.14 3117.01 165.59 3106.47 165.02 3095.73 \
164.43 3084.81 163.82 3073.74 163.2 3062.55 162.56 3051.27 161.9 3039.92 161.24 3028.54 160.56 3017.14 159.87 3005.77 159.17 2994.45 \
158.46 2983.2 157.75 2972.06 157.02 2961.05 156.29 2932.96 154.38 2904.51 152.39 2875.77 150.35 2846.86 148.26 2817.86 146.12 2788.86 \
143.95 2759.96 141.76 2731.26 139.56 2702.83 137.35 2674.79 135.15 2647.22 132.96 2620.21 130.8 2593.86 128.68 2568.26 126.6 2543.51 \
124.57 2519.7 122.61 2496.92 120.72 2475.26 118.91 2454.82 117.19 2435.7 115.58 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 2435.36 115.55 2429.03 119.02 2423.4 114.52 2429.72 111.05 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Conversion_tree___transclusion_provenance👉 sourceFragment_field",
penwidth=2,
pos="s,2423.4,114.52 2435.7,115.58 2558.6,126.15 2775.2,144.25 2961,157 3033.9,162 3117.5,166.62 3174.3,169.6",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
Extruction_protocol___insert___extended [_ldraw_="F 14 5 -Agave c 7 -#44475a T 3243 135.8 0 264 39 -Extruction_protocol___insert___extended ",
height=0.20833,
href="#Extruction_protocol___insert___extended",
pos="3243,139.5",
shape=plain,
width=3.6667];
Conversion_tree___transclusion_provenance -> Extruction_protocol___insert___extended [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 42 2487.4 112.47 2514.26 113.49 2542.61 114.58 2572.26 115.71 2603.05 \
116.88 2634.8 118.09 2667.34 119.33 2700.51 120.6 2734.13 121.88 2768.03 123.17 2802.03 124.47 2835.97 125.76 2869.68 127.04 2902.99 \
128.31 2935.71 129.56 2967.69 130.78 2998.75 131.96 3028.72 133.11 3057.42 134.2 3084.7 135.24 3110.36 136.22 3110.44 134.22 3084.77 \
133.32 3057.49 132.37 3028.78 131.37 2998.81 130.32 2967.75 129.24 2935.77 128.12 2903.03 126.98 2869.73 125.82 2836.02 124.64 2802.07 \
123.46 2768.06 122.27 2734.16 121.09 2700.53 119.91 2667.36 118.75 2634.81 117.62 2603.06 116.51 2572.27 115.43 2542.61 114.4 2514.27 \
113.41 2487.4 112.47 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 2487.29 112.47 2481.15 116.25 2475.3 112.03 2481.44 108.25 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Conversion_tree___transclusion_provenance👉 Extruction_protocol___insert___extended",
penwidth=2,
pos="s,2475.3,112.03 2487.4,112.47 2661.2,118.82 2945,129.18 3110.4,135.22",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
Consumer_collects_conversion_tree [_ldraw_="F 14 5 -Agave c 7 -#44475a T 3243 102.8 0 223 33 -Consumer_collects_conversion_tree ",
height=0.20833,
href="#Consumer_collects_conversion_tree",
pos="3243,106.5",
shape=plain,
width=3.0972];
Conversion_tree___transclusion_provenance -> Consumer_collects_conversion_tree [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 42 2487.3 107 2515.34 107.04 2544.99 107.09 2576.04 107.14 2608.3 \
107.19 2641.58 107.24 2675.68 107.29 2710.42 107.35 2745.58 107.4 2780.99 107.46 2816.45 107.51 2851.76 107.57 2886.73 107.62 2921.16 \
107.67 2954.86 107.73 2987.64 107.78 3019.31 107.83 3049.66 107.87 3078.5 107.92 3105.65 107.96 3130.9 108 3130.9 106 3105.65 106.04 \
3078.5 106.08 3049.66 106.13 3019.31 106.17 2987.64 106.22 2954.86 106.27 2921.16 106.33 2886.73 106.38 2851.76 106.43 2816.45 106.49 \
2780.99 106.54 2745.58 106.6 2710.42 106.65 2675.68 106.71 2641.58 106.76 2608.3 106.81 2576.04 106.86 2544.99 106.91 2515.34 106.96 \
2487.3 107 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 2487.3 107 2481.3 111 2475.3 107 2481.3 103 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Conversion_tree___transclusion_provenance👉 Consumer_collects_conversion_tree",
penwidth=2,
pos="s,2475.3,107 2487.3,107 2668.5,107 2969.3,107 3130.9,107",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
Rendering_uses_conversion_tree [_ldraw_="F 14 5 -Agave c 7 -#44475a T 3243 69.8 0 203 30 -Rendering_uses_conversion_tree ",
height=0.20833,
href="#Rendering_uses_conversion_tree",
pos="3243,73.5",
shape=plain,
width=2.8194];
Conversion_tree___transclusion_provenance -> Rendering_uses_conversion_tree [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 42 2487.3 101.53 2515.95 100.53 2546.27 99.47 2578.05 98.36 2611.08 \
97.2 2645.15 96.01 2680.06 94.79 2715.6 93.55 2751.57 92.29 2787.75 91.02 2823.94 89.76 2859.94 88.5 2895.53 87.25 2930.52 86.03 \
2964.68 84.84 2997.83 83.68 3029.74 82.56 3060.21 81.49 3089.04 80.49 3116.02 79.54 3140.94 78.67 3140.86 76.67 3115.95 77.62 3088.97 \
78.65 3060.15 79.74 3029.68 80.9 2997.77 82.12 2964.63 83.38 2930.47 84.68 2895.49 86.01 2859.9 87.36 2823.91 88.73 2787.72 90.1 \
2751.54 91.48 2715.58 92.85 2680.04 94.2 2645.13 95.53 2611.06 96.82 2578.04 98.08 2546.26 99.29 2515.95 100.44 2487.3 101.53 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 2487.29 101.53 2481.44 105.75 2475.3 101.97 2481.15 97.75 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Conversion_tree___transclusion_provenance👉 Rendering_uses_conversion_tree",
penwidth=2,
pos="s,2475.3,101.97 2487.3,101.53 2672.3,94.777 2982.1,83.47 3140.9,77.672",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
Trail_format_conversion [_ldraw_="F 14 5 -Agave c 7 -#44475a T 3243 36.8 0 156 23 -Trail_format_conversion ",
height=0.20833,
href="#Trail_format_conversion",
pos="3243,40.5",
shape=plain,
width=2.1667];
Conversion_tree___transclusion_provenance -> Trail_format_conversion [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 82 2438.8 98.48 2457.97 96.92 2478.41 95.26 2500.05 93.51 2522.78 \
91.68 2546.52 89.78 2571.17 87.82 2596.65 85.81 2622.85 83.75 2649.7 81.66 2677.09 79.53 2704.94 77.39 2733.15 75.24 2761.64 73.09 \
2790.31 70.94 2819.08 68.82 2847.84 66.71 2876.51 64.64 2904.99 62.61 2933.2 60.64 2961.05 58.72 2971.42 58.02 2981.92 57.32 2992.51 \
56.62 3003.17 55.93 3013.88 55.24 3024.62 54.56 3035.36 53.89 3046.08 53.23 3056.76 52.58 3067.37 51.93 3077.88 51.3 3088.28 50.68 \
3098.54 50.08 3108.63 49.49 3118.54 48.91 3128.24 48.35 3137.7 47.81 3146.91 47.29 3155.84 46.78 3164.46 46.3 3164.34 44.3 3155.72 \
44.81 3146.8 45.34 3137.59 45.89 3128.13 46.46 3118.43 47.04 3108.52 47.64 3098.43 48.26 3088.17 48.9 3077.77 49.54 3067.26 50.2 \
3056.65 50.88 3045.98 51.56 3035.26 52.25 3024.52 52.95 3013.78 53.66 3003.07 54.38 2992.41 55.1 2981.82 55.82 2971.32 56.55 2960.95 \
57.28 2933.11 59.28 2904.9 61.33 2876.42 63.44 2847.75 65.59 2819 67.77 2790.24 69.98 2761.57 72.2 2733.09 74.43 2704.88 76.66 2677.04 \
78.88 2649.65 81.08 2622.81 83.24 2596.61 85.38 2571.14 87.46 2546.5 89.49 2522.76 91.45 2500.04 93.34 2478.41 95.15 2457.96 96.86 \
2438.8 98.48 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 2438.76 98.48 2433.11 102.97 2426.8 99.48 2432.45 94.99 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Conversion_tree___transclusion_provenance👉 Trail_format_conversion",
penwidth=2,
pos="s,2426.8,99.479 2438.8,98.48 2562.1,88.235 2776.8,70.821 2961,58 3029.7,53.216 3108,48.536 3164.4,45.301",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
Changed_files [_ldraw_="F 14 5 -Agave c 7 -#44475a T 3243 3.8 0 88 13 -Changed_files ",
height=0.20833,
href="#Changed_files",
pos="3243,7.5",
shape=plain,
width=1.2222];
Conversion_tree___transclusion_provenance -> Changed_files [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 82 2396.9 97.58 2414.48 94.88 2433.96 91.91 2455.2 88.72 2478.08 \
85.31 2502.47 81.73 2528.23 77.99 2555.24 74.12 2583.37 70.16 2612.49 66.12 2642.47 62.04 2673.17 57.94 2704.48 53.86 2736.26 49.8 \
2768.39 45.81 2800.72 41.91 2833.14 38.13 2865.52 34.49 2897.71 31.02 2929.61 27.75 2961.07 24.7 2973.74 23.55 2986.58 22.45 2999.55 \
21.4 3012.61 20.4 3025.71 19.45 3038.81 18.55 3051.87 17.69 3064.85 16.88 3077.7 16.12 3090.37 15.39 3102.84 14.72 3115.04 14.08 \
3126.94 13.49 3138.5 12.94 3149.68 12.43 3160.42 11.96 3170.69 11.53 3180.45 11.14 3189.64 10.78 3198.24 10.46 3198.16 8.46 3189.57 \
8.8 3180.37 9.18 3170.61 9.6 3160.34 10.06 3149.59 10.55 3138.42 11.09 3126.85 11.67 3114.95 12.29 3102.74 12.96 3090.28 13.67 3077.6 \
14.42 3064.75 15.21 3051.77 16.06 3038.7 16.95 3025.6 17.88 3012.49 18.87 2999.43 19.9 2986.45 20.98 2973.61 22.11 2960.93 23.3 \
2929.47 26.42 2897.58 29.77 2865.39 33.32 2833.02 37.04 2800.6 40.91 2768.27 44.89 2736.16 48.96 2704.38 53.09 2673.08 57.26 2642.38 \
61.43 2612.41 65.59 2583.31 69.7 2555.19 73.73 2528.18 77.66 2502.43 81.46 2478.05 85.11 2455.18 88.57 2433.95 91.82 2414.48 94.83 \
2396.9 97.58 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 2396.56 97.63 2391.24 102.51 2384.7 99.48 2390.01 94.61 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Conversion_tree___transclusion_provenance👉 Changed_files",
penwidth=2,
pos="s,2384.7,99.482 2396.9,97.579 2507.5,80.357 2753,43.753 2961,24 3044.8,16.047 3143,11.547 3198.2,9.4579",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
insert_children__ [_ldraw_="F 14 5 -Agave c 7 -#44475a T 3726 1060.8 0 115 17 -insert_children__ ",
height=0.20833,
href="#insert_children__",
pos="3726,1064.5",
shape=plain,
width=1.5972];
Extruction_return_value____insert________inject____built_ins -> insert_children__ [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 122 3457.8 862.92 3462.2 863.47 3466.51 864.06 3470.74 864.7 3474.87 \
865.38 3478.91 866.1 3482.83 866.87 3486.65 867.69 3490.36 868.56 3493.94 869.47 3497.4 870.44 3500.72 871.46 3503.91 872.53 3506.96 \
873.66 3509.86 874.84 3512.61 876.08 3515.2 877.37 3517.63 878.72 3519.89 880.14 3521.97 881.61 3523.88 883.14 3531.42 890.59 3537.14 \
898.27 3541.26 906.14 3543.97 914.2 3545.48 922.41 3545.99 930.76 3545.68 939.22 3544.77 947.77 3543.45 956.39 3541.93 965.04 3540.39 \
973.72 3539.05 982.38 3538.1 991.02 3537.75 999.6 3538.2 1008.11 3539.65 1016.51 3542.31 1024.79 3546.39 1032.89 3552.07 1040.8 \
3559.56 1048.48 3564.99 1052.94 3570.72 1056.92 3576.71 1060.45 3582.94 1063.54 3589.37 1066.23 3595.97 1068.53 3602.71 1070.47 \
3609.56 1072.06 3616.48 1073.33 3623.45 1074.31 3630.44 1075.01 3637.4 1075.46 3644.32 1075.68 3651.16 1075.69 3657.89 1075.51 3664.47 \
1075.17 3670.88 1074.68 3677.08 1074.08 3683.05 1073.37 3688.74 1072.59 3688.46 1070.61 3682.79 1071.42 3676.87 1072.15 3670.71 \
1072.78 3664.34 1073.3 3657.81 1073.67 3651.13 1073.89 3644.35 1073.91 3637.48 1073.73 3630.57 1073.32 3623.65 1072.66 3616.74 1071.73 \
3609.88 1070.51 3603.09 1068.96 3596.42 1067.09 3589.89 1064.85 3583.53 1062.23 3577.38 1059.21 3571.45 1055.76 3565.8 1051.87 3560.44 \
1047.52 3553.03 1040 3547.41 1032.27 3543.37 1024.35 3540.72 1016.25 3539.25 1007.99 3538.76 999.6 3539.07 991.09 3539.97 982.5 \
3541.26 973.86 3542.75 965.18 3544.23 956.51 3545.51 947.86 3546.37 939.26 3546.64 930.75 3546.08 922.33 3544.52 914.05 3541.74 \
905.94 3537.54 898.01 3531.74 890.31 3524.12 882.86 3522.19 881.32 3520.07 879.85 3517.79 878.44 3515.34 877.1 3512.73 875.81 3509.97 \
874.58 3507.05 873.41 3503.99 872.3 3500.79 871.24 3497.45 870.24 3493.99 869.29 3490.4 868.39 3486.69 867.54 3482.86 866.74 3478.93 \
865.99 3474.89 865.29 3470.75 864.63 3466.52 864.02 3462.2 863.45 3457.8 862.92 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 3457.64 862.9 3451.26 866.28 3445.7 861.69 3452.07 858.32 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Extruction_return_value____insert________inject____built_ins👉 insert_children__",
penwidth=2,
pos="s,3445.7,861.69 3457.8,862.92 3487.4,866.37 3511.8,872.56 3524,883 3581,931.83 3503.9,998.14 3560,1048 3594.9,1079 3651.7,1077.1 \
3688.6,1071.6",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
inject_text__ [_ldraw_="F 14 5 -Agave c 7 -#44475a T 3726 1026.8 0 88 13 -inject_text__ ",
height=0.20833,
href="#inject_text__",
pos="3726,1030.5",
shape=plain,
width=1.2222];
Extruction_return_value____insert________inject____built_ins -> inject_text__ [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 122 3457.6 863.48 3461.99 864.02 3466.29 864.61 3470.51 865.23 \
3474.64 865.9 3478.67 866.61 3482.59 867.36 3486.42 868.16 3490.12 869.01 3493.71 869.9 3497.18 870.84 3500.52 871.84 3503.72 872.88 \
3506.79 873.97 3509.71 875.12 3512.47 876.32 3515.09 877.58 3517.54 878.89 3519.82 880.25 3521.94 881.68 3523.87 883.15 3530.15 \
889.03 3535.02 895.1 3538.62 901.36 3541.13 907.78 3542.69 914.35 3543.47 921.04 3543.63 927.84 3543.3 934.72 3542.66 941.66 3541.86 \
948.64 3541.04 955.63 3540.38 962.61 3540.03 969.57 3540.15 976.48 3540.89 983.31 3542.42 990.05 3544.9 996.67 3548.49 1003.13 3553.34 \
1009.41 3559.59 1015.47 3565.01 1019.7 3570.69 1023.5 3576.62 1026.87 3582.76 1029.85 3589.09 1032.45 3595.58 1034.69 3602.2 1036.59 \
3608.91 1038.17 3615.7 1039.45 3622.52 1040.46 3629.36 1041.2 3636.19 1041.71 3642.96 1041.99 3649.67 1042.08 3656.27 1041.98 3662.74 \
1041.73 3669.05 1041.33 3675.17 1040.81 3681.08 1040.19 3686.73 1039.49 3686.47 1037.51 3680.85 1038.24 3674.99 1038.89 3668.91 \
1039.44 3662.64 1039.87 3656.22 1040.16 3649.66 1040.29 3643.01 1040.25 3636.28 1040 3629.51 1039.54 3622.73 1038.84 3615.96 1037.89 \
3609.23 1036.65 3602.57 1035.13 3596.02 1033.28 3589.59 1031.11 3583.33 1028.58 3577.25 1025.67 3571.38 1022.38 3565.75 1018.67 \
3560.41 1014.53 3554.22 1008.61 3549.44 1002.5 3545.9 996.2 3543.44 989.74 3541.9 983.14 3541.13 976.41 3540.97 969.58 3541.28 962.68 \
3541.9 955.72 3542.67 948.73 3543.43 941.74 3544.04 934.77 3544.32 927.85 3544.13 920.99 3543.3 914.24 3541.68 907.61 3539.11 901.12 \
3535.43 894.82 3530.49 888.72 3524.13 882.85 3522.16 881.36 3520.02 879.93 3517.72 878.57 3515.24 877.27 3512.61 876.02 3509.82 \
874.83 3506.89 873.7 3503.81 872.62 3500.59 871.59 3497.24 870.62 3493.77 869.7 3490.17 868.82 3486.45 868 3482.62 867.22 3478.69 \
866.48 3474.65 865.8 3470.52 865.16 3466.3 864.56 3461.99 864 3457.6 863.48 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 3457.54 863.47 3451.16 866.85 3445.6 862.26 3451.97 858.89 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Extruction_return_value____insert________inject____built_ins👉 inject_text__",
penwidth=2,
pos="s,3445.6,862.26 3457.6,863.48 3487.1,866.88 3511.6,872.91 3524,883 3571.2,921.36 3513.5,975.79 3560,1015 3594.9,1044.4 3649.9,1043.5 \
3686.6,1038.5",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
children____recursively_resolved_child_subtree [_ldraw_="F 14 5 -Agave c 7 -#44475a T 3726 993.8 0 311 46 -children____recursively_resolved_child_subtree ",
height=0.20833,
href="#children____recursively_resolved_child_subtree",
pos="3726,997.5",
shape=plain,
width=4.3194];
Extruction_return_value____insert________inject____built_ins -> children____recursively_resolved_child_subtree [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 122 3458 864.46 3462.33 864.99 3466.57 865.56 3470.74 866.16 3474.81 \
866.81 3478.79 867.49 3482.67 868.22 3486.45 868.99 3490.12 869.8 3493.68 870.65 3497.12 871.55 3500.43 872.5 3503.62 873.49 3506.67 \
874.53 3509.58 875.61 3512.35 876.75 3514.97 877.93 3517.44 879.17 3519.75 880.45 3521.89 881.79 3523.86 883.18 3528.9 887.48 3532.91 \
891.97 3536.01 896.62 3538.31 901.41 3539.93 906.34 3540.99 911.37 3541.59 916.5 3541.84 921.7 3541.87 926.95 3541.78 932.24 3541.69 \
937.54 3541.7 942.84 3541.94 948.11 3542.53 953.33 3543.56 958.49 3545.17 963.56 3547.47 968.52 3550.58 973.34 3554.6 978 3559.63 \
982.46 3564.91 986.29 3570.42 989.74 3576.13 992.84 3582.03 995.6 3588.08 998.04 3594.27 1000.16 3600.57 1002 3606.95 1003.55 3613.4 \
1004.85 3619.89 1005.9 3626.39 1006.73 3632.88 1007.34 3639.34 1007.76 3645.74 1007.99 3652.06 1008.06 3658.27 1007.98 3664.36 1007.77 \
3670.29 1007.44 3676.05 1007.01 3681.6 1006.5 3681.4 1004.5 3675.88 1005.05 3670.16 1005.52 3664.27 1005.89 3658.22 1006.14 3652.05 \
1006.25 3645.77 1006.23 3639.42 1006.03 3633.01 1005.66 3626.56 1005.1 3620.11 1004.32 3613.68 1003.32 3607.28 1002.08 3600.94 1000.57 \
3594.7 998.8 3588.56 996.74 3582.56 994.37 3576.71 991.68 3571.05 988.66 3565.59 985.28 3560.37 981.54 3555.4 977.2 3551.45 972.68 \
3548.4 968.01 3546.12 963.19 3544.52 958.24 3543.46 953.18 3542.86 948.03 3542.58 942.81 3542.53 937.54 3542.59 932.25 3542.65 926.95 \
3542.59 921.67 3542.29 916.44 3541.65 911.26 3540.55 906.17 3538.87 901.18 3536.5 896.33 3533.33 891.64 3529.25 887.13 3524.14 882.82 \
3522.13 881.43 3519.96 880.09 3517.62 878.81 3515.13 877.58 3512.49 876.41 3509.71 875.29 3506.78 874.22 3503.71 873.2 3500.51 872.23 \
3497.18 871.3 3493.74 870.42 3490.17 869.59 3486.49 868.8 3482.7 868.06 3478.82 867.36 3474.83 866.7 3470.75 866.08 3466.58 865.5 \
3462.33 864.96 3458 864.46 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 3457.64 864.42 3451.27 867.8 3445.7 863.22 3452.07 859.84 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Extruction_return_value____insert________inject____built_ins👉 children____recursively_resolved_child_subtree",
penwidth=2,
pos="s,3445.7,863.22 3458,864.46 3487.1,867.78 3511.3,873.54 3524,883 3561.5,911.01 3523,953.31 3560,982 3594.2,1008.5 3645.3,1009.3 \
3681.5,1005.5",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
insertRefsAsSubtree_items__opts___ [_ldraw_="F 14 5 -Agave c 7 -#44475a T 3726 961.8 0 230 34 -insertRefsAsSubtree_items__opts___ ",
height=0.20833,
href="#insertRefsAsSubtree_items__opts___",
pos="3726,965.5",
shape=plain,
width=3.1944];
Extruction_return_value____insert________inject____built_ins -> insertRefsAsSubtree_items__opts___ [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 122 3457.7 866.19 3462 866.7 3466.22 867.24 3470.36 867.82 3474.41 \
868.43 3478.38 869.07 3482.25 869.75 3486.02 870.46 3489.69 871.21 3493.25 872 3496.69 872.83 3500.02 873.69 3503.22 874.59 3506.29 \
875.53 3509.23 876.51 3512.04 877.54 3514.7 878.6 3517.21 879.71 3519.57 880.86 3521.78 882.05 3523.81 883.29 3527.65 886.06 3530.83 \
888.98 3533.43 892.03 3535.53 895.19 3537.19 898.47 3538.5 901.83 3539.52 905.27 3540.33 908.77 3540.99 912.32 3541.58 915.9 3542.17 \
919.49 3542.84 923.08 3543.65 926.66 3544.67 930.2 3546 933.69 3547.69 937.1 3549.82 940.42 3552.47 943.63 3555.71 946.7 3559.58 \
949.6 3561.87 951.09 3564.19 952.5 3566.53 953.87 3568.91 955.17 3571.31 956.43 3573.75 957.62 3576.21 958.77 3578.71 959.86 3581.22 \
960.91 3583.76 961.9 3586.32 962.85 3588.9 963.75 3591.5 964.6 3594.12 965.4 3596.75 966.16 3599.4 966.88 3602.06 967.56 3604.73 \
968.19 3607.42 968.78 3610.1 969.33 3610.5 967.37 3607.82 966.85 3605.16 966.29 3602.51 965.69 3599.87 965.05 3597.25 964.37 3594.63 \
963.64 3592.04 962.87 3589.46 962.05 3586.9 961.19 3584.37 960.28 3581.85 959.33 3579.36 958.32 3576.89 957.26 3574.44 956.16 3572.03 \
955 3569.64 953.79 3567.28 952.52 3564.96 951.2 3562.66 949.82 3560.42 948.4 3556.62 945.61 3553.47 942.69 3550.9 939.63 3548.81 \
936.46 3547.14 933.18 3545.83 929.81 3544.79 926.36 3543.96 922.85 3543.27 919.3 3542.64 915.72 3542.01 912.13 3541.31 908.56 3540.45 \
905.02 3539.38 901.52 3538 898.1 3536.26 894.76 3534.08 891.53 3531.39 888.43 3528.11 885.49 3524.19 882.71 3522.1 881.48 3519.86 \
880.29 3517.47 879.15 3514.92 878.06 3512.23 877.02 3509.41 876.02 3506.44 875.06 3503.35 874.15 3500.13 873.27 3496.78 872.44 3493.33 \
871.65 3489.75 870.9 3486.07 870.18 3482.29 869.51 3478.41 868.87 3474.44 868.26 3470.38 867.69 3466.23 867.16 3462 866.66 3457.7 \
866.19 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 3457.44 866.17 3451.08 869.56 3445.5 865 3451.86 861.6 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Extruction_return_value____insert________inject____built_ins👉 insertRefsAsSubtree_items__opts___",
penwidth=2,
pos="s,3445.5,865 3457.7,866.19 3486.6,869.35 3510.8,874.61 3524,883 3552.2,900.92 3532.1,930.57 3560,949 3575,958.89 3592.4,964.91 3610.3,\
968.35",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
insertNljson_collection__opts___ [_ldraw_="F 14 5 -Agave c 7 -#44475a T 3726 927.8 0 217 32 -insertNljson_collection__opts___ ",
height=0.20833,
href="#insertNljson_collection__opts___",
pos="3726,931.5",
shape=plain,
width=3.0139];
Extruction_return_value____insert________inject____built_ins -> insertNljson_collection__opts___ [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 122 3314.3 857.56 3323.28 857.02 3332.6 856.58 3342.25 856.25 3352.18 \
856.04 3362.37 855.98 3372.77 856.08 3383.37 856.36 3394.12 856.83 3405 857.51 3415.97 858.42 3427 859.57 3438.07 860.98 3449.12 \
862.67 3460.15 864.65 3471.1 866.94 3481.96 869.56 3492.68 872.52 3503.24 875.84 3513.61 879.53 3523.74 883.61 3526.52 884.92 3528.97 \
886.32 3531.14 887.81 3533.07 889.37 3534.78 890.99 3536.32 892.66 3537.72 894.39 3539.02 896.16 3540.25 897.95 3541.46 899.77 3542.67 \
901.61 3543.92 903.44 3545.25 905.27 3546.69 907.07 3548.28 908.85 3550.05 910.57 3552.04 912.24 3554.29 913.83 3556.82 915.34 3559.66 \
916.74 3562.33 917.91 3565.03 919.03 3567.75 920.11 3570.49 921.15 3573.26 922.14 3576.05 923.09 3578.86 924 3581.69 924.87 3584.53 \
925.71 3587.39 926.5 3590.26 927.26 3593.15 927.98 3596.04 928.66 3598.95 929.31 3601.86 929.92 3604.77 930.51 3607.69 931.05 3610.61 \
931.57 3613.53 932.05 3616.45 932.51 3616.75 930.53 3613.84 930.1 3610.94 929.63 3608.04 929.14 3605.13 928.61 3602.24 928.05 3599.34 \
927.46 3596.46 926.84 3593.58 926.18 3590.71 925.48 3587.86 924.75 3585.02 923.98 3582.19 923.17 3579.38 922.32 3576.59 921.44 3573.82 \
920.51 3571.07 919.54 3568.35 918.54 3565.65 917.49 3562.98 916.39 3560.34 915.26 3557.59 913.91 3555.15 912.49 3553 910.98 3551.1 \
909.4 3549.39 907.77 3547.86 906.08 3546.45 904.34 3545.15 902.57 3543.91 900.77 3542.69 898.96 3541.47 897.13 3540.2 895.31 3538.85 \
893.51 3537.39 891.73 3535.78 889.99 3533.98 888.31 3531.96 886.7 3529.69 885.17 3527.14 883.73 3524.26 882.39 3514.05 878.35 3503.62 \
874.71 3493 871.44 3482.22 868.54 3471.32 865.99 3460.32 863.76 3449.26 861.84 3438.17 860.22 3427.08 858.87 3416.03 857.79 3405.04 \
856.95 3394.15 856.33 3383.38 855.93 3372.78 855.72 3362.37 855.68 3352.18 855.8 3342.24 856.07 3332.6 856.46 3323.27 856.97 3314.3 \
857.56 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 3314.16 857.57 3308.49 862.02 3302.2 858.49 3307.88 854.04 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Extruction_return_value____insert________inject____built_ins👉 insertNljson_collection__opts___",
penwidth=2,
pos="s,3302.2,858.49 3314.3,857.56 3372.9,853.51 3457,854.58 3524,883 3544,891.48 3540.2,907.16 3560,916 3577.6,923.83 3597.2,928.66 \
3616.6,931.52",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
insertRefsAsList_items__opts___ [_ldraw_="F 14 5 -Agave c 7 -#44475a T 3726 894.8 0 210 31 -insertRefsAsList_items__opts___ ",
height=0.20833,
href="#insertRefsAsList_items__opts___",
pos="3726,898.5",
shape=plain,
width=2.9167];
Extruction_return_value____insert________inject____built_ins -> insertRefsAsList_items__opts___ [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 82 3388.1 874.23 3394.68 874.65 3401.33 875.08 3408.02 875.52 3414.76 \
875.96 3421.55 876.41 3428.36 876.86 3435.21 877.32 3442.07 877.78 3448.95 878.24 3455.84 878.71 3462.74 879.19 3469.63 879.66 3476.52 \
880.14 3483.39 880.62 3490.24 881.1 3497.06 881.59 3503.85 882.08 3510.6 882.57 3517.31 883.06 3523.96 883.55 3529.42 883.96 3534.92 \
884.37 3540.46 884.8 3546.05 885.23 3551.65 885.66 3557.28 886.1 3562.93 886.55 3568.58 887 3574.24 887.45 3579.89 887.91 3585.53 \
888.37 3591.15 888.83 3596.74 889.29 3602.3 889.75 3607.83 890.21 3613.3 890.66 3618.73 891.12 3624.09 891.57 3629.39 892.02 3634.62 \
892.47 3634.78 890.47 3629.55 890.07 3624.25 889.66 3618.88 889.26 3613.45 888.84 3607.97 888.43 3602.44 888.02 3596.87 887.6 3591.28 \
887.19 3585.65 886.77 3580.01 886.36 3574.36 885.95 3568.7 885.54 3563.04 885.13 3557.39 884.73 3551.75 884.34 3546.14 883.95 3540.55 \
883.56 3535 883.18 3529.5 882.81 3524.04 882.45 3517.38 882.01 3510.67 881.58 3503.91 881.14 3497.12 880.71 3490.29 880.28 3483.44 \
879.85 3476.56 879.42 3469.68 879 3462.78 878.58 3455.88 878.16 3448.98 877.75 3442.1 877.34 3435.23 876.94 3428.38 876.54 3421.56 \
876.14 3414.78 875.75 3408.03 875.36 3401.33 874.98 3394.69 874.6 3388.1 874.23 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 3387.88 874.22 3381.65 877.85 3375.9 873.5 3382.13 869.87 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Extruction_return_value____insert________inject____built_ins👉 insertRefsAsList_items__opts___",
penwidth=2,
pos="s,3375.9,873.5 3388.1,874.23 3431.8,876.86 3479.8,879.9 3524,883 3560.2,885.54 3600.1,888.66 3634.7,891.47",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
insertRefsAsNljson_items__optsOrFn___ [_ldraw_="F 14 5 -Agave c 7 -#44475a T 3726 862.8 0 250 37 -insertRefsAsNljson_items__optsOrFn___ ",
height=0.20833,
href="#insertRefsAsNljson_items__optsOrFn___",
pos="3726,866.5",
shape=plain,
width=3.4722];
Extruction_return_value____insert________inject____built_ins -> insertRefsAsNljson_items__optsOrFn___ [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 42 3457.8 866 3465.13 866.05 3472.48 866.1 3479.83 866.15 3487.19 \
866.21 3494.55 866.26 3501.9 866.31 3509.24 866.36 3516.56 866.41 3523.84 866.46 3531.1 866.51 3538.32 866.56 3545.49 866.61 3552.61 \
866.66 3559.67 866.71 3566.67 866.76 3573.6 866.81 3580.46 866.86 3587.23 866.91 3593.91 866.95 3600.5 867 3600.5 865 3593.91 865.05 \
3587.23 865.09 3580.46 865.14 3573.6 865.19 3566.67 865.24 3559.67 865.29 3552.61 865.34 3545.49 865.39 3538.32 865.44 3531.1 865.49 \
3523.84 865.54 3516.56 865.59 3509.24 865.64 3501.9 865.69 3494.55 865.74 3487.19 865.79 3479.83 865.85 3472.48 865.9 3465.13 865.95 \
3457.8 866 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 3457.7 866 3451.7 870 3445.7 866 3451.7 862 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Extruction_return_value____insert________inject____built_ins👉 insertRefsAsNljson_items__optsOrFn___",
penwidth=2,
pos="s,3445.7,866 3457.8,866 3506.6,866 3556.9,866 3600.5,866",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
buildUrl_content__mimeType___ [_ldraw_="F 14 5 -Agave c 7 -#44475a T 3726 828.8 0 196 29 -buildUrl_content__mimeType___ ",
height=0.20833,
href="#buildUrl_content__mimeType___",
pos="3726,832.5",
shape=plain,
width=2.7222];
Extruction_return_value____insert________inject____built_ins -> buildUrl_content__mimeType___ [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 82 3400.5 857.81 3406.57 857.49 3412.67 857.16 3418.81 856.82 3424.99 \
856.48 3431.18 856.14 3437.4 855.79 3443.63 855.44 3449.87 855.08 3456.13 854.72 3462.38 854.36 3468.63 853.99 3474.87 853.62 3481.11 \
853.24 3487.32 852.86 3493.52 852.48 3499.69 852.09 3505.83 851.7 3511.94 851.31 3518.01 850.91 3524.04 850.51 3529.9 850.12 3535.82 \
849.71 3541.79 849.29 3547.79 848.87 3553.82 848.43 3559.87 847.99 3565.94 847.54 3572.01 847.09 3578.07 846.63 3584.12 846.16 3590.16 \
845.7 3596.16 845.23 3602.13 844.76 3608.05 844.29 3613.92 843.81 3619.73 843.34 3625.47 842.88 3631.13 842.41 3636.71 841.95 3642.19 \
841.5 3642.01 839.5 3636.54 840 3630.96 840.51 3625.31 841.02 3619.57 841.54 3613.77 842.06 3607.91 842.57 3601.99 843.09 3596.03 \
843.61 3590.03 844.13 3584 844.65 3577.95 845.16 3571.89 845.67 3565.83 846.18 3559.77 846.68 3553.72 847.17 3547.7 847.65 3541.7 \
848.13 3535.74 848.59 3529.83 849.05 3523.96 849.49 3517.94 849.94 3511.88 850.39 3505.77 850.83 3499.64 851.27 3493.47 851.71 3487.28 \
852.14 3481.06 852.58 3474.83 853 3468.59 853.43 3462.35 853.85 3456.1 854.26 3449.85 854.68 3443.61 855.09 3437.38 855.49 3431.17 \
855.89 3424.97 856.28 3418.81 856.67 3412.67 857.06 3406.56 857.44 3400.5 857.81 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 3400.38 857.82 3394.62 862.15 3388.4 858.5 3394.16 854.16 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Extruction_return_value____insert________inject____built_ins👉 buildUrl_content__mimeType___",
penwidth=2,
pos="s,3388.4,858.5 3400.5,857.81 3440.8,855.5 3484,852.84 3524,850 3562.9,847.25 3605.9,843.67 3642.1,840.5",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
Mixed_output [_ldraw_="F 14 5 -Agave c 7 -#44475a T 3726 795.8 0 82 12 -Mixed_output ",
height=0.20833,
href="#Mixed_output",
pos="3726,799.5",
shape=plain,
width=1.1389];
Extruction_return_value____insert________inject____built_ins -> Mixed_output [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 122 3311.6 874.55 3320.59 875.21 3329.95 875.78 3339.65 876.25 \
3349.65 876.59 3359.93 876.79 3370.45 876.82 3381.18 876.68 3392.08 876.34 3403.11 875.79 3414.26 875.01 3425.48 873.98 3436.73 \
872.68 3448 871.09 3459.23 869.2 3470.41 866.99 3481.49 864.45 3492.45 861.54 3503.24 858.26 3513.84 854.59 3524.22 850.51 3527.08 \
849.18 3529.63 847.75 3531.89 846.22 3533.9 844.62 3535.69 842.95 3537.3 841.22 3538.76 839.45 3540.1 837.65 3541.36 835.84 3542.59 \
834.01 3543.8 832.19 3545.04 830.39 3546.35 828.61 3547.76 826.87 3549.3 825.17 3551.01 823.52 3552.92 821.93 3555.08 820.41 3557.52 \
818.97 3560.28 817.61 3566.29 815.08 3572.44 812.76 3578.71 810.65 3585.09 808.74 3591.54 807.02 3598.05 805.49 3604.6 804.12 3611.18 \
802.93 3617.75 801.89 3624.31 801 3630.83 800.24 3637.28 799.62 3643.67 799.12 3649.95 798.73 3656.11 798.44 3662.14 798.25 3668.01 \
798.15 3673.7 798.12 3679.2 798.17 3684.48 798.27 3684.52 796.27 3679.22 796.19 3673.7 796.18 3667.98 796.23 3662.09 796.37 3656.04 \
796.59 3649.85 796.91 3643.54 797.33 3637.13 797.87 3630.64 798.53 3624.09 799.32 3617.51 800.25 3610.9 801.33 3604.29 802.56 3597.71 \
803.97 3591.16 805.55 3584.68 807.31 3578.27 809.27 3571.96 811.43 3565.77 813.79 3559.72 816.39 3556.88 817.8 3554.36 819.3 3552.12 \
820.9 3550.14 822.56 3548.37 824.28 3546.79 826.05 3545.35 827.85 3544.03 829.67 3542.78 831.5 3541.56 833.33 3540.36 835.15 3539.12 \
836.95 3537.82 838.72 3536.41 840.44 3534.86 842.12 3533.14 843.74 3531.21 845.3 3529.04 846.78 3526.57 848.19 3523.78 849.49 3513.48 \
853.61 3502.93 857.32 3492.19 860.65 3481.28 863.6 3470.24 866.2 3459.1 868.46 3447.89 870.4 3436.65 872.04 3425.42 873.4 3414.22 \
874.49 3403.09 875.33 3392.06 875.93 3381.17 876.33 3370.45 876.52 3359.93 876.54 3349.66 876.39 3339.65 876.11 3329.95 875.69 3320.59 \
875.17 3311.6 874.55 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 3311.46 874.54 3305.14 878.01 3299.5 873.52 3305.82 870.04 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Extruction_return_value____insert________inject____built_ins👉 Mixed_output",
penwidth=2,
pos="s,3299.5,873.52 3311.6,874.55 3370.2,879.07 3455.9,878.74 3524,850 3544,841.56 3540.2,825.9 3560,817 3599.7,799.17 3650,796.49 3684.5,\
797.27",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
Return_nothing [_ldraw_="F 14 5 -Agave c 7 -#44475a T 3726 763.8 0 95 14 -Return_nothing ",
height=0.20833,
href="#Return_nothing",
pos="3726,767.5",
shape=plain,
width=1.3194];
Extruction_return_value____insert________inject____built_ins -> Return_nothing [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 122 3457.7 866.61 3462 866.15 3466.23 865.66 3470.37 865.13 3474.43 \
864.57 3478.41 863.98 3482.29 863.35 3486.07 862.68 3489.74 861.97 3493.31 861.22 3496.77 860.44 3500.11 859.61 3503.33 858.75 3506.42 \
857.84 3509.38 856.89 3512.21 855.89 3514.89 854.85 3517.43 853.76 3519.82 852.63 3522.06 851.45 3524.14 850.21 3528.05 847.45 3531.32 \
844.51 3534 841.43 3536.18 838.21 3537.92 834.89 3539.29 831.48 3540.36 827.99 3541.21 824.46 3541.92 820.89 3542.54 817.31 3543.17 \
813.73 3543.86 810.17 3544.69 806.65 3545.73 803.19 3547.04 799.8 3548.71 796.5 3550.79 793.3 3553.37 790.21 3556.52 787.26 3560.31 \
784.45 3565.56 781.19 3571 778.23 3576.6 775.55 3582.35 773.14 3588.21 770.99 3594.18 769.08 3600.24 767.42 3606.36 765.97 3612.52 \
764.74 3618.71 763.71 3624.9 762.86 3631.08 762.2 3637.23 761.69 3643.32 761.34 3649.34 761.13 3655.26 761.05 3661.07 761.09 3666.75 \
761.23 3672.28 761.46 3677.64 761.78 3677.76 759.78 3672.37 759.51 3666.81 759.31 3661.1 759.21 3655.25 759.22 3649.29 759.34 3643.23 \
759.6 3637.1 760 3630.92 760.55 3624.7 761.27 3618.47 762.17 3612.24 763.25 3606.04 764.54 3599.88 766.04 3593.79 767.77 3587.78 \
769.73 3581.87 771.95 3576.09 774.43 3570.46 777.18 3564.98 780.21 3559.69 783.55 3555.84 786.45 3552.62 789.51 3549.99 792.71 3547.87 \
796.02 3546.18 799.42 3544.86 802.9 3543.83 806.43 3543.02 809.99 3542.35 813.58 3541.76 817.17 3541.16 820.75 3540.48 824.3 3539.66 \
827.8 3538.63 831.25 3537.31 834.61 3535.63 837.89 3533.52 841.06 3530.9 844.11 3527.71 847.02 3523.86 849.79 3521.82 851.02 3519.61 \
852.2 3517.24 853.35 3514.73 854.45 3512.06 855.5 3509.26 856.52 3506.31 857.49 3503.24 858.42 3500.03 859.3 3496.7 860.15 3493.26 \
860.96 3489.7 861.73 3486.03 862.47 3482.26 863.16 3478.38 863.82 3474.42 864.45 3470.36 865.04 3466.22 865.6 3462 866.12 3457.7 \
866.61 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 3457.45 866.63 3451.85 871.18 3445.5 867.76 3451.1 863.21 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Extruction_return_value____insert________inject____built_ins👉 Return_nothing",
penwidth=2,
pos="s,3445.5,867.76 3457.7,866.61 3486.6,863.55 3510.8,858.37 3524,850 3552.2,832.13 3532.2,802.51 3560,784 3594.5,761.01 3642.5,758.56 \
3677.7,760.78",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
State_still_via__mdtState_ [_ldraw_="F 14 5 -Agave c 7 -#44475a T 3726 729.8 0 176 26 -State_still_via__mdtState_ ",
height=0.20833,
href="#State_still_via__mdtState_",
pos="3726,733.5",
shape=plain,
width=2.4444];
Extruction_return_value____insert________inject____built_ins -> State_still_via__mdtState_ [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 122 3457.9 868.34 3462.24 867.85 3466.51 867.33 3470.69 866.76 \
3474.78 866.16 3478.77 865.51 3482.67 864.82 3486.46 864.09 3490.15 863.31 3493.72 862.49 3497.17 861.63 3500.5 860.71 3503.7 859.75 \
3506.77 858.74 3509.7 857.67 3512.49 856.56 3515.13 855.4 3517.62 854.18 3519.96 852.9 3522.13 851.57 3524.14 850.18 3529.26 845.89 \
3533.36 841.38 3536.55 836.7 3538.92 831.86 3540.61 826.88 3541.72 821.79 3542.37 816.62 3542.66 811.39 3542.73 806.11 3542.67 800.82 \
3542.61 795.52 3542.66 790.25 3542.93 785.03 3543.53 779.88 3544.58 774.81 3546.18 769.86 3548.44 765.03 3551.48 760.35 3555.42 \
755.82 3560.37 751.46 3565.44 747.81 3570.73 744.49 3576.21 741.5 3581.86 738.83 3587.66 736.46 3593.59 734.38 3599.63 732.57 3605.75 \
731.02 3611.94 729.71 3618.18 728.64 3624.43 727.78 3630.68 727.12 3636.91 726.66 3643.1 726.36 3649.22 726.23 3655.26 726.24 3661.19 \
726.39 3666.99 726.65 3672.64 727.01 3678.12 727.47 3678.28 725.47 3672.77 725.05 3667.09 724.73 3661.25 724.5 3655.28 724.4 3649.2 \
724.42 3643.03 724.6 3636.8 724.93 3630.53 725.45 3624.23 726.15 3617.92 727.05 3611.64 728.18 3605.41 729.54 3599.23 731.14 3593.14 \
733.01 3587.16 735.16 3581.31 737.59 3575.61 740.33 3570.08 743.39 3564.75 746.79 3559.63 750.54 3554.6 755.02 3550.6 759.69 3547.51 \
764.52 3545.22 769.49 3543.61 774.56 3542.58 779.73 3542.01 784.96 3541.77 790.23 3541.76 795.53 3541.85 800.83 3541.94 806.11 3541.91 \
811.36 3541.65 816.56 3541.05 821.68 3539.99 826.71 3538.36 831.62 3536.04 836.41 3532.94 841.05 3528.91 845.52 3523.86 849.82 3521.89 \
851.2 3519.74 852.53 3517.44 853.82 3514.97 855.04 3512.35 856.22 3509.58 857.35 3506.66 858.43 3503.61 859.46 3500.42 860.44 3497.1 \
861.37 3493.66 862.26 3490.1 863.1 3486.42 863.9 3482.64 864.66 3478.75 865.37 3474.76 866.05 3470.67 866.68 3466.5 867.27 3462.24 \
867.82 3457.9 868.34 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 3457.54 868.37 3451.96 872.94 3445.6 869.54 3451.18 864.98 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Extruction_return_value____insert________inject____built_ins👉 State_still_via__mdtState_",
penwidth=2,
pos="s,3445.6,869.54 3457.9,868.34 3487.1,865.12 3511.3,859.43 3524,850 3561.6,822.06 3523.1,779.8 3560,751 3593.2,725.13 3642.2,723.3 \
3678.2,726.47",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
Adapters____search____searchVotes____votesAsRefs_ [_ldraw_="F 14 5 -Agave c 7 -#44475a T 3726 696.8 0 331 49 -Adapters____search____searchVotes____votesAsRefs_ ",
height=0.20833,
href="#Adapters____search____searchVotes____votesAsRefs_",
pos="3726,700.5",
shape=plain,
width=4.5972];
Extruction_return_value____insert________inject____built_ins -> Adapters____search____searchVotes____votesAsRefs_ [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 122 3457.6 869.32 3461.99 868.82 3466.3 868.27 3470.52 867.69 3474.65 \
867.06 3478.69 866.38 3482.62 865.66 3486.45 864.9 3490.17 864.08 3493.77 863.22 3497.24 862.31 3500.59 861.34 3503.81 860.33 3506.89 \
859.26 3509.82 858.13 3512.61 856.95 3515.24 855.71 3517.72 854.41 3520.02 853.06 3522.16 851.64 3524.13 850.16 3530.5 844.3 3535.46 \
838.21 3539.15 831.92 3541.73 825.44 3543.36 818.82 3544.2 812.07 3544.39 805.23 3544.11 798.31 3543.51 791.35 3542.75 784.36 3541.98 \
777.37 3541.36 770.41 3541.04 763.5 3541.19 756.66 3541.96 749.93 3543.49 743.32 3545.94 736.85 3549.47 730.54 3554.24 724.41 3560.41 \
718.47 3565.63 714.39 3571.13 710.71 3576.86 707.43 3582.81 704.53 3588.94 701.99 3595.22 699.79 3601.63 697.91 3608.15 696.33 3614.74 \
695.04 3621.37 694.02 3628.03 693.24 3634.68 692.7 3641.29 692.37 3647.84 692.24 3654.3 692.28 3660.64 692.48 3666.84 692.82 3672.86 \
693.28 3678.69 693.84 3684.29 694.48 3684.51 692.5 3678.89 691.88 3673.02 691.35 3666.96 690.92 3660.72 690.62 3654.33 690.45 3647.82 \
690.45 3641.23 690.63 3634.56 691 3627.86 691.58 3621.15 692.4 3614.46 693.47 3607.81 694.81 3601.24 696.44 3594.76 698.38 3588.42 \
700.65 3582.23 703.26 3576.22 706.23 3570.43 709.59 3564.88 713.35 3559.59 717.53 3553.35 723.61 3548.51 729.91 3544.94 736.38 3542.47 \
743.01 3540.95 749.76 3540.21 756.6 3540.1 763.51 3540.45 770.47 3541.12 777.46 3541.93 784.45 3542.73 791.43 3543.37 798.36 3543.69 \
805.23 3543.53 812.02 3542.75 818.71 3541.17 825.27 3538.66 831.68 3535.04 837.92 3530.17 843.99 3523.87 849.84 3521.94 851.32 3519.82 \
852.74 3517.54 854.1 3515.09 855.4 3512.47 856.65 3509.71 857.84 3506.79 858.98 3503.72 860.07 3500.52 861.1 3497.18 862.08 3493.71 \
863.01 3490.12 863.9 3486.42 864.73 3482.59 865.52 3478.67 866.26 3474.64 866.96 3470.51 867.61 3466.29 868.22 3461.99 868.79 3457.6 \
869.32 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 3457.54 869.33 3451.96 873.89 3445.6 870.49 3451.18 865.93 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Extruction_return_value____insert________inject____built_ins👉 Adapters____search____searchVotes____votesAsRefs_",
penwidth=2,
pos="s,3445.6,870.49 3457.6,869.32 3487.1,866.02 3511.6,860.06 3524,850 3571.3,811.73 3513.6,757.35 3560,718 3594.1,689.02 3647.8,689.04 \
3684.4,693.49",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
Command_contract___all_verbs [_ldraw_="F 14 5 -Agave c 7 -#44475a T 3726 664.8 0 190 28 -Command_contract___all_verbs ",
height=0.20833,
href="#Command_contract___all_verbs",
pos="3726,668.5",
shape=plain,
width=2.6389];
Extruction_return_value____insert________inject____built_ins -> Command_contract___all_verbs [_draw_="S 15 -setlinewidth(2) S 7 -tapered c 9 -#fffffe00 C 7 -#282a36 P 122 3457.8 869.87 3462.2 869.36 3466.52 868.81 3470.75 868.21 3474.89 \
867.56 3478.93 866.88 3482.86 866.14 3486.69 865.35 3490.4 864.52 3493.99 863.63 3497.45 862.69 3500.79 861.69 3503.99 860.65 3507.05 \
859.54 3509.97 858.38 3512.73 857.16 3515.34 855.88 3517.79 854.54 3520.07 853.14 3522.19 851.67 3524.12 850.14 3531.75 842.7 3537.57 \
835.02 3541.78 827.11 3544.57 819 3546.14 810.73 3546.7 802.33 3546.44 793.82 3545.58 785.23 3544.3 776.59 3542.82 767.92 3541.33 \
759.24 3540.04 750.6 3539.14 742.01 3538.83 733.5 3539.31 725.1 3540.77 716.83 3543.42 708.71 3547.44 700.77 3553.04 693.02 3560.44 \
685.48 3565.69 681.17 3571.24 677.31 3577.04 673.88 3583.08 670.86 3589.32 668.23 3595.73 665.96 3602.29 664.04 3608.96 662.45 3615.7 \
661.17 3622.51 660.17 3629.33 659.44 3636.15 658.96 3642.92 658.7 3649.63 658.64 3656.24 658.77 3662.73 659.06 3669.05 659.5 3675.18 \
660.06 3681.1 660.71 3686.77 661.45 3687.03 659.47 3681.33 658.76 3675.37 658.13 3669.2 657.6 3662.83 657.19 3656.3 656.93 3649.64 \
656.84 3642.88 656.93 3636.05 657.23 3629.18 657.75 3622.29 658.53 3615.43 659.57 3608.62 660.9 3601.89 662.54 3595.26 664.52 3588.78 \
666.85 3582.47 669.55 3576.37 672.65 3570.49 676.16 3564.88 680.11 3559.56 684.52 3552.09 692.22 3546.41 700.15 3542.35 708.28 3539.7 \
716.56 3538.25 724.97 3537.81 733.49 3538.17 742.08 3539.12 750.72 3540.47 759.39 3542 768.06 3543.53 776.71 3544.84 785.32 3545.75 \
793.87 3546.05 802.32 3545.54 810.66 3544.02 818.86 3541.3 826.9 3537.17 834.76 3531.43 842.42 3523.88 849.86 3521.97 851.39 3519.89 \
852.85 3517.63 854.26 3515.2 855.61 3512.61 856.89 3509.86 858.12 3506.96 859.3 3503.91 860.41 3500.72 861.48 3497.4 862.48 3493.94 \
863.44 3490.36 864.35 3486.65 865.2 3482.83 866.01 3478.91 866.77 3474.87 867.48 3470.74 868.14 3466.51 868.76 3462.2 869.34 3457.8 \
869.87 ",
_tdraw_="S 15 -setlinewidth(2) S 5 -solid c 7 -#282a36 C 7 -#282a36 P 4 3457.64 869.89 3452.06 874.45 3445.7 871.06 3451.28 866.49 ",
arrowsize=1.0,
arrowtail=diamond,
constrained=false,
dir=back,
href="#Extruction_return_value____insert________inject____built_ins👉 Command_contract___all_verbs",
penwidth=2,
pos="s,3445.7,871.06 3457.8,869.87 3487.4,866.53 3511.8,860.41 3524,850 3581.1,801.27 3504,735.03 3560,685 3594.2,654.38 3649.9,655.4 \
3686.9,660.46",
reverse=false,
style=tapered,
tooltip="*= consistsOf",
type=consistsOf];
}
}