Add support for any attribute
This commit is contained in:
parent
a8c56ecd5e
commit
bda98d1c33
1 changed files with 10 additions and 3 deletions
|
|
@ -1678,9 +1678,9 @@ abstract class _MarkdownExtra_TmpImpl extends \Michelf\Markdown {
|
|||
### Extra Attribute Parser ###
|
||||
|
||||
# Expression to use to catch attributes (includes the braces)
|
||||
protected $id_class_attr_catch_re = '\{((?:[ ]*[#.][-_:a-zA-Z0-9]+){1,})[ ]*\}';
|
||||
protected $id_class_attr_catch_re = '\{((?:[ ]*[#.:][-_:a-zA-Z0-9=]+){1,})[ ]*\}';
|
||||
# Expression to use when parsing in a context when no capture is desired
|
||||
protected $id_class_attr_nocatch_re = '\{(?:[ ]*[#.][-_:a-zA-Z0-9]+){1,}[ ]*\}';
|
||||
protected $id_class_attr_nocatch_re = '\{(?:[ ]*[#.:][-_:a-zA-Z0-9=]+){1,}[ ]*\}';
|
||||
|
||||
protected function doExtraAttributes($tag_name, $attr) {
|
||||
#
|
||||
|
|
@ -1692,17 +1692,21 @@ abstract class _MarkdownExtra_TmpImpl extends \Michelf\Markdown {
|
|||
if (empty($attr)) return "";
|
||||
|
||||
# Split on components
|
||||
preg_match_all('/[#.][-_:a-zA-Z0-9]+/', $attr, $matches);
|
||||
preg_match_all('/[#.:][-_:a-zA-Z0-9=]+/', $attr, $matches);
|
||||
$elements = $matches[0];
|
||||
|
||||
# handle classes and ids (only first id taken into account)
|
||||
$classes = array();
|
||||
$attributes = array();
|
||||
$id = false;
|
||||
foreach ($elements as $element) {
|
||||
if ($element{0} == '.') {
|
||||
$classes[] = substr($element, 1);
|
||||
} else if ($element{0} == '#') {
|
||||
if ($id === false) $id = substr($element, 1);
|
||||
} else if ($element{0} == ':') {
|
||||
$parts = explode('=', substr($element, 1));
|
||||
$attributes[] = $parts[0] . '="' . $parts[1] . '"';
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1714,6 +1718,9 @@ abstract class _MarkdownExtra_TmpImpl extends \Michelf\Markdown {
|
|||
if (!empty($classes)) {
|
||||
$attr_str .= ' class="'.implode(" ", $classes).'"';
|
||||
}
|
||||
if (!empty($attributes)) {
|
||||
$attr_str .= ' '.implode(" ", $attributes);
|
||||
}
|
||||
return $attr_str;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue