aboutsummaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorneodarz <neodarz@neodarz.net>2019-05-26 00:47:00 +0200
committerneodarz <neodarz@neodarz.net>2019-05-26 00:47:00 +0200
commit28289ae4f3ac197489feda201843407e1f7f2537 (patch)
treec3c14ed2b456df50336afb1ac71c965dfa26945b /utils
parent666bdbd21f92482be07c45cfdb57786e6d99748f (diff)
downloadmy_new_personal_website-28289ae4f3ac197489feda201843407e1f7f2537.tar.xz
my_new_personal_website-28289ae4f3ac197489feda201843407e1f7f2537.zip
Move _pre_tag_insert_line_numbers function to external file
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)