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);
}