\:CheckOption{-css} \if:Option \else
\Log:Note{to ignore CSS code, use the command line option ‘-css}
\:CheckOption{css-in} \if:Option
\Log:Note{the inline CSS code is extracted from the input of the
previous compilation, so an extra compilation might be needed}
\Configure{@HEAD}{<.css inline.>}
\else
\Log:Note{for inline CSS code, use the command line option ‘css-in’}
\Configure{@HEAD}{\HCode{<link
rel="stylesheet" type="text/css"
href="\aa:CssFile"\xml:empty>\Hnewline}}
\fi
\fi -_-_-
{\ifdim \lastskip>\z@ \unskip\fi \IgnorePar\parindent\z@
\leavevmode}%
\immediate\write-1{--- file \aa:CssFile\space ---}%
\ht:special{t4ht>\aa:CssFile}\ht:special{t4ht=\Hnewline /* css.sty */}%
\ht:special{t4ht<\aa:CssFile}%
-_-_-
\special are like \hbox, and they so they may introduve empty lines in vertical
mode. That might be a problem if we don’t want empty lines at the start of the files.
Hence, in latex we give them special treatment.
\ScriptCommand{\CssFile}{%
\immediate\write-1{--- file \aa:CssFile\space ---}%
\def\FontSize##1##2{\:Context{##1}\ht:special{t4ht;\%##2}\%}%
\def\FontName##1{\:Context{##1}\ht:special{t4ht;=}}%
\def\:Context##1{\ht:special{t4ht>\jobname.tmp}##1\ht:special
{t4ht>\aa:CssFile}}%
\ht:special{t4ht>\jobname.tmp}\ht:special{t4ht>\aa:CssFile}%
\bgroup \everypar{}\NoFonts \bb:CssFile \hfil\break}
{\egroup \EndNoFonts
\ht:special{t4ht<\aa:CssFile}\ht:special{t4ht<\jobname.tmp}}
\let\Css:File=\CssFile
\def\CssFile{\futurelet\:temp\Css:Fl}
\def\Css:Fl{\ifx [\:temp \expandafter\Css:fl
\else \expand:after{\Css:File \space}\fi}
\def\Css:fl[#1]{\Css:File\space \css:files #1,,<.par del.>}
\def\css:files#1,#2<.par del.>{\def\:temp{#1}\ifx \:temp\empty
\else \def\:temp{\in:css#1.<.par del.>\css:files#2,,<.par del.>}\fi
\:temp }
\def\in:css#1.#2<.par del.>{\def\:temp{#2}\ifx \:temp\empty
\inc:ss#1.css<.par del.>
\else \inc:ss#1.#2<.par del.>\fi}
\def\inc:ss#1.<.par del.>{<.input css file.> }
\NewConfigure{CssFile}[2]{\def\aa:CssFile{#1}\def\bb:CssFile{#2}} -_-_-
\immediate\openin15=#1
\ifeof15 \immediate\closein15
\:warning{Missing file: #1}%
\else \immediate\closein15 \input #1 \fi
-_-_-
\CssFile[file-name,filename.ext,..]...\EndCssFile.
Default file, just in case the user doesn’t provide one. If the user does, the
following file will be overwritten.
Can’t use below \a:CssFile and \b:CssFile, because \ScriptFile{\CssFile}
also needs them.
\Css changes its definition upon reachin \CssFile. The first definition is needed
within the sty files, and the info is sent to the lg file (where else it can be
sent?).
\def\Css#1{{\def\:temp{\Configure{Needs}}%
\expandafter\:temp\expandafter{\aa:Css}\Needs{#1}}}
-_-_-