タグフィルタ
標準の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
以降、link
やpost_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 %})