Merge branch 'master' into fix-arrowhead

This commit is contained in:
Júlio César Batista 2022-11-09 15:40:13 -03:00
commit 9bb0ad203a
37 changed files with 3716 additions and 632 deletions

View file

@ -828,12 +828,14 @@ func (g *Graph) SetDimensions(mtexts []*d2target.MText, ruler *textmeasure.Ruler
} }
var dims *d2target.TextDimensions var dims *d2target.TextDimensions
var innerLabelPadding = 5
if obj.Attributes.Shape.Value == d2target.ShapeText { if obj.Attributes.Shape.Value == d2target.ShapeText {
var err error var err error
dims, err = getMarkdownDimensions(mtexts, ruler, obj.Text()) dims, err = getMarkdownDimensions(mtexts, ruler, obj.Text())
if err != nil { if err != nil {
return err return err
} }
innerLabelPadding = 0
} else { } else {
dims = getTextDimensions(mtexts, ruler, obj.Text()) dims = getTextDimensions(mtexts, ruler, obj.Text())
} }
@ -855,7 +857,6 @@ func (g *Graph) SetDimensions(mtexts []*d2target.MText, ruler *textmeasure.Ruler
} }
} }
const innerLabelPadding = 5
dims.Width += innerLabelPadding dims.Width += innerLabelPadding
dims.Height += innerLabelPadding dims.Height += innerLabelPadding
obj.LabelDimensions = *dims obj.LabelDimensions = *dims

View file

@ -73,7 +73,7 @@ func Layout(ctx context.Context, d2graph *d2graph.Graph) (err error) {
loadScript := "" loadScript := ""
for _, obj := range d2graph.Objects { for _, obj := range d2graph.Objects {
id := obj.AbsID() id := obj.AbsID()
loadScript += generateAddNodeLine(id, obj.Attributes.Label.Value, int(obj.Width), int(obj.Height)) loadScript += generateAddNodeLine(id, int(obj.Width), int(obj.Height))
if obj.Parent != d2graph.Root { if obj.Parent != d2graph.Root {
loadScript += generateAddParentLine(id, obj.Parent.AbsID()) loadScript += generateAddParentLine(id, obj.Parent.AbsID())
} }
@ -93,7 +93,7 @@ func Layout(ctx context.Context, d2graph *d2graph.Graph) (err error) {
// for `b <- a`, edge.Edge is `a -> b` and we expect this routing result // for `b <- a`, edge.Edge is `a -> b` and we expect this routing result
src, dst = dst, src src, dst = dst, src
} }
loadScript += generateAddEdgeLine(src.AbsID(), dst.AbsID(), edge.AbsID(), edge.Attributes.Label.Value) loadScript += generateAddEdgeLine(src.AbsID(), dst.AbsID(), edge.AbsID())
} }
if debugJS { if debugJS {
@ -234,15 +234,15 @@ func setGraphAttrs(attrs dagreGraphAttrs) string {
) )
} }
func generateAddNodeLine(id, label string, width, height int) string { func generateAddNodeLine(id string, width, height int) string {
return fmt.Sprintf("g.setNode(`%s`, { label: `%s`, width: %d, height: %d });\n", id, label, width, height) return fmt.Sprintf("g.setNode(`%s`, { width: %d, height: %d });\n", id, width, height)
} }
func generateAddParentLine(childID, parentID string) string { func generateAddParentLine(childID, parentID string) string {
return fmt.Sprintf("g.setParent(`%s`, `%s`);\n", childID, parentID) return fmt.Sprintf("g.setParent(`%s`, `%s`);\n", childID, parentID)
} }
func generateAddEdgeLine(fromID, toID, edgeID, label string) string { func generateAddEdgeLine(fromID, toID, edgeID string) string {
// in dagre v is from, w is to, name is to uniquely identify // in dagre v is from, w is to, name is to uniquely identify
return fmt.Sprintf("g.setEdge({v:`%s`, w:`%s`, name:`%s`, label:`%s`});\n", fromID, toID, edgeID, label) return fmt.Sprintf("g.setEdge({v:`%s`, w:`%s`, name:`%s` });\n", fromID, toID, edgeID)
} }

View file

@ -717,7 +717,17 @@ func embedFonts(buf *bytes.Buffer) {
break break
} }
} }
if strings.Contains(content, `class="text-mono"`) {
triggers = []string{
`class="text-mono"`,
`<pre>`,
`<code>`,
`<kbd>`,
`<samp>`,
}
for _, t := range triggers {
if strings.Contains(content, t) {
fmt.Fprintf(buf, ` fmt.Fprintf(buf, `
.text-mono { .text-mono {
font-family: "font-mono"; font-family: "font-mono";
@ -727,6 +737,8 @@ func embedFonts(buf *bytes.Buffer) {
src: url("%s"); src: url("%s");
}`, }`,
d2fonts.FontEncodings[d2fonts.SourceCodePro.Font(0, d2fonts.FONT_STYLE_REGULAR)]) d2fonts.FontEncodings[d2fonts.SourceCodePro.Font(0, d2fonts.FONT_STYLE_REGULAR)])
break
}
} }
buf.WriteString(`]]></style>`) buf.WriteString(`]]></style>`)

View file

@ -8,6 +8,18 @@
font-family: "font-bold"; font-family: "font-bold";
} }
.md code,
.md kbd,
.md pre,
.md samp {
font-family: "font-mono";
font-size: 1em;
}
.md {
tab-size: 4;
}
/* based on https://github.com/sindresorhus/github-markdown-css */ /* based on https://github.com/sindresorhus/github-markdown-css */
@media (prefers-color-scheme: dark) { @media (prefers-color-scheme: dark) {
.md { .md {
@ -131,14 +143,6 @@
background-color: var(--color-canvas-default); background-color: var(--color-canvas-default);
} }
.md code,
.md kbd,
.md pre,
.md samp {
font-family: monospace, monospace;
font-size: 1em;
}
.md figure { .md figure {
margin: 1em 40px; margin: 1em 40px;
} }
@ -254,9 +258,6 @@
.md kbd { .md kbd {
display: inline-block; display: inline-block;
padding: 3px 5px; padding: 3px 5px;
font: 11px ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono,
monospace;
line-height: 10px;
color: var(--color-fg-default); color: var(--color-fg-default);
vertical-align: middle; vertical-align: middle;
background-color: var(--color-canvas-subtle); background-color: var(--color-canvas-subtle);
@ -341,19 +342,9 @@
margin-left: 0; margin-left: 0;
} }
.md tt,
.md code {
font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono,
monospace;
font-size: 12px;
}
.md pre { .md pre {
margin-top: 0; margin-top: 0;
margin-bottom: 0; margin-bottom: 0;
font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono,
monospace;
font-size: 12px;
word-wrap: normal; word-wrap: normal;
} }

View file

@ -17,6 +17,7 @@ import (
var markdownRenderer goldmark.Markdown var markdownRenderer goldmark.Markdown
// these are css values from github-markdown.css so we can accurately compute the rendered dimensions
const ( const (
MarkdownFontSize = d2fonts.FONT_SIZE_M MarkdownFontSize = d2fonts.FONT_SIZE_M
MarkdownLineHeight = 1.5 MarkdownLineHeight = 1.5
@ -38,6 +39,11 @@ const (
Padding_pre = 16 Padding_pre = 16
MarginBottom_pre = 16 MarginBottom_pre = 16
LineHeight_pre = 1.45
FontSize_pre_code_em = 0.85
PaddingTopBottom_code_em = 0.2
PaddingLeftRight_code_em = 0.4
PaddingLR_blockquote_em = 1. PaddingLR_blockquote_em = 1.
MarginBottom_blockquote = 16 MarginBottom_blockquote = 16
@ -96,9 +102,11 @@ func MeasureMarkdown(mdText string, ruler *Ruler) (width, height int, err error)
{ {
originalLineHeight := ruler.LineHeightFactor originalLineHeight := ruler.LineHeightFactor
ruler.boundsWithDot = true
ruler.LineHeightFactor = MarkdownLineHeight ruler.LineHeightFactor = MarkdownLineHeight
defer func() { defer func() {
ruler.LineHeightFactor = originalLineHeight ruler.LineHeightFactor = originalLineHeight
ruler.boundsWithDot = false
}() }()
} }
@ -185,6 +193,11 @@ func hasAncestorElement(n *html.Node, elType string) bool {
// measures node dimensions to match rendering with styles in github-markdown.css // measures node dimensions to match rendering with styles in github-markdown.css
func (ruler *Ruler) measureNode(depth int, n *html.Node, font d2fonts.Font) (width, height, marginTop, marginBottom float64) { func (ruler *Ruler) measureNode(depth int, n *html.Node, font d2fonts.Font) (width, height, marginTop, marginBottom float64) {
var parentElementType string
if n.Parent != nil && n.Parent.Type == html.ElementNode {
parentElementType = n.Parent.Data
}
switch n.Type { switch n.Type {
case html.TextNode: case html.TextNode:
if strings.TrimSpace(n.Data) == "" { if strings.TrimSpace(n.Data) == "" {
@ -198,10 +211,11 @@ func (ruler *Ruler) measureNode(depth int, n *html.Node, font d2fonts.Font) (wid
spaceWidth := ruler.atlases[font].glyph(spaceRune).advance spaceWidth := ruler.atlases[font].glyph(spaceRune).advance
str := n.Data str := n.Data
hasCodeParent := n.Parent != nil && n.Parent.Type == html.ElementNode && (n.Parent.Data == "pre" || n.Parent.Data == "code") isCode := parentElementType == "pre" || parentElementType == "code"
if !hasCodeParent {
str = strings.ReplaceAll(n.Data, "\n", " ") if !isCode {
} str = strings.ReplaceAll(str, "\n", " ")
str = strings.ReplaceAll(str, "\t", " ")
if strings.HasPrefix(str, " ") { if strings.HasPrefix(str, " ") {
str = strings.TrimPrefix(str, " ") str = strings.TrimPrefix(str, " ")
if hasPrev(n) { if hasPrev(n) {
@ -214,16 +228,22 @@ func (ruler *Ruler) measureNode(depth int, n *html.Node, font d2fonts.Font) (wid
spaceWidths += spaceWidth spaceWidths += spaceWidth
} }
} }
w, h := ruler.MeasurePrecise(font, str)
w += spaceWidths
// fmt.Printf("%d:%s width %v height %v fontStyle %s\n", depth, n.Data, w, h, font.Style)
if h > 0 && h < MarkdownLineHeightPx {
h = MarkdownLineHeightPx
} }
return w, h, 0, 0
if parentElementType == "pre" {
originalLineHeight := ruler.LineHeightFactor
ruler.LineHeightFactor = LineHeight_pre
defer func() {
ruler.LineHeightFactor = originalLineHeight
}()
}
w, h := ruler.MeasurePrecise(font, str)
if isCode {
w *= FontSize_pre_code_em
h *= FontSize_pre_code_em
}
return w + spaceWidths, h, 0, 0
case html.ElementNode: case html.ElementNode:
// fmt.Printf("%d: %v node\n", depth, n.Data)
switch n.Data { switch n.Data {
case "h1", "h2", "h3", "h4", "h5", "h6": case "h1", "h2", "h3", "h4", "h5", "h6":
font = HeaderFonts[n.Data] font = HeaderFonts[n.Data]
@ -237,7 +257,8 @@ func (ruler *Ruler) measureNode(depth int, n *html.Node, font d2fonts.Font) (wid
case "b", "strong": case "b", "strong":
font.Style = d2fonts.FONT_STYLE_BOLD font.Style = d2fonts.FONT_STYLE_BOLD
case "pre", "code": case "pre", "code":
// TODO monospaced font font.Family = d2fonts.SourceCodePro
font.Style = d2fonts.FONT_STYLE_REGULAR
} }
if n.FirstChild != nil { if n.FirstChild != nil {
@ -284,10 +305,10 @@ func (ruler *Ruler) measureNode(depth int, n *html.Node, font d2fonts.Font) (wid
switch n.Data { switch n.Data {
case "blockquote": case "blockquote":
width += float64(font.Size) * (2*PaddingLR_blockquote_em + BorderLeft_blockquote_em) width += (2*PaddingLR_blockquote_em + BorderLeft_blockquote_em) * float64(font.Size)
marginBottom = go2.Max(marginBottom, MarginBottom_blockquote) marginBottom = go2.Max(marginBottom, MarginBottom_blockquote)
case "p": case "p":
if n.Parent != nil && n.Parent.Type == html.ElementNode && n.Parent.Data == "li" { if parentElementType == "li" {
marginTop = go2.Max(marginTop, MarginTop_li_p) marginTop = go2.Max(marginTop, MarginTop_li_p)
} }
marginBottom = go2.Max(marginBottom, MarginBottom_p) marginBottom = go2.Max(marginBottom, MarginBottom_p)
@ -296,7 +317,7 @@ func (ruler *Ruler) measureNode(depth int, n *html.Node, font d2fonts.Font) (wid
marginBottom = go2.Max(marginBottom, MarginBottom_h) marginBottom = go2.Max(marginBottom, MarginBottom_h)
switch n.Data { switch n.Data {
case "h1", "h2": case "h1", "h2":
height += float64(HeaderToFontSize[n.Data]) * PaddingBottom_h1_h2_em height += PaddingBottom_h1_h2_em * float64(font.Size)
} }
case "li": case "li":
width += PaddingLeft_ul_ol width += PaddingLeft_ul_ol
@ -314,12 +335,20 @@ func (ruler *Ruler) measureNode(depth int, n *html.Node, font d2fonts.Font) (wid
width += 2 * Padding_pre width += 2 * Padding_pre
height += 2 * Padding_pre height += 2 * Padding_pre
marginBottom = go2.Max(marginBottom, MarginBottom_pre) marginBottom = go2.Max(marginBottom, MarginBottom_pre)
case "code":
if parentElementType != "pre" {
width += 2 * PaddingLeftRight_code_em * float64(font.Size)
height += 2 * PaddingTopBottom_code_em * float64(font.Size)
}
case "hr": case "hr":
height += Height_hr height += Height_hr
marginTop = go2.Max(marginTop, MarginTopBottom_hr) marginTop = go2.Max(marginTop, MarginTopBottom_hr)
marginBottom = go2.Max(marginBottom, MarginTopBottom_hr) marginBottom = go2.Max(marginBottom, MarginTopBottom_hr)
} }
// fmt.Printf("%d:%s width %v height %v mt %v mb %v\n", depth, n.Data, width, height, marginTop, marginBottom)
if height > 0 && height < MarkdownLineHeightPx {
height = MarkdownLineHeightPx
}
} }
return width, height, marginTop, marginBottom return width, height, marginTop, marginBottom
} }

View file

@ -14,6 +14,8 @@ import (
"oss.terrastruct.com/d2/lib/geo" "oss.terrastruct.com/d2/lib/geo"
) )
const TAB_SIZE = 4
// ASCII is a set of all ASCII runes. These runes are codepoints from 32 to 127 inclusive. // ASCII is a set of all ASCII runes. These runes are codepoints from 32 to 127 inclusive.
var ASCII []rune var ASCII []rune
@ -77,6 +79,9 @@ type Ruler struct {
buf []byte buf []byte
prevR rune prevR rune
bounds *rect bounds *rect
// when drawing text also union Ruler.bounds with Dot
boundsWithDot bool
} }
// New creates a new Ruler capable of drawing runes contained in the provided atlas. Orig and Dot // New creates a new Ruler capable of drawing runes contained in the provided atlas. Orig and Dot
@ -118,7 +123,7 @@ func NewRuler() (*Ruler, error) {
atlas := NewAtlas(face, ASCII) atlas := NewAtlas(face, ASCII)
atlases[font] = atlas atlases[font] = atlas
lineHeights[font] = atlas.lineHeight lineHeights[font] = atlas.lineHeight
tabWidths[font] = atlas.glyph(' ').advance * 4 tabWidths[font] = atlas.glyph(' ').advance * TAB_SIZE
} }
} }
} }
@ -199,6 +204,10 @@ func (txt *Ruler) drawBuf(font d2fonts.Font) {
txt.prevR = r txt.prevR = r
if txt.boundsWithDot {
txt.bounds = txt.bounds.union(&rect{txt.Dot, txt.Dot})
txt.bounds = txt.bounds.union(bounds)
} else {
if txt.bounds.w()*txt.bounds.h() == 0 { if txt.bounds.w()*txt.bounds.h() == 0 {
txt.bounds = bounds txt.bounds = bounds
} else { } else {
@ -206,3 +215,4 @@ func (txt *Ruler) drawBuf(font d2fonts.Font) {
} }
} }
} }
}

View file

@ -88,13 +88,19 @@ _italics are all measured correctly_
`: {214, 24}, `: {214, 24},
` `
**bold is measured correctly** **bold is measured correctly**
`: {187, 24}, `: {188, 24},
` `
**Note:** This document **Note:** This document
`: {141, 24}, `: {143, 24},
` `
**Note:** **Note:**
`: {37, 24}, `: {39, 24},
`a`: {9, 24},
`w`: {12, 24},
`ww`: {24, 24},
"`inline code`": {103, 24},
"`code`": {46, 24},
"`a`": {21, 24},
} }
func TestTextMeasureMarkdown(t *testing.T) { func TestTextMeasureMarkdown(t *testing.T) {

View file

@ -677,6 +677,41 @@ x -> hey -> y`,
c -- a: {style.stroke-width: 7} c -- a: {style.stroke-width: 7}
Oval <-> c`, Oval <-> c`,
}, },
{
name: "md_code_inline",
script: `md: |md
` + "`code`" + `
|
a -> md -> b
`,
},
{
name: "md_code_block_fenced",
script: `md: |md
` + "```" + `
{
fenced: "block",
of: "json",
}
` + "```" + `
|
a -> md -> b
`,
},
{
name: "md_code_block_indented",
script: `md: |md
a line of text and an
{
indented: "block",
of: "json",
}
|
a -> md -> b
`,
},
} }
runa(t, tcs) runa(t, tcs)

View file

@ -8,8 +8,8 @@
"x": 0, "x": 0,
"y": 0 "y": 0
}, },
"width": 1123, "width": 1117,
"height": 1659, "height": 1654,
"level": 1, "level": 1,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
@ -46,8 +46,8 @@
"x": 40, "x": 40,
"y": 50 "y": 50
}, },
"width": 779, "width": 776,
"height": 1559, "height": 1554,
"level": 2, "level": 2,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
@ -84,8 +84,8 @@
"x": 80, "x": 80,
"y": 878 "y": 878
}, },
"width": 513, "width": 510,
"height": 681, "height": 676,
"level": 3, "level": 3,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
@ -122,7 +122,7 @@
"x": 120, "x": 120,
"y": 928 "y": 928
}, },
"width": 357, "width": 355,
"height": 226, "height": 226,
"level": 4, "level": 4,
"opacity": 1, "opacity": 1,
@ -157,11 +157,11 @@
"id": "aa.bb.cc.dd.ee", "id": "aa.bb.cc.dd.ee",
"type": "text", "type": "text",
"pos": { "pos": {
"x": 230, "x": 232,
"y": 1027 "y": 1029
}, },
"width": 21, "width": 16,
"height": 29, "height": 24,
"level": 5, "level": 5,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
@ -187,14 +187,14 @@
"italic": false, "italic": false,
"bold": true, "bold": true,
"underline": false, "underline": false,
"labelWidth": 21, "labelWidth": 16,
"labelHeight": 29 "labelHeight": 24
}, },
{ {
"id": "aa.bb.cc.dd.ff", "id": "aa.bb.cc.dd.ff",
"type": "", "type": "",
"pos": { "pos": {
"x": 311, "x": 308,
"y": 978 "y": 978
}, },
"width": 117, "width": 117,
@ -232,11 +232,11 @@
"id": "aa.bb.cc.gg", "id": "aa.bb.cc.gg",
"type": "text", "type": "text",
"pos": { "pos": {
"x": 408, "x": 409,
"y": 1254 "y": 1254
}, },
"width": 22, "width": 17,
"height": 29, "height": 24,
"level": 4, "level": 4,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
@ -262,15 +262,15 @@
"italic": false, "italic": false,
"bold": true, "bold": true,
"underline": false, "underline": false,
"labelWidth": 22, "labelWidth": 17,
"labelHeight": 29 "labelHeight": 24
}, },
{ {
"id": "aa.bb.cc.hh", "id": "aa.bb.cc.hh",
"type": "", "type": "",
"pos": { "pos": {
"x": 357, "x": 356,
"y": 1383 "y": 1378
}, },
"width": 123, "width": 123,
"height": 126, "height": 126,
@ -383,8 +383,8 @@
"id": "aa.bb.kk", "id": "aa.bb.kk",
"type": "oval", "type": "oval",
"pos": { "pos": {
"x": 643, "x": 641,
"y": 1383 "y": 1378
}, },
"width": 126, "width": 126,
"height": 126, "height": 126,
@ -421,7 +421,7 @@
"id": "aa.ll", "id": "aa.ll",
"type": "", "type": "",
"pos": { "pos": {
"x": 919, "x": 915,
"y": 652 "y": 652
}, },
"width": 114, "width": 114,
@ -459,7 +459,7 @@
"id": "aa.mm", "id": "aa.mm",
"type": "cylinder", "type": "cylinder",
"pos": { "pos": {
"x": 906, "x": 902,
"y": 426 "y": 426
}, },
"width": 131, "width": 131,
@ -497,11 +497,11 @@
"id": "aa.nn", "id": "aa.nn",
"type": "text", "type": "text",
"pos": { "pos": {
"x": 869, "x": 867,
"y": 1432 "y": 1429
}, },
"width": 21, "width": 18,
"height": 29, "height": 24,
"level": 2, "level": 2,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
@ -527,15 +527,15 @@
"italic": false, "italic": false,
"bold": true, "bold": true,
"underline": false, "underline": false,
"labelWidth": 21, "labelWidth": 18,
"labelHeight": 29 "labelHeight": 24
}, },
{ {
"id": "aa.oo", "id": "aa.oo",
"type": "", "type": "",
"pos": { "pos": {
"x": 950, "x": 945,
"y": 1383 "y": 1378
}, },
"width": 123, "width": 123,
"height": 126, "height": 126,
@ -597,19 +597,19 @@
"route": [ "route": [
{ {
"x": 240, "x": 240,
"y": 1055.5 "y": 1053
}, },
{ {
"x": 240, "x": 240,
"y": 1134.3 "y": 1133.8
}, },
{ {
"x": 273.55, "x": 273.8,
"y": 1216.1061538461538 "y": 1215.8
}, },
{ {
"x": 407.75, "x": 409,
"y": 1264.5307692307692 "y": 1263
} }
], ],
"isCurve": true, "isCurve": true,
@ -643,20 +643,20 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 418.75, "x": 417.5,
"y": 1283 "y": 1278
}, },
{ {
"x": 418.75, "x": 417.5,
"y": 1323 "y": 1318
}, },
{ {
"x": 418.75, "x": 417.5,
"y": 1343 "y": 1338
}, },
{ {
"x": 418.75, "x": 417.5,
"y": 1383 "y": 1378
} }
], ],
"isCurve": true, "isCurve": true,
@ -785,20 +785,20 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 918.5, "x": 914.5,
"y": 723.757307953773 "y": 723.8051948051948
}, },
{ {
"x": 839.3, "x": 836.1,
"y": 735.757307953773 "y": 735.8051948051948
}, },
{ {
"x": 898.7, "x": 894.9,
"y": 726.757307953773 "y": 726.8051948051948
}, },
{ {
"x": 819.5, "x": 816.5,
"y": 738.757307953773 "y": 738.8051948051948
} }
], ],
"isCurve": true, "isCurve": true,
@ -832,11 +832,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 906, "x": 902,
"y": 500 "y": 500
}, },
{ {
"x": 405.2, "x": 404.4,
"y": 581.6 "y": 581.6
}, },
{ {
@ -891,19 +891,19 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 974, "x": 970,
"y": 552 "y": 552
}, },
{ {
"x": 975.2, "x": 971.2,
"y": 592 "y": 592
}, },
{ {
"x": 975.5, "x": 971.5,
"y": 612 "y": 612
}, },
{ {
"x": 975.5, "x": 971.5,
"y": 652 "y": 652
} }
], ],
@ -938,20 +938,20 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 906, "x": 902,
"y": 500 "y": 500
}, },
{ {
"x": 836.2, "x": 833.8,
"y": 512.2920537428023 "y": 512.3482425646968
}, },
{ {
"x": 888.55, "x": 884.95,
"y": 503.07301343570055 "y": 503.08706064117416
}, },
{ {
"x": 818.75, "x": 816.75,
"y": 515.3650671785028 "y": 515.4353032058709
} }
], ],
"isCurve": true, "isCurve": true,
@ -985,67 +985,67 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 918.5, "x": 914.5,
"y": 729.0633187772926 "y": 729.1095290251917
}, },
{ {
"x": 597.7, "x": 594.9,
"y": 808.2126637554585 "y": 808.2219058050383
}, },
{ {
"x": 517.5, "x": 515,
"y": 838 "y": 838
}, },
{ {
"x": 517.5, "x": 515,
"y": 853 "y": 853
}, },
{ {
"x": 517.5, "x": 515,
"y": 868 "y": 868
}, },
{ {
"x": 517.5, "x": 515,
"y": 888 "y": 888
}, },
{ {
"x": 517.5, "x": 515,
"y": 903 "y": 903
}, },
{ {
"x": 517.5, "x": 515,
"y": 918 "y": 918
}, },
{ {
"x": 517.5, "x": 515,
"y": 950.6 "y": 950.6
}, },
{ {
"x": 517.5, "x": 515,
"y": 984.5 "y": 984.5
}, },
{ {
"x": 517.5, "x": 515,
"y": 1018.4 "y": 1018.4
}, },
{ {
"x": 517.5, "x": 515,
"y": 1063.6 "y": 1063.6
}, },
{ {
"x": 517.5, "x": 515,
"y": 1097.5 "y": 1097.5
}, },
{ {
"x": 517.5, "x": 515,
"y": 1131.4 "y": 1131.4
}, },
{ {
"x": 499.9, "x": 497.2,
"y": 1215.4 "y": 1215.4
}, },
{ {
"x": 429.5, "x": 426,
"y": 1261 "y": 1261
} }
], ],
@ -1080,11 +1080,11 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 906, "x": 902,
"y": 476 "y": 476
}, },
{ {
"x": 501.2, "x": 500.4,
"y": 396 "y": 396
}, },
{ {
@ -1127,20 +1127,20 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 378.75, "x": 377.5,
"y": 878 "y": 878
}, },
{ {
"x": 378.75, "x": 377.5,
"y": 838 "y": 838
}, },
{ {
"x": 486.7, "x": 484.9,
"y": 807.5586929199833 "y": 807.5686868686869
}, },
{ {
"x": 918.5, "x": 914.5,
"y": 725.7934645999162 "y": 725.8434343434343
} }
], ],
"isCurve": true, "isCurve": true,
@ -1194,12 +1194,12 @@
"y": 466.4 "y": 466.4
}, },
{ {
"x": 471.7, "x": 470.9,
"y": 622.5070674248578 "y": 622.493376941946
}, },
{ {
"x": 918.5, "x": 914.5,
"y": 704.5353371242892 "y": 704.4668847097302
} }
], ],
"isCurve": true, "isCurve": true,

View file

@ -2,7 +2,7 @@
<svg <svg
style="background: white;" style="background: white;"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
width="1323" height="1859" viewBox="-100 -100 1323 1859"><style type="text/css"> width="1317" height="1854" viewBox="-100 -100 1317 1854"><style type="text/css">
<![CDATA[ <![CDATA[
.shape { .shape {
shape-rendering: geometricPrecision; shape-rendering: geometricPrecision;
@ -22,6 +22,18 @@ width="1323" height="1859" viewBox="-100 -100 1323 1859"><style type="text/css">
font-family: "font-bold"; font-family: "font-bold";
} }
.md code,
.md kbd,
.md pre,
.md samp {
font-family: "font-mono";
font-size: 1em;
}
.md {
tab-size: 4;
}
/* based on https://github.com/sindresorhus/github-markdown-css */ /* based on https://github.com/sindresorhus/github-markdown-css */
@media (prefers-color-scheme: dark) { @media (prefers-color-scheme: dark) {
.md { .md {
@ -145,14 +157,6 @@ width="1323" height="1859" viewBox="-100 -100 1323 1859"><style type="text/css">
background-color: var(--color-canvas-default); background-color: var(--color-canvas-default);
} }
.md code,
.md kbd,
.md pre,
.md samp {
font-family: monospace, monospace;
font-size: 1em;
}
.md figure { .md figure {
margin: 1em 40px; margin: 1em 40px;
} }
@ -268,9 +272,6 @@ width="1323" height="1859" viewBox="-100 -100 1323 1859"><style type="text/css">
.md kbd { .md kbd {
display: inline-block; display: inline-block;
padding: 3px 5px; padding: 3px 5px;
font: 11px ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono,
monospace;
line-height: 10px;
color: var(--color-fg-default); color: var(--color-fg-default);
vertical-align: middle; vertical-align: middle;
background-color: var(--color-canvas-subtle); background-color: var(--color-canvas-subtle);
@ -355,19 +356,9 @@ width="1323" height="1859" viewBox="-100 -100 1323 1859"><style type="text/css">
margin-left: 0; margin-left: 0;
} }
.md tt,
.md code {
font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono,
monospace;
font-size: 12px;
}
.md pre { .md pre {
margin-top: 0; margin-top: 0;
margin-bottom: 0; margin-bottom: 0;
font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono,
monospace;
font-size: 12px;
word-wrap: normal; word-wrap: normal;
} }
@ -797,34 +788,34 @@ width="1323" height="1859" viewBox="-100 -100 1323 1859"><style type="text/css">
.md .contains-task-list:dir(rtl) .task-list-item-checkbox { .md .contains-task-list:dir(rtl) .task-list-item-checkbox {
margin: 0 -1.6em 0.25em 0.2em; margin: 0 -1.6em 0.25em 0.2em;
} }
</style><rect class="shape" x="0" y="0" width="1123" height="1659" style="fill:#E3E9FD;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="561.500000" y="33.000000" style="text-anchor:middle;font-size:28px;fill:black">aa</text><rect class="shape" x="40" y="50" width="779" height="1559" style="fill:#EDF0FD;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="429.500000" y="79.000000" style="text-anchor:middle;font-size:24px;fill:black">bb</text><rect class="shape" x="919" y="652" width="114" height="126" style="fill:#EDF0FD;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="976.000000" y="718.000000" style="text-anchor:middle;font-size:16px;fill:black">ll</text><path class="shape" d="M 906 450 C 906 426 964.95 426 971.5 426 C 978.05 426 1037 426 1037 450 V 528 C 1037 552 978.05 552 971.5 552 C 964.95 552 906 552 906 528 V 450 Z" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><path class="shape" d="M 906 450 C 906 474 964.95 474 971.5 474 C 978.05 474 1037 474 1037 450" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="971.500000" y="504.000000" style="text-anchor:middle;font-size:16px;fill:black">mm</text><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="869.000000" y="1432.000000" width="21" height="29"><div xmlns="http://www.w3.org/1999/xhtml" class="md"><p>nn</p> </style><rect class="shape" x="0" y="0" width="1117" height="1654" style="fill:#E3E9FD;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="558.500000" y="33.000000" style="text-anchor:middle;font-size:28px;fill:black">aa</text><rect class="shape" x="40" y="50" width="776" height="1554" style="fill:#EDF0FD;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="428.000000" y="79.000000" style="text-anchor:middle;font-size:24px;fill:black">bb</text><rect class="shape" x="915" y="652" width="114" height="126" style="fill:#EDF0FD;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="972.000000" y="718.000000" style="text-anchor:middle;font-size:16px;fill:black">ll</text><path class="shape" d="M 902 450 C 902 426 960.95 426 967.5 426 C 974.05 426 1033 426 1033 450 V 528 C 1033 552 974.05 552 967.5 552 C 960.95 552 902 552 902 528 V 450 Z" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><path class="shape" d="M 902 450 C 902 474 960.95 474 967.5 474 C 974.05 474 1033 474 1033 450" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="967.500000" y="504.000000" style="text-anchor:middle;font-size:16px;fill:black">mm</text><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="867.000000" y="1429.000000" width="18" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="md"><p>nn</p>
</div></foreignObject></g><rect class="shape" x="950" y="1383" width="123" height="126" style="fill:#EDF0FD;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="1011.500000" y="1449.000000" style="text-anchor:middle;font-size:16px;fill:black">oo</text><rect class="shape" x="80" y="878" width="513" height="681" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="336.500000" y="903.000000" style="text-anchor:middle;font-size:20px;fill:black">cc</text><path class="shape" d="M 106 100 L 256 100 L 256 145.2 L 473 145.2 L 473 326 L 106 326 Z" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="289.500000" y="125.000000" style="text-anchor:middle;font-size:20px;fill:black">ii</text><ellipse class="shape" cx="706.000000" cy="1446.000000" rx="63.000000" ry="63.000000" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="706.000000" y="1449.000000" style="text-anchor:middle;font-size:16px;fill:black">kk</text><rect class="shape" x="120" y="928" width="357" height="226" style="fill:#FFFFFF;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="298.500000" y="949.000000" style="text-anchor:middle;font-size:16px;fill:black">dd</text><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="408.000000" y="1254.000000" width="22" height="29"><div xmlns="http://www.w3.org/1999/xhtml" class="md"><p>gg</p> </div></foreignObject></g><rect class="shape" x="945" y="1378" width="123" height="126" style="fill:#EDF0FD;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="1006.500000" y="1444.000000" style="text-anchor:middle;font-size:16px;fill:black">oo</text><rect class="shape" x="80" y="878" width="510" height="676" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="335.000000" y="903.000000" style="text-anchor:middle;font-size:20px;fill:black">cc</text><path class="shape" d="M 106 100 L 256 100 L 256 145.2 L 473 145.2 L 473 326 L 106 326 Z" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="289.500000" y="125.000000" style="text-anchor:middle;font-size:20px;fill:black">ii</text><ellipse class="shape" cx="704.000000" cy="1441.000000" rx="63.000000" ry="63.000000" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="704.000000" y="1444.000000" style="text-anchor:middle;font-size:16px;fill:black">kk</text><rect class="shape" x="120" y="928" width="355" height="226" style="fill:#FFFFFF;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="297.500000" y="949.000000" style="text-anchor:middle;font-size:16px;fill:black">dd</text><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="409.000000" y="1254.000000" width="17" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="md"><p>gg</p>
</div></foreignObject></g><rect class="shape" x="357" y="1383" width="123" height="126" style="fill:#FFFFFF;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="418.500000" y="1449.000000" style="text-anchor:middle;font-size:16px;fill:black">hh</text><path class="shape" d="M 300.5 276 C 300.0519 276 299.7532 275.8362 299.4545 275.5085 L 243.4481 214.2289 C 242.8507 213.5735 242.8507 212.5904 243.4481 211.935 L 299.4545 150.4915 C 300.0519 149.8361 300.948 149.8361 301.5454 150.4915 L 357.5519 211.9349 C 358.1493 212.5903 358.1493 213.5734 357.5519 214.2288 L 301.5455 275.5085 C 301.2468 275.8362 300.9481 276 300.5 276 Z" style="fill:#CFD2DD;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="300.500000" y="216.000000" style="text-anchor:middle;font-size:16px;fill:black">jj</text><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="230.000000" y="1027.000000" width="21" height="29"><div xmlns="http://www.w3.org/1999/xhtml" class="md"><p>ee</p> </div></foreignObject></g><rect class="shape" x="356" y="1378" width="123" height="126" style="fill:#FFFFFF;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="417.500000" y="1444.000000" style="text-anchor:middle;font-size:16px;fill:black">hh</text><path class="shape" d="M 300.5 276 C 300.0519 276 299.7532 275.8362 299.4545 275.5085 L 243.4481 214.2289 C 242.8507 213.5735 242.8507 212.5904 243.4481 211.935 L 299.4545 150.4915 C 300.0519 149.8361 300.948 149.8361 301.5454 150.4915 L 357.5519 211.9349 C 358.1493 212.5903 358.1493 213.5734 357.5519 214.2288 L 301.5455 275.5085 C 301.2468 275.8362 300.9481 276 300.5 276 Z" style="fill:#CFD2DD;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="300.500000" y="216.000000" style="text-anchor:middle;font-size:16px;fill:black">jj</text><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="232.000000" y="1029.000000" width="16" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="md"><p>ee</p>
</div></foreignObject></g><rect class="shape" x="311" y="978" width="117" height="126" style="fill:#FFFFFF;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="369.500000" y="1044.000000" style="text-anchor:middle;font-size:16px;fill:black">ff</text><mask id="mask-3834907066" maskUnits="userSpaceOnUse" x="238.000000" y="1053.500000" width="171.750000" height="213.030769"> </div></foreignObject></g><rect class="shape" x="308" y="978" width="117" height="126" style="fill:#FFFFFF;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="366.500000" y="1044.000000" style="text-anchor:middle;font-size:16px;fill:black">ff</text><mask id="mask-3834907066" maskUnits="userSpaceOnUse" x="238.000000" y="1051.000000" width="173.000000" height="214.000000">
<rect x="238.000000" y="1053.500000" width="171.750000" height="213.030769" fill="white"></rect> <rect x="238.000000" y="1051.000000" width="173.000000" height="214.000000" fill="white"></rect>
<rect x="261.000000" y="1194.000000" width="15" height="21" fill="black"></rect> <rect x="261.000000" y="1193.000000" width="15" height="21" fill="black"></rect>
</mask><path d="M 240.000000 1057.500000 C 240.000000 1134.300000 273.550000 1216.106154 405.868729 1263.851933" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" mask="url(#mask-3834907066)" /><text class="text-italic" x="268.500000" y="1210.000000" style="text-anchor:middle;font-size:16px;fill:black">11</text><mask id="mask-1342911600" maskUnits="userSpaceOnUse" x="410.000000" y="1281.000000" width="17.000000" height="104.000000"> </mask><path d="M 240.000000 1054.000000 C 240.000000 1133.800000 273.800000 1215.800000 408.055881 1262.670396" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" mask="url(#mask-3834907066)" /><text class="text-italic" x="268.500000" y="1209.000000" style="text-anchor:middle;font-size:16px;fill:black">11</text><mask id="mask-1342911600" maskUnits="userSpaceOnUse" x="409.000000" y="1276.000000" width="17.000000" height="104.000000">
<rect x="410.000000" y="1281.000000" width="17.000000" height="104.000000" fill="white"></rect> <rect x="409.000000" y="1276.000000" width="17.000000" height="104.000000" fill="white"></rect>
<rect x="410.000000" y="1323.000000" width="17" height="21" fill="black"></rect> <rect x="409.000000" y="1318.000000" width="17" height="21" fill="black"></rect>
</mask><path d="M 418.750000 1285.000000 C 418.750000 1323.000000 418.750000 1343.000000 418.750000 1381.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" mask="url(#mask-1342911600)" /><text class="text-italic" x="418.500000" y="1339.000000" style="text-anchor:middle;font-size:16px;fill:black">22</text><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 200.000000 328.000000 C 200.000000 366.000000 200.000000 398.600000 200.000000 432.500000 C 200.000000 466.400000 200.000000 511.600000 200.000000 545.500000 C 200.000000 579.400000 200.000000 624.600000 200.000000 658.500000 C 200.000000 692.400000 200.000000 737.600000 200.000000 771.500000 C 200.000000 805.400000 200.000000 888.000000 200.000000 924.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" /><marker id="mk-2510427236" markerWidth="10.000000" markerHeight="12.000000" refX="3.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="10.000000,0.000000 0.000000,6.000000 10.000000,12.000000" /> </marker><mask id="mask-2288667663" maskUnits="userSpaceOnUse" x="797.500000" y="697.757308" width="143.000000" height="67.000000"> </mask><path d="M 417.500000 1279.000000 C 417.500000 1318.000000 417.500000 1338.000000 417.500000 1377.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" mask="url(#mask-1342911600)" /><text class="text-italic" x="417.500000" y="1334.000000" style="text-anchor:middle;font-size:16px;fill:black">22</text><marker id="mk-3990223579" markerWidth="10.000000" markerHeight="12.000000" refX="8.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 200.000000 327.000000 C 200.000000 366.000000 200.000000 398.600000 200.000000 432.500000 C 200.000000 466.400000 200.000000 511.600000 200.000000 545.500000 C 200.000000 579.400000 200.000000 624.600000 200.000000 658.500000 C 200.000000 692.400000 200.000000 737.600000 200.000000 771.500000 C 200.000000 805.400000 200.000000 888.000000 200.000000 925.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" /><marker id="mk-2510427236" markerWidth="10.000000" markerHeight="12.000000" refX="2.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="10.000000,0.000000 0.000000,6.000000 10.000000,12.000000" /> </marker><mask id="mask-2288667663" maskUnits="userSpaceOnUse" x="794.500000" y="697.805195" width="142.000000" height="67.000000">
<rect x="797.500000" y="697.757308" width="143.000000" height="67.000000" fill="white"></rect> <rect x="794.500000" y="697.805195" width="142.000000" height="67.000000" fill="white"></rect>
<rect x="861.000000" y="721.000000" width="17" height="21" fill="black"></rect> <rect x="857.000000" y="721.000000" width="17" height="21" fill="black"></rect>
</mask><path d="M 914.545138 724.356529 C 839.300000 735.757308 898.700000 726.757308 823.454862 738.158086" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-start="url(#mk-2510427236)" marker-end="url(#mk-3990223579)" mask="url(#mask-2288667663)" /><text class="text-italic" x="869.500000" y="737.000000" style="text-anchor:middle;font-size:16px;fill:black">33</text><mask id="mask-2170131283" maskUnits="userSpaceOnUse" x="268.000000" y="486.000000" width="650.000000" height="406.000000"> </mask><path d="M 911.534536 724.259092 C 836.100000 735.805195 894.900000 726.805195 819.465464 738.351297" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-start="url(#mk-2510427236)" marker-end="url(#mk-3990223579)" mask="url(#mask-2288667663)" /><text class="text-italic" x="865.500000" y="737.000000" style="text-anchor:middle;font-size:16px;fill:black">33</text><mask id="mask-2170131283" maskUnits="userSpaceOnUse" x="268.000000" y="486.000000" width="646.000000" height="406.000000">
<rect x="268.000000" y="486.000000" width="650.000000" height="406.000000" fill="white"></rect> <rect x="268.000000" y="486.000000" width="646.000000" height="406.000000" fill="white"></rect>
<rect x="457.000000" y="561.000000" width="16" height="21" fill="black"></rect> <rect x="455.000000" y="561.000000" width="16" height="21" fill="black"></rect>
</mask><path d="M 904.026032 500.321637 C 405.200000 581.600000 280.000000 624.600000 280.000000 658.500000 C 280.000000 692.400000 280.000000 838.000000 280.000000 874.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#mask-2170131283)" /><text class="text-italic" x="465.000000" y="577.000000" style="text-anchor:middle;font-size:16px;fill:black">44</text><path d="M 974.059973 553.999101 C 975.200000 592.000000 975.500000 612.000000 975.500000 648.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" /><mask id="mask-3699877661" maskUnits="userSpaceOnUse" x="796.750000" y="474.000000" width="131.250000" height="67.365067"> </mask><path d="M 901.013181 500.161826 C 404.400000 581.600000 280.000000 624.600000 280.000000 658.500000 C 280.000000 692.400000 280.000000 838.000000 280.000000 875.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" mask="url(#mask-2170131283)" /><text class="text-italic" x="463.000000" y="577.000000" style="text-anchor:middle;font-size:16px;fill:black">44</text><path d="M 970.029987 552.999550 C 971.200000 592.000000 971.500000 612.000000 971.500000 649.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" /><mask id="mask-3699877661" maskUnits="userSpaceOnUse" x="794.750000" y="474.000000" width="129.250000" height="67.435303">
<rect x="796.750000" y="474.000000" width="131.250000" height="67.365067" fill="white"></rect> <rect x="794.750000" y="474.000000" width="129.250000" height="67.435303" fill="white"></rect>
<rect x="854.000000" y="497.000000" width="16" height="21" fill="black"></rect> <rect x="851.000000" y="497.000000" width="16" height="21" fill="black"></rect>
</mask><path d="M 902.060619 500.693740 C 836.200000 512.292054 888.550000 503.073013 822.689381 514.671327" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-start="url(#mk-2510427236)" marker-end="url(#mk-3990223579)" mask="url(#mask-3699877661)" /><text class="text-italic" x="862.000000" y="513.000000" style="text-anchor:middle;font-size:16px;fill:black">55</text><path d="M 914.616456 730.021486 C 597.700000 808.212664 517.500000 838.000000 517.500000 853.000000 C 517.500000 868.000000 517.500000 888.000000 517.500000 903.000000 C 517.500000 918.000000 517.500000 950.600000 517.500000 984.500000 C 517.500000 1018.400000 517.500000 1063.600000 517.500000 1097.500000 C 517.500000 1131.400000 499.900000 1215.400000 432.857257 1258.825413" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-start="url(#mk-2510427236)" marker-end="url(#mk-3990223579)" /><mask id="mask-3134112715" maskUnits="userSpaceOnUse" x="388.000000" y="312.000000" width="530.000000" height="178.000000"> </mask><path d="M 899.047997 500.534488 C 833.800000 512.348243 884.950000 503.087061 819.702003 514.900816" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-start="url(#mk-2510427236)" marker-end="url(#mk-3990223579)" mask="url(#mask-3699877661)" /><text class="text-italic" x="859.000000" y="513.000000" style="text-anchor:middle;font-size:16px;fill:black">55</text><path d="M 911.587892 729.830379 C 594.900000 808.221906 515.000000 838.000000 515.000000 853.000000 C 515.000000 868.000000 515.000000 888.000000 515.000000 903.000000 C 515.000000 918.000000 515.000000 950.600000 515.000000 984.500000 C 515.000000 1018.400000 515.000000 1063.600000 515.000000 1097.500000 C 515.000000 1131.400000 497.200000 1215.400000 428.526299 1259.382034" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-start="url(#mk-2510427236)" marker-end="url(#mk-3990223579)" /><mask id="mask-3134112715" maskUnits="userSpaceOnUse" x="388.000000" y="312.000000" width="526.000000" height="178.000000">
<rect x="388.000000" y="312.000000" width="530.000000" height="178.000000" fill="white"></rect> <rect x="388.000000" y="312.000000" width="526.000000" height="178.000000" fill="white"></rect>
<rect x="624.000000" y="411.000000" width="16" height="21" fill="black"></rect> <rect x="622.000000" y="411.000000" width="16" height="21" fill="black"></rect>
</mask><path d="M 902.075898 475.224486 C 501.200000 396.000000 400.000000 366.000000 400.000000 328.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-start="url(#mk-2510427236)" mask="url(#mask-3134112715)" /><text class="text-italic" x="632.000000" y="427.000000" style="text-anchor:middle;font-size:16px;fill:black">66</text><mask id="mask-3003327047" maskUnits="userSpaceOnUse" x="366.750000" y="711.793465" width="563.750000" height="180.206535"> </mask><path d="M 899.057808 475.413906 C 500.400000 396.000000 400.000000 366.000000 400.000000 327.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-start="url(#mk-2510427236)" mask="url(#mask-3134112715)" /><text class="text-italic" x="630.000000" y="427.000000" style="text-anchor:middle;font-size:16px;fill:black">66</text><mask id="mask-3003327047" maskUnits="userSpaceOnUse" x="365.500000" y="711.843434" width="561.000000" height="180.156566">
<rect x="366.750000" y="711.793465" width="563.750000" height="180.206535" fill="white"></rect> <rect x="365.500000" y="711.843434" width="561.000000" height="180.156566" fill="white"></rect>
<rect x="620.000000" y="770.000000" width="16" height="21" fill="black"></rect> <rect x="617.000000" y="770.000000" width="16" height="21" fill="black"></rect>
</mask><path d="M 378.750000 874.000000 C 378.750000 838.000000 486.700000 807.558693 916.534920 726.165570" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-start="url(#mk-2510427236)" mask="url(#mask-3003327047)" /><text class="text-italic" x="628.000000" y="786.000000" style="text-anchor:middle;font-size:16px;fill:black">77</text><mask id="mask-4288302333" maskUnits="userSpaceOnUse" x="338.000000" y="300.000000" width="602.500000" height="430.535337"> </mask><path d="M 377.500000 875.000000 C 377.500000 838.000000 484.900000 807.568687 913.517618 726.030318" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-start="url(#mk-2510427236)" mask="url(#mask-3003327047)" /><text class="text-italic" x="625.000000" y="786.000000" style="text-anchor:middle;font-size:16px;fill:black">77</text><mask id="mask-4288302333" maskUnits="userSpaceOnUse" x="338.000000" y="300.000000" width="598.500000" height="430.466885">
<rect x="338.000000" y="300.000000" width="602.500000" height="430.535337" fill="white"></rect> <rect x="338.000000" y="300.000000" width="598.500000" height="430.466885" fill="white"></rect>
<rect x="524.000000" y="623.000000" width="16" height="21" fill="black"></rect> <rect x="522.000000" y="623.000000" width="16" height="21" fill="black"></rect>
</mask><path d="M 360.000000 330.000000 C 360.000000 366.000000 360.000000 398.600000 360.000000 432.500000 C 360.000000 466.400000 471.700000 622.507067 914.565753 703.813047" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-start="url(#mk-2510427236)" marker-end="url(#mk-3990223579)" mask="url(#mask-4288302333)" /><text class="text-italic" x="532.000000" y="639.000000" style="text-anchor:middle;font-size:16px;fill:black">88</text><style type="text/css"><![CDATA[ </mask><path d="M 360.000000 329.000000 C 360.000000 366.000000 360.000000 398.600000 360.000000 432.500000 C 360.000000 466.400000 470.900000 622.493377 911.549946 703.921740" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-start="url(#mk-2510427236)" marker-end="url(#mk-3990223579)" mask="url(#mask-4288302333)" /><text class="text-italic" x="530.000000" y="639.000000" style="text-anchor:middle;font-size:16px;fill:black">88</text><style type="text/css"><![CDATA[
.text { .text {
font-family: "font-regular"; font-family: "font-regular";
} }

Before

Width:  |  Height:  |  Size: 813 KiB

After

Width:  |  Height:  |  Size: 813 KiB

View file

@ -9,7 +9,7 @@
"y": 226 "y": 226
}, },
"width": 3051, "width": 3051,
"height": 4843, "height": 4848,
"level": 1, "level": 1,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
@ -36,7 +36,7 @@
"bold": true, "bold": true,
"underline": false, "underline": false,
"labelWidth": 3051, "labelWidth": 3051,
"labelHeight": 4843 "labelHeight": 4848
}, },
{ {
"id": "a", "id": "a",
@ -81,7 +81,7 @@
"type": "", "type": "",
"pos": { "pos": {
"x": 1469, "x": 1469,
"y": 5169 "y": 5174
}, },
"width": 113, "width": 113,
"height": 126, "height": 126,
@ -190,19 +190,19 @@
"route": [ "route": [
{ {
"x": 1525.5, "x": 1525.5,
"y": 5069 "y": 5074
}, },
{ {
"x": 1525.5, "x": 1525.5,
"y": 5109 "y": 5114
}, },
{ {
"x": 1525.5, "x": 1525.5,
"y": 5129 "y": 5134
}, },
{ {
"x": 1525.5, "x": 1525.5,
"y": 5169 "y": 5174
} }
], ],
"isCurve": true, "isCurve": true,

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 813 KiB

After

Width:  |  Height:  |  Size: 993 KiB

View file

@ -9,7 +9,7 @@
"y": 226 "y": 226
}, },
"width": 738, "width": 738,
"height": 119, "height": 134,
"level": 1, "level": 1,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
@ -36,7 +36,7 @@
"bold": true, "bold": true,
"underline": false, "underline": false,
"labelWidth": 738, "labelWidth": 738,
"labelHeight": 119 "labelHeight": 134
}, },
{ {
"id": "a", "id": "a",
@ -81,7 +81,7 @@
"type": "", "type": "",
"pos": { "pos": {
"x": 313, "x": 313,
"y": 445 "y": 460
}, },
"width": 113, "width": 113,
"height": 126, "height": 126,
@ -190,19 +190,19 @@
"route": [ "route": [
{ {
"x": 369, "x": 369,
"y": 345 "y": 360
}, },
{ {
"x": 369, "x": 369,
"y": 385 "y": 400
}, },
{ {
"x": 369, "x": 369,
"y": 405 "y": 420
}, },
{ {
"x": 369, "x": 369,
"y": 445 "y": 460
} }
], ],
"isCurve": true, "isCurve": true,

View file

@ -2,7 +2,7 @@
<svg <svg
style="background: white;" style="background: white;"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
width="938" height="771" viewBox="-100 -100 938 771"><style type="text/css"> width="938" height="786" viewBox="-100 -100 938 786"><style type="text/css">
<![CDATA[ <![CDATA[
.shape { .shape {
shape-rendering: geometricPrecision; shape-rendering: geometricPrecision;
@ -22,6 +22,18 @@ width="938" height="771" viewBox="-100 -100 938 771"><style type="text/css">
font-family: "font-bold"; font-family: "font-bold";
} }
.md code,
.md kbd,
.md pre,
.md samp {
font-family: "font-mono";
font-size: 1em;
}
.md {
tab-size: 4;
}
/* based on https://github.com/sindresorhus/github-markdown-css */ /* based on https://github.com/sindresorhus/github-markdown-css */
@media (prefers-color-scheme: dark) { @media (prefers-color-scheme: dark) {
.md { .md {
@ -145,14 +157,6 @@ width="938" height="771" viewBox="-100 -100 938 771"><style type="text/css">
background-color: var(--color-canvas-default); background-color: var(--color-canvas-default);
} }
.md code,
.md kbd,
.md pre,
.md samp {
font-family: monospace, monospace;
font-size: 1em;
}
.md figure { .md figure {
margin: 1em 40px; margin: 1em 40px;
} }
@ -268,9 +272,6 @@ width="938" height="771" viewBox="-100 -100 938 771"><style type="text/css">
.md kbd { .md kbd {
display: inline-block; display: inline-block;
padding: 3px 5px; padding: 3px 5px;
font: 11px ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono,
monospace;
line-height: 10px;
color: var(--color-fg-default); color: var(--color-fg-default);
vertical-align: middle; vertical-align: middle;
background-color: var(--color-canvas-subtle); background-color: var(--color-canvas-subtle);
@ -355,19 +356,9 @@ width="938" height="771" viewBox="-100 -100 938 771"><style type="text/css">
margin-left: 0; margin-left: 0;
} }
.md tt,
.md code {
font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono,
monospace;
font-size: 12px;
}
.md pre { .md pre {
margin-top: 0; margin-top: 0;
margin-bottom: 0; margin-bottom: 0;
font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono,
monospace;
font-size: 12px;
word-wrap: normal; word-wrap: normal;
} }
@ -797,11 +788,11 @@ width="938" height="771" viewBox="-100 -100 938 771"><style type="text/css">
.md .contains-task-list:dir(rtl) .task-list-item-checkbox { .md .contains-task-list:dir(rtl) .task-list-item-checkbox {
margin: 0 -1.6em 0.25em 0.2em; margin: 0 -1.6em 0.25em 0.2em;
} }
</style><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="0.000000" y="226.000000" width="738" height="119"><div xmlns="http://www.w3.org/1999/xhtml" class="md"><p><strong>Note:</strong> This document is itself written using Markdown; you </style><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"><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> can <a href="/projects/markdown/syntax.text">see the source for it by adding '.text' to the URL</a>.</p>
<hr /> <hr />
<h2>Overview</h2> <h2>Overview</h2>
</div></foreignObject></g><rect class="shape" x="313" y="0" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="369.500000" y="66.000000" style="text-anchor:middle;font-size:16px;fill:black">a</text><rect class="shape" x="313" y="445" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="369.500000" y="511.000000" style="text-anchor:middle;font-size:16px;fill:black">b</text><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)" /><path d="M 369.000000 347.000000 C 369.000000 385.000000 369.000000 405.000000 369.000000 441.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" /><style type="text/css"><![CDATA[ </div></foreignObject></g><rect class="shape" x="313" y="0" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="369.500000" y="66.000000" style="text-anchor:middle;font-size:16px;fill:black">a</text><rect class="shape" x="313" y="460" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="369.500000" y="526.000000" style="text-anchor:middle;font-size:16px;fill:black">b</text><marker id="mk-3990223579" markerWidth="10.000000" markerHeight="12.000000" refX="8.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 127.000000 C 369.000000 166.000000 369.000000 186.000000 369.000000 223.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" /><path d="M 369.000000 361.000000 C 369.000000 400.000000 369.000000 420.000000 369.000000 457.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" /><style type="text/css"><![CDATA[
.text { .text {
font-family: "font-regular"; font-family: "font-regular";
} }

Before

Width:  |  Height:  |  Size: 661 KiB

After

Width:  |  Height:  |  Size: 660 KiB

View file

@ -8,8 +8,8 @@
"x": 0, "x": 0,
"y": 226 "y": 226
}, },
"width": 384, "width": 379,
"height": 105, "height": 100,
"level": 1, "level": 1,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
@ -35,14 +35,14 @@
"italic": false, "italic": false,
"bold": true, "bold": true,
"underline": false, "underline": false,
"labelWidth": 384, "labelWidth": 379,
"labelHeight": 105 "labelHeight": 100
}, },
{ {
"id": "a", "id": "a",
"type": "", "type": "",
"pos": { "pos": {
"x": 136, "x": 133,
"y": 0 "y": 0
}, },
"width": 113, "width": 113,
@ -80,8 +80,8 @@
"id": "b", "id": "b",
"type": "", "type": "",
"pos": { "pos": {
"x": 136, "x": 133,
"y": 431 "y": 426
}, },
"width": 113, "width": 113,
"height": 126, "height": 126,
@ -142,19 +142,19 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 192, "x": 189.5,
"y": 126 "y": 126
}, },
{ {
"x": 192, "x": 189.5,
"y": 166 "y": 166
}, },
{ {
"x": 192, "x": 189.5,
"y": 186 "y": 186
}, },
{ {
"x": 192, "x": 189.5,
"y": 226 "y": 226
} }
], ],
@ -189,20 +189,20 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 192, "x": 189.5,
"y": 331 "y": 326
}, },
{ {
"x": 192, "x": 189.5,
"y": 371 "y": 366
}, },
{ {
"x": 192, "x": 189.5,
"y": 391 "y": 386
}, },
{ {
"x": 192, "x": 189.5,
"y": 431 "y": 426
} }
], ],
"isCurve": true, "isCurve": true,

View file

@ -2,7 +2,7 @@
<svg <svg
style="background: white;" style="background: white;"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
width="584" height="757" viewBox="-100 -100 584 757"><style type="text/css"> width="579" height="752" viewBox="-100 -100 579 752"><style type="text/css">
<![CDATA[ <![CDATA[
.shape { .shape {
shape-rendering: geometricPrecision; shape-rendering: geometricPrecision;
@ -22,6 +22,18 @@ width="584" height="757" viewBox="-100 -100 584 757"><style type="text/css">
font-family: "font-bold"; font-family: "font-bold";
} }
.md code,
.md kbd,
.md pre,
.md samp {
font-family: "font-mono";
font-size: 1em;
}
.md {
tab-size: 4;
}
/* based on https://github.com/sindresorhus/github-markdown-css */ /* based on https://github.com/sindresorhus/github-markdown-css */
@media (prefers-color-scheme: dark) { @media (prefers-color-scheme: dark) {
.md { .md {
@ -145,14 +157,6 @@ width="584" height="757" viewBox="-100 -100 584 757"><style type="text/css">
background-color: var(--color-canvas-default); background-color: var(--color-canvas-default);
} }
.md code,
.md kbd,
.md pre,
.md samp {
font-family: monospace, monospace;
font-size: 1em;
}
.md figure { .md figure {
margin: 1em 40px; margin: 1em 40px;
} }
@ -268,9 +272,6 @@ width="584" height="757" viewBox="-100 -100 584 757"><style type="text/css">
.md kbd { .md kbd {
display: inline-block; display: inline-block;
padding: 3px 5px; padding: 3px 5px;
font: 11px ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono,
monospace;
line-height: 10px;
color: var(--color-fg-default); color: var(--color-fg-default);
vertical-align: middle; vertical-align: middle;
background-color: var(--color-canvas-subtle); background-color: var(--color-canvas-subtle);
@ -355,19 +356,9 @@ width="584" height="757" viewBox="-100 -100 584 757"><style type="text/css">
margin-left: 0; margin-left: 0;
} }
.md tt,
.md code {
font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono,
monospace;
font-size: 12px;
}
.md pre { .md pre {
margin-top: 0; margin-top: 0;
margin-bottom: 0; margin-bottom: 0;
font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono,
monospace;
font-size: 12px;
word-wrap: normal; word-wrap: normal;
} }
@ -797,7 +788,7 @@ width="584" height="757" viewBox="-100 -100 584 757"><style type="text/css">
.md .contains-task-list:dir(rtl) .task-list-item-checkbox { .md .contains-task-list:dir(rtl) .task-list-item-checkbox {
margin: 0 -1.6em 0.25em 0.2em; margin: 0 -1.6em 0.25em 0.2em;
} }
</style><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="0.000000" y="226.000000" width="384" height="105"><div xmlns="http://www.w3.org/1999/xhtml" class="md"><ul> </style><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="0.000000" y="226.000000" width="379" height="100"><div xmlns="http://www.w3.org/1999/xhtml" class="md"><ul>
<li><a href="#overview">Overview</a> <li><a href="#overview">Overview</a>
<ul> <ul>
<li><a href="#philosophy">Philosophy</a></li> <li><a href="#philosophy">Philosophy</a></li>
@ -809,7 +800,7 @@ width="584" height="757" viewBox="-100 -100 584 757"><style type="text/css">
</ul> </ul>
</li> </li>
</ul> </ul>
</div></foreignObject></g><rect class="shape" x="136" y="0" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="192.500000" y="66.000000" style="text-anchor:middle;font-size:16px;fill:black">a</text><rect class="shape" x="136" y="431" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="192.500000" y="497.000000" style="text-anchor:middle;font-size:16px;fill:black">b</text><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 192.000000 128.000000 C 192.000000 166.000000 192.000000 186.000000 192.000000 222.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" /><path d="M 192.000000 333.000000 C 192.000000 371.000000 192.000000 391.000000 192.000000 427.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" /><style type="text/css"><![CDATA[ </div></foreignObject></g><rect class="shape" x="133" y="0" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="189.500000" y="66.000000" style="text-anchor:middle;font-size:16px;fill:black">a</text><rect class="shape" x="133" y="426" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="189.500000" y="492.000000" style="text-anchor:middle;font-size:16px;fill:black">b</text><marker id="mk-3990223579" markerWidth="10.000000" markerHeight="12.000000" refX="8.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 189.500000 127.000000 C 189.500000 166.000000 189.500000 186.000000 189.500000 223.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" /><path d="M 189.500000 327.000000 C 189.500000 366.000000 189.500000 386.000000 189.500000 423.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" /><style type="text/css"><![CDATA[
.text { .text {
font-family: "font-regular"; font-family: "font-regular";
} }

Before

Width:  |  Height:  |  Size: 661 KiB

After

Width:  |  Height:  |  Size: 660 KiB

View file

@ -8,8 +8,8 @@
"x": 0, "x": 0,
"y": 226 "y": 226
}, },
"width": 250, "width": 245,
"height": 81, "height": 76,
"level": 1, "level": 1,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
@ -35,14 +35,14 @@
"italic": false, "italic": false,
"bold": true, "bold": true,
"underline": false, "underline": false,
"labelWidth": 250, "labelWidth": 245,
"labelHeight": 81 "labelHeight": 76
}, },
{ {
"id": "a", "id": "a",
"type": "", "type": "",
"pos": { "pos": {
"x": 69, "x": 66,
"y": 0 "y": 0
}, },
"width": 113, "width": 113,
@ -80,8 +80,8 @@
"id": "b", "id": "b",
"type": "", "type": "",
"pos": { "pos": {
"x": 69, "x": 66,
"y": 407 "y": 402
}, },
"width": 113, "width": 113,
"height": 126, "height": 126,
@ -142,19 +142,19 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 125, "x": 122.5,
"y": 126 "y": 126
}, },
{ {
"x": 125, "x": 122.5,
"y": 166 "y": 166
}, },
{ {
"x": 125, "x": 122.5,
"y": 186 "y": 186
}, },
{ {
"x": 125, "x": 122.5,
"y": 226 "y": 226
} }
], ],
@ -189,20 +189,20 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 125, "x": 122.5,
"y": 307 "y": 302
}, },
{ {
"x": 125, "x": 122.5,
"y": 347 "y": 342
}, },
{ {
"x": 125, "x": 122.5,
"y": 367 "y": 362
}, },
{ {
"x": 125, "x": 122.5,
"y": 407 "y": 402
} }
], ],
"isCurve": true, "isCurve": true,

View file

@ -2,7 +2,7 @@
<svg <svg
style="background: white;" style="background: white;"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
width="450" height="733" viewBox="-100 -100 450 733"><style type="text/css"> width="445" height="728" viewBox="-100 -100 445 728"><style type="text/css">
<![CDATA[ <![CDATA[
.shape { .shape {
shape-rendering: geometricPrecision; shape-rendering: geometricPrecision;
@ -22,6 +22,18 @@ width="450" height="733" viewBox="-100 -100 450 733"><style type="text/css">
font-family: "font-bold"; font-family: "font-bold";
} }
.md code,
.md kbd,
.md pre,
.md samp {
font-family: "font-mono";
font-size: 1em;
}
.md {
tab-size: 4;
}
/* based on https://github.com/sindresorhus/github-markdown-css */ /* based on https://github.com/sindresorhus/github-markdown-css */
@media (prefers-color-scheme: dark) { @media (prefers-color-scheme: dark) {
.md { .md {
@ -145,14 +157,6 @@ width="450" height="733" viewBox="-100 -100 450 733"><style type="text/css">
background-color: var(--color-canvas-default); background-color: var(--color-canvas-default);
} }
.md code,
.md kbd,
.md pre,
.md samp {
font-family: monospace, monospace;
font-size: 1em;
}
.md figure { .md figure {
margin: 1em 40px; margin: 1em 40px;
} }
@ -268,9 +272,6 @@ width="450" height="733" viewBox="-100 -100 450 733"><style type="text/css">
.md kbd { .md kbd {
display: inline-block; display: inline-block;
padding: 3px 5px; padding: 3px 5px;
font: 11px ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono,
monospace;
line-height: 10px;
color: var(--color-fg-default); color: var(--color-fg-default);
vertical-align: middle; vertical-align: middle;
background-color: var(--color-canvas-subtle); background-color: var(--color-canvas-subtle);
@ -355,19 +356,9 @@ width="450" height="733" viewBox="-100 -100 450 733"><style type="text/css">
margin-left: 0; margin-left: 0;
} }
.md tt,
.md code {
font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono,
monospace;
font-size: 12px;
}
.md pre { .md pre {
margin-top: 0; margin-top: 0;
margin-bottom: 0; margin-bottom: 0;
font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono,
monospace;
font-size: 12px;
word-wrap: normal; word-wrap: normal;
} }
@ -797,7 +788,7 @@ width="450" height="733" viewBox="-100 -100 450 733"><style type="text/css">
.md .contains-task-list:dir(rtl) .task-list-item-checkbox { .md .contains-task-list:dir(rtl) .task-list-item-checkbox {
margin: 0 -1.6em 0.25em 0.2em; margin: 0 -1.6em 0.25em 0.2em;
} }
</style><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="0.000000" y="226.000000" width="250" height="81"><div xmlns="http://www.w3.org/1999/xhtml" class="md"><ul> </style><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="0.000000" y="226.000000" width="245" height="76"><div xmlns="http://www.w3.org/1999/xhtml" class="md"><ul>
<li><a href="#overview">Overview</a> ok <em>this is all measured</em> <li><a href="#overview">Overview</a> ok <em>this is all measured</em>
<ul> <ul>
<li><a href="#philosophy">Philosophy</a></li> <li><a href="#philosophy">Philosophy</a></li>
@ -805,7 +796,7 @@ width="450" height="733" viewBox="-100 -100 450 733"><style type="text/css">
</ul> </ul>
</li> </li>
</ul> </ul>
</div></foreignObject></g><rect class="shape" x="69" y="0" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="125.500000" y="66.000000" style="text-anchor:middle;font-size:16px;fill:black">a</text><rect class="shape" x="69" y="407" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="125.500000" y="473.000000" style="text-anchor:middle;font-size:16px;fill:black">b</text><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 125.000000 128.000000 C 125.000000 166.000000 125.000000 186.000000 125.000000 222.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" /><path d="M 125.000000 309.000000 C 125.000000 347.000000 125.000000 367.000000 125.000000 403.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" /><style type="text/css"><![CDATA[ </div></foreignObject></g><rect class="shape" x="66" y="0" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="122.500000" y="66.000000" style="text-anchor:middle;font-size:16px;fill:black">a</text><rect class="shape" x="66" y="402" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="122.500000" y="468.000000" style="text-anchor:middle;font-size:16px;fill:black">b</text><marker id="mk-3990223579" markerWidth="10.000000" markerHeight="12.000000" refX="8.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 122.500000 127.000000 C 122.500000 166.000000 122.500000 186.000000 122.500000 223.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" /><path d="M 122.500000 303.000000 C 122.500000 342.000000 122.500000 362.000000 122.500000 399.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" /><style type="text/css"><![CDATA[
.text { .text {
font-family: "font-regular"; font-family: "font-regular";
} }

Before

Width:  |  Height:  |  Size: 803 KiB

After

Width:  |  Height:  |  Size: 803 KiB

View file

@ -8,8 +8,8 @@
"x": 0, "x": 0,
"y": 226 "y": 226
}, },
"width": 352, "width": 347,
"height": 517, "height": 512,
"level": 1, "level": 1,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
@ -35,14 +35,14 @@
"italic": false, "italic": false,
"bold": true, "bold": true,
"underline": false, "underline": false,
"labelWidth": 352, "labelWidth": 347,
"labelHeight": 517 "labelHeight": 512
}, },
{ {
"id": "a", "id": "a",
"type": "", "type": "",
"pos": { "pos": {
"x": 120, "x": 117,
"y": 0 "y": 0
}, },
"width": 113, "width": 113,
@ -80,8 +80,8 @@
"id": "b", "id": "b",
"type": "", "type": "",
"pos": { "pos": {
"x": 120, "x": 117,
"y": 843 "y": 838
}, },
"width": 113, "width": 113,
"height": 126, "height": 126,
@ -142,19 +142,19 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 176, "x": 173.5,
"y": 126 "y": 126
}, },
{ {
"x": 176, "x": 173.5,
"y": 166 "y": 166
}, },
{ {
"x": 176, "x": 173.5,
"y": 186 "y": 186
}, },
{ {
"x": 176, "x": 173.5,
"y": 226 "y": 226
} }
], ],
@ -189,20 +189,20 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 176, "x": 173.5,
"y": 743 "y": 738
}, },
{ {
"x": 176, "x": 173.5,
"y": 783 "y": 778
}, },
{ {
"x": 176, "x": 173.5,
"y": 803 "y": 798
}, },
{ {
"x": 176, "x": 173.5,
"y": 843 "y": 838
} }
], ],
"isCurve": true, "isCurve": true,

View file

@ -2,7 +2,7 @@
<svg <svg
style="background: white;" style="background: white;"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
width="552" height="1169" viewBox="-100 -100 552 1169"><style type="text/css"> width="547" height="1164" viewBox="-100 -100 547 1164"><style type="text/css">
<![CDATA[ <![CDATA[
.shape { .shape {
shape-rendering: geometricPrecision; shape-rendering: geometricPrecision;
@ -22,6 +22,18 @@ width="552" height="1169" viewBox="-100 -100 552 1169"><style type="text/css">
font-family: "font-bold"; font-family: "font-bold";
} }
.md code,
.md kbd,
.md pre,
.md samp {
font-family: "font-mono";
font-size: 1em;
}
.md {
tab-size: 4;
}
/* based on https://github.com/sindresorhus/github-markdown-css */ /* based on https://github.com/sindresorhus/github-markdown-css */
@media (prefers-color-scheme: dark) { @media (prefers-color-scheme: dark) {
.md { .md {
@ -145,14 +157,6 @@ width="552" height="1169" viewBox="-100 -100 552 1169"><style type="text/css">
background-color: var(--color-canvas-default); background-color: var(--color-canvas-default);
} }
.md code,
.md kbd,
.md pre,
.md samp {
font-family: monospace, monospace;
font-size: 1em;
}
.md figure { .md figure {
margin: 1em 40px; margin: 1em 40px;
} }
@ -268,9 +272,6 @@ width="552" height="1169" viewBox="-100 -100 552 1169"><style type="text/css">
.md kbd { .md kbd {
display: inline-block; display: inline-block;
padding: 3px 5px; padding: 3px 5px;
font: 11px ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono,
monospace;
line-height: 10px;
color: var(--color-fg-default); color: var(--color-fg-default);
vertical-align: middle; vertical-align: middle;
background-color: var(--color-canvas-subtle); background-color: var(--color-canvas-subtle);
@ -355,19 +356,9 @@ width="552" height="1169" viewBox="-100 -100 552 1169"><style type="text/css">
margin-left: 0; margin-left: 0;
} }
.md tt,
.md code {
font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono,
monospace;
font-size: 12px;
}
.md pre { .md pre {
margin-top: 0; margin-top: 0;
margin-bottom: 0; margin-bottom: 0;
font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono,
monospace;
font-size: 12px;
word-wrap: normal; word-wrap: normal;
} }
@ -797,7 +788,7 @@ width="552" height="1169" viewBox="-100 -100 552 1169"><style type="text/css">
.md .contains-task-list:dir(rtl) .task-list-item-checkbox { .md .contains-task-list:dir(rtl) .task-list-item-checkbox {
margin: 0 -1.6em 0.25em 0.2em; margin: 0 -1.6em 0.25em 0.2em;
} }
</style><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="0.000000" y="226.000000" width="352" height="517"><div xmlns="http://www.w3.org/1999/xhtml" class="md"><ul> </style><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="0.000000" y="226.000000" width="347" height="512"><div xmlns="http://www.w3.org/1999/xhtml" class="md"><ul>
<li><a href="#overview">Overview</a> <li><a href="#overview">Overview</a>
<ul> <ul>
<li><a href="#philosophy">Philosophy</a></li> <li><a href="#philosophy">Philosophy</a></li>
@ -830,7 +821,7 @@ width="552" height="1169" viewBox="-100 -100 552 1169"><style type="text/css">
</ul> </ul>
</li> </li>
</ul> </ul>
</div></foreignObject></g><rect class="shape" x="120" y="0" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="176.500000" y="66.000000" style="text-anchor:middle;font-size:16px;fill:black">a</text><rect class="shape" x="120" y="843" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="176.500000" y="909.000000" style="text-anchor:middle;font-size:16px;fill:black">b</text><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 176.000000 128.000000 C 176.000000 166.000000 176.000000 186.000000 176.000000 222.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" /><path d="M 176.000000 745.000000 C 176.000000 783.000000 176.000000 803.000000 176.000000 839.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" /><style type="text/css"><![CDATA[ </div></foreignObject></g><rect class="shape" x="117" y="0" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="173.500000" y="66.000000" style="text-anchor:middle;font-size:16px;fill:black">a</text><rect class="shape" x="117" y="838" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="173.500000" y="904.000000" style="text-anchor:middle;font-size:16px;fill:black">b</text><marker id="mk-3990223579" markerWidth="10.000000" markerHeight="12.000000" refX="8.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 173.500000 127.000000 C 173.500000 166.000000 173.500000 186.000000 173.500000 223.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" /><path d="M 173.500000 739.000000 C 173.500000 778.000000 173.500000 798.000000 173.500000 835.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" /><style type="text/css"><![CDATA[
.text { .text {
font-family: "font-regular"; font-family: "font-regular";
} }

Before

Width:  |  Height:  |  Size: 661 KiB

After

Width:  |  Height:  |  Size: 661 KiB

View file

@ -8,8 +8,8 @@
"x": 0, "x": 0,
"y": 226 "y": 226
}, },
"width": 924, "width": 920,
"height": 381, "height": 376,
"level": 1, "level": 1,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
@ -35,14 +35,14 @@
"italic": false, "italic": false,
"bold": true, "bold": true,
"underline": false, "underline": false,
"labelWidth": 924, "labelWidth": 920,
"labelHeight": 381 "labelHeight": 376
}, },
{ {
"id": "a", "id": "a",
"type": "", "type": "",
"pos": { "pos": {
"x": 406, "x": 404,
"y": 0 "y": 0
}, },
"width": 113, "width": 113,
@ -80,8 +80,8 @@
"id": "b", "id": "b",
"type": "", "type": "",
"pos": { "pos": {
"x": 406, "x": 404,
"y": 707 "y": 702
}, },
"width": 113, "width": 113,
"height": 126, "height": 126,
@ -142,19 +142,19 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 462, "x": 460,
"y": 126 "y": 126
}, },
{ {
"x": 462, "x": 460,
"y": 166 "y": 166
}, },
{ {
"x": 462, "x": 460,
"y": 186 "y": 186
}, },
{ {
"x": 462, "x": 460,
"y": 226 "y": 226
} }
], ],
@ -189,20 +189,20 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 462, "x": 460,
"y": 607 "y": 602
}, },
{ {
"x": 462, "x": 460,
"y": 647 "y": 642
}, },
{ {
"x": 462, "x": 460,
"y": 667 "y": 662
}, },
{ {
"x": 462, "x": 460,
"y": 707 "y": 702
} }
], ],
"isCurve": true, "isCurve": true,

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 661 KiB

After

Width:  |  Height:  |  Size: 842 KiB

View file

@ -8,8 +8,8 @@
"x": 0, "x": 0,
"y": 226 "y": 226
}, },
"width": 268, "width": 266,
"height": 55, "height": 50,
"level": 1, "level": 1,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
@ -35,14 +35,14 @@
"italic": false, "italic": false,
"bold": true, "bold": true,
"underline": false, "underline": false,
"labelWidth": 268, "labelWidth": 266,
"labelHeight": 55 "labelHeight": 50
}, },
{ {
"id": "a", "id": "a",
"type": "", "type": "",
"pos": { "pos": {
"x": 78, "x": 77,
"y": 0 "y": 0
}, },
"width": 113, "width": 113,
@ -80,8 +80,8 @@
"id": "b", "id": "b",
"type": "", "type": "",
"pos": { "pos": {
"x": 78, "x": 77,
"y": 381 "y": 376
}, },
"width": 113, "width": 113,
"height": 126, "height": 126,
@ -142,19 +142,19 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 134, "x": 133,
"y": 126 "y": 126
}, },
{ {
"x": 134, "x": 133,
"y": 166 "y": 166
}, },
{ {
"x": 134, "x": 133,
"y": 186 "y": 186
}, },
{ {
"x": 134, "x": 133,
"y": 226 "y": 226
} }
], ],
@ -189,20 +189,20 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 134, "x": 133,
"y": 281 "y": 276
}, },
{ {
"x": 134, "x": 133,
"y": 321 "y": 316
}, },
{ {
"x": 134, "x": 133,
"y": 341 "y": 336
}, },
{ {
"x": 134, "x": 133,
"y": 381 "y": 376
} }
], ],
"isCurve": true, "isCurve": true,

View file

@ -2,7 +2,7 @@
<svg <svg
style="background: white;" style="background: white;"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
width="468" height="707" viewBox="-100 -100 468 707"><style type="text/css"> width="466" height="702" viewBox="-100 -100 466 702"><style type="text/css">
<![CDATA[ <![CDATA[
.shape { .shape {
shape-rendering: geometricPrecision; shape-rendering: geometricPrecision;
@ -22,6 +22,18 @@ width="468" height="707" viewBox="-100 -100 468 707"><style type="text/css">
font-family: "font-bold"; font-family: "font-bold";
} }
.md code,
.md kbd,
.md pre,
.md samp {
font-family: "font-mono";
font-size: 1em;
}
.md {
tab-size: 4;
}
/* based on https://github.com/sindresorhus/github-markdown-css */ /* based on https://github.com/sindresorhus/github-markdown-css */
@media (prefers-color-scheme: dark) { @media (prefers-color-scheme: dark) {
.md { .md {
@ -145,14 +157,6 @@ width="468" height="707" viewBox="-100 -100 468 707"><style type="text/css">
background-color: var(--color-canvas-default); background-color: var(--color-canvas-default);
} }
.md code,
.md kbd,
.md pre,
.md samp {
font-family: monospace, monospace;
font-size: 1em;
}
.md figure { .md figure {
margin: 1em 40px; margin: 1em 40px;
} }
@ -268,9 +272,6 @@ width="468" height="707" viewBox="-100 -100 468 707"><style type="text/css">
.md kbd { .md kbd {
display: inline-block; display: inline-block;
padding: 3px 5px; padding: 3px 5px;
font: 11px ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono,
monospace;
line-height: 10px;
color: var(--color-fg-default); color: var(--color-fg-default);
vertical-align: middle; vertical-align: middle;
background-color: var(--color-canvas-subtle); background-color: var(--color-canvas-subtle);
@ -355,19 +356,9 @@ width="468" height="707" viewBox="-100 -100 468 707"><style type="text/css">
margin-left: 0; margin-left: 0;
} }
.md tt,
.md code {
font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono,
monospace;
font-size: 12px;
}
.md pre { .md pre {
margin-top: 0; margin-top: 0;
margin-bottom: 0; margin-bottom: 0;
font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono,
monospace;
font-size: 12px;
word-wrap: normal; word-wrap: normal;
} }
@ -797,8 +788,8 @@ width="468" height="707" viewBox="-100 -100 468 707"><style type="text/css">
.md .contains-task-list:dir(rtl) .task-list-item-checkbox { .md .contains-task-list:dir(rtl) .task-list-item-checkbox {
margin: 0 -1.6em 0.25em 0.2em; margin: 0 -1.6em 0.25em 0.2em;
} }
</style><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="0.000000" y="226.000000" width="268" height="55"><div xmlns="http://www.w3.org/1999/xhtml" class="md"><h1>Markdown: Syntax</h1> </style><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"><h1>Markdown: Syntax</h1>
</div></foreignObject></g><rect class="shape" x="78" y="0" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="134.500000" y="66.000000" style="text-anchor:middle;font-size:16px;fill:black">a</text><rect class="shape" x="78" y="381" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="134.500000" y="447.000000" style="text-anchor:middle;font-size:16px;fill:black">b</text><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 134.000000 128.000000 C 134.000000 166.000000 134.000000 186.000000 134.000000 222.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" /><path d="M 134.000000 283.000000 C 134.000000 321.000000 134.000000 341.000000 134.000000 377.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" /><style type="text/css"><![CDATA[ </div></foreignObject></g><rect class="shape" x="77" y="0" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="133.500000" y="66.000000" style="text-anchor:middle;font-size:16px;fill:black">a</text><rect class="shape" x="77" y="376" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="133.500000" y="442.000000" style="text-anchor:middle;font-size:16px;fill:black">b</text><marker id="mk-3990223579" markerWidth="10.000000" markerHeight="12.000000" refX="8.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 127.000000 C 133.000000 166.000000 133.000000 186.000000 133.000000 223.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" /><path d="M 133.000000 277.000000 C 133.000000 316.000000 133.000000 336.000000 133.000000 373.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" /><style type="text/css"><![CDATA[
.text { .text {
font-family: "font-regular"; font-family: "font-regular";
} }

Before

Width:  |  Height:  |  Size: 660 KiB

After

Width:  |  Height:  |  Size: 660 KiB

View file

@ -8,8 +8,8 @@
"x": 0, "x": 0,
"y": 226 "y": 226
}, },
"width": 535, "width": 531,
"height": 191, "height": 186,
"level": 1, "level": 1,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
@ -35,14 +35,14 @@
"italic": false, "italic": false,
"bold": true, "bold": true,
"underline": false, "underline": false,
"labelWidth": 535, "labelWidth": 531,
"labelHeight": 191 "labelHeight": 186
}, },
{ {
"id": "x", "id": "x",
"type": "", "type": "",
"pos": { "pos": {
"x": 211, "x": 209,
"y": 0 "y": 0
}, },
"width": 113, "width": 113,
@ -80,8 +80,8 @@
"id": "y", "id": "y",
"type": "", "type": "",
"pos": { "pos": {
"x": 211, "x": 209,
"y": 517 "y": 512
}, },
"width": 114, "width": 114,
"height": 126, "height": 126,
@ -142,19 +142,19 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 267.5, "x": 265.5,
"y": 126 "y": 126
}, },
{ {
"x": 267.5, "x": 265.5,
"y": 166 "y": 166
}, },
{ {
"x": 267.5, "x": 265.5,
"y": 186 "y": 186
}, },
{ {
"x": 267.5, "x": 265.5,
"y": 226 "y": 226
} }
], ],
@ -189,20 +189,20 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 267.5, "x": 265.5,
"y": 417 "y": 412
}, },
{ {
"x": 267.5, "x": 265.5,
"y": 457 "y": 452
}, },
{ {
"x": 267.5, "x": 265.5,
"y": 477 "y": 472
}, },
{ {
"x": 267.5, "x": 265.5,
"y": 517 "y": 512
} }
], ],
"isCurve": true, "isCurve": true,

View file

@ -2,7 +2,7 @@
<svg <svg
style="background: white;" style="background: white;"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
width="735" height="843" viewBox="-100 -100 735 843"><style type="text/css"> width="731" height="838" viewBox="-100 -100 731 838"><style type="text/css">
<![CDATA[ <![CDATA[
.shape { .shape {
shape-rendering: geometricPrecision; shape-rendering: geometricPrecision;
@ -22,6 +22,18 @@ width="735" height="843" viewBox="-100 -100 735 843"><style type="text/css">
font-family: "font-bold"; font-family: "font-bold";
} }
.md code,
.md kbd,
.md pre,
.md samp {
font-family: "font-mono";
font-size: 1em;
}
.md {
tab-size: 4;
}
/* based on https://github.com/sindresorhus/github-markdown-css */ /* based on https://github.com/sindresorhus/github-markdown-css */
@media (prefers-color-scheme: dark) { @media (prefers-color-scheme: dark) {
.md { .md {
@ -145,14 +157,6 @@ width="735" height="843" viewBox="-100 -100 735 843"><style type="text/css">
background-color: var(--color-canvas-default); background-color: var(--color-canvas-default);
} }
.md code,
.md kbd,
.md pre,
.md samp {
font-family: monospace, monospace;
font-size: 1em;
}
.md figure { .md figure {
margin: 1em 40px; margin: 1em 40px;
} }
@ -268,9 +272,6 @@ width="735" height="843" viewBox="-100 -100 735 843"><style type="text/css">
.md kbd { .md kbd {
display: inline-block; display: inline-block;
padding: 3px 5px; padding: 3px 5px;
font: 11px ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono,
monospace;
line-height: 10px;
color: var(--color-fg-default); color: var(--color-fg-default);
vertical-align: middle; vertical-align: middle;
background-color: var(--color-canvas-subtle); background-color: var(--color-canvas-subtle);
@ -355,19 +356,9 @@ width="735" height="843" viewBox="-100 -100 735 843"><style type="text/css">
margin-left: 0; margin-left: 0;
} }
.md tt,
.md code {
font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono,
monospace;
font-size: 12px;
}
.md pre { .md pre {
margin-top: 0; margin-top: 0;
margin-bottom: 0; margin-bottom: 0;
font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono,
monospace;
font-size: 12px;
word-wrap: normal; word-wrap: normal;
} }
@ -797,14 +788,14 @@ width="735" height="843" viewBox="-100 -100 735 843"><style type="text/css">
.md .contains-task-list:dir(rtl) .task-list-item-checkbox { .md .contains-task-list:dir(rtl) .task-list-item-checkbox {
margin: 0 -1.6em 0.25em 0.2em; margin: 0 -1.6em 0.25em 0.2em;
} }
</style><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="0.000000" y="226.000000" width="535" height="191"><div xmlns="http://www.w3.org/1999/xhtml" class="md"><h1>Every frustum longs to be a cone</h1> </style><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"><h1>Every frustum longs to be a cone</h1>
<ul> <ul>
<li>A continuing flow of paper is sufficient to continue the flow of paper</li> <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>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> <li>Visits always give pleasure: if not on arrival, then on the departure</li>
</ul> </ul>
<p><em>Festivity Level 1</em>: Your guests are chatting amiably with each other.</p> <p><em>Festivity Level 1</em>: Your guests are chatting amiably with each other.</p>
</div></foreignObject></g><rect class="shape" x="211" y="0" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="267.500000" y="66.000000" style="text-anchor:middle;font-size:16px;fill:black">x</text><rect class="shape" x="211" y="517" width="114" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="268.000000" y="583.000000" style="text-anchor:middle;font-size:16px;fill:black">y</text><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 267.500000 128.000000 C 267.500000 166.000000 267.500000 186.000000 267.500000 222.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" /><path d="M 267.500000 419.000000 C 267.500000 457.000000 267.500000 477.000000 267.500000 513.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" /><style type="text/css"><![CDATA[ </div></foreignObject></g><rect class="shape" x="209" y="0" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="265.500000" y="66.000000" style="text-anchor:middle;font-size:16px;fill:black">x</text><rect class="shape" x="209" y="512" width="114" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="266.000000" y="578.000000" style="text-anchor:middle;font-size:16px;fill:black">y</text><marker id="mk-3990223579" markerWidth="10.000000" markerHeight="12.000000" refX="8.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 127.000000 C 265.500000 166.000000 265.500000 186.000000 265.500000 223.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" /><path d="M 265.500000 413.000000 C 265.500000 452.000000 265.500000 472.000000 265.500000 509.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" /><style type="text/css"><![CDATA[
.text { .text {
font-family: "font-regular"; font-family: "font-regular";
} }

Before

Width:  |  Height:  |  Size: 804 KiB

After

Width:  |  Height:  |  Size: 803 KiB

View file

@ -0,0 +1,214 @@
{
"name": "",
"shapes": [
{
"id": "md",
"type": "text",
"pos": {
"x": 0,
"y": 226
},
"width": 196,
"height": 111,
"level": 1,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "#FFFFFF",
"stroke": "#0D32B2",
"shadow": false,
"3d": false,
"multiple": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"fields": null,
"methods": null,
"columns": null,
"label": "```\n{\n\tfenced: \"block\",\n\tof: \"json\",\n}\n```",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "markdown",
"color": "#0A0F25",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 196,
"labelHeight": 111
},
{
"id": "a",
"type": "",
"pos": {
"x": 42,
"y": 0
},
"width": 113,
"height": 126,
"level": 1,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "#F7F8FE",
"stroke": "#0D32B2",
"shadow": false,
"3d": false,
"multiple": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"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"
},
{
"id": "b",
"type": "",
"pos": {
"x": 42,
"y": 437
},
"width": 113,
"height": 126,
"level": 1,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "#F7F8FE",
"stroke": "#0D32B2",
"shadow": false,
"3d": false,
"multiple": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"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"
}
],
"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": 98,
"y": 126
},
{
"x": 98,
"y": 166
},
{
"x": 98,
"y": 186
},
{
"x": 98,
"y": 226
}
],
"isCurve": true,
"animated": false,
"tooltip": "",
"icon": null
},
{
"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": 98,
"y": 337
},
{
"x": 98,
"y": 377
},
{
"x": 98,
"y": 397
},
{
"x": 98,
"y": 437
}
],
"isCurve": true,
"animated": false,
"tooltip": "",
"icon": null
}
]
}

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 841 KiB

