optimize/improve parser regex

This commit is contained in:
Albert S. 2018-11-10 22:44:19 +01:00
부모 da2a5b10fe
커밋 c1812edd07
2개의 변경된 파일2개의 추가작업 그리고 10개의 파일을 삭제

9
TODO
파일 보기

@ -1,9 +0,0 @@
search: allow all chars (filter sqlite match syntax)
add permission indicating whether user can see "invisible" pages in lists
diff
Redirection
UI for permission system.
user administration
user registration
more caching
not all config values take effect yet.

파일 보기

@ -120,7 +120,8 @@ std::string Parser::processLink(const PageDao &pageDao, UrlProvider &urlProvider
std::string Parser::parse(const PageDao &pagedao, UrlProvider &provider, std::string content) const
{
std::string result;
std::regex tagfinder(R"(\[(.*?)\]((\s|\S)*?)\[/\1\])");
// we don't care about commands, but we nevertheless replace them with empty strings
std::regex tagfinder(R"(\[(b|i|u|li||ul|ol|link|wikilink|h\d|cmd:rename|cmd:redirect)*?\]((\s|\S)*?)\[/\1])");
result = utils::regex_callback_replacer(tagfinder, content, [&](std::smatch &match) {
std::string tag = match.str(1);
std::string content = match.str(2);