diff --git a/src/index.php b/src/index.php new file mode 100644 index 0000000..e536e27 --- /dev/null +++ b/src/index.php @@ -0,0 +1,36 @@ + [ + /** + * Add IDs to headings in a field + */ + 'headingIds' => function (Field $field): Field { + if ($field->isNotEmpty() === true) { + $dom = new Dom($field->value); + $levels = [ + 'h1', + 'h2', + 'h3', + 'h4', + 'h5', + 'h6', + ]; + $query = '//*[self::' . implode(' or self::', $levels) . ']'; + $elements = $dom->query($query); + + foreach ($elements as $element) { + $element->setAttribute('id', Str::slug($element->nodeValue)); + } + + $field->value = $dom->toString(); + } + + return $field; + }, + ], +]);