WordPress

Clojureベースの静的サイト生成ツールCryogenを試してみる : その1

このブログはずいぶん昔にWordPressで作成して以来、だらだらと使い続けているわけですが、とりわけ大きく不満があるわけでもなく、今に至っています。

最近ではすっかりPHPに触ることはなくなり、HTML/CSS/JSといったフロントエンド系もしくは、JVM上で動くプログラミング言語(Java, Clojure, Scala)くらいとなりました。

ということで、一時期はWordCampでもセッションを持っていた面影はまるでなくなり、WordPress素人となりつつあります。

WordPressをツールとして使う分ならともかく、やはりいろいろとカスタマイズしていって自分好みにしていきたいと思うほどはモチベーションがあがらないので、新しいブログツールを探す旅にでました(できれば、Clojureがプライマリランゲッジなので、Clojureベースがのぞましい)

Cryogenってなんだ

これまでいくつか静的サイトジェネレータを試してきて、実際サイトを公開してきていますが、今回はこのブログのリニューアルを目指してClojureベースの静的サイトツールCryogenというのにトライしてみたいと思います。

Cryogenはそもそもなんと読むのでしょうか。「クリョージェン」でしょうか(知ってる方いたら教えてください)。

Cryogenは、単なる静的サイトジェネレータではないらしい

Cryogenは、不思議なツールです。 Cryogenは、Cryogen coreをはじめとする各種Cryogenライブラリと、Clojureの標準ビルドツールであるleiningenのプロジェクトテンプレートとしてのCryogenの2つで構成されています。

leiningenさえインストールされていれば、下記のコマンドで、Cryogenをはじめることができます。

$ lein new cryogen my-blog-name

静的サイトジェネレータというと、普通はmarkdownのような軽量マークアップ言語を静的なファイルとして出力するという機能がメインだと思います。

出力されたファイルは、GitHub pagesのようなオンラインホスティング用に利用したり、自分のサーバにて公開したりします。

例えばPlay framework 徹底入門の書籍サポートサイトは、おそらくこの手のツールで最も有名なJekyllを使って作られています。

Cryogenは、もう一つの顔があります。

Clojureを使ってWebアプリを作ろうとすると、Compojureという軽量Webアプリケーションフレームワークと、RingというWebサーバーレイヤのミドルウェアを用いることがほとんどですが(門外漢の人には何をいってるか意味不明かも)、Cryogenも、ローカルの確認環境時はこのフレームワーク上で動作したりします。

一言でいうと、markdownをコンテンツデータとしてホスティングできる状態としてプロジェクトが用意されるのです。

次回から、このちょっとユニークなCryogenについて見ていきましょう。

Read More

WP MVC 1.2リリースノート(V. 1.2)の拙訳(Japanese transrations)

CakePHPやRuby on RailsをモデルにしたWP MVC 1.2は、WordPressのデフォルトのテーブルへのモデルクラスが用意されたり、アソシエーションなどモデル周りが強化されています。WP MVC 1.2リリースノート(V. 1.2)を簡単に日本語化してみました。

WP MVC Release Notes (v. 1.2)

後方互換性について

WP MVC 1.2は、パフォーマンスを向上させるより多くのコードを適切に整理し、モデルを使わない​コントローラは、簡単に作成することを可能にしました。そのために、いくつかのモデルの属性を、コントローラやMvcConfigurationに移動しました。

次の属性は、モデルで定義されている場合、移動する必要があります。

  • admin_pages – MvcConfigurationの”AdminPages”として定義する必要があります (read more)
  • admin_columns – adminコントローラの”default_columns”として定義する必要があります (read more)
  • admin_searchable_fields – adminコントローラの”default_searchable_fields”として定義する必要があります (read more)
  • admin_search_joins – adminコントローラの”default_searchable_joins”として定義する必要があります (read more)
  • public_searchable_fields – 公開側のコントローラで”default_searchable_fields”として定義する必要があります (read more)
  • public_search_joins – 公開側のコントローラで”default_searchable_joins”として定義する必要があります (read more)
  • hide_menu – MvcConfigurationの”AdminPages”で”in_menu”として定義する必要があります (read more)

新機能について

  • モデルオブジェクトはアソシエーションにアクセスするためのマジックプロパティを持ちました(例えば、$event->venue, $event->speakers)
  • MVCフレームワーク側で使用できるWordPressのWPテーブルがモデルクラスとして追加されました(例えば、MvcPost、MvcUser) (read more)
  • モデルの各オブジェクトのためのポストの作成​​/自動更新のサポートをすることにより、メニューに追加したり、オブジェクトに対してコメントすることが出来るようになりました。 (read more)
  • MvcSettingsを介することで、簡単に管理者用の設定ページを作成することが出来るようになりました。 (read more)
  • アソシエーションを連携させることが出来るようになりました。(例えば、リストにhas_manyのリストアイテムであれば、リストが削除されたときに、そのリストアイテムは自動的に削除することができます) (read more)
  • コントローラーの引数にオブジェクトへの指定された場合は、MvcRouterのURLメソッドの必要がなくなりました。
  • フィルタの数を追加しました(例えば、MvcController::before and after, MvcModel::after_create(), ‘mvc_before_public_url’)
  • モデルのクエリにGroupを追加しました (read more)
  • 集計用にいくつかのメソッドが追加されました(例えば、 $model->count(), max(), min(), sum(), average()) (read more)
  • オブジェクト関連で、外部からのフォーム入力を可能にするためにMvcFormTagsHelperを追加しました。(read more)
  • 管理メニューのページ設定で、parent_slugがカスタマイズ可能になりました。 (read more)
  • MvcModelのcreate() と save()では、オブジェクトを受け入れられるようになりました。
  • MvcModel::to_url()は、必要に応じて第二引数を受け取る事ができます(to_urlメソッドが呼び出されたモデルの$options)
Read More

戦闘力でみる、2011 Open Source CMS Market Share Report

water&stoneというコンサルティング会社が出している「2011 Open Source CMS Market Share Report」というレポートがあります。

Cms01

2011 Open Source CMS Market Share Report (Nov. 11)

PDFで、今年のCMSに関するレポートがいろいろと書かれております。
その中でもCMSの1週間の平均ダウンロード数が、興味深かったので、理解を助けるために某戦闘力に例えて見てみます。

Cms02

1位は、先日WordCamp Tokyo 2011があったWordPressです。

わたしの戦闘力は、644880です

となっており、フリーザ様級(誰)となっております。

2位は、戦闘力86547のJoomla!となっており、隊長(誰)クラスとなっております。

このJoomla!さまの真の力をみせる時がまさかやってくるとはおもわなかったぞ

日本で制作仕事をやっていると、このJoomla!の普及率は不思議な感じがしますね。
海外ではすごいんですね。

3位は、初期戦闘民族の某王子級の戦闘力22836のDrupalです。

がんばれWordPress… おまえがナンバー1だ!!

Drupalは、一見質素なブログツールに見えますが、内部APIはかなり拡張性が高く設計されており、デベロッパー向けフレームワークとしてはなかなかのパワーを持っております。

注目は12位にランクインしているConcrete5です。

戦闘力としては、我らがナッパ様(誰)にも劣る3000ながら、トレンド伸び率としては、517%とダントツの数値をたたき出しており、早速界王様のものとでの修行が実を結び始めております。

来年はどういう感じになるんでしょうね。

Read More