sevgi-showcase 0.94.0 → 0.98.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +275 -2
  3. data/LICENSE +672 -3
  4. data/README.md +9 -17
  5. data/lib/sevgi/showcase/dark.rb +4 -0
  6. data/lib/sevgi/showcase/minitest/script.rb +59 -57
  7. data/lib/sevgi/showcase/minitest/shell.rb +136 -113
  8. data/lib/sevgi/showcase/minitest/suite.rb +48 -46
  9. data/lib/sevgi/showcase/minitest.rb +6 -0
  10. data/lib/sevgi/showcase/version.rb +1 -1
  11. data/lib/sevgi/showcase.rb +1 -2
  12. data/srv/checkers.sevgi +79 -0
  13. data/srv/checkers.svg +117 -0
  14. data/srv/clover.sevgi +19 -0
  15. data/srv/clover.svg +11 -0
  16. data/srv/clover.yml +3 -0
  17. data/srv/copperplate.sevgi +50 -0
  18. data/srv/copperplate.svg +99 -0
  19. data/srv/copperplate.yml +5 -0
  20. data/srv/{gear-wheel.sevgi → gear.sevgi} +7 -9
  21. data/srv/gear.svg +11 -0
  22. data/srv/gear.yml +2 -0
  23. data/srv/{grid-cells.sevgi → grid.sevgi} +9 -9
  24. data/srv/{grid-cells.svg → grid.svg} +13 -1
  25. data/srv/heart.sevgi +17 -0
  26. data/srv/{heart-mask.svg → heart.svg} +3 -3
  27. data/srv/heart.yml +3 -0
  28. data/srv/logo.sevgi +39 -0
  29. data/srv/logo.svg +29 -0
  30. data/srv/logo.yml +4 -0
  31. data/srv/logos.sevgi +34 -0
  32. data/srv/logos.svg +38 -0
  33. data/srv/logos.yml +4 -0
  34. data/srv/{meter-face.sevgi → meter.sevgi} +6 -6
  35. data/srv/meter.svg +18 -0
  36. data/srv/pacman.sevgi +18 -0
  37. data/srv/pacman.svg +15 -0
  38. data/srv/pokey.sevgi +14 -0
  39. data/srv/pokey.svg +6 -0
  40. data/srv/{ruler-line.sevgi → ruler-.sevgi} +7 -7
  41. data/srv/ruler.sevgi +61 -0
  42. data/srv/ruler.svg +445 -0
  43. data/srv/{snow-flake.sevgi → snowflake.sevgi} +2 -2
  44. data/srv/{snow-flake.svg → snowflake.svg} +1 -1
  45. data/srv/snowflake.yml +2 -0
  46. data/srv/squared.sevgi +42 -0
  47. data/srv/squared.svg +71 -0
  48. data/srv/squared.yml +4 -0
  49. data/srv/stars.sevgi +19 -0
  50. data/srv/stars.svg +30 -0
  51. data/srv/stars.yml +3 -0
  52. data/srv/tulips.sevgi +27 -0
  53. data/srv/tulips.svg +19 -0
  54. data/srv/tulips.yml +3 -0
  55. metadata +57 -36
  56. data/srv/checker-board.sevgi +0 -96
  57. data/srv/checker-board.svg +0 -117
  58. data/srv/gear-wheel.svg +0 -12
  59. data/srv/gear-wheel.yml +0 -3
  60. data/srv/heart-mask.sevgi +0 -17
  61. data/srv/heart-mask.yml +0 -3
  62. data/srv/meter-face.svg +0 -13
  63. data/srv/pacman-pokey.sevgi +0 -17
  64. data/srv/pacman-pokey.svg +0 -9
  65. data/srv/pacman-single.sevgi +0 -17
  66. data/srv/pacman-single.svg +0 -14
  67. data/srv/ruler-hline.sevgi +0 -55
  68. data/srv/ruler-hline.svg +0 -443
  69. data/srv/snow-flake.yml +0 -1
  70. /data/srv/{checker-board.yml → checkers.yml} +0 -0
  71. /data/srv/{grid-cells.yml → grid.yml} +0 -0
  72. /data/srv/{meter-face.yml → meter.yml} +0 -0
  73. /data/srv/{pacman-pokey.yml → pacman.yml} +0 -0
  74. /data/srv/{pacman-single.yml → pokey.yml} +0 -0
  75. /data/srv/{ruler-line.svg → ruler-.svg} +0 -0
  76. /data/srv/{ruler-hline.yml → ruler-.yml} +0 -0
  77. /data/srv/{ruler-line.yml → ruler.yml} +0 -0
