# this contains only html stuff, no javascript nor css # thus it can be used for inclusions in contexts such as javadoc # to avoid possible recursion problems # e.g., html uses javascript which uses doxygen which uses html... vardef SPECIAL= '(([sS][tT][yY][lL][eE])|(([nN][oO])?[sS][cC][rR][iI][pP][tT])|'+ '([xX][mM][pP])|([iI][fF][rR][aA][mM][eE])|'+ '([nN][oO][eE][mM][bB][eE][dD])|([nN][oO][fF][rR][aA][mM][eE][sS]))' vardef SPECIAL2= '(([tT][iI][tT][lL][eE])|([tT][eE][xX][tT][aA][rR][eE][aA]))' # we need to treat these differently because these elements # can't contain elements and entities # however, they can have attributes so we need to use # nested states # example
state keyword = '<'+$SPECIAL begin include "key_string.lang" state keyword = '>' begin keyword = '' exit 2 normal = '[^<[:blank:]]+' end end # title and textarea are similar, but entities are allowed state keyword delim '<'+$SPECIAL2+'>' '' multiline begin preproc = '&([[:alnum:]]+);' normal = '[^<[:blank:]]+' end # if we encounter

     everything else (up to the end of file)
    # will be highlighted as normal
    state keyword = '<[pP][lL][aA][iI][nN][tT][eE][xX][tT]>' begin
    	normal = '.+'
    end

    include "xml.lang"

    keyword = '<(/)?[[:alpha:]][[:alnum:]]*(/)?>'

    state keyword delim '<(/)?[[:alpha:]][[:alnum:]]*' '(/)?>' multiline begin
    	include "key_string.lang"
    end