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
, 내가 실행
이
A: table
B: c
C: Para
D: table: 0x53adb40
[Para [Str "Hello."]]
내가 그래서 그 -t native
-t json
에 변경할 수 있습니다 :이 출력을 생성
echo "Hello." | pandoc -f markdown -t native --lua-filter filter.lua
마지막 줄은 다음과 같습니다.
{"blocks":[{"t":"Para","c":[{"t":"Str","c":"Hello."}]}],"pandoc-api-version":[1,17,2],"meta":{}}
따라서 (B)의 결과에서 elem
의 유일한 키는 c
이지만, t
은 도 키가되므로 Para
을 얻을 수있는 열쇠입니다. 여기서 무슨 일이 일어나고 t
키가 루프에서 숨겨진 이유가 pairs
입니까?
아무도 대답이 없다면, 아마도 pandoc-discuss ... – mb21