Todaymade\Daux\Format\HTML\ContentTypes\Markdown\TOC\Processor::ensureHeadingHasId PHP Метод

ensureHeadingHasId() защищенный Метод

protected ensureHeadingHasId ( Heading $node )
$node League\CommonMark\Block\Element\Heading
    protected function ensureHeadingHasId(Heading $node)
    {
        // If the node has an ID, no need to generate it
        $attributes = $node->getData('attributes', []);
        if (array_key_exists('id', $attributes) && !empty($attributes['id'])) {
            // TODO :: check for uniqueness
            return;
        }
        // Well, seems we have to generate an ID
        $walker = $node->walker();
        $inside = [];
        while ($event = $walker->next()) {
            $insideNode = $event->getNode();
            if ($insideNode instanceof Heading) {
                continue;
            }
            $inside[] = $insideNode;
        }
        $text = '';
        foreach ($inside as $other) {
            if ($other instanceof Text) {
                $text .= ' ' . $other->getContent();
            }
        }
        $text = 'page_' . DauxHelper::slug(trim($text));
        // TODO :: check for uniqueness
        $node->data['attributes']['id'] = $text;
    }