Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1"""
2@file
3@brief Helpers about readme.
4"""
7def clean_readme(content):
8 """
9 Clean instructions such as ``.. only:: html``.
11 @param content content of an rst file
12 @return cleaned content
13 """
14 lines = content.split("\n")
15 indent = None
16 less = None
17 rows = []
18 for i, line in enumerate(lines):
19 sline = line.lstrip()
20 if sline.startswith(".. only:: html"):
21 indent = len(line) - len(sline)
22 continue
23 if indent is None:
24 rows.append(line)
25 continue
26 exp = indent * " "
27 if len(line) > indent + 1 and line[:indent] == exp:
28 if line[indent] == " ":
29 blank = sline.strip()
30 if len(blank) == 0:
31 rows.append("") # pragma: no cover
32 continue # pragma: no cover
33 if less is None:
34 less = len(line) - len(sline)
35 if less == indent:
36 raise ValueError( # pragma: no cover
37 "Wrong format at line {0}\n{1}".format(
38 i, content))
39 new_line = line[less - indent:]
40 rows.append(new_line)
41 else:
42 rows.append(line)
43 indent = None
44 less = None
45 else:
46 rows.append(line)
47 return "\n".join(rows)