Как расширить Parsedown, чтобы добавить класс к табличным тегам

Я хочу написать расширение для Parsedown так что я могу добавить класс по умолчанию для каждого из тегов таблицы. Я обнаружил, что могу успешно взломать исходный код, добавив строки для назначения атрибутов в blockTable функция (около строки 870):

$Block = array(
'alignments' => $alignments,
'identified' => true,
'element' => array(
'name' => 'table',
'handler' => 'elements',
'attributes' => array(
'class' => 'table',
),
),
);

Однако, если я попытаюсь свободно следовать Учебник по расширению Change Element Markup Я потерпел неудачу (возможно, потому что анализ таблицы может быть итеративным процессом, и пример в учебнике — простая замена строки.)

Я пробовал:

class Extension extends Parsedown
{

protected function blockTable($Line, array $Block = null)
{
$Block = parent::blockTable($Line, array $Block = null);

$Block['table']['attributes']['class'] = 'table';

return $Block;
}

}

но это не работает

2

Решение

Я не слишком уверен, что не так с вашим кодом, так как ваш код соответствует моему. Я просто добавил

'attributes' => array(
'class' => 'table table-responsive'
),

для идентификации в таблице 850, чтобы он стал

        $Block = array(
'alignments' => $alignments,
'identified' => true,
'element' => array(
'name' => 'table',
'handler' => 'elements',
'attributes' => array(
'class' => 'table table-responsive',
),
),
);

который прекрасно работает для меня. Но это похоже на то же самое для вас, без учета таблицы.

Какую версию ты используешь?

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]