Я хочу написать расширение для 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;
}
}
но это не работает
Я не слишком уверен, что не так с вашим кодом, так как ваш код соответствует моему. Я просто добавил
'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',
),
),
);
который прекрасно работает для меня. Но это похоже на то же самое для вас, без учета таблицы.
Какую версию ты используешь?
Других решений пока нет …