__init__.py @ 1758d8b993d0

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