[MlMt] MailMate status (All things HTML)

Benny Kjær Nielsen mailinglist at freron.com
Fri Aug 7 19:20:36 EDT 2015


Hi MailMate users,

before the weekend I wanted to provide you with the current status of 
MailMate. It has been a few weeks since the latest beta/test version of 
MailMate (r5107/r5108), but it's not because I have been on vacation 
that long. The main reason is that I've been working on some of the 
oldest short-comings of MailMate related to the handling of HTML and 
this has involved quite a lot of changes.

I don't have any major new **complete** features for you to test yet, 
but I do have a new update for you. Its primary purpose is to ensure 
that I haven't broken a lot of things while working on the HTML issues. 
It can be fetched as a direct download 
[here](‘http://updates.mailmate-app.com/archives/MailMate_r5109.tbz) 
(r5109). It's not available via the Software Update preferences pane, 
because currently I don't want anyone to download it if they are not 
ready to report any new issues.

I cannot make any promises on when these features are complete. Right 
now I have to focus on fixing a bunch of minor issues to make MailMate 
ready for a public El Capitan capable release.

The following are the features I've been working on. It's a bit early to 
announce all this, but I expect we can keep their existence on the 
mailing list for now :-)

### Inlining of HTML

This is the important one. MailMate is going to continue having a plain 
text editor, but it'll be possible to inline HTML messages when 
forwarding and replying. When MailMate generates an HTML body part then 
the original HTML is inlined and that should work at least as well as 
any HTML capable email client. The plain text in the composer is going 
to show the plain text variant of the inlined HTML, but it'll be 
non-editable (for obvious reasons). If the user tries to edit the plain 
text then MailMate offers to drop the inlined HTML body part 
(essentially providing the current behavior). This can be suppressed 
such that it happens automatically.

There is a hidden preference to enable it, but the feature is still 
incomplete. The main issue is related to HTML emails containing 
so-called related body parts (inlined images). In other words, this is 
not quite ready for testing yet. Sorry.

### Styling

Until now MailMate has generated unstyled HTML. This is great because 
then the default styling of the email client of the recipient is in 
charge — displaying all incoming emails in the same way. Unfortunately 
the default styling s\*cks in many email clients resulting in MailMate 
messages looking ugly, e.g., without any styling of quoted blocks (Apple 
Mail) or an ugly font (Outlook webmail). Ironically, there are no such 
issues when sending a plain text message without an HTML alternative.

I've implemented it such that a default theme can be configured, but 
I've also added that each signature can be bound to a specific theme. 
Some details are still missing and this is also not quite ready for 
testing. Sorry.

> The feature is enabled for this email which means that this paragraph 
> should have a vertical blue line in most (all?) HTML capable email 
> clients — including Apple/iOS Mail.

### Code styling

This is probably the most complete feature. It's mostly missing GUI 
settings. It is based on a new bundle named Pygments which currently has 
to be fetched manually:

	mkdir -p ~/Library/Application\\ Support/MailMate/Bundles
	cd ~/Library/Application\\ Support/MailMate/Bundles
	git clone https://github.com/mailmate/pygments.mmBundle

It is also necessary to tell MailMate to use a specific command in the 
bundle for code styling:

	defaults write com.freron.MailMate MmBundleCommandForCodeStyling 
-string E4464365-9FE3-487C-8B39-D3B0F632F1D8

Finally, it's possible to configure the style used. This is equivalent 
to the default:

	defaults write com.freron.MailMate MmDefaultPygmentsStyleName colorful

The possible values are:

	manni igor xcode vim autumn vs rrt native perldoc borland
	tango emacs friendly monokai paraiso-dark colorful murphy
	bw pastie paraiso-light trac default fruity

If I remember correctly those with a dark background do not yet work 
well.

Oh, and here is an example of the feature in use:

~~~c++
	// This is C++ code
	for(int i=0; i < 42; ++i)
		printf("Hello world\\\\n");
~~~

And this is what I wrote to get that:

	~~~c++
		// This is C++ code
		for(int i=0; i < 42; ++i)
			printf("Hello world\\\\n");
	~~~

### Math styling

The last feature is also mostly complete, but unfortunately it probably 
has limited use cases, because it's not supported by all receiving email 
clients. Then again, if you know who you are writing then it's a pretty 
cool feature.

Again, first manually install a bundle:

	mkdir -p ~/Library/Application\\ Support/MailMate/Bundles
	cd ~/Library/Application\\ Support/MailMate/Bundles
	git clone https://github.com/mailmate/asciimath.mmBundle

And enable the feature like this:

	defaults write com.freron.MailMate MmBundleCommandForMathStyling 
-string A5574670-971A-47B4-86F8-A2901F252613

It's also necessary to manually install \`asciimathml\` (ideally, the 
bundle command should do this like it does for the Pygments bundle):

	sudo easy\_install asciimathml

The bundle provides you with the ability to have inline math, 
$sum\_(i=1)^n i^3$, by writing this: \`$sum\_(i=1)^n i^3$\`. Larger 
sections of math can be done like this

	$$
	sum\_(i=1)^n i^3=((n(n+1))/2)^2
	$$

which looks like this

$$
sum\_(i=1)^n i^3=((n(n+1))/2)^2
$$

The ASCIIMath markup language is described [here](http://asciimath.org). 
And I repeat, this feature does not work well in many receiving email 
clients. Apple/iOS Mail is doing fine since they are also based on 
Webview, but other HTML engines do not support MathML (which is what the 
bundle command generates). Webmail clients like Gmail and iCloud remove 
the MathML markup generated making the math disappear even if using 
Safari (which does support MathML).

(It's implicit in the above, but it's possible to create your own bundle 
with a different syntax highlighter or a different math generator and 
then configure MailMate to use them.)

That's it. Have a nice weekend and remember that all of the above is 
work in progress. Right now I'm mostly interested in side-effects of my 
changes affecting the regular use of the composer.

-- 
Benny
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freron.com/pipermail/mailmate/attachments/20150808/bf9cc420/attachment-0001.html>


More information about the mailmate mailing list