設定項目

Jekyll はあなたが夢見る任意の方法でサイトを組むことができます、 それはパワフルで柔軟なコンフィグオプションのおかげで可能になります。 これらのオプションは、サイトのルートディレクトリに置かれる _config.yml ファイルか、 ターミナルから実行した jekyll のフラグとしてのどちらでも指定することができます。

コンフィグ設定

グローバルコンフィグ

以下のテーブルは、Jekyll で使用可能な設定と、 それらを制御するためのオプション (設定ファイルで指定します) と フラグ (コマンドラインで指定します) の一覧です。

設定 オプションフラグ

サイトソース

Jekyll がファイルを読み込むディレクトリを変更します。

source: DIR

-s, --source DIR

サイト出力先

Jekyll がファイルを書き出すディレクトリを変更します。

destination: DIR

-d, --destination DIR

セーフモード

カスタムプラグインを無効化します。

safe: BOOL

--safe

エクスクルード

ディレクトリやファイルを変換対象から除外します。 除外はサイトのソースディレクトリからの相対指定であり、 ソースディレクトリ外のものは指定できません。

exclude: [DIR, FILE, ...]

インクルード

ディレクトリまたはファイルを強制的に変換対象に含めます。 ドットファイルはデフォルトで除外されるため、 .htaccess を指定するのがよい例です。

include: [DIR, FILE, ...]

タイムゾーン

サイト生成のためにタイムゾーンを設定します。 このオプションは、Ruby が日付の作成と操作を処理するために使用する環境変数 TZ を設定します。 IANA タイムゾーン データベース からの 任意のエントリが有効です、例えば America/New_York のような。 デフォルトでは、あなたが使っているオペレーティングシステムのローカルタイムゾーンがセットされています。

timezone: TIMEZONE

エンコーディング

名前によってファイルのエンコーディングがセットされます。 ( Ruby 1.9 またはそれ以降でのみ利用可能です。) デフォルトの値は、2.0.0以降では utf-8 、2.0.0より前では nil で、 Rubyのデフォルト ASCII-8BIT を使います。 Ruby で利用可能なエンコーディングは、コマンド ruby -e 'puts Encoding::list.join("\n")' によって一覧することができます。

encoding: ENCODING

ビルドコマンドオプション

設定 オプションフラグ

再生成

ファイルが変更された場合の、サイトの自動再生成を有効にします。

-w, --watch

設定

自動的に読み込まれる _config.yml の代わりに 設定ファイルを指定します。 先に指定したファイルの設定は、後に指定したファイルの設定で上書きされます。

--config FILE1[,FILE2,...]

ドラフト

ドラフトの posts を処理し、レンダリングします。

--drafts

未来日付の出力

未来の日付の posts も出力します。

future: BOOL

--future

LSI

関連 posts の索引を作成します。

lsi: BOOL

--lsi

Posts 制限

解析、出力する posts の数を制限します。

limit_posts: NUM

--limit_posts NUM

Serve コマンドオプション

以下のオプションに加え、 serve サブコマンドは build サブコマンドの オプションすべてを受け入れることができます。 それらのオプションを使用してサイトをビルドしたうえで、サイトを serve します。

設定 オプションフラグ

ローカルサーバのポート

与えられたポートを Listen します。

port: PORT

--port PORT

ローカルサーバのホスト名

与えられたホスト名を Listen します。

host: HOSTNAME

--host HOSTNAME

ベース URL

与えられたベース URL から Web サイトを提供します。

baseurl: URL

--baseurl URL

切り離し

ターミナルからサーバを切り離します。

detach: BOOL

-B, --detach

設定ファイルにタブは使わないでください

パースエラーにつながるか、 Jekyll のデフォルト設定に戻るかのどちらかになるでしょう。 代わりにスペースを使用してください。

デフォルト設定

Jekyll はデフォルトでは以下のオプションで実行されます。 代わりのオプションが設定ファイルまたはコマンドラインから明示的に指定されない限り、 Jekyll はこれらのオプションを使用して起動します。

サポートしていない kramdown のオプションが 2 つあります

remove_block_html_tagsremove_span_html_tags の両方が kramdown HTML コンバータに含まれていないので、現在 Jekyll でもそれらをサポートしていません。 ご注意ください。

