muttdown
muttdown copied to clipboard
Move to pandoc for markdown and premailer for CSS
This is a proof of principle, but fully functional pull request. For my purposes, using the pandoc variant of markdown just makes the most sense. I also think it is the most robust and featureful so require it as an option in any markdown based tool I use. It was pretty easy to implement that in muttdown, leveraging other packages already available. pyliner
also does not seem all that well maintained so I opted for premailer
to perform the CSS in-lining instead, which seems reasonable since it is well tested and designed for this very purpose.
I currently have this version of muttdown set up as a filter on my local Postfix install and it works great. The last detail at this stage I would like to see changed is to remove the !m
sigil from the text/plain
part. That is not currently written back into the multipart object.
So, I am going to continue down this path regardless of whether or not you would like to merge, but if this all seems in line with what you wanted to do then I am happy to have that happen in muttdown's birth repo (this one).
Regarding the size of pandoc
as a requirement, this is a sore point with Haskell code in general. The binary file is friggin tiny (29KiB), but yes it can be confusingly obscene to install if you are not used to how Haskell does things. That said, it is probably fair that it should not be the only option for markdown processing, but that just introduces another branch point as slightly different conventions may need to be handled and the html output from either processor will have their own peculiarities.
Could you elaborate on the suspected security vulnerability in pypandoc
?
Also, LOL: "All checks have failed." I bet Travis had fun trying to build pandoc
like 7 times.
Just one note, moving out from pynliner would help muttdown from the contrib to main area of the Debian archive.
premailer is not yet in Debian, I read its license and it looks good (pending approval from ftp master) to inclusion in main. I did not check premailer dependencies (if any).
If muttdown switches i'd package premailer, and deps, and when all deps are in Debian i'd switch muttdown from contrib to main.