ただし、custom-styleがない場合はそのまま出力する。
Codeに対してもattributeをあてられるので、idとかclassとかattributesをつけられるので、こんな感じで、標準入力からpandocに送ってみる。今回使うのはcustom-styleのみだけども、idとかで処理を追加することも当然できる。
echo `r hoge`{.hoge .fuga #piyo poke=1.234 custom-style="ErrorTok"} `fuga` | pandoc -f markdown -t docx --lua-filter code2span.lua -o test.docx
ここで、Luaフィルタはこんな感じで書けばよい。custom-styleを持つ場合のみSpanに置き換える。それ以外は何もせずに返す。
function Code (s) for k, v in pairs(s.attr.attributes) do if k == "custom-style" then x = pandoc.Span(s.text, s.attr) return x end end return s end
出力はこんな感じ。
ErrorTokはコードハイライト時のエラー部分のテキストにあてられるスタイル。
自分以外に使い道ある人いなそうですが、備忘録として。
Enjoy!!