summaryrefslogtreecommitdiff
path: root/tex/context/base/publ-ini.mkiv
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/publ-ini.mkiv')
-rw-r--r--tex/context/base/publ-ini.mkiv114
1 files changed, 84 insertions, 30 deletions
diff --git a/tex/context/base/publ-ini.mkiv b/tex/context/base/publ-ini.mkiv
index 61a84f496..d4479d1e9 100644
--- a/tex/context/base/publ-ini.mkiv
+++ b/tex/context/base/publ-ini.mkiv
@@ -51,11 +51,12 @@
\startcontextdefinitioncode
-\def\s!btx {btx}
-\def\s!cite {cite}
-\def\s!list {list}
-\def\v!btxcite {btxcite}
-\def\v!btxlist {btxlist}
+\def\s!btx {btx}
+\def\s!cite {cite}
+\def\s!list {list}
+\def\v!btxcite {btxcite}
+\def\v!btxlist {btxlist}
+\def\v!btxrendering {btxrendering}
\definelabelclass[btxlabel][2]
@@ -99,13 +100,38 @@
\unexpanded\setvalue{\??constructiontexthandler\v!btxlist}%
{\begingroup
+ \xdef\btxcurrentlistinternal{\the\numexpr\locationcount+\plusone)}% \nextinternalreference
+ \directsetup{\v!btxrendering:\v!number:\constructionparameter\c!number}%
+ \endgroup}
+
+\startsetups[\v!btxrendering:\v!number:\v!no]
+ % \btx_reference_checked % needs testing
+\stopsetups
+
+\startsetups[\v!btxrendering:\v!number:\v!yes]
\useconstructionstyleandcolor\c!headstyle\c!headcolor % move to \currentconstructiontext
\the\everyconstruction
- \goto
- {\strut\constructionparameter\c!text\btx_list_reference_inject}%
-% [\s!btx:list:\the\numexpr\locationcount+\plusone]% \nextinternalreference
- [internal(\the\numexpr\locationcount+\plusone)]% \nextinternalreference
- \endgroup}
+ \relax
+ \iflocation
+ \goto
+ {\publ_list_number_normal}%
+ [\s!internal(\btxcurrentlistinternal)]%
+ \else
+ \publ_list_number_normal
+ \fi
+\stopsetups
+
+\unexpanded\def\publ_list_number_normal
+ {\strut
+ \constructionparameter\c!text
+ \btx_list_reference_inject
+ \relax}
+
+\let\btxcurrentlistinternal\relax
+
+% todo: low level builder commands without using the constructor
+
+% construction
\unexpanded\def\strc_constructions_initialize#1% class instance
{\edef\currentconstruction{#1}%
@@ -167,6 +193,7 @@
%\s!catcodes=,
%\c!title=\v!yes,
%\c!text=,
+ \c!number=\v!yes,
]
% here starts the bib stuff
@@ -484,9 +511,32 @@
\def\publ_place_list_entry_register
{\ctxcommand{btxregisterlistentry("\currentbtxdataset","\currentbtxtag")}}
-\unexpanded\def\btxhandlelistentry#1% called at the lua end / todo: pass check state
+\unexpanded\def\btxlistreset
+ {\let\currentbtxindex \!!zerocount
+ \let\currentbtxcombis \empty
+ \let\currentbtxcategory\empty
+ \let\currentbtxinternal\empty
+ \let\currentbtxlanguage\empty
+ \let\currentbtxtag \empty}
+
+\unexpanded\def\btxsetindex {\def\currentbtxindex}
+\unexpanded\def\btxsetcombis {\def\currentbtxcombis}
+\unexpanded\def\btxsetcategory{\def\currentbtxcategory}
+\unexpanded\def\btxsetinternal{\def\currentbtxinternal}
+%unexpanded\def\btxsetlanguage{\def\currentbtxlanguage}
+\unexpanded\def\btxsettag {\def\currentbtxtag}
+
+\unexpanded\def\btxsetlanguage#1%
+ {\def\currentbtxlanguage{#1}%
+ \ifx\currentbtxlanguage\currentlanguage \else
+ \setcurrentlanguage\currentmainlanguage\currentbtxlanguage
+ \fi}
+
+\btxlistreset
+
+\unexpanded\def\btxhandlelistentry% called at the lua end / todo: pass check state
{\begingroup
- \edef\currentbtxtag{#1}%
+ %edef\currentbtxtag{#1}% set at the Lua end
\ifconditional\c_publ_place_all
\publ_place_list_entry
\else\ifconditional\c_publ_place_check
@@ -650,27 +700,18 @@
\fi
\to \everysetupbtxciteplacement
-% bib -> btx
+% these will go away or at least need to be checked:
-\unexpanded\def\btxgotolink#1[#2]{\doifreferencefoundelse{\bibrefprefix#2}{\goto{#1}[\bibrefprefix#2]}{#1}}
-\unexpanded\def\btxatlink [#1]{\doifreferencefoundelse{\bibrefprefix#1}{\at [\bibrefprefix#1]}{#1}}
-\unexpanded\def\btxinlink [#1]{\doifreferencefoundelse{\bibrefprefix#1}{\expanded{\goto{\currentreferencetext}}[\bibrefprefix#1]}{#1}}
+% \unexpanded\def\btxgotolink#1[#2]{\doifreferencefoundelse{\bibrefprefix#2}{\goto{#1}[\bibrefprefix#2]}{#1}}
+% \unexpanded\def\btxatlink [#1]{\doifreferencefoundelse{\bibrefprefix#1}{\at [\bibrefprefix#1]}{#1}}
+% \unexpanded\def\btxinlink [#1]{\doifreferencefoundelse{\bibrefprefix#1}{\expanded{\goto{\currentreferencetext}}[\bibrefprefix#1]}{#1}}
-\unexpanded\def\btxdirectlink#1#2{\goto{#2 {\tttf[#1]}}[#1]}
-\unexpanded\def\btxdirectlink#1#2{\goto{#2}[#1]}
+% \unexpanded\def\btxdirectlink#1#2{\goto{#2 {\tttf[#1]}}[#1]}
+% \unexpanded\def\btxdirectlink#1#2{\goto{#2}[#1]}
-\let\gotobiblink\btxgotolink
-\let\atbiblink \btxatlink
-\let\inbiblink \btxinlink
-
-\unexpanded\def\btxnumberedreference[#1]% \bibtexnumref (replaced by \cite[num])
- {\dontleavehmode
- \begingroup
- \btxcitevariantparameter\v!left
- \penalty\plustenthousand % todo
- \ctxcommand{btxresolvelistreference("\currentbtxdataset","#1")}% todo: split dataset from #1, so another call
- \btxcitevariantparameter\v!right
- \endgroup}
+% \let\gotobiblink\btxgotolink
+% \let\atbiblink \btxatlink
+% \let\inbiblink \btxinlink
\appendtoks
% for old times sake, for a while at least
@@ -684,6 +725,17 @@
\let\noopsort \gobbleoneargument
\to \everysetupbtxciteplacement
+% till here
+
+\unexpanded\def\btxnumberedreference[#1]% \bibtexnumref (replaced by \cite[num])
+ {\dontleavehmode
+ \begingroup
+ \btxcitevariantparameter\v!left
+ \penalty\plustenthousand % todo
+ \ctxcommand{btxresolvelistreference("\currentbtxdataset","#1")}% todo: split dataset from #1, so another call
+ \btxcitevariantparameter\v!right
+ \endgroup}
+
\appendtoks
\doifnot{\btxrenderingparameter\c!continue}\v!yes
{\global\btxlistcounter\zerocount}%
@@ -861,6 +913,7 @@
{\let\currentbtxfirst \empty
\let\currentbtxsecond \empty
\let\currentbtxinternal\empty
+ \let\currentbtxlanguage\empty
\let\currentbtxtag \empty
\setconstant\currentbtxconcat\zerocount}
@@ -874,6 +927,7 @@
\unexpanded\def\btxsetsecond {\def\currentbtxsecond}
\unexpanded\def\btxsettag {\def\currentbtxtag}
\unexpanded\def\btxsetinternal{\def\currentbtxinternal}
+%unexpanded\def\btxsetlanguage{\def\currentbtxlanguage}
\unexpanded\def\btxsetconcat#1{\setconstant\currentbtxconcat#1\relax}
\unexpanded\def\btxsetlistreference#1#2% #3#4%