Merge pull request #665 from gavin-ts/fix-md-li-measurement

render: fixing markdown li measurement
This commit is contained in:
gavin-ts 2023-01-16 14:58:16 -08:00 committed by GitHub
commit bd15db4fdf
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
36 changed files with 2276 additions and 171 deletions

View file

@ -16,3 +16,4 @@
- Fixes arrowheads sometimes appearing broken with sketch on. [#656](https://github.com/terrastruct/d2/pull/656)
- Fixes code snippets not being tall enough with leading newlines. [#664](https://github.com/terrastruct/d2/pull/664)
- Icon URLs that needed escaping (e.g. with ampersands) are handled correctly by CLI. [#666](https://github.com/terrastruct/d2/pull/666)
- Fixes markdown shapes being slightly too short for their text in some cases. [#665](https://github.com/terrastruct/d2/pull/665)

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 389 KiB

After

Width:  |  Height:  |  Size: 389 KiB

View file

@ -364,6 +364,14 @@ no leading: |python
|
`,
},
{
name: "md_h1_li_li",
script: mdTestScript(`
# hey
- they
1. they
`),
},
}
runa(t, tcs)

View file

@ -0,0 +1,223 @@
{
"name": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
"id": "md",
"type": "text",
"pos": {
"x": 9,
"y": 226
},
"width": 95,
"height": 115,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "transparent",
"stroke": "#0A0F25",
"shadow": false,
"3d": false,
"multiple": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "\n# hey\n- they\n\t1. they\n",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "markdown",
"color": "#0A0F25",
"italic": false,
"bold": false,
"underline": false,
"labelWidth": 95,
"labelHeight": 115,
"zIndex": 0,
"level": 1
},
{
"id": "a",
"type": "",
"pos": {
"x": 0,
"y": 0
},
"width": 113,
"height": 126,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "#F7F8FE",
"stroke": "#0D32B2",
"shadow": false,
"3d": false,
"multiple": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "a",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "",
"color": "#0A0F25",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 13,
"labelHeight": 26,
"labelPosition": "INSIDE_MIDDLE_CENTER",
"zIndex": 0,
"level": 1
},
{
"id": "b",
"type": "",
"pos": {
"x": 0,
"y": 441
},
"width": 113,
"height": 126,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "#F7F8FE",
"stroke": "#0D32B2",
"shadow": false,
"3d": false,
"multiple": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "b",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "",
"color": "#0A0F25",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 13,
"labelHeight": 26,
"labelPosition": "INSIDE_MIDDLE_CENTER",
"zIndex": 0,
"level": 1
}
],
"connections": [
{
"id": "(a -> md)[0]",
"src": "a",
"srcArrow": "none",
"srcLabel": "",
"dst": "md",
"dstArrow": "triangle",
"dstLabel": "",
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"stroke": "#0D32B2",
"label": "",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "",
"color": "#676C7E",
"italic": true,
"bold": false,
"underline": false,
"labelWidth": 0,
"labelHeight": 0,
"labelPosition": "",
"labelPercentage": 0,
"route": [
{
"x": 56.5,
"y": 126
},
{
"x": 56.5,
"y": 166
},
{
"x": 56.5,
"y": 186
},
{
"x": 56.5,
"y": 226
}
],
"isCurve": true,
"animated": false,
"tooltip": "",
"icon": null,
"zIndex": 0
},
{
"id": "(md -> b)[0]",
"src": "md",
"srcArrow": "none",
"srcLabel": "",
"dst": "b",
"dstArrow": "triangle",
"dstLabel": "",
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"stroke": "#0D32B2",
"label": "",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "",
"color": "#676C7E",
"italic": true,
"bold": false,
"underline": false,
"labelWidth": 0,
"labelHeight": 0,
"labelPosition": "",
"labelPercentage": 0,
"route": [
{
"x": 56.5,
"y": 341
},
{
"x": 56.5,
"y": 381
},
{
"x": 56.5,
"y": 401
},
{
"x": 56.5,
"y": 441
}
],
"isCurve": true,
"animated": false,
"tooltip": "",
"icon": null,
"zIndex": 0
}
]
}

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 661 KiB

View file

@ -0,0 +1,205 @@
{
"name": "",
"fontFamily": "SourceSansPro",
"shapes": [
{
"id": "md",
"type": "text",
"pos": {
"x": 21,
"y": 238
},
"width": 95,
"height": 115,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "transparent",
"stroke": "#0A0F25",
"shadow": false,
"3d": false,
"multiple": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "\n# hey\n- they\n\t1. they\n",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "markdown",
"color": "#0A0F25",
"italic": false,
"bold": false,
"underline": false,
"labelWidth": 95,
"labelHeight": 115,
"zIndex": 0,
"level": 1
},
{
"id": "a",
"type": "",
"pos": {
"x": 12,
"y": 12
},
"width": 113,
"height": 126,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "#F7F8FE",
"stroke": "#0D32B2",
"shadow": false,
"3d": false,
"multiple": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "a",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "",
"color": "#0A0F25",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 13,
"labelHeight": 26,
"labelPosition": "INSIDE_MIDDLE_CENTER",
"zIndex": 0,
"level": 1
},
{
"id": "b",
"type": "",
"pos": {
"x": 12,
"y": 453
},
"width": 113,
"height": 126,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "#F7F8FE",
"stroke": "#0D32B2",
"shadow": false,
"3d": false,
"multiple": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "b",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "",
"color": "#0A0F25",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 13,
"labelHeight": 26,
"labelPosition": "INSIDE_MIDDLE_CENTER",
"zIndex": 0,
"level": 1
}
],
"connections": [
{
"id": "(a -> md)[0]",
"src": "a",
"srcArrow": "none",
"srcLabel": "",
"dst": "md",
"dstArrow": "triangle",
"dstLabel": "",
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"stroke": "#0D32B2",
"label": "",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "",
"color": "#676C7E",
"italic": true,
"bold": false,
"underline": false,
"labelWidth": 0,
"labelHeight": 0,
"labelPosition": "",
"labelPercentage": 0,
"route": [
{
"x": 68.5,
"y": 138
},
{
"x": 68.5,
"y": 238
}
],
"animated": false,
"tooltip": "",
"icon": null,
"zIndex": 0
},
{
"id": "(md -> b)[0]",
"src": "md",
"srcArrow": "none",
"srcLabel": "",
"dst": "b",
"dstArrow": "triangle",
"dstLabel": "",
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"stroke": "#0D32B2",
"label": "",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "",
"color": "#676C7E",
"italic": true,
"bold": false,
"underline": false,
"labelWidth": 0,
"labelHeight": 0,
"labelPosition": "",
"labelPercentage": 0,
"route": [
{
"x": 68.5,
"y": 353
},
{
"x": 68.5,
"y": 453
}
],
"animated": false,
"tooltip": "",
"icon": null,
"zIndex": 0
}
]
}

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 661 KiB

View file

@ -210,7 +210,7 @@
"y": 372
},
"width": 943,
"height": 130,
"height": 131,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
@ -237,7 +237,7 @@
"bold": false,
"underline": false,
"labelWidth": 943,
"labelHeight": 130,
"labelHeight": 131,
"labelPosition": "INSIDE_MIDDLE_CENTER",
"zIndex": 0,
"level": 1

View file

@ -3,7 +3,7 @@
id="d2-svg"
style="background: white;"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
width="1410" height="747" viewBox="-643 -143 1410 747"><style type="text/css">
width="1410" height="748" viewBox="-643 -143 1410 748"><style type="text/css">
<![CDATA[
.shape {
shape-rendering: geometricPrecision;
@ -796,11 +796,11 @@ width="1410" height="747" viewBox="-643 -143 1410 747"><style type="text/css">
.md .contains-task-list:dir(rtl) .task-list-item-checkbox {
margin: 0 -1.6em 0.25em 0.2em;
}
</style><g id="x"><g class="shape" ><rect x="1" y="0" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="57.500000" y="66.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">x</text></g><g id="y"><g class="shape" ><rect x="0" y="226" width="114" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="57.000000" y="292.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">y</text></g><g id="The top of the mountain"><g class="shape" ></g><text class="text" x="57.000000" y="-25.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">The top of the mountain</text></g><g id="Joe"><g class="shape" ><path d="M -20 239 H -151 V 237.2093 C -151 215.7209 -136.6149 196.3488 -113.9824 187.0698 C -126.4495 179.5814 -133.9297 167.3721 -133.9297 154.0233 C -133.9297 131.3953 -112.2562 113 -85.5959 113 C -58.9356 113 -37.2621 131.3953 -37.2621 154.0233 C -37.2621 167.3721 -44.5505 179.4186 -57.2094 187.2326 C -34.5769 196.5117 -20.1918 215.8838 -20.1918 237.3721 V 239 H -20 Z" style="fill:#E3E9FD;stroke:#0D32B2;opacity:1.000000;stroke-width:2;"/></g><text class="text-bold" x="-85.500000" y="179.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">Joe</text></g><g id="Donald"><g class="shape" ><path d="M 289 239 H 134 V 237.2093 C 134 215.7209 151.0205 196.3488 177.7994 187.0698 C 163.0483 179.5814 154.1977 167.3721 154.1977 154.0233 C 154.1977 131.3953 179.8419 113 211.3865 113 C 242.9312 113 268.5754 131.3953 268.5754 154.0233 C 268.5754 167.3721 259.9517 179.4186 244.9736 187.2326 C 271.7525 196.5117 288.773 215.8838 288.773 237.3721 V 239 H 289 Z" style="fill:#E3E9FD;stroke:#0D32B2;opacity:1.000000;stroke-width:2;"/></g><text class="text-bold" x="211.500000" y="179.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">Donald</text></g><g id="bottom"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="-414.000000" y="372.000000" width="943" height="130"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><h1>Cats, no less liquid than their shadows, offer no angles to the wind.</h1>
</style><g id="x"><g class="shape" ><rect x="1" y="0" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="57.500000" y="66.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">x</text></g><g id="y"><g class="shape" ><rect x="0" y="226" width="114" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="57.000000" y="292.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">y</text></g><g id="The top of the mountain"><g class="shape" ></g><text class="text" x="57.000000" y="-25.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">The top of the mountain</text></g><g id="Joe"><g class="shape" ><path d="M -20 239 H -151 V 237.2093 C -151 215.7209 -136.6149 196.3488 -113.9824 187.0698 C -126.4495 179.5814 -133.9297 167.3721 -133.9297 154.0233 C -133.9297 131.3953 -112.2562 113 -85.5959 113 C -58.9356 113 -37.2621 131.3953 -37.2621 154.0233 C -37.2621 167.3721 -44.5505 179.4186 -57.2094 187.2326 C -34.5769 196.5117 -20.1918 215.8838 -20.1918 237.3721 V 239 H -20 Z" style="fill:#E3E9FD;stroke:#0D32B2;opacity:1.000000;stroke-width:2;"/></g><text class="text-bold" x="-85.500000" y="179.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">Joe</text></g><g id="Donald"><g class="shape" ><path d="M 289 239 H 134 V 237.2093 C 134 215.7209 151.0205 196.3488 177.7994 187.0698 C 163.0483 179.5814 154.1977 167.3721 154.1977 154.0233 C 154.1977 131.3953 179.8419 113 211.3865 113 C 242.9312 113 268.5754 131.3953 268.5754 154.0233 C 268.5754 167.3721 259.9517 179.4186 244.9736 187.2326 C 271.7525 196.5117 288.773 215.8838 288.773 237.3721 V 239 H 289 Z" style="fill:#E3E9FD;stroke:#0D32B2;opacity:1.000000;stroke-width:2;"/></g><text class="text-bold" x="211.500000" y="179.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">Donald</text></g><g id="bottom"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="-414.000000" y="372.000000" width="943" height="131"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><h1>Cats, no less liquid than their shadows, offer no angles to the wind.</h1>
<p>If we can't fix it, it ain't broke.</p>
<p>Dieters live life in the fasting lane.</p>
</div></foreignObject></g></g><g id="i am top left"><g class="shape" ></g><text class="text" x="-474.000000" y="-25.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">i am top left</text></g><g id="i am top right"><g class="shape" ></g><text class="text" x="593.000000" y="-25.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">i am top right</text></g><g id="i am bottom left"><g class="shape" ></g><text class="text" x="-487.500000" y="388.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">i am bottom left</text></g><g id="i am bottom right"><g class="shape" ></g><text class="text" x="606.500000" y="388.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">i am bottom right</text></g><g id="(x -&gt; y)[0]"><marker id="mk-3990223579" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 57.000000 128.000000 C 57.000000 166.000000 57.000000 186.000000 57.000000 222.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#2700780232)"/></g><mask id="2700780232" maskUnits="userSpaceOnUse" x="-100" y="-100" width="1410" height="747">
<rect x="-100" y="-100" width="1410" height="747" fill="white"></rect>
</div></foreignObject></g></g><g id="i am top left"><g class="shape" ></g><text class="text" x="-474.000000" y="-25.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">i am top left</text></g><g id="i am top right"><g class="shape" ></g><text class="text" x="593.000000" y="-25.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">i am top right</text></g><g id="i am bottom left"><g class="shape" ></g><text class="text" x="-487.500000" y="388.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">i am bottom left</text></g><g id="i am bottom right"><g class="shape" ></g><text class="text" x="606.500000" y="388.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">i am bottom right</text></g><g id="(x -&gt; y)[0]"><marker id="mk-3990223579" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 57.000000 128.000000 C 57.000000 166.000000 57.000000 186.000000 57.000000 222.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#745848506)"/></g><mask id="745848506" maskUnits="userSpaceOnUse" x="-100" y="-100" width="1410" height="748">
<rect x="-100" y="-100" width="1410" height="748" fill="white"></rect>
</mask><style type="text/css"><![CDATA[
.text {

Before

Width:  |  Height:  |  Size: 663 KiB

After

Width:  |  Height:  |  Size: 662 KiB

View file

@ -210,7 +210,7 @@
"y": 384
},
"width": 943,
"height": 130,
"height": 131,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
@ -237,7 +237,7 @@
"bold": false,
"underline": false,
"labelWidth": 943,
"labelHeight": 130,
"labelHeight": 131,
"labelPosition": "INSIDE_MIDDLE_CENTER",
"zIndex": 0,
"level": 1

View file

@ -3,7 +3,7 @@
id="d2-svg"
style="background: white;"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
width="1410" height="747" viewBox="-631 -131 1410 747"><style type="text/css">
width="1410" height="748" viewBox="-631 -131 1410 748"><style type="text/css">
<![CDATA[
.shape {
shape-rendering: geometricPrecision;
@ -796,11 +796,11 @@ width="1410" height="747" viewBox="-631 -131 1410 747"><style type="text/css">
.md .contains-task-list:dir(rtl) .task-list-item-checkbox {
margin: 0 -1.6em 0.25em 0.2em;
}
</style><g id="x"><g class="shape" ><rect x="12" y="12" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="68.500000" y="78.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">x</text></g><g id="y"><g class="shape" ><rect x="12" y="238" width="114" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="69.000000" y="304.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">y</text></g><g id="The top of the mountain"><g class="shape" ></g><text class="text" x="69.000000" y="-13.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">The top of the mountain</text></g><g id="Joe"><g class="shape" ><path d="M -8 251 H -139 V 249.2093 C -139 227.7209 -124.6149 208.3488 -101.9824 199.0698 C -114.4495 191.5814 -121.9297 179.3721 -121.9297 166.0233 C -121.9297 143.3953 -100.2562 125 -73.5959 125 C -46.9356 125 -25.2621 143.3953 -25.2621 166.0233 C -25.2621 179.3721 -32.5505 191.4186 -45.2094 199.2326 C -22.5769 208.5117 -8.1918 227.8838 -8.1918 249.3721 V 251 H -8 Z" style="fill:#E3E9FD;stroke:#0D32B2;opacity:1.000000;stroke-width:2;"/></g><text class="text-bold" x="-73.500000" y="191.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">Joe</text></g><g id="Donald"><g class="shape" ><path d="M 301 251 H 146 V 249.2093 C 146 227.7209 163.0205 208.3488 189.7994 199.0698 C 175.0483 191.5814 166.1977 179.3721 166.1977 166.0233 C 166.1977 143.3953 191.8419 125 223.3865 125 C 254.9312 125 280.5754 143.3953 280.5754 166.0233 C 280.5754 179.3721 271.9517 191.4186 256.9736 199.2326 C 283.7525 208.5117 300.773 227.8838 300.773 249.3721 V 251 H 301 Z" style="fill:#E3E9FD;stroke:#0D32B2;opacity:1.000000;stroke-width:2;"/></g><text class="text-bold" x="223.500000" y="191.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">Donald</text></g><g id="bottom"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="-402.000000" y="384.000000" width="943" height="130"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><h1>Cats, no less liquid than their shadows, offer no angles to the wind.</h1>
</style><g id="x"><g class="shape" ><rect x="12" y="12" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="68.500000" y="78.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">x</text></g><g id="y"><g class="shape" ><rect x="12" y="238" width="114" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="69.000000" y="304.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">y</text></g><g id="The top of the mountain"><g class="shape" ></g><text class="text" x="69.000000" y="-13.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">The top of the mountain</text></g><g id="Joe"><g class="shape" ><path d="M -8 251 H -139 V 249.2093 C -139 227.7209 -124.6149 208.3488 -101.9824 199.0698 C -114.4495 191.5814 -121.9297 179.3721 -121.9297 166.0233 C -121.9297 143.3953 -100.2562 125 -73.5959 125 C -46.9356 125 -25.2621 143.3953 -25.2621 166.0233 C -25.2621 179.3721 -32.5505 191.4186 -45.2094 199.2326 C -22.5769 208.5117 -8.1918 227.8838 -8.1918 249.3721 V 251 H -8 Z" style="fill:#E3E9FD;stroke:#0D32B2;opacity:1.000000;stroke-width:2;"/></g><text class="text-bold" x="-73.500000" y="191.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">Joe</text></g><g id="Donald"><g class="shape" ><path d="M 301 251 H 146 V 249.2093 C 146 227.7209 163.0205 208.3488 189.7994 199.0698 C 175.0483 191.5814 166.1977 179.3721 166.1977 166.0233 C 166.1977 143.3953 191.8419 125 223.3865 125 C 254.9312 125 280.5754 143.3953 280.5754 166.0233 C 280.5754 179.3721 271.9517 191.4186 256.9736 199.2326 C 283.7525 208.5117 300.773 227.8838 300.773 249.3721 V 251 H 301 Z" style="fill:#E3E9FD;stroke:#0D32B2;opacity:1.000000;stroke-width:2;"/></g><text class="text-bold" x="223.500000" y="191.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">Donald</text></g><g id="bottom"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="-402.000000" y="384.000000" width="943" height="131"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><h1>Cats, no less liquid than their shadows, offer no angles to the wind.</h1>
<p>If we can't fix it, it ain't broke.</p>
<p>Dieters live life in the fasting lane.</p>
</div></foreignObject></g></g><g id="i am top left"><g class="shape" ></g><text class="text" x="-462.000000" y="-13.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">i am top left</text></g><g id="i am top right"><g class="shape" ></g><text class="text" x="605.000000" y="-13.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">i am top right</text></g><g id="i am bottom left"><g class="shape" ></g><text class="text" x="-475.500000" y="400.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">i am bottom left</text></g><g id="i am bottom right"><g class="shape" ></g><text class="text" x="618.500000" y="400.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">i am bottom right</text></g><g id="(x -&gt; y)[0]"><marker id="mk-3990223579" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 69.000000 140.000000 L 69.000000 234.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#569704615)"/></g><mask id="569704615" maskUnits="userSpaceOnUse" x="-100" y="-100" width="1410" height="747">
<rect x="-100" y="-100" width="1410" height="747" fill="white"></rect>
</div></foreignObject></g></g><g id="i am top left"><g class="shape" ></g><text class="text" x="-462.000000" y="-13.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">i am top left</text></g><g id="i am top right"><g class="shape" ></g><text class="text" x="605.000000" y="-13.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">i am top right</text></g><g id="i am bottom left"><g class="shape" ></g><text class="text" x="-475.500000" y="400.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">i am bottom left</text></g><g id="i am bottom right"><g class="shape" ></g><text class="text" x="618.500000" y="400.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">i am bottom right</text></g><g id="(x -&gt; y)[0]"><marker id="mk-3990223579" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 69.000000 140.000000 L 69.000000 234.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#2047429981)"/></g><mask id="2047429981" maskUnits="userSpaceOnUse" x="-100" y="-100" width="1410" height="748">
<rect x="-100" y="-100" width="1410" height="748" fill="white"></rect>
</mask><style type="text/css"><![CDATA[
.text {

Before

Width:  |  Height:  |  Size: 662 KiB

After

Width:  |  Height:  |  Size: 662 KiB

View file

@ -207,10 +207,10 @@
"type": "text",
"pos": {
"x": 92,
"y": -70
"y": -71
},
"width": 266,
"height": 50,
"height": 51,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
@ -237,7 +237,7 @@
"bold": false,
"underline": false,
"labelWidth": 266,
"labelHeight": 50,
"labelHeight": 51,
"labelPosition": "INSIDE_MIDDLE_CENTER",
"zIndex": 0,
"level": 1

View file

@ -3,7 +3,7 @@
id="d2-svg"
style="background: white;"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
width="655" height="1078" viewBox="-102 -172 655 1078"><style type="text/css">
width="655" height="1079" viewBox="-102 -173 655 1079"><style type="text/css">
<![CDATA[
.shape {
shape-rendering: geometricPrecision;
@ -796,9 +796,9 @@ width="655" height="1078" viewBox="-102 -172 655 1078"><style type="text/css">
.md .contains-task-list:dir(rtl) .task-list-item-checkbox {
margin: 0 -1.6em 0.25em 0.2em;
}
</style><g id="poll the people"><g class="shape" ><rect x="112" y="0" width="210" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="217.000000" y="66.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">poll the people</text></g><g id="results"><g class="shape" ><rect x="241" y="226" width="153" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="317.500000" y="292.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">results</text></g><g id="unfavorable"><g class="shape" ><rect x="0" y="452" width="191" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="95.500000" y="518.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">unfavorable</text></g><g id="favorable"><g class="shape" ><rect x="251" y="452" width="173" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="337.500000" y="518.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">favorable</text></g><g id="will of the people"><g class="shape" ><rect x="224" y="678" width="227" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="337.500000" y="744.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">will of the people</text></g><g id="title"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="92.000000" y="-70.000000" width="266" height="50"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><h1>A winning strategy</h1>
</div></foreignObject></g></g><g id="(poll the people -&gt; results)[0]"><marker id="mk-3990223579" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 274.142553 127.491173 C 308.561947 166.000000 317.500000 186.000000 317.500000 222.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#1772167106)"/></g><g id="(results -&gt; unfavorable)[0]"><path d="M 248.578114 353.365067 C 207.207965 392.000000 187.500000 412.000000 154.175859 449.026823" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#1772167106)"/></g><g id="(unfavorable -&gt; poll the people)[0]"><path d="M 84.000993 450.030609 C 77.269912 412.000000 75.500000 379.400000 75.500000 345.500000 C 75.500000 311.600000 87.900000 166.000000 134.386348 128.511010" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#1772167106)"/></g><g id="(results -&gt; favorable)[0]"><path d="M 328.999007 353.969391 C 335.730088 392.000000 337.500000 412.000000 337.500000 448.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#1772167106)"/></g><g id="(favorable -&gt; will of the people)[0]"><path d="M 337.500000 580.000000 C 337.500000 618.000000 337.500000 638.000000 337.500000 674.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#1772167106)"/></g><mask id="1772167106" maskUnits="userSpaceOnUse" x="-100" y="-100" width="655" height="1078">
<rect x="-100" y="-100" width="655" height="1078" fill="white"></rect>
</style><g id="poll the people"><g class="shape" ><rect x="112" y="0" width="210" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="217.000000" y="66.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">poll the people</text></g><g id="results"><g class="shape" ><rect x="241" y="226" width="153" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="317.500000" y="292.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">results</text></g><g id="unfavorable"><g class="shape" ><rect x="0" y="452" width="191" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="95.500000" y="518.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">unfavorable</text></g><g id="favorable"><g class="shape" ><rect x="251" y="452" width="173" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="337.500000" y="518.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">favorable</text></g><g id="will of the people"><g class="shape" ><rect x="224" y="678" width="227" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="337.500000" y="744.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">will of the people</text></g><g id="title"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="92.000000" y="-71.000000" width="266" height="51"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><h1>A winning strategy</h1>
</div></foreignObject></g></g><g id="(poll the people -&gt; results)[0]"><marker id="mk-3990223579" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 274.142553 127.491173 C 308.561947 166.000000 317.500000 186.000000 317.500000 222.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#2692919615)"/></g><g id="(results -&gt; unfavorable)[0]"><path d="M 248.578114 353.365067 C 207.207965 392.000000 187.500000 412.000000 154.175859 449.026823" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#2692919615)"/></g><g id="(unfavorable -&gt; poll the people)[0]"><path d="M 84.000993 450.030609 C 77.269912 412.000000 75.500000 379.400000 75.500000 345.500000 C 75.500000 311.600000 87.900000 166.000000 134.386348 128.511010" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#2692919615)"/></g><g id="(results -&gt; favorable)[0]"><path d="M 328.999007 353.969391 C 335.730088 392.000000 337.500000 412.000000 337.500000 448.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#2692919615)"/></g><g id="(favorable -&gt; will of the people)[0]"><path d="M 337.500000 580.000000 C 337.500000 618.000000 337.500000 638.000000 337.500000 674.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#2692919615)"/></g><mask id="2692919615" maskUnits="userSpaceOnUse" x="-100" y="-100" width="655" height="1079">
<rect x="-100" y="-100" width="655" height="1079" fill="white"></rect>
</mask><style type="text/css"><![CDATA[
.text {

Before

Width:  |  Height:  |  Size: 662 KiB

After

Width:  |  Height:  |  Size: 662 KiB

View file

@ -207,10 +207,10 @@
"type": "text",
"pos": {
"x": 84,
"y": -58
"y": -59
},
"width": 266,
"height": 50,
"height": 51,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
@ -237,7 +237,7 @@
"bold": false,
"underline": false,
"labelWidth": 266,
"labelHeight": 50,
"labelHeight": 51,
"labelPosition": "INSIDE_MIDDLE_CENTER",
"zIndex": 0,
"level": 1

View file

@ -3,7 +3,7 @@
id="d2-svg"
style="background: white;"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
width="615" height="1078" viewBox="-90 -160 615 1078"><style type="text/css">
width="615" height="1079" viewBox="-90 -161 615 1079"><style type="text/css">
<![CDATA[
.shape {
shape-rendering: geometricPrecision;
@ -796,9 +796,9 @@ width="615" height="1078" viewBox="-90 -160 615 1078"><style type="text/css">
.md .contains-task-list:dir(rtl) .task-list-item-checkbox {
margin: 0 -1.6em 0.25em 0.2em;
}
</style><g id="poll the people"><g class="shape" ><rect x="81" y="12" width="210" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="186.000000" y="78.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">poll the people</text></g><g id="results"><g class="shape" ><rect x="74" y="238" width="153" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="150.500000" y="304.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">results</text></g><g id="unfavorable"><g class="shape" ><rect x="232" y="464" width="191" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="327.500000" y="530.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">unfavorable</text></g><g id="favorable"><g class="shape" ><rect x="39" y="464" width="173" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="125.500000" y="530.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">favorable</text></g><g id="will of the people"><g class="shape" ><rect x="12" y="690" width="227" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="125.500000" y="756.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">will of the people</text></g><g id="title"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="84.000000" y="-58.000000" width="266" height="50"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><h1>A winning strategy</h1>
</div></foreignObject></g></g><g id="(poll the people -&gt; results)[0]"><marker id="mk-3990223579" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 151.000000 140.000000 L 151.000000 234.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#3928645175)"/></g><g id="(results -&gt; unfavorable)[0]"><path d="M 176.500000 366.000000 L 176.500000 404.000000 S 176.500000 414.000000 186.500000 414.000000 L 285.666667 414.000000 S 295.666667 414.000000 295.666667 424.000000 L 295.666667 460.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#3928645175)"/></g><g id="(unfavorable -&gt; poll the people)[0]"><path d="M 359.333333 462.000000 L 359.333333 198.000000 S 359.333333 188.000000 349.333333 188.000000 L 231.000000 188.000000 S 221.000000 188.000000 221.000000 178.000000 L 221.000000 142.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#3928645175)"/></g><g id="(results -&gt; favorable)[0]"><path d="M 125.500000 366.000000 L 125.500000 460.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#3928645175)"/></g><g id="(favorable -&gt; will of the people)[0]"><path d="M 125.500000 592.000000 L 125.500000 686.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#3928645175)"/></g><mask id="3928645175" maskUnits="userSpaceOnUse" x="-100" y="-100" width="615" height="1078">
<rect x="-100" y="-100" width="615" height="1078" fill="white"></rect>
</style><g id="poll the people"><g class="shape" ><rect x="81" y="12" width="210" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="186.000000" y="78.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">poll the people</text></g><g id="results"><g class="shape" ><rect x="74" y="238" width="153" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="150.500000" y="304.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">results</text></g><g id="unfavorable"><g class="shape" ><rect x="232" y="464" width="191" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="327.500000" y="530.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">unfavorable</text></g><g id="favorable"><g class="shape" ><rect x="39" y="464" width="173" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="125.500000" y="530.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">favorable</text></g><g id="will of the people"><g class="shape" ><rect x="12" y="690" width="227" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="125.500000" y="756.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">will of the people</text></g><g id="title"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="84.000000" y="-59.000000" width="266" height="51"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><h1>A winning strategy</h1>
</div></foreignObject></g></g><g id="(poll the people -&gt; results)[0]"><marker id="mk-3990223579" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 151.000000 140.000000 L 151.000000 234.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#3028143020)"/></g><g id="(results -&gt; unfavorable)[0]"><path d="M 176.500000 366.000000 L 176.500000 404.000000 S 176.500000 414.000000 186.500000 414.000000 L 285.666667 414.000000 S 295.666667 414.000000 295.666667 424.000000 L 295.666667 460.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#3028143020)"/></g><g id="(unfavorable -&gt; poll the people)[0]"><path d="M 359.333333 462.000000 L 359.333333 198.000000 S 359.333333 188.000000 349.333333 188.000000 L 231.000000 188.000000 S 221.000000 188.000000 221.000000 178.000000 L 221.000000 142.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#3028143020)"/></g><g id="(results -&gt; favorable)[0]"><path d="M 125.500000 366.000000 L 125.500000 460.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#3028143020)"/></g><g id="(favorable -&gt; will of the people)[0]"><path d="M 125.500000 592.000000 L 125.500000 686.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#3028143020)"/></g><mask id="3028143020" maskUnits="userSpaceOnUse" x="-100" y="-100" width="615" height="1079">
<rect x="-100" y="-100" width="615" height="1079" fill="white"></rect>
</mask><style type="text/css"><![CDATA[
.text {

Before

Width:  |  Height:  |  Size: 662 KiB

After

Width:  |  Height:  |  Size: 662 KiB

View file

@ -10,7 +10,7 @@
"y": 226
},
"width": 3051,
"height": 4848,
"height": 4853,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
@ -37,7 +37,7 @@
"bold": false,
"underline": false,
"labelWidth": 3051,
"labelHeight": 4848,
"labelHeight": 4853,
"zIndex": 0,
"level": 1
},
@ -86,7 +86,7 @@
"type": "",
"pos": {
"x": 1469,
"y": 5174
"y": 5179
},
"width": 113,
"height": 126,
@ -198,19 +198,19 @@
"route": [
{
"x": 1525.5,
"y": 5074
"y": 5079
},
{
"x": 1525.5,
"y": 5114
"y": 5119
},
{
"x": 1525.5,
"y": 5134
"y": 5139
},
{
"x": 1525.5,
"y": 5174
"y": 5179
}
],
"isCurve": true,

View file

@ -3,7 +3,7 @@
id="d2-svg"
style="background: white;"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
width="3255" height="5504" viewBox="-102 -102 3255 5504"><style type="text/css">
width="3255" height="5509" viewBox="-102 -102 3255 5509"><style type="text/css">
<![CDATA[
.shape {
shape-rendering: geometricPrecision;
@ -796,7 +796,7 @@ width="3255" height="5504" viewBox="-102 -102 3255 5504"><style type="text/css">
.md .contains-task-list:dir(rtl) .task-list-item-checkbox {
margin: 0 -1.6em 0.25em 0.2em;
}
</style><g id="md"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="0.000000" y="226.000000" width="3051" height="4848"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><h1>Markdown: Syntax</h1>
</style><g id="md"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="0.000000" y="226.000000" width="3051" height="4853"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><h1>Markdown: Syntax</h1>
<ul>
<li><a href="#overview">Overview</a>
<ul>
@ -1053,8 +1053,8 @@ title for the link, surrounded in quotes. For example:</p>
<h3>Code</h3>
<p>Unlike a pre-formatted code block, a code span indicates code within a
normal paragraph. For example:</p>
</div></foreignObject></g></g><g id="a"><g class="shape" ><rect x="1469" y="0" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="1525.500000" y="66.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">a</text></g><g id="b"><g class="shape" ><rect x="1469" y="5174" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="1525.500000" y="5240.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">b</text></g><g id="(a -&gt; md)[0]"><marker id="mk-3990223579" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 1525.500000 128.000000 C 1525.500000 166.000000 1525.500000 186.000000 1525.500000 222.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#4068872453)"/></g><g id="(md -&gt; b)[0]"><path d="M 1525.500000 5076.000000 C 1525.500000 5114.000000 1525.500000 5134.000000 1525.500000 5170.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#4068872453)"/></g><mask id="4068872453" maskUnits="userSpaceOnUse" x="-100" y="-100" width="3255" height="5504">
<rect x="-100" y="-100" width="3255" height="5504" fill="white"></rect>
</div></foreignObject></g></g><g id="a"><g class="shape" ><rect x="1469" y="0" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="1525.500000" y="66.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">a</text></g><g id="b"><g class="shape" ><rect x="1469" y="5179" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="1525.500000" y="5245.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">b</text></g><g id="(a -&gt; md)[0]"><marker id="mk-3990223579" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 1525.500000 128.000000 C 1525.500000 166.000000 1525.500000 186.000000 1525.500000 222.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#828432686)"/></g><g id="(md -&gt; b)[0]"><path d="M 1525.500000 5081.000000 C 1525.500000 5119.000000 1525.500000 5139.000000 1525.500000 5175.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#828432686)"/></g><mask id="828432686" maskUnits="userSpaceOnUse" x="-100" y="-100" width="3255" height="5509">
<rect x="-100" y="-100" width="3255" height="5509" fill="white"></rect>
</mask><style type="text/css"><![CDATA[
.text {

Before

Width:  |  Height:  |  Size: 994 KiB

After

Width:  |  Height:  |  Size: 994 KiB

View file

@ -10,7 +10,7 @@
"y": 238
},
"width": 3051,
"height": 4848,
"height": 4853,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
@ -37,7 +37,7 @@
"bold": false,
"underline": false,
"labelWidth": 3051,
"labelHeight": 4848,
"labelHeight": 4853,
"zIndex": 0,
"level": 1
},
@ -86,7 +86,7 @@
"type": "",
"pos": {
"x": 1481,
"y": 5186
"y": 5191
},
"width": 113,
"height": 126,
@ -189,11 +189,11 @@
"route": [
{
"x": 1537.5,
"y": 5086
"y": 5091
},
{
"x": 1537.5,
"y": 5186
"y": 5191
}
],
"animated": false,

View file

@ -3,7 +3,7 @@
id="d2-svg"
style="background: white;"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
width="3255" height="5504" viewBox="-90 -90 3255 5504"><style type="text/css">
width="3255" height="5509" viewBox="-90 -90 3255 5509"><style type="text/css">
<![CDATA[
.shape {
shape-rendering: geometricPrecision;
@ -796,7 +796,7 @@ width="3255" height="5504" viewBox="-90 -90 3255 5504"><style type="text/css">
.md .contains-task-list:dir(rtl) .task-list-item-checkbox {
margin: 0 -1.6em 0.25em 0.2em;
}
</style><g id="md"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="12.000000" y="238.000000" width="3051" height="4848"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><h1>Markdown: Syntax</h1>
</style><g id="md"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="12.000000" y="238.000000" width="3051" height="4853"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><h1>Markdown: Syntax</h1>
<ul>
<li><a href="#overview">Overview</a>
<ul>
@ -1053,8 +1053,8 @@ title for the link, surrounded in quotes. For example:</p>
<h3>Code</h3>
<p>Unlike a pre-formatted code block, a code span indicates code within a
normal paragraph. For example:</p>
</div></foreignObject></g></g><g id="a"><g class="shape" ><rect x="1481" y="12" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="1537.500000" y="78.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">a</text></g><g id="b"><g class="shape" ><rect x="1481" y="5186" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="1537.500000" y="5252.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">b</text></g><g id="(a -&gt; md)[0]"><marker id="mk-3990223579" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 1537.500000 140.000000 L 1537.500000 234.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#2511908393)"/></g><g id="(md -&gt; b)[0]"><path d="M 1537.500000 5088.000000 L 1537.500000 5182.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#2511908393)"/></g><mask id="2511908393" maskUnits="userSpaceOnUse" x="-100" y="-100" width="3255" height="5504">
<rect x="-100" y="-100" width="3255" height="5504" fill="white"></rect>
</div></foreignObject></g></g><g id="a"><g class="shape" ><rect x="1481" y="12" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="1537.500000" y="78.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">a</text></g><g id="b"><g class="shape" ><rect x="1481" y="5191" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="1537.500000" y="5257.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">b</text></g><g id="(a -&gt; md)[0]"><marker id="mk-3990223579" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 1537.500000 140.000000 L 1537.500000 234.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#2692185313)"/></g><g id="(md -&gt; b)[0]"><path d="M 1537.500000 5093.000000 L 1537.500000 5187.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#2692185313)"/></g><mask id="2692185313" maskUnits="userSpaceOnUse" x="-100" y="-100" width="3255" height="5509">
<rect x="-100" y="-100" width="3255" height="5509" fill="white"></rect>
</mask><style type="text/css"><![CDATA[
.text {

Before

Width:  |  Height:  |  Size: 994 KiB

After

Width:  |  Height:  |  Size: 994 KiB

View file

@ -10,7 +10,7 @@
"y": 226
},
"width": 738,
"height": 134,
"height": 135,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
@ -37,7 +37,7 @@
"bold": false,
"underline": false,
"labelWidth": 738,
"labelHeight": 134,
"labelHeight": 135,
"zIndex": 0,
"level": 1
},
@ -86,7 +86,7 @@
"type": "",
"pos": {
"x": 313,
"y": 460
"y": 461
},
"width": 113,
"height": 126,
@ -198,19 +198,19 @@
"route": [
{
"x": 369,
"y": 360
"y": 361
},
{
"x": 369,
"y": 400
"y": 401
},
{
"x": 369,
"y": 420
"y": 421
},
{
"x": 369,
"y": 460
"y": 461
}
],
"isCurve": true,

View file

@ -3,7 +3,7 @@
id="d2-svg"
style="background: white;"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
width="942" height="790" viewBox="-102 -102 942 790"><style type="text/css">
width="942" height="791" viewBox="-102 -102 942 791"><style type="text/css">
<![CDATA[
.shape {
shape-rendering: geometricPrecision;
@ -796,12 +796,12 @@ width="942" height="790" viewBox="-102 -102 942 790"><style type="text/css">
.md .contains-task-list:dir(rtl) .task-list-item-checkbox {
margin: 0 -1.6em 0.25em 0.2em;
}
</style><g id="md"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="0.000000" y="226.000000" width="738" height="134"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><p><strong>Note:</strong> This document is itself written using Markdown; you
</style><g id="md"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="0.000000" y="226.000000" width="738" height="135"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><p><strong>Note:</strong> This document is itself written using Markdown; you
can <a href="/projects/markdown/syntax.text">see the source for it by adding '.text' to the URL</a>.</p>
<hr />
<h2>Overview</h2>
</div></foreignObject></g></g><g id="a"><g class="shape" ><rect x="313" y="0" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="369.500000" y="66.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">a</text></g><g id="b"><g class="shape" ><rect x="313" y="460" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="369.500000" y="526.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">b</text></g><g id="(a -&gt; md)[0]"><marker id="mk-3990223579" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 369.000000 128.000000 C 369.000000 166.000000 369.000000 186.000000 369.000000 222.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#2921353566)"/></g><g id="(md -&gt; b)[0]"><path d="M 369.000000 362.000000 C 369.000000 400.000000 369.000000 420.000000 369.000000 456.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#2921353566)"/></g><mask id="2921353566" maskUnits="userSpaceOnUse" x="-100" y="-100" width="942" height="790">
<rect x="-100" y="-100" width="942" height="790" fill="white"></rect>
</div></foreignObject></g></g><g id="a"><g class="shape" ><rect x="313" y="0" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="369.500000" y="66.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">a</text></g><g id="b"><g class="shape" ><rect x="313" y="461" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="369.500000" y="527.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">b</text></g><g id="(a -&gt; md)[0]"><marker id="mk-3990223579" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 369.000000 128.000000 C 369.000000 166.000000 369.000000 186.000000 369.000000 222.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#294838287)"/></g><g id="(md -&gt; b)[0]"><path d="M 369.000000 363.000000 C 369.000000 401.000000 369.000000 421.000000 369.000000 457.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#294838287)"/></g><mask id="294838287" maskUnits="userSpaceOnUse" x="-100" y="-100" width="942" height="791">
<rect x="-100" y="-100" width="942" height="791" fill="white"></rect>
</mask><style type="text/css"><![CDATA[
.text {

Before

Width:  |  Height:  |  Size: 661 KiB

After

Width:  |  Height:  |  Size: 661 KiB

View file

@ -10,7 +10,7 @@
"y": 238
},
"width": 738,
"height": 134,
"height": 135,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
@ -37,7 +37,7 @@
"bold": false,
"underline": false,
"labelWidth": 738,
"labelHeight": 134,
"labelHeight": 135,
"zIndex": 0,
"level": 1
},
@ -86,7 +86,7 @@
"type": "",
"pos": {
"x": 324,
"y": 472
"y": 473
},
"width": 113,
"height": 126,
@ -189,11 +189,11 @@
"route": [
{
"x": 381,
"y": 372
"y": 373
},
{
"x": 381,
"y": 472
"y": 473
}
],
"animated": false,

View file

@ -3,7 +3,7 @@
id="d2-svg"
style="background: white;"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
width="942" height="790" viewBox="-90 -90 942 790"><style type="text/css">
width="942" height="791" viewBox="-90 -90 942 791"><style type="text/css">
<![CDATA[
.shape {
shape-rendering: geometricPrecision;
@ -796,12 +796,12 @@ width="942" height="790" viewBox="-90 -90 942 790"><style type="text/css">
.md .contains-task-list:dir(rtl) .task-list-item-checkbox {
margin: 0 -1.6em 0.25em 0.2em;
}
</style><g id="md"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="12.000000" y="238.000000" width="738" height="134"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><p><strong>Note:</strong> This document is itself written using Markdown; you
</style><g id="md"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="12.000000" y="238.000000" width="738" height="135"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><p><strong>Note:</strong> This document is itself written using Markdown; you
can <a href="/projects/markdown/syntax.text">see the source for it by adding '.text' to the URL</a>.</p>
<hr />
<h2>Overview</h2>
</div></foreignObject></g></g><g id="a"><g class="shape" ><rect x="324" y="12" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="380.500000" y="78.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">a</text></g><g id="b"><g class="shape" ><rect x="324" y="472" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="380.500000" y="538.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">b</text></g><g id="(a -&gt; md)[0]"><marker id="mk-3990223579" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 381.000000 140.000000 L 381.000000 234.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#2975790206)"/></g><g id="(md -&gt; b)[0]"><path d="M 381.000000 374.000000 L 381.000000 468.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#2975790206)"/></g><mask id="2975790206" maskUnits="userSpaceOnUse" x="-100" y="-100" width="942" height="790">
<rect x="-100" y="-100" width="942" height="790" fill="white"></rect>
</div></foreignObject></g></g><g id="a"><g class="shape" ><rect x="324" y="12" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="380.500000" y="78.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">a</text></g><g id="b"><g class="shape" ><rect x="324" y="473" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="380.500000" y="539.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">b</text></g><g id="(a -&gt; md)[0]"><marker id="mk-3990223579" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 381.000000 140.000000 L 381.000000 234.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#95482663)"/></g><g id="(md -&gt; b)[0]"><path d="M 381.000000 375.000000 L 381.000000 469.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#95482663)"/></g><mask id="95482663" maskUnits="userSpaceOnUse" x="-100" y="-100" width="942" height="791">
<rect x="-100" y="-100" width="942" height="791" fill="white"></rect>
</mask><style type="text/css"><![CDATA[
.text {

Before

Width:  |  Height:  |  Size: 661 KiB

After

Width:  |  Height:  |  Size: 661 KiB

View file

@ -10,7 +10,7 @@
"y": 226
},
"width": 266,
"height": 50,
"height": 51,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
@ -37,7 +37,7 @@
"bold": false,
"underline": false,
"labelWidth": 266,
"labelHeight": 50,
"labelHeight": 51,
"zIndex": 0,
"level": 1
},
@ -86,7 +86,7 @@
"type": "",
"pos": {
"x": 77,
"y": 376
"y": 377
},
"width": 113,
"height": 126,
@ -198,19 +198,19 @@
"route": [
{
"x": 133,
"y": 276
"y": 277
},
{
"x": 133,
"y": 316
"y": 317
},
{
"x": 133,
"y": 336
"y": 337
},
{
"x": 133,
"y": 376
"y": 377
}
],
"isCurve": true,

View file

@ -3,7 +3,7 @@
id="d2-svg"
style="background: white;"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
width="470" height="706" viewBox="-102 -102 470 706"><style type="text/css">
width="470" height="707" viewBox="-102 -102 470 707"><style type="text/css">
<![CDATA[
.shape {
shape-rendering: geometricPrecision;
@ -796,9 +796,9 @@ width="470" height="706" viewBox="-102 -102 470 706"><style type="text/css">
.md .contains-task-list:dir(rtl) .task-list-item-checkbox {
margin: 0 -1.6em 0.25em 0.2em;
}
</style><g id="md"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="0.000000" y="226.000000" width="266" height="50"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><h1>Markdown: Syntax</h1>
</div></foreignObject></g></g><g id="a"><g class="shape" ><rect x="77" y="0" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="133.500000" y="66.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">a</text></g><g id="b"><g class="shape" ><rect x="77" y="376" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="133.500000" y="442.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">b</text></g><g id="(a -&gt; md)[0]"><marker id="mk-3990223579" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 133.000000 128.000000 C 133.000000 166.000000 133.000000 186.000000 133.000000 222.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#225833687)"/></g><g id="(md -&gt; b)[0]"><path d="M 133.000000 278.000000 C 133.000000 316.000000 133.000000 336.000000 133.000000 372.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#225833687)"/></g><mask id="225833687" maskUnits="userSpaceOnUse" x="-100" y="-100" width="470" height="706">
<rect x="-100" y="-100" width="470" height="706" fill="white"></rect>
</style><g id="md"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="0.000000" y="226.000000" width="266" height="51"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><h1>Markdown: Syntax</h1>
</div></foreignObject></g></g><g id="a"><g class="shape" ><rect x="77" y="0" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="133.500000" y="66.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">a</text></g><g id="b"><g class="shape" ><rect x="77" y="377" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="133.500000" y="443.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">b</text></g><g id="(a -&gt; md)[0]"><marker id="mk-3990223579" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 133.000000 128.000000 C 133.000000 166.000000 133.000000 186.000000 133.000000 222.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#1433929064)"/></g><g id="(md -&gt; b)[0]"><path d="M 133.000000 279.000000 C 133.000000 317.000000 133.000000 337.000000 133.000000 373.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#1433929064)"/></g><mask id="1433929064" maskUnits="userSpaceOnUse" x="-100" y="-100" width="470" height="707">
<rect x="-100" y="-100" width="470" height="707" fill="white"></rect>
</mask><style type="text/css"><![CDATA[
.text {

Before

Width:  |  Height:  |  Size: 661 KiB

After

Width:  |  Height:  |  Size: 661 KiB

View file

@ -10,7 +10,7 @@
"y": 238
},
"width": 266,
"height": 50,
"height": 51,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
@ -37,7 +37,7 @@
"bold": false,
"underline": false,
"labelWidth": 266,
"labelHeight": 50,
"labelHeight": 51,
"zIndex": 0,
"level": 1
},
@ -86,7 +86,7 @@
"type": "",
"pos": {
"x": 88,
"y": 388
"y": 389
},
"width": 113,
"height": 126,
@ -189,11 +189,11 @@
"route": [
{
"x": 145,
"y": 288
"y": 289
},
{
"x": 145,
"y": 388
"y": 389
}
],
"animated": false,

View file

@ -3,7 +3,7 @@
id="d2-svg"
style="background: white;"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
width="470" height="706" viewBox="-90 -90 470 706"><style type="text/css">
width="470" height="707" viewBox="-90 -90 470 707"><style type="text/css">
<![CDATA[
.shape {
shape-rendering: geometricPrecision;
@ -796,9 +796,9 @@ width="470" height="706" viewBox="-90 -90 470 706"><style type="text/css">
.md .contains-task-list:dir(rtl) .task-list-item-checkbox {
margin: 0 -1.6em 0.25em 0.2em;
}
</style><g id="md"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="12.000000" y="238.000000" width="266" height="50"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><h1>Markdown: Syntax</h1>
</div></foreignObject></g></g><g id="a"><g class="shape" ><rect x="88" y="12" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="144.500000" y="78.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">a</text></g><g id="b"><g class="shape" ><rect x="88" y="388" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="144.500000" y="454.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">b</text></g><g id="(a -&gt; md)[0]"><marker id="mk-3990223579" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 145.000000 140.000000 L 145.000000 234.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#671088123)"/></g><g id="(md -&gt; b)[0]"><path d="M 145.000000 290.000000 L 145.000000 384.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#671088123)"/></g><mask id="671088123" maskUnits="userSpaceOnUse" x="-100" y="-100" width="470" height="706">
<rect x="-100" y="-100" width="470" height="706" fill="white"></rect>
</style><g id="md"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="12.000000" y="238.000000" width="266" height="51"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><h1>Markdown: Syntax</h1>
</div></foreignObject></g></g><g id="a"><g class="shape" ><rect x="88" y="12" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="144.500000" y="78.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">a</text></g><g id="b"><g class="shape" ><rect x="88" y="389" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="144.500000" y="455.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">b</text></g><g id="(a -&gt; md)[0]"><marker id="mk-3990223579" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 145.000000 140.000000 L 145.000000 234.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#815540188)"/></g><g id="(md -&gt; b)[0]"><path d="M 145.000000 291.000000 L 145.000000 385.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#815540188)"/></g><mask id="815540188" maskUnits="userSpaceOnUse" x="-100" y="-100" width="470" height="707">
<rect x="-100" y="-100" width="470" height="707" fill="white"></rect>
</mask><style type="text/css"><![CDATA[
.text {

Before

Width:  |  Height:  |  Size: 660 KiB

After

Width:  |  Height:  |  Size: 660 KiB

View file

@ -10,7 +10,7 @@
"y": 226
},
"width": 531,
"height": 186,
"height": 187,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
@ -37,7 +37,7 @@
"bold": false,
"underline": false,
"labelWidth": 531,
"labelHeight": 186,
"labelHeight": 187,
"zIndex": 0,
"level": 1
},
@ -86,7 +86,7 @@
"type": "",
"pos": {
"x": 209,
"y": 512
"y": 513
},
"width": 114,
"height": 126,
@ -198,19 +198,19 @@
"route": [
{
"x": 265.5,
"y": 412
"y": 413
},
{
"x": 265.5,
"y": 452
"y": 453
},
{
"x": 265.5,
"y": 472
"y": 473
},
{
"x": 265.5,
"y": 512
"y": 513
}
],
"isCurve": true,

View file

@ -3,7 +3,7 @@
id="d2-svg"
style="background: white;"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
width="735" height="842" viewBox="-102 -102 735 842"><style type="text/css">
width="735" height="843" viewBox="-102 -102 735 843"><style type="text/css">
<![CDATA[
.shape {
shape-rendering: geometricPrecision;
@ -796,15 +796,15 @@ width="735" height="842" viewBox="-102 -102 735 842"><style type="text/css">
.md .contains-task-list:dir(rtl) .task-list-item-checkbox {
margin: 0 -1.6em 0.25em 0.2em;
}
</style><g id="hey"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="0.000000" y="226.000000" width="531" height="186"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><h1>Every frustum longs to be a cone</h1>
</style><g id="hey"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="0.000000" y="226.000000" width="531" height="187"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><h1>Every frustum longs to be a cone</h1>
<ul>
<li>A continuing flow of paper is sufficient to continue the flow of paper</li>
<li>Please remain calm, it's no use both of us being hysterical at the same time</li>
<li>Visits always give pleasure: if not on arrival, then on the departure</li>
</ul>
<p><em>Festivity Level 1</em>: Your guests are chatting amiably with each other.</p>
</div></foreignObject></g></g><g id="x"><g class="shape" ><rect x="209" y="0" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="265.500000" y="66.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">x</text></g><g id="y"><g class="shape" ><rect x="209" y="512" width="114" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="266.000000" y="578.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">y</text></g><g id="(x -&gt; hey)[0]"><marker id="mk-3990223579" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 265.500000 128.000000 C 265.500000 166.000000 265.500000 186.000000 265.500000 222.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#132532049)"/></g><g id="(hey -&gt; y)[0]"><path d="M 265.500000 414.000000 C 265.500000 452.000000 265.500000 472.000000 265.500000 508.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#132532049)"/></g><mask id="132532049" maskUnits="userSpaceOnUse" x="-100" y="-100" width="735" height="842">
<rect x="-100" y="-100" width="735" height="842" fill="white"></rect>
</div></foreignObject></g></g><g id="x"><g class="shape" ><rect x="209" y="0" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="265.500000" y="66.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">x</text></g><g id="y"><g class="shape" ><rect x="209" y="513" width="114" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="266.000000" y="579.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">y</text></g><g id="(x -&gt; hey)[0]"><marker id="mk-3990223579" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 265.500000 128.000000 C 265.500000 166.000000 265.500000 186.000000 265.500000 222.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#633525630)"/></g><g id="(hey -&gt; y)[0]"><path d="M 265.500000 415.000000 C 265.500000 453.000000 265.500000 473.000000 265.500000 509.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#633525630)"/></g><mask id="633525630" maskUnits="userSpaceOnUse" x="-100" y="-100" width="735" height="843">
<rect x="-100" y="-100" width="735" height="843" fill="white"></rect>
</mask><style type="text/css"><![CDATA[
.text {

Before

Width:  |  Height:  |  Size: 804 KiB

After

Width:  |  Height:  |  Size: 804 KiB

View file

@ -10,7 +10,7 @@
"y": 238
},
"width": 531,
"height": 186,
"height": 187,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
@ -37,7 +37,7 @@
"bold": false,
"underline": false,
"labelWidth": 531,
"labelHeight": 186,
"labelHeight": 187,
"zIndex": 0,
"level": 1
},
@ -86,7 +86,7 @@
"type": "",
"pos": {
"x": 220,
"y": 524
"y": 525
},
"width": 114,
"height": 126,
@ -189,11 +189,11 @@
"route": [
{
"x": 277.5,
"y": 424
"y": 425
},
{
"x": 277.5,
"y": 524
"y": 525
}
],
"animated": false,

View file

@ -3,7 +3,7 @@
id="d2-svg"
style="background: white;"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
width="735" height="842" viewBox="-90 -90 735 842"><style type="text/css">
width="735" height="843" viewBox="-90 -90 735 843"><style type="text/css">
<![CDATA[
.shape {
shape-rendering: geometricPrecision;
@ -796,15 +796,15 @@ width="735" height="842" viewBox="-90 -90 735 842"><style type="text/css">
.md .contains-task-list:dir(rtl) .task-list-item-checkbox {
margin: 0 -1.6em 0.25em 0.2em;
}
</style><g id="hey"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="12.000000" y="238.000000" width="531" height="186"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><h1>Every frustum longs to be a cone</h1>
</style><g id="hey"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="12.000000" y="238.000000" width="531" height="187"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:#0A0F25;"><h1>Every frustum longs to be a cone</h1>
<ul>
<li>A continuing flow of paper is sufficient to continue the flow of paper</li>
<li>Please remain calm, it's no use both of us being hysterical at the same time</li>
<li>Visits always give pleasure: if not on arrival, then on the departure</li>
</ul>
<p><em>Festivity Level 1</em>: Your guests are chatting amiably with each other.</p>
</div></foreignObject></g></g><g id="x"><g class="shape" ><rect x="221" y="12" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="277.500000" y="78.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">x</text></g><g id="y"><g class="shape" ><rect x="220" y="524" width="114" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="277.000000" y="590.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">y</text></g><g id="(x -&gt; hey)[0]"><marker id="mk-3990223579" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 277.500000 140.000000 L 277.500000 234.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#2187422102)"/></g><g id="(hey -&gt; y)[0]"><path d="M 277.500000 426.000000 L 277.500000 520.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#2187422102)"/></g><mask id="2187422102" maskUnits="userSpaceOnUse" x="-100" y="-100" width="735" height="842">
<rect x="-100" y="-100" width="735" height="842" fill="white"></rect>
</div></foreignObject></g></g><g id="x"><g class="shape" ><rect x="221" y="12" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="277.500000" y="78.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">x</text></g><g id="y"><g class="shape" ><rect x="220" y="525" width="114" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text-bold" x="277.000000" y="591.000000" style="text-anchor:middle;font-size:16px;fill:#0A0F25">y</text></g><g id="(x -&gt; hey)[0]"><marker id="mk-3990223579" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 277.500000 140.000000 L 277.500000 234.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#1894792157)"/></g><g id="(hey -&gt; y)[0]"><path d="M 277.500000 427.000000 L 277.500000 521.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#1894792157)"/></g><mask id="1894792157" maskUnits="userSpaceOnUse" x="-100" y="-100" width="735" height="843">
<rect x="-100" y="-100" width="735" height="843" fill="white"></rect>
</mask><style type="text/css"><![CDATA[
.text {

Before

Width:  |  Height:  |  Size: 804 KiB

After

Width:  |  Height:  |  Size: 804 KiB

View file

@ -10,7 +10,7 @@
"y": 0
},
"width": 312,
"height": 357,
"height": 358,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
@ -50,7 +50,7 @@
"y": 50
},
"width": 212,
"height": 257,
"height": 258,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
@ -77,7 +77,7 @@
"bold": false,
"underline": false,
"labelWidth": 212,
"labelHeight": 257,
"labelHeight": 258,
"zIndex": 0,
"level": 2
},
@ -86,7 +86,7 @@
"type": "text",
"pos": {
"x": 97,
"y": 457
"y": 458
},
"width": 118,
"height": 24,
@ -149,19 +149,19 @@
"route": [
{
"x": 156,
"y": 357
"y": 358
},
{
"x": 156,
"y": 397
"y": 398
},
{
"x": 156,
"y": 417
"y": 418
},
{
"x": 156,
"y": 457
"y": 458
}
],
"isCurve": true,

View file

@ -3,7 +3,7 @@
id="d2-svg"
style="background: white;"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
width="516" height="685" viewBox="-102 -102 516 685"><style type="text/css">
width="516" height="686" viewBox="-102 -102 516 686"><style type="text/css">
<![CDATA[
.shape {
shape-rendering: geometricPrecision;
@ -796,8 +796,8 @@ width="516" height="685" viewBox="-102 -102 516 685"><style type="text/css">
.md .contains-task-list:dir(rtl) .task-list-item-checkbox {
margin: 0 -1.6em 0.25em 0.2em;
}
</style><g id="container"><g class="shape" ><rect x="0" y="0" width="312" height="357" style="fill:#E3E9FD;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text" x="156.000000" y="33.000000" style="text-anchor:middle;font-size:28px;fill:#0A0F25">container</text></g><g id="no container"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="97.000000" y="457.000000" width="118" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:#CEEDEE;color:red;"><p>they did it in style</p>
</div></foreignObject></g></g><g id="container.md"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="50.000000" y="50.000000" width="212" height="257"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:darkorange;"><h1>a header</h1>
</style><g id="container"><g class="shape" ><rect x="0" y="0" width="312" height="358" style="fill:#E3E9FD;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text" x="156.000000" y="33.000000" style="text-anchor:middle;font-size:28px;fill:#0A0F25">container</text></g><g id="no container"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="97.000000" y="458.000000" width="118" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:#CEEDEE;color:red;"><p>they did it in style</p>
</div></foreignObject></g></g><g id="container.md"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="50.000000" y="50.000000" width="212" height="258"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:darkorange;"><h1>a header</h1>
<p>a line of text and an</p>
<pre><code>{
indented: &quot;block&quot;,
@ -805,8 +805,8 @@ width="516" height="685" viewBox="-102 -102 516 685"><style type="text/css">
}
</code></pre>
<p>walk into a bar.</p>
</div></foreignObject></g></g><g id="(container -&gt; no container)[0]"><marker id="mk-3990223579" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 156.000000 359.000000 C 156.000000 397.000000 156.000000 417.000000 156.000000 453.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#3443421750)"/></g><mask id="3443421750" maskUnits="userSpaceOnUse" x="-100" y="-100" width="516" height="685">
<rect x="-100" y="-100" width="516" height="685" fill="white"></rect>
</div></foreignObject></g></g><g id="(container -&gt; no container)[0]"><marker id="mk-3990223579" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 156.000000 360.000000 C 156.000000 398.000000 156.000000 418.000000 156.000000 454.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#1402768086)"/></g><mask id="1402768086" maskUnits="userSpaceOnUse" x="-100" y="-100" width="516" height="686">
<rect x="-100" y="-100" width="516" height="686" fill="white"></rect>
</mask><style type="text/css"><![CDATA[
.text {

Before

Width:  |  Height:  |  Size: 518 KiB

After

Width:  |  Height:  |  Size: 518 KiB

View file

@ -10,7 +10,7 @@
"y": 12
},
"width": 362,
"height": 407,
"height": 408,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
@ -50,7 +50,7 @@
"y": 87
},
"width": 212,
"height": 257,
"height": 258,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
@ -77,7 +77,7 @@
"bold": false,
"underline": false,
"labelWidth": 212,
"labelHeight": 257,
"labelHeight": 258,
"zIndex": 0,
"level": 2
},
@ -86,7 +86,7 @@
"type": "text",
"pos": {
"x": 134,
"y": 519
"y": 520
},
"width": 118,
"height": 24,
@ -149,11 +149,11 @@
"route": [
{
"x": 193,
"y": 419
"y": 420
},
{
"x": 193,
"y": 519
"y": 520
}
],
"animated": false,

View file

@ -3,7 +3,7 @@
id="d2-svg"
style="background: white;"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
width="566" height="735" viewBox="-90 -90 566 735"><style type="text/css">
width="566" height="736" viewBox="-90 -90 566 736"><style type="text/css">
<![CDATA[
.shape {
shape-rendering: geometricPrecision;
@ -796,8 +796,8 @@ width="566" height="735" viewBox="-90 -90 566 735"><style type="text/css">
.md .contains-task-list:dir(rtl) .task-list-item-checkbox {
margin: 0 -1.6em 0.25em 0.2em;
}
</style><g id="container"><g class="shape" ><rect x="12" y="12" width="362" height="407" style="fill:#E3E9FD;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text" x="193.000000" y="45.000000" style="text-anchor:middle;font-size:28px;fill:#0A0F25">container</text></g><g id="no container"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="134.000000" y="519.000000" width="118" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:#CEEDEE;color:red;"><p>they did it in style</p>
</div></foreignObject></g></g><g id="container.md"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="87.000000" y="87.000000" width="212" height="257"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:darkorange;"><h1>a header</h1>
</style><g id="container"><g class="shape" ><rect x="12" y="12" width="362" height="408" style="fill:#E3E9FD;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /></g><text class="text" x="193.000000" y="45.000000" style="text-anchor:middle;font-size:28px;fill:#0A0F25">container</text></g><g id="no container"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="134.000000" y="520.000000" width="118" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:#CEEDEE;color:red;"><p>they did it in style</p>
</div></foreignObject></g></g><g id="container.md"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="87.000000" y="87.000000" width="212" height="258"><div xmlns="http://www.w3.org/1999/xhtml" class="md" style="background-color:transparent;color:darkorange;"><h1>a header</h1>
<p>a line of text and an</p>
<pre><code>{
indented: &quot;block&quot;,
@ -805,8 +805,8 @@ width="566" height="735" viewBox="-90 -90 566 735"><style type="text/css">
}
</code></pre>
<p>walk into a bar.</p>
</div></foreignObject></g></g><g id="(container -&gt; no container)[0]"><marker id="mk-3990223579" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 193.000000 421.000000 L 193.000000 515.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#2500520100)"/></g><mask id="2500520100" maskUnits="userSpaceOnUse" x="-100" y="-100" width="566" height="735">
<rect x="-100" y="-100" width="566" height="735" fill="white"></rect>
</div></foreignObject></g></g><g id="(container -&gt; no container)[0]"><marker id="mk-3990223579" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon class="connection" fill="#0D32B2" stroke-width="2" points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" /> </marker><path d="M 193.000000 422.000000 L 193.000000 516.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#844115749)"/></g><mask id="844115749" maskUnits="userSpaceOnUse" x="-100" y="-100" width="566" height="736">
<rect x="-100" y="-100" width="566" height="736" fill="white"></rect>
</mask><style type="text/css"><![CDATA[
.text {

Before

Width:  |  Height:  |  Size: 518 KiB

After

Width:  |  Height:  |  Size: 518 KiB

View file

@ -2,6 +2,7 @@ package textmeasure
import (
"bytes"
"fmt"
"math"
"strings"
@ -33,6 +34,7 @@ const (
MarginTop_h = 24
MarginBottom_h = 16
PaddingBottom_h1_h2_em = 0.3
BorderBottom_h1_h2 = 1
Height_hr = 4
MarginTopBottom_hr = 24
@ -203,6 +205,18 @@ func (ruler *Ruler) measureNode(depth int, n *html.Node, fontFamily *d2fonts.Fon
parentElementType = n.Parent.Data
}
debugMeasure := false
var depthStr string
if debugMeasure {
if depth == 0 {
fmt.Println()
}
depthStr = "┌"
for i := 0; i < depth; i++ {
depthStr += "-"
}
}
switch n.Type {
case html.TextNode:
if strings.TrimSpace(n.Data) == "" {
@ -244,6 +258,9 @@ func (ruler *Ruler) measureNode(depth int, n *html.Node, fontFamily *d2fonts.Fon
w *= FontSize_pre_code_em
h *= FontSize_pre_code_em
}
if debugMeasure {
fmt.Printf("%stext(%v,%v)\n", depthStr, w, h)
}
return blockAttrs{w + spaceWidths, h, 0, 0}
case html.ElementNode:
isCode := false
@ -273,58 +290,58 @@ func (ruler *Ruler) measureNode(depth int, n *html.Node, fontFamily *d2fonts.Fon
last := getPrev(n.LastChild)
var blocks []blockAttrs
var current *blockAttrs
var inlineBlock *blockAttrs
// first create blocks from combined inline elements, then combine all blocks
// current will be non-nil while inline elements are being combined into a block
// inlineBlock will be non-nil while inline elements are being combined into a block
endInlineBlock := func() {
if !isCode && inlineBlock.height > 0 && inlineBlock.height < MarkdownLineHeightPx {
inlineBlock.height = MarkdownLineHeightPx
}
blocks = append(blocks, *inlineBlock)
inlineBlock = nil
}
for child := n.FirstChild; child != nil; child = child.NextSibling {
childBlock := ruler.measureNode(depth+1, child, fontFamily, fontSize, fontStyle)
if child.Type == html.ElementNode && isBlockElement(child.Data) {
if current != nil {
blocks = append(blocks, *current)
if inlineBlock != nil {
endInlineBlock()
}
current = &blockAttrs{}
newBlock := &blockAttrs{}
newBlock.width = childBlock.width
newBlock.height = childBlock.height
if child == first && n.Data == "blockquote" {
current.marginTop = 0.
newBlock.marginTop = 0.
} else {
current.marginTop = childBlock.marginTop
newBlock.marginTop = childBlock.marginTop
}
if child == last && n.Data == "blockquote" {
current.marginBottom = 0.
newBlock.marginBottom = 0.
} else {
current.marginBottom = childBlock.marginBottom
newBlock.marginBottom = childBlock.marginBottom
}
current.width = childBlock.width
current.height = childBlock.height
blocks = append(blocks, *current)
current = nil
blocks = append(blocks, *newBlock)
} else if child.Type == html.ElementNode && child.Data == "br" {
if current != nil {
if !isCode && current.height > 0 && current.height < MarkdownLineHeightPx {
current.height = MarkdownLineHeightPx
}
blocks = append(blocks, *current)
current = nil
if inlineBlock != nil {
endInlineBlock()
}
} else if childBlock.isNotEmpty() {
if current == nil {
current = &childBlock
if inlineBlock == nil {
// start inline block with child
inlineBlock = &childBlock
} else {
current.marginTop = go2.Max(current.marginTop, childBlock.marginTop)
current.marginBottom = go2.Max(current.marginBottom, childBlock.marginBottom)
// stack inline element dimensions horizontally
inlineBlock.width += childBlock.width
inlineBlock.height = go2.Max(inlineBlock.height, childBlock.height)
current.width += childBlock.width
current.height = go2.Max(current.height, childBlock.height)
inlineBlock.marginTop = go2.Max(inlineBlock.marginTop, childBlock.marginTop)
inlineBlock.marginBottom = go2.Max(inlineBlock.marginBottom, childBlock.marginBottom)
}
}
}
if current != nil {
if !isCode && current.height > 0 && current.height < MarkdownLineHeightPx {
current.height = MarkdownLineHeightPx
}
blocks = append(blocks, *current)
current = nil
if inlineBlock != nil {
endInlineBlock()
}
var prevMarginBottom float64
@ -363,7 +380,7 @@ func (ruler *Ruler) measureNode(depth int, n *html.Node, fontFamily *d2fonts.Fon
block.marginBottom = go2.Max(block.marginBottom, MarginBottom_h)
switch n.Data {
case "h1", "h2":
block.height += PaddingBottom_h1_h2_em * float64(fontSize)
block.height += PaddingBottom_h1_h2_em*float64(fontSize) + BorderBottom_h1_h2
}
case "li":
block.width += PaddingLeft_ul_ol
@ -394,6 +411,9 @@ func (ruler *Ruler) measureNode(depth int, n *html.Node, fontFamily *d2fonts.Fon
if block.height > 0 && block.height < MarkdownLineHeightPx {
block.height = MarkdownLineHeightPx
}
if debugMeasure {
fmt.Printf("%s%s(%v,%v) mt:%v mb:%v\n", depthStr, n.Data, block.width, block.height, block.marginTop, block.marginBottom)
}
return block
}
return blockAttrs{}