]> BookStack Code Mirror - bookstack/blobdiff - app/Entities/Tools/PageContent.php
feat(PageContent): set unique ids on nested headers
[bookstack] / app / Entities / Tools / PageContent.php
index 45bfe8fa1740bf0c9c33cbd2432967a74cd73547..c8204a18186893c874f03dcdb65e820e03c3d638 100644 (file)
@@ -193,6 +193,15 @@ class PageContent
             }
         }
 
+        // Set ids on nested header nodes
+        $nestedHeaders = $xPath->query('//body//*//h1|//body//*//h2|//body//*//h3|//body//*//h4|//body//*//h5|//body//*//h6');
+        foreach ($nestedHeaders as $nestedHeader) {
+            [$oldId, $newId] = $this->setUniqueId($nestedHeader, $idMap);
+            if ($newId && $newId !== $oldId) {
+                $this->updateLinks($xPath, '#' . $oldId, '#' . $newId);
+            }
+        }
+
         // Ensure no duplicate ids within child items
         $idElems = $xPath->query('//body//*//*[@id]');
         foreach ($idElems as $domElem) {