2016-03-03 2 views
2

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

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

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

Я пробовал:

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; 
     } 

} 

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

ответ

1

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

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

в identifyTable, на линии 850 так, чтобы он стал

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

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

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

+0

Используйте комментарии, если вы ищете дополнительную информацию от OP. – Raju

+0

Я бы, но я не могу комментировать. Я стараюсь быть полезным, но могу, но не разрешен на сайте. – blakeaholics

+0

Это вполне понятно. Он много раз обсуждается в Meta Stack Overflow. Когда у вас будет достаточно [репутации] (http://stackoverflow.com/help/whats-reputation), вы сможете [прокомментировать любое сообщение] (http://stackoverflow.com/help/privileges/comment); вместо этого [предоставить ответы, которые не требуют разъяснений у аськи) (http://meta.stackexchange.com/questions/214173/why-do-need-50-reputation-to-comment-what-can- я-делать-вместо этого). – Raju

Смежные вопросы