目次を生成する

次の 2 行を .md 中に記述する

* TOC
{:toc}

http://www.seanbuscay.com/blog/jekyll-toc-markdown/

kramdown で有効らしい

相対パスを使用する

GitHub Pages では url は http://username.github.io/ の様に username は サイト名となるため、ファイルは絶対パスで指定できる。

しかし、ローカルで参照する場合はそうも行かない。

以下、例として CSS の場合。

_includes/head.html にコードを仕込み、各ページ生成時に 上位ディレクトリを参照する様にする。

{% assign urlpaths = page.url | split: '/' %}
{% assign csspath = "/" %}
{% assign limit = urlpaths.size | minus: 1 %}
{% for i in (1..limit) %}
  {% assign csspath = csspath | append: "../" %}
{% endfor %}
{% assign css = csspath | append: "css/main.css" %}
    <!-- Custom CSS -->
    <link rel="stylesheet" href="{{ css | prepend: site.baseurl }}">

つまり、url のハスを分解してカウントし、その分上位に上る。 minus: 1 辺りは完全に現物合わせ。

ページ内で使用する変数を先頭で宣言する

スクリプトとかで良くやる手。

ファイル先頭の Front-matter で、任意の変数と値を設定できる。

---
var1: value1
---

参照は以下の様になる

{{ page.var1 }}

html 生成時に value1 と展開される

配列を使う

ファイル先頭の Front-matter で以下の様に書く

---
array1: [ e1, e2, e2 ]
---

参照は

{{ page.array1[1] }}

の様になる。この時 [ 1 ] の様に括弧の前後にスペースを入れてはいけない。

もちろん for ~ in 構文でアクセスできる。 添え字でアクセスする場合は for ~ in (1..3) の構文が使える。

ハッシュを使う

ファイル先頭の Front-matter で以下の様に書く

---
hash1: { k1: v1, k2: v2, k3: v3 }
---

':'(コロン) + ' '(スペース) でキーと値をペアにする。

参照は

{{ page.hash1['k1'] }}

の様になる。 配列と同様、括弧の前後にスペースを入れてはいけない。

for ~ in 構文でアクセスできるのも同様。