diff options
author | Christoph Helma <helma@in-silico.ch> | 2019-06-05 17:28:10 +0200 |
---|---|---|
committer | Christoph Helma <helma@in-silico.ch> | 2019-06-05 17:28:10 +0200 |
commit | 9a217185e791d6abbe46549cd4e87c1d1a643c05 (patch) | |
tree | 1968aebd8a38acd7784e58d478e0f6c3fb08ab76 /paper/scholar-filters/template-helper.lua | |
parent | feb1f82356da50a1ebf63b1eda434c388ab009e1 (diff) |
first manuscript version
Diffstat (limited to 'paper/scholar-filters/template-helper.lua')
-rw-r--r-- | paper/scholar-filters/template-helper.lua | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/paper/scholar-filters/template-helper.lua b/paper/scholar-filters/template-helper.lua new file mode 100644 index 0000000..86af339 --- /dev/null +++ b/paper/scholar-filters/template-helper.lua @@ -0,0 +1,43 @@ +--[[ +template-helper: generate meta fields to be used in templates. + +Copyright © 2017–2018 Albert Krewinkel + +Permission to use, copy, modify, and/or distribute this software for any purpose +with or without fee is hereby granted, provided that the above copyright notice +and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF +THIS SOFTWARE. +]] + +local List = require 'pandoc.List' + +function Meta (meta) + local function resolve_institute (idx) + return meta.institute[tonumber(idx)] + end + + for i, author in ipairs(meta.author) do + local institute_indices = List:new(author.institute) + local institutes = institute_indices:map(resolve_institute) + author.institute_indices = institute_indices + author.institute = institutes + meta.has_equal_contributors = meta.has_equal_contributors + or author.equal_contributor + meta.has_correspondence = meta.has_correspondence + or author.correspondence and author.email + end + + for i, institute in ipairs(meta.institute) do + institute.index = tostring(i) + end + + return meta +end + |