From 5be7d42675e2740ef57d414e7038b3194e950467 Mon Sep 17 00:00:00 2001 From: "lina.wolf" Date: Mon, 6 Jan 2025 16:02:15 +0100 Subject: [PATCH] [BUGFIX] Make title links link to the first anchor of a section This prevents collisions. (cherry picked from commit 25afe0d41b4daaa27ce29ce26610bc8ded1ca1ec) --- .../NodeTransformers/CollectLinkTargetsTransformer.php | 9 ++++++++- .../anchor/anchor-to-page/expected/objects.inv.json | 2 +- .../tests/images/image-target/expected/index.html | 2 +- .../inventory_ref_json/expected/objects.inv.json | 6 +++--- .../reference-to-anchor/expected/objects.inv.json | 2 +- 5 files changed, 14 insertions(+), 7 deletions(-) diff --git a/packages/guides/src/Compiler/NodeTransformers/CollectLinkTargetsTransformer.php b/packages/guides/src/Compiler/NodeTransformers/CollectLinkTargetsTransformer.php index 93c78893a..90c17e375 100644 --- a/packages/guides/src/Compiler/NodeTransformers/CollectLinkTargetsTransformer.php +++ b/packages/guides/src/Compiler/NodeTransformers/CollectLinkTargetsTransformer.php @@ -87,9 +87,16 @@ public function enterNode(Node $node, CompilerContextInterface $compilerContext) $currentDocument = $this->documentStack->top(); Assert::notNull($currentDocument); $anchorName = $node->getId(); + foreach ($node->getChildren() as $childNode) { + if ($childNode instanceof AnchorNode) { + $anchorName = $childNode->getValue(); + break; + } + } + try { $compilerContext->getProjectNode()->addLinkTarget( - $anchorName, + $node->getId(), new InternalTarget( $currentDocument->getFilePath(), $anchorName, diff --git a/tests/Integration/tests/anchor/anchor-to-page/expected/objects.inv.json b/tests/Integration/tests/anchor/anchor-to-page/expected/objects.inv.json index a62942b06..085db71f9 100644 --- a/tests/Integration/tests/anchor/anchor-to-page/expected/objects.inv.json +++ b/tests/Integration/tests/anchor/anchor-to-page/expected/objects.inv.json @@ -43,7 +43,7 @@ "overview": [ "-", "-", - "sphinx-overview.html#overview", + "sphinx-overview.html#sphinx-overview", "Overview" ] } diff --git a/tests/Integration/tests/images/image-target/expected/index.html b/tests/Integration/tests/images/image-target/expected/index.html index 88c0cced9..0494bd042 100644 --- a/tests/Integration/tests/images/image-target/expected/index.html +++ b/tests/Integration/tests/images/image-target/expected/index.html @@ -35,7 +35,7 @@

Link image to reference