diff --git a/Michelf/MarkdownExtra.php b/Michelf/MarkdownExtra.php index e620f9e..f814cde 100644 --- a/Michelf/MarkdownExtra.php +++ b/Michelf/MarkdownExtra.php @@ -1154,6 +1154,7 @@ protected function doTables($text) { [|] .* \n # Row content. )* ) + ('.$this->id_class_attr_catch_re.')? # $4 = id/class attributes (?=\n|\Z) # Stop at final double newline. }xm', array($this, '_doTable_leadingPipe_callback'), $text); @@ -1178,6 +1179,7 @@ protected function doTables($text) { .* [|] .* \n # Row content )* ) + ('.$this->id_class_attr_catch_re.')? # $4 = id/class attributes (?=\n|\Z) # Stop at final double newline. }xm', array($this, '_DoTable_callback'), $text); @@ -1194,10 +1196,11 @@ protected function _doTable_leadingPipe_callback($matches) { $head = $matches[1]; $underline = $matches[2]; $content = $matches[3]; + $id_class = $matches[4] ?? null; $content = preg_replace('/^ *[|]/m', '', $content); - return $this->_doTable_callback(array($matches[0], $head, $underline, $content)); + return $this->_doTable_callback(array($matches[0], $head, $underline, $content, $id_class)); } /** @@ -1223,7 +1226,8 @@ protected function _doTable_callback($matches) { $head = $matches[1]; $underline = $matches[2]; $content = $matches[3]; - $attr = []; + $id_class = $matches[4] ?? null; + $attr = []; // Remove any tailing pipes for each line. $head = preg_replace('/[|] *$/m', '', $head); @@ -1251,7 +1255,8 @@ protected function _doTable_callback($matches) { $attr = array_pad($attr, $col_count, ''); // Write column headers. - $text = "\n"; + $table_attr_str = $this->doExtraAttributes('table', $id_class, null, []); + $text = "\n"; $text .= "\n"; $text .= "\n"; foreach ($headers as $n => $header) {