예제 #1
0
    def test_published_body(self):
        article = mommy.make('djblog.Article', body='hello')

        self.mock.StubOutWithMock(Markdown, 'render')
        Markdown.render('hello').AndReturn('converted text')

        self.mock.ReplayAll()
        a = article.published_body()
        self.mock.VerifyAll()

        self.assertEqual(a, 'converted text')
예제 #2
0
파일: MDtoANKI.py 프로젝트: pyrusx/Ankify
def singlecard(md_file):
    '''converts single md file'''

    renderer = simple()  #Picks which generator to use, cloze or simple
    inline = HighlightsInlineLexer(renderer)
    inline.enable_highlights()
    md = Markdown(renderer=renderer, inline=inline)
    text = open(md_file, encoding='utf-8').read()
    html = md.render(text)
    html = html.replace('\n', '')
    html = html.replace(f'{card_left}', '\n')
    html = html.replace(f'{card_right}', f'{delimiter}')
    html = html.replace('<p>\n', '', 1)
    html = html.replace('images/', '')
    return html
예제 #3
0
def markdown(text):
    from mistune import Markdown, Renderer, escape
    from pygments import highlight
    from pygments.lexers import get_lexer_by_name
    from pygments.formatters import HtmlFormatter

    class ExtRenderer(Renderer):
        def block_code(self, code, lang):
            if not lang:
                return '\n<pre><code>%s</code></pre>\n' % escape(code)
            lexer = get_lexer_by_name(lang, stripall=True, startinline=True)
            formatter = HtmlFormatter()
            return highlight(code, lexer, formatter)

    md = Markdown(
        renderer=ExtRenderer(use_xhtml=True),
        escape=False, hard_wrap=True
    )
    return md.render(text)
예제 #4
0
def render_markdown(source_file, config, **kwargs):
    """ Renders a Markdown ``source_file`` into an HTML string. """
    rend = Markdown()
    body_html = rend.render(source_file.read_text())
    return text_to_response(source_file, config, body_html, **kwargs)
예제 #5
0
파일: test.py 프로젝트: pyrusx/Ankify
        return f'<mark>{text}</mark>'


class WikiLinkInlineLexer(InlineLexer):
    def enable_wiki_link(self):
        # add wiki_link rules
        self.rules.wiki_link = re.compile(r'=='  # [[
                                          r'([\s\S]+?)'  # Page 2|Page 2
                                          r'=='  # ]]
                                          )

        # Add wiki_link parser to default rules
        # you can insert it some place you like
        # but place matters, maybe 3 is not good
        self.default_rules.insert(1, 'wiki_link')

    def output_wiki_link(self, m):
        text = m.group(1)
        # you can create an custom render
        # you can also return the html if you like
        return self.renderer.wiki_link(text)


renderer = WikiLinkRenderer()
inline = WikiLinkInlineLexer(renderer)
# enable the feature
inline.enable_wiki_link()
markdown = Markdown(renderer, inline=inline)
text = '==Works only== for Mac as of now. Will add Windows version later.'
html = markdown.render(text)
print(html)
예제 #6
0
 def published_body(self):
     md = Markdown(renderer=SyntaxHighlightRenderer())
     return md.render(self.body)
예제 #7
0
 def published_body(self):
     md = Markdown(renderer=SyntaxHighlightRenderer())
     return md.render(self.body)