'''
Preprocess the signature before markdown processing.
'''
- return sig
+ return f"```\n{sig}\n```"
def _preprocess_markdown(mdwn):
'''
def _convert_with_pandoc(mdwn, inputfmt='markdown', outputfmt='html5',
ext_enabled=None, ext_disabled=None,
- standalone=True, selfcontained=True, title=None):
+ standalone=True, selfcontained=True, title='Untitled'):
'''
Invoke pandoc to do the actual conversion of Markdown to HTML5.
'''
if selfcontained:
args.append('--self-contained')
if title:
- args.append(f'--metadata=pagetitle:"{title}"')
+ args.append(f'--metadata=title:{title}')
return pypandoc.convert_text(mdwn, format=inputfmt, to=outputfmt,
extra_args=args)
Converts the input Markdown to HTML, handling separately the body, as well
as an optional signature.
'''
- parts = re.split(r'^-- $', mdwn, 1, flags=re.MULTILINE)
+ parts = re.split(r'^-- \n', mdwn, 1, flags=re.MULTILINE)
body = parts[0]
if len(parts) == 2:
sig = parts[1]
body = _preprocess_markdown(body)
body = _identify_quotes_for_later(body)
html = _convert_with_pandoc(body, standalone=True, selfcontained=True,
- title=None)
- html = html.replace('<title>Untitled</title>\n','')
+ title="Body")
+ html = html.replace('<title>Body</title>\n','')
html = _reformat_quotes(html)
if sig:
sig = _preprocess_signature(sig)
sig = _preprocess_markdown(sig)
- sig = _convert_with_pandoc(sig, standalone=False, selfcontained=False)
- sig = SIGNATURE_HTML.format(sig='<br/>'.join(sig.splitlines()))
+ sig = _convert_with_pandoc(sig, standalone=False, selfcontained=False,
+ title="Signature")
+ sig = SIGNATURE_HTML.format(sig=sig)
eob = html.find('</body>')
html = f'{html[:eob]}{sig}\n{html[eob:]}'