Source code for pyquickhelper.pycode.readme_helper
"""
Helpers about readme.
:githublink:`%|py|5`
"""
[docs]def clean_readme(content):
"""
Clean instructions such as ``.. only:: html``.
:param content: content of an rst file
:return: cleaned content
:githublink:`%|py|13`
"""
lines = content.split("\n")
indent = None
less = None
rows = []
for i, line in enumerate(lines):
sline = line.lstrip()
if sline.startswith(".. only:: html"):
indent = len(line) - len(sline)
continue
if indent is None:
rows.append(line)
continue
exp = indent * " "
if len(line) > indent + 1 and line[:indent] == exp:
if line[indent] == " ":
blank = sline.strip()
if len(blank) == 0:
rows.append("") # pragma: no cover
continue # pragma: no cover
if less is None:
less = len(line) - len(sline)
if less == indent:
raise ValueError( # pragma: no cover
"Wrong format at line {0}\n{1}".format(
i, content))
new_line = line[less - indent:]
rows.append(new_line)
else:
rows.append(line)
indent = None
less = None
else:
rows.append(line)
return "\n".join(rows)