2016-09-26 106 views
1

Jekyll 3.2.1 + kramdown。我有一個使用引導CSS的主題。 生成<table> s應該用class="table"作爲引導CSS的要求裝飾。Jekyll kramdown - 添加`.table`類生成表格

我已經看到其他建議將{: class=table}{.table}添加到降價表,但我真的不喜歡這個解決方案,因爲它'污染'與HTML \ css細節的純降價。我希望我的減價按照目標格式是可讀的和不可知的。

首選的解決方案是自定義Jekyll或kramdown,以便自動生成降價表。 這可能嗎?

回答

4

這可能是更容易的樣式應用到table標籤,如果所有表都將有一個類。這樣可以避免污染Markdown和Markup。爲了避免分叉或修改引導你甚至可以有table與薩斯延長這些樣式:

table { 
    @extend .table; 
} 
+0

謝謝。我使用這個指南在Jekyll中引入了bootstrap的源代碼,然後按照你的建議擴展了表類。 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 

你需要把在哪裏傑奇會進行轉換(我想註冊一個新的轉換器類)。