{#- chirp-ui: ASCII Sparkline Inline data visualization using Unicode block characters. Usage: from "chirpui/ascii_sparkline.html" import ascii_sparkline ascii_sparkline(values=[1, 3, 5, 7, 4, 2, 6]) ascii_sparkline(values=[2, 8, 4, 6], variant="accent") ascii_sparkline(values=[1, 2, 3, 4, 5, 6, 7, 8], variant="gradient") Values are normalized to 1-8 range automatically. -#} {% set BARS = ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"] %} {% def ascii_sparkline(values=[], variant="", cls="") %} {% set variant = variant | validate_variant(("", "default", "accent", "muted", "gradient"), "") %} {% set variant_class = " chirpui-ascii-sparkline--" ~ variant if variant else "" %} {% set vmin = values | min if values else 0 %} {% set vmax = values | max if values else 1 %} {% set vrange = vmax - vmin if vmax != vmin else 1 %} {%- for v in values -%} {%- set idx = (((v - vmin) / vrange) * 7) | int -%} {{ BARS[idx] }} {%- end -%} {% end %}