DEFAULT_CSS += '''
-.quote {
+.block {
+ padding: 0 0.5em;
+ margin: 0;
+ border-left: 2px solid #eee;
+}
+.quote, blockquote {
padding: 0 0.5em;
margin: 0;
font-style: italic;
- border-left: 2px solid #ccc;
- color: #999;
+ border-left: 2px solid #666;
+ color: #666;
font-size: 80%;
}
.quotelead {
- font-style: italic;
margin-bottom: -1em;
- color: #999;
font-size: 80%;
}
+.quotechar { display: none; }
.footnote-ref, .footnote-back { text-decoration: none;}
.signature {
color: #999;
white-space: pre;
margin: 1em 0 0 0;
font-size: 80%;
-}'''
+}
+table, th, td {
+ border-collapse: collapse;
+ border: 1px solid #999;
+}
+th, td { padding: 0.5em; }
+.header {
+ background: #eee;
+}
+.even { background: #eee; }
+h1, h2, h3, h4, h5, h6 {
+ color: #666;
+ background-color: #eee;
+ padding-left: 0.5em
+}
+h1 { font-size: 130%; }
+h2 { font-size: 120%; }
+h3 { font-size: 110%; }
+h4 { font-size: 107%; }
+h5 { font-size: 103%; }
+h6 { font-size: 100%; }
+p { padding: 0 0.5em; }
+'''
STYLESHEET = os.path.join(os.path.expanduser('~/.mutt'),
'markdown2html.css')
# convert hard line breaks within paragraphs to 2 trailing spaces, which
# is the markdown way of representing hard line breaks. Note how the
# regexp will not match between paragraphs.
- ret = re.sub(r'(\S)\n(\s*\S)', r'\g<1> \n\g<2>', mdwn, re.MULTILINE)
+ ret = re.sub(r'(\S)\n(\s*\S)', r'\g<1> \n\g<2>', mdwn, flags=re.MULTILINE)
+
+ # Clients like Thunderbird need the leading '>' to be able to properly
+ # create nested quotes, so we duplicate the symbol, the first instance
+ # will tell pandoc to create a blockquote, while the second instance will
+ # be a <span> containing the character, along with a class that causes CSS
+ # to actually hide it from display. However, this does not work with the
+ # text-mode HTML2text converters, and so it's left commented for now.
+ #ret = re.sub(r'\n>', r' \n>[>]{.quotechar}', ret, flags=re.MULTILINE)
return ret
elif prev and re.match(r'^.+:\s*$', prev) and cur.startswith('>'):
ret.append(re.sub(r'^(\s*>\s*)+(.+)',
r'\g<1>{.quoteinitial}\g<2>',
- cur, re.MULTILINE))
+ cur, flags=re.MULTILINE))
# All other occurrences of blockquotes get the "subsequent" marker:
- elif cur.startswith('>') and not prev.startswith('>'):
+ elif cur.startswith('>') and prev and not prev.startswith('>'):
ret.append(re.sub(r'^((?:\s*>\s*)+)(.+)',
r'\g<1>{.quotesubsequent}\g<2>',
- cur, re.MULTILINE))
+ cur, flags=re.MULTILINE))
else: # pass through everything else.
ret.append(cur)
'''
ret = html.replace('<p>{.quotelead}', '<p class="quotelead">')
ret = re.sub(r'<blockquote>\n((?:<blockquote>\n)*)<p>(?:\{\.quote(\w+)\})',
- r'<blockquote class="quote \g<2>">\n\g<1><p>', ret, re.MULTILINE)
+ r'<blockquote class="quote \g<2>">\n\g<1><p>', ret, flags=re.MULTILINE)
return ret
'inline_notes',
'emoji',
'tex_math_double_backslash',
+ 'autolink_bare_uris'
]
if not ext_disabled:
ext_disabled = [ 'tex_math_single_backslash',
'tex_math_dollars',
+ 'smart',
'raw_html'
]