Skip to content

Commit

Permalink
[BUGFIX] allow ** to deep match all documents
Browse files Browse the repository at this point in the history
(cherry picked from commit f23cbdc)
  • Loading branch information
jaapio committed Sep 25, 2024
1 parent 93538f7 commit 7fafc21
Show file tree
Hide file tree
Showing 17 changed files with 225 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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
{
Expand Down Expand Up @@ -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('/(?<!\*)\*(?!\*)/', '[^\/]*', $file);
assert(is_string($file));
$file = preg_replace('/\*{2}/', '.*', $file);
$pattern = '`^' . $file . '$`';

return preg_match($pattern, $prefix . $documentEntryFile) > 0;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
<!-- content start -->
<div class="section" id="document-title">
<h1>Document Title</h1>

<p>Lorem Ipsum Dolor.</p>

<div class="toc">
<ul class="menu-level">
<li class="toc-item">
<a href="/level-1-1/index.html#level-1-1">Level 1-1</a>


</li>
<li class="toc-item">
<a href="/level-1-1/level-2-1/index.html#level-2-1">Level 2-1</a>


</li>
<li class="toc-item">
<a href="/level-1-1/level-2-1/subpage1.html#subpage-1-level-2-1">Subpage 1, Level 2-1</a>


</li>
<li class="toc-item">
<a href="/level-1-1/level-2-1/subpage2.html#subpage-2-level-2-1">Subpage 2, Level 2-1</a>


</li>
<li class="toc-item">
<a href="/level-1-1/level-2-2/index.html#level-2-2">Level 2-2</a>


</li>
<li class="toc-item">
<a href="/level-1-1/level-2-2/subpage1.html#subpage-1-level-2-2">Subpage 1, Level 2-2</a>


</li>
<li class="toc-item">
<a href="/level-1-1/level-2-2/subpage2.html#subpage-1-level-2-2">Subpage 1, Level 2-2</a>


</li>
<li class="toc-item">
<a href="/level-1-1/subpage1.html#subpage-1-level-1-1">Subpage 1, Level 1-1</a>


</li>
<li class="toc-item">
<a href="/level-1-1/subpage2.html#subpage-2-level-1-1">Subpage 2, Level 1-1</a>


</li>
<li class="toc-item">
<a href="/level-1-2/index.html#level-1-2">Level 1-2</a>


</li>
<li class="toc-item">
<a href="/level-1-2/subpage1.html#subpage-1-level-1-2">Subpage 1, Level 1-2</a>


</li>
<li class="toc-item">
<a href="/level-1-2/subpage2.html#subpage-1-level-1-2">Subpage 1, Level 1-2</a>


</li>
<li class="toc-item">
<a href="/page1.html#page-1">Page 1</a>

<ul class="section-level-1">
<li class="toc-item">
<a href="/page1.html#page-1-level-2">Page 1 Level 2</a>

<ul class="section-level-2">
<li class="toc-item">
<a href="/page1.html#page-1-level-3">Page 1 Level 3</a>

<ul class="section-level-2">
<li class="toc-item">
<a href="/page1.html#page-1-level-4">Page 1 Level 4</a>


</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="toc-item">
<a href="/page2.html#page-2">Page 2</a>

<ul class="section-level-1">
<li class="toc-item">
<a href="/page2.html#page-2-level-2">Page 2 Level 2</a>

<ul class="section-level-2">
<li class="toc-item">
<a href="/page2.html#page-2-level-3">Page 2 Level 3</a>

<ul class="section-level-2">
<li class="toc-item">
<a href="/page2.html#page-2-level-4">Page 2 Level 4</a>


</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- content end -->
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
==============
Document Title
==============

Lorem Ipsum Dolor.

.. toctree::
:glob:

**
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
=========
Level 1-1
=========

Lorem Ipsum Dolor.

A Definition List
Some definition.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
=========
Level 2-1
=========

A Toctree with multiple whitespaces in the directive:
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
====================
Subpage 1, Level 2-1
====================

Lorem Ipsum Dolor.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
====================
Subpage 2, Level 2-1
====================

Lorem Ipsum Dolor.
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
=========
Level 2-2
=========

A Toctree with multiple whitespaces in the directive:

Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
====================
Subpage 1, Level 2-2
====================

Lorem Ipsum Dolor.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
====================
Subpage 1, Level 2-2
====================

Lorem Ipsum Dolor.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
====================
Subpage 1, Level 1-1
====================

Lorem Ipsum Dolor.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
====================
Subpage 2, Level 1-1
====================

Lorem Ipsum Dolor.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
=========
Level 1-2
=========

A Toctree with multiple whitespaces in the directive:
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
====================
Subpage 1, Level 1-2
====================

Lorem Ipsum Dolor.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
====================
Subpage 1, Level 1-2
====================

Lorem Ipsum Dolor.
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
======
Page 1
======

Lorem Ipsum Dolor.

Page 1 Level 2
--------------

Page 1 Level 3
~~~~~~~~~~~~~~

Page 1 Level 4
""""""""""""""
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
======
Page 2
======

Lorem Ipsum Dolor.

Page 2 Level 2
--------------

Page 2 Level 3
~~~~~~~~~~~~~~

Page 2 Level 4
""""""""""""""

0 comments on commit 7fafc21

Please sign in to comment.