【问题标题】:Jekyll \ kramdown - add `.table` class to generated tablesJekyll \ kramdown - 将 `.table` 类添加到生成的表中
【发布时间】:2017-02-03 16:37:30
【问题描述】:

Jekyll 3.2.1 + kramdown。我有一个使用引导 css 的主题。 生成的 <table>s 应该按照引导 css 的要求用 class="table" 装饰。

我已经看到了将{: class=table}{.table} 添加到降价表的其他建议,但我真的不喜欢这个解决方案,因为它“污染”了带有html\css 细节的纯降价。我希望我的 markdown 可以按原样阅读,并且与目标格式无关。

首选的解决方案是自定义 Jekyll 或 kramdown,以便使用此类自动生成降价表。 这可能吗?

【问题讨论】:

    标签: markdown jekyll kramdown


    【解决方案1】:

    当然,您可以使用kramdown api 创建自定义解析器。

    但是,这可能有点让人头疼,而且它不适用于 GitHub 页面。

    您还可以编写将类添加到表中的 JavaScript。由于您使用的是 Bootstrap(因此也使用了 JQuery),因此您应该能够执行以下操作:

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

    【讨论】:

      【解决方案2】:

      您可以向 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
      

      然后,当你想渲染 markdown 时,使用那个输出转换器:

      Kramdown::Document.new(output).to_html_bootstrap4
      

      你需要把它放在 jekyll 进行转换的任何地方(我想注册一个新的转换器类)。

      【讨论】:

        【解决方案3】:

        如果所有表都将具有该类,则将样式应用于table 标记可能更容易。这样可以避免污染 Markdown 和标记。为了避免分叉或修改 Bootstrap,您甚至可以让 table 使用 Sass 扩展这些样式:

        table {
          @extend .table;
        }
        

        【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-07-10
        • 1970-01-01
        • 1970-01-01
        • 2015-08-09
        • 2013-05-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多