class TestParser(unittest.TestCase):
    def setUp(self):
        self.parser = Parser()

    @given(text())
    @example('')
    @example('* unicode: \u2020')
    def test_text(self, s):
        self.parser.parse(s)
Beispiel #2
0
class TestParser(unittest.TestCase):
    def setUp(self):
        self.parser = Parser()

    @given(text())
    @example('')
    @example('* unicode: \u2020')
    def test_text(self, s):
        self.parser.parse(s)
Beispiel #3
0
 def __init__(
     self,
     markup: str,
     code_theme: str = "monokai",
     justify: JustifyValues = None,
     style: Union[str, Style] = "none",
 ) -> None:
     self.markup = markup
     parser = Parser()
     self.parsed = parser.parse(markup)
     self.code_theme = code_theme
     self.justify = justify
     self.style = style
Beispiel #4
0
 def __init__(
     self,
     markup: str,
     code_theme: str = "monokai",
     justify: JustifyMethod = None,
     style: Union[str, Style] = "none",
     hyperlinks: bool = True,
 ) -> None:
     self.markup = markup
     parser = Parser()
     self.parsed = parser.parse(markup)
     self.code_theme = code_theme
     self.justify = justify
     self.style = style
     self.hyperlinks = hyperlinks
Beispiel #5
0
 def __init__(
     self,
     markup: str,
     code_theme: str = "monokai",
     justify: Optional[JustifyMethod] = None,
     style: Union[str, Style] = "none",
     hyperlinks: bool = True,
     inline_code_lexer: Optional[str] = None,
     inline_code_theme: Optional[str] = None,
 ) -> None:
     self.markup = markup
     parser = Parser()
     self.parsed = parser.parse(markup)
     self.code_theme = code_theme
     self.justify = justify
     self.style = style
     self.hyperlinks = hyperlinks
     self.inline_code_lexer = inline_code_lexer
     self.inline_code_theme = inline_code_theme or code_theme
Beispiel #6
0
def commonmark(text, format="html"):
    """Render CommonMark into HTML, JSON or AST
    Optional keyword arguments:
    format:     'html' (default), 'json' or 'ast'

    >>> commonmark("*hello!*")
    '<p><em>hello</em></p>\\n'
    """
    parser = Parser()
    ast = parser.parse(text)
    if format not in ["html", "json", "ast", "rst"]:
        raise ValueError("format must be 'html', 'json' or 'ast'")
    if format == "html":
        renderer = HtmlRenderer()
        return renderer.render(ast)
    if format == "json":
        return dumpJSON(ast)
    if format == "ast":
        return dumpAST(ast)
    if format == "rst":
        renderer = ReStructuredTextRenderer()
        return renderer.render(ast)
Beispiel #7
0
    def test_normalize_contracts_text_nodes(self):
        md = '_a'
        ast = Parser().parse(md)

        def assert_text_literals(text_literals):
            walker = ast.walker()
            document, _ = walker.next()
            self.assertEqual(document.t, 'document')
            paragraph, _ = walker.next()
            self.assertEqual(paragraph.t, 'paragraph')
            for literal in text_literals:
                text, _ = walker.next()
                self.assertEqual(text.t, 'text')
                self.assertEqual(text.literal, literal)
            paragraph, _ = walker.next()
            self.assertEqual(paragraph.t, 'paragraph')

        assert_text_literals(['_', 'a'])
        ast.normalize()
        # assert text nodes are contracted
        assert_text_literals(['_a'])
        ast.normalize()
        # assert normalize() doesn't alter a normalized ast
        assert_text_literals(['_a'])
    def test_normalize_contracts_text_nodes(self):
        md = '_a'
        ast = Parser().parse(md)

        def assert_text_literals(text_literals):
            walker = ast.walker()
            document, _ = walker.next()
            self.assertEqual(document.t, 'document')
            paragraph, _ = walker.next()
            self.assertEqual(paragraph.t, 'paragraph')
            for literal in text_literals:
                text, _ = walker.next()
                self.assertEqual(text.t, 'text')
                self.assertEqual(text.literal, literal)
            paragraph, _ = walker.next()
            self.assertEqual(paragraph.t, 'paragraph')

        assert_text_literals(['_', 'a'])
        ast.normalize()
        # assert text nodes are contracted
        assert_text_literals(['_a'])
        ast.normalize()
        # assert normalize() doesn't alter a normalized ast
        assert_text_literals(['_a'])
 def test_dumpAST_orderedlist(self):
     md = '1.'
     ast = Parser().parse(md)
     commonmark.dumpAST(ast)
 def setUp(self):
     self.parser = Parser()
Beispiel #11
0
 def setUp(self):
     self.parser = Parser()