
Htmlタグを preタグの中だけ下記の左側の文字から右側の文字にリプレースしてくれるPerlスクリプト
& : & " : " < : < > : >
#!/usr/bin/perl
use warnings;
use strict;
my $flag = 0;
while(<>){
chomp;
$flag = 0 if m/^\<\/pre\>$/;
if($flag){
s/&/&/g;
s/\"/"/g;
s/\</</g;
s/\>/>/g;
}
s/^\s*$/ /;
$flag = 1 if m/^\<pre.*?\>$/;
print "$_\n";
}
preタグが単独で置かれた行をトリガーにして置換のON/OFFを切り替えてます。
例えばcodeタグをトリガーにするのであれば、
$flag = 1 if m/^\<code\>$/;
とすれば良いと思いますが、インデントを再現したかったので今回はpreタグにしました。
なお、置換のこつは、&を最初に置換することです。
s/&/&/g;
ちなみにこの部分↓
s/^\s*$/ /;
は、空行を入れるために空白文字を一発挿入してます。
brタグがお好みなら、下記のように書き換えればOKだと思います。
s/^\s*$/\<br \/\>/;
最後に、もちろんこの記事のソースも、プレーンテキストで書いた文章を今回紹介したPerlスクリプトで変換して投稿しております。