View file

@ -0,0 +1,214 @@
{
"name": "",
"shapes": [
{
"id": "md",
"type": "text",
"pos": {
"x": 0,
"y": 226
},
"width": 212,
"height": 151,
"level": 1,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "#FFFFFF",
"stroke": "#0D32B2",
"shadow": false,
"3d": false,
"multiple": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"fields": null,
"methods": null,
"columns": null,
"label": "a line of text and an\n\n\t{\n\t\tindented: \"block\",\n\t\tof: \"json\",\n\t}\n",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "markdown",
"color": "#0A0F25",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 212,
"labelHeight": 151
},
{
"id": "a",
"type": "",
"pos": {
"x": 50,
"y": 0
},
"width": 113,
"height": 126,
"level": 1,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "#F7F8FE",
"stroke": "#0D32B2",
"shadow": false,
"3d": false,
"multiple": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"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"
},
{
"id": "b",
"type": "",
"pos": {
"x": 50,
"y": 477
},
"width": 113,
"height": 126,
"level": 1,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "#F7F8FE",
"stroke": "#0D32B2",
"shadow": false,
"3d": false,
"multiple": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"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"
}
],
"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": 106,
"y": 126
},
{
"x": 106,
"y": 166
},
{
"x": 106,
"y": 186
},
{
"x": 106,
"y": 226
}
],
"isCurve": true,
"animated": false,
"tooltip": "",
"icon": null
},
{
"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": 106,
"y": 377
},
{
"x": 106,
"y": 417
},
{
"x": 106,
"y": 437
},
{
"x": 106,
"y": 477
}
],
"isCurve": true,
"animated": false,
"tooltip": "",
"icon": null
}
]
}

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 841 KiB

