hikidoc:156
From: KADO Masanori <kdmsnr@g...>
Date: Sun, 7 Mar 2010 17:21:04 +0900
Subject: [hikidoc:156] google-code-prettify を使いたい
kdmsnr です。 コードのハイライトに現在は Syntax::Convertors::HTML を使っていますが、 それが無かった場合に google-code-prettify を使いたいです。 * google-code-prettify http://code.google.com/p/google-code-prettify/ 使い方としては、JS や CSS ファイルが別途必要になりますが、 HTML側には以下のように pre タグに class を指定します。 <pre class="prettyprint"> ... </pre> * 使い方 http://google-code-prettify.googlecode.com/svn/trunk/README.html 特定の class 名をつけるのには少し抵抗がありますが、 自分で syntax 名をつけたときだけなので問題ないかなと思っています。 以下、パッチです。 Index: lib/hikidoc.rb =================================================================== --- lib/hikidoc.rb (revision 127) +++ lib/hikidoc.rb (working copy) @@ -678,6 +678,8 @@ @f.puts convertor.convert(str) return rescue NameError, RuntimeError + @f.puts %Q|<pre class="prettyprint">#{text(str)}</pre>| + return end end preformatted(text(str)) Index: test/test_hikidoc.rb =================================================================== --- test/test_hikidoc.rb (revision 127) +++ test/test_hikidoc.rb (working copy) @@ -460,16 +460,31 @@ "``{{foo}}``") end - if Object.const_defined?(:Syntax) - def test_syntax_ruby + + def test_syntax_ruby + if Object.const_defined?(:Syntax) assert_convert("<pre><span class=\"keyword\">class </span><span class=\"class\">A</span>\n <span class=\"keyword\">def </span><span class=\"method\">foo</span><span class=\"punct\">(</span><span class=\"ident\">bar</span><span class=\"punct\">)</span>\n <span class=\"keyword\">end</span>\n<span class=\"keyword\">end</span></pre>\n", "<<< ruby\nclass A\n def foo(bar)\n end\nend\n>>>") assert_convert("<pre><span class=\"keyword\">class </span><span class=\"class\">A</span>\n <span class=\"keyword\">def </span><span class=\"method\">foo</span><span class=\"punct\">(</span><span class=\"ident\">bar</span><span class=\"punct\">)</span>\n <span class=\"keyword\">end</span>\n<span class=\"keyword\">end</span></pre>\n", "<<< Ruby\nclass A\n def foo(bar)\n end\nend\n>>>") assert_convert("<pre><span class=\"punct\">'</span><span class=\"string\">a<">b</span><span class=\"punct\">'</span></pre>\n", "<<< ruby\n'a<\">b'\n>>>") + + # redefine method for below tests + class << Syntax::Convertors::HTML + def for_syntax(syntax) + raise + end + end end + + assert_convert("<pre class=\"prettyprint\">class A\n def foo(bar)\n end\nend</pre>\n", + "<<< ruby\nclass A\n def foo(bar)\n end\nend\n>>>") + assert_convert("<pre class=\"prettyprint\">class A\n def foo(bar)\n end\nend</pre>\n", + "<<< Ruby\nclass A\n def foo(bar)\n end\nend\n>>>") + assert_convert("<pre class=\"prettyprint\">'a<\">b'</pre>\n", + "<<< ruby\n'a<\">b'\n>>>") end def test_plugin_in_pre_with_header -- kdmsnr - KADO, Masanori http://capsctrl.que.jp/kdmsnr/ -- ML: hikidoc@m... 使い方: http://QuickML.com/
-> 156 2010-03-07 09:21 [kdmsnr@g... ] google-code-prettify を使いたい 160 2010-08-10 17:19 ┗[kimuraw@i... ]