diff options
author | Joe <bousset.rudy@gmail.com> | 2022-07-06 17:07:30 +0200 |
---|---|---|
committer | Joe <bousset.rudy@gmail.com> | 2022-07-06 17:07:30 +0200 |
commit | 805e6a333deedf84ec51ae0aeb2f580712b835bd (patch) | |
tree | 3b60932c26f62f1a1199ef78c87561e55394f6db | |
parent | Update (diff) | |
download | dotfiles-bsd-805e6a333deedf84ec51ae0aeb2f580712b835bd.tar.gz dotfiles-bsd-805e6a333deedf84ec51ae0aeb2f580712b835bd.tar.bz2 dotfiles-bsd-805e6a333deedf84ec51ae0aeb2f580712b835bd.tar.xz dotfiles-bsd-805e6a333deedf84ec51ae0aeb2f580712b835bd.tar.zst dotfiles-bsd-805e6a333deedf84ec51ae0aeb2f580712b835bd.zip |
In progress
-rwxr-xr-x | .local/bin/mutt_md2html.sh | 70 |
1 files changed, 47 insertions, 23 deletions
diff --git a/.local/bin/mutt_md2html.sh b/.local/bin/mutt_md2html.sh index f934bb4..a920093 100755 --- a/.local/bin/mutt_md2html.sh +++ b/.local/bin/mutt_md2html.sh @@ -1,25 +1,49 @@ #!/bin/sh -commandsFile="/tmp/neomutt-commands" -markdownFile="/tmp/neomutt-markdown" -htmlFile="/tmp/neomutt-$(hostname -s)-$(id -u)-$(date +%s).html" - -cat - > "$markdownFile" -echo -n "push " > "$commandsFile" - -pandoc -f markdown -t html5 --standalone "$markdownFile" > "$htmlFile" - -# Attach the html file -echo -n "<attach-file>\"$htmlFile\"<enter>" >> "$commandsFile" - -# Set it as inline -echo -n "<toggle-disposition>" >> "$commandsFile" - -# Tell neomutt to delete it after sending -echo -n "<toggle-unlink>" >> "$commandsFile" - -# Select both the html and markdown files -echo -n "<tag-entry><previous-entry><tag-entry>" >> "$commandsFile" - -# Group the selected messages as alternatives -echo -n "<group-alternatives>" >> "$commandsFile" +commands_file="/tmp/neomutt-commands" +markdown_file="/tmp/neomutt-$(hostname -s)-$(id -u)-$(date +%s)" +html_file="/tmp/neomutt-$(hostname -s)-$(id -u)-$(date +%s).html" + +cat - >"$markdown_file" +printf 'push ' >"$commands_file" + +img_count=$(grep -Eo '!\[[^]]*\]\([^)]+' "$markdown_file" | + cut -d '(' -f 2 | + grep -Evc '^(cid:|https?://)') +if [ "$img_count" -gt 0 ]; then + grep -Eo '!\[[^]]*\]\([^)]+' "$markdown_file" | cut -d '(' -f 2 | + grep -Ev '^(cid:|https?://)' | + while read -r file; do + real_file=$(echo "$file" | sed "s#~#$HOME#g") + id="cid:$(md5 "$real_file" | rev | cut -d ' ' -f 1 | rev)" + sed -i '.orig' "s#$file#$id#g" "$markdown_file" + done + printf '<attach-file>"%s"<enter><first-entry><detach-file>' \ + "$markdown_file" >>"$commands_file" +fi + +pandoc -f markdown -t html5 --standalone "$markdown_file" >"$html_file" + +{ + printf '<attach-file>"%s"<enter>' "$html_file" + printf '<toggle-disposition>' + printf '<toggle-unlink>' + printf '<tag-entry><previous-entry><tag-entry>' + printf '<group-alternatives>' +} >>"$commands_file" + +if [ "$img_count" -gt 0 ]; then + grep -Eo '!\[[^]]*\]\([^)]+' "${markdown_file}.orig" | cut -d '(' -f 2 | + grep -Ev '^(cid:|https?://)' | + while read -r file; do + real_file=$(echo "$file" | sed "s#~#$HOME#g") + id="cid:$(md5 "$real_file" | rev | cut -d ' ' -f 1 | rev)" + { + printf '<attach-file>"%s"<enter>' "$real_file" + printf '<toggle-disposition>' + printf '<edit-content-id>^u"%s"<enter>' "$id" + printf '<tag-entry>' + } >>"$commands_file" + printf '<first-entry><tag-entry><group-related>' >>"$commands_file" + done +fi |