#934·parsedown

Fix: extractElement() undefined index when 'element' is missing

Author: peterujahCreated Apr 24, 2026Updated Apr 24, 2026

https://github.com/erusev/parsedown/blob/4e433a8d57078645b55d21fd12c887d3ba6ca01e/Parsedown.php#L319

Problem

The extractElement() method will trigger an "undefined index" notice when $Component['element'] is not set and neither markup nor hidden exists.

Current behavior

php
$component = [];

$result = $this->extractElement($component);
// Notice: Undefined index 'element'

The method assumes element will always be set.


Suggested fix

Ensure a safe fallback when element is not defined:

php
protected function extractElement(array $Component)
{
    if (!isset($Component['element']))
    {
        $Component['element'] = array();

        if (isset($Component['markup']))
        {
            $Component['element'] = array('rawHtml' => $Component['markup']);
        }
    }

    return $Component['element'];
}