Utf 8 Jekyll frontmatter出现在我的网站上,但未正确插入我的默认布局

Utf 8 Jekyll frontmatter出现在我的网站上,但未正确插入我的默认布局,utf-8,character-encoding,jekyll,github-pages,Utf 8,Character Encoding,Jekyll,Github Pages,在过去的3天里,我一直在尝试创建自己的网站,只需使用一个HTML文件、一个CSS文件和一个JavaScript文件,一切都很顺利。然后昨天,我决定尝试将我仅有的一点网站迁移到一个对Jekyll友好的结构,这样我就可以更好地管理我的内容。发生的事情如下: 在完成了大量教程并在我的机器上安装了Ruby和DevKit之后,我终于能够让Jekyll在本地运行。但是我发现根目录中的index.html文件没有插入到_layouts文件夹中的default.html模板中。 因此,Jekyll在构建我的网站

在过去的3天里,我一直在尝试创建自己的网站,只需使用一个HTML文件、一个CSS文件和一个JavaScript文件,一切都很顺利。然后昨天,我决定尝试将我仅有的一点网站迁移到一个对Jekyll友好的结构,这样我就可以更好地管理我的内容。发生的事情如下:

  • 在完成了大量教程并在我的机器上安装了Ruby和DevKit之后,我终于能够让Jekyll在本地运行。但是我发现根目录中的index.html文件没有插入到_layouts文件夹中的default.html模板中。 因此,Jekyll在构建我的网站时没有使用default.html布局,结果是index.html文件中的内容被编译成最终的index.html文件。我的理解是,与此相反,根目录中index.html文件中的任何内容都将被插入到布局中(在index.html的frontmatter中指定),而Jekyll放置在_site目录中的最终index.html将是index.html和default.html的合并

  • 经过足够长的时间,我最终尝试将根目录中的index.html重命名为index.md。然后,当我再次运行Jekyll时,index.md中的html代码被插入到我的layout default.html中的{{content}}部分,这正是我一直想要的!太棒了,对吧?没有。当时的问题是index.md中的frontmatter实际上显示在我的网站上:

  • 您可以在此处查看所有完整代码以及我的所有配置详细信息和目录结构:

    因此,Jekyll似乎不知何故将index.md内容插入default.html中的正确位置,它这样做没有阅读frontmatter。事实上,我可以完全删除index.md中的frontmatter,我的站点看起来非常好,只要我在代码开头至少留下一行空行。如果我没有在代码的开头留下至少一行空行,那么我会在我的网站上看到index.md是原始HTML(标记和所有内容,没有格式)


    我知道这可能是不够的信息,鉴于所描述的奇怪,但我想尝试了解发生了什么,我感谢任何建议。如果您需要我提供任何其他信息来帮助解决此问题,请告诉我。

    您的
    index.md
    有:

    由于它是用UTF-8编码的,所以字节顺序标记遵循以下顺序:
    EF BB BF

    杰基尔不喜欢:

    UTF-8字符编码警告

    如果使用UTF-8编码,请确保没有BOM表标题字符 存在于你的文件中,否则杰基尔会遭遇非常非常糟糕的事情

    因此,你需要移除它们,杰基尔会再次感到高兴:

    $ tail -c +4 index.md > UTF8.nobom
    $ mv UTF8.nobom index.md
    

    或者看看如何使用或

    删除它们,非常感谢!这很有效。我怀疑这个问题与BOM表标题有关,但我不知道我能对它们做些什么。你太棒了!:)谢谢我们在VisualStudio中编辑时遇到了同样的问题,但无法找出原因,这就指向我们要更改文件编码!这当然让人觉得这是杰基尔可以避免的事情,但也许这是一个wontfix:)
    $ tail -c +4 index.md > UTF8.nobom
    $ mv UTF8.nobom index.md