From dcc984e5bf80119a9b39fbd51c97253ef3dc9702 Mon Sep 17 00:00:00 2001 From: Wouter de Jong Date: Thu, 13 Jul 2023 12:28:51 +0200 Subject: [PATCH] Fix performance of InlineLexer by delaying URI scheme checking --- .../src/RestructuredText/Parser/InlineLexer.php | 2 +- tests/Functional/tests/guilabel/guilabel.html | 2 +- tests/Functional/tests/guilabel/guilabel.rst | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/guides-restructured-text/src/RestructuredText/Parser/InlineLexer.php b/packages/guides-restructured-text/src/RestructuredText/Parser/InlineLexer.php index ee58f322c..25a6a96bd 100644 --- a/packages/guides-restructured-text/src/RestructuredText/Parser/InlineLexer.php +++ b/packages/guides-restructured-text/src/RestructuredText/Parser/InlineLexer.php @@ -59,7 +59,6 @@ protected function getCatchablePatterns(): array return [ '\\\\``', // must be a separate case, as the next pattern would split in "\`" + "`", causing it to become a intepreted text '\\\\[\s\S]', // Escaping hell... needs escaped slash in regex, but also in php. - ExternalReferenceResolver::SUPPORTED_SCHEMAS . ':[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*[-a-zA-Z0-9()@%_\\+~#&\\/=]', // standalone hyperlinks '\\S+@\\S+\\.\\S+', '[a-z0-9-]+_{2}', //Inline href. '[a-z0-9-]+_{1}(?=[\s\.+]|$)', //Inline href. @@ -76,6 +75,7 @@ protected function getCatchablePatterns(): array '|', '\\*\\*', '\\*', + '\b(?Lorem ipsum dolor sit amet Foo Bar.

-

Lorem ipsum dolor sit ametFoo Bar.

+

Lorem ipsum dolor sit amet:guilabel:Foo Bar.

Lorem ipsum dolor sit amet Foo-Bar.

diff --git a/tests/Functional/tests/guilabel/guilabel.rst b/tests/Functional/tests/guilabel/guilabel.rst index ad1b821da..c2d82b70d 100644 --- a/tests/Functional/tests/guilabel/guilabel.rst +++ b/tests/Functional/tests/guilabel/guilabel.rst @@ -3,4 +3,4 @@ Lorem ipsum dolor sit amet :guilabel:`Foo Bar`. Lorem ipsum dolor sit amet:guilabel:`Foo Bar`. -Lorem ipsum dolor sit amet :guilabel:`Foo-Bar`. \ No newline at end of file +Lorem ipsum dolor sit amet :guilabel:`Foo-Bar`.