diff --git a/data/pandoc.lua b/data/pandoc.lua index 1f4830858..d4bd955aa 100644 --- a/data/pandoc.lua +++ b/data/pandoc.lua @@ -55,6 +55,7 @@ local function create_accessor_behavior (tag) if k == "t" then return getmetatable(t)["tag"] end + return getmetatable(t)[k] end behavior.__pairs = function (t) return next, t diff --git a/test/lua/module/pandoc.lua b/test/lua/module/pandoc.lua index b18a01faa..4e0b5188e 100644 --- a/test/lua/module/pandoc.lua +++ b/test/lua/module/pandoc.lua @@ -278,6 +278,19 @@ return { end) }, }, + group 'MetaValue elements' { + test('MetaList elements behave like lists', function () + local metalist = pandoc.MetaList{} + assert.are_equal(type(metalist.insert), 'function') + assert.are_equal(type(metalist.remove), 'function') + end), + test('MetaList, MetaMap, MetaInlines, MetaBlocks have `t` tag', function () + assert.are_equal((pandoc.MetaList{}).t, 'MetaList') + assert.are_equal((pandoc.MetaMap{}).t, 'MetaMap') + assert.are_equal((pandoc.MetaInlines{}).t, 'MetaInlines') + assert.are_equal((pandoc.MetaBlocks{}).t, 'MetaBlocks') + end) + }, group 'Other types' { group 'SimpleTable' { test('can access properties', function ()