| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- #!/usr/bin/env python3
- import os
- def process_index_rst(path):
- # print(path)
- with open(path) as fp:
- last_line=""
- line=""
- title_tmp=""
- line = fp.readline()
- d = {}
- while line:
- if line[0:3] == '"""':
- title_tmp = last_line
- elif line[0:15] ==".. lv_example::":
- name = line[16:].strip()
- title_tmp = title_tmp.strip()
- d[name] = title_tmp
- last_line = line
- line = fp.readline()
- return(d)
- h1= {
- "get_started":"Get started",
- "styles":"Styles",
- "anim":"Animations",
- "event":"Events",
- "layouts":"Layouts",
- "scroll":"Scrolling",
- "widgets":"Widgets"
- }
- widgets = {
- "obj":"Base object",
- "arc":"Arc",
- "bar":"Bar",
- "btn":"Button",
- "btnmatrix":"Button matrix",
- "calendar":"Calendar",
- "canvas":"Canvas",
- "chart":"Chart",
- "checkbox":"Checkbox",
- "colorwheel":"Colorwheel",
- "dropdown":"Dropdown",
- "img":"Image",
- "imgbtn":"Image button",
- "keyboard":"Keyboard",
- "label":"Label",
- "led":"LED",
- "line":"Line",
- "list":"List",
- "menu":"Menu",
- "meter":"Meter",
- "msgbox":"Message box",
- "roller":"Roller",
- "slider":"Slider",
- "span":"Span",
- "spinbox":"Spinbox",
- "spinner":"Spinner",
- "switch":"Switch",
- "table":"Table",
- "tabview":"Tabview",
- "textarea":"Textarea",
- "tileview":"Tabview",
- "win":"Window",
- }
- layouts = {
- "flex":"Flex",
- "grid":"Grid",
- }
- def print_item(path, lvl, d, fout):
- for k in d:
- v = d[k]
- if k.startswith(path + "/lv_example_"):
- fout.write("#"*lvl + " " + v + "\n")
- fout.write('```eval_rst\n')
- fout.write(f".. lv_example:: {k}\n")
- fout.write('```\n')
- fout.write("\n")
- def exec():
- paths = [ "../examples/", "../demos/"]
- fout = open("examples.md", "w")
- filelist = []
- for path in paths:
- for root, dirs, files in os.walk(path):
- for f in files:
- #append the file name to the list
- filelist.append(os.path.join(root,f))
- filelist = [ fi for fi in filelist if fi.endswith("index.rst") ]
- d_all = {}
- #print all the file names
- for fn in filelist:
- d_act = process_index_rst(fn)
- d_all.update(d_act)
- fout.write("```eval_rst\n")
- fout.write(":github_url: |github_link_base|/examples.md\n")
- fout.write("```\n")
- fout.write("\n")
- fout.write("# Examples\n")
- for h in h1:
- fout.write("## " + h1[h] + "\n")
- if h == "widgets":
- for w in widgets:
- fout.write("### " + widgets[w] + "\n")
- print_item(h + "/" + w, 4, d_all, fout)
- elif h == "layouts":
- for l in layouts:
- fout.write("### " + layouts[l] + "\n")
- print_item(h + "/" + l, 4, d_all, fout)
- else:
- print_item(h, 3, d_all, fout)
- fout.write("")
|