Tanka.Markdown.MarkdownParser.Parse C# (CSharp) Method

Parse() public method

public Parse ( string markdown ) : Document
markdown string
return Document
        public Document Parse(string markdown)
        {
            foreach (IPreprocessor processor in Pre)
            {
                markdown = processor.Process(markdown);
            }

            var blocks = new List<Block>();

            if (string.IsNullOrWhiteSpace(markdown))
                return new Document(blocks, markdown);

            var markdownContent = new StringRange(markdown);

            foreach (Block block in ParseBlocks(markdownContent))
            {
                // skip empty paragraphs
                var paragraph = block as Paragraph;
                if (paragraph != null)
                {
                    if (paragraph.IsEmpty())
                        continue;
                }

                // skip empty lines
                if (_skipEmptyLines && block is EmptyLine)
                    continue;

                blocks.Add(block);
            }

            ResolveReferences(blocks);

            return new Document(blocks, markdown);
        }

Usage Example

        public void RenderHeadings()
        {
            // arrange
            var markdown = new StringBuilder();
            markdown.AppendLine("# heading 1");
            markdown.AppendLine("## heading 2");
            markdown.AppendLine("### heading 3");
            markdown.AppendLine("Heading");
            markdown.AppendLine("=======");
            markdown.AppendLine("Heading");
            markdown.AppendLine("-------");

            var expectedHtml = new StringBuilder();
            expectedHtml.Append("<h1>heading 1</h1>");
            expectedHtml.Append("<h2>heading 2</h2>");
            expectedHtml.Append("<h3>heading 3</h3>");
            expectedHtml.Append("<h1>Heading</h1>");
            expectedHtml.Append("<h2>Heading</h2>");

            var parser = new MarkdownParser();
            var renderer = new MarkdownHtmlRenderer();

            // act
            Document document = parser.Parse(markdown.ToString());
            string html = renderer.Render(document).Replace("\r\n", "");

            // assert
            html.ShouldBeEquivalentTo(expectedHtml.ToString());
        }
All Usage Examples Of Tanka.Markdown.MarkdownParser::Parse