Chr*_*cht 75
这是一个在单个页面上按字母顺序排序的标签的解决方案.
它仅使用Liquid,这意味着它可以在GitHub页面上运行:
{% capture tags %}
{% for tag in site.tags %}
{{ tag[0] }}
{% endfor %}
{% endcapture %}
{% assign sortedtags = tags | split:' ' | sort %}
{% for tag in sortedtags %}
<h3 id="{{ tag }}">{{ tag }}</h3>
<ul>
{% for post in site.tags[tag] %}
<li><a href="{{ post.url }}">{{ post.title }}</a></li>
{% endfor %}
</ul>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
你可以在这里看到它.
编辑:
还有一种方法可以为没有插件的每个标签生成一个单独的页面(可以在GitHub页面上使用).
我在我的博客上有更详细的解释:
每个标签/类别与Jekyll分开页面(没有插件)
首先,您需要一个新的布局文件:
/_layouts/tagpage.html
:---
layout: default
---
<h1>{{ page.tag }}</h1>
<ul>
{% for post in site.tags[page.tag] %}
<li>
{{ post.date | date: "%B %d, %Y" }}: <a href="{{ post.url }}">{{ post.title }}</a>
</li>
{% endfor %}
</ul>
Run Code Online (Sandbox Code Playgroud)
使用此布局文件,您可以通过添加仅包含两行YAML前端内容的新文件来添加新标签页.
以下是jekyll
标记的示例:
/tags/jekyll/index.html
:---
layout: tagpage
tag: jekyll
---
Run Code Online (Sandbox Code Playgroud)
这种方法的唯一缺点是:每次第一次使用新标签时,都必须记住为它创建一个新的双行文件.
要生成根索引文件(即链接到的标记列表/tags/jekyll/index.html
等),您可以使用类似于本答案顶部的解决方案,我生成带有alphebetically sorted标签的单个页面:
{% capture tags %}
{% for tag in site.tags %}
{{ tag[0] }}
{% endfor %}
{% endcapture %}
{% assign sortedtags = tags | split:' ' | sort %}
{% for tag in sortedtags %}
<a href="/tags/{{ tag }}/">{{ tag }}</a><br>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
这将生成如下链接列表:
<ul>
<li><a href="/tags/.net/">.net</a></li>
<li><a href="/tags/authentication/">authentication</a></li>
<li><a href="/tags/backup/">backup</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
请注意,此解决方案使用空格来分割标记,因此当标记包含空格时它不起作用,并且Yevgeniy Brikman的注释也适用于此处.
我有同样的问题,偶然发现了这个问题:http://gist.github.com/143571.
这是一个生成标签列表的rake任务.我稍微修改了一下,我的版本是:http: //github.com/mattfoster/mattfoster.github.com/blob/master/Rakefile.
虽然这不会给你一个每个标签的页面,你可以使用锚点,这是一半!
归档时间: |
|
查看次数: |
13838 次 |
最近记录: |