2016-09-26 14 views
1

Jekyll 3.2.1 + kramdown。私はブートストラップCSSを使用するテーマを持っています。 生成された<table>は、ブートストラップCSSが必要とするようにclass="table"で修飾する必要があります。Jekyll kramdown - 生成されたテーブルに `.table`クラスを追加

私は{: class=table}または{.table}をマークダウンテーブルに追加することを提案しましたが、このソリューションはhtml \ cssの詳細で純粋なマークダウンを「汚染」するので、このソリューションは本当に嫌です。私は自分のマークダウンをそのままターゲット形式には無関係に読めるようにしたい。

マークアップテーブルがこのクラスで自動的に生成されるように、Jekyllまたはkramdownをカスタマイズすることをお勧めします。 これは可能ですか?

答えて

4

それは、すべてのテーブルは、そのクラスを持ってしようとしている場合tableタグにスタイルを適用する方が簡単でしょう。こうすることで、Markdownとマークアップの両方を汚染することを避けることができます。ブートストラップをフォークまたは変更を避けるためにあなたもtableはサスでこれらのスタイルを拡張するかもしれない:

table { 
    @extend .table; 
} 
+0

ありがとうございました。私はこのガイドを使ってJekyllにブートストラップのソースを組み込み、提案したようにテーブルクラスを拡張しました。 http://veithen.github.io/2015/03/26/jekyll-bootstrap.html – itaysk

2

確かに、kramdown apiを使用してカスタムパーサーを作成できます。

しかし、これは首に少し痛みがあり、GitHubページでは機能しません。

また、テーブルにクラスを追加するJavaScriptを書くこともできます。あなたは(したがって、およびjQueryの)ブートストラップを使用しているので、あなたはこのような何かを行うことができるはず:

$("table").addClass("table"); 
0

あなたはKramdownに新しい出力コンバータを追加することができます:あなたはマークダウンをレンダリングするときに、次に

module Kramdown 
    # Add some bootstrap4 specific defaults to markdown output 
    class Converter::HtmlBootstrap4 < Converter::Html 
    def convert_table(el, indent) 
     el.attr["class"] ||= 'table' 
     super 
    end 
    end 
end 

をあなたは(私は新しいコンバータクラスを登録思う)ジキルは、変換を行いますどこにそれを置く必要があると思います

Kramdown::Document.new(output).to_html_bootstrap4 

:、その出力コンバータを使用しています。

関連する問題