\catcode‘\!=13
\HAssign\indexmark:N = 0
\immediate\openin15=\jobname.4ix
\ifeof15 \else
\Configure{wrindex}
{{\special{t4ht@(}\catcode‘\\=0 \catcode‘\{=1
\catcode‘\}=2 \catcode‘\ =10 \catcode‘\!=13
\def!{\c:indexmark\def!{\d:indexmark\def!{\string!}}}%
\gHAdvance\indexmark:N by 1
\def\indexmark##1##2{%
\ifnum \indexmark:N=##2 \special{t4ht@)}\a:indexmark
##1\b:indexmark\special{t4ht@(}\fi}%
\hbox{\input \jobname.4ix \special{t4ht@)}}%
}}
\fi
\catcode‘\!=12
\NewConfigure{indexmark}{4}
\Configure{indexmark}
{\HCode{<text:alphabetical-index-mark\Hnewline
text:id="dx\last:haddr"
text:string-value="}%
\NoFonts}
{\EndNoFonts \HCode{" />}}
{\HCode{" text:key1="}}
{\HCode{" text:key2="}}
-_-_-
\pend:def\index{\leavevmode}
-_-_-
The following two sample codes provide different behavior.
\documentclass[12pt]{article}
\usepackage{makeidx}
\makeindex
\begin{document}
\index{Hola: Hallo} Hola
\printindex
\end{document}
\documentclass{article}
\usepackage[frenchb]{babel}
\usepackage{makeidx}
\makeindex
\begin{document}
\begin{itemize}
\item \index{blabla} blabla
\item blabla
\end{itemize}
\end{document}