数値をローマ数字/アルファベットに変換するプラグイン

数値をローマ数字(I,II,III,IV・・・)やアルファベット(A,B,C,・・・)に変換するモディファイアのプラグインを公開します。
Movable Type 4.xで動作するはずです(動作確認はMovable Type 4.22で行いました)。

1.インストール

プラグインは以下からダウンロードすることができます。

NumericFilter_1_00.zip

プラグインの継続的な開発やサポートのために、プラグインをご利用された方は、ドネーション(寄付)を行っていただけると幸いです。
ドネーションの方法は、こちらのページをご参照ください。

また、このプラグインの他にも、いくつかのプラグインを配布しています。
配布中のプラグインは、Movable Type Plugin Directoryのページをご参照ください。

Movable Typeのプラグイン開発等のドキュメント「Movable Type Developer's Guide Volume 1」も販売しています。
ご自分でプラグインを作ってみたい方に、ぜひお勧めしたい一冊です。
詳細は特設ページをご覧ください。

ダウンロードしたzipファイルを解凍すると、「NumericFilter」というフォルダができます。
そのフォルダを、Movable Typeの「plugins」ディレクトリにアップロードします。

2.ローマ数字変換

ローマ数字変換は、「s_roman="1"」または「l_roman="1"」のモディファイアで行うことができます。
s_romanは小文字、l_romanは大文字に変換します。
変換結果は以下のようになります。

元の数値s_romanl_roman
1iI
2iiII
3iiiIII
4ivIV
5vV
6viVI
7viiVII
8viiiVIII
9ixIX
10xX
11xiXI
19xixXIX
20xxXX
30xxxXXX
40xlXL
50lL
60lxLX
70lxxLXX
80lxxxLXXX
90xcXC
99xcixXCIX
100cC
101ciCI
109cixCIX
110cxCX
199cxcixCXCIX
200ccCC
300cccCCC
400cdCD
500dD
600dcDC
900cmCM
1000mM
2000mmMM
3999mmmcmxcixMMMCMXCIX

たとえば、以下のようにすると、ブログ全体の記事数を小文字のローマ数字に変換して出力します。

<$MTBlogEntryCount s_roman="1"$>

なお、出力されるローマ数字は「i」や「v」などのアルファベットを組み合わせたものになります。
また、1未満および4000以上の数値は変換せず、そのまま出力します。

2.アルファベット変換

アルファベット変換は、「s_alpha="1"」または「l_alpha="1"」のモディファイアで行うことができます。
s_alphaは小文字、l_alphaは大文字に変換します。
変換結果は以下のようになります。

元の数値s_alphal_alpha
1aA
2bB
3cC
24xX
25yY
26zZ
27aaAA
28abAB
29acAC
51ayAY
52azAZ
53baBA
54bbBB
77byBY
78bzBZ
79caCA
80cbCB
701zyZY
702zzZZ
703aaaAAA
704aabAAB
727aayAAY
728aazAAZ
729abaABA
730abbABB
1377azyAZY
1378azzAZZ
1379baaBAA
1380babBAB
18277zzyZZY
18278zzzZZZ
18279aaaaAAAA
18280aaabAAAB
475253zzzyZZZY
475254zzzzZZZZ
475255aaaaaAAAAA
475256aaaabAAAAB

なお、1未満の数値は変換せず、そのまま出力します。

3.注意点

各モディファイアに共通の注意点として、以下のようなものがあります。

  • 数値に小数点以下の部分がある場合、それを切り捨ててから変換します。
  • 変換対象文字列の先頭に数字が含まれ、それ以後に数字でないものが含まれる場合は、先頭部分の数値のみを変換した結果が出力されます。

    例えば、変換元が「123x」の場合にs_romanモディファイアを使うと、先頭の「123」だけが変換され、結果は「cxxiii」になります。
  • 変換対象文字列の先頭が数字でない場合は、変換は行われません。
  • Movable Type標準のダイナミックパブリッシングには対応していません。