在Kramdown中向表行添加类

问题描述 投票:1回答:1

在kramdown中,通常很容易将一个类添加到某些文本中。例如,这是一个blockquote:

> 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更好的解决方案?

markdown jekyll kramdown
1个回答
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表。

© www.soinside.com 2019 - 2024. All rights reserved.