help="Markdown extension to add to the list of extensions use",
)
+ parser_setup.add_argument(
+ "--send-message",
+ action="store_true",
+ help="Generate command(s) to send the message after processing",
+ )
+
parser_massage.add_argument(
"--debug-commands",
action="store_true",
def convert_markdown_to_html(maildraft, *, extensions=None):
draftpath = pathlib.Path(maildraft)
- textpart = Part(
- "text", "plain", draftpath, "Plain-text version", orig=True
- )
-
with open(draftpath, "r", encoding="utf-8") as textmarkdown:
text = textmarkdown.read()
mdwn = markdown.Markdown(extensions=extensions)
- html = mdwn.convert(text)
- htmlpath = draftpath.with_suffix(".html")
- htmlpart = Part("text", "html", htmlpath, "HTML version")
+ with open(draftpath, "w", encoding="utf-8") as textplain:
+ textplain.write(text)
+ textpart = Part(
+ "text", "plain", draftpath, "Plain-text version", orig=True
+ )
+
+ html = mdwn.convert(text)
+ htmlpath = draftpath.with_suffix(".html")
with open(
htmlpath, "w", encoding="utf-8", errors="xmlcharrefreplace"
) as texthtml:
texthtml.write(html)
+ htmlpart = Part("text", "html", htmlpath, "HTML version")
logopart = Part(
"image",
# We've hit a leaf-node, i.e. an alternative or a related part
# with actual content.
- # If the part is not an original part, i.e. doesn't already
- # exist, we must first add it.
- if not item.orig:
+ # Let's add the part
+ if item.orig:
+ # The original source already exists in the NeoMutt tree, but
+ # the underlying file may have been modified, so we need to
+ # update the encoding, but that's it:
+ cmds.push("<update-encoding>")
+ else:
+ # … whereas all other parts need to be added, and they're all
+ # considered to be temporary and inline:
cmds.push(f"<attach-file>{item.path}<enter>")
cmds.push("<toggle-unlink><toggle-disposition>")
- if item.cid:
- cmds.push(f"<edit-content-id>\\Ca\\Ck{item.cid}<enter>")
- # If the item (including the original) comes with a
- # description, then we might just as well update the NeoMutt
+ # If the item (including the original) comes with additional
+ # information, then we might just as well update the NeoMutt
# tree now:
+ if item.cid:
+ cmds.push(f"<edit-content-id>\\Ca\\Ck{item.cid}<enter>")
if item.desc:
cmds.push(f"<edit-description>\\Ca\\Ck{item.desc}<enter>")
args = parse_cli_args()
if args.mode == "setup":
+ if args.send_message:
+ raise NotImplementedError()
+
do_setup(args.extensions, debug_commands=args.debug_commands)
elif args.mode == "massage":
def test_MIMETreeDFWalker_list_to_mixed(self, basic_mime_tree):
mimetree = MIMETreeDFWalker()
-
items = []
def visitor_fn(item, stack, debugprint):