Tear out almost everything, add /readme endpoint
author |
Steve Losh <steve@stevelosh.com> |
date |
Wed, 15 Jan 2020 18:38:21 -0500 |
parents |
2dbe1ce3f693 |
children |
506fc48e108b |
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=[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