options['username_with_color'] = $options['username_with_color'] ?: false; // Special Block $this->inlineMarkerList .= '@'; $this->InlineTypes['@'][] = 'SpecialBlock'; // https://gist.github.com/ShNURoK42/b5ce8baa570975db487c $this->InlineTypes['@'][] = 'UserMention'; } // https://github.com/taufik-nurrohman/parsedown-extra-plugin/blob/1653418c5a9cf5277cd28b0b23ba2d95d18e9bc4/ParsedownExtraPlugin.php#L340-L345 protected function doGetAttributes($Element) { if (isset($Element['attributes'])) { return (array) $Element['attributes']; } return array(); } // https://github.com/taufik-nurrohman/parsedown-extra-plugin/blob/1653418c5a9cf5277cd28b0b23ba2d95d18e9bc4/ParsedownExtraPlugin.php#L347-L358 protected function doGetContent($Element) { if (isset($Element['text'])) { return $Element['text']; } if (isset($Element['rawHtml'])) { return $Element['rawHtml']; } if (isset($Element['handler']['argument'])) { return implode("\n", (array) $Element['handler']['argument']); } return null; } // https://github.com/taufik-nurrohman/parsedown-extra-plugin/blob/1653418c5a9cf5277cd28b0b23ba2d95d18e9bc4/ParsedownExtraPlugin.php#L369-L378 protected function doSetAttributes(&$Element, $From, $Args = array()) { $Attributes = $this->doGetAttributes($Element); $Content = $this->doGetContent($Element); if (is_callable($From)) { $Args = array_merge(array($Content, $Attributes, &$Element), $Args); $Element['attributes'] = array_replace($Attributes, (array) call_user_func_array($From, $Args)); } else { $Element['attributes'] = array_replace($Attributes, (array) $From); } } // Add classes to