来自 Jekyll 文档代码
_data/docs.yml
- title: chapter 1
docs:
- home
- page
- other
- title: Other chapter
docs:
- toto
- etc
在 Jekyll 中,文档包含在 _docs 集合中,但这很容易适应页面。
_includes/docs_contents.html
中的导航
<div class="unit one-fifth hide-on-mobiles">
<aside>
{% for section in site.data.docs %}
<h4>{{ section.title }}</h4>
{% include docs_ul.html items=section.docs %}
{% endfor %}
</aside>
</div>
_includes/docs_ul.html
{% assign items = include.items %}
<ul>
{% for item in items %}
{% assign item_url = item | prepend:"/docs/" | append:"/" %}
{% if item_url == page.url %}
{% assign c = "current" %}
{% else %}
{% assign c = "" %}
{% endif %}
{% for p in site.docs %}
{% if p.url == item_url %}
<li class="{{ c }}"><a href="{{ site.url }}{{ p.url }}">{{ p.title }}</a></li>
{% break %}
{% endif %}
{% endfor %}
{% endfor %}
</ul>
页脚上一个/下一个导航位于 _includes/section_nav.html
{% comment %}
Map grabs the doc sections, giving us an array of arrays. Join, flattens all
the items to a comma delimited string. Split turns it into an array again.
{% endcomment %}
{% assign docs = site.data.docs | map: 'docs' | join: ',' | split: ',' %}
{% comment %}
Because this is built for every page, lets find where we are in the ordered
document list by comparing url strings. Then if there's something previous or
next, lets build a link to it.
{% endcomment %}
{% for document in docs %}
{% assign document_url = document | prepend:"/docs/" | append:"/" %}
{% if document_url == page.url %}
<div class="section-nav">
<div class="left align-right">
{% if forloop.first %}
<span class="prev disabled">Back</span>
{% else %}
{% assign previous = forloop.index0 | minus: 1 %}
{% assign previous_page = docs[previous] | prepend:"/docs/" | append:"/" %}
<a href="{{ previous_page }}" class="prev">Back</a>
{% endif %}
</div>
<div class="right align-left">
{% if forloop.last %}
<span class="next disabled">Next</span>
{% else %}
{% assign next = forloop.index0 | plus: 1 %}
{% assign next_page = docs[next] | prepend:"/docs/" | append:"/" %}
<a href="{{ next_page }}" class="next">Next</a>
{% endif %}
</div>
</div>
<div class="clear"></div>
{% break %}
{% endif %}
{% endfor %}