summaryrefslogtreecommitdiffstats
path: root/packages
diff options
context:
space:
mode:
Diffstat (limited to 'packages')
-rw-r--r--packages/cli/Cargo.toml20
-rw-r--r--packages/cli/screenshots/ascii_art.svg11983
-rw-r--r--packages/cli/screenshots/comic.svg85
-rw-r--r--packages/cli/screenshots/image.svg6655
-rw-r--r--packages/cli/screenshots/memes.svg1498
-rw-r--r--packages/cli/screenshots/memes2.svg2181
-rw-r--r--packages/cli/screenshots/memes3.svg4288
-rw-r--r--packages/cli/src/main.rs251
-rw-r--r--packages/svgbob/Behavior.md39
-rw-r--r--packages/svgbob/Cargo.toml30
-rw-r--r--packages/svgbob/concepts.md11
-rw-r--r--packages/svgbob/examples/circles.rs12
-rw-r--r--packages/svgbob/examples/circuits.rs12
-rw-r--r--packages/svgbob/examples/demo.rs12
-rw-r--r--packages/svgbob/examples/example.rs12
-rw-r--r--packages/svgbob/examples/long.rs12
-rw-r--r--packages/svgbob/examples/merge.rs12
-rw-r--r--packages/svgbob/examples/simple.rs12
-rwxr-xr-xpackages/svgbob/run_circles.sh1
-rwxr-xr-xpackages/svgbob/run_demo.sh1
-rwxr-xr-xpackages/svgbob/run_example.sh1
-rwxr-xr-xpackages/svgbob/run_long.sh1
-rwxr-xr-xpackages/svgbob/run_merge.sh1
-rwxr-xr-xpackages/svgbob/run_simple.sh1
-rw-r--r--packages/svgbob/rustfmt.toml19
-rw-r--r--packages/svgbob/spec.md184
-rw-r--r--packages/svgbob/src/buffer.rs10
-rw-r--r--packages/svgbob/src/buffer/cell_buffer.rs803
-rw-r--r--packages/svgbob/src/buffer/cell_buffer/cell.rs498
-rw-r--r--packages/svgbob/src/buffer/cell_buffer/cell/cell_grid.rs214
-rw-r--r--packages/svgbob/src/buffer/cell_buffer/contacts.rs77
-rw-r--r--packages/svgbob/src/buffer/cell_buffer/endorse.rs222
-rw-r--r--packages/svgbob/src/buffer/cell_buffer/settings.rs53
-rw-r--r--packages/svgbob/src/buffer/cell_buffer/span.rs328
-rw-r--r--packages/svgbob/src/buffer/cell_buffer/span/test_span.rs374
-rw-r--r--packages/svgbob/src/buffer/fragment_buffer.rs154
-rw-r--r--packages/svgbob/src/buffer/fragment_buffer/direction.rs77
-rw-r--r--packages/svgbob/src/buffer/fragment_buffer/fragment.rs951
-rw-r--r--packages/svgbob/src/buffer/fragment_buffer/fragment/arc.rs275
-rw-r--r--packages/svgbob/src/buffer/fragment_buffer/fragment/circle.rs161
-rw-r--r--packages/svgbob/src/buffer/fragment_buffer/fragment/line.rs730
-rw-r--r--packages/svgbob/src/buffer/fragment_buffer/fragment/marker_line.rs182
-rw-r--r--packages/svgbob/src/buffer/fragment_buffer/fragment/polygon.rs254
-rw-r--r--packages/svgbob/src/buffer/fragment_buffer/fragment/rect.rs198
-rw-r--r--packages/svgbob/src/buffer/fragment_buffer/fragment/text.rs317
-rw-r--r--packages/svgbob/src/buffer/fragment_buffer/fragment_tree.rs273
-rw-r--r--packages/svgbob/src/buffer/property_buffer.rs371
-rw-r--r--packages/svgbob/src/buffer/property_buffer/property.rs316
-rw-r--r--packages/svgbob/src/buffer/string_buffer.rs116
-rw-r--r--packages/svgbob/src/lib.rs61
-rw-r--r--packages/svgbob/src/map.rs10
-rw-r--r--packages/svgbob/src/map/ascii_map.rs1105
-rw-r--r--packages/svgbob/src/map/circle_map.rs624
-rw-r--r--packages/svgbob/src/map/circle_map/test_circle_map.rs167
-rw-r--r--packages/svgbob/src/map/unicode_map.rs371
-rw-r--r--packages/svgbob/src/options.rs18
-rw-r--r--packages/svgbob/src/point.rs178
-rw-r--r--packages/svgbob/src/util.rs501
-rwxr-xr-xpackages/svgbob/test.sh1
-rw-r--r--packages/svgbob/test_data/circles.bob633
-rw-r--r--packages/svgbob/test_data/circuits.bob102
-rw-r--r--packages/svgbob/test_data/demo.bob967
-rw-r--r--packages/svgbob/test_data/example.bob477
-rw-r--r--packages/svgbob/test_data/long.bob2017
-rw-r--r--packages/svgbob/test_data/merge.bob161
-rw-r--r--packages/svgbob/test_data/simple.bob110
-rw-r--r--packages/svgbob/tests/simple_shapes.rs66
-rw-r--r--packages/svgbob/tests/styling.rs30
68 files changed, 41887 insertions, 0 deletions
diff --git a/packages/cli/Cargo.toml b/packages/cli/Cargo.toml
new file mode 100644
index 0000000..6d3ae53
--- /dev/null
+++ b/packages/cli/Cargo.toml
@@ -0,0 +1,20 @@
+
+[package]
+name = "svgbob_cli"
+version = "0.6.2"
+authors = ["Jovansonlee Cesar <ivanceras@gmail.com>"]
+description = "Transform your ascii diagrams into happy little SVG"
+repository = "https://github.com/ivanceras/svgbob"
+documentation = "https://docs.rs/svgbob"
+keywords = ["ascii", "svg", "convert", "bob"]
+license = "Apache-2.0"
+
+[dependencies]
+svgbob = { path = "../svgbob", version = "0.6" }
+clap = "2.16"
+
+
+[[bin]]
+name = "svgbob"
+path = "src/main.rs"
+
diff --git a/packages/cli/screenshots/ascii_art.svg b/packages/cli/screenshots/ascii_art.svg
new file mode 100644
index 0000000..a531a52
--- /dev/null
+++ b/packages/cli/screenshots/ascii_art.svg
@@ -0,0 +1,11983 @@
+<svg font-family="arial" font-size="14" height="4304" width="1880" xmlns="http://www.w3.org/2000/svg">
+<defs>
+<marker id="triangle" markerHeight="10" markerUnits="strokeWidth" markerWidth="10" orient="auto" refX="0" refY="5" viewBox="0 0 40 40">
+<path d="M 0 0 L 10 5 L 0 10 z"/>
+</marker>
+</defs>
+<style>
+
+ line, path {
+ stroke: black;
+ stroke-width: 2;
+ stroke-opacity: 1;
+ fill-opacity: 1;
+ stroke-linecap: round;
+ stroke-linejoin: miter;
+ }
+ circle {
+ stroke: black;
+ stroke-width: 2;
+ stroke-opacity: 1;
+ fill-opacity: 1;
+ stroke-linecap: round;
+ stroke-linejoin: miter;
+ fill:white;
+ }
+ tspan.head{
+ fill: none;
+ stroke: none;
+ }
+
+</style>
+<text x="178" y="12">
+,
+</text>
+<line x1="184" x2="192" y1="8" y2="8"/>
+<path d="M 196 12 A 4 4 0 0 0 192 8" fill="none"/>
+<line x1="196" x2="196" y1="12" y2="16"/>
+<text x="178" y="28">
+`
+</text>
+<line x1="184" x2="192" y1="24" y2="24"/>
+<path d="M 192 24 A 4 4 0 0 0 196 20" fill="none"/>
+<line x1="196" x2="196" y1="16" y2="20"/>
+<line x1="176" x2="184" y1="48" y2="32"/>
+<line x1="188" x2="188" y1="32" y2="48"/>
+<line x1="192" x2="200" y1="32" y2="48"/>
+<line x1="44" x2="44" y1="60" y2="64"/>
+<path d="M 48 56 A 4 4 0 0 0 44 60" fill="none"/>
+<line x1="48" x2="56" y1="56" y2="56"/>
+<line x1="56" x2="64" y1="56" y2="56"/>
+<line x1="64" x2="72" y1="56" y2="56"/>
+<line x1="76" x2="76" y1="60" y2="64"/>
+<path d="M 76 60 A 4 4 0 0 0 72 56" fill="none"/>
+<line x1="184" x2="188" y1="64" y2="56"/>
+<line x1="188" x2="192" y1="56" y2="64"/>
+<line x1="188" x2="188" y1="48" y2="56"/>
+<line x1="44" x2="44" y1="64" y2="80"/>
+<text x="50" y="76">
+B
+</text>
+<text x="58" y="76">
+o
+</text>
+<text x="66" y="76">
+b
+</text>
+<line x1="76" x2="76" y1="64" y2="80"/>
+<line x1="176" x2="184" y1="80" y2="64"/>
+<line x1="192" x2="200" y1="64" y2="80"/>
+<line x1="44" x2="44" y1="80" y2="84"/>
+<path d="M 44 84 A 4 4 0 0 0 48 88" fill="none"/>
+<line x1="48" x2="56" y1="88" y2="88"/>
+<line x1="60" x2="60" y1="88" y2="96"/>
+<line x1="56" x2="64" y1="88" y2="88"/>
+<line x1="64" x2="72" y1="88" y2="88"/>
+<line x1="76" x2="76" y1="80" y2="84"/>
+<path d="M 72 88 A 4 4 0 0 0 76 84" fill="none"/>
+<text x="170" y="92">
+A
+</text>
+<text x="178" y="92">
+l
+</text>
+<text x="186" y="92">
+i
+</text>
+<text x="194" y="92">
+c
+</text>
+<text x="202" y="92">
+e
+</text>
+<line x1="60" x2="60" y1="96" y2="112"/>
+<text x="98" y="108">
+h
+</text>
+<text x="106" y="108">
+e
+</text>
+<text x="114" y="108">
+l
+</text>
+<text x="122" y="108">
+l
+</text>
+<text x="130" y="108">
+o
+</text>
+<line x1="188" x2="188" y1="96" y2="112"/>
+<line x1="60" x2="60" y1="112" y2="128"/>
+<line x1="72" x2="60" y1="120" y2="120"/>
+<line x1="72" x2="80" y1="120" y2="120"/>
+<line x1="80" x2="88" y1="120" y2="120"/>
+<line x1="88" x2="96" y1="120" y2="120"/>
+<line x1="96" x2="104" y1="120" y2="120"/>
+<line x1="104" x2="112" y1="120" y2="120"/>
+<line x1="112" x2="120" y1="120" y2="120"/>
+<line x1="120" x2="128" y1="120" y2="120"/>
+<line x1="128" x2="136" y1="120" y2="120"/>
+<line x1="136" x2="144" y1="120" y2="120"/>
+<line x1="144" x2="152" y1="120" y2="120"/>
+<line x1="152" x2="160" y1="120" y2="120"/>
+<line x1="160" x2="168" y1="120" y2="120"/>
+<line x1="168" x2="176" y1="120" y2="120"/>
+<line marker-end="url(#triangle)" x1="176" x2="180" y1="120" y2="120"/>
+<line x1="188" x2="188" y1="112" y2="128"/>
+<line x1="60" x2="60" y1="128" y2="144"/>
+<line x1="188" x2="188" y1="128" y2="144"/>
+<line x1="60" x2="60" y1="144" y2="160"/>
+<text x="82" y="156">
+I
+</text>
+<text x="90" y="156">
+s
+</text>
+<text x="98" y="156">
+
+</text>
+<text x="106" y="156">
+i
+</text>
+<text x="114" y="156">
+t
+</text>
+<text x="122" y="156">
+
+</text>
+<text x="130" y="156">
+o
+</text>
+<text x="138" y="156">
+k
+</text>
+<text x="146" y="156">
+?
+</text>
+<line x1="188" x2="188" y1="144" y2="160"/>
+<line x1="60" x2="60" y1="160" y2="176"/>
+<line marker-end="url(#triangle)" x1="72" x2="68" y1="168" y2="168"/>
+<line x1="72" x2="80" y1="168" y2="168"/>
+<line x1="88" x2="96" y1="168" y2="168"/>
+<line x1="104" x2="112" y1="168" y2="168"/>
+<line x1="120" x2="128" y1="168" y2="168"/>
+<line x1="136" x2="144" y1="168" y2="168"/>
+<line x1="152" x2="160" y1="168" y2="168"/>
+<line x1="168" x2="176" y1="168" y2="168"/>
+<line x1="188" x2="188" y1="160" y2="176"/>
+<line x1="44" x2="44" y1="188" y2="192"/>
+<path d="M 48 184 A 4 4 0 0 0 44 188" fill="none"/>
+<line x1="48" x2="56" y1="184" y2="184"/>
+<line x1="60" x2="60" y1="184" y2="176"/>
+<line x1="56" x2="64" y1="184" y2="184"/>
+<line x1="64" x2="72" y1="184" y2="184"/>
+<line x1="76" x2="76" y1="188" y2="192"/>
+<path d="M 76 188 A 4 4 0 0 0 72 184" fill="none"/>
+<text x="170" y="188">
+A
+</text>
+<text x="178" y="188">
+l
+</text>
+<text x="186" y="188">
+i
+</text>
+<text x="194" y="188">
+c
+</text>
+<text x="202" y="188">
+e
+</text>
+<line x1="44" x2="44" y1="192" y2="208"/>
+<text x="50" y="204">
+B
+</text>
+<text x="58" y="204">
+o
+</text>
+<text x="66" y="204">
+b
+</text>
+<line x1="76" x2="76" y1="192" y2="208"/>
+<text x="178" y="204">
+,
+</text>
+<line x1="184" x2="192" y1="200" y2="200"/>
+<path d="M 196 204 A 4 4 0 0 0 192 200" fill="none"/>
+<line x1="196" x2="196" y1="204" y2="208"/>
+<line x1="44" x2="44" y1="208" y2="212"/>
+<path d="M 44 212 A 4 4 0 0 0 48 216" fill="none"/>
+<line x1="48" x2="56" y1="216" y2="216"/>
+<line x1="56" x2="64" y1="216" y2="216"/>
+<line x1="64" x2="72" y1="216" y2="216"/>
+<line x1="76" x2="76" y1="208" y2="212"/>
+<path d="M 72 216 A 4 4 0 0 0 76 212" fill="none"/>
+<text x="178" y="220">
+`
+</text>
+<line x1="184" x2="192" y1="216" y2="216"/>
+<path d="M 192 216 A 4 4 0 0 0 196 212" fill="none"/>
+<line x1="196" x2="196" y1="208" y2="212"/>
+<line x1="176" x2="184" y1="240" y2="224"/>
+<line x1="188" x2="188" y1="224" y2="240"/>
+<line x1="192" x2="200" y1="224" y2="240"/>
+<line x1="184" x2="188" y1="256" y2="248"/>
+<line x1="188" x2="192" y1="248" y2="256"/>
+<line x1="188" x2="188" y1="240" y2="248"/>
+<line x1="176" x2="184" y1="272" y2="256"/>
+<line x1="192" x2="200" y1="256" y2="272"/>
+<text x="2" y="300">
+`
+</text>
+<text x="10" y="300">
+`
+</text>
+<text x="18" y="300">
+`
+</text>
+<text x="2" y="332">
+U
+</text>
+<text x="10" y="332">
+n
+</text>
+<text x="18" y="332">
+i
+</text>
+<text x="26" y="332">
+c
+</text>
+<text x="34" y="332">
+o
+</text>
+<text x="42" y="332">
+d
+</text>
+<text x="50" y="332">
+e
+</text>
+<text x="2" y="348">
+T
+</text>
+<text x="10" y="348">
+h
+</text>
+<text x="18" y="348">
+e
+</text>
+<text x="26" y="348">
+
+</text>
+<text x="34" y="348">
+d
+</text>
+<text x="42" y="348">
+e
+</text>
+<text x="50" y="348">
+f
+</text>
+<text x="58" y="348">
+a
+</text>
+<text x="66" y="348">
+u
+</text>
+<text x="74" y="348">
+l
+</text>
+<text x="82" y="348">
+t
+</text>
+<text x="90" y="348">
+
+</text>
+<text x="98" y="348">
+t
+</text>
+<text x="106" y="348">
+x
+</text>
+<text x="114" y="348">
+t
+</text>
+<text x="122" y="348">
+
+</text>
+<text x="130" y="348">
+f
+</text>
+<text x="138" y="348">
+o
+</text>
+<text x="146" y="348">
+r
+</text>
+<text x="154" y="348">
+m
+</text>
+<text x="162" y="348">
+a
+</text>
+<text x="170" y="348">
+t
+</text>
+<text x="178" y="348">
+
+</text>
+<text x="186" y="348">
+u
+</text>
+<text x="194" y="348">
+s
+</text>
+<text x="202" y="348">
+e
+</text>
+<text x="210" y="348">
+s
+</text>
+<text x="218" y="348">
+
+</text>
+<text x="226" y="348">
+o
+</text>
+<text x="234" y="348">
+n
+</text>
+<text x="242" y="348">
+l
+</text>
+<text x="250" y="348">
+y
+</text>
+<text x="258" y="348">
+
+</text>
+<text x="266" y="348">
+p
+</text>
+<text x="274" y="348">
+l
+</text>
+<text x="282" y="348">
+a
+</text>
+<text x="290" y="348">
+i
+</text>
+<text x="298" y="348">
+n
+</text>
+<text x="306" y="348">
+
+</text>
+<text x="314" y="348">
+A
+</text>
+<text x="322" y="348">
+S
+</text>
+<text x="330" y="348">
+C
+</text>
+<text x="338" y="348">
+I
+</text>
+<text x="346" y="348">
+I
+</text>
+<text x="354" y="348">
+
+</text>
+<text x="362" y="348">
+c
+</text>
+<text x="370" y="348">
+h
+</text>
+<text x="378" y="348">
+a
+</text>
+<text x="386" y="348">
+r
+</text>
+<text x="394" y="348">
+a
+</text>
+<text x="402" y="348">
+c
+</text>
+<text x="410" y="348">
+t
+</text>
+<text x="418" y="348">
+e
+</text>
+<text x="426" y="348">
+r
+</text>
+<text x="434" y="348">
+s
+</text>
+<text x="442" y="348">
+.
+</text>
+<text x="458" y="348">
+I
+</text>
+<text x="466" y="348">
+t
+</text>
+<text x="474" y="348">
+
+</text>
+<text x="482" y="348">
+i
+</text>
+<text x="490" y="348">
+s
+</text>
+<text x="498" y="348">
+
+</text>
+<text x="506" y="348">
+p
+</text>
+<text x="514" y="348">
+o
+</text>
+<text x="522" y="348">
+s
+</text>
+<text x="530" y="348">
+s
+</text>
+<text x="538" y="348">
+i
+</text>
+<text x="546" y="348">
+b
+</text>
+<text x="554" y="348">
+l
+</text>
+<text x="562" y="348">
+e
+</text>
+<text x="570" y="348">
+
+</text>
+<text x="578" y="348">
+t
+</text>
+<text x="586" y="348">
+o
+</text>
+<text x="594" y="348">
+
+</text>
+<text x="602" y="348">
+u
+</text>
+<text x="610" y="348">
+s
+</text>
+<text x="618" y="348">
+e
+</text>
+<text x="626" y="348">
+
+</text>
+<text x="634" y="348">
+f
+</text>
+<text x="642" y="348">
+e
+</text>
+<text x="650" y="348">
+w
+</text>
+<text x="658" y="348">
+
+</text>
+<text x="666" y="348">
+e
+</text>
+<text x="674" y="348">
+x
+</text>
+<text x="682" y="348">
+t
+</text>
+<text x="690" y="348">
+e
+</text>
+<text x="698" y="348">
+n
+</text>
+<text x="706" y="348">
+d
+</text>
+<text x="714" y="348">
+e
+</text>
+<text x="722" y="348">
+d
+</text>
+<text x="730" y="348">
+
+</text>
+<text x="738" y="348">
+U
+</text>
+<text x="746" y="348">
+n
+</text>
+<text x="754" y="348">
+i
+</text>
+<text x="762" y="348">
+c
+</text>
+<text x="770" y="348">
+o
+</text>
+<text x="778" y="348">
+d
+</text>
+<text x="786" y="348">
+e
+</text>
+<text x="794" y="348">
+
+</text>
+<text x="802" y="348">
+c
+</text>
+<text x="810" y="348">
+h
+</text>
+<text x="818" y="348">
+a
+</text>
+<text x="826" y="348">
+r
+</text>
+<text x="834" y="348">
+a
+</text>
+<text x="842" y="348">
+c
+</text>
+<text x="850" y="348">
+t
+</text>
+<text x="858" y="348">
+e
+</text>
+<text x="866" y="348">
+r
+</text>
+<text x="874" y="348">
+s
+</text>
+<text x="882" y="348">
+
+</text>
+<text x="890" y="348">
+t
+</text>
+<text x="898" y="348">
+o
+</text>
+<text x="906" y="348">
+
+</text>
+<text x="914" y="348">
+h
+</text>
+<text x="922" y="348">
+a
+</text>
+<text x="930" y="348">
+v
+</text>
+<text x="938" y="348">
+e
+</text>
+<text x="946" y="348">
+
+</text>
+<text x="954" y="348">
+a
+</text>
+<text x="962" y="348">
+
+</text>
+<text x="970" y="348">
+s
+</text>
+<text x="978" y="348">
+l
+</text>
+<text x="986" y="348">
+i
+</text>
+<text x="994" y="348">
+g
+</text>
+<text x="1002" y="348">
+h
+</text>
+<text x="1010" y="348">
+t
+</text>
+<text x="1018" y="348">
+l
+</text>
+<text x="1026" y="348">
+y
+</text>
+<text x="1034" y="348">
+
+</text>
+<text x="1042" y="348">
+b
+</text>
+<text x="1050" y="348">
+e
+</text>
+<text x="1058" y="348">
+t
+</text>
+<text x="1066" y="348">
+t
+</text>
+<text x="1074" y="348">
+e
+</text>
+<text x="1082" y="348">
+r
+</text>
+<text x="1090" y="348">
+
+</text>
+<text x="1098" y="348">
+r
+</text>
+<text x="1106" y="348">
+e
+</text>
+<text x="1114" y="348">
+s
+</text>
+<text x="1122" y="348"