2009年12月21日月曜日

groovyでWikiTextを使ってみる

仕事が煮詰まって頭モウロウとしながらひたすら検索してると、ちょっと気になるブログ記事を見つけた。
WikiTextことはじめ - Talking Nonstop
WikiTextとは、Javaで書かれたWikiパーサです。

なにこれ面白そう。Groovyから叩けるかな?そう思ってやってみた。
まず、MylynのページからWikiTextスタンドアロン版(mylyn-wikitext-standalone-latest.zip)を落として解凍、中に入ってる.jarを全て~/.groovy/lib/につっこむ。
import org.eclipse.mylyn.wikitext.core.parser.MarkupParser
import org.eclipse.mylyn.wikitext.confluence.core.ConfluenceLanguage
import org.eclipse.mylyn.wikitext.core.parser.builder.HtmlDocumentBuilder

String markupContent='''h1. 見出し1
ここは見出し1のテキスト部分

h2. 見出し2
ここは見出し2のテキスト部分

h3. 見出し3
ここは見出し3のテキスト部分
* 箇条書き1行目
* 箇条書き2行目
* 箇条書き3行目
** 3行目の1
** 3行目の2

# 番号つき1行目
# 番号つき2行目
# 番号つき3行目'''

StringWriter writer = new StringWriter();
HtmlDocumentBuilder builder = new HtmlDocumentBuilder(writer);

MarkupParser parser = new MarkupParser(new ConfluenceLanguage());
parser.setBuilder(builder);
parser.parse(markupContent);

String htmlContent = writer.toString();
println(htmlContent)
それの結果。
<?xml version='1.0' encoding='utf-8' ?><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/></head><body><h1 id="a1">見出し1</h1><p>ここは見出し1のテキスト部分</p><h2 id="a2">見出し2</h2><p>ここは見出し2のテキスト部分</p><h3 id="a3">見出し3</h3><p>ここは見出し3のテキスト部分</p><ul><li>箇条書き1行目</li><li>箇条書き2行目</li><li>箇条書き3行目<ul><li>3行目の1</li><li>3行目の2</li></ul></li></ul><ol><li>番号つき1行目</li><li>番号つき2行目</li><li>番号つき3行目</li></ol></body></html>

楽しい!いつか何か作ろう。

0 件のコメント: