MTOS5に移行

やろうやろうと思って気がついたら1ヶ月以上たってしまったが、MTOS4.261からMTOS5に移行してみた。ちょっと大変そうとおもっていたものの、MTOS4からMTOS5へアップデートするのはそんなに大変ではなさそう。(1回エクスポートしておいてからインポートするとか、いろんなプラグインを使っていれば大変かもしれないが。)
また似たような作業が必要かもしれないので、備忘録程度のメモである。なおずいぶん前からVicunaというテンプレート・スキンのMovableType版のmt.Vicunaを使っているので、カスタマイズ関係はおおむねVicunaユーザー向けなのかもしれない。

MTOSとmt.Vicuna Simple 2.3.1を用いる。
手順はおおざっぱに以下の通り。

  1. 作業の後戻りはできないのでエクスポートしておくこと
  2. MTOS5をCGIが実行可能なディレクトリに配置。バージョン名がついたディレクトリからMTOSへシンボリックリンクをはる。
  3. mt.Vicuna Simpleを展開して、MTOS/pluginにコピー
  4. MTOS4のmt-config.cgiの設定をコピー
  5. MTの管理画面にログイン。この際にDBの内容はMTOS4形式からMTOS5形式に変換される。(これで後戻りはできなくなる。)
  6. デザイン→テーマを選択し、mt.Vicunaを選択する。
  7. 以下、細々とテンプレートの修正を行う。
    最近加えた修正がほぼ全部なので、以下を有効化する。
  • JQuery-Lightbox関連の設定
  • Google Chartを用いた数式表示の設定
  • SyntaxHighlighterの設定
  • EyeCatch関連
    まずは「HTMLヘッダー」のテンプレートから。ここはつらつら書いていくだけなので適当に差分をのせる。使うかどうかわからんがSyntaxHighlighter関係が異様に多い。
<!-- IE7互換モードの強制指定 (いらないかも。いまはいれてない。) -->
<meta http-equiv="X-UA-Compatible" content="IE=7" />
<!-- JQuery-Lightbox の設定(使わなくて良さそうなのだが・・・) -->
<script type="text/javascript" src="<$MTBlogURL$>js/jquery-lightbox/js/jquery.lightbox-0.5.js"></script>
<link rel="stylesheet" type="text/css" href="<$MTBlogURL$>js/jquery-lightbox/css/jquery.lightbox-0.5.css" media="screen" />
<!-- Google Chartを用いた数式表示のJavascriptの読み込み -->
<script type="text/javascript" src="<$MTBlogURL$>js/gmath.js"></script>
<!-- SyntaxHighlighter関係のJavascriptの読み込み -->
<script type="text/javascript" src="<$MTBlogURL$>js/SyntaxHighlighter/scripts/shCore.js"></script>
<script type="text/javascript" src="<$MTBlogURL$>js/SyntaxHighlighter/scripts/shBrushBash.js"></script>
<script type="text/javascript" src="<$MTBlogURL$>js/SyntaxHighlighter/scripts/shBrushCpp.js"></script>
<script type="text/javascript" src="<$MTBlogURL$>js/SyntaxHighlighter/scripts/shBrushCss.js"></script>
<script type="text/javascript" src="<$MTBlogURL$>js/SyntaxHighlighter/scripts/shBrushDiff.js"></script>
<script type="text/javascript" src="<$MTBlogURL$>js/SyntaxHighlighter/scripts/shBrushJava.js"></script>
<script type="text/javascript" src="<$MTBlogURL$>js/SyntaxHighlighter/scripts/shBrushJScript.js"></script>
<script type="text/javascript" src="<$MTBlogURL$>js/SyntaxHighlighter/scripts/shBrushPlain.js"></script>
<script type="text/javascript" src="<$MTBlogURL$>js/SyntaxHighlighter/scripts/shBrushPython.js"></script>
<script type="text/javascript" src="<$MTBlogURL$>js/SyntaxHighlighter/scripts/shBrushRuby.js"></script>
<script type="text/javascript" src="<$MTBlogURL$>js/SyntaxHighlighter/scripts/shBrushScala.js"></script>
<script type="text/javascript" src="<$MTBlogURL$>js/SyntaxHighlighter/scripts/shBrushSql.js"></script>
<script type="text/javascript" src="<$MTBlogURL$>js/SyntaxHighlighter/scripts/shBrushVb.js"></script>
<script type="text/javascript" src="<$MTBlogURL$>js/SyntaxHighlighter/scripts/shBrushXml.js"></script>
<link type="text/css" rel="stylesheet" href="<$MTBlogURL$>js/SyntaxHighlighter/styles/shCore.css"/>
<link type="text/css" rel="stylesheet" href="<$MTBlogURL$>js/SyntaxHighlighter/styles/shThemeDefault.css"/>
<script type="text/javascript">
    SyntaxHighlighter.config.clipboardSwf = '<$MTBlogURL$>js/SyntaxHighlighter/scripts/clipboard.swf';
    SyntaxHighlighter.all();
</script>

次はuser_jquery.js。数式表示関連は、おそらくはそれさえも平凡な日々 - ブログ上に数式をを参考にヘッダに書いた場所にgmath.jsを配置。LightBoxに関してはいちいちrel属性をつけるのは面倒なので、こんな設定を用いている。MTが勝手にdiv要素で挟んでくれるので、それを利用する。user_jquery.jsのおかげでOnLoad云々を書かなくてすむので、もうJQueryなものを使っていくこととしたい。

$(document).ready(function(){
    $.gmath();
    $('.mt-enclosure-image a').lightBox();
});

EyeCatch関連はデフォルトでONになっているので、カラム数の指定のみ拡張子がhtmlであるテンプレートの変数で設定すればいいみたい。SkinはStyleCatcherで選べるようになったのでかなり使い勝手が上がったように思う。
lightbox関係のJavascriptを2重に呼び出しているのがだめだめかもだが、おいおい統一していきたい。あと全体の再構築はかなり時間がかかるようになった。これはなぜだろう。
2009.12.31 追記

結局写真へのリンクのアンカーにすべてにrel=“photoxp"を追加。写真の周りの要素は比較的新しい記事はspan要素(これはMTが自動的につけるタグを変換したもの)と古いものはp要素で囲んであるが、それはそのままとした。これからの記事はさらに変化することになるが、rel=“photoxp"は自動的につけるようにしたので、今後は自動でやることにする。従って、JQuery-Lightboxからmt.Vicuna Simpleに標準添付されているSlimbox 2に統一することとする。
初期の記事のうち写真にリンクがはられていたものがあるのだが、オリジナルの写真が失われているので記事自身を非公開とした。特に問題はないとおもう。(もうこれ以上あわせる作業をしたくない。)