ディレクター・ノンプログラマー目線のMovable Typeの補足
こんにちは、西山です。
この記事は、2016年2月27日(土)に開催されたCMSMix Sapporoのセッション「ディレクター・ノンプログラマー目線のMovable Type」に関するフォロー記事です。
私が担当したこのセッション、あろうことか時間配分を誤って10分以上も早く終わってしまったのでした。
明らかな準備不足...
そこでこの記事では、セッション中に「伝えたつもりでいるけれど、伝わっていないかもしれない」ことを中心に、当日のセッションをフォローアップする目的で書いていきます。
セミナー・イベントに参加された方はもちろん、参加されなかった方もぜひご覧ください。
なお、スライドはこちらで公開されています。
それではさっそく。
§Movable Typeのこれまで
スライドの中では、2001年にトロット夫妻によりリリースされたMovable Typeの生い立ちをお話しました。
デザイナー・フロントエンド職の奥さんMenaが、もっと使いやすいブログが欲しいと言ったことをきっかけに、エンジニア職の旦那さんBenが開発したわけですが、ここで言いたかったのは、そもそもがフロントエンドの人にわかりやすいブログソフトとして開発されたということですね。
もちろん、他のブログ・CMSもそのような経緯はあると思うのですが、いわゆるMTMLを利用したテンプレートエンジン的な発想が新しかったのかなと思います。
フロントエンドの人がコードを書かない、この時からMovable Typeにはその絶対的前提があったんですね。
§Movable Typeを気に入っているところ
1.ファイル形式を問わず静的ファイルを出力
Movable Type(MT)の一番の特長といって良いのが、この静的ファイルの書き出しだと思います。
多くのCMSは、ウェブサイトにアクセスがあった際にデータベース(DB)にアクセスして情報をブラウザに表示するようになっていますが、それに対してMTは、予めDBからWebサーバー内に静的ファイルを書き出して(これを再構築と言います)おいて、閲覧者はそのファイルにアクセスします。
DBにアクセスしない分、表示にかかる時間が短かったり、DBサーバーに負荷を与えないなどがそのメリットとして挙げられますね。
そしてこの静的ファイルの書き出しがあるからこそ、MTが「パブリッシング・プラットフォーム」と呼ばれると思います。
つまり、書き出すファイルはHTMLに限らず、どんなファイル形式でも書き出せることがその特徴でもあります。
実際、MTをインストールした直後の段階でも、cssやjavascriptはもちろん、xmlなんかも出力されるようになっています。
これで何ができるかというと、例えばブログ記事の情報をJSON形式で書きだしておいて、それを検索対象とした「全文検索機能」なども設けることができちゃいます。
そのようにして開発されているのがbit partさんのFlexibleSearchですね。
MTの検索はCGI経由で行うので動作が遅い...という場合でもこれが使えると何の問題もなくなります。
2.MTMLの学習コスト
MTはMTML(Movable Type Markup Language)と呼ばれるHTMLを拡張したテンプレート記述言語を持っています。
俗にMTタグと呼ばれるそれは、もちろん独自仕様のルールを覚える必要はありますが、他の言語よりも記述が容易で学習コストが低いと感じます。
例. ブログ記事の一覧を出力する
出力したい内容
記事がある場合
<a href="01.html">記事タイトル①</a><br />
<a href="02.html">記事タイトル②</a><br />
<a href="03.html">記事タイトル③</a><br />
・
・
・
記事がない場合
<p>記事がありません</p>
WordPressの場合
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a><br />
<?php endwhile; ?>
<?php else : ?>
<p>記事がありません</p>
<?php endif; ?>
Movable Typeの場合
<mt:Entries>
<a href="<mt:EntryPermaLink>"><mt:EntryTitle></a><br />
<mt:Else>
<p>記事がありません</p>
</mt:Entries>
上記のような感じで、HTMLのタグを置き換えていく感じで実装できるので、初心者の人でも学習しやすいと思います。
さらに、条件分岐の <mt:if> や、変数を定義して値を設定する <mt:SetVar> 、テンプレートモジュールを読み込む <mt:Include> などがあり、上級者になるとテンプレート側だけでいろいろな仕組みを作ることも可能になります。
例えば私のようにプログラミングがほとんどできない人でも、MTMLができると表現の幅が大きく広がり、できる人っぽい気分になれたりもします(笑)
プログラミングではないけど、自分の思ったことが実現できたときはやはり嬉しいものです。
3. 再構築
MTが避けられる要因の一つに「再構築」があります。
先にも出てきたように、DBに保存してあるデータをテンプレートに沿うようにHTML(ほか)として出力する際の動作ですが、出力ファイルが増えるにつれ、再構築にかかる時間が増えることから、敬遠されることが多いです。
ただ、この再構築も私としては気に入っているところになります。
一番気に入っているのが、もしもMTMLの書き方が間違っていたり、MTのバージョンアップ時に動作しないプラグインがあっても、公開されているウェブサイトの閲覧にはなんら支障をきたさないという点です。
例えばMTMLの書き方が間違っていた場合、再構築の段階でエラーが発生し、ファイルそのものは出力されないので、公開中のサイトでファイルを上書きしてしまったり、画面が白くなってしまうことがありません。
これであれば、初心者の人でも公開中のサイトで安心して編集ができるので、私は再構築そのものも気に入っている部分になります。
また、スライドの中にもありますが、再構築の時間そのものを短縮する方法もいろいろありますので、ぜひお試しください。
4. 確認用ファイルを出力できる
MTは、テンプレートごとに出力するファイル名を変えられます。
なので、公開中のindex.htmlを編集する際、それを複製してtest.htmlなどを作成、実際に出力した状態でブラウザからアクセスすることができます。
例えば、トップページに新しいバナーを一つ追加したいという要望があった場合、この方法で実際に出力されたものを確認することができるんですね。
さらに、確認が取れていざ差替公開となった際も、ファイル名をindex.htmlに変更して再構築すれば、もともと存在したindex.htmlを上書きして差し替えることも可能です。
リビジョン(履歴)を残すという意味ではもともとのindex.htmlを編集した方が良い場合もあると思いますが、いずれにしても差し替え公開時も手間なく行うことが可能です。
5. 分業できる
これまでのとおり、MTはそのテンプレートエンジンとしての機能が優れているので、フロントエンドの人がコードを書くことはありません。
プログラムにかかる部分(MT本体やプラグインなど)はシックス・アパートさんやプログラマーさんにお任せして、MTタグとして利用できるようになったところでフロントエンドの出番となるわけです。
各自が自分の専門分野に専念することで作業が効率化できるというのもありますが、間違ったコードでセキュリティ上のリスクが増えるようなことがないですし、安心・安全にウェブサイトが運営できるというのも魅力と思います。
§ちょっと残念なところ
1. ドキュメント(マニュアル)
確かにマニュアルがわかりやすいとは言えないと思います(^^;
ただ、これは個人の感想ですが、習うより慣れろな部分は多いと思いますし、そのためにMTユーザーが作るコミュニティが全国各地にあったり、オンラインでもMTQのような場所があったりもします。
まずはやってみよう!というのが無いと覚えられないものでもあると思うので、ドキュメントで不足するところを補うものは十分にあるのかなと思います。
2. ライセンス料
オープンソースのように無償で利用できるわけではないのですが、実はMTにも様々なライセンス形態があって、利用状況に応じて使い分けることが可能です。
個人的にはMTクラウドやMovableType.netのようなものが非常に使いやすいのではないかと思うのでぜひ検討して欲しいですね。
CPIさんのACE01も使いやすいプランになっていますし、AWSでもかなりの低価格で利用できると思うので、ここは押さえておいて欲しいです。
ただ、ライセンス料がかかるということは、逆にいうとメーカーサポートがあるとも言えるので、自身でオープンソースのメンテナンスをバッチリできる!という人じゃない場合は、恩恵を受けられる場面もあるんじゃないかなと。
特にうちのようにウェブサイトの構築を請け負うような会社の場合、納品して終わりになるような案件でオープンソースを利用するのはちょっと気が引けるなと思うのは私だけでしょうか。(あとはそちらで上手く運用してくださいねと放り投げるようなことになりかねないので)
---
というわけで、CMSMix Sapporoでの私のセッションを振り返りつつ、フォローアップの記事を書いてみました。
まだまだ足りないところもあると思うのですが、Movable Typeって思っていたよりも良さそうね!と思っていただけたなら幸いです。
私も所属するMovable Typeユーザーグループ MT蝦夷でも、ミニセミナーやミニ勉強会などやっていますので、気になる方はぜひご参加くださいね。