From: mar77i Date: Sun, 16 Mar 2025 23:49:35 +0000 (+0100) Subject: md.py: break out postprocessing link into its own method X-Git-Url: https://git.mar77i.info/?a=commitdiff_plain;h=c38b19ee43738de90ebba4d7e9076abdb4a4a798;p=mar77i.info md.py: break out postprocessing link into its own method --- diff --git a/md.py b/md.py index d855cc6..c188701 100644 --- a/md.py +++ b/md.py @@ -1,6 +1,6 @@ from collections import OrderedDict from html import escape -from io import SEEK_END, StringIO +from io import StringIO class Paragraph: @@ -17,6 +17,19 @@ class Paragraph: f' {key}="{escape(value)}"' for key, value in self.attributes.items() ) + def add_link(self, sio, link): + sio.seek(link[0]) + text = sio.read(link[1] - link[0]) + url = sio.read() + sio.seek(link[0]) + sio.truncate() + sio.write('') + sio.write(escape(text, False)) + sio.write("") + return None + def join_lines(self): content = '\n'.join(self.lines) sio = StringIO() @@ -31,19 +44,8 @@ class Paragraph: elif link is not None: if c == "[]()"[len(link)]: link.append(sio.tell()) - if len(link) == 4: - sio.seek(link[0]) - text = sio.read(link[1] - link[0]) - sio.read(1 + link[2] - link[1]) - url = sio.read() - sio.seek(link[0]) - link = None - sio.truncate() - sio.write('') - sio.write(escape(text, False)) - sio.write("") + if len(link) == 4: + link = self.add_link(sio, link) continue if c == "\\": backslash = True