シンタックスハイライト機能?
なんか、はてなダイアリーに「シンタックス・ハイライト」なる機能が追加されたらしい。
試しになんか貼ってみよう…と思ったけど、手頃なコードが無いな…
えーっと…
ずっと前に暇潰しに作ったスクリプトが出てきたので、そいつを貼ってみる。
(ちなみに、タイムスタンプを見たら1999年4月になってた。7年半前か…って、これ作ったのってそんな昔になるのかっ)
#!/usr/local/bin/perl $file = "./test.dat"; $|=1; print <<END; Content-type: text/html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <HTML> <HEAD> <TITLE>DUMP LIST</TITLE> </HEAD> <BODY bgcolor="#000000" text="#ffffff"> <TT> <FONT color="#00ff00">* FILE NAME = </FONT><FONT color="#00ffff">$file</FONT><BR> ---------------------------------------------------------------------------<BR> <FONT color="#ffff00"> ADDRESS: +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +a +b +c +d +e +f | 0123456789ABCDEF<BR> </FONT> END &body; print <<END; </TT> </BODY> </HTML> END sub body { open (DATA, $file); binmode (DATA); $address = 0; while (read (DATA, $data, 16)) { $len = (length($data)); $data .= "\x00"x (16-$len) if ($len < 16); $raw = $data; $raw =~ s/[^ -~]/./g; $line = join (" ", unpack ("H2" x 16, $data)); $raw =~ s/&/&\;/g; $raw =~ s/</<\;/g; $raw =~ s/>/>\;/g; printf "<FONT color=\"ff00ff\">%06x</FONT> : %s <FONT color=\"00ff00\">|</FONT><FONT color=\"#00ffff\"> %s </FONT><BR>\n", $address, $line, $raw; $address += 16; print "<FONT color=\"#ffff00\">ADDRESS: +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +a +b +c +d +e +f | 0123456789ABCDEF</FONT><BR>\n" unless ($address%256); } close (DATA); }
なるほど。
ソースコードをよく貼る人には便利かもしれない。
<|?|と書くと言語の種類を自動認識してくれるんですね。
なんか、一部のテーマでは長い行が枠からはみ出ちゃいますね。
いま試してるテーマ(Hatena_sky)でははみ出てないけど。
対応してないやつだとかなり見苦しい。
そういうテーマを使いたい場合はスタイルシートいじらなきゃダメかな。。。