optimize/improve parser regex
This commit is contained in:
		
							
								
								
									
										9
									
								
								TODO
									
									
									
									
									
								
							
							
						
						
									
										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 Parser::parse(const PageDao &pagedao, UrlProvider &provider, std::string content) const | ||||||
| { | { | ||||||
| 	std::string result; | 	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) { | 	result = utils::regex_callback_replacer(tagfinder, content, [&](std::smatch &match) { | ||||||
| 		std::string tag = match.str(1); | 		std::string tag = match.str(1); | ||||||
| 		std::string content = match.str(2); | 		std::string content = match.str(2); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user