optimize/improve parser regex
This commit is contained in:
orang tua
9abfa1f2b7
melakukan
d3ab505f51
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);
|
||||
|
Memuat…
Reference in New Issue
Block a user