__init__.py @ 506fc48e108b default tip
Enable fenced code blocks
| author | Steve Losh <steve@stevelosh.com> |
|---|---|
| date | Wed, 15 Jan 2020 19:02:22 -0500 |
| parents | 1758d8b993d0 |
| children | (none) |
import os import sys # markdown is imported later, in extsetup import logging from mercurial import extensions from mercurial.hgweb import webcommands from mercurial.templatefilters import escape logging.basicConfig() @webcommands.webcommand('readme') def readme(web): text = None content = None changeid = web.config('web', 'readme.changeid', 'tip') cctx = web.repo[changeid] changeid = cctx.hex()[0:12] for filename in cctx: parts = filename.lower().split('.') if parts[0] == 'readme': content = cctx.filectx(filename).data().decode("utf-8") if parts[-1] in ['markdown', 'md']: md = Markdown(extensions=['fenced_code', TocExtension(anchorlink=True)]) content = md.convert(content).encode("utf-8") else: content = "<pre>" + escape(content) + "</pre>" break return web.sendtemplate('readme', readme_content=content) def extsetup(ui): try: from markdown import Markdown from markdown.extensions.toc import TocExtension except ImportError: ui.warn("Unable to locate markdown in path %s\n" % sys.path) global Markdown global TocExtension webcommands.readme = readme