site.*内の変数についての調査

Jekyllの変数に格納されているものがよくわからないので調べた。

参考

site.posts変数の中身

site.posts
A reverse chronological list of all Posts.

ということなので、_post 以下のものが日付が新しい順に表示されるはずだ。

<ul>
  {% for post in site.posts %}
  <li>
    {{post.date | date: "%F" }}:<a href="{{site.github.url}}{{ post.url }}">{{ post.title }}</a>
  </li>
  {% endfor %}
</ul>

これを実行してみる。

site.pages変数の中身

site.pages
A list of all Pages.

全てのページが出力されるらしい。先程と同じようなコードを実行してみる。

<ul>
  {% for page in site.pages %}
  <li>
    {{ page.url }}
  </li>
  
  {% endfor %}
</ul>

実行してみる。

  • /atom.xml
  • /
  • /css/style.css
  • /assets/css/style.css

cssやxmlなど、必要そうな不要そうなものまで出力される。

site.html_pages変数の中身

site.html_pages
A subset of site.pages listing those which end in .html.

どうやら同じような考えだったらしく、html だけ格納されている変数があった。

<ul>
  {% for page in site.html_pages %}
  <li>
    {{page.date | date: "%F"}}:<a href="{{site.github.url}}{{ page.url }}">{{ page.title }}</a>
  </li>
  {% endfor %}
</ul>

実行してみる。

トップページまで出力されるのか・・・。

記事のタグ一覧と、タグ付けされているページの一覧を取得する。

site.tags.TAG
The list of all Posts with tag TAG.
{% for tag in site.tags %}
<article>
  <h1 id="tag_{{ tag[0] }}">{{ tag[0] }}</h1>
  <ul>
    {% for post in tag[1] %}
    <li><a href="{{ post.url }}">{{ post.title }}</a></li>
    {% endfor %}
  </ul>
</article>
{% endfor %}

上記ソースではtag[0]がタグ名、tag[1]がタグを含むページの配列になっているらしい。 少し変更して実行してみる。

{% for tag in site.tags %}
<article>
  <h3>{{ tag[0] }}</h3>
  <ul>
    {% for post in tag[1] %}
    <li><a href="{{ post.url }}">{{ post.title }}</a></li>
    {% endfor %}
  </ul>
</article>
{% endfor %}

実行してみる。

2017-06-16 23:13:15 +0000 現在、固定ページのタグは取得できない ことがわかった。