diff options
author | Hans Hagen <pragma@wxs.nl> | 2018-07-06 20:02:14 +0200 |
---|---|---|
committer | Context Git Mirror Bot <phg42.2a@gmail.com> | 2018-07-06 20:02:14 +0200 |
commit | f58860178fcd1497d52acaa3cb2ceda7531e46ac (patch) | |
tree | fc9d7d0bd694eca619699a986f74f1f95490c37a /tex/context/base/mkiv/publ-dat.lua | |
parent | d6dece4edc2ef86889f99f3dbe5a6d6ed3b68b02 (diff) | |
download | context-f58860178fcd1497d52acaa3cb2ceda7531e46ac.tar.gz |
2018-07-06 19:15:00
Diffstat (limited to 'tex/context/base/mkiv/publ-dat.lua')
-rw-r--r-- | tex/context/base/mkiv/publ-dat.lua | 33 |
1 files changed, 29 insertions, 4 deletions
diff --git a/tex/context/base/mkiv/publ-dat.lua b/tex/context/base/mkiv/publ-dat.lua index 570e0a0b0..bf134a56e 100644 --- a/tex/context/base/mkiv/publ-dat.lua +++ b/tex/context/base/mkiv/publ-dat.lua @@ -1099,8 +1099,8 @@ do local f_start = formatters["@%s{%s,\n"] local f_field = formatters[" %s = {%s},\n"] local s_stop = "}\n\n" - local result = { s_preamble } - local n, r = 0, 1 + local result = { } + local n, r = 0, 0 for tag, data in sortedhash(tobesaved) do r = r + 1 ; result[r] = f_start(data.category or "article",tag) for key, value in sortedhash(data) do @@ -1111,8 +1111,16 @@ do r = r + 1 ; result[r] = s_stop n = n + 1 end - report("%s entries from dataset %a saved in %a",n,dataset,filename) - io.savedata(filename,concat(result)) + result = concat(result) + if find(result,"\\btxcmd") then + result = s_preamble .. result + end + if filename then + report("%s entries from dataset %a saved in %a",n,dataset,filename) + io.savedata(filename,result) + else + return result + end end function savers.lua(dataset,filename,tobesaved) @@ -1180,6 +1188,8 @@ do return dataset end + publications.savers = savers + if implement then implement { @@ -1195,6 +1205,21 @@ do } } + implement { + name = "btxentrytobuffer", + arguments = "3 strings", + actions = function(dataset,tag,target) + local d = publications.datasets[dataset] + if d then + d = d.luadata[tag] + end + if d then + d = string.fullstrip(savers.bib(dataset,false,{ [tag] = d })) + end + buffers.assign(target,d or "") + end + } + end end |