46 lines
1.4 KiB
Plaintext
46 lines
1.4 KiB
Plaintext
# 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 <style foo="bar"> & <br> not highlighted </style>
|
|
state keyword = '<'+$SPECIAL begin
|
|
include "key_string.lang"
|
|
state keyword = '>' begin
|
|
keyword = '</'+$SPECIAL+'>' exit 2
|
|
normal = '[^<[:blank:]]+'
|
|
end
|
|
end
|
|
|
|
# title and textarea are similar, but entities are allowed
|
|
state keyword delim '<'+$SPECIAL2+'>' '</'+$SPECIAL2+'>' multiline begin
|
|
preproc = '&([[:alnum:]]+);'
|
|
normal = '[^<[:blank:]]+'
|
|
end
|
|
|
|
# if we encounter <plaintext> 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
|