27 γραμμές
722 B
C++
27 γραμμές
722 B
C++
#include "parsermarkdown.h"
|
|
|
|
ParserMarkdown::ParserMarkdown()
|
|
{
|
|
|
|
}
|
|
|
|
std::vector<Headline> ParserMarkdown::extractHeadlines(std::string content) const
|
|
{
|
|
std::vector<Headline> result;
|
|
utils::regex_callback_extractor(std::regex(R"((#{1,6}) (.*))"), content, [&](std::smatch &smatch) {
|
|
Headline h;
|
|
h.level = smatch.str(1).length();
|
|
h.title = smatch.str(2);
|
|
result.push_back(h);
|
|
});
|
|
return result;
|
|
}
|
|
|
|
std::string ParserMarkdown::parse(const PageDao &pagedao, UrlProvider &provider, std::string content) const
|
|
{
|
|
std::shared_ptr<maddy::ParserConfig> config = std::make_shared<maddy::ParserConfig>();
|
|
auto maddy = std::make_shared<maddy::Parser>(config);
|
|
std::stringstream s { content };
|
|
return maddy->Parse(s);
|
|
}
|