<div class="markdown">
<style type="text/css">
/* Line wrapping */
div[markup="none"] { white-space: pre-wrap; }
div[markup="markdown"] { white-space: normal; }

/* General styling of quotation blocks (and colors for level 2 and upwards)*/
blockquote {
        margin: 0 0 5px;
        padding-left: 5px;
        border-left: 2px solid #136BCE;
        color: #136BCE;
}

/* Specific styling of level 1 quotation blocks */
blockquote blockquote {
        border-left: 2px solid #4B89CF;
        color: #4B89CF;
}

/* Discrete links in quoted text */
blockquote a:link { color: #136BCE; }
blockquote a:active { color: red; }
blockquote blockquote a:link { color: #4B89CF; }
blockquote blockquote a:active { color: red; }

pre {
        margin-left: 15px;
        margin-right: 15px;
        padding: 5px;
        background-color: #E4E4E4;
        border: thin solid gray;
        overflow: auto;
}

/* Show Raw Source */
pre.raw {
        margin-left: 5px;
        margin-right: 5px;
        white-space: pre-wrap;
}

/* Attached messages are indented and given a frame and background color */
div.bodypart[type=message][subtype=rfc822] {
        margin-left: 20px;
        padding: 5px;
        background-color: #FDF5E6;
        border: thin solid gray;
}

div.bodypart[disposition="inline"][type=image] img {
        max-width:600px;
        height: auto;
}

/* Doesn't work.
div.bodypart[disposition="attachment"] + div.bodypart[disposition="attachment"] {
        margin-top: 10px;
}
*/

/*div.bodypart[disposition="attachment"] div {
        float: left;
        border-left: thin solid #A4A4A4;
        border-top: thin solid #A4A4A4;
        border-bottom: thin solid #A4A4A4;
        background-color: #D5DCE4;
        height: 1.2em;
        min-height: 16px;
        vertical-align: middle;
        padding: 3px;
        margin-bottom:5px;
}
*/


/* Markdown table */

div.markdown table {
        border-collapse: collapse;
        margin: 0 2em;
/*      width: 320px;*/
}

div.markdown th {
        padding: 0.5em;
}

div.markdown td {
        border-top: 1px solid lightgray;
        border-bottom: 1px solid lightgray;
        padding: 0.5em;
}

div.markdown td+td {
        border-left: 1px solid lightgray;
}

/* Attachments table */

table.attachments {
        border-collapse: collapse;
        margin: 1em 0em;
}

table.attachments th {
        padding: 0.5em;
}

table.attachments td {
        border-top: 1px solid lightgray;
        border-bottom: 1px solid lightgray;
        padding: 0.5em 1em;

        /* FIXME: This needs to be improved. */
        max-width: 400px;
   white-space: nowrap;
   overflow: hidden;
   text-overflow: ellipsis;
}

table.attachments td.icon {
        -webkit-user-select: none;
        padding: 0em;
}

table.attachments td.icon img {
        min-width: 16px;
        width: 1.5em;
        height: auto;
}

table.attachments td.description {
        border-left: none;
        padding-left: 5px;
}

table.attachments td.description a:link {
        color: black;
        text-decoration: none;
}

table.attachments td.description a:active {
        color: gray;
}

table.attachments td.description a:hover {
        text-decoration:underline;
}

table.attachments td.description a:visited {
        color: gray;
}

table.attachments td.size {
        text-align: right;
        padding-right: 0;
}

table.attachments td.button {
        padding-right: 0;
}

table.attachments form {
        margin: 0;
}

/* The header related stuff is currently only used when displaying multiple messages */
/* Add a ':' after each header title */
span.header_name:after { content: ": " }
span.header_name { color: blue; font-weight: bold; }
span.header_body { font-weight: bold; }
/* How to style a specific header */
span.header_name[type="from.name"] { color: red; font-weight: bold; }

/* Various spacings between messages and message-elements. */
hr.messagedivider { clear: both; margin-top: 10px; margin-bottom: 10px; }
span.header + div.body { margin-top: 10px }
div.bodypart + div.bodypart { margin-top: 10px;  }

/* Styling the horizontal divider between messages. */
hr.messagedivider {
        border-top: thin solid gray;
        height: 2px;
}
</style>
<p dir="auto">When it comes down to it, the main reason I’m using MultiMarkdown is that I need to be able to reply to HTML emails without losing the HTML. I can’t blow away the table my manager sent me in a reply. I don’t need to edit it–it’s Exchange, nobody inline replies–but I can’t let it get nuked–especially since that screws up the entire assumption that if you have the most recent message, you can delete all the others. </p>

<p dir="auto">So what is necessary for MailMate to be usable in this environment? </p>

<p dir="auto">Ideally, the ability to top-reply to a mail message and have the HTML being replied to appear in a pane in the bottom, with the two merged when I send the message. </p>

<p dir="auto">Until then, I do the following. </p>

<pre><code>{   name    = 'HTML to SemiCanonical';  
    events  = ( 'email.reply', 'email.forward' );  
    input   = 'html';  
    output  = 'canonical';  
    select  = "content-type.type = text and content-type.subtype = html and from.domain = 'tivo.com'";  
    script  = '#!/usr/bin/env bash\n/Users/nazgul/bin/t\n';  
    uuid    = '5DF480C9-2400-427A-9B01-52391F84DC7B';  
    disabled = 0;  
}  
</code></pre>

<p dir="auto">and the script </p>

<pre><code>#!/usr/bin/env bash  
  
tidy --quiet yes --wrap 0 --input-encoding utf8 --output-encoding utf8 --force-output 1 --show-warnings no | \  
    perl -e '  
        while (<>) {  
            s/<\/?(head|meta|html|!DOCTYPE|title)[^>]*>//ig;  
            s/<\/?html[^>]*>//ig;  
            s/<div/<div/ig;  
            s/<\/body/<\/div/ig;  
            print;  
        }  
    '  
</code></pre>

<p dir="auto">That brings up some manageable HTML in the window, which MailMate then prefixes with ‘> ’, which MultiMarkdown then turns into wrapping with block quote tags. Last time I tested, sundown didn’t handle quoting HTML that way. If that changed, this would work with it as well. (For a while, I had the script generate a set of editor actions which selected the content of the message, removed the ‘> ’ and wrapped it with blockquote tags, but that was more than a little hacky. </p>

<p dir="auto">Of course, this is all hacky, but otherwise I wouldn’t be able to use MailMate at work. </p>

<p dir="auto">P.S. Benny, have you considered sending the CSS you use to display messages along with the HTML message? So that things like blockquotes appear to the receiver the same way they appear in MailMate, even if they don’t have MailMate. </p>

</div>