JavaDoc内に記述したコードを強調表示する方法
メモ。.NETならこんな面倒なことせんでもいいのになぁ。
あらかじめ、http://shjs.sourceforge.net/ より強調表示のためのファイル群をダウンロードしサーバー(Jenkinsサーバが適当だと思う)に配置しておく。ここでは、/shjs-0.6 ディレクトリに配置したものとする。
pom.xmlに下記を記述。configurationタグ内がミソ。CDATA内に記述したコードが、生成されたJavaDoc htmlのbodyの最初と最後に付加されてしまうが、うまく動いているのでとりあえずこれで良しとしとく。。。
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <configuration> <header><![CDATA[ <link type="text/css" rel="stylesheet" href="/shjs-0.6/sh_style.css" /> <script type="text/javascript" src="/shjs-0.6/sh_main.min.js"></script> <script type="text/javascript" src="/shjs-0.6/lang/sh_java.min.js"></script> <script type="text/javascript" src="/shjs-0.6/enable_sh.js"></script> ]]> </header> <links> <link>http://docs.oracle.com/javase/jp/7/api/</link> </links> </configuration> </plugin>
上記scriptタグの3つ目、enable_sh.jsは後から独自に作成し配置したスクリプトファイルだ。内容は下記とした。
window.addEventListener("load", function() { var tlist = document.getElementsByTagName("pre"); for(var i = 0 ; i < tlist.length ; i++) { tlist[i].setAttribute("class", "sh_java"); } sh_highlightDocument(); });
/** * ・・・中略・・・ * <pre> * //あーするこーする * HogeClass c = new HogeClass(); * c.piyoMethod(); * </pre> * ・・・中略・・・ */
以上で、preタグで囲ったコードがJavaコードとして強調表示される。もっとイケてる方法があれば教えてください。