diff options
author | neodarz <neodarz@neodarz.net> | 2019-05-26 00:47:00 +0200 |
---|---|---|
committer | neodarz <neodarz@neodarz.net> | 2019-05-26 00:47:00 +0200 |
commit | 28289ae4f3ac197489feda201843407e1f7f2537 (patch) | |
tree | c3c14ed2b456df50336afb1ac71c965dfa26945b /utils/utils.py | |
parent | 666bdbd21f92482be07c45cfdb57786e6d99748f (diff) | |
download | my_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/utils.py')
-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) |