マクロパーサー(groovy)
プレーンテキストにマークアップしてごねごねする(たとえばブログ用のHTMLにするとか、InDesignに流し込んで組版するとか) という場合... たとえば、以下のようなマクロ記述を使って処理する場合の話。
たとえば次のような場合
マークアップテキストを以下のように書く。
これは{bold:本体のみ}
の提供になります。
これを処理したい場合に MacroProcessor.groovyと TextProcessor.groovy を使用すれば以下のように書けます。
def text = """
これは{bold:本体のみ}の
提供になります。
"""
// InDesign用のXMLに変換するClosure
def c = { macroText->
def mp = new MacroProcessor( macroText )
'<span aid:cstyle="' + mp.key + '">' + mp.value + '</span>'
}
println new TextProcessor( c ).process( text )
これを実行すると
$ groovy test.groovy
これは<span aid:cstyle="bold">本体のみ</span>の
提供になります。