summaryrefslogtreecommitdiff
path: root/tex/context/base/strc-itm.mkvi
diff options
context:
space:
mode:
authorMarius <mariausol@gmail.com>2012-04-14 01:40:13 +0300
committerMarius <mariausol@gmail.com>2012-04-14 01:40:13 +0300
commitd30dc77c610b72db7e7bc53f2a10e18756cfe437 (patch)
treeb049068beb7e5152b91833d9e7ad64e2c2ea584c /tex/context/base/strc-itm.mkvi
parent69bafd00a14cf4d886d6ed79273f4437f7e2add2 (diff)
downloadcontext-d30dc77c610b72db7e7bc53f2a10e18756cfe437.tar.gz
beta 2012.04.14 00:10
Diffstat (limited to 'tex/context/base/strc-itm.mkvi')
-rw-r--r--tex/context/base/strc-itm.mkvi91
1 files changed, 48 insertions, 43 deletions
diff --git a/tex/context/base/strc-itm.mkvi b/tex/context/base/strc-itm.mkvi
index 50b4035c2..d0191f78f 100644
--- a/tex/context/base/strc-itm.mkvi
+++ b/tex/context/base/strc-itm.mkvi
@@ -242,50 +242,55 @@
\strc_itemgroups_insert_reference_indeed
\fi \fi}
-\def\strc_itemgroups_insert_reference_indeed % maybe we need a 'frozen counter' numberdata blob
- {\setnextinternalreference
+\def\strc_itemgroups_insert_reference_indeed % maybe we need a 'frozen counter' numberdata blob / quick hack .. .mive this to strc-ref
+ {%\setnextinternalreference
% no need to collect nodes in \b_strc_destination_nodes here ... maybe at some point
- \ctxlua {structures.references.setandgetattribute("\s!full", "\referenceprefix","\currentitemreference",
- {
- metadata = {
- kind = "item",% ?
- catcodes = \the\catcodetable,
- xmlroot = \ifx\currentreferencecoding\s!xml "\xmldocument" \else nil \fi, % only useful when text
- },
- references = {
- internal = \nextinternalreference,
- section = structures.sections.currentid(),
- },
- prefixdata = structures.helpers.simplify {
- prefix = "\counterparameter\v_strc_itemgroups_counter\c!prefix",
- separatorset = "\counterparameter\v_strc_itemgroups_counter\c!prefixseparatorset",
- conversion = \!!bs\counterparameter\v_strc_itemgroups_counter\c!prefixconversion\!!es,
- conversionset = "\counterparameter\v_strc_itemgroups_counter\c!prefixconversionset",
- set = "\counterparameter\v_strc_itemgroups_counter\c!prefixset",
- segments = "\counterparameter\v_strc_itemgroups_counter\c!prefixsegments",
- % segments = "\askedprefixsegments",
- connector = \!!bs\counterparameter\v_strc_itemgroups_counter\c!prefixconnector\!!es,
- },
- numberdata = structures.helpers.simplify {
- numbers = structures.counters.compact("\v_strc_itemgroups_counter",nil,true),
- separatorset = "\counterparameter\v_strc_itemgroups_counter\c!numberseparatorset",
-% conversion = "\counterparameter\v_strc_itemgroups_counter\c!numberconversion",
-% conversion = "\currentitemgroupconversionset",
-% conversionset = "\counterparameter\v_strc_itemgroups_counter\c!numberconversionset",
-% todo: fixedconversion = "\currentitemgroupconversionset", % temp hack:
-conversionset = "fixed::\currentitemgroupconversionset",
- %
- % for the moment no stopper, we need to make references configurable first
- % stopper = \!!bs\counterparameter\v_strc_itemgroups_counter\c!numberstopper\!!es,
- segments = "\counterparameter\v_strc_itemgroups_counter\c!numbersegments",
- },
- })
- }%
- \xdef\currentitemattribute{\number\lastdestinationattribute}%
- \begingroup
- \attribute\destinationattribute\currentitemattribute
- \kern\zeropoint % signal
- \endgroup}
+ \strc_references_start_destination_nodes
+ \ctxlua {structures.references.setandgetattribute("\s!full", "\referenceprefix","\currentitemreference",
+ {
+ metadata = {
+ kind = "item",% ?
+ catcodes = \the\catcodetable,
+ xmlroot = \ifx\currentreferencecoding\s!xml "\xmldocument" \else nil \fi, % only useful when text
+ },
+ references = {
+ % internal = \nextinternalreference, % no: this spoils references
+ block = "\currentsectionblock",
+ section = structures.sections.currentid(),
+ },
+ prefixdata = structures.helpers.simplify {
+ prefix = "\counterparameter\v_strc_itemgroups_counter\c!prefix",
+ separatorset = "\counterparameter\v_strc_itemgroups_counter\c!prefixseparatorset",
+ conversion = \!!bs\counterparameter\v_strc_itemgroups_counter\c!prefixconversion\!!es,
+ conversionset = "\counterparameter\v_strc_itemgroups_counter\c!prefixconversionset",
+ set = "\counterparameter\v_strc_itemgroups_counter\c!prefixset",
+ segments = "\counterparameter\v_strc_itemgroups_counter\c!prefixsegments",
+ % segments = "\askedprefixsegments",
+ connector = \!!bs\counterparameter\v_strc_itemgroups_counter\c!prefixconnector\!!es,
+ },
+ numberdata = structures.helpers.simplify {
+ numbers = structures.counters.compact("\v_strc_itemgroups_counter",nil,true),
+ separatorset = "\counterparameter\v_strc_itemgroups_counter\c!numberseparatorset",
+ % conversion = "\counterparameter\v_strc_itemgroups_counter\c!numberconversion",
+ % conversion = "\currentitemgroupconversionset",
+ % conversionset = "\counterparameter\v_strc_itemgroups_counter\c!numberconversionset",
+ % todo: fixedconversion = "\currentitemgroupconversionset", % temp hack:
+ conversionset = "fixed::\currentitemgroupconversionset",
+ %
+ % for the moment no stopper, we need to make references configurable first
+ % stopper = \!!bs\counterparameter\v_strc_itemgroups_counter\c!numberstopper\!!es,
+ segments = "\counterparameter\v_strc_itemgroups_counter\c!numbersegments",
+ },
+ })
+ }%
+ \strc_references_stop_destination_nodes
+ \xdef\currentdestinationattribute{\number\lastdestinationattribute}%
+ % will become an option:
+ \ifnum\lastdestinationattribute>\zerocount
+ \dontleavehmode\hbox attr \destinationattribute\lastdestinationattribute\bgroup
+ \strc_references_flush_destination_nodes
+ \egroup
+ \fi}
%D Defining and setup: