optimize/improve parser regex
This commit is contained in:
parent
da2a5b10fe
commit
c1812edd07
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);
|
||||||
|
Loading…
Reference in New Issue
Block a user