Pandocバージョン2.0以降、Lua Filtersを書き込むことができました。しかし、Pandoc 2.0では、要素表のLuaのpairs
を使用しても、表のすべてのキーが表示されるわけではありません。Pandoc Luaフィルタ:ペアにテーブルのすべてのキーが表示されない
この点を説明するための最小限の例を示します。 filter.lua
では私が持っている:
function Para(elem)
io.stderr:write("A: " .. type(elem) .. "\n")
for k, v in pairs(elem) do
io.stderr:write("B: " .. k .. "\n")
end
io.stderr:write("C: " .. elem["t"] .. "\n")
io.stderr:write("D: " .. tostring(elem["c"]) .. "\n")
-- Return elem unchanged
return nil
end
さて、コマンドラインから、私が実行します。
echo "Hello." | pandoc -f markdown -t native --lua-filter filter.lua
これは出力を生成します。
A: table
B: c
C: Para
D: table: 0x53adb40
[Para [Str "Hello."]]
ように、私は-t json
に-t native
を変更することができます最後の行は次のようになります。
{"blocks":[{"t":"Para","c":[{"t":"Str","c":"Hello."}]}],"pandoc-api-version":[1,17,2],"meta":{}}
したがって、(B)の出力からelem
の唯一の鍵はc
ですが、(C)t
も鍵であることは明らかです。Para
を入手できます。ここで何が起きているのですか。t
鍵がループから隠されているのはなぜですか?pairs
?
ここで答えが無ければ、おそらくpandoc-discussに聞いてください... – mb21