PicoというCMSがあります。データベースを持たず、コンテンツフォルダの中に配置したMarkdownファイルをパースして、テンプレートとマージしてWebサイトを作るという、割とアグレッシブなCMSです。
使い方も非常にシンプルで、Githubのページにあるとおり
- Picoをダウンロードする
- composerをダウンロードし、ルートディレクトリで実行する
と、これだけでとりあえず使える状態になります。動作を確認したければ、以下のようにPHPをサーバーモードで実行すればよいだけ。非常にお手軽です。
php -S 0.0.0.0:8080
ざっくり見た感じの特徴。
- content-sampleというディレクトリがコンテンツディレクトリになっている。変えたい場合はindex.phpのCONTENT_DIRとconfig.phpの$config["content_dir"]を 同時に変える(見ている場所がモジュールの中で統一されていないため、両方一緒に変えておいた方が無難)
- コンテンツの作成日やタイトルなどのメタデータは、マークダウンファイルの先頭にコメントを記載して定義する
- プラグインを作成できる(プラグインは既存のpico_plugin.phpから、フックしたいメソッドだけを定義したクラスを作れば良いという簡単設計)
- テンプレートエンジンには、Twigを用いる。
- コンテンツディレクトリは、サブディレクトリをちゃんと見る。ただし、pages(コンテンツ一覧が格納される配列)にはディレクトリ構造が反映されるわけではない(ので、ディレクトリベースで表示されるコンテンツを切り替えたい場合はプラグインの作成が必要)
- 画像はimagesディレクトリの中のものを参照(他のディレクトリを見たい場合はプラグインの作成が必要)
- タグの仕組みはない。なので、必要ならばプラグインの導入が必要(公式ページでも紹介されていますが、2015/06/04の執筆時点では使われているメソッドが古いようで、そのままではちょっと使いづらいかもしれない)。
- ぱっと見た感じ、Twigやマークダウンの展開などの処理を除くと、pico.phpだけに全ての処理が記載されている。ある意味いじりやすいCMS。
中に「プラグインを作れば出来る」という項目があるとおり、プラグインがないと出来ないことが多く、かなり利用のハードルが高いCMSです。
とはいえ
- 管理画面がない(管理画面をクラックされていたずらされるというセキュリティリスクがない)
- データベースがない(ので、簡単に設置・撤収できる)
- データソースがマークダウン形式なので、あとあとつぶしが利く
という点は、他には代えがたいかな と。あとは自分も調べてないですが、Dropboxに置いたファイルを自動アップロードとか、Gitにコミットしたファイルを自動アップロードみたいな仕組みを実装して使っている人もいるらしく、それらを使えばかなり編集作業を省力化できると思われます。使うまでは手間がかかりますが。
というわけで、これからいくつかPicoに関する記事を書いていこうと思います。