JavaやGroovyのソースコードをhtmlに変換するスクリプトを作った

2019-01-23Groovy, Java

昔書いていたブログ(Blogger)にGroovyやJavaのソースコードを掲載する際に使用しているGroovyスクリプトです。
ソースをhtmlに変換しているだけですが、意外と便利でした。

前提条件

java2Html という、 Ant タスクを使用しています。

  • こちらのサイトで、java2htmlのantタスク用jarファイルをダウンロードする必要があります。
  • ※フォルダ構成は適宜変更してね。

準備

ブラウザからダウンロードしてきてもいいですが、ターミナルからコマンドを叩けるなら以下の手順が楽です。

# 作業用ディレクトリを作成し、移動
$ mkdir -p /tmp/work && cd /tmp/work

# ダウンロード
$ curl -O http://www.java2html.de/java2html_50.zip

# 展開
$ unzip java2html_50.zip

# jarファイルが配置されていることを確認
$ ls
design/  docs/  java2html.jar  java2html_50.zip  java2html_src.zip

スクリプト作成

main.groovy というファイルを作成

// =====設定内容=====
// ソースコード配置ディレクトリ
def srcdir = "c:/groovy/src"
// HTML出力ディレクトリ
def destdir = "c:/groovy/out"

if (!new File(destdir).exists()) {
    new File(destdir).mkdir()
}

def ant = new AntBuilder()

ant.taskdef(
    name: "java2html",
    classname: "de.java2html.anttasks.Java2HtmlTask"
)

ant.delete() {
    fileset(dir: "${destdir}") {
        include(name: "**/*")
    }
}

ant.java2html(
    srcdir: "${srcdir}",
    destdir: "${destdir}",
    includes: "*.groovy",
    outputFormat: "xhtml11",
    tabs: "2",
    style: "eclipse",
    showLineNumbers: "true",
    showFileName: "true",
    useShortFileName: "true",
    showTableBorder: "true",
    includeDocumentHeader: "true",
    includeDocumentFooter: "true"
)

実行

HTML化したいGroovyスクリプトファイル(JavaファイルでももちろんOK)を src/ ディレクトリに配置し、 groovy コマンドで実行。
実行時には -cp オプションを付与すればクラスパスを設定できるので、ダウンロードしたjarファイルを読み込めるようにしてやります。

# ディレクトリを作成
$ mkdir -p src/

# なんでもいいのでJavaかGroovyのソースコードを配置
$ cp main.groovy src/

# 実行
$ groovy -cp ./java2html.jar main.groovy
[java2html] Converting 1 file

ファイルが out/ ディレクトリに作成されているはずです。

$ ls out/
main.html

ソースコードがHTMLでハイライトされています。

2019-01-23Groovy, Java