【问题标题】:Setting active links in Jekyll not working在 Jekyll 中设置活动链接不起作用
【发布时间】:2014-07-29 19:41:44
【问题描述】:

我试图在 Jekyll 中简单地设置我的活动链接的样式,但未能成功地让它们正常工作。

这是我试图让他们工作的网站:http://concisecss.github.io/concise.css,您可以在此处查看源代码:https://github.com/ConciseCSS/concise.css/tree/gh-pages

我将这个 YAML 代码放在我的 _config.yml 中来定义我的顶级导航:

# Main Navigation
nav:
- text: Welcome
  url: /concise.css/
- text: Why Concise
  url: /concise.css/why-concise/
- text: Get Started
  url: /concise.css/get-started/
- text: Documentation
  url: /concise.css/documentation/layout/container/
- text: Add-Ons
  url: /concise.css/add-ons/

然后在我的header.html 包含,这是我的导航所在,我有:

{% for link in site.nav %}
  <li>
    <a {% if link.url == page.url %}class="active"{% endif %} href="{{ link.url }}">{{ link.text }}</a>
  </li>
{% endfor %}

但是,每当我在其中一个导航链接上时,都不会添加活动类(当你在上面时,链接应该是粉红色的。

其他一切都运行良好,所以我假设这可能只是我遇到的一个小问题。

编辑:这是我的一个页面上的前端内容:

---
layout: why-concise
title: Why Concise
permalink: /why-concise/
---

【问题讨论】:

  • 您是否在您的个人页面 YAML 中设置永久链接? (永久链接:/concise.css/why-concise/)
  • 是的!我刚刚将其添加到问题描述中。
  • 啊,我明白了,这是否与您设置循环以使用 link.url 构建类有关?因此,当 _config.yml link.url 设置为 /concise.css/why-concise/ 时,它与 /why-concise/ 的页面 YAML 不匹配
  • 是的,确切地说,如果您要设置各个页面的永久链接,它需要与您的 _config.yml 的变量完全相同,如果该循环能够正常工作。如果您没有运行 jekyll serve --watch,您可能还需要重新运行 jekyll 以使其解析对 YAML 的更改 - 取决于您拥有的版本。
  • 尝试将 permalink: /concise.css/documentation/layout/container/ 添加到您的文档页面 YAML 中,看看是否有效

标签: html css yaml jekyll


【解决方案1】:

我刚刚在我的博客项目中做了同样的事情,还没有向你展示,但它的工作原理是这样的:

1.创建一个数据文件nav.yml 文件并将导航文本和URL 写入文件夹_data

nav.yml

- text: Welcome
  url: /concise.css/

- text: Why Concise
  url: /concise.css/why-concise/

- text: Get Started
  url: /concise.css/get-started/

- text: Documentation
  url: /concise.css/documentation/layout/container/

- text: Add-Ons
  url: /concise.css/add-ons/

2.在您的 html 页面中,您将通过 yml 文件中的数据菜单列表创建一个循环。

{% for nav in site.data.nav %}
<li{% if nav.url == page.url %} class="active"{% endif %}><a href="{{ nav.url }}">{{ nav.text }}</a></li>
{% endfor %}

如果您在 nav.yml 中设置了url:/concise.css/why-concise/,请记住确保您在 nav.yml 中写入的永久链接相同,因此您的永久链接在前面的内容中应该相同。

---
layout: why-concise
title: Why Concise
permalink: /concise.css/why-concise/
---

更新: @Keenan 这里是一个例子http://adrianorosa.com,我之前告诉过你。 可以在https://github.com/adrianorsouza/adrianorosa.com找到源代码

【讨论】:

  • 对活跃的课堂黑客表示敬意!
  • 如何为其他帖子网址保留路由匹配?
  • @cameronjroe 抱歉,我不太了解您的问题,但我认为您的意思是如何为其他帖子做同样的事情。所以你已经为每个帖子设置了永久链接,jekyll 构建会处理其余的事情。如果您想查看并获得启发,我刚刚用示例和源代码更新了我上面的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-21
  • 1970-01-01
相关资源
最近更新 更多