Improvements for markdown parsing.
This commit is contained in:
parent
fc44290e3f
commit
8705859115
40 changed files with 957 additions and 537 deletions
|
@ -11,7 +11,9 @@
|
|||
#include "TestFramework.h"
|
||||
#include "TestUtils.h"
|
||||
|
||||
TEST_CASE(TestMarkdownParser, "web")
|
||||
#include <iostream>
|
||||
|
||||
TEST_CASE(TestMarkdownParser, "[web]")
|
||||
{
|
||||
File md_file(TestUtils::getTestDataDir() / "sample_markdown.md");
|
||||
const auto md_content = md_file.readText();
|
||||
|
@ -19,12 +21,59 @@ TEST_CASE(TestMarkdownParser, "web")
|
|||
MarkdownParser parser;
|
||||
auto md_doc = parser.run(md_content);
|
||||
|
||||
std::vector<MarkdownElement::Type> expected_top_level = {
|
||||
MarkdownElement::Type::HEADING,
|
||||
MarkdownElement::Type::PARAGRAPH,
|
||||
MarkdownElement::Type::HEADING,
|
||||
MarkdownElement::Type::PARAGRAPH,
|
||||
MarkdownElement::Type::MULTILINE_QUOTE,
|
||||
MarkdownElement::Type::PARAGRAPH,
|
||||
MarkdownElement::Type::HEADING,
|
||||
MarkdownElement::Type::PARAGRAPH
|
||||
};
|
||||
|
||||
REQUIRE(expected_top_level.size() <= md_doc->getNumElements());
|
||||
for(unsigned idx=0; idx<expected_top_level.size(); idx++)
|
||||
{
|
||||
REQUIRE(md_doc->getElement(idx)->getType() == expected_top_level[idx]);
|
||||
}
|
||||
|
||||
MarkdownConverter converter;
|
||||
auto html = converter.convert(md_doc.get());
|
||||
|
||||
HtmlWriter writer;
|
||||
const auto html_string = writer.toString(html.get());
|
||||
|
||||
File html_file(TestUtils::getTestOutputDir() / "TestMarkdownParserOut.html");
|
||||
File html_file(TestUtils::getTestOutputDir(__FILE__) / "TestMarkdownParser.html");
|
||||
html_file.writeText(html_string);
|
||||
}
|
||||
|
||||
TEST_CASE(TestMarkdownParser_Simple, "[web]")
|
||||
{
|
||||
File md_file(TestUtils::getTestDataDir() / "simple_markdown.md");
|
||||
const auto md_content = md_file.readText();
|
||||
|
||||
REQUIRE(!md_content.empty());
|
||||
|
||||
MarkdownParser parser;
|
||||
auto md_doc = parser.run(md_content);
|
||||
|
||||
std::vector<MarkdownElement::Type> expected_top_level = {
|
||||
MarkdownElement::Type::PARAGRAPH,
|
||||
MarkdownElement::Type::BULLET_LIST};
|
||||
|
||||
//REQUIRE(expected_top_level.size() <= md_doc->getNumElements());
|
||||
for(unsigned idx=0; idx<expected_top_level.size(); idx++)
|
||||
{
|
||||
//REQUIRE(md_doc->getElement(idx)->getType() == expected_top_level[idx]);
|
||||
}
|
||||
|
||||
MarkdownConverter converter;
|
||||
auto html = converter.convert(md_doc.get());
|
||||
|
||||
HtmlWriter writer;
|
||||
const auto html_string = writer.toString(html.get());
|
||||
|
||||
File html_file(TestUtils::getTestOutputDir(__FILE__) / "TestMarkdownParser_simple.html");
|
||||
html_file.writeText(html_string);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue