niszetの日記

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

(Pandoc) MetaBlockの不思議な挙動。

このIssueはPandocの理解度upに参考になる…かも。

このIssue、現時点でopenなのですが、初見だとなかなか面白い挙動なので見ておくと良いです。

github.com

これを、以下のようにplain2をつくって渡してあげるとmb1とmb2は同じになります。1度でも参照してしまうとダメぽい。

local plain = {pandoc.Plain("test")}
local plain2 = {pandoc.Plain("test")}
local mb1 = pandoc.MetaBlocks(plain)
local mb2 = pandoc.MetaBlocks(plain2)

下記のようにしてあげればいいわけですが、これは書き方の例としてどこかにあった方が良い気はしますね…

function Pandoc (doc)
  doc.meta.b1 = doc.blocks
  doc.meta.b2 = doc.blocks
  return doc
end

MetaBlockはBlockと基本的に同じ挙動のはずなので、これ以外は特に変なものはない…と思うけど。

Issueを読むと、こういう使い方をする人がいるんだなぁと学びがありますねぇ…。