parser: Render <code> and <blockquote> preformated

This commit is contained in:
Albert S. 2022-11-08 08:47:53 +01:00
부모 78b9e5e043
커밋 fbfe5510a1

파일 보기

@ -155,8 +155,11 @@ std::string Parser::parse(const PageDao &pagedao, UrlProvider &provider, const s
{
std::string tag = match.str(1);
std::string content = match.str(2);
std::string justreplace[] = {"b", "i", "u", "ul", "li", "ol", "code", "blockquote"};
content = parse(pagedao, provider, content, callback);
std::string justreplace[] = {"b", "i", "u", "ul", "li", "ol"};
if(tag != "code" && tag != "blockquote")
{
content = parse(pagedao, provider, content, callback);
}
if(std::find(std::begin(justreplace), std::end(justreplace), tag) != std::end(justreplace))
{
return "<" + tag + ">" + content + "</" + tag + ">";
@ -175,6 +178,10 @@ std::string Parser::parse(const PageDao &pagedao, UrlProvider &provider, const s
{
return "<" + tag + " id='" + content + "'>" + content + "</" + tag + ">";
}
if(tag == "code" || tag == "blockquote")
{
return "<pre><" + tag + ">"+ utils::strreplace(content, "\r\n", "\n") + "</"+tag+"></pre>";
}
return callback(tag, content);
});
result = utils::strreplace(result, "\r\n", "<br>");