Movable Type をやめても、サイトは作り直さない
Kiln は既存の Movable Type サイトの記事・テンプレート・URL を引き取り、同じ HTML をあらかじめ書き出したファイル(静的ファイル)として出力します。URL も見た目も変わりません。公開サーバーで Perl とデータベースを動かし続ける必要がなくなり、記事1本の修正で全ページを作り直すこともなくなります。MIT ライセンスで配布しています。
いま判断していただきたいのは、本番を載せ替えるかどうかではありません。検証環境で自社のデータとテンプレートを一度通してみるかどうかです。MT の本番には触らず、データベースの写し1つで済みます。
本番運用の実績はまだありません。商用サポートの窓口もありません。制約は後半の「正直に書いておくこと」にまとめました。
何を引き取り、何が変わるか
引き取るのは MT のデータベース1つだけです。記事、カテゴリ、タグ、アイテム、コメント、コンテンツタイプ、カスタムフィールド、そしてテンプレートまで、すべてそこから読みます。MT のインストールを動かす必要はありません。
| 判断軸 | Movable Type の構成 | Kiln の構成 |
|---|---|---|
| 記事1本を直したときの公開 | その記事が載るページをまとめて作り直す | 変更が影響するページだけを作り直す |
| 公開サーバーに必要なもの | Perl、CGI、データベース接続 | HTML ファイルを置ける場所だけ |
| 管理画面の置き場所 | 公開サーバー上 | 手元か社内。公開側に動くプログラムが無い |
| テンプレートの履歴と巻き戻し | データベースの中。差分も履歴もない | ファイルなので Git の履歴とレビューが使える |
| サイト内検索 | mt-search.cgi が毎回検索する | 公開時に索引を書き出し、ブラウザ側で絞り込む |
| ライセンス費用 | 年額の製品ライセンス | なし(MIT ライセンス) |
| 障害時の問い合わせ先 | ベンダーまたは制作会社 | なし。社内か制作会社で対応する |
「変更が影響するページだけ」が本当に正しいかは、機械検査で確かめてあります。どんな編集をどの順で行っても、必要な分だけ作り直した結果が全ページを作り直した結果と1文字も違わないことを、7,500通りの編集の組み合わせで検証しています。
記事の書き方も、情報設計も、サイトの見た目も変わりません。変わるのは公開の仕組みだけです。だからリニューアルとは切り離し、その前か後に行う作業になります。
「変わらない」の根拠と、その限界
本物の Movable Type 8.8.1 を実際に動かし、同じ素材から出た HTML を1文字ずつ比べています。改行や空白をそろえる処理も挟みません。確かめたのは6通りで、それぞれ別の疑いに答えています。
| 比べた内容 | 一致 |
|---|---|
| テンプレートの機能を1つずつ | 59パターンすべて |
| 同じ59パターンを、MT のデータを読み込んだあとの状態から | 59パターンすべて |
| 見本サイト1つの公開を MT の「サイトの再構築」と | 27ファイルすべて |
| MT のデータを入れて公開するまでの通し運転 | 27ファイルすべて |
| 同じ公開を、記事の保存先を替えて | 27ファイルすべて |
| 生成される URL を MT 自身の公開記録と照合 | 全件 |
比較に使ったのはテンプレートの機能を一通り並べた見本サイトで、企業サイトとしては小規模です。だから、この結果で言えるのは「Kiln はテンプレートを MT と同じに読む」というところまでです。自社のサイトが通るかどうかは、別に確かめる必要があります。その確かめ方は変わらないと言える根拠に書きました。
検索順位と外部からのリンクを守るうえで効くのは最後の行です。MT は、自分が公開したファイルの一覧を持っています。Kiln はその一覧と、これから作る URL を1件ずつ照合します。消える URL が1件でもあれば、移行を止められます。
記事を書く画面は、日本語で動きます
移行したあとに記事を書く場所が必要です。Kiln には管理画面があり、ブラウザの設定に従って日本語で表示されます。MT にもある用語は、MT と同じ呼び方にしました(アイテム、サインイン)。
日々の運用でいちばん変わるのは、公開のしかたです。保存しても、まだ公開されません。保存した変更は溜まっていき、「サイトを公開」を押したときにまとめて公開されます。
- 記事の一覧と検索
- 本物のテンプレートで描くプレビュー
- カテゴリとタグ
- アイテムのアップロード
- 保存ごとの履歴と巻き戻し
- 移行したコメントの承認
- テンプレートの編集
- ユーザーとロール。権限は MT と同じ名前で、サイトごとに与えます
- 「誰が何をしたか」の記録
画面ごとの使い方はユーザーマニュアルにまとめてあり、お渡しするものに同梱しています。
3段階目まで、MT の本番には触りません
移行は4段階に分かれています。やめても失うのは調査の時間だけです。
| 段階 | やること | やめる費用 |
|---|---|---|
| 1. 読み込み | データベースの写しから記事・テンプレート・URL を取り出す | ゼロ |
| 2. 突き合わせ | 自社のデータで MT の出力と1文字ずつ比べる | ゼロ |
| 3. 並行運転 | MT で記事を書き続けながら、Kiln 側も公開しておく | ゼロ |
| 4. 切り替え | 公開先を Kiln の出力に向ける | 公開先を戻すだけ |
判断の材料は、2段階目で出てくる報告です。自社のテンプレートが通るか、プラグインの機能がいくつ足りないか、URL が1件も消えないか。推測ではなく、数で出ます。段階ごとの中身は移行の進め方と引き返し方にあります。
向いているサイトと、いま見送るべきサイト
向いている
- 記事数が数千を超えて、全ページの作り直しが運用の邪魔になっている
- テンプレートが標準に近い
- 公開側のセキュリティ対応に毎回追われている
- ウェブサイトの下に複数のブログを置いている(1つのサイトとしてまとめて公開され、ブログをまたぐ一覧も MT と同じテンプレートの書き方で作れます)
いま見送るべき
- 本番停止時に、契約上の問い合わせ窓口が必要な組織
- お問い合わせフォームやコメントの受け付けを止められず、移し先も決められない
- 会員限定ページや Basic 認証を MT 側で持っている
- プラグインの機能がテンプレートに深く入り込んでいる
MT のバージョンが 8.8.1 より古い場合は、確かめてから決めてください。読み込めない項目は作業中にすべて報告に出るので、1段階目を回せば判断できます。
ランニングコストはたいてい下がります。下がった分は、障害が起きたときに自分たちで調べる体制に回す必要があります。そこが実質的な価格です。金額の目安と体制は費用・体制・向き不向きにまとめました。
正直に書いておくこと
Kiln で本番運用されているサイトは、まだありません。互換性は本物の Movable Type 8.8.1 と6通りに突き合わせて確かめてありますが、実際のアクセスと実際の運用に何週間もさらした実績がありません。商用サポートの窓口もありません。本番停止時に契約上の連絡先が必要な組織では、現時点では採用できません。
そして「投稿を受け付ける」機能は静的化すると止まります。お問い合わせフォームと、コメントの受け付けです。静的なページには送信先がないので、Kiln はそれを受け取るふりをする仕組みを持っていません。どちらも外部サービスに移すのが定石ですが、Kiln がそのサービスを同梱しているわけではありません。移し先が必要になるのは4段階目の切り替えです。1段階目と2段階目の検証は、決まっていなくても回せます。
開発が止まったらどうなるかは、先に答えておきます。Kiln は個人が開発しているソフトウェアで、会社が後ろにいるわけではありません。開発が止まる可能性は十分あります。そのとき失われるのは今後の改善で、動いているサイトではありません。公開されるのは HTML ファイルなので、Kiln が無くても配信は続きます。コードは MIT ライセンスなので、社内に抱えて自分たちで直すことも、制作会社に引き取ってもらうこともできます。乗り換えが必要になった場合も、記事のデータは JSON またはデータベースに平文で入っていて、取り出せます。
次の一歩
MT のデータベースの写しを1つ用意して、テンプレートを読める方1人に、このページの URL と下のブロックを渡してください。標準テンプレートに近いサイトなら、数日で結果が出ます。
技術担当者に渡す分
必要なのは Node.js 22 以上だけです。データベースサーバーも Perl も要りません。npm にも公開の配布ページにも置いていないので、お問い合わせから受け取ってください。本番には触りません。
npm install && npm run build # 受け取ったものを展開して
export PATH="$PWD/node_modules/.bin:$PATH"
kiln import sqlite:/path/to/mt.db --out ~/mysite --timezone Asia/Tokyo
cd ~/mysite && kiln check # 読めないテンプレートを行番号つきで出す
kiln urls diff /path/to/mt.db # 生成する URL を MT の公開記録と照合する
kiln check が何も言わず、kiln urls diff が消える URL を1件も出さなければ、2段階目は通っています。導入の手順書も同梱しています。MySQL のデータベースは SQLite に書き出してから渡します。
何を決めて、何を材料にするかは費用・体制・向き不向きの最後に表でまとめました。社内に持ち帰るときはそこを使ってください。
導入の相談や、うまくいかなかった報告はお問い合わせから受けています。返答の期限は約束できませんが、報告は今後の改善の優先順位に反映します。
何が変わるのか
速くなるのは公開作業です。更新のたびに全ページを作り直す構造をやめると、待ち時間と障害の両方が消えます。
変わらないと言える根拠
記事ページとテンプレートは本物の MT と1文字ずつ比べてあります。止まるのは「読者が何かを送る」機能だけです。先にそちらを読んでください。
移行の進め方と引き返し方
4段階に分け、どの段階でも MT をそのまま動かし続けられる形で進めます。引き返す判断は3段階目まで取り消し費用ゼロで持てます。
費用・体制・向き不向き
ソフトウェアは無料です。値段にあたるのは、サポート契約が存在しないことと、障害を自分たちで調べる体制です。
お問い合わせ
Kiln を受け取って試したい方、うまくいかなかった方の窓口です。返答の期限は約束できません。