タグフィルタ

標準のLiquidタグは全てサポートされています。Jekyllはサイト構築のためにいくつかの組み込みタグを用意しています。また、あなた自身のタグをプラグインを使用して作成することもできます。

Includes

サイトに渡り、繰り返すページ構文がある場合は、includeは管理面からもよい方法です。

コードの構文ハイライト

JekyllはRougeのおかげで100言語以上のシンタックスハイライトを組み込みサポートしています。RougeはJekyll 3以上のデフォルトのハイライターです。

Pygmentsの使用は推奨されず、Jekyll 4ではサポートされていません。highlighter: pygmentsの設定は、Pygmentsのスタイルシートと100%互換のRubyで書かれたRougeの使用に、自動的に変更されます。

コードブロックのシンタックスハイライトのレンダリングは、以下のようにコードを囲みます。

{% highlight ruby %}
def foo
  puts 'foo'
end
{% endhighlight %}

highlightタグの引数(上記の例ではruby)は言語の識別子です。ハイライトしたい言語の適切な識別子はRouge wikiから“short name”を探してください。

Jekyllはコードブロックに全てのLiquidフィルタを適用します

使用する言語に中括弧がある場合、{% raw %}{% endraw %}でコードを囲む必要があります。Jekyll4.0 以降、front matterにrender_with_liquid: falseを追加することで、特定のドキュメントに対してLiquidを完全に無効にできます。

行番号

linenosというhighlightの2番目の引数はオプションです。linenos引数を含む場合、ハイライトコードは強制的に行番号を含みます。例えば、以下のコードブロックは各行に行番号が振られます。

{% highlight ruby linenos %}
def foo
  puts 'foo'
end
{% endhighlight %}

シンタックスハイライトのスタイルシート

ハイライトを表示するために、ハイライトのスタイルシートを含める必要があります。PygmentsやRougeには、Pygmentsのスタイルシートを使用でき、こちらのギャラリーやそのリポジトリで見つけることができます。

あなたのcssディレクトリにCSSファイル(例えば、native.css)をコピーし、シンタックスハイライトのスタイルをmain.cssにインポートします。

@import "native.css";

リンク

Jekyll v4.0 以降、linkpost_urlタグの前にsite.baseurlを使用する必要がなくなりました。

ポストやページ、コレクションアイテム、ファイルへのリンクはlinkタグで指定したパスへのパーマリンクURLを取得生成します。例えば、mypage.htmlへのリンクにlinkタグを使用した場合、パーマリンクのスタイルを拡張子を含むよう・含まないよう変更したとしても、linkタグで作成したURLは常に有効です。

linkタグを使用するときは、ファイルの元々の拡張子を含めなければなりません。以下にいくつか例を示します。

{% link _collection/name-of-document.md %}
{% link _posts/2016-07-26-name-of-post.md %}
{% link news/index.html %}
{% link /assets/files/doc.pdf %}

以下のように、Markdownのリンク作成にもlinkタグを使用できます。

[Link to a document]({% link _collection/name-of-document.md %})
[Link to a post]({% link _posts/2016-07-26-name-of-post.md %})
[Link to a page]({% link news/index.html %})
[Link to a file]({% link /assets/files/doc.pdf %})

ポストやページ、コレクションへのパスは、(設定ファイルのある)rootディレクトリからの相対パスで定義されます。既存のページから他のページへのパスではありません。

例えば、(pages/folder1/folder2にある)page_a.mdで、(pages/folder1にある)page_b.mdへのリンクを作成しているとします。パスは../page_b.htmlではありません。代わりに、/pages/folder1/page_b.mdを使用します。

パスが分からない場合、ページに{{ page.path }}を追加し、パスを表示します。

linkまたは post_urlタグを使用することの一つの大きな利点はリンク検証です。リンクが存在しない場合、Jekyllはあなたのサイトを構築しません。リンクが壊れていることを警告するので、(リンクが壊れたサイトを構築し公開するのではなく)修正することができます。

linkタグにフィルタは追加できませんので注意してください。例えば、{% link mypage.html | append: "#section1" %}のようにLiquidフィルタで文字列を追加することはできません。ページのセクションへのリンクは、通常のHTMlやMarkdownのリンク方法を使用する必要があります。

ポストへのリンク

サイトのポストへのリンクを行いたい場合、post_urlタグで指定したポストへのリンクを取得生成できます。

{% post_url 2010-07-21-name-of-post %}

ポストをサブディレクトリに整理している場合は、ポストへのパスにサブディレクトリを含めます。

{% post_url /subdir/2010-07-21-name-of-post %}

post_urlタグを使用するときは、ファイルの拡張子を含める必要はありません。

以下のようにMarkdownでのポストへのリンク作成でも、このタグを使用できます。

[Name of Link]({% post_url 2010-07-21-name-of-post %})