diff options
Diffstat (limited to 'utils')
-rw-r--r-- | utils/utils.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/utils/utils.py b/utils/utils.py index bc42291c..401e133e 100644 --- a/utils/utils.py +++ b/utils/utils.py @@ -148,3 +148,20 @@ def link_img_tags(soup): a_tag = soup.new_tag("a", href=img_tag["src"], target="_blank") a_tag.insert(0, copy.copy(img_tag)) img_tag.replace_with(a_tag) + + +def _pre_tag_insert_line_numbers(soup, pre_tag): + """Insert line numbers to a pre tag.""" + num_lines = len(pre_tag.text.split("\n")) + for line_number in range(1, num_lines + 1): + # line number divs will look like: + # <span class="line-number" data-line="1" style="top: 0em"><!----></span> + # <span class="line-number" data-line="2" style="top: 1.35em"><!----></span> + ln_tag = soup.new_tag("span") + ln_tag["class"] = "line-number" + ln_tag["data-line"] = line_number + ln_tag["style"] = "top: %.2fem" % ((line_number - 1) * 1.35) + # add a comment to the content of the span to suppress tidy5 + # empty <span> tag warning + ln_tag.append(soup.new_string("", bs4.Comment)) + pre_tag.code.append(ln_tag) |