%D \module %D [ file=node-ini, %D version=2006.08.20, %D title=\CONTEXT\ Node Macros, %D subtitle=Initialization, %D author=Hans Hagen, %D date=\currentdate, %D copyright=PRAGMA] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Node Support / Initialization} \unprotect \newcount\filterstate \filterstate\plusone \registerctxluafile{node-ini}{1.001} \registerctxluafile{node-dir}{1.001} \registerctxluafile{node-aux}{1.001} \registerctxluafile{node-tst}{1.001} \registerctxluafile{node-tra}{1.001} % we might split it off (module) \registerctxluafile{node-seq}{1.001} % we might generalize this one \registerctxluafile{node-tsk}{1.001} \registerctxluafile{node-tex}{1.001} \registerctxluafile{node-res}{1.001} \registerctxluafile{node-pro}{1.001} \registerctxluafile{node-shp}{1.001} \registerctxluafile{node-ser}{1.001} \registerctxluafile{node-ext}{1.001} \registerctxluafile{node-inj}{1.001} % we might split it off \registerctxluafile{node-typ}{1.001} % experimental \newtoks \attributesresetlist \ifdefined \v!global \else \def\v!global{global} \fi % for metatex \unexpanded\def\defineattribute {\dodoubleempty\dodefineattribute} \def\dodefineattribute[#1][#2]% alternatively we can let lua do the housekeeping {\expandafter\newattribute\csname @attr@#1\endcsname \expandafter \xdef\csname :attr:#1\endcsname{\number\lastallocatedattribute}% \ctxlua{attributes.define("#1",\number\lastallocatedattribute)}% %\writestatus\m!systems{defining attribute #1 with number \number\lastallocatedattribute}% \doifnotinset\v!global{#2}{\appendetoks\csname @attr@#1\endcsname\attributeunsetvalue\to\attributesresetlist}} \unexpanded\def\definesystemattribute {\dodoubleempty\dodefinesystemattribute} \def\dodefinesystemattribute[#1][#2]% alternatively we can let lua do the housekeeping {\scratchcounter\ctxlua{tex.print(attributes.private("#1"))}\relax \global\expandafter\attributedef\csname @attr@#1\endcsname\scratchcounter \expandafter \xdef\csname :attr:#1\endcsname{\number\scratchcounter}% %\writestatus\m!systems{defining system attribute #1 with number \number\scratchcounter}% \doifnotinset\v!global{#2}{\appendetoks\csname @attr@#1\endcsname\attributeunsetvalue\to\attributesresetlist}} % expandable so we can \edef them for speed \def\dosetattribute#1#2{\csname @attr@#1\endcsname#2\relax} \def\doresetattribute#1{\csname @attr@#1\endcsname\attributeunsetvalue} \def\dogetattribute #1{\number\csname @attr@#1\endcsname} \def\dogetattributeid#1{\csname :attr:#1\endcsname} \let\dompattribute\gobbletwoarguments \def\resetallattributes{\the\attributesresetlist} \newcount\shownodescounter \def\shownextnodes {\afterassignment\doshownodes\shownextnodescounter} \def\showflatnodes {\afterassignment\doshownodes\showflatnodescounter} \def\doshownextnodes {\ctxlua{texio.write_nl('log',nodes.serializebox(\number\shownodescounter,false,true))}} \def\doshowflatnodes {\ctxlua{texio.write_nl('log',nodes.serializebox(\number\shownodescounter,true, true))}} \def\visualizenextnodes{\dowithnextbox{\ctxlua{nodes.visualizebox(\number\nextbox,false,true)}}} \def\visualizeflatnodes{\dowithnextbox{\ctxlua{nodes.visualizebox(\number\nextbox,true,true)}}} \unexpanded\def\starttracingnodes[#1]{\ctxlua{nodes.tracers.characters.start("#1")}} \unexpanded\def\stoptracingnodes {\ctxlua{nodes.tracers.characters.stop()}} % \starttext % \starttracingnodes[characters] % \input tufte \par % \input tufte \par % \stoptracingnodes % \stoptext \protect \endinput