diff options
Diffstat (limited to 'tex/context/base/publ-oth.lua')
-rw-r--r-- | tex/context/base/publ-oth.lua | 146 |
1 files changed, 0 insertions, 146 deletions
diff --git a/tex/context/base/publ-oth.lua b/tex/context/base/publ-oth.lua deleted file mode 100644 index 14da19f9c..000000000 --- a/tex/context/base/publ-oth.lua +++ /dev/null @@ -1,146 +0,0 @@ -if not modules then modules = { } end modules ['publ-oth'] = { - version = 1.001, - comment = "this module part of publication support", - author = "Hans Hagen, PRAGMA-ADE, Hasselt NL", - copyright = "PRAGMA ADE / ConTeXt Development Team", - license = "see context related readme files" -} - -local P, S, C, Ct, Cf, Cg, Cmt, Carg = lpeg.P, lpeg.S, lpeg.C, lpeg.Ct, lpeg.Cf, lpeg.Cg, lpeg.Cmt, lpeg.Carg -local lpegmatch = lpeg.match - -local p_endofline = lpeg.patterns.newline - -local loaders = publications.loaders -local getindex = publications.getindex - -local function addfield(t,k,v,fields) - k = fields[k] - if k then - local tk = t[k] - if tk then - t[k] = tk .. " and " .. v - else - t[k] = v - end - end - return t -end - -local function checkfield(_,_,t,categories,all) - local tag = t.tag - if tag then - local category = t.category - t.tag = nil - t.category = categories[category] or category - all[tag] = t - end - return true -end - --- endnotes -- - -local fields = { - ["@"] = "tag", - ["0"] = "category", - ["A"] = "author", - ["E"] = "editor", - ["T"] = "title", - ["D"] = "year", - ["I"] = "publisher", -} - -local categories = { - ["Journal Article"] = "article", -} - -local entry = P("%") * Cg(C(1) * (S(" \t")^1) * C((1-p_endofline)^0) * Carg(1)) * p_endofline -local record = Cf(Ct("") * (entry^1), addfield) -local records = (Cmt(record * Carg(2) * Carg(3), checkfield) * P(1))^1 - -function publications.endnotes_to_btx(data) - local all = { } - lpegmatch(records,data,1,fields,categories,all) - return all -end - -function loaders.endnote(dataset,filename) - -- we could combine the next into checkfield but let's not create too messy code - loaders.lua(dataset,publications.endnotes_to_btx(io.loaddata(filename) or "")) -end - --- refman -- - -local entry = Cg(C((1-lpeg.S(" \t")-p_endofline)^1) * (S(" \t-")^1) * C((1-p_endofline)^0) * Carg(1)) * p_endofline -local record = Cf(Ct("") * (entry^1), addfield) -local records = (Cmt(record * Carg(2) * Carg(3), checkfield) * P(1))^1 - -local fields = { - ["SN"] = "tag", - ["TY"] = "category", - ["A1"] = "author", - ["E1"] = "editor", - ["T1"] = "title", - ["Y1"] = "year", - ["PB"] = "publisher", -} - -local categories = { - ["JOUR"] = "article", -} - -function publications.refman_to_btx(data) - local all = { } - lpegmatch(records,data,1,fields,categories,all) - return all -end - -function loaders.refman(dataset,filename) - -- we could combine the next into checkfield but let's not create too messy code - loaders.lua(dataset,publications.refman_to_btx(io.loaddata(filename) or "")) -end - --- test -- - --- local endnote = [[ --- %0 Journal Article --- %T Scientific Visualization, Overviews, Methodologies, and Techniques --- %A Nielson, Gregory M --- %A Hagen, Hans --- %A Müller, Heinrich --- %@ 0818677776 --- %D 1994 --- %I IEEE Computer Society --- --- %0 Journal Article --- %T Scientific Visualization, Overviews, Methodologies, and Techniques --- %A Nielson, Gregory M --- %A Hagen, Hans --- %A Müller, Heinrich --- %@ 0818677775 --- %D 1994 --- %I IEEE Computer Society --- ]] --- --- local refman = [[ --- TY - JOUR --- T1 - Scientific Visualization, Overviews, Methodologies, and Techniques --- A1 - Nielson, Gregory M --- A1 - Hagen, Hans --- A1 - Müller, Heinrich --- SN - 0818677776 --- Y1 - 1994 --- PB - IEEE Computer Society --- --- TY - JOUR --- T1 - Scientific Visualization, Overviews, Methodologies, and Techniques --- A1 - Nielson, Gregory M --- A1 - Hagen, Hans --- A1 - Müller, Heinrich --- SN - 0818677775 --- Y1 - 1994 --- PB - IEEE Computer Society --- ]] --- --- inspect(publications.endnotes_to_btx(endnote)) --- inspect(publications.refman_to_btx(refman)) |