View file

@ -0,0 +1,214 @@
{
"name": "",
"shapes": [
{
"id": "md",
"type": "text",
"pos": {
"x": 34,
"y": 226
},
"width": 46,
"height": 24,
"level": 1,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "#FFFFFF",
"stroke": "#0D32B2",
"shadow": false,
"3d": false,
"multiple": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"fields": null,
"methods": null,
"columns": null,
"label": "`code`",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "markdown",
"color": "#0A0F25",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 46,
"labelHeight": 24
},
{
"id": "a",
"type": "",
"pos": {
"x": 0,
"y": 0
},
"width": 113,
"height": 126,
"level": 1,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "#F7F8FE",
"stroke": "#0D32B2",
"shadow": false,
"3d": false,
"multiple": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"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"
},
{
"id": "b",
"type": "",
"pos": {
"x": 0,
"y": 350
},
"width": 113,
"height": 126,
"level": 1,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "#F7F8FE",
"stroke": "#0D32B2",
"shadow": false,
"3d": false,
"multiple": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"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"
}
],
"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
},
{
"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": 250
},
{
"x": 56.5,
"y": 290
},
{
"x": 56.5,
"y": 310
},
{
"x": 56.5,
"y": 350
}
],
"isCurve": true,
"animated": false,
"tooltip": "",
"icon": null
}
]
}

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 841 KiB