data/srv/ruler.svg ADDED
@@ -0,0 +1,445 @@
1
+ <?xml version="1.0" standalone="no"?>
2
+ <svg xmlns="http://www.w3.org/2000/svg" width="170mm" height="30mm" viewBox="0 0 170 30">
3
+ <style type="text/css">
4
+ <![CDATA[
5
+ .labels {
6
+ fill: black;
7
+ font: 3pt monospace;
8
+ }
9
+ .majors {
10
+ stroke: black;
11
+ stroke-width: 0.3;
12
+ }
13
+ .halves {
14
+ stroke: black;
15
+ stroke-width: 0.15;
16
+ }
17
+ .minors {
18
+ stroke: black;
19
+ stroke-width: 0.15;
20
+ }
21
+ .frame {
22
+ stroke: black;
23
+ stroke-width: 0.15;
24
+ fill: none;
25
+ }
26
+ ]]>
27
+ </style>
28
+ <g id="ruler" transform="translate(10 5)">
29
+ <rect id="frame" width="150" height="20" class="frame"/>
30
+ <g id="minors">
31
+ <path d="M 0 0 v 2" class="minors"/>
32
+ <path d="M 0 20 v -2" class="minors"/>
33
+ <path d="M 1 0 v 2" class="minors"/>
34
+ <path d="M 1 20 v -2" class="minors"/>
35
+ <path d="M 2 0 v 2" class="minors"/>
36
+ <path d="M 2 20 v -2" class="minors"/>
37
+ <path d="M 3 0 v 2" class="minors"/>
38
+ <path d="M 3 20 v -2" class="minors"/>
39
+ <path d="M 4 0 v 2" class="minors"/>
40
+ <path d="M 4 20 v -2" class="minors"/>
41
+ <path d="M 5 0 v 2" class="minors"/>
42
+ <path d="M 5 20 v -2" class="minors"/>
43
+ <path d="M 6 0 v 2" class="minors"/>
44
+ <path d="M 6 20 v -2" class="minors"/>
45
+ <path d="M 7 0 v 2" class="minors"/>
46
+ <path d="M 7 20 v -2" class="minors"/>
47
+ <path d="M 8 0 v 2" class="minors"/>
48
+ <path d="M 8 20 v -2" class="minors"/>
49
+ <path d="M 9 0 v 2" class="minors"/>
50
+ <path d="M 9 20 v -2" class="minors"/>
51
+ <path d="M 10 0 v 2" class="minors"/>
52
+ <path d="M 10 20 v -2" class="minors"/>
53
+ <path d="M 11 0 v 2" class="minors"/>
54
+ <path d="M 11 20 v -2" class="minors"/>
55
+ <path d="M 12 0 v 2" class="minors"/>
56
+ <path d="M 12 20 v -2" class="minors"/>
57
+ <path d="M 13 0 v 2" class="minors"/>
58
+ <path d="M 13 20 v -2" class="minors"/>
59
+ <path d="M 14 0 v 2" class="minors"/>
60
+ <path d="M 14 20 v -2" class="minors"/>
61
+ <path d="M 15 0 v 2" class="minors"/>
62
+ <path d="M 15 20 v -2" class="minors"/>
63
+ <path d="M 16 0 v 2" class="minors"/>
64
+ <path d="M 16 20 v -2" class="minors"/>
65
+ <path d="M 17 0 v 2" class="minors"/>
66
+ <path d="M 17 20 v -2" class="minors"/>
67
+ <path d="M 18 0 v 2" class="minors"/>
68
+ <path d="M 18 20 v -2" class="minors"/>
69
+ <path d="M 19 0 v 2" class="minors"/>
70
+ <path d="M 19 20 v -2" class="minors"/>
71
+ <path d="M 20 0 v 2" class="minors"/>
72
+ <path d="M 20 20 v -2" class="minors"/>
73
+ <path d="M 21 0 v 2" class="minors"/>
74
+ <path d="M 21 20 v -2" class="minors"/>
75
+ <path d="M 22 0 v 2" class="minors"/>
76
+ <path d="M 22 20 v -2" class="minors"/>
77
+ <path d="M 23 0 v 2" class="minors"/>
78
+ <path d="M 23 20 v -2" class="minors"/>
79
+ <path d="M 24 0 v 2" class="minors"/>
80
+ <path d="M 24 20 v -2" class="minors"/>
81
+ <path d="M 25 0 v 2" class="minors"/>
82
+ <path d="M 25 20 v -2" class="minors"/>
83
+ <path d="M 26 0 v 2" class="minors"/>
84
+ <path d="M 26 20 v -2" class="minors"/>
85
+ <path d="M 27 0 v 2" class="minors"/>
86
+ <path d="M 27 20 v -2" class="minors"/>
87
+ <path d="M 28 0 v 2" class="minors"/>
88
+ <path d="M 28 20 v -2" class="minors"/>
89
+ <path d="M 29 0 v 2" class="minors"/>
90
+ <path d="M 29 20 v -2" class="minors"/>
91
+ <path d="M 30 0 v 2" class="minors"/>
92
+ <path d="M 30 20 v -2" class="minors"/>
93
+ <path d="M 31 0 v 2" class="minors"/>
94
+ <path d="M 31 20 v -2" class="minors"/>
95
+ <path d="M 32 0 v 2" class="minors"/>
96
+ <path d="M 32 20 v -2" class="minors"/>
97
+ <path d="M 33 0 v 2" class="minors"/>
98
+ <path d="M 33 20 v -2" class="minors"/>
99
+ <path d="M 34 0 v 2" class="minors"/>
100
+ <path d="M 34 20 v -2" class="minors"/>
101
+ <path d="M 35 0 v 2" class="minors"/>
102
+ <path d="M 35 20 v -2" class="minors"/>
103
+ <path d="M 36 0 v 2" class="minors"/>
104
+ <path d="M 36 20 v -2" class="minors"/>
105
+ <path d="M 37 0 v 2" class="minors"/>
106
+ <path d="M 37 20 v -2" class="minors"/>
107
+ <path d="M 38 0 v 2" class="minors"/>
108
+ <path d="M 38 20 v -2" class="minors"/>
109
+ <path d="M 39 0 v 2" class="minors"/>
110
+ <path d="M 39 20 v -2" class="minors"/>
111
+ <path d="M 40 0 v 2" class="minors"/>
112
+ <path d="M 40 20 v -2" class="minors"/>
113
+ <path d="M 41 0 v 2" class="minors"/>
114
+ <path d="M 41 20 v -2" class="minors"/>
115
+ <path d="M 42 0 v 2" class="minors"/>
116
+ <path d="M 42 20 v -2" class="minors"/>
117
+ <path d="M 43 0 v 2" class="minors"/>
118
+ <path d="M 43 20 v -2" class="minors"/>
119
+ <path d="M 44 0 v 2" class="minors"/>
120
+ <path d="M 44 20 v -2" class="minors"/>
121
+ <path d="M 45 0 v 2" class="minors"/>
122
+ <path d="M 45 20 v -2" class="minors"/>
123
+ <path d="M 46 0 v 2" class="minors"/>
124
+ <path d="M 46 20 v -2" class="minors"/>
125
+ <path d="M 47 0 v 2" class="minors"/>
126
+ <path d="M 47 20 v -2" class="minors"/>
127
+ <path d="M 48 0 v 2" class="minors"/>
128
+ <path d="M 48 20 v -2" class="minors"/>
129
+ <path d="M 49 0 v 2" class="minors"/>
130
+ <path d="M 49 20 v -2" class="minors"/>
131
+ <path d="M 50 0 v 2" class="minors"/>
132
+ <path d="M 50 20 v -2" class="minors"/>
133
+ <path d="M 51 0 v 2" class="minors"/>
134
+ <path d="M 51 20 v -2" class="minors"/>
135
+ <path d="M 52 0 v 2" class="minors"/>
136
+ <path d="M 52 20 v -2" class="minors"/>
137
+ <path d="M 53 0 v 2" class="minors"/>
138
+ <path d="M 53 20 v -2" class="minors"/>
139
+ <path d="M 54 0 v 2" class="minors"/>
140
+ <path d="M 54 20 v -2" class="minors"/>
141
+ <path d="M 55 0 v 2" class="minors"/>
142
+ <path d="M 55 20 v -2" class="minors"/>
143
+ <path d="M 56 0 v 2" class="minors"/>
144
+ <path d="M 56 20 v -2" class="minors"/>
145
+ <path d="M 57 0 v 2" class="minors"/>
146
+ <path d="M 57 20 v -2" class="minors"/>
147
+ <path d="M 58 0 v 2" class="minors"/>
148
+ <path d="M 58 20 v -2" class="minors"/>
149
+ <path d="M 59 0 v 2" class="minors"/>
150
+ <path d="M 59 20 v -2" class="minors"/>
151
+ <path d="M 60 0 v 2" class="minors"/>
152
+ <path d="M 60 20 v -2" class="minors"/>
153
+ <path d="M 61 0 v 2" class="minors"/>
154
+ <path d="M 61 20 v -2" class="minors"/>
155
+ <path d="M 62 0 v 2" class="minors"/>
156
+ <path d="M 62 20 v -2" class="minors"/>
157
+ <path d="M 63 0 v 2" class="minors"/>
158
+ <path d="M 63 20 v -2" class="minors"/>
159
+ <path d="M 64 0 v 2" class="minors"/>
160
+ <path d="M 64 20 v -2" class="minors"/>
161
+ <path d="M 65 0 v 2" class="minors"/>
162
+ <path d="M 65 20 v -2" class="minors"/>
163
+ <path d="M 66 0 v 2" class="minors"/>
164
+ <path d="M 66 20 v -2" class="minors"/>
165
+ <path d="M 67 0 v 2" class="minors"/>
166
+ <path d="M 67 20 v -2" class="minors"/>
167
+ <path d="M 68 0 v 2" class="minors"/>
168
+ <path d="M 68 20 v -2" class="minors"/>
169
+ <path d="M 69 0 v 2" class="minors"/>
170
+ <path d="M 69 20 v -2" class="minors"/>
171
+ <path d="M 70 0 v 2" class="minors"/>
172
+ <path d="M 70 20 v -2" class="minors"/>
173
+ <path d="M 71 0 v 2" class="minors"/>
174
+ <path d="M 71 20 v -2" class="minors"/>
175
+ <path d="M 72 0 v 2" class="minors"/>
176
+ <path d="M 72 20 v -2" class="minors"/>
177
+ <path d="M 73 0 v 2" class="minors"/>
178
+ <path d="M 73 20 v -2" class="minors"/>
179
+ <path d="M 74 0 v 2" class="minors"/>
180
+ <path d="M 74 20 v -2" class="minors"/>
181
+ <path d="M 75 0 v 2" class="minors"/>
182
+ <path d="M 75 20 v -2" class="minors"/>
183
+ <path d="M 76 0 v 2" class="minors"/>
184
+ <path d="M 76 20 v -2" class="minors"/>
185
+ <path d="M 77 0 v 2" class="minors"/>
186
+ <path d="M 77 20 v -2" class="minors"/>
187
+ <path d="M 78 0 v 2" class="minors"/>
188
+ <path d="M 78 20 v -2" class="minors"/>
189
+ <path d="M 79 0 v 2" class="minors"/>
190
+ <path d="M 79 20 v -2" class="minors"/>
191
+ <path d="M 80 0 v 2" class="minors"/>
192
+ <path d="M 80 20 v -2" class="minors"/>
193
+ <path d="M 81 0 v 2" class="minors"/>
194
+ <path d="M 81 20 v -2" class="minors"/>
195
+ <path d="M 82 0 v 2" class="minors"/>
196
+ <path d="M 82 20 v -2" class="minors"/>
197
+ <path d="M 83 0 v 2" class="minors"/>
198
+ <path d="M 83 20 v -2" class="minors"/>
199
+ <path d="M 84 0 v 2" class="minors"/>
200
+ <path d="M 84 20 v -2" class="minors"/>
201
+ <path d="M 85 0 v 2" class="minors"/>
202
+ <path d="M 85 20 v -2" class="minors"/>
203
+ <path d="M 86 0 v 2" class="minors"/>
204
+ <path d="M 86 20 v -2" class="minors"/>
205
+ <path d="M 87 0 v 2" class="minors"/>
206
+ <path d="M 87 20 v -2" class="minors"/>
207
+ <path d="M 88 0 v 2" class="minors"/>
208
+ <path d="M 88 20 v -2" class="minors"/>
209
+ <path d="M 89 0 v 2" class="minors"/>
210
+ <path d="M 89 20 v -2" class="minors"/>
211
+ <path d="M 90 0 v 2" class="minors"/>
212
+ <path d="M 90 20 v -2" class="minors"/>
213
+ <path d="M 91 0 v 2" class="minors"/>
214
+ <path d="M 91 20 v -2" class="minors"/>
215
+ <path d="M 92 0 v 2" class="minors"/>
216
+ <path d="M 92 20 v -2" class="minors"/>
217
+ <path d="M 93 0 v 2" class="minors"/>
218
+ <path d="M 93 20 v -2" class="minors"/>
219
+ <path d="M 94 0 v 2" class="minors"/>
220
+ <path d="M 94 20 v -2" class="minors"/>
221
+ <path d="M 95 0 v 2" class="minors"/>
222
+ <path d="M 95 20 v -2" class="minors"/>
223
+ <path d="M 96 0 v 2" class="minors"/>
224
+ <path d="M 96 20 v -2" class="minors"/>
225
+ <path d="M 97 0 v 2" class="minors"/>
226
+ <path d="M 97 20 v -2" class="minors"/>
227
+ <path d="M 98 0 v 2" class="minors"/>
228
+ <path d="M 98 20 v -2" class="minors"/>
229
+ <path d="M 99 0 v 2" class="minors"/>
230
+ <path d="M 99 20 v -2" class="minors"/>
231
+ <path d="M 100 0 v 2" class="minors"/>
232
+ <path d="M 100 20 v -2" class="minors"/>
233
+ <path d="M 101 0 v 2" class="minors"/>
234
+ <path d="M 101 20 v -2" class="minors"/>
235
+ <path d="M 102 0 v 2" class="minors"/>
236
+ <path d="M 102 20 v -2" class="minors"/>
237
+ <path d="M 103 0 v 2" class="minors"/>
238
+ <path d="M 103 20 v -2" class="minors"/>
239
+ <path d="M 104 0 v 2" class="minors"/>
240
+ <path d="M 104 20 v -2" class="minors"/>
241
+ <path d="M 105 0 v 2" class="minors"/>
242
+ <path d="M 105 20 v -2" class="minors"/>
243
+ <path d="M 106 0 v 2" class="minors"/>
244
+ <path d="M 106 20 v -2" class="minors"/>
245
+ <path d="M 107 0 v 2" class="minors"/>
246
+ <path d="M 107 20 v -2" class="minors"/>
247
+ <path d="M 108 0 v 2" class="minors"/>
248
+ <path d="M 108 20 v -2" class="minors"/>
249
+ <path d="M 109 0 v 2" class="minors"/>
250
+ <path d="M 109 20 v -2" class="minors"/>
251
+ <path d="M 110 0 v 2" class="minors"/>
252
+ <path d="M 110 20 v -2" class="minors"/>
253
+ <path d="M 111 0 v 2" class="minors"/>
254
+ <path d="M 111 20 v -2" class="minors"/>
255
+ <path d="M 112 0 v 2" class="minors"/>
256
+ <path d="M 112 20 v -2" class="minors"/>
257
+ <path d="M 113 0 v 2" class="minors"/>
258
+ <path d="M 113 20 v -2" class="minors"/>
259
+ <path d="M 114 0 v 2" class="minors"/>
260
+ <path d="M 114 20 v -2" class="minors"/>
261
+ <path d="M 115 0 v 2" class="minors"/>
262
+ <path d="M 115 20 v -2" class="minors"/>
263
+ <path d="M 116 0 v 2" class="minors"/>
264
+ <path d="M 116 20 v -2" class="minors"/>
265
+ <path d="M 117 0 v 2" class="minors"/>
266
+ <path d="M 117 20 v -2" class="minors"/>
267
+ <path d="M 118 0 v 2" class="minors"/>
268
+ <path d="M 118 20 v -2" class="minors"/>
269
+ <path d="M 119 0 v 2" class="minors"/>
270
+ <path d="M 119 20 v -2" class="minors"/>
271
+ <path d="M 120 0 v 2" class="minors"/>
272
+ <path d="M 120 20 v -2" class="minors"/>
273
+ <path d="M 121 0 v 2" class="minors"/>
274
+ <path d="M 121 20 v -2" class="minors"/>
275
+ <path d="M 122 0 v 2" class="minors"/>
276
+ <path d="M 122 20 v -2" class="minors"/>
277
+ <path d="M 123 0 v 2" class="minors"/>
278
+ <path d="M 123 20 v -2" class="minors"/>
279
+ <path d="M 124 0 v 2" class="minors"/>
280
+ <path d="M 124 20 v -2" class="minors"/>
281
+ <path d="M 125 0 v 2" class="minors"/>
282
+ <path d="M 125 20 v -2" class="minors"/>
283
+ <path d="M 126 0 v 2" class="minors"/>
284
+ <path d="M 126 20 v -2" class="minors"/>
285
+ <path d="M 127 0 v 2" class="minors"/>
286
+ <path d="M 127 20 v -2" class="minors"/>
287
+ <path d="M 128 0 v 2" class="minors"/>
288
+ <path d="M 128 20 v -2" class="minors"/>
289
+ <path d="M 129 0 v 2" class="minors"/>
290
+ <path d="M 129 20 v -2" class="minors"/>
291
+ <path d="M 130 0 v 2" class="minors"/>
292
+ <path d="M 130 20 v -2" class="minors"/>
293
+ <path d="M 131 0 v 2" class="minors"/>
294
+ <path d="M 131 20 v -2" class="minors"/>
295
+ <path d="M 132 0 v 2" class="minors"/>
296
+ <path d="M 132 20 v -2" class="minors"/>
297
+ <path d="M 133 0 v 2" class="minors"/>
298
+ <path d="M 133 20 v -2" class="minors"/>
299
+ <path d="M 134 0 v 2" class="minors"/>
300
+ <path d="M 134 20 v -2" class="minors"/>
301
+ <path d="M 135 0 v 2" class="minors"/>
302
+ <path d="M 135 20 v -2" class="minors"/>
303
+ <path d="M 136 0 v 2" class="minors"/>
304
+ <path d="M 136 20 v -2" class="minors"/>
305
+ <path d="M 137 0 v 2" class="minors"/>
306
+ <path d="M 137 20 v -2" class="minors"/>
307
+ <path d="M 138 0 v 2" class="minors"/>
308
+ <path d="M 138 20 v -2" class="minors"/>
309
+ <path d="M 139 0 v 2" class="minors"/>
310
+ <path d="M 139 20 v -2" class="minors"/>
311
+ <path d="M 140 0 v 2" class="minors"/>
312
+ <path d="M 140 20 v -2" class="minors"/>
313
+ <path d="M 141 0 v 2" class="minors"/>
314
+ <path d="M 141 20 v -2" class="minors"/>
315
+ <path d="M 142 0 v 2" class="minors"/>
316
+ <path d="M 142 20 v -2" class="minors"/>
317
+ <path d="M 143 0 v 2" class="minors"/>
318
+ <path d="M 143 20 v -2" class="minors"/>
319
+ <path d="M 144 0 v 2" class="minors"/>
320
+ <path d="M 144 20 v -2" class="minors"/>
321
+ <path d="M 145 0 v 2" class="minors"/>
322
+ <path d="M 145 20 v -2" class="minors"/>
323
+ <path d="M 146 0 v 2" class="minors"/>
324
+ <path d="M 146 20 v -2" class="minors"/>
325
+ <path d="M 147 0 v 2" class="minors"/>
326
+ <path d="M 147 20 v -2" class="minors"/>
327
+ <path d="M 148 0 v 2" class="minors"/>
328
+ <path d="M 148 20 v -2" class="minors"/>
329
+ <path d="M 149 0 v 2" class="minors"/>
330
+ <path d="M 149 20 v -2" class="minors"/>
331
+ <path d="M 150 0 v 2" class="minors"/>
332
+ <path d="M 150 20 v -2" class="minors"/>
333
+ </g>
334
+ <g id="halves">
335
+ <path d="M 0 0 v 4" class="halves"/>
336
+ <path d="M 0 20 v -4" class="halves"/>
337
+ <path d="M 5 0 v 4" class="halves"/>
338
+ <path d="M 5 20 v -4" class="halves"/>
339
+ <path d="M 10 0 v 4" class="halves"/>
340
+ <path d="M 10 20 v -4" class="halves"/>
341
+ <path d="M 15 0 v 4" class="halves"/>
342
+ <path d="M 15 20 v -4" class="halves"/>
343
+ <path d="M 20 0 v 4" class="halves"/>
344
+ <path d="M 20 20 v -4" class="halves"/>
345
+ <path d="M 25 0 v 4" class="halves"/>
346
+ <path d="M 25 20 v -4" class="halves"/>
347
+ <path d="M 30 0 v 4" class="halves"/>
348
+ <path d="M 30 20 v -4" class="halves"/>
349
+ <path d="M 35 0 v 4" class="halves"/>
350
+ <path d="M 35 20 v -4" class="halves"/>
351
+ <path d="M 40 0 v 4" class="halves"/>
352
+ <path d="M 40 20 v -4" class="halves"/>
353
+ <path d="M 45 0 v 4" class="halves"/>
354
+ <path d="M 45 20 v -4" class="halves"/>
355
+ <path d="M 50 0 v 4" class="halves"/>
356
+ <path d="M 50 20 v -4" class="halves"/>
357
+ <path d="M 55 0 v 4" class="halves"/>
358
+ <path d="M 55 20 v -4" class="halves"/>
359
+ <path d="M 60 0 v 4" class="halves"/>
360
+ <path d="M 60 20 v -4" class="halves"/>
361
+ <path d="M 65 0 v 4" class="halves"/>
362
+ <path d="M 65 20 v -4" class="halves"/>
363
+ <path d="M 70 0 v 4" class="halves"/>
364
+ <path d="M 70 20 v -4" class="halves"/>
365
+ <path d="M 75 0 v 4" class="halves"/>
366
+ <path d="M 75 20 v -4" class="halves"/>
367
+ <path d="M 80 0 v 4" class="halves"/>
368
+ <path d="M 80 20 v -4" class="halves"/>
369
+ <path d="M 85 0 v 4" class="halves"/>
370
+ <path d="M 85 20 v -4" class="halves"/>
371
+ <path d="M 90 0 v 4" class="halves"/>
372
+ <path d="M 90 20 v -4" class="halves"/>
373
+ <path d="M 95 0 v 4" class="halves"/>
374
+ <path d="M 95 20 v -4" class="halves"/>
375
+ <path d="M 100 0 v 4" class="halves"/>
376
+ <path d="M 100 20 v -4" class="halves"/>
377
+ <path d="M 105 0 v 4" class="halves"/>
378
+ <path d="M 105 20 v -4" class="halves"/>
379
+ <path d="M 110 0 v 4" class="halves"/>
380
+ <path d="M 110 20 v -4" class="halves"/>
381
+ <path d="M 115 0 v 4" class="halves"/>
382
+ <path d="M 115 20 v -4" class="halves"/>
383
+ <path d="M 120 0 v 4" class="halves"/>
384
+ <path d="M 120 20 v -4" class="halves"/>
385
+ <path d="M 125 0 v 4" class="halves"/>
386
+ <path d="M 125 20 v -4" class="halves"/>
387
+ <path d="M 130 0 v 4" class="halves"/>
388
+ <path d="M 130 20 v -4" class="halves"/>
389
+ <path d="M 135 0 v 4" class="halves"/>
390
+ <path d="M 135 20 v -4" class="halves"/>
391
+ <path d="M 140 0 v 4" class="halves"/>
392
+ <path d="M 140 20 v -4" class="halves"/>
393
+ <path d="M 145 0 v 4" class="halves"/>
394
+ <path d="M 145 20 v -4" class="halves"/>
395
+ <path d="M 150 0 v 4" class="halves"/>
396
+ <path d="M 150 20 v -4" class="halves"/>
397
+ </g>
398
+ <g id="majors">
399
+ <path d="M 10 0 v 6" class="majors"/>
400
+ <path d="M 10 20 v -6" class="majors"/>
401
+ <path d="M 20 0 v 6" class="majors"/>
402
+ <path d="M 20 20 v -6" class="majors"/>
403
+ <path d="M 30 0 v 6" class="majors"/>
404
+ <path d="M 30 20 v -6" class="majors"/>
405
+ <path d="M 40 0 v 6" class="majors"/>
406
+ <path d="M 40 20 v -6" class="majors"/>
407
+ <path d="M 50 0 v 6" class="majors"/>
408
+ <path d="M 50 20 v -6" class="majors"/>
409
+ <path d="M 60 0 v 6" class="majors"/>
410
+ <path d="M 60 20 v -6" class="majors"/>
411
+ <path d="M 70 0 v 6" class="majors"/>
412
+ <path d="M 70 20 v -6" class="majors"/>
413
+ <path d="M 80 0 v 6" class="majors"/>
414
+ <path d="M 80 20 v -6" class="majors"/>
415
+ <path d="M 90 0 v 6" class="majors"/>
416
+ <path d="M 90 20 v -6" class="majors"/>
417
+ <path d="M 100 0 v 6" class="majors"/>
418
+ <path d="M 100 20 v -6" class="majors"/>
419
+ <path d="M 110 0 v 6" class="majors"/>
420
+ <path d="M 110 20 v -6" class="majors"/>
421
+ <path d="M 120 0 v 6" class="majors"/>
422
+ <path d="M 120 20 v -6" class="majors"/>
423
+ <path d="M 130 0 v 6" class="majors"/>
424
+ <path d="M 130 20 v -6" class="majors"/>
425
+ <path d="M 140 0 v 6" class="majors"/>
426
+ <path d="M 140 20 v -6" class="majors"/>
427
+ <g id="labels">
428
+ <text text-anchor="middle" x="10" y="11.5" class="labels">1</text>
429
+ <text text-anchor="middle" x="20" y="11.5" class="labels">2</text>
430
+ <text text-anchor="middle" x="30" y="11.5" class="labels">3</text>
431
+ <text text-anchor="middle" x="40" y="11.5" class="labels">4</text>
432
+ <text text-anchor="middle" x="50" y="11.5" class="labels">5</text>
433
+ <text text-anchor="middle" x="60" y="11.5" class="labels">6</text>
434
+ <text text-anchor="middle" x="70" y="11.5" class="labels">7</text>
435
+ <text text-anchor="middle" x="80" y="11.5" class="labels">8</text>
436
+ <text text-anchor="middle" x="90" y="11.5" class="labels">9</text>
437
+ <text text-anchor="middle" x="100" y="11.5" class="labels">10</text>
438
+ <text text-anchor="middle" x="110" y="11.5" class="labels">11</text>
439
+ <text text-anchor="middle" x="120" y="11.5" class="labels">12</text>
440
+ <text text-anchor="middle" x="130" y="11.5" class="labels">13</text>
441
+ <text text-anchor="middle" x="140" y="11.5" class="labels">14</text>
442
+ </g>
443
+ </g>
444
+ </g>
445
+ </svg>
@@ -3,7 +3,7 @@
3
3
  # Example taken from: https://svg-tutorial.com/svg/use
