私はブログを維持するために標準のjekyllインストールを使用しています、すべてがうまくいっています。自分の投稿に本当にタグを付けたい場合を除いて。
I can YAMLフロントマターを使用して投稿にタグを付けますが、タグのすべての投稿を一覧表示できるタグごとにページを生成するにはどうすればよいですか?
この要点は、カテゴリごとにページを生成します: https://Gist.github.com/524748
JekyllGeneratorプラグインとPageサブクラスを使用します。
これが解決策です1ページにアルファベット順にソートされたタグを使用。
Liquidのみを使用します。つまり、GitHubPagesで機能します。
{% 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 %}
あなたはそれが実際に動いているのを見ることができます ここ 。
編集:
プラグインなしでタグごとに個別のページを生成する方法もあります(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>
このレイアウトファイルを使用すると、YAMLフロントマターが2行しかない新しいファイルを追加することで、新しいタグページを追加できます。
jekyll
タグの例を次に示します。
/tags/jekyll/index.html
:---
layout: tagpage
tag: jekyll
---
このアプローチの唯一の欠点は、新しいタグを初めて使用するたびに、そのタグ用に新しい2行のファイルを作成することを忘れないでください。
ルートインデックスファイル(つまり、/tags/jekyll/index.html
などにリンクするタグのリスト)を生成するには、この回答の上にあるような同様のソリューションを使用できます。ここで、アルファベット順にソートされたタグを使用して単一のページを生成します。
{% 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 %}
これにより、次のようなリンクのリストが生成されます。
<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>
このソリューションは空白を使用してタグを分割するため、タグに空白が含まれている場合は機能せず、 Yevgeniy Brikmanのコメント ここでも適用されることに注意してください。
jekyllを使用しているサイト をご覧ください。タグ付け機能を実装したカスタムフォークがいくつかありますが、うまくいけばあなたが望む方法でも:-)
私は同じ質問をし、これに出くわしました: http://Gist.github.com/143571 。
これは、タグリストを生成するレーキタスクです。少し変更しましたが、バージョンは http://github.com/mattfoster/mattfoster.github.com/blob/master/Rakefile です。
これではタグごとのページは表示されませんが、アンカーを使用できます。これは途中です。
タグクラウドとタグページを自動的に生成する素晴らしい Jekyll Tagging プラグインを使用しています。インストールと使用が簡単です。
これが 「写真」タグのページ 私のブログ(フランス語)にあり、下部にタグクラウドが表示されています。
上記のクリスチャンの答えに基づいて、私は彼が説明したことを実行するbashスクリプトを作成しました。
https://github.com/ObjectiveTruth/objectivetruth.github.io/blob/master/rebuild_tags.sh
必ず/non_website_resources/
ディレクトリに14行 vim script を添付してください
そして
上記のクリスチャンの回答に示されている/_layouts/tagpage.html
を作成しますが、名前を/_layouts/tag_pages.html
に変更します。
ファイル構造は次のようになります。
.jekyll_website_root
├── _posts
├── _layout
│ ├── tag_pages.html
├── rebuild_tags.sh
ルートディレクトリから実行します./rebuild_tags.sh
許可拒否エラーが発生した場合は、必ずchmod 777 rebuild_tags.sh
を実行してください
スクリプトのコメントを見ると、かなり単純です。
sed
を使用して、.md
ディレクトリ内のすべての_post
ファイル内のすべてのタグを検索します
sed
を使用して、データを適切な形式にマッサージします
すべての一意のタグを取得し、それぞれにディレクトリとindex.html
を作成します
このように、新しいタグがある場合は、スクリプトを実行してページを再構築してから、githubにプッシュします
タグを作成するための素晴らしくシンプルな非プラグインの方法
[〜#〜]編集[〜#〜]
他のファイルへの依存関係を削除しました。 1つのスクリプトが必要です!