X-Git-Url: https://git.madduck.net/etc/mutt.git/blobdiff_plain/d60226ed4be8d76d12ee1db8f46ee49de9c3a567..f6520a2a3b39414ab5fedc2da201887a974b9a9c:/.mutt/markdown2html diff --git a/.mutt/markdown2html b/.mutt/markdown2html index 44ec07c..be705d6 100755 --- a/.mutt/markdown2html +++ b/.mutt/markdown2html @@ -62,6 +62,7 @@ DEFAULT_CSS += ''' color: #999; font-size: 80%; } +.quotechar { display: none; } .footnote-ref, .footnote-back { text-decoration: none;} .signature { color: #999; @@ -69,7 +70,17 @@ DEFAULT_CSS += ''' 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; } +''' STYLESHEET = os.path.join(os.path.expanduser('~/.mutt'), 'markdown2html.css') @@ -98,7 +109,15 @@ def _preprocess_markdown(mdwn): # 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 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 @@ -153,13 +172,13 @@ def _identify_quotes_for_later(mdwn): 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) @@ -174,7 +193,7 @@ def _reformat_quotes(html): ''' ret = html.replace('

{.quotelead}', '

') ret = re.sub(r'

\n((?:
\n)*)

(?:\{\.quote(\w+)\})', - r'

\n\g<1>

', ret, re.MULTILINE) + r'

\n\g<1>

', ret, flags=re.MULTILINE) return ret @@ -208,10 +227,12 @@ def _convert_with_pandoc(mdwn, inputfmt='markdown', outputfmt='html5', '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' ]