【问题标题】:Jekyll converts <i> tags to <em> tagsJekyll 将 <i> 标签转换为 <em> 标签
【发布时间】:2019-07-19 17:18:42
【问题描述】:

我们正在将现有的静态网站转换为 Jekyll。我们使用标签来显示 Font Awesome Icons,如下所示

<a class="box-icon-title margin-bottom-20" href="#">
<i class="fa fa-picture-o"></i>

然而,jekyll 将所有这些标签转换为如下标签

<a class="box-icon-title margin-bottom-20" href="#"> 
<em class="fa fa-picture-o"></em>

知道如何防止 Jekyll 将标签转换为标签

【问题讨论】:

  • 您是否在 .md 文件中使用 HTML 斜体?或者这是在布局中?你能详细说明这发生在哪里(哪个文件)?
  • 我认为 kramdown 是这个问题的根源,而不是 Jekyll。

标签: jekyll kramdown


【解决方案1】:

Jekyll 不会将 &lt;i&gt; 标签转换为开箱即用的 &lt;em&gt; 标签。 可能是您正在使用的某些插件的结果。

如果可用,请发布您的Gemfile_config.yml_plugins 目录的内容。

【讨论】:

    【解决方案2】:

    我不确定 Jekyll 是否会转换 &lt;i&gt; 标签,但如果是,最好不要修改 Jekyll。相反,我建议使用一个简单的 jquery 代码将 &lt;em&gt; 再次转换回 &lt;i&gt; 来维护所有属性:

    $(document).on("ready",function(){
        $('em.fa').replaceWith(function(){
           $iTag = $("<i>", {html: $(this).html()});
           $.each(this.attributes, function(i, attribute){
                $iTag.attr(attribute.name, attribute.value);
          });
          return $iTag;
        })
    })
    

    注意:如果$(document).on("ready") 不起作用,请尝试$(window).on("load")

    注意:如果 Jekyll 完成后有回调函数,最好的方法是调用上述函数作为 Jekyll 的回调,而不是 DOM 就绪。

    【讨论】:

    • 我认为这并不是一个优雅的解决方案。不过,我给了你一个明确的答案。它可能会帮助某人......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-02
    • 2023-04-04
    • 2012-09-10
    • 2011-10-28
    • 2012-03-08
    • 1970-01-01
    相关资源
    最近更新 更多