在 Kramdown 中添加 class 到 table 行
Add class to table rows in Kramdown
在 kramdown 中,通常很容易向一些文本添加 class。例如,这里是一个块引用:
> This is a blockquote.
{:.example}
HTML 输出:
<blockquote class="example">This is a blockquote.</blockquote>
虽然此技术在很多地方都有效,但它似乎不适用于 tables。 我想在 table 行上设置一个 class。 我希望通过以下方法来解决问题:
...
|one|two|three|{:.example}
...
换句话说,我希望得到以下部分输出:
<tr class="example">
...
</tr>
我实际得到的是这样的:
<tr>
<td>one</td>
<td>two</td>
<td>three</td>
<td>{:.example}</td>
</tr>
我知道我可以只在 HTML 中写 table,但我更愿意使用 kramdown 的可读性优势。 是否可以在 kramdown 中做我想做的事?如果没有,是否有比下降到 HTML 更好的解决方案?
这在 kramdown 中目前是不可能的:参见问题 #417 and #436。如果你想留在纯粹的 kramdown 中,你必须使用 HTML.
如果您不想这样做并且愿意做一些小的后处理,您可以使用一些正则表达式。例如,如果您只想设置 table
中第二行的样式
| 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 tables.
在 kramdown 中,通常很容易向一些文本添加 class。例如,这里是一个块引用:
> This is a blockquote.
{:.example}
HTML 输出:
<blockquote class="example">This is a blockquote.</blockquote>
虽然此技术在很多地方都有效,但它似乎不适用于 tables。 我想在 table 行上设置一个 class。 我希望通过以下方法来解决问题:
...
|one|two|three|{:.example}
...
换句话说,我希望得到以下部分输出:
<tr class="example">
...
</tr>
我实际得到的是这样的:
<tr>
<td>one</td>
<td>two</td>
<td>three</td>
<td>{:.example}</td>
</tr>
我知道我可以只在 HTML 中写 table,但我更愿意使用 kramdown 的可读性优势。 是否可以在 kramdown 中做我想做的事?如果没有,是否有比下降到 HTML 更好的解决方案?
这在 kramdown 中目前是不可能的:参见问题 #417 and #436。如果你想留在纯粹的 kramdown 中,你必须使用 HTML.
如果您不想这样做并且愿意做一些小的后处理,您可以使用一些正则表达式。例如,如果您只想设置 table
中第二行的样式| 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 tables.