100
100
REMEMBER:
101
101
Everything returned from a macro template is a string.
102
102
#}
103
+ {#- First a test to make sure input is valid #}
103
104
{% - if chkNAME (color_name ) | bool %}
104
105
{% - set R = _nameMap ['_rgb' ] | selectattr ('color' , 'eq' , color_name ) | map (attribute ='r' ) | first | default ([]) %}
105
106
{% - set G = _nameMap ['_rgb' ] | selectattr ('color' , 'eq' , color_name ) | map (attribute ='g' ) | first | default ([]) %}
106
107
{% - set B = _nameMap ['_rgb' ] | selectattr ('color' , 'eq' , color_name ) | map (attribute ='b' ) | first | default ([]) %}
107
108
{% - else %}
109
+ {#- Set defaults #}
108
110
{% - set R = 0 %}
109
111
{% - set G = 0 %}
110
112
{% - set B = 0 %}
132
134
REMEMBER:
133
135
Everything returned from a macro template is a string.
134
136
#}
137
+ {#- First a test to make sure input is valid #}
135
138
{% - if chkRGB (rgbl ) | default (false ) | bool %}
139
+ {#- Set defaults #}
136
140
{% - set out = ["black" ] | list %}
141
+ {#- Pull in the data #}
137
142
{% - set _rnge = _range | default (0) | round (0,0) %}
138
143
{% - set iR = rgbl [0] | default (0) | int (0) %}
139
144
{% - set iG = rgbl [1] | default (0) | int (0) %}
140
145
{% - set iB = rgbl [2] | default (0) | int (0) %}
146
+ {#- Define Ranges for each color #}
141
147
{% - set _Rl = rgbl [0] + _rnge %}
142
148
{% - set _Gl = rgbl [1] + _rnge %}
143
149
{% - set _Bl = rgbl [2] + _rnge %}
144
150
{% - set _Rg = rgbl [0] - _rnge %}
145
151
{% - set _Gg = rgbl [1] - _rnge %}
146
152
{% - set _Bg = rgbl [2] - _rnge %}
153
+ {#- Grab matching colors out of the list. #}
147
154
{% - set out = _nameMap ['_rgb' ] |
148
155
selectattr ('r' , 'ge' , _Rg ) |
149
156
selectattr ('r' , 'le' , _Rl ) |
154
161
map (attribute ='color' ) | list | default (['black' ]) %}
155
162
{{- out -}}
156
163
{% - else %}
157
- {#- Input was not valid #}
164
+ {#- Input was not valid #}
158
165
{{-['black'] | list -}}
159
166
{% - endif %}
160
167
{% endmacro %}
177
184
REMEMBER:
178
185
Everything returned from a macro template is a string.
179
186
#}
187
+ {#- First a test to make sure input is valid #}
180
188
{% - if chkRGB (rgbl ) | bool %}
189
+ {#- Set defaults #}
181
190
{% - set iR = rgbl [0] | int (0) %}
182
191
{% - set iG = rgbl [1] | int (0) %}
183
192
{% - set iB = rgbl [2] | int (0) %}
214
223
{% - set X = x | float (0) | round (3) %}
215
224
{% - set Y = y | float (0) | round (3) %}
216
225
{% - else %}
217
- {#- Color started as black #}
226
+ {#- Color started as black #}
218
227
{% - set X = 0.0 %}
219
228
{% - set Y = 0.0 %}
220
229
{% - endif %}
221
230
{% - else %}
222
- {#- Input was not valid #}
231
+ {#- Input was not valid #}
223
232
{% - set X = 0.0 %}
224
233
{% - set Y = 0.0 %}
225
234
{% - endif %}
244
253
REMEMBER:
245
254
Everything returned from a macro template is a string.
246
255
#}
247
- {#- First a test to make sure this is a list #}
256
+ {#- First a test to make sure input is valid #}
248
257
{% - if chkXY (xyl ) | bool %}
249
258
{% - set vX = xyl [0] | float (0) %}
250
259
{% - set vY = xyl [1] | float (0.00000000001) %}
289
298
{% - set G = (g * 255) | int (0) %}
290
299
{% - set B = (b * 255) | int (0) %}
291
300
{% - else %}
292
- {#- Input was not valid #}
301
+ {#- Input was not valid #}
293
302
{% - set R = 0 %}
294
303
{% - set G = 0 %}
295
304
{% - set B = 0 %}
315
324
REMEMBER:
316
325
Everything returned from a macro template is a string.
317
326
#}
318
- {#- First a test to make sure this is a list #}
327
+ {#- First a test to make sure input is valid #}
319
328
{% - if chkHS (hsl ) | bool %}
320
329
{% - set fH = (hsl [0] | float (0)) %}
321
330
{% - set fS = (hsl [1] | float (0)) / 100 %}
358
367
{% - set G = g | int (0) %}
359
368
{% - set B = b | int (0) %}
360
369
{% - else %}
361
- {#- Color started as white #}
370
+ {#- Color started as white #}
362
371
{% - set fV = (fB * 255) | int (0) %}
363
372
{% - set R = fV | int (0) %}
364
373
{% - set G = fV | int (0) %}
365
374
{% - set B = fV | int (0) %}
366
375
{% - endif %}
367
376
{% - else %}
368
- {#- Input was not valid #}
377
+ {#- Input was not valid #}
369
378
{% - set R = 0 %}
370
379
{% - set G = 0 %}
371
380
{% - set B = 0 %}
391
400
REMEMBER:
392
401
Everything returned from a macro template is a string.
393
402
#}
394
- {#- First tests to make sure this is a list #}
403
+ {#- First a test to make sure input is valid #}
395
404
{% - if chkRGB (rgbl ) | bool %}
396
405
{% - set r = rgbl [0] | int (0) %}
397
406
{% - set g = rgbl [1] | int (0) %}
398
407
{% - set b = rgbl [2] | int (0) %}
399
408
{% - if r + g + b != 0 %}
400
409
{% - set min = [r , g , b ] | min %}
401
410
{% - set max = [r , g , b ] | max %}
402
- {#- Set brightness to 100% #}
403
- {#- set _V = max (alternate) #}
411
+ {#- Set brightness to 100% #}
412
+ {#- set _V = max (alternate) #}
404
413
{% - set _V = 255 %}
405
- {#- Calculate S #}
414
+ {#- Calculate S #}
406
415
{% - set delta = max -min %}
407
416
{% - set _S = (delta / max ) * 100 %}
408
- {#- Calculate H #}
417
+ {#- Calculate H #}
409
418
{% - if r == max %}
410
- {#- between yellow & magenta #}
419
+ {#- between yellow & magenta #}
411
420
{% - set _H = ( g - b ) / delta %}
412
421
{% - elif g == max %}
413
- {#- between cyan & yellow #}
422
+ {#- between cyan & yellow #}
414
423
{% - set _H = 2 + ( b - r ) / delta %}
415
424
{% - else %}
416
- {#- between magenta & cyan #}
425
+ {#- between magenta & cyan #}
417
426
{% - set _H = 4 + ( r - g ) / delta %}
418
427
{% - endif %}
419
428
{% - set _H = _H * 60 %}
420
429
{% - if _H < 0 %}
421
430
{% - set _H = _H + 360 %}
422
431
{% - endif %}
423
- {#- Calculated output #}
432
+ {#- Calculate the output #}
424
433
{% - set H = _H | float (0) | round (3) %}
425
434
{% - set S = _S | float (0) | round (3) %}
426
435
{% - set V = _V | float (0) | round (3) %}
427
436
{% - else %}
428
- {#- Color started as black #}
437
+ {#- Color started as black #}
429
438
{% - set H = 0.0 %}
430
439
{% - set S = 0.0 %}
431
440
{% - set V = 0.0 %}
432
441
{% - endif %}
433
442
{% - else %}
434
- {#- Input was not valid #}
443
+ {#- Input was not valid #}
435
444
{% - set H = 0.0 %}
436
445
{% - set S = 0.0 %}
437
446
{% - set V = 0.0 %}
456
465
REMEMBER:
457
466
Everything returned from a macro template is a string.
458
467
#}
459
- {#- First a test to make sure this is a list #}
468
+ {#- First a test to make sure input is valid #}
460
469
{% - if chkHS (hsl ) | bool %}
461
470
{% - set _hs 2rgb = hs 2rgb (hsl ).split ("," ) | list %}
462
471
{% - set _hs 2rgb_list = [_hs 2rgb [0]|int (0),_hs 2rgb [1]|int (0),_hs 2rgb [2]|int (0)] | list %}
463
472
{% - set _rgb 2xy = rgb 2xy (_hs 2rgb_list ).split ("," ) | list %}
464
473
{% - set _rgb 2xy_list = [_rgb 2xy [0]|float (0)|round (3),_rgb 2xy [1]|float (0)|round (3)] | list %}
465
- {#- Calculated output #}
474
+ {#- Calculate the output #}
466
475
{% - set X = _rgb 2xy_list [0] | float (0.0) | round (3) %}
467
476
{% - set Y = _rgb 2xy_list [1] | float (0.0) | round (3) %}
468
477
{% - else %}
469
- {#- Input was not valid #}
478
+ {#- Input was not valid #}
470
479
{% - set X = 0.0 %}
471
480
{% - set Y = 0.0 %}
472
481
{% - endif %}
490
499
REMEMBER:
491
500
Everything returned from a macro template is a string.
492
501
#}
493
- {#- First a test to make sure this is a list #}
502
+ {#- First a test to make sure input is valid #}
494
503
{% - if chkXY (xyl ) | bool %}
495
504
{% - set _xy 2rgb = xy 2rgb (xyl ).split ("," ) | list %}
496
505
{% - set _xy 2rgb_list = [_xy 2rgb [0]|int (0),_xy 2rgb [1]|int (0),_xy 2rgb [2]|int (0)] | list %}
497
506
{% - set _rgb 2hs = rgb 2hs (_xy 2rgb_list ).split ("," ) | list %}
498
507
{% - set _rgb 2hs_list = [_rgb 2hs [0]|float (0)|round (3),_rgb 2hs [1]|float (0)|round (3)] | list %}
499
- {#- Calculated output #}
508
+ {#- Calculate the output #}
500
509
{% - set H = _rgb 2hs_list [0] | float (0.0) | round (3) %}
501
510
{% - set S = _rgb 2hs_list [1] | float (0.0) | round (3) %}
502
511
{% - else %}
503
- {#- Input was not valid #}
512
+ {#- Input was not valid #}
504
513
{% - set H = 0.0 %}
505
514
{% - set S = 0.0 %}
506
515
{% - endif %}
@@ -557,9 +566,9 @@ Development credit to @123 on the
557
566
certain of the result.
558
567
#}
559
568
{{- _xyl is list and
560
- _xyl | select('number') | list | count == 2 and
561
- _xyl | select('<', 0) | list | count == 0 and
562
- _xyl | select('>', 1) | list | count == 0 -}}
569
+ _xyl | select('number') | list | count == 2 and
570
+ _xyl | select('<', 0) | list | count == 0 and
571
+ _xyl | select('>', 1) | list | count == 0 -}}
563
572
{% - endmacro %}
564
573
565
574
{% macro chkHS (_hsl ) %}
@@ -584,10 +593,10 @@ Development credit to @123 on the
584
593
certain of the result.
585
594
#}
586
595
{{- _hsl is list and
587
- _hsl | select('number') | list | count == 2 and
588
- _hsl | select('<', 0) | list | count == 0 and
589
- _hsl[0] <= 100 and
590
- _hsl[1] <= 360 -}}
596
+ _hsl | select('number') | list | count == 2 and
597
+ _hsl | select('<', 0) | list | count == 0 and
598
+ _hsl[0] <= 100 and
599
+ _hsl[1] <= 360 -}}
591
600
{% - endmacro %}
592
601
593
602
{% macro chkNAME (color_name ) %}
@@ -610,11 +619,12 @@ If any is not true, return false.
610
619
#}
611
620
{% - if color_name is string_like and
612
621
color_name == color_name | regex_replace ('[^a-z]' , '' ) %}
622
+ {#- Is the name provided on the list? #}
613
623
{% - set ns = namespace (found = false ) %}
614
624
{% - for color_item in _nameMap ._rgb %}
615
- {% - if color_item .color == color_name %}
616
- {% - set ns .found = true %}
617
- {% - break %}{% - endif %}{% - endfor %}
625
+ {% - if color_item .color == color_name %}
626
+ {% - set ns .found = true - %}
627
+ {% - break %}{% - endif - %}{% - endfor - %}
618
628
{{- ns.found -}}
619
629
{% - else %}
620
630
{{- false -}}
0 commit comments