file_path = os.path.abspath(__file__)
openpower_path = os.path.split(file_path)[0]
wiki_path = os.path.split(openpower_path)[0]
-def body(o, print=print):
- def recursive_inline(f, input_name, depth):
- assert depth < 10, "probably found an [[!inline]]-loop"
- for line in f.readlines():
- if input_name.endswith("comparison_table.tex") and \
- line.startswith("\begin{itemize}"):
- o.write(line)
- o.write("\\itemsep -0.3em\n")
- continue
- if not line.startswith("[[!inline"):
- o.write(line)
- continue
- print(line.strip())
- # assume first thing is pagename
- line = line.split('"')
- fname = line[1]
- print(f"\tdepth={depth}: {fname}")
- if fname.endswith(".py"):
- if fname.startswith("gf_reference"):
- with open_tracked(
- wiki_path + "/../nmigen-gf/" + fname) as inc:
- recursive_inline(inc, fname, depth + 1)
- else:
- with open_tracked(wiki_path + "/" + fname) as inc:
- recursive_inline(inc, fname, depth + 1)
+
+
+def recursive_inline(f, input_name, depth):
+ assert depth < 10, "probably found an [[!inline]]-loop"
+ skip = False # found the pattern <!-- hide -->
+ for line in f.readlines():
+ # skip hide/show
+ if skip:
+ if line.startswith("<!-- show -->"):
+ skip = False
+ continue
+ elif line.startswith("<!-- hide -->"):
+ skip = True
+ continue
+ # fix separation in comparison table
+ if input_name.endswith("comparison_table.tex") and \
+ line.startswith("\begin{itemize}"):
+ o.write(line)
+ o.write("\\itemsep -0.3em\n")
+ continue
+ # find headings and create name-refs, including filename
+ if line.startswith("#"):
+ iname = input_name.split("/")
+ if iname[0] == 'openpower': iname.pop(0)
+ l = line.strip().split(" ")[1:3]
+ l = map(lambda x: ''.join(filter(str.isalnum, x)), l)
+ l = map(str.lower, l)
+ l = filter(lambda x:x, l)
+ l = list(dict.fromkeys(iname + list(l)))
+ l = '_'.join(l)
+ line = '%s <a name="%s"> </>\n' % (line.strip(), l)
+ # find actual inlines
+ if not line.startswith("[[!inline"):
+ o.write(line)
+ continue
+ print(line.strip())
+ # assume first thing is pagename
+ line = line.split('"')
+ fname = line[1]
+ print(f"\tdepth={depth}: {fname}")
+ if fname.endswith(".py"):
+ if fname.startswith("gf_reference"):
+ with open_tracked(
+ wiki_path + "/../nmigen-gf/" + fname) as inc:
+ recursive_inline(inc, fname, depth + 1)
+ else:
+ with open_tracked(wiki_path + "/" + fname) as inc:
+ recursive_inline(inc, fname, depth + 1)
+ else:
+ if fname.endswith(".mdwn"):
+ with open_tracked(wiki_path + "/" + fname) as inc:
+ recursive_inline(inc, fname, depth + 1)
+ elif fname.startswith('openpower/isatables'):
+ pth = wiki_path + "/../openpower-isa/" + fname
+ with open_tracked(pth) as inc:
+ recursive_inline(inc, fname, depth + 1)
+ elif fname.startswith('openpower/isa'):
+ pth = wiki_path + "/../openpower-isa/" + fname + ".mdwn"
+ with open_tracked(pth) as inc:
+ recursive_inline(inc, fname, depth + 1)
else:
- if fname.endswith(".mdwn"):
- with open_tracked(wiki_path + "/" + fname) as inc:
- recursive_inline(inc, fname, depth + 1)
- elif fname == 'openpower/isatables/fields.text':
- with open_tracked(
- wiki_path + "/../openpower-isa/" + fname) as inc:
- recursive_inline(inc, fname, depth + 1)
- else:
- with open_tracked(
- wiki_path + "/" + fname + ".mdwn") as inc:
- recursive_inline(inc, fname, depth + 1)
+ with open_tracked(wiki_path + "/" + fname + ".mdwn") as inc:
+ recursive_inline(inc, fname, depth + 1)
+
+def body(o, print=print):
with open_tracked(sys.argv[1], "r") as f:
recursive_inline(f, sys.argv[1], 0)
else:
with open(temp_output_file, "w") as o:
body(o)
- os.rename(temp_output_file, output_file)
\ No newline at end of file
+ os.rename(temp_output_file, output_file)
+