目录
网站快建好了,不过现在还不能在各个页面之间导航(Navigation )。
导航应该显示在所有页面,因此布局文件就是一个添加导航的正道,不过不是直接添加到布局中。借此机会,了解下包含模板(Includes)。
Include tag
标签 include
可以让你从 _includes
文件夹中包含内容。对于那些来源单一、重复出现的源码或者为了提高可读性,都可以让包含模板帮你。
导航源码复杂的时候放在包含文件中就挺不错的。
Include usage
给导航创建文件放在 _includes/navigation.html
,添加如下内容:
<nav>
<a href="/">Home</a>
<a href="/about.html">About</a>
</nav>
试着用包含标签把导航添加到 _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 看看能不能切换页面。
Current page highlighting
继续深入顺便在导航中高亮下当前页面。
_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 看一看当前页面链接是否为红。
如果想添加新项到导航或者改变高亮颜色,就会产生许多重复工作。下一节讲讲这个问题。
Links
[Ⅴ] Includes - Jekyll Docs Step by Step Tutorial