protected function isMarkdownable()
{
if (!isset($this->isMarkdownable[$this->parser->tagName])) {
// simply not markdownable
return false;
}
if ($this->parser->isStartTag) {
$return = true;
if ($this->keepHTML) {
$diff = array_diff(array_keys($this->parser->tagAttributes), array_keys($this->isMarkdownable[$this->parser->tagName]));
if (!empty($diff)) {
// non markdownable attributes given
$return = false;
}
}
if ($return) {
foreach ($this->isMarkdownable[$this->parser->tagName] as $attr => $type) {
if ($type == 'required' && !isset($this->parser->tagAttributes[$attr])) {
// required markdown attribute not given
$return = false;
break;
}
}
}
if (!$return) {
array_push($this->notConverted, $this->parser->tagName . '::' . implode('/', $this->parser->openTags));
}
return $return;
} else {
if (!empty($this->notConverted) && end($this->notConverted) === $this->parser->tagName . '::' . implode('/', $this->parser->openTags)) {
array_pop($this->notConverted);
return false;
}
return true;
}
}