質問

ブログを維持するために標準の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つのスクリプトが必要です!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top