jekyllブログでタグをサポートする簡単な方法
質問
ブログを維持するために標準のjekyllインストールを使用していますが、すべて順調です。投稿にタグを付けたい場合を除きます。
YAMLフロントマターを使用して投稿にタグを付けることができますが、タグのすべての投稿を一覧表示できるタグごとにページを生成するにはどうすればよいですか
解決
この要点は、カテゴリごとにページを生成します: https://gist.github.com/524748
Jekyll GeneratorプラグインとPageサブクラスを使用します。
他のヒント
1つのページにアルファベット順にタグを並べるソリューションがあります。
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 %}
アクションこちらで確認できます。
編集:
プラグインなしでタグごとに個別のページを生成する方法もあります(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>
このレイアウトファイルでは、2行のYAMLフロントマターで新しいファイルを追加することで、新しいタグページを追加できます。
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。
これは、タグリストを生成するrakeタスクです。私はそれをわずかに修正し、私のバージョンは次の場所にあります: 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
必ず14行を添付してください / non_website_resources /
ディレクトリのvimスクリプト
AND
上記のクリスチャンの回答に示されている / _ 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
を使用して、_post
ディレクトリ内のすべての.md
ファイル内のすべてのタグを検索します -
sed
を使用して、データを適切な形式に修正します -
すべての一意のタグを取得し、それぞれにディレクトリと
index.html
を作成します
この方法では、新しいタグがある場合は、githubにプッシュする前にスクリプトを実行してページを再構築するだけです
タグを実行するためのプラグイン以外の簡単な方法
編集
他のファイルへの依存関係を削除しました。 1つのスクリプトが必要です!