見ての通り、一応ソースコードを表示できます。テンプレートに手を加え、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">
<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 のソースの場合はまだいいのだけれど、上記の例の場合、タグの山なので…。
0 件のコメント:
コメントを投稿