View file

@ -8,8 +8,8 @@
"x": 0, "x": 0,
"y": 226 "y": 226
}, },
"width": 1861, "width": 1857,
"height": 29, "height": 24,
"level": 1, "level": 1,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
@ -35,14 +35,14 @@
"italic": false, "italic": false,
"bold": true, "bold": true,
"underline": false, "underline": false,
"labelWidth": 1861, "labelWidth": 1857,
"labelHeight": 29 "labelHeight": 24
}, },
{ {
"id": "a", "id": "a",
"type": "", "type": "",
"pos": { "pos": {
"x": 874, "x": 872,
"y": 0 "y": 0
}, },
"width": 113, "width": 113,
@ -80,8 +80,8 @@
"id": "b", "id": "b",
"type": "", "type": "",
"pos": { "pos": {
"x": 874, "x": 872,
"y": 355 "y": 350
}, },
"width": 113, "width": 113,
"height": 126, "height": 126,
@ -142,19 +142,19 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 930.5, "x": 928.5,
"y": 126 "y": 126
}, },
{ {
"x": 930.5, "x": 928.5,
"y": 166 "y": 166
}, },
{ {
"x": 930.5, "x": 928.5,
"y": 186 "y": 186
}, },
{ {
"x": 930.5, "x": 928.5,
"y": 226 "y": 226
} }
], ],
@ -189,20 +189,20 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 930.5, "x": 928.5,
"y": 255 "y": 250
}, },
{ {
"x": 930.5, "x": 928.5,
"y": 295 "y": 290
}, },
{ {
"x": 930.5, "x": 928.5,
"y": 315 "y": 310
}, },
{ {
"x": 930.5, "x": 928.5,
"y": 355 "y": 350
} }
], ],
"isCurve": true, "isCurve": true,

