From 9dc96ff2030bae02f3116509a752d7949fd8b5c3 Mon Sep 17 00:00:00 2001 From: Context Git Mirror Bot Date: Mon, 27 Oct 2014 16:15:04 +0100 Subject: 2014-10-27 15:18:00 --- tex/context/base/back-exp.lua | 81 ++++++++++++--------- tex/context/base/back-exp.mkiv | 2 +- tex/context/base/cont-new.mkiv | 2 +- tex/context/base/context-version.pdf | Bin 4398 -> 4405 bytes tex/context/base/context.mkiv | 2 +- tex/context/base/publ-dat.lua | 4 +- tex/context/base/publ-tra.lua | 12 +-- tex/context/base/status-files.pdf | Bin 24708 -> 24707 bytes tex/context/base/status-lua.pdf | Bin 333731 -> 333730 bytes tex/context/base/strc-itm.mkvi | 2 +- tex/context/base/tabl-tbl.mkiv | 2 +- tex/generic/context/luatex/luatex-fonts-merged.lua | 2 +- 12 files changed, 62 insertions(+), 47 deletions(-) diff --git a/tex/context/base/back-exp.lua b/tex/context/base/back-exp.lua index 84d3a6d8f..ca5cd5889 100644 --- a/tex/context/base/back-exp.lua +++ b/tex/context/base/back-exp.lua @@ -507,7 +507,7 @@ local function makebreaknode(attributes) -- maybe no fulltag } end -local function ignorebreaks(result,element,n,fulltag,di) +local function ignorebreaks(di,element,n,fulltag) local data = di.data for i=1,#data do local d = data[i] @@ -517,7 +517,7 @@ local function ignorebreaks(result,element,n,fulltag,di) end end -local function ignorespaces(result,element,n,fulltag,di) +local function ignorespaces(di,element,n,fulltag) local data = di.data for i=1,#data do local d = data[i] @@ -565,7 +565,7 @@ do end end - function extras.document(result,element,n,fulltag,di) + function extras.document(di,element,n,fulltag) setattribute(di,"language",languagenames[texgetcount("mainlanguagenumber")]) if not less_state then setattribute(di,"file",tex.jobname) @@ -591,18 +591,20 @@ do local itemgroups = { } - function structurestags.setitemgroup(packed,symbol) + function structurestags.setitemgroup(packed,level,symbol) itemgroups[locatedtag("itemgroup")] = { packed = packed, symbol = symbol, + level = level, } end - function extras.itemgroup(result,element,n,fulltag,di) + function extras.itemgroup(di,element,n,fulltag) local hash = itemgroups[fulltag] if hash then setattribute(di,"packed",hash.packed and "yes" or nil) setattribute(di,"symbol",hash.symbol) + setattribute(di,"level",hash.level) end end @@ -617,7 +619,7 @@ do synonyms[locatedtag("synonym")] = tag end - function extras.synonym(result,element,n,fulltag,di) + function extras.synonym(di,element,n,fulltag) local tag = synonyms[fulltag] if tag then setattribute(di,"tag",tag) @@ -628,7 +630,7 @@ do sortings[locatedtag("sorting")] = tag end - function extras.sorting(result,element,n,fulltag,di) + function extras.sorting(di,element,n,fulltag) local tag = sortings[fulltag] if tag then setattribute(di,"tag",tag) @@ -688,14 +690,14 @@ do end end - function extras.description(result,element,n,fulltag,di) + function extras.description(di,element,n,fulltag) local id = linked[fulltag] if id then setattribute(di,"insert",id) end end - function extras.descriptionsymbol(result,element,n,fulltag,di) + function extras.descriptionsymbol(di,element,n,fulltag) local id = linked[fulltag] if id then setattribute(di,"insert",id) @@ -706,7 +708,7 @@ end -- -- todo: ignore breaks -- --- function extras.verbatimline(result,element,n,fulltag,di) +-- function extras.verbatimline(di,element,n,fulltag) -- inspect(di) -- end @@ -725,7 +727,7 @@ do } end - function extras.image(result,element,n,fulltag,di) + function extras.image(di,element,n,fulltag) local data = image[fulltag] if data then setattribute(di,"name",data.name) @@ -752,7 +754,7 @@ do } end - function extras.combination(result,element,n,fulltag,di) + function extras.combination(di,element,n,fulltag) local data = combinations[fulltag] if data then setattribute(di,"nx",data.nx) @@ -865,7 +867,7 @@ do local r = references[i] local e = evaluators[r.kind] if e then - e(result,r) + e(di,r) end end end @@ -910,7 +912,7 @@ do end end - local function link(di,element,n,fulltag,di) + local function link(di,element,n,fulltag) -- for instance in lists a link has nested elements and no own text local reference = referencehash[fulltag] if reference then @@ -923,7 +925,7 @@ do local di = data[i] if di then local fulltag = di.fulltag - if fulltag and link(di,element,n,fulltag,di) then + if fulltag and link(di,element,n,fulltag) then return true end end @@ -1509,7 +1511,7 @@ do local a, z, A, Z = 0x61, 0x7A, 0x41, 0x5A - function extras.mi(di,element,n,fulltag,di) -- check with content + function extras.mi(di,element,n,fulltag) -- check with content local str = di.data[1].content if str and sub(str,1,1) ~= "&" then -- hack but good enough (maybe gsub op eerste) for v in utfvalues(str) do @@ -1525,7 +1527,7 @@ do end end - function extras.msub(di,element,n,fulltag,di) + function extras.msub(di,element,n,fulltag) -- m$^2$ local data = di.data if #data == 1 then @@ -1544,7 +1546,7 @@ do local registered = structures.sections.registered - local function resolve(di,element,n,fulltag,di) + local function resolve(di,element,n,fulltag) local data = listdata[fulltag] if data then extras.addreference(di,data.references) @@ -1556,7 +1558,7 @@ do local di = data[i] if di then local ft = di.fulltag - if ft and resolve(di,element,n,ft,di) then + if ft and resolve(di,element,n,ft) then return true end end @@ -1565,12 +1567,12 @@ do end end - function extras.section(di,element,n,fulltag,di) + function extras.section(di,element,n,fulltag) local r = registered[specifications[fulltag].detail] if r then setattribute(di,"level",r.level) end - resolve(di,element,n,fulltag,di) + resolve(di,element,n,fulltag) end extras.float = resolve @@ -1584,7 +1586,7 @@ do end end - function extras.listitem(di,element,n,fulltag,di) + function extras.listitem(di,element,n,fulltag) local data = referencehash[fulltag] if data then extras.addinternal(di,data.references) @@ -1605,7 +1607,7 @@ do end end - function extras.registerlocation(di,element,n,fulltag,di) + function extras.registerlocation(di,element,n,fulltag) local data = referencehash[fulltag] if data then extras.addinternal(di,data.references) @@ -1648,7 +1650,7 @@ do end end - function extras.tablecell(di,element,n,fulltag,di) + function extras.tablecell(di,element,n,fulltag) local hash = tabledata[fulltag] if hash then local columns = hash.columns @@ -1682,7 +1684,7 @@ do end end - function extras.tabulate(di,element,n,fulltag,di) + function extras.tabulate(di,element,n,fulltag) local data = di.data for i=1,#data do local di = data[i] @@ -1692,7 +1694,7 @@ do end end - function extras.tabulatecell(di,element,n,fulltag,di) + function extras.tabulatecell(di,element,n,fulltag) local hash = tabulatedata[fulltag] if hash then local align = hash.align @@ -1843,7 +1845,7 @@ do end local extra = extras[element] if extra then - extra(di,element,index,fulltag,di) + extra(di,element,index,fulltag) end if exportproperties then local p = specification.userdata @@ -2448,7 +2450,8 @@ local function collectresults(head,list,pat,pap) -- is last used (we also have c -- to a regular setter at the tex end. local r = getattr(n,a_reference) if r then - referencehash[tl[#tl]] = r -- fulltag + local t = tl.taglist + referencehash[t[#t]] = r -- fulltag end -- elseif last then @@ -3028,24 +3031,36 @@ local htmltemplate = [[ local function makeclass(tg,at) local detail = at.detail local chain = at.chain + local result at.detail = nil at.chain = nil if detail and detail ~= "" then if chain and chain ~= "" then if chain ~= detail then - return classes[tg .. " " .. chain .. " " .. detail] -- we need to remove duplicates + result = { classes[tg .. " " .. chain .. " " .. detail] } -- we need to remove duplicates elseif tg ~= detail then - return tg .. " " .. detail + result = { tg, detail } + else + result = { tg } end elseif tg ~= detail then - return tg .. " " .. detail + result = { tg, detail } + else + result = { tg } end elseif chain and chain ~= "" then if tg ~= chain then - return tg .. " " .. chain + result = { tg, chain } + else + result = { tg } end + else + result = { tg } + end + for k, v in next, at do + result[#result+1] = k .. "-" .. v end - return tg + return concat(result, " ") end local function remap(specification,source,target) diff --git a/tex/context/base/back-exp.mkiv b/tex/context/base/back-exp.mkiv index bbf564517..c056547b9 100644 --- a/tex/context/base/back-exp.mkiv +++ b/tex/context/base/back-exp.mkiv @@ -120,7 +120,7 @@ \to \everyenableelements \appendtoks - \unexpanded\def\dotagsetitemgroup{\taggedctxcommand{settagitemgroup(\ifconditional\c_strc_itemgroups_pack true\else false\fi,"\currentitemgroupsymbol")}}% + \unexpanded\def\dotagsetitemgroup{\taggedctxcommand{settagitemgroup(\ifconditional\c_strc_itemgroups_pack true\else false\fi,\number\currentitemlevel,"\currentitemgroupsymbol")}}% \to \everyenableelements \appendtoks diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv index d54ba6c3f..7c79c017b 100644 --- a/tex/context/base/cont-new.mkiv +++ b/tex/context/base/cont-new.mkiv @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2014.10.27 09:27} +\newcontextversion{2014.10.27 15:16} %D This file is loaded at runtime, thereby providing an excellent place for %D hacks, patches, extensions and new features. diff --git a/tex/context/base/context-version.pdf b/tex/context/base/context-version.pdf index 4080c15b4..4abb589f6 100644 Binary files a/tex/context/base/context-version.pdf and b/tex/context/base/context-version.pdf differ diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv index bdb1e8c07..22ce6c50e 100644 --- a/tex/context/base/context.mkiv +++ b/tex/context/base/context.mkiv @@ -28,7 +28,7 @@ %D up and the dependencies are more consistent. \edef\contextformat {\jobname} -\edef\contextversion{2014.10.27 09:27} +\edef\contextversion{2014.10.27 15:16} \edef\contextkind {beta} %D For those who want to use this: diff --git a/tex/context/base/publ-dat.lua b/tex/context/base/publ-dat.lua index 544528405..a9007fa9c 100644 --- a/tex/context/base/publ-dat.lua +++ b/tex/context/base/publ-dat.lua @@ -126,12 +126,12 @@ local specifications = setmetatableindex(function(t,name) return default -- initializer end local filename = formatters["publ-imp-%s.lua"](name) - local fullname = resolvers.findfile(fullname) or "" + local fullname = resolvers.findfile(filename) or "" if fullname == "" then report("no data definition file %a for %a",filename,name) return default end - local specification = table.load(filename) + local specification = table.load(fullname) if not specification then report("invalid data definition file %a for %a",fullname,name) return default diff --git a/tex/context/base/publ-tra.lua b/tex/context/base/publ-tra.lua index 34a678459..7dc5d5703 100644 --- a/tex/context/base/publ-tra.lua +++ b/tex/context/base/publ-tra.lua @@ -12,8 +12,9 @@ local sortedhash, sortedkeys = table.sortedhash, table.sortedkeys local settings_to_array = utilities.parsers.settings_to_array local formatters = string.formatters -local tracers = publications.tracers or { } -local datasets = publications.datasets +local tracers = publications.tracers or { } +local datasets = publications.datasets +local specifications = publications.specifications local context = context @@ -34,7 +35,7 @@ function tracers.showdatasetfields(settings) local luadata = current.luadata if next(luadata) then local kind = settings.kind - local fielddata = kind and categories[kind] or categories.apa + local fielddata = kind and specifications[kind] or specifications.apa local categories = fielddata.categories local fieldspecs = fielddata.fields ctx_starttabulate { "|lT|lT|pT|" } @@ -73,10 +74,9 @@ function tracers.showdatasetcompleteness(settings) local current = datasets[dataset] local luadata = current.luadata local kind = settings.kind - local fielddata = kind and categories[kind] or categories.apa + local fielddata = kind and specifications[kind] or specifications.apa local categories = fielddata.categories local fieldspecs = fielddata.fields - local lpegmatch = lpeg.match local texescape = lpeg.patterns.texescape @@ -199,7 +199,7 @@ end function tracers.showfields(settings) local rotation = settings.rotation local kind = settings.kind - local fielddata = kind and categories[kind] or categories.apa + local fielddata = kind and specifications[kind] or specifications.apa local categories = fielddata.categories local fieldspecs = fielddata.fields local swapped = { } diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf index 7d2f9fa03..21f151a50 100644 Binary files a/tex/context/base/status-files.pdf and b/tex/context/base/status-files.pdf differ diff --git a/tex/context/base/status-lua.pdf b/tex/context/base/status-lua.pdf index 7249deb2b..9298c71a6 100644 Binary files a/tex/context/base/status-lua.pdf and b/tex/context/base/status-lua.pdf differ diff --git a/tex/context/base/strc-itm.mkvi b/tex/context/base/strc-itm.mkvi index 4478c2d8d..fd612b339 100644 --- a/tex/context/base/strc-itm.mkvi +++ b/tex/context/base/strc-itm.mkvi @@ -485,7 +485,7 @@ \ifdefined\dotagsetitemgroup \else \let\dotagsetitemgroup\relax \fi \def\strc_itemgroups_tag_start_group - {\dostarttaggedchained\t!itemgroup\currentitemgroup\??itemgroup + {\dostarttaggedchained\t!itemgroup\currentparentitemgroup\??itemgroup \dotagsetitemgroup} \def\strc_itemgroups_tag_stop_group diff --git a/tex/context/base/tabl-tbl.mkiv b/tex/context/base/tabl-tbl.mkiv index 1bfa53d31..52c452235 100644 --- a/tex/context/base/tabl-tbl.mkiv +++ b/tex/context/base/tabl-tbl.mkiv @@ -2172,7 +2172,7 @@ \global\setbox\b_tabl_tabulate\vbox \bgroup \fi % - \dostarttaggedchained\t!tabulate\empty\??tabulate + \dostarttaggedchained\t!tabulate\empty\??tabulation \dostarttagged\t!tabulaterow\empty \setfalse\inhibitmargindata % new per 2012.06.13 ... really needed \everycr\expandafter{\the\everycr\dostoptagged\dostarttagged\t!tabulaterow\empty}% diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index 0a533d75f..43734d206 100644 --- a/tex/generic/context/luatex/luatex-fonts-merged.lua +++ b/tex/generic/context/luatex/luatex-fonts-merged.lua @@ -1,6 +1,6 @@ -- merged file : luatex-fonts-merged.lua -- parent file : luatex-fonts.lua --- merge date : 10/27/14 09:27:26 +-- merge date : 10/27/14 15:16:33 do -- begin closure to overcome local limits and interference -- cgit v1.2.3