2017-02-21 5 views
1

В kramdown обычно легко добавить класс в некоторый бит текста. Вот, например, цитата:Добавить класс в строки таблицы в Kramdown

> This is a blockquote. 
{:.example} 

HTML выход:

<blockquote class="example">This is a blockquote.</blockquote> 

Хотя этот метод работает во многих местах, это не кажется, работать с таблицами. Я хочу установить класс в строке таблицы. Я ожидаю, что следующий делать трюк:

... 
|one|two|three|{:.example} 
... 

Другими словами, я ожидаю следующий частичный вывод:

<tr class="example"> 
... 
</tr> 

То, что я на самом деле получить это:

<tr> 
    <td>one</td> 
    <td>two</td> 
    <td>three</td> 
    <td>{:.example}</td> 
</tr> 

I понимаете, что я могу просто написать таблицу в HTML, но я бы предпочел получить читабельность от kramdown. Можно ли делать то, что я хочу в kramdown? Если нет, есть ли лучшее решение, чем удаление HTML?

+0

Не совсем «дубликат», поскольку это для другой библиотеки (Kramdown vs. Python-Markdown), но ответ в основном одинаков: [Python markdown добавляет класс в таблицу] (http://stackoverflow.com/ а/21885984/866026) – Waylan

ответ

1

В настоящее время это невозможно сделать в kramdown: см. Вопросы #417 и #436. Если вы хотите остаться в чистом kramdown, вам нужно использовать HTML.

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

| foo | bar | baz | 
| xyzzy | plugh | thud | 

затем

$ kramdown file.md | perl -pe 's{tr}{++$n == 2 ? "tr class=\"waldo\"" : $&}ge' 

или

$ kramdown file.md | tr '\n' '^' | sed 's/<tr/<tr class="waldo"/2' | tr '^' '\n' 

как продукция:

<table> 
    <tbody> 
    <tr> 
     <td>foo</td> 
     <td>bar</td> 
     <td>baz</td> 
    </tr> 
    <tr class="waldo"> 
     <td>xyzzy</td> 
     <td>plugh</td> 
     <td>thud</td> 
    </tr> 
    </tbody> 
</table> 

Изменить 2 в зависимости от того номер, который вам нравится. Это kludge, но я не знаю других решений, которые используют kramdown и не возвращаются к таблицам HTML.

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