summaryrefslogtreecommitdiff
path: root/tex/context/base/mkiv/publ-dat.lua
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2018-07-06 20:02:14 +0200
committerContext Git Mirror Bot <phg42.2a@gmail.com>2018-07-06 20:02:14 +0200
commitf58860178fcd1497d52acaa3cb2ceda7531e46ac (patch)
treefc9d7d0bd694eca619699a986f74f1f95490c37a /tex/context/base/mkiv/publ-dat.lua
parentd6dece4edc2ef86889f99f3dbe5a6d6ed3b68b02 (diff)
downloadcontext-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.lua33
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