]>
<< 集合族 | main | 連続体仮説?仮設? >>
まずはwindows。MozzilaやFirefoxの場合、フォントをインストールするだけでよい。MathML at MITに置いてあるMath Fonts to Install for Mozilla/Netscapeを使えば必要なフォントをまとめてインストールすることができる。
MathMLの書式を覚えるのも手打ちするのもちょっと面倒なので、入力にはTeX2MathMLを使わせてもらう。指定されたウィンドウにTex形式を入力すると、リアルタイムで数式をレンダリングするとともにMathMLに変換してくれる。Texがそもそもわかんないんですな人はこのへん。
こんな感じ。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN"
"http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd" [
<!ENTITY mathml "http://www.w3.org/1998/Math/MathML">
]>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
IEだと]>の部分が見えてるなー。でもMozillaではこうしろって書いてあったのでそっち優先。
せっかくXHTML1.1で書いたんだし、拡張子をxhtmlにしてMIMEはapplication/xml+xhtmlで送ってやるのがよいと思うのだが、これをやるとIEで表示ができずファイルのダウンロード画面になってしまう(ユーザー側でレジストリをいじれば表示できるようだが)。
text/xmlで送るとW3C側のDTDがおかしいらしく、IEで
'http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd'の実行エラーです。ライン 85、位置 2
なんてエラーがでる。Firefoxでエラーが出ないのはそもそもDTDのチェックをしてないかららしい……それでいいのか。
text/htmlならIE、Firefoxどちらでも閲覧はできるけれども、MathMLが綺麗に表示されない。どうしたもんかな。
コンテントネゴシエーションについてはこちら。.htaccessを以下のように書き換え。さくらだとユーザー側でOptionsは使えないが、MultiViewsはあらかじめ指定してくれてるみたいなので下二行だけでよい。
Options +MultiViews AddType text/html html AddType application/xhtml+xml xhtml
これでindex.htmlへのリクエストに対し、IEへはindex.html.html、Firefoxへはindex.html.xhtmlを返すことができる。あとはファイルを準備するだけ。
当たり前だがバックアップとってから。メインページは使ってるテンプレートの出力ファイル名をindex.html.htmlに、テンプレートをもうひとつコピーしてそっちはindex.html.xhtmlにすればOK。
アーカイブは新規でマッピングを作る。アーカイブの拡張子はhtmlのままで、アーカイブ・マッピング側の出力フォーマットの末尾に.htmlと.xhtmlを足したものをそれぞれ作ってやればよい。
![]()
こんな感じ。一番上はBlogをFlash化しようとしたときの名残なので気にしないでください。今まで使ってたindex.htmlが残ってるとそっちが表示されてしまうので削除。
上のようにマッピングを作ると、優先ラジオボタンにチェックのついたURLにMovableType側がリンクを貼ってしまう。これを直したい。
remove-ext-from-permalink.plというPermalinkの拡張子をとっぱらうプラグインがあったので使わせてもらう。これは本来もっとしっかりしたURIに対して使うものみたいで、index.html.*のようなURLじゃないと書き換えてくれない。これをそれ以外のファイル名に対して使うには、ちょっと正規表現を書き換えてやればいい。
ヒント : (.*?)と\1
これも上と同じようにやろうと思ったんだけど、プラグインの中でどう指定していいのかわからなかったので力技にでる。カテゴリを並べ替えるのに使わせてもらっている、文字列の最初n文字を削るプラグインcutfirstcharを書き換えて、最後のn文字を削除するようにする。上のマッピングの場合.xhtmlへのリンクが張られているので、最後6文字を切り取ってやればよい。
ヒント :
> $string = substr('ABCD', 0, 3);
> print $string;
ABC
> print length($string);
3
FirefoxならmathMLも綺麗に表示されるし、結果としてxhtml化もできて満足です。今までは個別エントリーの書き出しのことなんてなんも気にせずにMovableTypeのデフォルトのまま行っていたんだけれども、クールなURIについてもちょっと考えさせられたし。つってもこんなことやってないでまずはもっと整ったテンプレートを作れって話だな。
http://www.panopticon.jp/mt/mt-tb.cgi/41
コメントする