4
4
 
5
5
  SVG :minimal, width: 200, height: 200, viewBox: "-100 -100 200 200" do
6
- path id: "branch", stroke: "#e5c39c", "stroke-width": 5, d: <<~PATH
6
+ path id: "branch", stroke: "purple", "stroke-width": 5, d: <<~PATH
7
7
  M 0 0 L 0 -90
8
8
  M 0 -20 L 20 -34
9
9
  M 0 -20 L -20 -34
@@ -13,5 +13,5 @@ SVG :minimal, width: 200, height: 200, viewBox: "-100 -100 200 200" do
13
13
  M 0 -60 L -20 -74
14
14
  PATH
15
15
 
16
- 60.step(300, 60) { use(href: "#branch").Rotate(it) }
16
+ 60.step(300, 60) { use(href: "#branch").Rotate it }
17
17
  end.Save
@@ -1,7 +1,7 @@
1
1
  <svg width="200" height="200" viewBox="-100 -100 200 200">
2
2
  <path
3
3
  id="branch"
4
- stroke="#e5c39c"
4
+ stroke="purple"
5
5
  stroke-width="5"
6
6
  d="M 0 0 L 0 -90
7
7
  M 0 -20 L 20 -34
data/srv/snowflake.yml ADDED
@@ -0,0 +1,2 @@
1
+ dark:
2
+ purple: "#e5c39c"
data/srv/squared.sevgi ADDED
@@ -0,0 +1,42 @@
1
+ #!/usr/bin/env -S ruby -S sevgi
2
+ # frozen_string_literal: true
3
+
4
+ COLS = 15
5
+ MULTIPLE = 5
6
+ ROWS = 10
7
+ UNIT = 6
8
+
9
+ canvas = SVG.Canvas width: COLS * UNIT, height: ROWS * UNIT
10
+ grid = Grid canvas, unit: UNIT, multiple: MULTIPLE
11
+
12
+ module Guidesheet
13
+ extend SVG::Module
14
+
15
+ FRAME = 0.6
16
+
17
+ STYLE = {
18
+ ".frame" => { fill: "none", stroke: "blue", "stroke-width": FRAME },
19
+ ".major" => { fill: "none", stroke: "blue", "stroke-width": 0.4 },
20
+ ".minor" => { fill: "none", stroke: "magenta", "stroke-width": 0.12 }
21
+ }.freeze
22
+
23
+ base { css STYLE }
24
+
25
+ def call(grid)
26
+ layer id: "Squares" do
27
+ Draw grid.x.minor.lines, class: %w[rule minor horizontal]
28
+ Draw grid.y.minor.lines, class: %w[rule minor vertical]
29
+ Draw grid.x.major.lines, class: %w[rule major horizontal]
30
+ Draw grid.y.major.lines, class: %w[rule major vertical]
31
+ end
32
+
33
+ rect x: FRAME / 2, y: FRAME / 2,
34
+ width: grid.width - FRAME, height: grid.height - FRAME,
35
+ class: %w[frame rule]
36
+ end
37
+ end
38
+
39
+ SVG :inkscape, canvas, "shape-rendering": "geometricPrecision" do
40
+ rect width: "100%", height: "100%", fill: "white"
41
+ Layer! Guidesheet, grid, attributes: { id: "Guides" }
42
+ end.Save
data/srv/squared.svg ADDED
@@ -0,0 +1,71 @@
1
+ <?xml version="1.0" standalone="no"?>
2
+ <svg
3
+ xmlns="http://www.w3.org/2000/svg"
4
+ xmlns:_="http://sevgi.roktas.dev"
5
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
6
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
7
+ shape-rendering="geometricPrecision"
8
+ width="90.0mm"
9
+ height="60.0mm"
10
+ viewBox="0 0 90 60"
11
+ >
12
+ <rect width="100%" height="100%" fill="white"/>
13
+ <g id="Guides" inkscape:groupmode="layer" sodipodi:insensitive="true">
14
+ <style type="text/css">
15
+ <![CDATA[
16
+ .frame {
17
+ fill: none;
18
+ stroke: blue;
19
+ stroke-width: 0.6;
20
+ }
21
+ .major {
22
+ fill: none;
23
+ stroke: blue;
24
+ stroke-width: 0.4;
25
+ }
26
+ .minor {
27
+ fill: none;
28
+ stroke: magenta;
29
+ stroke-width: 0.12;
30
+ }
31
+ ]]>
32
+ </style>
33
+ <g id="Squares" inkscape:groupmode="layer">
34
+ <path d="M 0 0 L 90 0" class="rule minor horizontal"/>
35
+ <path d="M 0 6 L 90 6" class="rule minor horizontal"/>
36
+ <path d="M 0 12 L 90 12" class="rule minor horizontal"/>
37
+ <path d="M 0 18 L 90 18" class="rule minor horizontal"/>
38
+ <path d="M 0 24 L 90 24" class="rule minor horizontal"/>
39
+ <path d="M 0 30 L 90 30" class="rule minor horizontal"/>
40
+ <path d="M 0 36 L 90 36" class="rule minor horizontal"/>
41
+ <path d="M 0 42 L 90 42" class="rule minor horizontal"/>
42
+ <path d="M 0 48 L 90 48" class="rule minor horizontal"/>
43
+ <path d="M 0 54 L 90 54" class="rule minor horizontal"/>
44
+ <path d="M 0 60 L 90 60" class="rule minor horizontal"/>
45
+ <path d="M 0 0 L 0 60" class="rule minor vertical"/>
46
+ <path d="M 6 0 L 6 60" class="rule minor vertical"/>
47
+ <path d="M 12 0 L 12 60" class="rule minor vertical"/>
48
+ <path d="M 18 0 L 18 60" class="rule minor vertical"/>
49
+ <path d="M 24 0 L 24 60" class="rule minor vertical"/>
50
+ <path d="M 30 0 L 30 60" class="rule minor vertical"/>
51
+ <path d="M 36 0 L 36 60" class="rule minor vertical"/>
52
+ <path d="M 42 0 L 42 60" class="rule minor vertical"/>
53
+ <path d="M 48 0 L 48 60" class="rule minor vertical"/>
54
+ <path d="M 54 0 L 54 60" class="rule minor vertical"/>
55
+ <path d="M 60 0 L 60 60" class="rule minor vertical"/>
56
+ <path d="M 66 0 L 66 60" class="rule minor vertical"/>
57
+ <path d="M 72 0 L 72 60" class="rule minor vertical"/>
58
+ <path d="M 78 0 L 78 60" class="rule minor vertical"/>
59
+ <path d="M 84 0 L 84 60" class="rule minor vertical"/>
60
+ <path d="M 90 0 L 90 60" class="rule minor vertical"/>
61
+ <path d="M 0 0 L 90 0" class="rule major horizontal"/>
62
+ <path d="M 0 30 L 90 30" class="rule major horizontal"/>
63
+ <path d="M 0 60 L 90 60" class="rule major horizontal"/>
64
+ <path d="M 0 0 L 0 60" class="rule major vertical"/>
65
+ <path d="M 30 0 L 30 60" class="rule major vertical"/>
66
+ <path d="M 60 0 L 60 60" class="rule major vertical"/>
67
+ <path d="M 90 0 L 90 60" class="rule major vertical"/>
68
+ </g>
69
+ <rect x="0.3" y="0.3" width="89.4" height="59.4" class="frame rule"/>
70
+ </g>
71
+ </svg>
data/srv/squared.yml ADDED
@@ -0,0 +1,4 @@
1
+ dark:
2
+ blue: "#60a5fa"
3
+ magenta: "#f472b6"
4
+ white: "#222222"
data/srv/stars.sevgi ADDED
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env -S ruby -S sevgi
2
+ # frozen_string_literal: true
3
+
4
+ STAR = <<~PATH
5
+ m 7.06716,10 v -2.930223 h 2.932843 l -2.073449,-2.073131 2.073449,-2.068098
6
+ h -2.932843 v -2.928548 l -2.07848,2.074807 -2.067578,-2.074807 v 2.928547
7
+ h -2.921102 l 2.060869,2.068098 -2.060869,2.073131 h 2.921102 v 2.930223
8
+ l 2.067578,-2.066419 2.07848,2.066419
9
+ PATH
10
+
11
+ MARGIN = 4
12
+ SIZE = 48
13
+
14
+ SVG :minimal, width: SIZE, height: SIZE do
15
+ rect width: SIZE, height: SIZE, rx: 1, fill: "white"
16
+
17
+ Symbol("Star") { path d: STAR, fill: "purple" }
18
+ Tile "star", nx: 4, dx: 10, ox: MARGIN, ny: 4, dy: 10, oy: MARGIN
19
+ end.Save
data/srv/stars.svg ADDED
@@ -0,0 +1,30 @@
1
+ <svg width="48" height="48">
2
+ <rect width="48" height="48" rx="1" fill="white"/>
3
+ <symbol id="star">
4
+ <title>Star</title>
5
+ <path
6
+ d="m 7.06716,10 v -2.930223 h 2.932843 l -2.073449,-2.073131 2.073449,-2.068098
7
+ h -2.932843 v -2.928548 l -2.07848,2.074807 -2.067578,-2.074807 v 2.928547
8
+ h -2.921102 l 2.060869,2.068098 -2.060869,2.073131 h 2.921102 v 2.930223
9
+ l 2.067578,-2.066419 2.07848,2.066419
10
+ "
11
+ fill="purple"
12
+ />
13
+ </symbol>
14
+ <use id="star-1-1" href="#star" class="tile-row-1 tile-row-first tile-col-1 tile-col-first" x="4" y="4"/>
15
+ <use id="star-1-2" href="#star" class="tile-row-1 tile-row-first tile-col-2" x="14" y="4"/>
16
+ <use id="star-1-3" href="#star" class="tile-row-1 tile-row-first tile-col-3" x="24" y="4"/>
17
+ <use id="star-1-4" href="#star" class="tile-row-1 tile-row-first tile-col-4 tile-col-last" x="34" y="4"/>
18
+ <use id="star-2-1" href="#star" class="tile-row-2 tile-col-1 tile-col-first" x="4" y="14"/>
19
+ <use id="star-2-2" href="#star" class="tile-row-2 tile-col-2" x="14" y="14"/>
20
+ <use id="star-2-3" href="#star" class="tile-row-2 tile-col-3" x="24" y="14"/>
21
+ <use id="star-2-4" href="#star" class="tile-row-2 tile-col-4 tile-col-last" x="34" y="14"/>
22
+ <use id="star-3-1" href="#star" class="tile-row-3 tile-col-1 tile-col-first" x="4" y="24"/>
23
+ <use id="star-3-2" href="#star" class="tile-row-3 tile-col-2" x="14" y="24"/>
24
+ <use id="star-3-3" href="#star" class="tile-row-3 tile-col-3" x="24" y="24"/>
25
+ <use id="star-3-4" href="#star" class="tile-row-3 tile-col-4 tile-col-last" x="34" y="24"/>
26
+ <use id="star-4-1" href="#star" class="tile-row-4 tile-row-last tile-col-1 tile-col-first" x="4" y="34"/>
27
+ <use id="star-4-2" href="#star" class="tile-row-4 tile-row-last tile-col-2" x="14" y="34"/>
28
+ <use id="star-4-3" href="#star" class="tile-row-4 tile-row-last tile-col-3" x="24" y="34"/>
29
+ <use id="star-4-4" href="#star" class="tile-row-4 tile-row-last tile-col-4 tile-col-last" x="34" y="34"/>
30
+ </svg>