2016-09-26 57 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 

你需要把在哪里杰奇会进行转换(我想注册一个新的转换器类)。