diff options
Diffstat (limited to 'scripts/theme-studio/samples.py')
| -rw-r--r-- | scripts/theme-studio/samples.py | 67 |
1 files changed, 65 insertions, 2 deletions
diff --git a/scripts/theme-studio/samples.py b/scripts/theme-studio/samples.py index e487cc5e..c80b0d40 100644 --- a/scripts/theme-studio/samples.py +++ b/scripts/theme-studio/samples.py @@ -226,7 +226,69 @@ SHS=[ [('fnc','main'),('p',' '),('str','"$@"')], ] -cols="".join(f'<div class="col"><h2>{n}</h2><pre>{render(s)}</pre></div>' for n,s in [("Elisp",ELS),("Go",GOS),("Python",PYS),("TypeScript",TSS),("Java",JAS),("C",CS),("C++",CPS),("Shell",SHS)]) +RUSTS=[ + [('cmd','//'),('cm',' theme.rs')], + [('dec','#![allow(dead_code)]')], + [('kw','use'),('p',' '),('var','std'),('op','::'),('var','fmt'),('punc',';')], + [], + [('dec','#[derive'),('punc','('),('dec','Debug'),('punc',','),('p',' '),('dec','Clone'),('punc',')]')], + [('kw','pub'),('p',' '),('kw','trait'),('p',' '),('ty','Theme'),('op','<'),('var',"'a"),('op','>'),('p',' '),('punc','{')], + [('p',' '),('kw','const'),('p',' '),('con','NAME'),('op',':'),('p',' '),('op','&'),('var',"'static"),('p',' '),('ty','str'),('punc',';')], + [('p',' '),('kw','fn'),('p',' '),('fnd','resolve'),('punc','('),('op','&'),('var',"'a"),('p',' '),('var','self'),('punc',','),('p',' '),('var','key'),('op',':'),('p',' '),('op','&'),('var',"'a"),('p',' '),('ty','str'),('punc',')'),('p',' '),('op','->'),('p',' '),('ty','Option'),('op','<'),('op','&'),('var',"'a"),('p',' '),('ty','str'),('op','>'),('punc',';')], + [('punc','}')], + [], + [('kw','pub'),('p',' '),('kw','struct'),('p',' '),('ty','Palette'),('op','<'),('var',"'a"),('op','>'),('p',' '),('punc','{')], + [('p',' '),('kw','pub'),('p',' '),('prop','name'),('op',':'),('p',' '),('op','&'),('var',"'a"),('p',' '),('ty','str'),('punc',',')], + [('p',' '),('kw','pub'),('p',' '),('prop','colors'),('op',':'),('p',' '),('ty','Vec'),('op','<'),('punc','('),('op','&'),('var',"'a"),('p',' '),('ty','str'),('punc',','),('p',' '),('op','&'),('var',"'a"),('p',' '),('ty','str'),('punc',')'),('op','>'),('punc',',')], + [('punc','}')], + [], + [('kw','impl'),('op','<'),('var',"'a"),('op','>'),('p',' '),('ty','Theme'),('op','<'),('var',"'a"),('op','>'),('p',' '),('kw','for'),('p',' '),('ty','Palette'),('op','<'),('var',"'a"),('op','>'),('p',' '),('punc','{')], + [('p',' '),('kw','const'),('p',' '),('con','NAME'),('op',':'),('p',' '),('op','&'),('var',"'static"),('p',' '),('ty','str'),('p',' '),('op','='),('p',' '),('str','"dupre"'),('punc',';')], + [('p',' '),('kw','fn'),('p',' '),('fnd','resolve'),('punc','('),('op','&'),('var',"'a"),('p',' '),('var','self'),('punc',','),('p',' '),('var','key'),('op',':'),('p',' '),('op','&'),('var',"'a"),('p',' '),('ty','str'),('punc',')'),('p',' '),('op','->'),('p',' '),('ty','Option'),('op','<'),('op','&'),('var',"'a"),('p',' '),('ty','str'),('op','>'),('p',' '),('punc','{')], + [('p',' '),('kw','if'),('p',' '),('var','key'),('op','.'),('fnc','is_empty'),('punc','()'),('p',' '),('punc','{'),('p',' '),('kw','return'),('p',' '),('con','None'),('punc',';'),('p',' '),('punc','}')], + [('p',' '),('var','self'),('op','.'),('prop','colors'),('op','.'),('fnc','iter'),('punc','()'),('op','.'),('fnc','find'),('punc','('),('op','|'),('punc','('),('var','k'),('punc',','),('p',' '),('var','_'),('punc',')'),('op','|'),('p',' '),('op','*'),('var','k'),('p',' '),('op','=='),('p',' '),('var','key'),('punc',')'),('op','.'),('fnc','map'),('punc','('),('op','|'),('punc','('),('var','_'),('punc',','),('p',' '),('var','v'),('punc',')'),('op','|'),('p',' '),('op','*'),('var','v'),('punc',')')], + [('p',' '),('punc','}')], + [('punc','}')], + [], + [('kw','fn'),('p',' '),('fnd','main'),('punc','()'),('p',' '),('punc','{')], + [('p',' '),('kw','let'),('p',' '),('var','palette'),('p',' '),('op','='),('p',' '),('ty','Palette'),('p',' '),('punc','{'),('p',' '),('prop','name'),('op',':'),('p',' '),('str','"dupre"'),('punc',','),('p',' '),('prop','colors'),('op',':'),('p',' '),('bi','vec!'),('punc','['),('punc','('),('str','"bg"'),('punc',','),('p',' '),('str','"#0d0b0a"'),('punc',')'),('punc',']'),('p',' '),('punc','}'),('punc',';')], + [('p',' '),('bi','println!'),('punc','('),('str','"{:?}"'),('punc',','),('p',' '),('var','palette'),('op','.'),('fnc','resolve'),('punc','('),('str','"bg"'),('punc','))'),('punc',';')], + [('punc','}')], +] + +ZIGS=[ + [('cmd','//'),('cm',' theme.zig')], + [('kw','const'),('p',' '),('var','std'),('p',' '),('op','='),('p',' '),('bi','@import'),('punc','('),('str','"std"'),('punc',')'),('punc',';')], + [('kw','const'),('p',' '),('ty','Allocator'),('p',' '),('op','='),('p',' '),('var','std'),('op','.'),('var','mem'),('op','.'),('ty','Allocator'),('punc',';')], + [], + [('kw','pub'),('p',' '),('kw','const'),('p',' '),('ty','Theme'),('p',' '),('op','='),('p',' '),('kw','struct'),('p',' '),('punc','{')], + [('p',' '),('prop','name'),('op',':'),('p',' '),('punc','['),('punc',']'),('kw','const'),('p',' '),('ty','u8'),('punc',',')], + [('p',' '),('prop','colors'),('op',':'),('p',' '),('punc','['),('punc',']'),('kw','const'),('p',' '),('ty','Color'),('punc',',')], + [], + [('p',' '),('kw','pub'),('p',' '),('kw','fn'),('p',' '),('fnd','init'),('punc','('),('var','alloc'),('op',':'),('p',' '),('op','*'),('ty','Allocator'),('punc',')'),('p',' '),('op','!'),('bi','@This'),('punc','()'),('p',' '),('punc','{')], + [('p',' '),('kw','const'),('p',' '),('var','colors'),('p',' '),('op','='),('p',' '),('kw','try'),('p',' '),('var','alloc'),('op','.'),('fnc','alloc'),('punc','('),('ty','Color'),('punc',','),('p',' '),('num','2'),('punc',')'),('punc',';')], + [('p',' '),('var','colors'),('punc','['),('num','0'),('punc',']'),('p',' '),('op','='),('p',' '),('ty','Color'),('punc','{'),('p',' '),('prop','.name'),('p',' '),('op','='),('p',' '),('str','"bg"'),('punc',','),('p',' '),('prop','.hex'),('p',' '),('op','='),('p',' '),('str','"#0d0b0a"'),('p',' '),('punc','}'),('punc',';')], + [('p',' '),('kw','return'),('p',' '),('bi','@This'),('punc','()'),('punc','{'),('p',' '),('prop','.name'),('p',' '),('op','='),('p',' '),('str','"dupre"'),('punc',','),('p',' '),('prop','.colors'),('p',' '),('op','='),('p',' '),('var','colors'),('p',' '),('punc','}'),('punc',';')], + [('p',' '),('punc','}')], + [('punc','}'),('punc',';')], + [], + [('kw','const'),('p',' '),('ty','Color'),('p',' '),('op','='),('p',' '),('kw','struct'),('p',' '),('punc','{'),('p',' '),('prop','name'),('op',':'),('p',' '),('punc','['),('punc',']'),('kw','const'),('p',' '),('ty','u8'),('punc',','),('p',' '),('prop','hex'),('op',':'),('p',' '),('punc','['),('punc',']'),('kw','const'),('p',' '),('ty','u8'),('p',' '),('punc','}'),('punc',';')], + [], + [('kw','fn'),('p',' '),('fnd','resolve'),('punc','('),('var','theme'),('op',':'),('p',' '),('ty','Theme'),('punc',','),('p',' '),('kw','comptime'),('p',' '),('var','key'),('op',':'),('p',' '),('punc','['),('punc',':'),('num','0'),('punc',']'),('kw','const'),('p',' '),('ty','u8'),('punc',')'),('p',' '),('op','!'),('punc','['),('punc',']'),('kw','const'),('p',' '),('ty','u8'),('p',' '),('punc','{')], + [('p',' '),('kw','inline'),('p',' '),('kw','for'),('p',' '),('punc','('),('var','theme'),('op','.'),('prop','colors'),('punc',')'),('p',' '),('op','|'),('var','color'),('op','|'),('p',' '),('punc','{')], + [('p',' '),('kw','if'),('p',' '),('punc','('),('var','std'),('op','.'),('var','mem'),('op','.'),('fnc','eql'),('punc','('),('ty','u8'),('punc',','),('p',' '),('var','color'),('op','.'),('prop','name'),('punc',','),('p',' '),('var','key'),('punc',')'),('punc',')'),('p',' '),('kw','return'),('p',' '),('var','color'),('op','.'),('prop','hex'),('punc',';')], + [('p',' '),('punc','}')], + [('p',' '),('kw','return'),('p',' '),('con','error.MissingColor'),('punc',';')], + [('punc','}')], + [], + [('kw','test'),('p',' '),('str','"resolve bg"'),('p',' '),('punc','{')], + [('p',' '),('kw','var'),('p',' '),('var','arena'),('p',' '),('op','='),('p',' '),('var','std'),('op','.'),('var','heap'),('op','.'),('ty','ArenaAllocator'),('op','.'),('fnc','init'),('punc','('),('var','std'),('op','.'),('var','testing'),('op','.'),('prop','allocator'),('punc',')'),('punc',';')], + [('p',' '),('kw','defer'),('p',' '),('var','arena'),('op','.'),('fnc','deinit'),('punc','()'),('punc',';')], + [('p',' '),('kw','try'),('p',' '),('var','std'),('op','.'),('var','testing'),('op','.'),('fnc','expectEqualStrings'),('punc','('),('str','"#0d0b0a"'),('punc',','),('p',' '),('kw','try'),('p',' '),('fnc','resolve'),('punc','('),('kw','try'),('p',' '),('ty','Theme'),('op','.'),('fnc','init'),('punc','('),('op','&'),('var','arena'),('op','.'),('prop','allocator'),('punc',')'),('punc',','),('p',' '),('str','"bg"'),('punc','))'),('punc',';')], + [('punc','}')], +] + +cols="".join(f'<div class="col"><h2>{n}</h2><pre>{render(s)}</pre></div>' for n,s in [("Elisp",ELS),("Go",GOS),("Python",PYS),("TypeScript",TSS),("Java",JAS),("C",CS),("C++",CPS),("Rust",RUSTS),("Zig",ZIGS),("Shell",SHS)]) legend_rows=[ ("keyword (bold)","kw","class def if return import"),("builtin","bi","len range print"), ("function — definition (bold)","fnd","resolve cache-get push"),("function — call","fnc","get append fmt.Errorf"), @@ -265,5 +327,6 @@ html=f'''<!doctype html><meta charset=utf-8><title>dupre revision — canonical< <table class="leg" id="legtable"><thead><tr><th></th><th onclick="srt(1)">color △</th><th onclick="srt(2)">hex △</th><th onclick="srt(3)">category △</th><th>example</th></tr></thead><tbody>{legend}</tbody></table> <h1>palette</h1> {palette}\n<script>let D={{}};function srt(c){{const t=document.querySelector("#legtable tbody");const r=[...t.rows];D[c]=!D[c];r.sort((a,b)=>{{const x=a.cells[c].innerText.trim().toLowerCase(),y=b.cells[c].innerText.trim().toLowerCase();return (x<y?-1:x>y?1:0)*(D[c]?1:-1)}});r.forEach(x=>t.appendChild(x))}}</script>''' -open("/tmp/dupre-canon.html","w").write(html) +with open("/tmp/dupre-canon.html","w") as out: + out.write(html) print("wrote /tmp/dupre-canon.html") |