source:      .
destination: ./_site
plugins:     ./_plugins
layouts:     ./_layouts
include:     ['.htaccess']
exclude:     []
keep_files:  ['.git','.svn']
gems:        []
timezone:    nil
encoding:    nil

future:      true
show_drafts: nil
limit_posts: 0
pygments:    true

relative_permalinks: true

permalink:     date
paginate_path: 'page:num'

markdown:      maruku
markdown_ext:  markdown,mkd,mkdn,md
textile_ext:   textile

excerpt_separator: "\n\n"

safe:        false
watch:       false    # deprecated
server:      false    # deprecated
host:        0.0.0.0
port:        4000
baseurl:     /
url:         http://localhost:4000
lsi:         false

maruku:
  use_tex:    false
  use_divs:   false
  png_engine: blahtex
  png_dir:    images/latex
  png_url:    /images/latex
  fenced_code_blocks: true

rdiscount:
  extensions: []

redcarpet:
  extensions: []

kramdown:
  auto_ids: true
  footnote_nr: 1
  entity_output: as_char
  toc_levels: 1..6
  smart_quotes: lsquo,rsquo,ldquo,rdquo
  use_coderay: false

  coderay:
    coderay_wrap: div
    coderay_line_numbers: inline
    coderay_line_numbers_start: 1
    coderay_tab_width: 4
    coderay_bold_every: 10
    coderay_css: style

redcloth:
  hard_breaks: true
Kramdown をデフォルトに設定したバージョンは、まだリリースされていません。

最新の開発版リリースにおいて、私たちは Maruku を非推奨としました。代わりに Kramdown がデフォルトになる予定です。 それより前のバージョンでは Maruku をデフォルトで使用しています。

Markdown オプション

Jekyll でサポートしているさまざまな Markdown レンダラでは、 追加のオプションを利用できる場合があります。

Redcarpet

Redcarpet は extensions サブセッティングを設けることで設定が可能です。 値は文字列の配列である必要があります。 各々の文字列は Redcarpet::Markdown クラスの拡張の いずれかの名前であるべきです。 配列に名前が存在する場合、当該の拡張を true にセットします。

Jekyll は Redcarpet の 2 つの特別な拡張を処理します:

  • no_fenced_code_blocks — デフォルトでは、 Jekyll は fenced_code_blocks 拡張(トリプルチルダまたはトリプルバッククォートで コードブロックを区切るための拡張)を true に設定しています。 おそらく、GitHub がこれを積極的に採用しているので、避けられなくなりつつある、という理由からです。 Jekyll で使用するときには、 Redcarpet の通常の fenced_code_blocks 拡張は不活性です。 代わりに、この逆バージョンの拡張を使って fenced code を無効化できます。 最初の区切りのあとに、ハイライトする言語の指定もできることに注目:

      ```ruby
      # ...ruby code
      ```
    

    fenced code block と highlighter を両方有効にすると、静的にコードをハイライトします。 highlighter なしの場合、<code> 要素に class="LANGUAGE" を追加し、 様々な JavaScript のコードハイライトライブラリがこれをヒントとして使用できるようにします。

  • smart — この擬似拡張は SmartyPants をオンにし、 straight quotes を curly quotes に、 ハイフンの連打を em (---) ダッシュ、 en (--) ダッシュに変換します。

その他の拡張はすべて Redcarpet における本来の名前を維持しており、 smart 以外のレンダリングオプションは Jekyll によって指定されることはありません。 利用可能な拡張のリストは Redcarpet の README から見つけられます。 Redcarpet の正しいバージョンの README を見ていることを確認してください。 Jekyll は現在 v2.2.x を使用しています。 footnoteshighlight のような拡張は バージョン 3.0.0 以降まで追加されません。 もっとも一般的に使用される拡張は以下の通りです:

  • tables
  • no_intra_emphasis
  • autolink

Kramdown

上記のデフォルトに加えて、 input オプションに GFM 値を渡すことで、 GitHub Flavored Markdown の認識を有効にすることができます。

例えば、あなたの _config.yml にこう書きます:

kramdown:
  input: GFM