Jekyll

提供: ArchWiki
2018年1月18日 (木) 22:02時点におけるKusakata.bot (トーク | 投稿記録)による版 (Pkg/AUR テンプレートの更新)
ナビゲーションに移動 検索に移動

Jekyll はシンプルなブログなどの静的サイト作成プログラムです。Ruby で書かれており GitHub の共同創立者 Tom Preston-Werner によって開発されました。テンプレートディレクトリ (ウェブサイトの型を記述します) を使って、Textile や Markdown と Liquid コンバーターで動作し、Apache などのウェブサーバーで公開できる完全な静的ウェブサイトを吐き出します。Jekyll は GitHub Pages で使われているエンジンでもあります。

Werner は Jekyll のリリースを 彼のウェブサイト で2008年11月17日に発表しました。

インストール

Jekyll は RubyGems パッケージマネージャや AUR のパッケージを使うことで Arch Linux にインストールできます。どちらの方法を使うにしても公式リポジトリの Ruby パッケージをインストールする必要があります。

RubyGems (推奨)

ノート: RubyGems 1.8 以上では 数多の警告 が表示されます。

Jekyll をインストールする一番の方法は Ruby プログラミング言語のパッケージマネージャである RubyGems を使うことです。RubyGems は ruby パッケージで一緒にインストールされます。root で gem コマンドを使うことでマシンの全てのユーザーから利用できるように Jekyll をインストールすることができます。別のインストール方法は Ruby ページにあります。

Jekyll をインストールする前に RubyGems のアップデートを行って下さい:

$ gem update

それから gem コマンドを使って Jekyll をインストールします:

$ gem install jekyll

Arch における Gem の管理についての情報は Ruby#RubyGems を参照。

AUR (別の方法)

もしくは、AUR から ruby-jekyllAUR[リンク切れ: パッケージが存在しません] をインストールしてください。

Rubygems バイナリリポジトリ

非公式の quarry リポジトリから ruby-jekyllインストールしてください。

マークアップ言語の選択

テキストから HTML に変換するツールを定義するマークアップ言語は様々なものが存在します。Jekyll はデフォルトで2つのマークアップ言語に対応しています。TextileMarkdown です。Jekyll の依存パッケージとして両方の実装がインストールされます。

Textile

Textile は Jekyll によって使用されるマークアップ言語です。

ノート: RedCloth (Ruby で Textile マークアップ言語を使うためのモジュール) は gcc 4.6.0 でインストールすることができません (参照: RedCloth Ticket 215219)。gem install RedCloth --version 4.2.2 コマンドで安定版の 4.2.2 をインストールすることを推奨します。

Markdown

Markdown はマークアップ言語であり、John Gruber によって Perl で開発された、テキストから HTML に変換するツールのことも指します。Markdown の Perl と Python 実装は公式リポジトリに存在します。他の実装は AUR からインストールできます。Jekyll における Markdown の デフォルト実装kramdown です。

さらに、David Parsons によって C で実装された Discount と、Ryan Tomayko によって書かれた Ruby 拡張である RDiscount が存在します。RDiscount は root で Rubygem を使うか、ruby-rdiscount パッケージでインストールすることができます。

# gem install rdiscount -s http://gemcutter.org

インストールしたら、以下の行を _config.yml に追加してください:

markdown: rdiscount

Markdown がよくわからない場合、Gruber の ウェブサイト に詳しい説明が存在します。Gruber のオンライン 変換ツール を使うことで Markdown をネットから試すこともできます。

設定

デフォルトの Jekyll のディレクトリツリーは以下のようになっています。"." は Jekyll が生成したウェブサイトのルートディレクトリを示しています。

.
|-- _config.yml
|-- _layouts
|   |-- default.html
|   `-- post.html
|-- _posts
|   |-- 2010-02-13-early-userspace-in-arch-linux.textile
|   `-- 2011-05-29-arch-linux-usb-install-and-rescue-media.textile
|-- _site
`-- index.html

デフォルトファイルの構造は GitHub にある Daniel McGraw の Jekyll-Base ページに存在します。

ノート: McGraw has also setup a more extensive default file structure on GitHub.

_config.yml ファイルには設定データを保存します。設定ファイルに記述さえる様々な設定はフラグとも呼ばれます。フラグの詳しい説明とデフォルト設定は GitHub で確認できます。

_config.yml を自由に設定したら、Jekyll でウェブサイトを生成するために必要なファイルを作成します。

使用方法

次に Jekyll のためのテンプレートを作成する必要があります。テンプレートはデータの入力に Liquid テンプレートシステムを利用します。詳しくは GitHub を見てください。

さらに、/_layouts/layout.html の各ファイルには YAML Front Matter のヘッダが必要です。

インデックスレイアウトを作成

以下は index.html となる基本的なテンプレートです。ウェブサイトのインデックスページを生成するのに使われます。

---
layout: layout
title: Jekyll Base
---

<div class="content">
  <div class="related">
    <ul>
      {% for post in site.posts %}
      <li>
	<span>{{ post.date | date: "%B %e, %Y" }}</span> <a href="{{ post.url }}">{{ post.title }}</a>
      </li>
      {% endfor %}
    </ul>
  </div>
</div>

一般的なウェブサイトのレイアウトを作成

以下は一般的なレイアウトをしたウェブサイトのベーシックなテンプレートです。各ファイルの YAML Front Matter ブロックで参照します (参照: 記事を作成)。

_layouts/layout.html
<!DOCTYPE HTML>

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta name="author" content="Your Name" />
    <title>{{ page.title }}</title>
  </head>
  <body>
    <header>
      <h1><a href="/">Jekyll Base</a></h1>
    </header>
    <section>
      {{ content }}
    </section>
  </body>
</html>

記事のレイアウトを作成

以下は各投稿の基本テンプレートです。各ファイルの YAML Front Matter ブロックで参照されます (#記事を作成を参照)。

_layouts/post.html
---
layout: layout
title: sample title
---

<div class="content">
  <div id="post">
    <h1>{{ post.title }}</h1>
    {{ content }}
  </div>
</div>

記事を作成

ブログ記事のコンテンツは _posts ディレクトリの中のファイルに収まります。デフォルトの命名規則を使用する場合、年・月・日・タイトルにマークアップ言語の拡張子である *.md または *.textile を付けます (例: 2010-02-13-early-userspace-in-arch-linux.textile)。ファイル名の日付は投稿の公開日として使われます。さらに、ファイル名を使ってパーマリンクが生成されます (例: /categories/year/month/day/title.html)。別のパーマリンクスタイルを使いたい場合は GitHub を参照してください。

テスト

Textile や Markdown ドキュメントを元に静的な HTML ウェブサイトを生成するには jekyll を実行してください。--serve フラグを付けて Jekyll を実行することで生成した HTML ウェブサイトのテストを同時に行えます。

$ jekyll serve

もしくは jekyll にファイルの変更を監視して欲しい場合:

$ jekyll serve --watch

_config.yml でサーバーのオプションを定義することを推奨します。デフォルトではポート 4000 でサーバーが起動し、ウェブブラウザで localhost:4000 を開くことでアクセスできます。

参照