aboutsummaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
Diffstat (limited to 'utils')
-rw-r--r--utils/utils.py17
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)