テンプレートのカスタマイズにプログラムを触るかどうか
Movable Typeのテンプレートのカスタマイズは、管理画面から行うことができる。
例えば、WordPressであっても管理画面の「外観>テーマ編集」からテンプレートをカスタマイズすることができるが、Movable Typeの場合、テンプレートの編集はプログラムとは分離されているのが特徴だ。
WordPressのテンプレートは、プログラム言語である*PHP*で記述されている。プログラムの知識があれば、直接いろいろできるので、手っ取り早いだろう。ただ、私のようにプログラムに自信が無い場合は、恐い部分でもある。
PHPの特徴には、HTML言語の中に直接記述して、プログラムを動かすことができることがある。そのため、HTMLを簡単に拡張することができて扱いやすい。とはいえ、プログラムはプログラム。記述を間違うとページが真っ白ということは少なくない。
つまり、WordPressなどでは、テンプレートのカスタマイズにプログラムを触る必要はあるのだが、では、Movable Typeはというと、プログラムを触る必要がないのだ。
HTMLはプログラム?
ちなみに、HTMLはプログラム言語ではない。たまに、プログラム言語だと思われることがあるが、HTMLは「HyperText Markup Language」 の略で*マークアップ言語*と呼ばれる種類だ。
小難しく聞こえるが、大したこと無い。HyperText(ハイパーテキスト)とは、テキストを「超える」という意味で、何が超えているかというと、テキストに「リンクが張れる」などの機能が、ただのテキストと違うところだ。
単体の文章(テキスト)に「リンク」を張ることで、いろんな人の書いた文章(テキスト)を繋げることができるんだぜ。すごくない?
まあ、これがインターネットをインターネットにしているもので、それを成り立たせる「HyperText(ハイパーテキスト)」を機能させている「マークアップ言語」というのがHTMLというわけだ。
「マークアップ」というのは、文章中に「タグ」と呼ばれるもので「囲む」ことで、意味を持たせる。例えば、「特定のタグで囲んだ部分がリンクになりますよ」とか、「見出しになりますよ」、「表になりますよ」などだ。
タグで文章に肉付けをしているだけなのだ。「画像を挿入しますよ」とか、「改行しますよ」とかいった、文章に挿入するというものもあるが、所詮は肉付けするだけで、コンピュータに何か命令して実行するというプログラム的なものとは違う。文書に肉付けしたHTMLファイルをサーバーに置いておいて、それを見にきたブラウザが、文章をマークアップのルールに従って表示するだけなのだ。
ちなみに、デザイン的な装飾も以前はHTMLで行っていたが、HTMLは意味付けだけで、実際のデザインの装飾はCSS(Cascading Style Sheets)という「スタールシート」というもので記述しましょうというのが一般的。
Cascadeとは「小滝」といった意味があって、CSSに書かれたデザインの指示は、滝のように上から下に順番に従っていくよ、というようなことだ。たぶん。だから、下に追記していくと、上で行った指示を上書きしたりする。
マークアップ言語でテンプレートをカスタマイズ
話が逸れたが、Movable Typeのテンプレートカスタマイズは、MTMLというものを使って行う。MTMLとは「Movable Type Markup Language」というものでHTMLを拡張してカスタマイズする。WordPressがPHPというプログラム言語で拡張していったのと違い、MTMLという言語で拡張するのだが、これがプログラム言語ではなくてマークアップ言語というわけだ。
つまり、HTMLの親戚の言語で拡張するので、プログラムに自信が無くても安心というわけだ。HTMLが理解できれば理解できる程度のものだ。
MTMLでカスタマイズしたテンプレートは、そのままではウェブページとして表示されない。そこで、触る必要のないMovable Typeのプログラムが働いてくれる。MTMLでカスタマイズしたテンプレートを、HTMLに変換して書き出すのだ。
書き出されたファイルは、完全にHTMLとなる。MTMLは消えてなくなる。このファイルがサーバー上に置かれ、ブラウザは通常のHTMLと解釈して表示するというわけだ。
この変換する作業が「再構築」と呼ばれ、ときに時間が掛かりすぎて嫌われることもあるが、おかげで扱いやすいHTMLファイルに変換される。ローカルにファイルをコピーしてもちゃんと表示される。プログラマーじゃない者からすると分かりやすい。
プログラム的なこともできなくはない
では、プログラム的なことが全くできないかというとそうではなく、条件分岐や変数の利用などはMTMLでもできる。変換のときにプログラムが実行してくれる。なので、ユーザーの訪問時にリアルタイムに実行するわけではないが、カテゴリごとに表示を変えたり、内容がある場合と無い場合で表示を変えたりといったプログラム的なことはできてしまうのだ。
ユーザーの訪問時にリアルタイムで実行するプログラムはというと、PHPやJavaScriptといったプログラム言語をテンプレートに書くことも、問題は無い。同居はできるのだ。プログラム言語が分かれば、直接書いてしまっても構わない。
常に思うことだが、WordPressのようにPHPでテンプレートをカスタマイズするCMSは、ちょっとカスタマイズをしていこうと思うとすぐに「プログラム」という領域に入ってくる。ちょっとしたことがしたいのに、急に難しくなる印象で、それがハードルとなることがある。
けど、Movable Typeの場合は、その一歩手前。プログラムじゃないけど、プログラムっぽいことができるMTMLを使って、プログラム部分を触らずにカスタマイズできる、という選択肢がある印象だ。
何ごとも、選択肢は多い方がいいし、利用者のレベルに合わせた段階も多い方がいい。そんなCMSだとは思っている。ライセンス費が無く取っつきやすいからWordPressのほうが初心者向けみたいな印象もあるけど、じつはMovable Typeのほうが初心者が段階的に覚えていきやすいのに、などと初心者から段階的にMovable Typeでウェブサイトの仕組みを覚えてきた自分は思ったりする。