X-Git-Url: https://git.madduck.net/etc/neomutt.git/blobdiff_plain/872d8e0875ecb2da4138e44568c8e715a0f21869..42dff6d40c9e939d9894db14c72469a177c09c43:/.config/neomutt/buildmimetree.py diff --git a/.config/neomutt/buildmimetree.py b/.config/neomutt/buildmimetree.py index 57fc21a..fe85167 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( @@ -301,6 +304,8 @@ def do_setup( editor = f"{sys.argv[0]} massage --write-commands-to {temppath}" if extensions: editor = f'{editor} --extensions {",".join(extensions)}' + if debug_commands: + editor = f'{editor} --debug-commands' cmds.cmd('set my_editor="$editor"') cmds.cmd('set my_edit_headers="$edit_headers"') @@ -339,7 +344,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)