Jekyll FrontMatter出现在我的网站上,而不是正确地插入我的默认布局中



我一直在尝试制作自己的网站过去3天,而所有这些都可以使用HTML文件,CSS文件和JavaScript文件。然后昨天我决定,我会尝试将我的网站少的东西迁移到jekyll友好的结构上,以便对我的内容进行更好的管理。这是发生的事情:

  1. 遵循了许多教程并在我的机器上安装了Ruby和Devkit之后,我终于能够让Jekyll在本地运行。但是我发现我的根目录中的index.html文件未插入default.html模板中的_layouts文件夹中。因此,Jekyll在不使用默认值的情况下构建了我的网站。我的理解是,索引目录中的index.html文件中的任何内容都将插入一个布局(在index.html的前磨牙上指定),而jekyll放置在_site目录中的最终index.html将是index.html和default.html的合并。

  2. 足够长的时间后,我最终尝试将根目录中的index.html重命名为index.md。然后,当我再次运行jekyll时,index.md中的html代码被插入我的布局default.html中的{{content}}零件,这就是我一直想要的!太好了,对吗?不。那时的问题是index.md中的前肌实际上在我的网站上显示:前磨牙出现在我本地网站上的图像

您可以在此处查看所有完整的代码以及我的所有配置详细信息和目录结构:https://github.com/tygamvrelis/tylergamvrelis.github.io

因此,似乎jekyll以某种方式将index.md内容插入默认值的正确位置。实际上,我可以在index.md中删除前磨牙,并且我的网站看起来完全不错,只要我在代码开始时至少留下1个空线。如果我在代码开始时不留下至少1个空线,那么我在网站上看到index.md为raw html(标签和所有内容,没有格式)。

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

您的index.md具有BOM标头:

$ hd -n 3 index.md
00000000  ef bb bf                                          |...|
00000003

当它用 utf-8 编码时,则字节订单标记遵循以下顺序: EF BB BF

和jekyll不喜欢它们:

UTF-8字符编码警告

如果您使用UTF-8编码,请确保无BOM标头字符 jekyll会发生您的文件或非常非常糟糕的事情。

因此,您需要删除它们,Jekyll将再次感到高兴:

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

或查看如何用尴尬或sed

删除它们

最新更新