diff options
| author | Craig Jennings <c@cjennings.net> | 2026-07-25 15:00:56 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-07-25 15:00:56 -0500 |
| commit | 2c416f5361ed10cd73eb72eb5062261b2e73c18f (patch) | |
| tree | 5c84c09deb2c8392544020d432ffcd0fccde79f2 /docs/prototypes/gen_tokens.py | |
| parent | d52da959bc416e09bc0f3e54994563bd80e19c64 (diff) | |
| download | archsetup-2c416f5361ed10cd73eb72eb5062261b2e73c18f.tar.gz archsetup-2c416f5361ed10cd73eb72eb5062261b2e73c18f.zip | |
refactor(prototypes): merge casting widgets into Dupre kit
Diffstat (limited to 'docs/prototypes/gen_tokens.py')
| -rw-r--r-- | docs/prototypes/gen_tokens.py | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/docs/prototypes/gen_tokens.py b/docs/prototypes/gen_tokens.py index 9f011e9..7c80985 100644 --- a/docs/prototypes/gen_tokens.py +++ b/docs/prototypes/gen_tokens.py @@ -70,6 +70,12 @@ def resolve_color(tokens, key): raise KeyError(key) +def iter_section_items(tokens, sections): + """Yield (name, value) pairs from SECTIONS in their declared order.""" + for section in sections: + yield from tokens.get(section, {}).items() + + def _el_str(v): """Quote a value as an elisp string literal, escaping backslashes/quotes.""" return '"' + v.replace("\\", "\\\\").replace('"', '\\"') + '"' @@ -78,9 +84,8 @@ def _el_str(v): def emit_web_css(tokens): """The inner :root block: hyphenated --vars, glows as rgb triples.""" lines = [] - for section in COLOR_SECTIONS: - for k, v in tokens.get(section, {}).items(): - lines.append(f"--{k}:{v};") + for k, v in iter_section_items(tokens, COLOR_SECTIONS): + lines.append(f"--{k}:{v};") for name, source in tokens.get("glow", {}).items(): lines.append(f"--{name}:{hex_to_triple(resolve_color(tokens, source))};") for k, v in tokens.get("font", {}).items(): @@ -100,9 +105,8 @@ def emit_waybar_gtk(tokens): " GTK CSS has no custom properties; reference these as @name, and use", " alpha(@name, 0.5) where the web build uses rgba(var(--name),.5). */", ] - for section in COLOR_SECTIONS: - for k, v in tokens.get(section, {}).items(): - lines.append(f"@define-color {gtk(k)} {v};") + for k, v in iter_section_items(tokens, COLOR_SECTIONS): + lines.append(f"@define-color {gtk(k)} {v};") for name, source in tokens.get("glow", {}).items(): lines.append(f"@define-color {gtk(name)} {resolve_color(tokens, source)};") return "\n".join(lines) @@ -111,9 +115,8 @@ def emit_waybar_gtk(tokens): def emit_elisp(tokens): """An alist of (name . hex) plus timing, for the future svg.el renderer.""" pairs = [] - for section in COLOR_SECTIONS: - for k, v in tokens.get(section, {}).items(): - pairs.append(f"({k} . {_el_str(v)})") + for k, v in iter_section_items(tokens, COLOR_SECTIONS): + pairs.append(f"({k} . {_el_str(v)})") for name, source in tokens.get("glow", {}).items(): pairs.append(f"({name} . {_el_str(resolve_color(tokens, source))})") for k, v in tokens.get("font", {}).items(): |
