Template-Toolkitメモ
genre:perl,programming,memo
Template-ToolkitのテンプレートのParseは、Template/Parser.pm中のparse()で行われている。
まず、$textに読み込まれたテンプレートをsplit_text($text)でテンプレートコマンド([%?%]など)単位で切り出す(以下)。
# extract all directives from the text
while ($text =~ s/
^(.*?) # $1 – start of line up to directive
(?:
$start # start of tag
(.*?) # $2 – tag contents
$end # end of tag
)
//sx) {
($pre, $dir) = ($1, $2);
$pre = ” unless defined $pre;
$dir = ” unless defined $dir;
$prelines = ($pre =~ tr/\n//); # newlines in preceeding text
$dirlines = ($dir =~ tr/\n//); # newlines in directive tag
$postlines = 0; # newlines chomped after tag で、タグのディレクティブ($dirに格納)の空白などを取り除いて正規化して、非ディレクティブ(テキスト部分)とともに@tokenに順にぶち込んでいく。@tokenにはTEXTかTAG(DIRECTIVE)かという情報とともにテキストとディレクティブが順にぶち込まれる。
あとは@tokenの頭から、ぶちこまれたものを取り出して、_parse()でTAGを解釈していく。
年始からハマりまくり
genre:Linux,Hack
Plextorの「 PX-TV432P 」という、数年前のMPEG-2/MPEG-4/DivXハードウェアエンコード機能付きビデオキャプチャカードをちょいと手に入れたのでいじり中。
もちろん、我が家にはWindowsなどない(というかMacBook用に買ってインストールしていないDSP版XPしかない)ので必然的にLinuxで動かすことに。
とりあえず、色々ネットを漁って別機種用のデバイスドライバとカーネルをHackして何とか一部(生動画データと圧縮済み動画データ)を取りだすことには成功したものの、音がうまくつながらない・・・。
あと、なぜか突然NVIDIAのプロプライエタリドライバが動かなくなってOSSのドライバを突込む羽目になったりこれまた塩漬けにしていたSound Blaster Audigyを認識させるのに手間取ったりと新年からドハマり中で睡眠時間削られまくりですよ。
Linuxでの動画関連はまだまだ鬼門だなぁ……。何とか地デジのS-Video出力をワイドのままキャプチャしたいんだが(汗)。