示例#1
0
def html_to_markmin(html):
    """Replace HTML with Markmin"""

    if html is None:
        return ''
    from gluon.html import markmin_serializer, TAG
    return TAG(html).flatten(markmin_serializer).lstrip(' ')
示例#2
0
 def test_markdown(self):
     def markdown(text, tag=None, attributes={}):
         r = {None: re.sub('\s+',' ',text), \
              'h1':'#'+text+'\\n\\n', \
              'p':text+'\\n'}.get(tag,text)
         return r
     a=TAG('<h1>Header</h1><p>this is a     test</p>')
     ret = a.flatten(markdown)
     self.assertEqual(ret, '#Header\\n\\nthis is a test\\n')
示例#3
0
def pdflatex_from_html(html):
    if os.system('which pdflatex > /dev/null') == 0:
        markmin = TAG(html).element('body').flatten(markmin_serializer)
        out, warnings, errors = markmin2pdf(markmin)
        if errors:
            current.response.headers['Content-Type'] = 'text/html'
            raise HTTP(405, HTML(BODY(H1('errors'),
                                      UL(*errors),
                                      H1('warnings'),
                                      UL(*warnings))).xml())
        else:
            return XML(out)
示例#4
0
def html_to_markmin(html):
    """
    Replace HTML with Markmin, converting unicode to references first

    >>> html_to_markmin('<p class="foo"><b>Bold</b><i>Italics</i><ol><li>Item 1</li><li><a href="http://kvasir.io">Kvasir</a></li></ol><br>')
    "**Bold**''Italics''\n- Item 1\n- [[Kvasir http://kvasir.io]]\n\n\n\n"
    >>> html_to_markmin(u'<p>asdfsadf</p>')
    'asdfsadf\n\n'
    >>> html_to_markmin(u'<p>\ufffdq\ufffd</p>')
    '\xef\xbf\xbdq\xef\xbf\xbd\n\n'
    >>> html_to_markmin('[[ a link http://url.com]]')
    '[[a link http://url.com]]'
    """
    if html is None:
        return ''
    from gluon.html import markmin_serializer, TAG
    html = html.encode('ascii', 'xmlcharrefreplace')    # cleanup unicode
    html = TAG(html).flatten(markmin_serializer)        # turn to markmin
    html = html.replace('[[ ', '[[')                      # fix bad url
    html = html.replace(' ]]', ']]')                      # fix bad url
    return html
示例#5
0
def latex_from_html(html):
    markmin = TAG(html).element('body').flatten(markmin_serializer)
    return XML(markmin2latex(markmin))