Kentaro Kuribayashi's blog

Software Engineering, Management, Books, and Daily Journal.

Soushi(草紙)というバイモーダルなサイトジェネレータを作った

Soushi(草紙)というサイトジェネレータを作ったので、その話を書きます。

github.com


本エントリはpepabo Advent Calendar 2016の25日目の記事です。昨日は、id:udzura私のロールモデル: エンジニア立ち居振舞い番外編でした。


作るにいたった経緯

PHP7がリリースされてからしばらく経ちました。ペパボでもPHP7へのアップデートに取り組むプロジェクトが、いろんなサービスで多数走っています。中にはいち早くPHP7化を達成し、CTO賞をGETしたチームもあります。

というわけで、ぺちぺ、ぺちぱーという言葉の創始者である私ではあるものの、PHPから遠ざかって10年以上は経過しているところ、あらためてPHP7にキャッチアップしていかねばなあと思い、以前からほしかったサイトジェネレータを作ることにしました。

Soushiの特徴

せっかくPHPで作るのですから、その特徴を活かしたいところです。サイトジェネレータが、その「サイト」を目に見える形にする上で、ポイントが2つほどあります。

  1. 開発時に、ローカルWebサーバによってプレビューできること
  2. Markdown等で書かれたコンテンツを静的ファイルに変換してデプロイし、リモートサーバ上で見えるようにすること

1.については、他のツールでも同様のことが当然のようにできるわけですが、せっかくなので5.4から導入されたビルトインWebサーバを使うことにします。

2.については、PHPはレンタルサーバのようなあらかじめ環境の整ったサービスが数多く提供されており、ポン置きすれば動くという気楽さが好かれて広まった経緯もあることから、2.1)静的ファイルを生成してデプロイできることとあわせて、2.2)作ったディレクトリそのものをアップロードすれば動く形にしました。

この2.1、2.2のふたつがあるよってのが「バイモーダル」たる所以ですね。

Soushiの実例

せっかくなので、SoushiのドキュメントそのものをSoushiを使って作ってみました。こんな感じ。

f:id:antipop:20161225180342p:plain

http://kentarok.org/soushi/

Soushiの今後

PHPは、5.4以降は言語としてけっこう好きな部類のものになってきたなあという印象を抱いていたのですが、実際にPHP7でちょっとしたものを書いてみてその思いを新たにしました。

Soushiにはまだあれこれ足りない機能や雑な実装がたくさんあるのですが、PHPの勉強がてら、あれこれのホームページ作成に使いつつ、ブラッシュアップしていければと思います。