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
_______________________________________________
mailmate mailing list
mailmate@lists.freron.com
http://lists.freron.com/listinfo/mailmate

Reply via email to