diff --git a/packages/guides/src/Compiler/NodeTransformers/MenuNodeTransformers/GlobMenuEntryNodeTransformer.php b/packages/guides/src/Compiler/NodeTransformers/MenuNodeTransformers/GlobMenuEntryNodeTransformer.php index 16484f525..5ed5fec51 100644 --- a/packages/guides/src/Compiler/NodeTransformers/MenuNodeTransformers/GlobMenuEntryNodeTransformer.php +++ b/packages/guides/src/Compiler/NodeTransformers/MenuNodeTransformers/GlobMenuEntryNodeTransformer.php @@ -27,8 +27,9 @@ use function explode; use function implode; use function in_array; +use function is_string; use function preg_match; -use function str_replace; +use function preg_replace; final class GlobMenuEntryNodeTransformer extends AbstractMenuEntryNodeTransformer { @@ -137,7 +138,9 @@ private static function matches(string $actualFile, GlobMenuEntryNode $parsedMen private static function isGlob(string $documentEntryFile, string $currentPath, string $file, string $prefix, array $globExclude): bool { if (!in_array($documentEntryFile, $globExclude, true)) { - $file = str_replace('*', '[^\/]*', $file); + $file = preg_replace('/(? 0; diff --git a/tests/Integration/tests/toctree/toctree-glob-deep-level-3/expected/index.html b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/expected/index.html new file mode 100644 index 000000000..7f33b6846 --- /dev/null +++ b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/expected/index.html @@ -0,0 +1,118 @@ + +
+

Document Title

+ +

Lorem Ipsum Dolor.

+ +
+ +
+
+ diff --git a/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/index.rst b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/index.rst new file mode 100644 index 000000000..0f2651c64 --- /dev/null +++ b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/index.rst @@ -0,0 +1,10 @@ +============== +Document Title +============== + +Lorem Ipsum Dolor. + +.. toctree:: + :glob: + + ** diff --git a/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/index.rst b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/index.rst new file mode 100644 index 000000000..761253b85 --- /dev/null +++ b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/index.rst @@ -0,0 +1,8 @@ +========= +Level 1-1 +========= + +Lorem Ipsum Dolor. + +A Definition List + Some definition. diff --git a/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/level-2-1/index.rst b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/level-2-1/index.rst new file mode 100644 index 000000000..6d2c3be7c --- /dev/null +++ b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/level-2-1/index.rst @@ -0,0 +1,5 @@ +========= +Level 2-1 +========= + +A Toctree with multiple whitespaces in the directive: diff --git a/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/level-2-1/subpage1.rst b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/level-2-1/subpage1.rst new file mode 100644 index 000000000..cb49d6baa --- /dev/null +++ b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/level-2-1/subpage1.rst @@ -0,0 +1,5 @@ +==================== +Subpage 1, Level 2-1 +==================== + +Lorem Ipsum Dolor. diff --git a/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/level-2-1/subpage2.rst b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/level-2-1/subpage2.rst new file mode 100644 index 000000000..ceea6a3d4 --- /dev/null +++ b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/level-2-1/subpage2.rst @@ -0,0 +1,5 @@ +==================== +Subpage 2, Level 2-1 +==================== + +Lorem Ipsum Dolor. diff --git a/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/level-2-2/index.rst b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/level-2-2/index.rst new file mode 100644 index 000000000..bbd7723d3 --- /dev/null +++ b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/level-2-2/index.rst @@ -0,0 +1,6 @@ +========= +Level 2-2 +========= + +A Toctree with multiple whitespaces in the directive: + diff --git a/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/level-2-2/subpage1.rst b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/level-2-2/subpage1.rst new file mode 100644 index 000000000..fb4915895 --- /dev/null +++ b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/level-2-2/subpage1.rst @@ -0,0 +1,5 @@ +==================== +Subpage 1, Level 2-2 +==================== + +Lorem Ipsum Dolor. diff --git a/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/level-2-2/subpage2.rst b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/level-2-2/subpage2.rst new file mode 100644 index 000000000..fb4915895 --- /dev/null +++ b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/level-2-2/subpage2.rst @@ -0,0 +1,5 @@ +==================== +Subpage 1, Level 2-2 +==================== + +Lorem Ipsum Dolor. diff --git a/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/subpage1.rst b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/subpage1.rst new file mode 100644 index 000000000..ba6aa0052 --- /dev/null +++ b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/subpage1.rst @@ -0,0 +1,5 @@ +==================== +Subpage 1, Level 1-1 +==================== + +Lorem Ipsum Dolor. diff --git a/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/subpage2.rst b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/subpage2.rst new file mode 100644 index 000000000..06615899a --- /dev/null +++ b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/subpage2.rst @@ -0,0 +1,5 @@ +==================== +Subpage 2, Level 1-1 +==================== + +Lorem Ipsum Dolor. diff --git a/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-2/index.rst b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-2/index.rst new file mode 100644 index 000000000..3fd821de6 --- /dev/null +++ b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-2/index.rst @@ -0,0 +1,5 @@ +========= +Level 1-2 +========= + +A Toctree with multiple whitespaces in the directive: diff --git a/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-2/subpage1.rst b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-2/subpage1.rst new file mode 100644 index 000000000..0371975a0 --- /dev/null +++ b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-2/subpage1.rst @@ -0,0 +1,5 @@ +==================== +Subpage 1, Level 1-2 +==================== + +Lorem Ipsum Dolor. diff --git a/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-2/subpage2.rst b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-2/subpage2.rst new file mode 100644 index 000000000..0371975a0 --- /dev/null +++ b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-2/subpage2.rst @@ -0,0 +1,5 @@ +==================== +Subpage 1, Level 1-2 +==================== + +Lorem Ipsum Dolor. diff --git a/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/page1.rst b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/page1.rst new file mode 100644 index 000000000..9a1df3ce9 --- /dev/null +++ b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/page1.rst @@ -0,0 +1,14 @@ +====== +Page 1 +====== + +Lorem Ipsum Dolor. + +Page 1 Level 2 +-------------- + +Page 1 Level 3 +~~~~~~~~~~~~~~ + +Page 1 Level 4 +"""""""""""""" diff --git a/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/page2.rst b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/page2.rst new file mode 100644 index 000000000..cdd19d739 --- /dev/null +++ b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/page2.rst @@ -0,0 +1,14 @@ +====== +Page 2 +====== + +Lorem Ipsum Dolor. + +Page 2 Level 2 +-------------- + +Page 2 Level 3 +~~~~~~~~~~~~~~ + +Page 2 Level 4 +""""""""""""""