It's okay to be weird

Ruby on RailsとParklifeで静的サイトを構築する

Date:

この記事ではRuby on Railsで静的サイトを構築する方法を紹介します。Parklifeというツールの力を借ります。

Parklifeとは

Parklife とは、公式サイトの言葉を借りると下記のようなツールです:

Parklife is a Ruby library to render a Rack app (Rails/Sinatra/etc) to a static build ready to be served by GitHub Pages, Netlify, S3, Vercel, or any other server.

要するにRailsなどのRackアプリを静的ビルドできますよーというものです。

僕はBen SheldonさんのLiving Parklife with Rails, coming from Jekyll | Island94.orgという記事を読んでこのツールの存在を知りました。
仕事でもRails書いてるし、個人サイトもRailsで書けるなら書いてみるかーとなったところ、Hugoで書いていたサイトをうまくすんなり移行させることができました。

やること

やることは単純で、普通にRailsアプリを書いて、コントローラーとビューに吐き出させたものをParklifeにコマンドでクロールさせてビルドするだけです。
ParklifeにはGitHub Pages用のGitHub Actionsのワークフローの生成機能もついているので楽ちんです。

書くのはRailsアプリそのものなので、モデルやヘルパーは思いのままです。また、テストもいつもと同じ感覚で書けます。
僕の場合は主にMarkdownのポストをHTML出力するブログ用のMVCをkramdown-parser-gfmやfront_matter_parserなどを使って書きました。
今は主にブログぐらいしかないですが、もっと色んなページで充実させてみたいと思わせてくれています。

参考になる記事とリポジトリ

サイトを構築するにあたって、Ben Sheldonさんの先ほどのブログ記事と彼のサイトのリポジトリが超参考になりました。
下手にサンプルコードを用意するより、このリポジトリを見て自分なりにアレンジしてみるとうまくいくと思います。

まとめ

皆さんもこの記事を読んで興味を持っていただけたら、Railsで静的サイトを作ってみてはいかがでしょうか。
Happy railing!


Takayuki Nagatomi

Takayuki Nagatomi (永冨 隆之)

1985年に生まれて以来ずっと福岡在住。高校を1年で中退後、引きこもって海外ゲームばかり遊んでいたら英語が得意になり、TOEICスコア960を獲得。
英語が得意なら言語を扱うプログラミングも向いているのではないかという恩師の勧めにより26歳の時に情報系の専門学校に入学。
30歳でソフトウェアエンジニアとしてのキャリアを開始したweird programmerです。
家族を何よりも大事にしたい、夫であり2児の父でもあります。

現職: 株式会社SmartHR