niszetの日記

細かい情報を載せていくブログ

pandoc-discussでPandocのLua filterの質問に回答した

Pandocにも質問用のメーリングリストがある

ここね。 groups.google.com

PandocのGitHubのIssueはBug reportやFeature requestをする場であって、個別の、書き方がわからない系の質問をする場所ではないので、困ったら↑のメーリングリストに書いてみましょう。ただし、英語で、ですが。

と、pandoc-discussの存在を先日知って、たまたま見てみたらLua filterの質問があったので回答した。

書いたものはこんな感じ。

function Image(e)
  if string.match(e.src, "svg$") then
    return(pandoc.RawInline("html", '<object data="' .. e.src .. '"></object>'))
  end
end

これの前身でPara内の要素を見るものを書いた(20分くらい)が、風呂入ってたらpタグいらないじゃん…というよりインライン要素だけ置換する、が正しいじゃん…ってなってこうなりました。やっていることはimgタグをsvg拡張子の場合のみobjectにするだけです。

これは出力がhtml固定だと思っているので、特にフォーマットの指定はしていない(他の拡張子の時にfilterをいれることは想定しない)ので、もし常にフィルターを使うようにしつつ特定フォーマットだけ、となる場合はフォーマット識別するif文を手前に入れてください。

他に使いたい人がいるかもしれないから、もう少し整備して

github.com

に送ってみましょうかね(そこまでする…?

という活動報告。でした。

Enjoy!!