2017-02-21 7 views
1

kramdownでは、ある種のテキストにクラスを追加するのは簡単です。ここでは、例えば、BLOCKQUOTEです: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 add class to table](http://stackoverflow.com/ a/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テーブルに戻らない他の解決策については気づいていません。

関連する問題