在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>
我意识到我可以用HTML编写表格,但我更喜欢具有kramdown的可读性优势。 有可能在kramdown中做我想要的吗?如果没有,是否有比删除HTML更好的解决方案?
答案 0 :(得分: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
更改为您喜欢的号码。它是一个很好的解决方案,但我不知道其他解决方案都使用kramdown而且不会恢复到HTML表格。