View file

@ -2,7 +2,7 @@
<svg <svg
style="background: white;" style="background: white;"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
width="2061" height="681" viewBox="-100 -100 2061 681"><style type="text/css"> width="2057" height="676" viewBox="-100 -100 2057 676"><style type="text/css">
<![CDATA[ <![CDATA[
.shape { .shape {
shape-rendering: geometricPrecision; shape-rendering: geometricPrecision;
@ -22,6 +22,18 @@ width="2061" height="681" viewBox="-100 -100 2061 681"><style type="text/css">
font-family: "font-bold"; font-family: "font-bold";
} }
.md code,
.md kbd,
.md pre,
.md samp {
font-family: "font-mono";
font-size: 1em;
}
.md {
tab-size: 4;
}
/* based on https://github.com/sindresorhus/github-markdown-css */ /* based on https://github.com/sindresorhus/github-markdown-css */
@media (prefers-color-scheme: dark) { @media (prefers-color-scheme: dark) {
.md { .md {
@ -145,14 +157,6 @@ width="2061" height="681" viewBox="-100 -100 2061 681"><style type="text/css">
background-color: var(--color-canvas-default); background-color: var(--color-canvas-default);
} }
.md code,
.md kbd,
.md pre,
.md samp {
font-family: monospace, monospace;
font-size: 1em;
}
.md figure { .md figure {
margin: 1em 40px; margin: 1em 40px;
} }
@ -268,9 +272,6 @@ width="2061" height="681" viewBox="-100 -100 2061 681"><style type="text/css">
.md kbd { .md kbd {
display: inline-block; display: inline-block;
padding: 3px 5px; padding: 3px 5px;
font: 11px ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono,
monospace;
line-height: 10px;
color: var(--color-fg-default); color: var(--color-fg-default);
vertical-align: middle; vertical-align: middle;
background-color: var(--color-canvas-subtle); background-color: var(--color-canvas-subtle);
@ -355,19 +356,9 @@ width="2061" height="681" viewBox="-100 -100 2061 681"><style type="text/css">
margin-left: 0; margin-left: 0;
} }
.md tt,
.md code {
font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono,
monospace;
font-size: 12px;
}
.md pre { .md pre {
margin-top: 0; margin-top: 0;
margin-bottom: 0; margin-bottom: 0;
font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono,
monospace;
font-size: 12px;
word-wrap: normal; word-wrap: normal;
} }
@ -797,11 +788,11 @@ width="2061" height="681" viewBox="-100 -100 2061 681"><style type="text/css">
.md .contains-task-list:dir(rtl) .task-list-item-checkbox { .md .contains-task-list:dir(rtl) .task-list-item-checkbox {
margin: 0 -1.6em 0.25em 0.2em; margin: 0 -1.6em 0.25em 0.2em;
} }
</style><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="0.000000" y="226.000000" width="1861" height="29"><div xmlns="http://www.w3.org/1999/xhtml" class="md"><p>A paragraph is simply one or more consecutive lines of text, separated </style><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="0.000000" y="226.000000" width="1857" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="md"><p>A paragraph is simply one or more consecutive lines of text, separated
by one or more blank lines. (A blank line is any line that looks like a by one or more blank lines. (A blank line is any line that looks like a
blank line -- a line containing nothing but spaces or tabs is considered blank line -- a line containing nothing but spaces or tabs is considered
blank.) Normal paragraphs should not be indented with spaces or tabs.</p> blank.) Normal paragraphs should not be indented with spaces or tabs.</p>
</div></foreignObject></g><rect class="shape" x="874" y="0" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="930.500000" y="66.000000" style="text-anchor:middle;font-size:16px;fill:black">a</text><rect class="shape" x="874" y="355" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="930.500000" y="421.000000" style="text-anchor:middle;font-size:16px;fill:black">b</text><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 930.500000 128.000000 C 930.500000 166.000000 930.500000 186.000000 930.500000 222.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" /><path d="M 930.500000 257.000000 C 930.500000 295.000000 930.500000 315.000000 930.500000 351.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" /><style type="text/css"><![CDATA[ </div></foreignObject></g><rect class="shape" x="872" y="0" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="928.500000" y="66.000000" style="text-anchor:middle;font-size:16px;fill:black">a</text><rect class="shape" x="872" y="350" width="113" height="126" style="fill:#F7F8FE;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" /><text class="text-bold" x="928.500000" y="416.000000" style="text-anchor:middle;font-size:16px;fill:black">b</text><marker id="mk-3990223579" markerWidth="10.000000" markerHeight="12.000000" refX="8.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 928.500000 127.000000 C 928.500000 166.000000 928.500000 186.000000 928.500000 223.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" /><path d="M 928.500000 251.000000 C 928.500000 290.000000 928.500000 310.000000 928.500000 347.000000" class="connection" style="fill:none;stroke:#0D32B2;opacity:1.000000;stroke-width:2;" marker-end="url(#mk-3990223579)" /><style type="text/css"><![CDATA[
.text { .text {
font-family: "font-regular"; font-family: "font-regular";
} }

Before

Width:  |  Height:  |  Size: 661 KiB

After

Width:  |  Height:  |  Size: 660 KiB

View file

@ -8,8 +8,8 @@
"x": 0, "x": 0,
"y": 226 "y": 226
}, },
"width": 606, "width": 602,
"height": 186, "height": 170,
"level": 1, "level": 1,
"opacity": 1, "opacity": 1,
"strokeDash": 0, "strokeDash": 0,
@ -35,14 +35,14 @@
"italic": false, "italic": false,
"bold": true, "bold": true,
"underline": false, "underline": false,
"labelWidth": 606, "labelWidth": 602,
"labelHeight": 186 "labelHeight": 170
}, },
{ {
"id": "a", "id": "a",
"type": "", "type": "",
"pos": { "pos": {
"x": 247, "x": 245,
"y": 0 "y": 0
}, },
"width": 113, "width": 113,
@ -80,8 +80,8 @@
"id": "b", "id": "b",
"type": "", "type": "",
"pos": { "pos": {
"x": 247, "x": 245,
"y": 512 "y": 496
}, },
"width": 113, "width": 113,
"height": 126, "height": 126,
@ -142,19 +142,19 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 303, "x": 301,
"y": 126 "y": 126
}, },
{ {
"x": 303, "x": 301,
"y": 166 "y": 166
}, },
{ {
"x": 303, "x": 301,
"y": 186 "y": 186
}, },
{ {
"x": 303, "x": 301,
"y": 226 "y": 226
} }
], ],
@ -189,20 +189,20 @@
"labelPercentage": 0, "labelPercentage": 0,
"route": [ "route": [
{ {
"x": 303, "x": 301,
"y": 412 "y": 396
}, },
{ {
"x": 303, "x": 301,
"y": 452 "y": 436
}, },
{ {
"x": 303, "x": 301,
"y": 472 "y": 456
}, },
{ {
"x": 303, "x": 301,
"y": 512 "y": 496
} }
], ],
"isCurve": true, "isCurve": true,

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 661 KiB

After

Width:  |  Height:  |  Size: 841 KiB

View file

@ -6,19 +6,7 @@ import (
) )
func testTodo(t *testing.T) { func testTodo(t *testing.T) {
tcs := []testCase{ tcs := []testCase{}
// https://github.com/terrastruct/d2/issues/24
// string monstrosity from not being able to escape backticks within string literals
{
skip: true,
name: "backtick",
script: `md: |md
` + "`" + "code`" + `
|
a -> md -> b
`,
},
}
runa(t, tcs) runa(t, tcs)
} }