diff --git a/parser.cpp b/parser.cpp index dda824c..6b578fc 100644 --- a/parser.cpp +++ b/parser.cpp @@ -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 "
<" + tag + ">"+ utils::strreplace(content, "\r\n", "\n") + ""+tag+">"; + } return callback(tag, content); }); result = utils::strreplace(result, "\r\n", "