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

| | コメント(0) | トラックバック(1) Perlのソースをブログに書くために

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

ファイルを見ると、2年前から使っている自分用のツールがある。
「<」や「>」など、HTMLでそのまま表示できないものを実体参照に変更したり、preとcodeで括ってソースとして表示しやすくするためのものだ。

少し前に、perltidyを覚えたのだが、ブランクがあいていたのと、パソコンを変えていたので、改めてインストールすることにした。
自分の記事も役に立つものです。
ただ、以前と違っていたのは、perlと同じbinフォルダではなく、site/binのほうに入っていた。

で、ソースがきれいにハイライトされているページをちらほら見かけたので、色気づいて調べてみた。
とりあえず簡単にできそうだったのが、「Quick Highlighter」というサイト。

というわけで。
euc2utf8.plをperltidyで整形して、Quick Highlighterでハイライトさせてみた。

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

  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4. use Fatal qw/open close/;
  5. use Encode;
  6. use Encode::Guess qw/euc-jp shiftjis 7bit-jis/;
  7.  
  8. use File::Find::Rule;
  9.  
  10. my $rule = File::Find::Rule->new;
  11. $rule->file;
  12. $rule->name( '*.cgi', '*.pm' );
  13. my @files = $rule->in('.');
  14.  
  15. foreach my $file (@files) {
  16.     print $file . "\n";
  17.     euc2utf8($file);
  18. }
  19.  
  20. sub euc2utf8 {
  21.     my $filename = shift;
  22.     if ( -f $filename ) {
  23.         my $fh;
  24.         open $fh, "<", $filename;
  25.         my $doc;
  26.         {
  27.             local $/ = undef;
  28.             $doc = <$fh>;
  29.         }
  30.         close $fh;
  31.  
  32.         my $enc = guess_encoding($doc);
  33.         ref($enc) or die "Can't guess: $enc";
  34.  
  35.         open $fh, ">", $filename . ".utf8";
  36.         Encode::from_to( $doc, $enc, "utf8" );
  37.         print $fh $doc;
  38.         close $fh;
  39.     }
  40. }
  41.  
  42.  

トラックバック(1)

このブログ記事に対するトラックバックURL:

このブログ記事を参照しているブログ一覧:

日曜プログラマのそゞろ事 - google-code-prettifyを試してみた (2008年12月29日 22:48)

Perlのソースをブログに書くために色々と調べてみた。 参考 あなたのソースコー... 続きを読む

コメントする

Google検索

Last.fm

このブログ記事について

このページは、のぶりんが2008年11月21日 00:52に書いたブログ記事です。

ひとつ前のブログ記事は「Perlの超軽量フレームワーク「MENTA」を追っかける」です。

次のブログ記事は「MTのプラグイン(hatenabookmarker)で困ったことが起きている」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

Creative Commons License
このブログのライセンスは クリエイティブ・コモンズライセンス.
Powered by Movable Type 4.23-ja