1#!/usr/bin/env python3
2import os
3
4
5def 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
25h1= {
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
35widgets = {
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
70layouts = {
71"flex":"Flex",
72"grid":"Grid",
73}
74
75
76def 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
86def 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
128