From 3f1f9536d4817bbdd797c01050a887fe4cdf347c Mon Sep 17 00:00:00 2001 From: Albert Krewinkel Date: Fri, 1 Dec 2017 18:47:33 +0100 Subject: pandoc.lua: set metatable on List MetaValues The `List` metatable is assigned to the tables which get passed to the constructors `MetaBlocks`, `MetaInline`, and `MetaList`. This enables the use of the resulting objects as lists. This is part of the changes discussed in #4081. --- data/pandoc.lua | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'data') diff --git a/data/pandoc.lua b/data/pandoc.lua index d8f7adb97..0c4b96f1c 100644 --- a/data/pandoc.lua +++ b/data/pandoc.lua @@ -185,25 +185,25 @@ end --- Meta list -- @function MetaList -- @tparam {MetaValue,...} meta_values list of meta values - ---- Meta map --- @function MetaMap --- @tparam table key_value_map a string-indexed map of meta values -M.meta_value_types = { +M.meta_value_list_types = { "MetaBlocks", "MetaInlines", "MetaList", - "MetaMap", } -for i = 1, #M.meta_value_types do - M[M.meta_value_types[i]] = M.MetaValue:create_constructor( - M.meta_value_types[i], +for i = 1, #M.meta_value_list_types do + M[M.meta_value_list_types[i]] = M.MetaValue:create_constructor( + M.meta_value_list_types[i], function(content) - return content + return List:new(content) end ) end +--- Meta map +-- @function MetaMap +-- @tparam table key_value_map a string-indexed map of meta values +M.MetaValue:create_constructor("MetaMap", function (mm) return mm end) + --- Creates string to be used in meta data. -- Does nothing, lua strings are meta strings. -- @function MetaString -- cgit v1.2.3