optimize/improve parser regex
このコミットが含まれているのは:
		
							
								
								
									
										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.
 | 
			
		||||
@@ -110,7 +110,7 @@ std::string Parser::processLink(const PageDao &pageDao, UrlProvider &urlProvider
 | 
			
		||||
		{
 | 
			
		||||
			htmllink.cssclass = "notexists";
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
 | 
			
		||||
		htmllink.href = urlProvider.page(htmllink.href);
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
@@ -123,7 +123,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);
 | 
			
		||||
 
 | 
			
		||||
		新しいイシューから参照
	
	ユーザーをブロックする