SuperPre

HikiDocをsuper pre記法に対応させるプラグイン

test
  • いつの間にかうまく動かなくなった.何もしてないのに...(2011/11/30)
  • http://d.hatena.ne.jp/trashsuite/20090731/1248992030の再掲です.古いhiki(0.8.7)ではうまく表示できたが,最新版(0.8.8)ではうまくいかず.
  • 最新版はhikidoc.rbが書き換えられているので,classを直接操作するsuperpreのpluginでは,だめ.
  • hikidoc.rbの0.0.6では,syntaxが使える.しかし,対応している言語(lang)とか,cssがないので,vimcolorを使ったsuperpreに戻した方がいいかも...

/Users/bob/Sites/openHP/misc/plugin弄ってみた報告

Mac(Lion)上のhiki Generated by Hiki 0.8.7 (2007-06-24). Powered by Ruby 1.8.7 (2010-01-10). で hikidoc-super-pre-plugin-20090730 (hikidoc-super-pre-plugin-20100127はうまく動作しないため使ってません) を使用しています.いつのまにか動かなくなってしまいました. もしなにか情報をお持ちでしたらお教えください. もし,代替となるhiki上でのsyntax highlightの手法をご存じでしたらお教え いただけると助かります.

以下は,すこし弄ってみた結果です.直接vimcolor.rbを動かす以下のようなscript,

require "./hikidoc-super-pre/vimcolor.rb"


       filetype = 'ruby'
       code     = "class Oppai
 def shout
   puts 'everybody say, oppai!!'
 end
end
"
       highlighted_code = '<pre class="syntax-highlight">' << VimColor.new.run(code, filetype, :html) << '</pre>'
       p highlighted_code

では,

[bob-no-MacBook-Pro:super-pre/misc/plugin] bob% ruby test.rb
"<pre class=\"syntax-highlight\"><span class=\"synPreProc\">class</span><span class=\"synrubyBlock\"> </span><span class=\"synType\">Oppai</span>\n<span class=\"synrubyBlock\">  </span><span class=\"synPreProc\">def</span><span class=\"synrubyMethodBlock\"> </span><span class=\"synIdentifier\">shout</span>\n<span class=\"synrubyMethodBlock\">    puts </span><span class=\"synSpecial\">&#39;</span><span class=\"synConstant\">everybody say, oppai!!</span><span class=\"synSpecial\">&#39;</span>\n<span class=\"synrubyMethodBlock\">  </span><span class=\"synPreProc\">end</span>\n<span class=\"synPreProc\">end</span></pre>"

で動いているようです.ところが,hikiで動かすと

    <pre class="syntax-highlight"></pre>

となり VimColor.new.run(code, filetype, :html) からの戻り値が消えています.

vimcolor.rbに

      def test(code)
        return "test"
      end

などと入れて,

      highlighted_code = '<pre class="syntax-highlight">' << VimColor.new.test(code) << '</pre>'

とすると,

    <pre class="syntax-highlight">test</pre>

となり,vimcolor.rbの問題なのですが,ほかに問い合わせようがなくて...

これは何?(hilite表示)

HikiDoc をはてなダイアリースーパー pre 記法に対応させるプラグインです.コード片にシンタックスハイライトを適用することができます

インストールおよび設定方法

  • アーカイブの中身を,hiki/misc/plugin 内に展開
  • 『管理』>『プラグイン選択』にて hikidoc-super-pre.rb を有効化

使い方

ハイライトさせたいファイルタイプ(ここでは ruby を指定します)を、行頭の >|| の2本のパイプ( || )の間に指定し、

>|ruby|
class Oppai
  def shout
    puts 'everybody say, oppai!!'
  end
end
||<

のように記述することで、 >|ruby| class Oppai

 def shout
   puts 'everybody say, oppai!!'
 end

end

<

と色付けされて表示されます。 ※「>||」「||<」は必ず行頭になるよう記述してください。

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

a2ps a65 aap abap abaqus abc abel acedb actionscript 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 go 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 scala 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

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

参考にしたサイト

Last modified:2016/07/19 12:42:28
Keyword(s):
References: