Yaml 在Jekyll配置文件中难以找到数组(站点导航)

Yaml 在Jekyll配置文件中难以找到数组(站点导航),yaml,jekyll,Yaml,Jekyll,在my\u config.yml中,我有: navigation: - text: Home url: index.html - text: About url: about.html - text: Blog url: blog.html - text: Portfolio url: portfolio.html 在我的default.html布局中,我有: <ul class="nav-list"> {% for link in site.navigatio

在my
\u config.yml
中,我有:

navigation:
- text: Home
  url: index.html
- text: About
  url: about.html
- text: Blog
  url: blog.html
- text: Portfolio
  url: portfolio.html
在我的
default.html
布局中,我有:

<ul class="nav-list">
  {% for link in site.navigation %}
    {% assign current = nil %}
    {% if page.url == link.url %}
      {% assign current = 'current' %}
    {% endif %}

    <li class="nav-list-item{% if forloop.first %}first{% endif %} {{ current }} {% if forloop.last %}nav-list-item-last{% endif %}">
      <a class="{{ current }}" href="{{ link.url }}">{{ link.text }}</a>
    </li>
  {% endfor %}
</ul>
    {site.navigation%中的链接为%s} {%assign current=nil%} {%if page.url==link.url%} {%assign current='当前'%} {%endif%}
  • {%endfor%}

出于某种原因,这是行不通的。为什么会这样?

我刚刚发现您必须重新启动服务器并再次运行
jekyll--server
,然后才能访问
\u config.yml
变量


然后在弄清楚之后,返回到本页并准备发布此答案,单击
添加/显示4条更多的评论
,看到op也发现了这一点。因此将其作为答案发布。

除了另一个答案之外:您可以-正如您在回答中提到的-使用Ctrl+C结束当前运行的服务器(在CLI中)。但是,您也可以使用启动服务器

jekyll server -w

告诉Jekyll监视文件中的更改。虽然这不适用于对
\u config.yml
的更改,但它适用于所有其他文件。请注意,这不适用于包括
--safe
选项在内的所有文件,因此不会出现错误。要捕获错误,我仍然建议不时运行
Jekyll--safe build
,查看是否你有语法错误。在开发过程中有时运行
jekylldoctor
/
jekyllhyde
也有语法错误。

这对我很有效。除了将当前页面标记为
page.url
包含路径,如“/index.html”,因此相等性检查将失败。这对您不起作用吗?绝对没有输出?输出中没有意外的液体?只是没有标记当前项目?它似乎根本找不到
站点。导航
。如果我完全清空
\u config.yml
的内容,然后只输入上面的内容,这就是我当前的设置。可能不相关t、 但是您是在本地还是在GitHub上尝试这一点?(我只在本地进行了测试。)你能从你的_config.yml访问其他设置吗?你确定导航数组的项目缩进了空格,而不是制表符吗?啊,修复了它!我不知道当你对
\u config.yml
进行更改时,Jekyll没有重新启动,就像它对所有其他文件所做的一样。所以这只是我太傻了!噢,谢谢你的更新。肯定扩大了我的视野调试技巧。谢谢。我应该把它作为我自己的答案,哦!@OliverJosephAsh我原谅你。