From 97699e523cc331e6ac5764d3d6abf671db8dc5c8 Mon Sep 17 00:00:00 2001 From: "martin f. krafft" Date: Wed, 23 Aug 2023 09:14:18 +1200 Subject: [PATCH] buildmimetree.py: externalise file i/o from converter --- .config/neomutt/buildmimetree.py | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/.config/neomutt/buildmimetree.py b/.config/neomutt/buildmimetree.py index 57fc21a..894216f 100755 --- a/.config/neomutt/buildmimetree.py +++ b/.config/neomutt/buildmimetree.py @@ -140,26 +140,29 @@ class Multipart( return f" children={len(self.children)}" -def convert_markdown_to_html(maildraft, *, extensions=None): - draftpath = pathlib.Path(maildraft) - with open(draftpath, "r", encoding="utf-8") as textmarkdown: - text = textmarkdown.read() +def convert_markdown_to_html( + origtext, draftpath, *, filewriter_fn=None, extensions=None +): mdwn = markdown.Markdown(extensions=extensions) + if not filewriter_fn: + + def filewriter_fn(path, content, mode="w", **kwargs): + with open(path, mode, **kwargs) as out_f: + out_f.write(content) - with open(draftpath, "w", encoding="utf-8") as textplain: - textplain.write(text) + filewriter_fn(draftpath, origtext, encoding="utf-8") textpart = Part( "text", "plain", draftpath, "Plain-text version", orig=True ) - html = mdwn.convert(text) + htmltext = mdwn.convert(origtext) + htmlpath = draftpath.with_suffix(".html") - with open( - htmlpath, "w", encoding="utf-8", errors="xmlcharrefreplace" - ) as texthtml: - texthtml.write(html) + filewriter_fn( + htmlpath, htmltext, encoding="utf-8", errors="xmlcharrefreplace" + ) htmlpart = Part("text", "html", htmlpath, "HTML version") logopart = Part( @@ -339,7 +342,10 @@ def do_massage( cmds.flush() extensions = extensions.split(",") if extensions else [] - tree = converter(maildraft, extensions=extensions) + with open(maildraft, "r") as draft_f: + tree = converter( + draft_f.read(), pathlib.Path(maildraft), extensions=extensions + ) mimetree = MIMETreeDFWalker(debug=debug_walk) -- 2.39.5