diff --git a/packages/guides/src/Compiler/NodeTransformers/DocumentEntryRegistrationTransformer.php b/packages/guides/src/Compiler/NodeTransformers/DocumentEntryRegistrationTransformer.php index 16ef5fed4..7f3d15216 100644 --- a/packages/guides/src/Compiler/NodeTransformers/DocumentEntryRegistrationTransformer.php +++ b/packages/guides/src/Compiler/NodeTransformers/DocumentEntryRegistrationTransformer.php @@ -66,6 +66,7 @@ public function leaveNode(Node $node, CompilerContextInterface $compilerContext) $node->getTitle() ?? TitleNode::emptyNode(), $node->isRoot(), $additionalData, + $node->isOrphan(), ); $compilerContext->getProjectNode()->addDocumentEntry($entry); diff --git a/packages/guides/src/Compiler/NodeTransformers/MenuNodeTransformers/GlobMenuEntryNodeTransformer.php b/packages/guides/src/Compiler/NodeTransformers/MenuNodeTransformers/GlobMenuEntryNodeTransformer.php index 5ed5fec51..d18d6c952 100644 --- a/packages/guides/src/Compiler/NodeTransformers/MenuNodeTransformers/GlobMenuEntryNodeTransformer.php +++ b/packages/guides/src/Compiler/NodeTransformers/MenuNodeTransformers/GlobMenuEntryNodeTransformer.php @@ -49,6 +49,10 @@ protected function handleMenuEntry(MenuNode $currentMenu, MenuEntryNode $entryNo $globExclude = explode(',', $currentMenu->getOption('globExclude') . ''); $menuEntries = []; foreach ($documentEntries as $documentEntry) { + if ($documentEntry->isOrphan()) { + continue; + } + if ( !self::matches($documentEntry->getFile(), $entryNode, $currentPath, $globExclude) ) { diff --git a/packages/guides/src/Nodes/DocumentTree/DocumentEntryNode.php b/packages/guides/src/Nodes/DocumentTree/DocumentEntryNode.php index 6dfac5ad5..715f9ca90 100644 --- a/packages/guides/src/Nodes/DocumentTree/DocumentEntryNode.php +++ b/packages/guides/src/Nodes/DocumentTree/DocumentEntryNode.php @@ -34,6 +34,7 @@ public function __construct( private readonly TitleNode $titleNode, private readonly bool $isRoot = false, private array $additionalData = [], + private bool $orphan = false, ) { } @@ -109,6 +110,11 @@ public function getAdditionalData(string $key): Node|null return $this->additionalData[$key] ?? null; } + public function isOrphan(): bool + { + return $this->orphan; + } + public function addAdditionalData(string $key, Node $value): void { $this->additionalData[$key] = $value; diff --git a/tests/Integration/tests-full/automatic_menu/automatic-default-menu/input/doNotInclude.rst b/tests/Integration/tests-full/automatic_menu/automatic-default-menu/input/doNotInclude.rst new file mode 100644 index 000000000..a513f2e2e --- /dev/null +++ b/tests/Integration/tests-full/automatic_menu/automatic-default-menu/input/doNotInclude.rst @@ -0,0 +1,6 @@ +:orphan: + +Do not Include in menu +====================== + +This is an orphan an must be ignored by glob patterns \ No newline at end of file diff --git a/tests/Integration/tests/toctree/toctree-glob-level-1/input/doNotInclude.rst b/tests/Integration/tests/toctree/toctree-glob-level-1/input/doNotInclude.rst new file mode 100644 index 000000000..a513f2e2e --- /dev/null +++ b/tests/Integration/tests/toctree/toctree-glob-level-1/input/doNotInclude.rst @@ -0,0 +1,6 @@ +:orphan: + +Do not Include in menu +====================== + +This is an orphan an must be ignored by glob patterns \ No newline at end of file