diff options
Diffstat (limited to 'tex/context/base/mkiv/lxml-ini.mkxl')
-rw-r--r-- | tex/context/base/mkiv/lxml-ini.mkxl | 544 |
1 files changed, 0 insertions, 544 deletions
diff --git a/tex/context/base/mkiv/lxml-ini.mkxl b/tex/context/base/mkiv/lxml-ini.mkxl deleted file mode 100644 index e8d017bf3..000000000 --- a/tex/context/base/mkiv/lxml-ini.mkxl +++ /dev/null @@ -1,544 +0,0 @@ -%D \module -%D [ file=lxml-ini, -%D version=2007.08.17, -%D title=\CONTEXT\ \XML\ Support, -%D subtitle=Initialization, -%D author=Hans Hagen, -%D date=\currentdate, -%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] -%C -%C This module is part of the \CONTEXT\ macro||package and is -%C therefore copyrighted by \PRAGMA. See mreadme.pdf for -%C details. - -%D Todo: auto apply setups (manage at lua end) -%D Todo: manuak: \xmlinclusion \xmlinclusions - -\writestatus{loading}{ConTeXt XML Support / Initialization} - -%registerctxluafile{lxml-tab}{} % loader -%registerctxluafile{lxml-lpt}{} % parser -%registerctxluafile{lxml-xml}{} % xml finalizers -%registerctxluafile{lxml-aux}{} % extras using parser -%registerctxluafile{lxml-mis}{} % extras independent of parser -\registerctxluafile{lxml-ent}{} % entity hacks -\registerctxluafile{lxml-tex}{} % tex finalizers -\registerctxluafile{lxml-dir}{} % ctx hacks -\registerctxluafile{lxml-ini}{} % interface - -\unprotect - -% todo: { } mandate so that we can alias - -% undocumented: - -\def\ctxlxml #1{\ctxlua{lxml.#1}} - -% for now indirect .. this will change when we have updated luatex (scan_argument) - -\permanent\def\xmlconcat #1#2#3{\clf_xmlconcat {#1}{#2}{\detokenize{#3}}} -\permanent\def\xmlconcatrange #1#2#3#4#5{\clf_xmlconcatrange{#1}{#2}{#3}{#4}{\detokenize{#5}}} - -%D Maybe I should add \type {\protected} here: - -\permanent\def\xmlloadfile #1#2{\clf_xmlloadfile {#1}{#2}{\directxmlparameter\c!compress}} -\permanent\def\xmlloadbuffer#1#2{\clf_xmlloadbuffer{#1}{#2}{\directxmlparameter\c!compress}} -\permanent\def\xmlloaddata #1#2{\clf_xmlloaddata {#1}{#2}{\directxmlparameter\c!compress}} - -\aliased\let\xmlload\xmlloadfile - -% aliased - -%let\xmlall \clf_xmlall -%let\xmlatt \clf_xmlatt -%let\xmlattdef \clf_xmlattdef -%let\xmlattribute \clf_xmlattribute -%let\xmlattributedef \clf_xmlattributedef -%let\xmlbadinclusions \clf_xmlbadinclusions -%let\xmlchainatt \clf_xmlchainatt -%let\xmlchainattdef \clf_xmlchainattdef -%let\xmlchecknamespace \clf_xmlchecknamespace -%let\xmlcommand \clf_xmlcommand -%let\xmlcontext \clf_xmlcontext -%let\xmlcount \clf_xmlcount -%let\xmldelete \clf_xmldelete -%let\xmldirect \clf_xmldirect % in loops, not dt but root -%let\xmldirectives \clf_xmldirectives -%let\xmldirectivesafter \clf_xmldirectivesafter -%let\xmldirectivesbefore \clf_xmldirectivesbefore -%let\xmldisplayverbatim \clf_xmldisplayverbatim -%let\xmlelement \clf_xmlelement -%let\xmlfilter \clf_xmlfilter -%let\xmlfilterlist \clf_xmlfilterlist -%let\xmlfirst \clf_xmlfirst -%let\xmlflush \clf_xmlflush -%let\xmlflushcontext \clf_xmlflushcontext -%let\xmlflushlinewise \clf_xmlflushlinewise -%let\xmlflushpure \clf_xmlflushpure -%let\xmlflushspacewise \clf_xmlflushspacewise -%let\xmlflushtext \clf_xmlflushtext -%let\xmlfunction \clf_xmlfunction -%let\xmlinclude \clf_xmlinclude -%let\xmlincludeoptions \clf_xmlincludeoptions -%let\xmlinclusion \clf_xmlinclusion -%let\xmlinclusionbase \clf_xmlinclusionbase -%let\xmlinclusions \clf_xmlinclusions -%let\xmlindex \clf_xmlindex -%let\xmlinlineverbatim \clf_xmlinlineverbatim -%let\xmllast \clf_xmllast -%let\xmllastatt \clf_xmllastatt -%let\xmllastmatch \clf_xmllastmatch -%let\xmllastpar \clf_xmllastpar -%let\xmlloaddirectives \clf_xmlloaddirectives -%let\xmlmain \clf_xmlmain -%let\xmlmatch \clf_xmlmatch -%let\xmlname \clf_xmlname -%let\xmlnamespace \clf_xmlnamespace -%let\xmlnonspace \clf_xmlnonspace -%let\xmlpar \clf_xmlpar -%let\xmlparam \clf_xmlparam -%let\xmlpath \clf_xmlpath -%let\xmlpopmatch \clf_xmlpopmatch -%let\xmlpos \clf_xmlpos -%let\xmlpure \clf_xmlpure -%let\xmlpushmatch \clf_xmlpushmatch -%let\xmlraw \clf_xmlraw -%let\xmlrefatt \clf_xmlrefatt -%let\xmlregisterns \clf_xmlregisterns % document -%let\xmlremapname \clf_xmlremapname % element -%let\xmlremapnamespace \clf_xmlremapnamespace % document -%let\xmlsave \clf_xmlsave -%let\xmlsetatt \clf_xmlsetatt -%let\xmlsetattribute \clf_xmlsetattribute -%let\xmlsetpar \clf_xmlsetpar -%let\xmlsetparam \clf_xmlsetparam -%let\xmlsetsetup \clf_xmlsetsetup -%let\xmlsnippet \clf_xmlsnippet -%let\xmlstrip \clf_xmlstrip -%let\xmlstripanywhere \clf_xmlstripanywhere -%let\xmlstripnolines \clf_xmlstripnolines -%let\xmlstripped \clf_xmlstripped -%let\xmlstrippednolines \clf_xmlstrippednolines -%let\xmltag \clf_xmltag -%let\xmltext \clf_xmltext -%let\xmltobuffer \clf_xmltobuffer % id pattern name -%let\xmltobuffertextonly \clf_xmltobuffertextonly % id pattern name -%let\xmltobufferverbose \clf_xmltobufferverbose % id pattern name -%let\xmltofile \clf_xmltofile % id pattern filename -%let\xmltoparameters \clf_xmltoparameters -%let\xmlverbatim \clf_xmlverbatim - -\let\xmlposition \xmlindex - -\permanent\protected\def\xmlinfo#1{\hbox{\ttxx[\xmlname{#1}]}} -\permanent\protected\def\xmlshow#1{\startpacked\ttx\xmlverbatim{#1}\stoppacked} - -% the next one is handy for mode runs because it enforces a consistent -% #1 indexing (needed when using \xmltext{main:123}{...} like calls - -%let\xmladdindex \clf_xmladdindex - -% we need to pass the last argument as function, so - -\protected\def\xmlsetfunction#1#2#3{\ctxcommand{xmlsetfunction("#1",\!!bs#2\!!es,#3)}} - -% goodie: - -\immutable\def\xmltempbuffername{xml-temp} - -\permanent\protected\def\prettyprintbuffer#1#2% only used here - {\ifdefined\scitebuffer - \scitebuffer[#2][#1]% - \else - \typebuffer[#1][\c!option=#2]% - \fi} - -\permanent\protected\def\xmlprettyprint#1#2% - {\xmltobufferverbose{#1}{.}{\xmltempbuffername}% - \prettyprintbuffer\xmltempbuffername{#2}} - -\permanent\protected\def\xmlprettyprinttext#1#2% - {\xmltobuffertextonly{#1}{.}{\xmltempbuffername}% - \prettyprintbuffer\xmltempbuffername{#2}} - -\permanent\protected\def\inlineprettyprintbuffer#1#2% only used here - {\ifdefined\sciteinlinebuffer - \sciteinlinebuffer[#2][#1]% - \else - \typeinlinebuffer[#1][\c!option=#2]% - \fi} - -\permanent\protected\def\xmlinlineprettyprint#1#2% - {\xmltobufferverbose{#1}{.}{\xmltempbuffername}% - \inlineprettyprintbuffer\xmltempbuffername{#2}} - -\permanent\protected\def\xmlinlineprettyprinttext#1#2% - {\xmltobuffertextonly{#1}{.}{\xmltempbuffername}% - \inlineprettyprintbuffer\xmltempbuffername{#2}} - -% kind of special: - -\aliased\let\xmlstartraw\clf_xmlstartraw -\aliased\let\xmlstopraw \clf_xmlstopraw - -\aliased\let\startxmlraw\clf_xmlstartraw -\aliased\let\stopxmlraw \clf_xmlstopraw - -% these are expandable! todo: \xmldoifelseattribute - -%let\xmldoif \clf_xmldoif -%let\xmldoifnot \clf_xmldoifnot -%let\xmldoifelse \clf_xmldoifelse -%let\xmldoiftext \clf_xmldoiftext -%let\xmldoifnottext \clf_xmldoifnottext -%let\xmldoifelsetext \clf_xmldoifelsetext - -%let\xmldoifatt \clf_xmldoifatt -%let\xmldoifnotatt \clf_xmldoifnotatt -%let\xmldoifelseatt \clf_xmldoifelseatt - -%let\xmldoifempty \clf_xmldoifempty -%let\xmldoifnotempty \clf_xmldoifnotempty -%let\xmldoifelseempty \clf_xmldoifelseempty -%let\xmldoifselfempty \clf_xmldoifselfempty -%let\xmldoifnotselfempty \clf_xmldoifnotselfempty -%let\xmldoifelseselfempty \clf_xmldoifelseselfempty - -\aliased\let\xmldoiftextelse \xmldoifelsetext -\aliased\let\xmldoifemptyelse \xmldoifelseempty -\aliased\let\xmldoifselfemptyelse \xmldoifelseselfempty - -% \startxmlsetups xml:include -% \xmlinclude{main}{include}{filename|href} -% \stopxmlsetups -% -% \xmlprependsetup{xml:include} - -% \let\xmlgrab\xmlsetsetup % obsolete -% \let\xmlself\s!unknown % obsolete - -\aliased\let\xmlsetup\setupwithargumentswapped -\aliased\let\xmls \setupwithargumentswapped % hardly any faster -\aliased\let\xmlw \setupwithargument % hardly any faster - -% todo: 1:xml:whatever always before 3:xml:something - -\permanent\protected\def\xmlprependsetup #1{\clf_xmlprependsetup{*}{#1}} -\permanent\protected\def\xmlappendsetup #1{\clf_xmlappendsetup {*}{#1}} -\permanent\protected\def\xmlbeforesetup #1#2{\clf_xmlbeforesetup {*}{#1}{#2}} -\permanent\protected\def\xmlaftersetup #1#2{\clf_xmlaftersetup {*}{#1}{#2}} -\permanent\protected\def\xmlremovesetup #1{\clf_xmlremovesetup {*}{#1}} -\permanent\protected\def\xmlresetsetups {\clf_xmlresetsetups {*}} - -\permanent\protected\def\xmlprependdocumentsetup #1#2{\clf_xmlprependsetup{#1}{#2}} -\permanent\protected\def\xmlappenddocumentsetup #1#2{\clf_xmlappendsetup {#1}{#2}} -\permanent\protected\def\xmlbeforedocumentsetup #1#2#3{\clf_xmlbeforesetup {#1}{#2}{#3}} -\permanent\protected\def\xmlafterdocumentsetup #1#2#3{\clf_xmlaftersetup {#1}{#2}{#3}} -\permanent\protected\def\xmlremovedocumentsetup #1#2{\clf_xmlremovesetup {#1}{#2}} -\permanent\protected\def\xmlresetdocumentsetups #1{\clf_xmlresetsetups {#1}} - -\permanent\protected\def\xmlflushsetups #1{\clf_xmlflushsetups {#1}{*}{}} % #1 == id where to apply * -\permanent\protected\def\xmlflushdocumentsetups #1#2{\clf_xmlflushsetups {#1}{*}{#2}} % #1 == id where to apply * and #2 - -\aliased\let\xmlregistersetup \xmlappendsetup -\aliased\let\xmlregisterdocumentsetup\xmlappenddocumentsetup - -\def\xmldocument{main} - -\permanent\protected\def\xmlregisteredsetups - {\xmlstarttiming - \xmlflushsetups\xmldocument - \xmldefaulttotext\xmldocument % after include - \xmlstoptiming} - -\permanent\protected\def\xmlregistereddocumentsetups#1#2% id setups - {\xmlstarttiming - % todo: test for duplicates ! - \xmlflushdocumentsetups{#1}{#2}% - \xmldefaulttotext{#1}% after include - \xmlstoptiming} - -\permanent\protected\def\xmlstarttiming{\clf_xmlstarttiming} % undocumented -\permanent\protected\def\xmlstoptiming {\clf_xmlstoptiming} % undocumented - -\def\lxml_process#1#2#3#4#5% flag \loader id name what initializersetup - {\begingroup - \edef\xmldocument{#3}% #2 can be \xmldocument and set as such - %xmlpushdocument{#3}% - #2{#3}{#4}% - \setcatcodetable\notcatcodes - \doifelsenothing{#5}% - {\xmlsetup{#3}{xml:process}}% - {\xmlsetup{#3}{#5}}% - %xmlpopdocument - \endgroup} - -\permanent\protected\def\xmlprocessfile {\lxml_process\plusone \xmlload} -\permanent\protected\def\xmlprocessdata {\lxml_process\zerocount\xmlloaddata} -\permanent\protected\def\xmlprocessbuffer{\lxml_process\zerocount\xmlloadbuffer} -\aliased \let\xmlprocess \xmlprocessfile - -\startxmlsetups xml:flush - \xmlflush{#1} -\stopxmlsetups - -\startxmlsetups xml:process - \xmlregistereddocumentsetups{#1}{#1} - \xmlmain{#1} -\stopxmlsetups - -\permanent\protected\def\xmlloadonly#1#2#3% - {\xmlload{#1}{#2}% - \xmlregistereddocumentsetups{#1}{#3}} - -% replaced by concat -% -% \protected\def\xmlconnect#1#2#3% inefficient -% {\scratchcounter\xmlcount{#1}{#2}\relax -% \ifcase\scratchcounter \or -% \xmlall{#1}{#2}% -% \else -% \dorecurse \scratchcounter -% {\ifnum\recurselevel>\plusone#3\fi -% \xmlidx{#1}{#2}\recurselevel}% -% \fi} - -\permanent\protected\def\xmlcdataobeyedline {\obeyedline} -\permanent\protected\def\xmlcdataobeyedspace{\strut\obeyedspace} -\permanent\protected\def\xmlcdatabefore {\begingroup\tt} -\permanent\protected\def\xmlcdataafter {\endgroup} - -% verbatim (dodo:pre/post whitespace, maybe splot verbatim and -% cdata commands), experimental: -% -% \xmlsetfunction{main}{verbatim}{lxml.displayverbatim} -% \xmlsetfunction{main}{verb} {lxml.inlineverbatim} - -% we use an xml: namespace so one has to define a suitable verbatim, say -% -% \definetyping[xml:verbatim][typing] -% -% this is experimental! - -\permanent\tolerant\protected\def\startxmldisplayverbatim[#1]% - {\startpacked - \edef\currenttyping{#1}% - \ifempty\currenttyping - \let\currenttyping\v!typing - \else % maybe test for existence - \edef\currenttyping{xml:\currenttyping}% - \fi - \protected\def\stopxmldisplayverbatim - {\endofverbatimlines - \stoppacked}% - \doinitializeverbatim - \beginofverbatimlines} - -\let\stopxmldisplayverbatim\relax - -\permanent\tolerant\protected\def\startxmlinlineverbatim[#1]% - {\begingroup - \edef\currenttype{#1}% - \ifempty\currenttype - \let\currenttype\v!type - \else % maybe test for existence - \edef\currenttype{xml:\currenttype}% - \fi - \let\stopxmlinlineverbatim\endgroup - \doinitializeverbatim} - -\let\stopxmlinlineverbatim\relax - -% processing instructions - -\permanent\protected\def\xmlinstalldirective#1#2% - {\clf_xmlinstalldirective{#1}{\csstring#2}} - -% an example: - -% <?context-tex-directive bgroup ?> - -\appendtoks - \xmlinstalldirective{tex}{xmltexcommand}% -\to \everyjob - -\permanent\def\xmltexcommand#1{\begincsname#1\endcsname} - -% \def\xmlcontextdirective#1% kind class key value -% {\executeifdefined{xml#1directive}\gobblethreearguments} - -% setting up xml: -% -% \setupxml[\c!default=] % mkiv only == text -% \setupxml[\c!default=\v!none] % mkiv only, undefined -> hidden -% \setupxml[\c!default=\v!text] % mkiv only, undefined -> text - -% \def\xmlctxdirective#1#2#3{\doif{#1}{clue}{\doif{#2}{page}}{\page[#3]}} - -\newconstant\xmlprocessingmode % 0=unset, 1=text, 2=hidden - -\installcorenamespace{xml} -\installcorenamespace{xmldefaults} -\installcorenamespace{xmlmapvalue} - -\installdirectcommandhandler \??xml {xml} - -\letvalue{\??xmldefaults\v!normal}\zerocount -\letvalue{\??xmldefaults\v!none }\zerocount -\letvalue{\??xmldefaults\v!text }\plusone -\letvalue{\??xmldefaults\v!hidden}\plustwo - -\permanent\protected\def\xmldefaulttotext - {\ifcase\xmlprocessingmode - \expandafter\gobbleoneargument % 0 (none) - \or - \expandafter\clf_xmlsetcommandtotext % 1 (normal) - \or - \expandafter\clf_xmlsetcommandtonone % 2 (hidden) - \else - \expandafter\gobbleoneargument % (none) - \fi} - -\appendtoks - \xmlprocessingmode\executeifdefined{\??xmldefaults\directxmlparameter\c!default}\plusone -\to \everysetupxml - -\setupxml - [\c!default=, % flush all - \c!compress=\v!no, % strip comment - \c!entities=\v!no] % load big entity file - -\appendtoks - \doif{\directxmlparameter\c!entities}\v!yes\clf_xmlloadentities -\to \everysetupxml - -\permanent\def\xmlmapvalue #1#2#3{\setvalue{\??xmlmapvalue#1:#2}{#3}} % keep #3 to grab spaces -\permanent\def\xmldoifelsevalue #1#2{\ifcsname\??xmlmapvalue#1:#2\endcsname\expandafter\firstoftwoarguments\else\expandafter\secondoftwoarguments\fi} - -\permanent\def\xmlvalue#1#2% #3 - {\ifcsname\??xmlmapvalue#1:#2\endcsname - \expandafter\expandafter\expandafter\lastnamedcs\expandafter\gobbleoneargument - \else - \expandafter\firstofoneargument - \fi} - -\permanent\def\xmlmappedvalue#1#2#3% - {\ifcsname\??xmlmapvalue#1:#2\endcsname - \expandafter\lastnamedcs - \else - \csname\??xmlmapvalue#1:#3\expandafter\endcsname - \fi} - -\aliased\let\xmldoifvalueelse\xmldoifelsevalue - -\aliased\let\xmlmapval\xmlmapvalue -\aliased\let\xmlval \xmlvalue - -%D Experimental: - -\permanent\def\xmlgetindex #1{\clf_xmlgetindex {\xmldocument}{#1}} -\permanent\def\xmlwithindex #1#2{\clf_xmlwithindex{\xmldocument}{#1}{#2}} -\permanent\def\xmlreference #1#2{\string\xmlwithindex{#1}{#2}} - -%D Entities: -%D -%D \starttyping -%D \xmlsetentity{tex}{\TEX{}} % {} needed -%D \stoptyping - -\permanent\protected\def\xmlsetentity#1#2{\clf_xmlsetentity{#1}{\detokenize{#2}}} -\permanent\protected\def\xmltexentity#1#2{\clf_xmltexentity{#1}{\detokenize{#2}}} - -%D The following might change (or even disappear) so we keep it undocumented. - -\setnewconstant\xmlautoentities\plusone % 0=off, 1=upper, 2=upper,lower - -\permanent\protected\def\xmle - {\ifcase\xmlautoentities - \expandafter\lxml_e_none - \or - \expandafter\lxml_e_upper - \or - \expandafter\lxml_e_upperlower - \else - \expandafter\lxml_e_none - \fi} - -\def\lxml_e_none#1#2% safe - {#1} - -\def\lxml_e_upper#1#2% can be abbreviation - {\ifcsname#2\endcsname - \csname#2\expandafter\endcsname - \else - #1% - \fi} - -\def\lxml_e_upperlower#1#2% can be anything, so unsafe - {\ifcsname#2\endcsname - \csname#2\expandafter\endcsname - \orelse\ifcsname#1\endcsname - \csname#1\expandafter\endcsname - \else - #1% - \fi} - -%D We keep these around as there are also MP, LUA and TEX variants but they are not -%D the same as in \MKII. - -\permanent\tolerant\protected\def\processXMLbuffer[#1]{\xmlprocessbuffer{temp}{#1}{}} -\permanent \protected\def\processXMLfile #1{\xmlprocessfile {temp}{#1}{}} -\permanent \protected\def\XMLdata #1{\xmlprocessdata {temp}{#1}{}} - -\aliased\let\processxmlbuffer\processXMLbuffer -\aliased\let\processxmlfile \processXMLfile -\aliased\let\xmldata \XMLdata - -\permanent\protected\def\xmlsetinjectors [#1]{\clf_xmlsetinjectors{#1}} -\permanent\protected\def\xmlresetinjectors {\clf_xmlresetinjectors{}} - -% \def\xmlinjector#1{\executeifdefined{#1}\donothing} - -\permanent\def\xmlinjector#1{\fastsetup{xml:directive:injector:#1}} - -\startsetups xml:directive:injector:page - \page -\stopsetups - -\startsetups xml:directive:injector:column - \column -\stopsetups - -\startsetups xml:directive:injector:blank - \blank -\stopsetups - -\startsetups xml:directive:injector:noline - \vskip-\lineheight -\stopsetups - -\aliased\let\xmlapplyselectors\clf_xmlapplyselectors - -% \let\xmlcatcodes\notcatcodes - -\protect \endinput - -% \newcount\charactersactiveoffset \charactersactiveoffset="10000 -% -% \startextendcatcodetable\ctxcatcodes -% \catcode\numexpr\charactersactiveoffset+`<\relax=13 -% \catcode\numexpr\charactersactiveoffset+`&\relax=13 -% \catcode\numexpr\charactersactiveoffset+`>\relax=13 -% \stopextendcatcodetable -% -% \startextendcatcodetable\xmlcatcodes % not needed -% \catcode\numexpr\charactersactiveoffset+`<\relax=13 -% \catcode\numexpr\charactersactiveoffset+`&\relax=13 -% \catcode\numexpr\charactersactiveoffset+`>\relax=13 -% \stopextendcatcodetable -% -% \ctxlua { % entities are remembered in the format -% commands.remapentity("<",characters.activeoffset + utf.byte("<")) -% commands.remapentity("&",characters.activeoffset + utf.byte("&")) -% commands.remapentity(">",characters.activeoffset + utf.byte(">")) -% } |