読者です 読者をやめる 読者になる 読者になる

約束の地

あの日あの時のキャロの想い出

Slim を単体で使う場合の方法

Ruby Web

Slim を単体で

Ruby 用のテンプレートエンジンである Slim は、一般には Rails 用のテンプレートとして用いられることが多いようですが、単体で Webページ の静的ジェネレーター(というと大げさかもしれませんが)として用いることができます。

準備

使用する前の準備はいつもどおりの簡単なもので、以下で一発です。

# gem install slim

slim ファイルを書く

あとは Slim の書式に沿って slim ファイルをゴリゴリ書いていけばいいのですが、ここでは動作の確認のために、以下のような簡単なコードを書いてみました。index.slimあたりで保存しときましょう。ちなみに空行は任意に空けても構わないので、見やすいコードを書きましょう。

doctype html
html lang="ja"
  head
    title Hello, Slim!

  body
    h1 Hello, Slim!

html ファイルに変換する(slimrb)

html ファイルに変換するためには以下のようにslimrbを使って html ファイルに書き出します。

# slimrb index.slim > index.html

これで同ディレクトリにindex.htmlが生成されました。その内容は以下のとおりです。

<!DOCTYPE html><html lang="ja"><head><title>Hello, Slim!</title></head><body><h1>Hello, Slim!</h1></body></html>

html ファイルに改行が入っていない

上記の html の内容を見ればわかりますが、単純にslimrbを実行した場合に生成されるファイルには改行が入っていません。改行を入れるためには起動オプションを設定する必要があります。その前段階として、slimrbで使えるオプション一覧を見てみます。

# slimrb -help                                              
Usage: slimrb [options]
    -s, --stdin                      Read input from standard input instead of an input file
        --trace                      Show a full traceback on error
    -c, --compile                    Compile only but do not run
    -e, --erb                        Convert to ERB
        --rails                      Generate rails compatible code (Implies --compile)
    -r, --require library            Load library or plugin with -r slim/plugin
    -p, --pretty                     Produce pretty html
    -o, --option name=code           Set slim option
    -l, --locals Hash|YAML|JSON      Set local variables
    -h, --help                       Show this message
    -v, --version                    Print version

ありました。-pオプションですね。ちなみにこれは-oオプションにて-o pretty=trueと指定しても同じことになります。

改めてオプションを付けて実行

それでは改めて-pオプションを付けて実行してみましょう。

# slimrb -p index.slim > index.html

生成されたindex.htmlの内容は以下のとおりです。

<!DOCTYPE html>
<html lang="ja">
  <head>
    <title>Hello, Slim!</title>
  </head>
  <body>
    <h1>
      Hello, Slim!
    </h1>
  </body>
</html>

うん、いい感じになりました。これで単体で Slim を使う場合もはかどることでしょう。

Powered by はてなブログ