入力したプログラムコードを色付けするスーパーpre記法 シンタックス・ハイライトの実装について

本日、入力したコードやはてな記法をそのまま表示するスーパーpre記法の拡張を行い、ソースコードや html などのシンタックス・ハイライトを行う機能を実装しました。これまではてなグループのみでお使いいただけた機能でしたが、ご好評をいただいたことによりはてなダイアリーでも実装いたしました。

シンタックス・ハイライトを行うには、ハイライトさせたいファイルタイプを、行頭の >|| の2本のパイプ( || )の間に指定してください。例として

 >|ruby|
 class Foo
   def bar
     'baz' # return baz
   end
 end
 ||<

と記述すると

class Foo
  def bar
    'baz' # return baz
  end
end

とハイライトされて出力されます。
また、>|?| と || の間に ? を入力すると、自動で判別されハイライトされます。ただしほとんどの場合、一行目が shebang (#!)でないと判別に成功しません。

 >|?|
 #!/usr/bin/env ruby
 class Foo
   def bar
     'baz' # return baz
   end
 end
 ||<

と記述しますと

#!/usr/bin/env ruby
class Foo
  def bar
    'baz' # return baz
  end
end

とハイライトされます。

現在、対応しているファイルタイプは次の通りです。

a2ps a65 aap abap abaqus abc abel acedb ada aflex
ahdl alsaconf amiga aml ampl ant antlr apache apachestyle arch
art asm asm68k asmh8300 asn aspperl aspvbs asterisk asteriskvm atlas
automake ave awk ayacc b baan basic bc bdf bib
bindzone blank bst btm c calendar catalog cdl cf cfg
ch change changelog chaskell cheetah chill chordpro cl clean clipper
cmake cobol colortest conf config context cpp crm crontab cs
csc csh csp css cterm ctrlh cupl cuplsim cvs cvsrc
cweb cynlib cynpp d dcd dcl debchangelog debcontrol debsources def
desc desktop dictconf dictdconf diff dircolors diva django dns docbk
docbksgml docbkxml dosbatch dosini dot doxygen dracula dsl dtd dtml
dylan dylanintr dylanlid ecd edif eiffel elf elinks elmfilt erlang
eruby esmtprc esqlc esterel eterm eviews exim expect exports fasm
fdcc fetchmail fgl flexwiki focexec form forth fortran foxpro fstab
fvwm fvwm2m4 gdb gdmo gedcom gkrellmrc gnuplot gp gpg grads
gretl groff groovy group grub gsp gtkrc haskell hb help
hercules hex hitest hog html htmlcheetah htmldjango htmlm4 htmlos ia64
icemenu icon idl idlang indent inform initex inittab ipfilter ishd
iss ist jal jam jargon java javacc javascript jess jgraph
jproperties jsp kconfig kix kscript kwt lace latte ld ldif
lex lftp lhaskell libao lifelines lilo limits lisp lite loginaccess
logindefs logtalk lotos lout lpc lprolog lscript lss lua lynx
m4 mail mailaliases mailcap make man manconf manual maple masm
mason master matlab maxima mel mf mgl mgp mib mma
mmix modconf model modsim3 modula2 modula3 monk moo mp mplayerconf
mrxvtrc msidl msql mupad mush muttrc mysql named nanorc nasm
nastran natural ncf netrc netrw nosyntax nqc nroff nsis objc
objcpp ocaml occam omnimark openroad opl ora pamconf papp pascal
passwd pcap pccts perl pf pfmain php phtml pic pike
pilrc pine pinfo plaintex plm plp plsql po pod postscr
pov povini ppd ppwiz prescribe procmail progress prolog protocols psf
ptcap purifylog pyrex python qf quake r racc radiance ratpoison
rc rcs rcslog readline rebol registry remind resolv rexx rhelp
rib rnc rnoweb robots rpcgen rpl rst rtf ruby samba
sas sather scheme scilab screen sdl sed sendpr sensors services
setserial sgml sgmldecl sgmllnx sh sicad sieve simula sinda sindacmp
sindaout sisu skill sl slang slice slpconf slpreg slpspi slrnrc
slrnsc sm smarty smcl smil smith sml snnsnet snnspat snnsres
snobol4 spec specman spice splint spup spyce sql sqlanywhere sqlforms
sqlinformix sqlj sqloracle sqr squid sshconfig sshdconfig st stata stp
strace sudoers svn syncolor synload syntax sysctl tads tags tak
takcmp takout tar tasm tcl tcsh terminfo tex texinfo texmf
tf tidy tilde tli tpp trasys trustees tsalt tsscl tssgm
tssop uc udevconf udevperm udevrules uil updatedb valgrind vb vera
verilog verilogams vgrindefs vhdl vim viminfo virata vmasm vrml vsejcl
wdiff web webmacro wget whitespace winbatch wml wsh wsml wvdial
xdefaults xf86conf xhtml xinetd xkb xmath xml xmodmap xpm xpm2
xquery xs xsd xslt xxd yacc yaml z8a zsh

また、日記のプレビュー時にもハイライトは有効となっております。
どうぞご利用下さい。