2007/12/18

Groovyのソースをhtml形式にする

このブログにソースを掲載する際に使用しているgroovyのスクリプトです。 java2Htmlという、antタスクを使用しています。 groovyのソースをantタスクにてhtmlに変換しているだけですが、意外と便利です。 ※ちなみに、こちらのサイトで、java2htmlのantタスク用jarファイルをダウンロードする必要があります。 ※フォルダ構成は適宜変更してね。
// =====設定内容=====
def destdir = "c:/groovy/out"
def srcdir = "c:/groovy/src"

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"
)


new File(destdir).listFiles().each{ file ->
   
if( file.name.contains(".xhtml") ){
       
def text = file.text.replaceAll("\n", "@@@")
       
def matcher = text =~ ".+<head>(.+)</head>.+"
       
def head = ""
       
if( !matcher.find() ){
           
println "エラー発生!!"
           
System.exit(1)
        }
       
head = matcher.group()

       
file.write(
           
text.replaceAll(
               
"<head>.+</head>"
               
,"""<link rel="stylesheet" type="text/css" href="style.css" />""").replaceAll("@@@", "\r\n")
        )

       
new File(file.parent + "/style.css").write(
           
head.replaceAll("@@@", "\r\n")
        )
    }
}
   

0 件のコメント:

コメントを投稿