Skip to main content Link Search Menu Expand Document (external link)

站点已经初具规模,但是我们却没有办法在页面之间导航跳转。接下来我们解决这个问题。

导航应该每个页面都有,所以我们应该将其放入版式之中。我们不会直接将其放入版式,正好我们利用这个机会学习一下关于 includes 的知识。

Include Tag

include Tag 允许您将存储在 _includes 文件夹的文件内容导入。Includes 对于站点中重复出现的源码文件或者提高源码可读性很有用。

导航源码可能会很复杂,所以有时使用 include 方法很有用。

Include 用法

用下面内容创建导航文件 _includes/navigation.html

<nav>
  <a href="/">Home</a>
  <a href="/about.html">About</a>
</nav>

试着使用 include Tag 将其添加到 _layouts/default.html

<!doctype html>
<html>
  <head>
    <meta charset="utf-8">
    <title>{{ page.title }}</title>
  </head>
  <body>
    {% include navigation.html %}
    {{ content }}
  </body>
</html>

在您的浏览器打开 http://localhost:4000,试着在页面间转换。

高亮当前页面

让我们进一步做好——在导航中高亮当前页面。

_includes/navigation.html 需要知道它插入页面的 URL 以便可以添加样式。Jekyll 的变量中,就有一个 page.url 具有此功能。

使用 page.url 可以检查链接是否是当前页面,如果是可以将其变为红色:

<nav>
  <a href="/" {% if page.url == "/" %}style="color: red;"{% endif %}>
    Home
  </a>
  <a href="/about.html" {% if page.url == "/about.html" %}style="color: red;"{% endif %}>
    About
  </a>
</nav>

打开 http://localhost:4000 看一看当前页面的链接是否为红色。

这里还有一些重复——如果您要添加一些新项目或者修改高亮颜色。接下来我们就解决这个问题。