Jekyll _data:来自.yml文件的数据显示在本地但不在github上

时间:2014-06-05 22:48:51

标签: github jekyll

我使用了Jekyll的_data feature在.yml文件中存储短文本消息。

例如,我有一个名为messages.yml的文件,里面有我:

hello: 'Hello world!'

在我的index.html文件中,我有<h1>{{ site.data.messages.hello }}</h1>。当我在本地运行Jekyll服务器时,我得到一个不错的输出:<h1>Hello world!</h1>但是一旦我在 gh-pages 中合并更改并检查网站的github版本,我得到的是<h1></h1>

为什么网站生效后, _data 中的文字没有呈现?

1 个答案:

答案 0 :(得分:0)

在我试图简化问题的过程中,我忽略了一个至关重要的事情(通常会发生)导致问题。

我有多种语言的消息,并使用存储在页面前端内部的 lang 变量以适当的语言显示消息。

例如,在我的模板中,我有这一行:
<p>{{ site.data.messages.[page.lang].hello }}</p>

如果页面在frontmatter中包含lang: en,则输出将为<p>Hello world!</p>;如果它包含lang: es ==&gt; <p>Hola mundo!</p>。这非常有效。

我已使用Jekyll&#39; s为 en es 目录中的所有文件设置默认 lang 值{3}} 在Jekyll 1.5.1 中不支持defaults feature。我使用的是最新版本的Jekyll 2.0.3。

我必须为每个页面设置 lang 变量来解决这个问题。

我希望这个答案有助于某人。对不起,感到困惑。