Featured image of post Perlのソースをブログに書くために

Perlのソースをブログに書くために

Perlでもなんでも、ソースをブログに載せるときは気をつけたいもの

Perlでもなんでも、ソースをブログに載せるときは気をつけたいもの。 ファイルを見ると、2年前から使っている自分用のツールがある。

「<」や「>」など、HTMLでそのまま表示できないものを実体参照に変更したり、preとcodeで括ってソースとして表示しやすくするためのものだ。 少し前に、perltidyを覚えたのだが、ブランクがあいていたのと、パソコンを変えていたので、改めてインストールすることにした。 自分の記事も役に立つものです。

ただ、以前と違っていたのは、perlと同じbinフォルダではなく、site/binのほうに入っていた。 で、ソースがきれいにハイライトされているページをちらほら見かけたので、色気づいて調べてみた。

とりあえず簡単にできそうだったのが、Quick Highlighterというサイト。 というわけで。 euc2utf8.plをperltidyで整形して、Quick Highlighterでハイライトさせてみた。

…しかし、スタイルシートが競合するのか、ブログ上で見るといまいちかなぁ…。 もう少し調べてみよう。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/usr/bin/perl 
use strict;
use warnings;
use Fatal qw/open close/;
use Encode;
use Encode::Guess qw/euc-jp shiftjis 7bit-jis/;
use File::Find::Rule;

my $rule = File::Find::Rule->new;
$rule->file;
$rule->name('\*.cgi', '\*.pm');

my @files = $rule->in('.');
foreach my $file (@files) {
    print $file . "\n";
    euc2utf8($file);
}

sub euc2utf8 {
    my $filename = shift;
    if (-f $filename) {
        my $fh;
        open $fh, "<", $filename;
        my $doc;
        {
            local $/ = undef;
            $doc = <$fh>;
        }
        close $fh;
        my $enc = guess_encoding($doc);
        ref($enc) or die "Can't guess: $enc";
        open $fh, ">", $filename . ".utf8";
        Encode::from_to($doc, $enc, "utf8");
        print $fh $doc;
        close $fh;
    }
}
comments powered by Disqus
Hugo で構築されています。
テーマ StackJimmy によって設計されています。