Jekyll 3.2.1 + kramdown。我有一个使用bootstrap css的主题。
生成的<table>
应该用class="table"
作为bootstrap css要求进行修饰。
我已经看到了其他建议将{: class=table}
或{.table}
添加到降价表中,但我真的不喜欢这个解决方案,因为它用html \ css详细信息'污染'纯降价。我希望我的降价按原样可读,并且与目标格式无关。
首选解决方案是自定义Jekyll或kramdown,以便自动生成此类的降价表。 这可能吗?
答案 0 :(得分:6)
如果所有表都具有该类,则将样式应用于table
标记可能更容易。这样可以避免污染Markdown和标记。为了避免分叉或修改Bootstrap,您甚至可以使用Sass table
扩展这些样式:
table {
@extend .table;
}
答案 1 :(得分:3)
当然,您可以使用kramdown api创建自定义解析器。
但是,这可能会让您感到痛苦,并且不会使用GitHub页面。
您也可以编写将类添加到表中的JavaScript。既然您正在使用Bootstrap(以及JQuery),那么您应该能够做到这样的事情:
$("table").addClass("table");
答案 2 :(得分: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
你需要把它放在jekyll进行转换的地方(我想注册一个新的转换器类)。