From 0d13bb950a5b9777584733bf1a89dabe673dddd2 Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Mon, 16 Sep 2024 10:21:08 -0600 Subject: [PATCH] extend set of runes used --- ci/release/changelogs/next.md | 1 + .../txtar/extended-ascii/dagre/board.exp.json | 433 +++++++++ .../txtar/extended-ascii/dagre/sketch.exp.svg | 842 +++++++++++++++++ .../txtar/extended-ascii/elk/board.exp.json | 385 ++++++++ .../txtar/extended-ascii/elk/sketch.exp.svg | 842 +++++++++++++++++ .../txtar/unicode/dagre/board.exp.json | 528 +++++++++++ .../txtar/unicode/dagre/sketch.exp.svg | 858 ++++++++++++++++++ .../testdata/txtar/unicode/elk/board.exp.json | 528 +++++++++++ .../testdata/txtar/unicode/elk/sketch.exp.svg | 858 ++++++++++++++++++ .../mixed-language-2/dagre/board.exp.json | 94 +- .../mixed-language-2/dagre/sketch.exp.svg | 186 ++-- .../mixed-language-2/elk/board.exp.json | 70 +- .../mixed-language-2/elk/sketch.exp.svg | 186 ++-- e2etests/txtar.txt | 53 ++ lib/textmeasure/textmeasure.go | 23 +- 15 files changed, 5612 insertions(+), 275 deletions(-) create mode 100644 e2etests/testdata/txtar/extended-ascii/dagre/board.exp.json create mode 100644 e2etests/testdata/txtar/extended-ascii/dagre/sketch.exp.svg create mode 100644 e2etests/testdata/txtar/extended-ascii/elk/board.exp.json create mode 100644 e2etests/testdata/txtar/extended-ascii/elk/sketch.exp.svg create mode 100644 e2etests/testdata/txtar/unicode/dagre/board.exp.json create mode 100644 e2etests/testdata/txtar/unicode/dagre/sketch.exp.svg create mode 100644 e2etests/testdata/txtar/unicode/elk/board.exp.json create mode 100644 e2etests/testdata/txtar/unicode/elk/sketch.exp.svg diff --git a/ci/release/changelogs/next.md b/ci/release/changelogs/next.md index 8277e1ec27..fcbba795f9 100644 --- a/ci/release/changelogs/next.md +++ b/ci/release/changelogs/next.md @@ -4,6 +4,7 @@ - Composition: Imported boards can use underscores to reference boards beyond its own scope (e.g. to a sibling board at the scope its imported to) [#2075](https://github.com/terrastruct/d2/pull/2075) - Autoformat: Reserved keywords are formatted to be lowercase [#2098](https://github.com/terrastruct/d2/pull/2098) +- Misc: characters in the unicode range for Latin-1 and geometric shapes are measured more accurately [#2100](https://github.com/terrastruct/d2/pull/2100) #### Improvements 🧹 diff --git a/e2etests/testdata/txtar/extended-ascii/dagre/board.exp.json b/e2etests/testdata/txtar/extended-ascii/dagre/board.exp.json new file mode 100644 index 0000000000..f9ec463121 --- /dev/null +++ b/e2etests/testdata/txtar/extended-ascii/dagre/board.exp.json @@ -0,0 +1,433 @@ +{ + "name": "", + "isFolderOnly": false, + "fontFamily": "SourceSansPro", + "shapes": [ + { + "id": "1", + "type": "text", + "pos": { + "x": 32, + "y": 0 + }, + "width": 102, + "height": 24, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "transparent", + "stroke": "N1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "ÇéþüðæØÅßñò", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 102, + "labelHeight": 24, + "zIndex": 0, + "level": 1 + }, + { + "id": "2", + "type": "text", + "pos": { + "x": 3, + "y": 124 + }, + "width": 79, + "height": 24, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "transparent", + "stroke": "N1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "òØõùßÍÿåÆ", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 79, + "labelHeight": 24, + "zIndex": 0, + "level": 1 + }, + { + "id": "3", + "type": "text", + "pos": { + "x": 0, + "y": 248 + }, + "width": 84, + "height": 24, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "transparent", + "stroke": "N1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "çÆÐÞ©ßþúí", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 84, + "labelHeight": 24, + "zIndex": 0, + "level": 1 + }, + { + "id": "4", + "type": "text", + "pos": { + "x": 57, + "y": 372 + }, + "width": 52, + "height": 24, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "transparent", + "stroke": "N1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "ÉáøÿÑö", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 52, + "labelHeight": 24, + "zIndex": 0, + "level": 1 + } + ], + "connections": [ + { + "id": "(1 -> 2)[0]", + "src": "1", + "srcArrow": "none", + "dst": "2", + "dstArrow": "triangle", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 75, + "y": 24 + }, + { + "x": 48.5989990234375, + "y": 64 + }, + { + "x": 42, + "y": 84 + }, + { + "x": 42, + "y": 124 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(2 -> 3)[0]", + "src": "2", + "srcArrow": "none", + "dst": "3", + "dstArrow": "triangle", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 42, + "y": 148 + }, + { + "x": 42, + "y": 188 + }, + { + "x": 42, + "y": 208 + }, + { + "x": 42, + "y": 248 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(3 -> 4)[0]", + "src": "3", + "srcArrow": "none", + "dst": "4", + "dstArrow": "triangle", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 42, + "y": 272 + }, + { + "x": 42, + "y": 312 + }, + { + "x": 48.599998474121094, + "y": 332 + }, + { + "x": 75, + "y": 372 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(4 -> 1)[0]", + "src": "4", + "srcArrow": "none", + "dst": "1", + "dstArrow": "triangle", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 91, + "y": 372 + }, + { + "x": 117.4000015258789, + "y": 332 + }, + { + "x": 124, + "y": 309.6000061035156 + }, + { + "x": 124, + "y": 291 + }, + { + "x": 124, + "y": 272.3999938964844 + }, + { + "x": 124, + "y": 247.60000610351562 + }, + { + "x": 124, + "y": 229 + }, + { + "x": 124, + "y": 210.39999389648438 + }, + { + "x": 124, + "y": 185.60000610351562 + }, + { + "x": 124, + "y": 167 + }, + { + "x": 124, + "y": 148.39999389648438 + }, + { + "x": 117.4000015258789, + "y": 64 + }, + { + "x": 91, + "y": 24 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + } + ], + "root": { + "id": "", + "type": "", + "pos": { + "x": 0, + "y": 0 + }, + "width": 0, + "height": 0, + "opacity": 0, + "strokeDash": 0, + "strokeWidth": 0, + "borderRadius": 0, + "fill": "N7", + "stroke": "", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "zIndex": 0, + "level": 0 + } +} diff --git a/e2etests/testdata/txtar/extended-ascii/dagre/sketch.exp.svg b/e2etests/testdata/txtar/extended-ascii/dagre/sketch.exp.svg new file mode 100644 index 0000000000..1e3bdfa125 --- /dev/null +++ b/e2etests/testdata/txtar/extended-ascii/dagre/sketch.exp.svg @@ -0,0 +1,842 @@ +

ÇéþüðæØÅßñò

+

òØõùßÍÿåÆ

+

çÆÐÞ©ßþúí

+

ÉáøÿÑö

+
+ + + + + +
\ No newline at end of file diff --git a/e2etests/testdata/txtar/extended-ascii/elk/board.exp.json b/e2etests/testdata/txtar/extended-ascii/elk/board.exp.json new file mode 100644 index 0000000000..8c98196d60 --- /dev/null +++ b/e2etests/testdata/txtar/extended-ascii/elk/board.exp.json @@ -0,0 +1,385 @@ +{ + "name": "", + "isFolderOnly": false, + "fontFamily": "SourceSansPro", + "shapes": [ + { + "id": "1", + "type": "text", + "pos": { + "x": 44, + "y": 12 + }, + "width": 102, + "height": 24, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "transparent", + "stroke": "N1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "ÇéþüðæØÅßñò", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 102, + "labelHeight": 24, + "zIndex": 0, + "level": 1 + }, + { + "id": "2", + "type": "text", + "pos": { + "x": 14, + "y": 116 + }, + "width": 79, + "height": 24, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "transparent", + "stroke": "N1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "òØõùßÍÿåÆ", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 79, + "labelHeight": 24, + "zIndex": 0, + "level": 1 + }, + { + "id": "3", + "type": "text", + "pos": { + "x": 12, + "y": 210 + }, + "width": 84, + "height": 24, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "transparent", + "stroke": "N1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "çÆÐÞ©ßþúí", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 84, + "labelHeight": 24, + "zIndex": 0, + "level": 1 + }, + { + "id": "4", + "type": "text", + "pos": { + "x": 69, + "y": 314 + }, + "width": 52, + "height": 24, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "transparent", + "stroke": "N1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "ÉáøÿÑö", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 52, + "labelHeight": 24, + "zIndex": 0, + "level": 1 + } + ], + "connections": [ + { + "id": "(1 -> 2)[0]", + "src": "1", + "srcArrow": "none", + "dst": "2", + "dstArrow": "triangle", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 78, + "y": 36 + }, + { + "x": 78, + "y": 116 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(2 -> 3)[0]", + "src": "2", + "srcArrow": "none", + "dst": "3", + "dstArrow": "triangle", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 54, + "y": 140 + }, + { + "x": 54, + "y": 210 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(3 -> 4)[0]", + "src": "3", + "srcArrow": "none", + "dst": "4", + "dstArrow": "triangle", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 54, + "y": 234 + }, + { + "x": 54, + "y": 274 + }, + { + "x": 86.33300018310547, + "y": 274 + }, + { + "x": 86.33300018310547, + "y": 314 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(4 -> 1)[0]", + "src": "4", + "srcArrow": "none", + "dst": "1", + "dstArrow": "triangle", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "route": [ + { + "x": 103.66600036621094, + "y": 314 + }, + { + "x": 103.66600036621094, + "y": 274 + }, + { + "x": 136, + "y": 274 + }, + { + "x": 136, + "y": 76 + }, + { + "x": 112, + "y": 76 + }, + { + "x": 112, + "y": 36 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + } + ], + "root": { + "id": "", + "type": "", + "pos": { + "x": 0, + "y": 0 + }, + "width": 0, + "height": 0, + "opacity": 0, + "strokeDash": 0, + "strokeWidth": 0, + "borderRadius": 0, + "fill": "N7", + "stroke": "", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "zIndex": 0, + "level": 0 + } +} diff --git a/e2etests/testdata/txtar/extended-ascii/elk/sketch.exp.svg b/e2etests/testdata/txtar/extended-ascii/elk/sketch.exp.svg new file mode 100644 index 0000000000..a13fe050f3 --- /dev/null +++ b/e2etests/testdata/txtar/extended-ascii/elk/sketch.exp.svg @@ -0,0 +1,842 @@ +

ÇéþüðæØÅßñò

+

òØõùßÍÿåÆ

+

çÆÐÞ©ßþúí

+

ÉáøÿÑö

+
+ + + + + +
\ No newline at end of file diff --git a/e2etests/testdata/txtar/unicode/dagre/board.exp.json b/e2etests/testdata/txtar/unicode/dagre/board.exp.json new file mode 100644 index 0000000000..61339f4771 --- /dev/null +++ b/e2etests/testdata/txtar/unicode/dagre/board.exp.json @@ -0,0 +1,528 @@ +{ + "name": "", + "isFolderOnly": false, + "fontFamily": "SourceSansPro", + "shapes": [ + { + "id": "■", + "type": "text", + "pos": { + "x": 0, + "y": 0 + }, + "width": 66, + "height": 24, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "transparent", + "stroke": "N1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "■ foo bar", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 66, + "labelHeight": 24, + "zIndex": 0, + "level": 1 + }, + { + "id": "□", + "type": "text", + "pos": { + "x": 126, + "y": 0 + }, + "width": 62, + "height": 24, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "transparent", + "stroke": "N1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "□ foo bar", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 62, + "labelHeight": 24, + "zIndex": 0, + "level": 1 + }, + { + "id": "●", + "type": "text", + "pos": { + "x": 248, + "y": 0 + }, + "width": 62, + "height": 24, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "transparent", + "stroke": "N1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "● foo bar", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 62, + "labelHeight": 24, + "zIndex": 0, + "level": 1 + }, + { + "id": "○", + "type": "text", + "pos": { + "x": 370, + "y": 0 + }, + "width": 62, + "height": 24, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "transparent", + "stroke": "N1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "○ foo bar", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 62, + "labelHeight": 24, + "zIndex": 0, + "level": 1 + }, + { + "id": "◆", + "type": "text", + "pos": { + "x": 492, + "y": 0 + }, + "width": 66, + "height": 24, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "transparent", + "stroke": "N1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "◆ foo bar", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 66, + "labelHeight": 24, + "zIndex": 0, + "level": 1 + }, + { + "id": "◇", + "type": "text", + "pos": { + "x": 618, + "y": 0 + }, + "width": 62, + "height": 24, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "transparent", + "stroke": "N1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "◇ foo bar", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 62, + "labelHeight": 24, + "zIndex": 0, + "level": 1 + }, + { + "id": "▲", + "type": "text", + "pos": { + "x": 740, + "y": 0 + }, + "width": 66, + "height": 24, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "transparent", + "stroke": "N1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "▲ foo bar", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 66, + "labelHeight": 24, + "zIndex": 0, + "level": 1 + }, + { + "id": "△", + "type": "text", + "pos": { + "x": 866, + "y": 0 + }, + "width": 66, + "height": 24, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "transparent", + "stroke": "N1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "△ foo bar", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 66, + "labelHeight": 24, + "zIndex": 0, + "level": 1 + }, + { + "id": "▼", + "type": "text", + "pos": { + "x": 992, + "y": 0 + }, + "width": 66, + "height": 24, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "transparent", + "stroke": "N1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "▼ foo bar", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 66, + "labelHeight": 24, + "zIndex": 0, + "level": 1 + }, + { + "id": "▽", + "type": "text", + "pos": { + "x": 1118, + "y": 0 + }, + "width": 66, + "height": 24, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "transparent", + "stroke": "N1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "▽ foo bar", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 66, + "labelHeight": 24, + "zIndex": 0, + "level": 1 + }, + { + "id": "※", + "type": "text", + "pos": { + "x": 1244, + "y": 0 + }, + "width": 62, + "height": 24, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "transparent", + "stroke": "N1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "※ foo bar", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 62, + "labelHeight": 24, + "zIndex": 0, + "level": 1 + }, + { + "id": "◎", + "type": "text", + "pos": { + "x": 1366, + "y": 0 + }, + "width": 62, + "height": 24, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "transparent", + "stroke": "N1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "◎ foo bar", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 62, + "labelHeight": 24, + "zIndex": 0, + "level": 1 + } + ], + "connections": [], + "root": { + "id": "", + "type": "", + "pos": { + "x": 0, + "y": 0 + }, + "width": 0, + "height": 0, + "opacity": 0, + "strokeDash": 0, + "strokeWidth": 0, + "borderRadius": 0, + "fill": "N7", + "stroke": "", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "zIndex": 0, + "level": 0 + } +} diff --git a/e2etests/testdata/txtar/unicode/dagre/sketch.exp.svg b/e2etests/testdata/txtar/unicode/dagre/sketch.exp.svg new file mode 100644 index 0000000000..3201635aac --- /dev/null +++ b/e2etests/testdata/txtar/unicode/dagre/sketch.exp.svg @@ -0,0 +1,858 @@ +

■ foo bar

+

□ foo bar

+

● foo bar

+

○ foo bar

+

◆ foo bar

+

◇ foo bar

+

▲ foo bar

+

△ foo bar

+

▼ foo bar

+

▽ foo bar

+

※ foo bar

+

◎ foo bar

+
+ + + + + + + + + + + + + +
\ No newline at end of file diff --git a/e2etests/testdata/txtar/unicode/elk/board.exp.json b/e2etests/testdata/txtar/unicode/elk/board.exp.json new file mode 100644 index 0000000000..8dca6ac7ab --- /dev/null +++ b/e2etests/testdata/txtar/unicode/elk/board.exp.json @@ -0,0 +1,528 @@ +{ + "name": "", + "isFolderOnly": false, + "fontFamily": "SourceSansPro", + "shapes": [ + { + "id": "■", + "type": "text", + "pos": { + "x": 12, + "y": 12 + }, + "width": 66, + "height": 24, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "transparent", + "stroke": "N1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "■ foo bar", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 66, + "labelHeight": 24, + "zIndex": 0, + "level": 1 + }, + { + "id": "□", + "type": "text", + "pos": { + "x": 98, + "y": 12 + }, + "width": 62, + "height": 24, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "transparent", + "stroke": "N1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "□ foo bar", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 62, + "labelHeight": 24, + "zIndex": 0, + "level": 1 + }, + { + "id": "●", + "type": "text", + "pos": { + "x": 180, + "y": 12 + }, + "width": 62, + "height": 24, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "transparent", + "stroke": "N1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "● foo bar", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 62, + "labelHeight": 24, + "zIndex": 0, + "level": 1 + }, + { + "id": "○", + "type": "text", + "pos": { + "x": 262, + "y": 12 + }, + "width": 62, + "height": 24, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "transparent", + "stroke": "N1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "○ foo bar", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 62, + "labelHeight": 24, + "zIndex": 0, + "level": 1 + }, + { + "id": "◆", + "type": "text", + "pos": { + "x": 344, + "y": 12 + }, + "width": 66, + "height": 24, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "transparent", + "stroke": "N1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "◆ foo bar", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 66, + "labelHeight": 24, + "zIndex": 0, + "level": 1 + }, + { + "id": "◇", + "type": "text", + "pos": { + "x": 430, + "y": 12 + }, + "width": 62, + "height": 24, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "transparent", + "stroke": "N1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "◇ foo bar", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 62, + "labelHeight": 24, + "zIndex": 0, + "level": 1 + }, + { + "id": "▲", + "type": "text", + "pos": { + "x": 512, + "y": 12 + }, + "width": 66, + "height": 24, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "transparent", + "stroke": "N1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "▲ foo bar", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 66, + "labelHeight": 24, + "zIndex": 0, + "level": 1 + }, + { + "id": "△", + "type": "text", + "pos": { + "x": 598, + "y": 12 + }, + "width": 66, + "height": 24, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "transparent", + "stroke": "N1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "△ foo bar", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 66, + "labelHeight": 24, + "zIndex": 0, + "level": 1 + }, + { + "id": "▼", + "type": "text", + "pos": { + "x": 684, + "y": 12 + }, + "width": 66, + "height": 24, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "transparent", + "stroke": "N1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "▼ foo bar", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 66, + "labelHeight": 24, + "zIndex": 0, + "level": 1 + }, + { + "id": "▽", + "type": "text", + "pos": { + "x": 770, + "y": 12 + }, + "width": 66, + "height": 24, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "transparent", + "stroke": "N1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "▽ foo bar", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 66, + "labelHeight": 24, + "zIndex": 0, + "level": 1 + }, + { + "id": "※", + "type": "text", + "pos": { + "x": 856, + "y": 12 + }, + "width": 62, + "height": 24, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "transparent", + "stroke": "N1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "※ foo bar", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 62, + "labelHeight": 24, + "zIndex": 0, + "level": 1 + }, + { + "id": "◎", + "type": "text", + "pos": { + "x": 938, + "y": 12 + }, + "width": 62, + "height": 24, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "transparent", + "stroke": "N1", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "◎ foo bar", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 62, + "labelHeight": 24, + "zIndex": 0, + "level": 1 + } + ], + "connections": [], + "root": { + "id": "", + "type": "", + "pos": { + "x": 0, + "y": 0 + }, + "width": 0, + "height": 0, + "opacity": 0, + "strokeDash": 0, + "strokeWidth": 0, + "borderRadius": 0, + "fill": "N7", + "stroke": "", + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "zIndex": 0, + "level": 0 + } +} diff --git a/e2etests/testdata/txtar/unicode/elk/sketch.exp.svg b/e2etests/testdata/txtar/unicode/elk/sketch.exp.svg new file mode 100644 index 0000000000..d250f9cd53 --- /dev/null +++ b/e2etests/testdata/txtar/unicode/elk/sketch.exp.svg @@ -0,0 +1,858 @@ +

■ foo bar

+

□ foo bar

+

● foo bar

+

○ foo bar

+

◆ foo bar

+

◇ foo bar

+

▲ foo bar

+

△ foo bar

+

▼ foo bar

+

▽ foo bar

+

※ foo bar

+

◎ foo bar

+
+ + + + + + + + + + + + + +
\ No newline at end of file diff --git a/e2etests/testdata/unicode/mixed-language-2/dagre/board.exp.json b/e2etests/testdata/unicode/mixed-language-2/dagre/board.exp.json index b1b7f04a82..34ac578d64 100644 --- a/e2etests/testdata/unicode/mixed-language-2/dagre/board.exp.json +++ b/e2etests/testdata/unicode/mixed-language-2/dagre/board.exp.json @@ -130,10 +130,10 @@ "id": "d", "type": "rectangle", "pos": { - "x": 29, + "x": 32, "y": 498 }, - "width": 244, + "width": 238, "height": 66, "opacity": 1, "strokeDash": 0, @@ -161,7 +161,7 @@ "italic": false, "bold": true, "underline": false, - "labelWidth": 199, + "labelWidth": 193, "labelHeight": 21, "labelPosition": "INSIDE_MIDDLE_CENTER", "zIndex": 0, @@ -294,10 +294,10 @@ "id": "h", "type": "rectangle", "pos": { - "x": 368, + "x": 370, "y": 498 }, - "width": 173, + "width": 170, "height": 66, "opacity": 1, "strokeDash": 0, @@ -325,7 +325,7 @@ "italic": false, "bold": true, "underline": false, - "labelWidth": 128, + "labelWidth": 125, "labelHeight": 21, "labelPosition": "INSIDE_MIDDLE_CENTER", "zIndex": 0, @@ -338,7 +338,7 @@ "x": 633, "y": 0 }, - "width": 282, + "width": 273, "height": 66, "opacity": 1, "strokeDash": 0, @@ -366,7 +366,7 @@ "italic": false, "bold": true, "underline": false, - "labelWidth": 237, + "labelWidth": 228, "labelHeight": 21, "labelPosition": "INSIDE_MIDDLE_CENTER", "zIndex": 0, @@ -376,7 +376,7 @@ "id": "j", "type": "rectangle", "pos": { - "x": 662, + "x": 658, "y": 166 }, "width": 224, @@ -417,7 +417,7 @@ "id": "k", "type": "rectangle", "pos": { - "x": 642, + "x": 637, "y": 332 }, "width": 265, @@ -458,7 +458,7 @@ "id": "l", "type": "rectangle", "pos": { - "x": 675, + "x": 670, "y": 498 }, "width": 199, @@ -499,7 +499,7 @@ "id": "m", "type": "rectangle", "pos": { - "x": 975, + "x": 966, "y": 0 }, "width": 255, @@ -540,7 +540,7 @@ "id": "n", "type": "rectangle", "pos": { - "x": 996, + "x": 987, "y": 166 }, "width": 213, @@ -581,7 +581,7 @@ "id": "o", "type": "rectangle", "pos": { - "x": 1024, + "x": 1015, "y": 332 }, "width": 158, @@ -622,7 +622,7 @@ "id": "p", "type": "rectangle", "pos": { - "x": 984, + "x": 975, "y": 498 }, "width": 238, @@ -663,7 +663,7 @@ "id": "\"မင်္ဂလာပါ (mingalaba) - Burmese\"", "type": "rectangle", "pos": { - "x": 1290, + "x": 1281, "y": 0 }, "width": 307, @@ -704,7 +704,7 @@ "id": "\"сайн уу (sain uu) - Mongolian\"", "type": "rectangle", "pos": { - "x": 1657, + "x": 1648, "y": 0 }, "width": 264, @@ -745,7 +745,7 @@ "id": "\"ਸਤਿ ਸ੍ਰੀ ਅਕਾਲ (sat sri akal) - Punjabi\"", "type": "rectangle", "pos": { - "x": 1981, + "x": 1972, "y": 0 }, "width": 328, @@ -786,10 +786,10 @@ "id": "\"你吃了吗 (ní chī le ma) - Mandarin Chinese\"", "type": "rectangle", "pos": { - "x": 2369, + "x": 2360, "y": 0 }, - "width": 370, + "width": 363, "height": 66, "opacity": 1, "strokeDash": 0, @@ -817,7 +817,7 @@ "italic": false, "bold": true, "underline": false, - "labelWidth": 325, + "labelWidth": 318, "labelHeight": 21, "labelPosition": "INSIDE_MIDDLE_CENTER", "zIndex": 0, @@ -827,7 +827,7 @@ "id": "\"饭 (fan) - Zhuang\"", "type": "rectangle", "pos": { - "x": 2799, + "x": 2783, "y": 0 }, "width": 167, @@ -868,7 +868,7 @@ "id": "مەن سىزنى ياخشى ئۈمىد ق", "type": "rectangle", "pos": { - "x": 3026, + "x": 3010, "y": 0 }, "width": 266, @@ -1214,19 +1214,19 @@ "labelPercentage": 0, "route": [ { - "x": 774, + "x": 769.5, "y": 66 }, { - "x": 774, + "x": 769.5, "y": 106 }, { - "x": 774, + "x": 769.5, "y": 126 }, { - "x": 774, + "x": 769.5, "y": 166 } ], @@ -1261,19 +1261,19 @@ "labelPercentage": 0, "route": [ { - "x": 774, + "x": 769.5, "y": 232 }, { - "x": 774, + "x": 769.5, "y": 272 }, { - "x": 774, + "x": 769.5, "y": 292 }, { - "x": 774, + "x": 769.5, "y": 332 } ], @@ -1308,19 +1308,19 @@ "labelPercentage": 0, "route": [ { - "x": 774, + "x": 769.5, "y": 398 }, { - "x": 774, + "x": 769.5, "y": 438 }, { - "x": 774, + "x": 769.5, "y": 458 }, { - "x": 774, + "x": 769.5, "y": 498 } ], @@ -1355,19 +1355,19 @@ "labelPercentage": 0, "route": [ { - "x": 1102.5, + "x": 1093.5, "y": 66 }, { - "x": 1102.5, + "x": 1093.5, "y": 106 }, { - "x": 1102.5, + "x": 1093.5, "y": 126 }, { - "x": 1102.5, + "x": 1093.5, "y": 166 } ], @@ -1402,19 +1402,19 @@ "labelPercentage": 0, "route": [ { - "x": 1102.5, + "x": 1093.5, "y": 232 }, { - "x": 1102.5, + "x": 1093.5, "y": 272 }, { - "x": 1102.5, + "x": 1093.5, "y": 292 }, { - "x": 1102.5, + "x": 1093.5, "y": 332 } ], @@ -1449,19 +1449,19 @@ "labelPercentage": 0, "route": [ { - "x": 1102.5, + "x": 1093.5, "y": 398 }, { - "x": 1102.5, + "x": 1093.5, "y": 438 }, { - "x": 1102.5, + "x": 1093.5, "y": 458 }, { - "x": 1102.5, + "x": 1093.5, "y": 498 } ], diff --git a/e2etests/testdata/unicode/mixed-language-2/dagre/sketch.exp.svg b/e2etests/testdata/unicode/mixed-language-2/dagre/sketch.exp.svg index 7ff89251ec..5c576ed475 100644 --- a/e2etests/testdata/unicode/mixed-language-2/dagre/sketch.exp.svg +++ b/e2etests/testdata/unicode/mixed-language-2/dagre/sketch.exp.svg @@ -1,9 +1,9 @@ -我 (wǒ) - Mandarin Chineseສະບາຍດີ (sabaai dii) - Laoជំរាបសួរ (jomreab suor) - Khmerสวัสดี (sà-wàt-dii) - Thaiສະບາຍດີ (sabaidee) - Laoဟယ်လို (helaou) - Burmesemari (まり) - Ainucào (草) - Zhuangкүнтізбе (kúntízbe) - Kazakhբարև (barev) - Armenianмонгол (mongol) - Mongolianmila (میلا) - Uyghurનમસ્તે (namaste) - Gujarati漢字 (kanji) - Japanese위 (wi) - Korean吾哥 (ngǔgāi) - Cantoneseမင်္ဂလာပါ (mingalaba) - Burmeseсайн уу (sain uu) - Mongolianਸਤਿ ਸ੍ਰੀ ਅਕਾਲ (sat sri akal) - Punjabi你吃了吗 (ní chī le ma) - Mandarin Chinese饭 (fan) - Zhuangمەن سىزنى ياخشى ئۈمىد ق - + .d2-841573658 .fill-N1{fill:#0A0F25;} + .d2-841573658 .fill-N2{fill:#676C7E;} + .d2-841573658 .fill-N3{fill:#9499AB;} + .d2-841573658 .fill-N4{fill:#CFD2DD;} + .d2-841573658 .fill-N5{fill:#DEE1EB;} + .d2-841573658 .fill-N6{fill:#EEF1F8;} + .d2-841573658 .fill-N7{fill:#FFFFFF;} + .d2-841573658 .fill-B1{fill:#0D32B2;} + .d2-841573658 .fill-B2{fill:#0D32B2;} + .d2-841573658 .fill-B3{fill:#E3E9FD;} + .d2-841573658 .fill-B4{fill:#E3E9FD;} + .d2-841573658 .fill-B5{fill:#EDF0FD;} + .d2-841573658 .fill-B6{fill:#F7F8FE;} + .d2-841573658 .fill-AA2{fill:#4A6FF3;} + .d2-841573658 .fill-AA4{fill:#EDF0FD;} + .d2-841573658 .fill-AA5{fill:#F7F8FE;} + .d2-841573658 .fill-AB4{fill:#EDF0FD;} + .d2-841573658 .fill-AB5{fill:#F7F8FE;} + .d2-841573658 .stroke-N1{stroke:#0A0F25;} + .d2-841573658 .stroke-N2{stroke:#676C7E;} + .d2-841573658 .stroke-N3{stroke:#9499AB;} + .d2-841573658 .stroke-N4{stroke:#CFD2DD;} + .d2-841573658 .stroke-N5{stroke:#DEE1EB;} + .d2-841573658 .stroke-N6{stroke:#EEF1F8;} + .d2-841573658 .stroke-N7{stroke:#FFFFFF;} + .d2-841573658 .stroke-B1{stroke:#0D32B2;} + .d2-841573658 .stroke-B2{stroke:#0D32B2;} + .d2-841573658 .stroke-B3{stroke:#E3E9FD;} + .d2-841573658 .stroke-B4{stroke:#E3E9FD;} + .d2-841573658 .stroke-B5{stroke:#EDF0FD;} + .d2-841573658 .stroke-B6{stroke:#F7F8FE;} + .d2-841573658 .stroke-AA2{stroke:#4A6FF3;} + .d2-841573658 .stroke-AA4{stroke:#EDF0FD;} + .d2-841573658 .stroke-AA5{stroke:#F7F8FE;} + .d2-841573658 .stroke-AB4{stroke:#EDF0FD;} + .d2-841573658 .stroke-AB5{stroke:#F7F8FE;} + .d2-841573658 .background-color-N1{background-color:#0A0F25;} + .d2-841573658 .background-color-N2{background-color:#676C7E;} + .d2-841573658 .background-color-N3{background-color:#9499AB;} + .d2-841573658 .background-color-N4{background-color:#CFD2DD;} + .d2-841573658 .background-color-N5{background-color:#DEE1EB;} + .d2-841573658 .background-color-N6{background-color:#EEF1F8;} + .d2-841573658 .background-color-N7{background-color:#FFFFFF;} + .d2-841573658 .background-color-B1{background-color:#0D32B2;} + .d2-841573658 .background-color-B2{background-color:#0D32B2;} + .d2-841573658 .background-color-B3{background-color:#E3E9FD;} + .d2-841573658 .background-color-B4{background-color:#E3E9FD;} + .d2-841573658 .background-color-B5{background-color:#EDF0FD;} + .d2-841573658 .background-color-B6{background-color:#F7F8FE;} + .d2-841573658 .background-color-AA2{background-color:#4A6FF3;} + .d2-841573658 .background-color-AA4{background-color:#EDF0FD;} + .d2-841573658 .background-color-AA5{background-color:#F7F8FE;} + .d2-841573658 .background-color-AB4{background-color:#EDF0FD;} + .d2-841573658 .background-color-AB5{background-color:#F7F8FE;} + .d2-841573658 .color-N1{color:#0A0F25;} + .d2-841573658 .color-N2{color:#676C7E;} + .d2-841573658 .color-N3{color:#9499AB;} + .d2-841573658 .color-N4{color:#CFD2DD;} + .d2-841573658 .color-N5{color:#DEE1EB;} + .d2-841573658 .color-N6{color:#EEF1F8;} + .d2-841573658 .color-N7{color:#FFFFFF;} + .d2-841573658 .color-B1{color:#0D32B2;} + .d2-841573658 .color-B2{color:#0D32B2;} + .d2-841573658 .color-B3{color:#E3E9FD;} + .d2-841573658 .color-B4{color:#E3E9FD;} + .d2-841573658 .color-B5{color:#EDF0FD;} + .d2-841573658 .color-B6{color:#F7F8FE;} + .d2-841573658 .color-AA2{color:#4A6FF3;} + .d2-841573658 .color-AA4{color:#EDF0FD;} + .d2-841573658 .color-AA5{color:#F7F8FE;} + .d2-841573658 .color-AB4{color:#EDF0FD;} + .d2-841573658 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>我 (wǒ) - Mandarin Chineseສະບາຍດີ (sabaai dii) - Laoជំរាបសួរ (jomreab suor) - Khmerสวัสดี (sà-wàt-dii) - Thaiສະບາຍດີ (sabaidee) - Laoဟယ်လို (helaou) - Burmesemari (まり) - Ainucào (草) - Zhuangкүнтізбе (kúntízbe) - Kazakhբարև (barev) - Armenianмонгол (mongol) - Mongolianmila (میلا) - Uyghurનમસ્તે (namaste) - Gujarati漢字 (kanji) - Japanese위 (wi) - Korean吾哥 (ngǔgāi) - Cantoneseမင်္ဂလာပါ (mingalaba) - Burmeseсайн уу (sain uu) - Mongolianਸਤਿ ਸ੍ਰੀ ਅਕਾਲ (sat sri akal) - Punjabi你吃了吗 (ní chī le ma) - Mandarin Chinese饭 (fan) - Zhuangمەن سىزنى ياخشى ئۈمىد ق + - + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/e2etests/testdata/unicode/mixed-language-2/elk/board.exp.json b/e2etests/testdata/unicode/mixed-language-2/elk/board.exp.json index d7112ca954..d2273cf01e 100644 --- a/e2etests/testdata/unicode/mixed-language-2/elk/board.exp.json +++ b/e2etests/testdata/unicode/mixed-language-2/elk/board.exp.json @@ -130,10 +130,10 @@ "id": "d", "type": "rectangle", "pos": { - "x": 40, + "x": 43, "y": 420 }, - "width": 244, + "width": 238, "height": 66, "opacity": 1, "strokeDash": 0, @@ -161,7 +161,7 @@ "italic": false, "bold": true, "underline": false, - "labelWidth": 199, + "labelWidth": 193, "labelHeight": 21, "labelPosition": "INSIDE_MIDDLE_CENTER", "zIndex": 0, @@ -294,10 +294,10 @@ "id": "h", "type": "rectangle", "pos": { - "x": 340, + "x": 341, "y": 420 }, - "width": 173, + "width": 170, "height": 66, "opacity": 1, "strokeDash": 0, @@ -325,7 +325,7 @@ "italic": false, "bold": true, "underline": false, - "labelWidth": 128, + "labelWidth": 125, "labelHeight": 21, "labelPosition": "INSIDE_MIDDLE_CENTER", "zIndex": 0, @@ -338,7 +338,7 @@ "x": 565, "y": 12 }, - "width": 282, + "width": 273, "height": 66, "opacity": 1, "strokeDash": 0, @@ -366,7 +366,7 @@ "italic": false, "bold": true, "underline": false, - "labelWidth": 237, + "labelWidth": 228, "labelHeight": 21, "labelPosition": "INSIDE_MIDDLE_CENTER", "zIndex": 0, @@ -376,7 +376,7 @@ "id": "j", "type": "rectangle", "pos": { - "x": 594, + "x": 589, "y": 148 }, "width": 224, @@ -417,7 +417,7 @@ "id": "k", "type": "rectangle", "pos": { - "x": 573, + "x": 569, "y": 284 }, "width": 265, @@ -458,7 +458,7 @@ "id": "l", "type": "rectangle", "pos": { - "x": 606, + "x": 602, "y": 420 }, "width": 199, @@ -499,7 +499,7 @@ "id": "m", "type": "rectangle", "pos": { - "x": 867, + "x": 858, "y": 12 }, "width": 255, @@ -540,7 +540,7 @@ "id": "n", "type": "rectangle", "pos": { - "x": 888, + "x": 879, "y": 148 }, "width": 213, @@ -581,7 +581,7 @@ "id": "o", "type": "rectangle", "pos": { - "x": 915, + "x": 906, "y": 284 }, "width": 158, @@ -622,7 +622,7 @@ "id": "p", "type": "rectangle", "pos": { - "x": 875, + "x": 866, "y": 420 }, "width": 238, @@ -663,7 +663,7 @@ "id": "\"မင်္ဂလာပါ (mingalaba) - Burmese\"", "type": "rectangle", "pos": { - "x": 1142, + "x": 1133, "y": 12 }, "width": 307, @@ -704,7 +704,7 @@ "id": "\"сайн уу (sain uu) - Mongolian\"", "type": "rectangle", "pos": { - "x": 1469, + "x": 1460, "y": 12 }, "width": 264, @@ -745,7 +745,7 @@ "id": "\"ਸਤਿ ਸ੍ਰੀ ਅਕਾਲ (sat sri akal) - Punjabi\"", "type": "rectangle", "pos": { - "x": 1753, + "x": 1744, "y": 12 }, "width": 328, @@ -786,10 +786,10 @@ "id": "\"你吃了吗 (ní chī le ma) - Mandarin Chinese\"", "type": "rectangle", "pos": { - "x": 2101, + "x": 2092, "y": 12 }, - "width": 370, + "width": 363, "height": 66, "opacity": 1, "strokeDash": 0, @@ -817,7 +817,7 @@ "italic": false, "bold": true, "underline": false, - "labelWidth": 325, + "labelWidth": 318, "labelHeight": 21, "labelPosition": "INSIDE_MIDDLE_CENTER", "zIndex": 0, @@ -827,7 +827,7 @@ "id": "\"饭 (fan) - Zhuang\"", "type": "rectangle", "pos": { - "x": 2491, + "x": 2475, "y": 12 }, "width": 167, @@ -868,7 +868,7 @@ "id": "مەن سىزنى ياخشى ئۈمىد ق", "type": "rectangle", "pos": { - "x": 2678, + "x": 2662, "y": 12 }, "width": 266, @@ -1160,11 +1160,11 @@ "labelPercentage": 0, "route": [ { - "x": 706, + "x": 701.5, "y": 78 }, { - "x": 706, + "x": 701.5, "y": 148 } ], @@ -1198,11 +1198,11 @@ "labelPercentage": 0, "route": [ { - "x": 706, + "x": 701.5, "y": 214 }, { - "x": 706, + "x": 701.5, "y": 284 } ], @@ -1236,11 +1236,11 @@ "labelPercentage": 0, "route": [ { - "x": 706, + "x": 701.5, "y": 350 }, { - "x": 706, + "x": 701.5, "y": 420 } ], @@ -1274,11 +1274,11 @@ "labelPercentage": 0, "route": [ { - "x": 994.5, + "x": 985.5, "y": 78 }, { - "x": 994.5, + "x": 985.5, "y": 148 } ], @@ -1312,11 +1312,11 @@ "labelPercentage": 0, "route": [ { - "x": 994.5, + "x": 985.5, "y": 214 }, { - "x": 994.5, + "x": 985.5, "y": 284 } ], @@ -1350,11 +1350,11 @@ "labelPercentage": 0, "route": [ { - "x": 994.5, + "x": 985.5, "y": 350 }, { - "x": 994.5, + "x": 985.5, "y": 420 } ], diff --git a/e2etests/testdata/unicode/mixed-language-2/elk/sketch.exp.svg b/e2etests/testdata/unicode/mixed-language-2/elk/sketch.exp.svg index b0ada55575..fc9244359e 100644 --- a/e2etests/testdata/unicode/mixed-language-2/elk/sketch.exp.svg +++ b/e2etests/testdata/unicode/mixed-language-2/elk/sketch.exp.svg @@ -1,9 +1,9 @@ -我 (wǒ) - Mandarin Chineseສະບາຍດີ (sabaai dii) - Laoជំរាបសួរ (jomreab suor) - Khmerสวัสดี (sà-wàt-dii) - Thaiສະບາຍດີ (sabaidee) - Laoဟယ်လို (helaou) - Burmesemari (まり) - Ainucào (草) - Zhuangкүнтізбе (kúntízbe) - Kazakhբարև (barev) - Armenianмонгол (mongol) - Mongolianmila (میلا) - Uyghurનમસ્તે (namaste) - Gujarati漢字 (kanji) - Japanese위 (wi) - Korean吾哥 (ngǔgāi) - Cantoneseမင်္ဂလာပါ (mingalaba) - Burmeseсайн уу (sain uu) - Mongolianਸਤਿ ਸ੍ਰੀ ਅਕਾਲ (sat sri akal) - Punjabi你吃了吗 (ní chī le ma) - Mandarin Chinese饭 (fan) - Zhuangمەن سىزنى ياخشى ئۈمىد ق - + .d2-801881618 .fill-N1{fill:#0A0F25;} + .d2-801881618 .fill-N2{fill:#676C7E;} + .d2-801881618 .fill-N3{fill:#9499AB;} + .d2-801881618 .fill-N4{fill:#CFD2DD;} + .d2-801881618 .fill-N5{fill:#DEE1EB;} + .d2-801881618 .fill-N6{fill:#EEF1F8;} + .d2-801881618 .fill-N7{fill:#FFFFFF;} + .d2-801881618 .fill-B1{fill:#0D32B2;} + .d2-801881618 .fill-B2{fill:#0D32B2;} + .d2-801881618 .fill-B3{fill:#E3E9FD;} + .d2-801881618 .fill-B4{fill:#E3E9FD;} + .d2-801881618 .fill-B5{fill:#EDF0FD;} + .d2-801881618 .fill-B6{fill:#F7F8FE;} + .d2-801881618 .fill-AA2{fill:#4A6FF3;} + .d2-801881618 .fill-AA4{fill:#EDF0FD;} + .d2-801881618 .fill-AA5{fill:#F7F8FE;} + .d2-801881618 .fill-AB4{fill:#EDF0FD;} + .d2-801881618 .fill-AB5{fill:#F7F8FE;} + .d2-801881618 .stroke-N1{stroke:#0A0F25;} + .d2-801881618 .stroke-N2{stroke:#676C7E;} + .d2-801881618 .stroke-N3{stroke:#9499AB;} + .d2-801881618 .stroke-N4{stroke:#CFD2DD;} + .d2-801881618 .stroke-N5{stroke:#DEE1EB;} + .d2-801881618 .stroke-N6{stroke:#EEF1F8;} + .d2-801881618 .stroke-N7{stroke:#FFFFFF;} + .d2-801881618 .stroke-B1{stroke:#0D32B2;} + .d2-801881618 .stroke-B2{stroke:#0D32B2;} + .d2-801881618 .stroke-B3{stroke:#E3E9FD;} + .d2-801881618 .stroke-B4{stroke:#E3E9FD;} + .d2-801881618 .stroke-B5{stroke:#EDF0FD;} + .d2-801881618 .stroke-B6{stroke:#F7F8FE;} + .d2-801881618 .stroke-AA2{stroke:#4A6FF3;} + .d2-801881618 .stroke-AA4{stroke:#EDF0FD;} + .d2-801881618 .stroke-AA5{stroke:#F7F8FE;} + .d2-801881618 .stroke-AB4{stroke:#EDF0FD;} + .d2-801881618 .stroke-AB5{stroke:#F7F8FE;} + .d2-801881618 .background-color-N1{background-color:#0A0F25;} + .d2-801881618 .background-color-N2{background-color:#676C7E;} + .d2-801881618 .background-color-N3{background-color:#9499AB;} + .d2-801881618 .background-color-N4{background-color:#CFD2DD;} + .d2-801881618 .background-color-N5{background-color:#DEE1EB;} + .d2-801881618 .background-color-N6{background-color:#EEF1F8;} + .d2-801881618 .background-color-N7{background-color:#FFFFFF;} + .d2-801881618 .background-color-B1{background-color:#0D32B2;} + .d2-801881618 .background-color-B2{background-color:#0D32B2;} + .d2-801881618 .background-color-B3{background-color:#E3E9FD;} + .d2-801881618 .background-color-B4{background-color:#E3E9FD;} + .d2-801881618 .background-color-B5{background-color:#EDF0FD;} + .d2-801881618 .background-color-B6{background-color:#F7F8FE;} + .d2-801881618 .background-color-AA2{background-color:#4A6FF3;} + .d2-801881618 .background-color-AA4{background-color:#EDF0FD;} + .d2-801881618 .background-color-AA5{background-color:#F7F8FE;} + .d2-801881618 .background-color-AB4{background-color:#EDF0FD;} + .d2-801881618 .background-color-AB5{background-color:#F7F8FE;} + .d2-801881618 .color-N1{color:#0A0F25;} + .d2-801881618 .color-N2{color:#676C7E;} + .d2-801881618 .color-N3{color:#9499AB;} + .d2-801881618 .color-N4{color:#CFD2DD;} + .d2-801881618 .color-N5{color:#DEE1EB;} + .d2-801881618 .color-N6{color:#EEF1F8;} + .d2-801881618 .color-N7{color:#FFFFFF;} + .d2-801881618 .color-B1{color:#0D32B2;} + .d2-801881618 .color-B2{color:#0D32B2;} + .d2-801881618 .color-B3{color:#E3E9FD;} + .d2-801881618 .color-B4{color:#E3E9FD;} + .d2-801881618 .color-B5{color:#EDF0FD;} + .d2-801881618 .color-B6{color:#F7F8FE;} + .d2-801881618 .color-AA2{color:#4A6FF3;} + .d2-801881618 .color-AA4{color:#EDF0FD;} + .d2-801881618 .color-AA5{color:#F7F8FE;} + .d2-801881618 .color-AB4{color:#EDF0FD;} + .d2-801881618 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>我 (wǒ) - Mandarin Chineseສະບາຍດີ (sabaai dii) - Laoជំរាបសួរ (jomreab suor) - Khmerสวัสดี (sà-wàt-dii) - Thaiສະບາຍດີ (sabaidee) - Laoဟယ်လို (helaou) - Burmesemari (まり) - Ainucào (草) - Zhuangкүнтізбе (kúntízbe) - Kazakhբարև (barev) - Armenianмонгол (mongol) - Mongolianmila (میلا) - Uyghurનમસ્તે (namaste) - Gujarati漢字 (kanji) - Japanese위 (wi) - Korean吾哥 (ngǔgāi) - Cantoneseမင်္ဂလာပါ (mingalaba) - Burmeseсайн уу (sain uu) - Mongolianਸਤਿ ਸ੍ਰੀ ਅਕਾਲ (sat sri akal) - Punjabi你吃了吗 (ní chī le ma) - Mandarin Chinese饭 (fan) - Zhuangمەن سىزنى ياخشى ئۈمىد ق + - + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/e2etests/txtar.txt b/e2etests/txtar.txt index 3c2f7f0282..3a95203ba5 100644 --- a/e2etests/txtar.txt +++ b/e2etests/txtar.txt @@ -402,3 +402,56 @@ customer -> item: true alice -> bob: What does it mean\nto be well-adjusted? bob -> alice: The ability to play bridge or\ngolf as if they were games. + +-- extended-ascii -- +1: |md + ÇéþüðæØÅßñò +| +2: |md + òØõùßÍÿåÆ +| +3: |md + çÆÐÞ©ßþúí +| +4: |md + ÉáøÿÑö +| +1 -> 2 -> 3 -> 4 -> 1 + +-- unicode -- +■: |md + ■ foo bar +| +□: |md + □ foo bar +| +●: |md + ● foo bar +| +○: |md + ○ foo bar +| +◆: |md + ◆ foo bar +| +◇: |md + ◇ foo bar +| +▲: |md + ▲ foo bar +| +△: |md + △ foo bar +| +▼: |md + ▼ foo bar +| +▽: |md + ▽ foo bar +| +※: |md + ※ foo bar +| +◎: |md + ◎ foo bar +| diff --git a/lib/textmeasure/textmeasure.go b/lib/textmeasure/textmeasure.go index 294987c057..81c8fa5ba1 100644 --- a/lib/textmeasure/textmeasure.go +++ b/lib/textmeasure/textmeasure.go @@ -6,7 +6,6 @@ package textmeasure import ( "math" "strings" - "unicode" "unicode/utf8" "github.com/golang/freetype/truetype" @@ -20,13 +19,23 @@ const TAB_SIZE = 4 const SIZELESS_FONT_SIZE = 0 const CODE_LINE_HEIGHT = 1.3 -// ASCII is a set of all ASCII runes. These runes are codepoints from 32 to 127 inclusive. -var ASCII []rune +// Runes encompasses ASCII, Latin-1, and geometric shapes like black square +var Runes []rune func init() { - ASCII = make([]rune, unicode.MaxASCII-32) - for i := range ASCII { - ASCII[i] = rune(32 + i) + // ASCII range (U+0000 to U+007F) + for r := rune(0x0000); r <= rune(0x007F); r++ { + Runes = append(Runes, r) + } + + // Latin-1 Supplement (U+0080 to U+00FF) + for r := rune(0x0080); r <= rune(0x00FF); r++ { + Runes = append(Runes, r) + } + + // Geometric Shapes (U+25A0 to U+25FF) + for r := rune(0x25A0); r <= rune(0x25FF); r++ { + Runes = append(Runes, r) } } @@ -167,7 +176,7 @@ func (r *Ruler) addFontSize(font d2fonts.Font) { face := truetype.NewFace(r.ttfs[sizeless], &truetype.Options{ Size: float64(font.Size), }) - atlas := NewAtlas(face, ASCII) + atlas := NewAtlas(face, Runes) r.atlases[font] = atlas r.lineHeights[font] = atlas.lineHeight r.tabWidths[font] = atlas.glyph(' ').advance * TAB_SIZE