Top > Blog Index > マクロパーサー(groovy)

マクロパーサー(groovy)

プレーンテキストにマークアップしてごねごねする(たとえばブログ用のHTMLにするとか、InDesignに流し込んで組版するとか) という場合... たとえば、以下のようなマクロ記述を使って処理する場合の話。

たとえば次のような場合

マークアップテキストを以下のように書く。

これは{bold:本体のみ}
の提供になります。

これを処理したい場合に MacroProcessor.groovyTextProcessor.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>の
提供になります。

コード

MacroProcessor.groovy

TextProcessor.groovy