data/pandoc.lua: fix attribute names of Citation

The fields were named like the Haskell fields, not like the documented,
shorter version.  The names are changed to match the documentation and
Citations are given a shared metatable to enable simple extensibility.

Fixes: #4222
This commit is contained in:
Albert Krewinkel 2018-01-05 08:15:43 +01:00
parent 856bc54526
commit 4f564b9203
No known key found for this signature in database
GPG key ID: 388DC0B21F631124
2 changed files with 21 additions and 19 deletions

View file

@ -764,6 +764,8 @@ M.Attr.__newindex = function(t, k, v)
end
setmetatable(M.Attr, M.Attr)
-- Citation
M.Citation = {}
--- Creates a single citation.
-- @function Citation
@ -773,20 +775,20 @@ setmetatable(M.Attr, M.Attr)
-- @tparam[opt] {Inline,...} suffix citation suffix
-- @tparam[opt] int note_num note number
-- @tparam[opt] int hash hash number
M.Citation = function(id, mode, prefix, suffix, note_num, hash)
prefix = prefix or {}
suffix = suffix or {}
note_num = note_num or 0
hash = hash or 0
return {
citationId = id,
citationPrefix = prefix,
citationSuffix = suffix,
citationMode = mode,
citationNoteNum = note_num,
citationHash = hash,
}
M.Citation.__call = function(t, id, mode, prefix, suffix, note_num, hash)
return setmetatable(
{
id = id,
mode = mode,
prefix = prefix or {},
suffix = suffix or {},
note_num = note_num or 0,
hash = hash or 0,
},
t
)
end
setmetatable(M.Citation, M.Citation)
------------------------------------------------------------------------

View file

@ -84,12 +84,12 @@ instance ToLuaStack Citation where
instance FromLuaStack Citation where
peek idx = do
id' <- getTable idx "citationId"
prefix <- getTable idx "citationPrefix"
suffix <- getTable idx "citationSuffix"
mode <- getTable idx "citationMode"
num <- getTable idx "citationNoteNum"
hash <- getTable idx "citationHash"
id' <- getTable idx "id"
prefix <- getTable idx "prefix"
suffix <- getTable idx "suffix"
mode <- getTable idx "mode"
num <- getTable idx "note_num"
hash <- getTable idx "hash"
return $ Citation id' prefix suffix mode num hash
instance ToLuaStack Alignment where