4.12 Indexes
4.12.1 Article, Report, Book
\def\DB:index#1\indNum#2{%
\ifnum #2=\index:N
\let\DB:index=\relax #1\long\def\item##1\end{\end}%
\else \expandafter\gob:item \fi
}
\long\def\gob:item#1\item{\DB:index}
\let\indNum=\:gobble
-_-_-
\HAssign\index:N = 0
\def\comNum#1{\tmp:cnt=}
\let\db:index=\index
\def\index{%
\immediate\openin15=\jobname.ind
\ifeof15 \else
\immediate\closein15
\bgroup
\def\gobble##1{}%
\gHAdvance\index:N by 1
<.index entry.>%
\leavevmode \let\par=\empty
\input{\jobname.ind}%
\egroup
\fi
\db:index} -_-_-
4.12.2 index
\Configure{idxmake}{\Beforeentry}
-_-_-
\def\:temp{\HCode{<indexterm role="printindex" />}}
\HLet\printindex\:temp
\expandafter\ifx \csname db:index\endcsname\realx
\let\db:index=\index
\fi
\def\index{\bgroup
\HRestore\printindex
\def\gobble##1{}%
\gHAdvance\index:N by 1
<.index entry.>%
\leavevmode \let\par=\empty
\printindex
\egroup \db:index}
\def\comNum#1{\tmp:cnt=}
\def\brange#1{\HCode{<remark role="start">}\Link{to-#1}{from-#1}\EndLink
\HCode{</remark>}}
\def\erange#1{\HCode{<remark role="to">}\Link{from-#1}{to-#1}\EndLink
\HCode{</remark>}} -_-_-
\def\comNum{%
\def\:tempa{%
\ifx ,\:temp \def\:tempa####1{\tmp:cnt=}%
\else \ifx {\:temp \def\:tempa####1{\tmp:cnt=####1}%
\iffalse }\fi
\else \def\:tempa{\tmp:cnt=}%
\fi\fi \:tempa}%
\futurelet\:temp\:tempa}
4.12.3 theindex
\Configure{theindex}
{\special{t4ht@[}}
{\special{t4ht@]}}
{}{}{}{}{}{}{}
-_-_-
\Configure{see}
{\csname end:cur\endcsname \HCode{<seealso role="see">}}
{\HCode{</seealso>}%
\futurelet\:next\remove:comma}
\def\remove:comma{\ifx ,\:next \expandafter\:gobble\fi}
-_-_-
\HCode{</primary>}\hfil\break
-_-_-
\HCode{<secondary>}%
-_-_-
\HCode{</secondary>}\hfil\break
-_-_-
\HCode{</tertiary>}\hfil\break
-_-_-
4.12.4 splitindex
\let\db:sindex=\sindex
\def\:sindex{\bgroup
\HRestore\printindex
\def\gobble##1{}%
\gHAdvance\index:N by 1
\leavevmode \let\par=\empty
\edef\:temp{\LikeRef{printindex}}\expandafter\printindex\:temp
\egroup \db:sindex}
-_-_-
\def\:temp{%
\def\:tempa{%
\HCode{<indexterm role="printindex\ifx *\:temp -star\fi" />}%
\ifx *\:temp \Tag{printindex}{*}\expandafter\:gobble\fi
}%
\futurelet\:temp\:tempa
}
\HLet\printindex\:temp
-_-_-
\def\sindex{%
\def\:tempa{%
\ifx [\:temp
\def\:temp[####1]{\def\ind:ext{####1}\:sindex[####1]}%
\expandafter\:temp
\else \expandafter\:sindex \fi
}%
\futurelet\:temp\:tempa
}
\let\o:@@printindex:=\@@printindex
\def\@@printindex[#1][#2]{%
\def\:temp{#1}%
\ifx \:temp\ind:ext \o:@@printindex:[#1][#2]\fi}
-_-_-