超軽量フラットファイルCMS「Pico」
先日、Markdownで気軽に書けるCMSを探していたところ、Picoという記事を.mdファイルで保存するフラットファイルCMSを見つけました。
Pico - A stupidly simple & blazing fast, flat file CMS
名前の通り、最小限でまとまっているCMSです。
デフォルトでは管理画面のついていないWiki、またはテンプレートの処理だけをサーバ側に任せた静的サイトジェネレーターのようなイメージで、数ページで完結する小規模サイトをぱっと作ったり、サイトのモックアップを作るのに最適だと思います。
ほしいと思っていたモノにほとんどドンピシャでした。
見つからなかったらSlimかSilexあたりのマイクロフレームワークで作ろうかと思ってたところです。
Picoの特徴
データベース不使用で高速
PicoはMySQLなどのデータベースを使わないので表示が高速です。MySQLの使えない共用サーバの最安プランでも設置できます。
※もちろん記事が大量に増えると遅くなってくるでしょうが。
記事はMarkdown形式
ページの実体はMarkdown形式のファイルです。プラグインにエディタもありますが、デフォルトではローカルでmdファイルを作成し、FTPなどを利用してサーバにアップして更新することになります。
Twigテンプレートエンジン
テーマのテンプレートには柔軟で高速なテンプレートエンジンTwigを採用。テーマファイルがとっても書きやすいです。しかもデフォルトではテーマファイルはstyle.cssとindex.htmlの2ファイルのみ。なんともお手軽です。
上記のように基本的には必要最低限の機能しか備えていませんが、
機能の拡張するプラグイン機構も備えており、公式サイトによく使いそうなものは揃っています。
Plugins | Pico
- RSS Feed RSSフィードを生成する
- Sitemap サイトマップ生成
- Pagination ページネーション
- Private 認証ありのページを作成
- ・・・
シンプルなことはいいことだ
仕様がシンプルなため、CMS自体のことで悩むことはほとんどないでしょう。もちろんシンプル過ぎて必要な機能が足りない、ということにならないよう気をつける必要はありますが。
余計な機能を備えていないCMSは、逆に言えば安全性も高いとも言えます。
Picoのデフォルトでは、悪意のあるユーザの攻撃の糸口となりうるのは記事のURLのみであり、この入力さえ適切にハンドルされていればCMSが原因で脆弱性をつかれることはありません。発見された脆弱性ランキングの常連であるSQLインジェクションとも無縁です。
(まあこの理屈で行くと静的HTMLが最強ですが)
WordPressへの攻撃などの話題もよく聞くようになった昨今、サイトの規模や要望にあったよりシンプルなCMSを検討することも一つの選択肢ではないでしょうか。
簡単にソースも読めそうなのでしばらくカスタマイズしながら私用に使ってみます。