acid-drop

- Hacking the planet from a LilyGo T-Deck using custom firmware
git clone git://git.acid.vegas/acid-drop.git
Log | Files | Refs | Archive | README | LICENSE

example_list.py (2675B)

      1 #!/usr/bin/env python3
      2 import os
      3 
      4 
      5 def process_index_rst(path):
      6 #  print(path)
      7   with open(path) as fp:
      8     last_line=""
      9     line=""
     10     title_tmp=""
     11     line = fp.readline()
     12     d = {}
     13     while line:
     14       if line[0:3] == '"""':
     15         title_tmp = last_line
     16       elif line[0:15] ==".. lv_example::":
     17         name = line[16:].strip()
     18         title_tmp = title_tmp.strip()
     19         d[name] = title_tmp
     20       last_line = line
     21       line = fp.readline()
     22 
     23     return(d)
     24 
     25 h1= {
     26   "get_started":"Get started",
     27   "styles":"Styles",
     28   "anim":"Animations",
     29   "event":"Events",
     30   "layouts":"Layouts",
     31   "scroll":"Scrolling",
     32   "widgets":"Widgets"
     33 }
     34 
     35 widgets = {
     36 "obj":"Base object",
     37 "arc":"Arc",
     38 "bar":"Bar",
     39 "btn":"Button",
     40 "btnmatrix":"Button matrix",
     41 "calendar":"Calendar",
     42 "canvas":"Canvas",
     43 "chart":"Chart",
     44 "checkbox":"Checkbox",
     45 "colorwheel":"Colorwheel",
     46 "dropdown":"Dropdown",
     47 "img":"Image",
     48 "imgbtn":"Image button",
     49 "keyboard":"Keyboard",
     50 "label":"Label",
     51 "led":"LED",
     52 "line":"Line",
     53 "list":"List",
     54 "menu":"Menu",
     55 "meter":"Meter",
     56 "msgbox":"Message box",
     57 "roller":"Roller",
     58 "slider":"Slider",
     59 "span":"Span",
     60 "spinbox":"Spinbox",
     61 "spinner":"Spinner",
     62 "switch":"Switch",
     63 "table":"Table",
     64 "tabview":"Tabview",
     65 "textarea":"Textarea",
     66 "tileview":"Tabview",
     67 "win":"Window",
     68 }
     69 
     70 layouts = {
     71 "flex":"Flex",
     72 "grid":"Grid",
     73 }
     74 
     75 
     76 def print_item(path, lvl, d, fout):
     77   for k in d:
     78     v = d[k]
     79     if k.startswith(path + "/lv_example_"):
     80      fout.write("#"*lvl + " " + v + "\n")
     81      fout.write('```eval_rst\n')
     82      fout.write(f".. lv_example:: {k}\n")
     83      fout.write('```\n')
     84      fout.write("\n")
     85 
     86 def exec():
     87   paths = [ "../examples/", "../demos/"]
     88   fout = open("examples.md", "w")
     89   filelist = []
     90 
     91   for path in paths:
     92     for root, dirs, files in os.walk(path):
     93       for f in files:
     94         #append the file name to the list
     95         filelist.append(os.path.join(root,f))
     96 
     97   filelist = [ fi for fi in filelist if fi.endswith("index.rst") ]
     98 
     99   d_all = {}
    100   #print all the file names
    101   for fn in filelist:
    102      d_act = process_index_rst(fn)
    103      d_all.update(d_act)
    104 
    105   fout.write("```eval_rst\n")
    106   fout.write(".. include:: /header.rst\n")
    107   fout.write(":github_url: |github_link_base|/examples.md\n")
    108   fout.write("```\n")
    109   fout.write("\n")
    110   fout.write("# Examples\n")
    111 
    112   for h in h1:
    113     fout.write("## " + h1[h] + "\n")
    114 
    115     if h == "widgets":
    116       for w in widgets:
    117         fout.write("### " + widgets[w] + "\n")
    118         print_item(h + "/" + w, 4, d_all, fout)
    119     elif h == "layouts":
    120       for l in layouts:
    121         fout.write("### " + layouts[l] + "\n")
    122         print_item(h + "/" + l, 4, d_all, fout)
    123     else:
    124       print_item(h, 3, d_all, fout)
    125 
    126     fout.write("")
    127