2007年3月2日

業務連絡

えー、Alicia! Alicia!! Alicia!!! は、実はある実験のためにちょっと凝ってみたものです。というわけで、凝った結果の報告。

見ての通り、一応ソースコードを表示できます。テンプレートに手を加え、HTMLを直接編集する必要がありましたが。

テンプレートへの変更は次の通り。

まずは色の定義を2つ追加しました。ソースコードの文字本体の色は変更するつもりは無かったので、背景色と、囲み枠の色だけです。

<variable name="mainSourceBgColor" description="Main Sourcecode Background Color" type="color" default="#e0e0e0" value="#e0e0e0">

<variable name="mainSourceBorderColor" description="Main Sourcecode Border Color" type="color" default="#000000" value="#000000">


次に、ソースコード用のクラスを用意しました。これは /* Posts 行で始まる、投稿用クラスセットの末尾に追加したものです。

span.post-sourcecode {
background-color: $mainSourceBgColor;
border: 1px solid $mainSourceBorderColor;
}
div.post-sourcecode {
margin: .25em .25em;
background-color: $mainSourceBgColor;
border: 1px solid $mainSourceBorderColor;
}
pre.post-sourcecode {
margin: .25em .25em;
background-color: $mainSourceBgColor;
border: 1px solid $mainSourceBorderColor;
}


インデントの事を考えると、divはほとんど活躍の機会はないと思います。span は行の中にコードをいれたい時専用ですね。

で、その上で、
もし、あなたが Term::ReadLine::Perl を使って何かしたければ、<div class="post-sourcecode">$readline = new Term::ReadLine::Perl 'hoge';</div>とすればよい。

や、
あとは<span class="post-sourcecode"> $readline->readline(); </span>のようにメソッドを呼べばよい。

あるいは、
次のパッチを当てればよい:<pre class="post-sourcecode">diff -ur Alicia-1.1.4/lib/Alicia/ReadLine.pm Alicia-1.1.4-fix/lib/Alicia/ReadLine.pm
--- Alicia-1.1.4/lib/Alicia/ReadLine.pm 2005-03-03 13:47:00.000000000 +0900
+++ Alicia-1.1.4-fix/lib/Alicia/ReadLine.pm 2007-03-02 00:17:21.238375000 +0900
@@ -14,12 +14,13 @@
package Alicia::ReadLine;
(中略)
- my $self = new Term::ReadLine;
+ my $self = new Term::ReadLine::Gnu $class;
return bless $self;
}
</pre>

ようするに Term::ReadLine::Gnu を強要してしまえばよいのだ。


のように HTML レベルで編集すれば、Blogger でもソースコードを掲載することはできます。

ただし、あまりお勧めではありません。
  • テンプレートをゴリゴリ弄り回すと言うことは、何かの拍子にテンプレートモデルが大幅に変更になると、作りこみが全部消えてしまうのだ。そりゃ、どこかに保存して、再度 apply すればいいんだろうし、それは全部のコードを弄り回すのに比べれば楽なのだろうが…。それでも結構辛いだろう。
  • ソースコードの中の不等号を全部置き換えて回るのは手作業になる。これは思った以上に辛い。いや、Alicia のソースの場合はまだいいのだけれど、上記の例の場合、タグの山なので…。
というわけで、他もどっこいどっこいだ と判ったら Blogger を使えばいいと思う。逆に、ソースコードを掲載するのに都合のよい Blog が判ったら教えてくれぃ。私もソースコードものはそちらに書くことにするから。