From 04087889001f34fda4724769b6d994013866d6ef Mon Sep 17 00:00:00 2001 From: Naldo DJ Date: Thu, 14 Apr 2022 10:08:07 -0300 Subject: [PATCH 01/19] New HTML Features --- contrib/hbtip/thtml.ch | 602 +++++++++++------ contrib/hbtip/thtml.prg | 1361 ++++++++++++++------------------------- 2 files changed, 896 insertions(+), 1067 deletions(-) diff --git a/contrib/hbtip/thtml.ch b/contrib/hbtip/thtml.ch index fac65d8d68..2f1ab4549c 100644 --- a/contrib/hbtip/thtml.ch +++ b/contrib/hbtip/thtml.ch @@ -80,210 +80,408 @@ /* Constants for HTML attributes adopted from Tidy library */ -#define HTML_ATTR_ABBR 1 -#define HTML_ATTR_ACCEPT 2 -#define HTML_ATTR_ACCEPT_CHARSET 3 -#define HTML_ATTR_ACCESSKEY 4 -#define HTML_ATTR_ACTION 5 -#define HTML_ATTR_ADD_DATE 6 -#define HTML_ATTR_ALIGN 7 -#define HTML_ATTR_ALINK 8 -#define HTML_ATTR_ALT 9 -#define HTML_ATTR_ARCHIVE 10 -#define HTML_ATTR_AXIS 11 -#define HTML_ATTR_BACKGROUND 12 -#define HTML_ATTR_BGCOLOR 13 -#define HTML_ATTR_BGPROPERTIES 14 -#define HTML_ATTR_BORDER 15 -#define HTML_ATTR_BORDERCOLOR 16 -#define HTML_ATTR_BOTTOMMARGIN 17 -#define HTML_ATTR_CELLPADDING 18 -#define HTML_ATTR_CELLSPACING 19 -#define HTML_ATTR_CHAR 20 -#define HTML_ATTR_CHAROFF 21 -#define HTML_ATTR_CHARSET 22 -#define HTML_ATTR_CHECKED 23 -#define HTML_ATTR_CITE 24 -#define HTML_ATTR_CLASS 25 -#define HTML_ATTR_CLASSID 26 -#define HTML_ATTR_CLEAR 27 -#define HTML_ATTR_CODE 28 -#define HTML_ATTR_CODEBASE 29 -#define HTML_ATTR_CODETYPE 30 -#define HTML_ATTR_COLOR 31 -#define HTML_ATTR_COLS 32 -#define HTML_ATTR_COLSPAN 33 -#define HTML_ATTR_COMPACT 34 -#define HTML_ATTR_CONTENT 35 -#define HTML_ATTR_COORDS 36 -#define HTML_ATTR_DATA 37 -#define HTML_ATTR_DATAFLD 38 -#define HTML_ATTR_DATAFORMATAS 39 -#define HTML_ATTR_DATAPAGESIZE 40 -#define HTML_ATTR_DATASRC 41 -#define HTML_ATTR_DATETIME 42 -#define HTML_ATTR_DECLARE 43 -#define HTML_ATTR_DEFER 44 -#define HTML_ATTR_DIR 45 -#define HTML_ATTR_DISABLED 46 -#define HTML_ATTR_ENCODING 47 -#define HTML_ATTR_ENCTYPE 48 -#define HTML_ATTR_EVENT 49 -#define HTML_ATTR_FACE 50 -#define HTML_ATTR_FOR 51 -#define HTML_ATTR_FRAME 52 -#define HTML_ATTR_FRAMEBORDER 53 -#define HTML_ATTR_FRAMESPACING 54 -#define HTML_ATTR_GRIDX 55 -#define HTML_ATTR_GRIDY 56 -#define HTML_ATTR_HEADERS 57 -#define HTML_ATTR_HEIGHT 58 -#define HTML_ATTR_HREF 59 -#define HTML_ATTR_HREFLANG 60 -#define HTML_ATTR_HSPACE 61 -#define HTML_ATTR_HTTP_EQUIV 62 -#define HTML_ATTR_ID 63 -#define HTML_ATTR_ISMAP 64 -#define HTML_ATTR_LABEL 65 -#define HTML_ATTR_LANG 66 -#define HTML_ATTR_LANGUAGE 67 -#define HTML_ATTR_LAST_MODIFIED 68 -#define HTML_ATTR_LAST_VISIT 69 -#define HTML_ATTR_LEFTMARGIN 70 -#define HTML_ATTR_LINK 71 -#define HTML_ATTR_LONGDESC 72 -#define HTML_ATTR_LOWSRC 73 -#define HTML_ATTR_MARGINHEIGHT 74 -#define HTML_ATTR_MARGINWIDTH 75 -#define HTML_ATTR_MAXLENGTH 76 -#define HTML_ATTR_MEDIA 77 -#define HTML_ATTR_METHOD 78 -#define HTML_ATTR_METHODS 79 -#define HTML_ATTR_MULTIPLE 80 -#define HTML_ATTR_N 81 -#define HTML_ATTR_NAME 82 -#define HTML_ATTR_NOHREF 83 -#define HTML_ATTR_NORESIZE 84 -#define HTML_ATTR_NOSHADE 85 -#define HTML_ATTR_NOWRAP 86 -#define HTML_ATTR_OBJECT 87 -#define HTML_ATTR_ONAFTERUPDATE 88 -#define HTML_ATTR_ONBEFOREUNLOAD 89 -#define HTML_ATTR_ONBEFOREUPDATE 90 -#define HTML_ATTR_ONBLUR 91 -#define HTML_ATTR_ONCHANGE 92 -#define HTML_ATTR_ONCLICK 93 -#define HTML_ATTR_ONDATAAVAILABLE 94 -#define HTML_ATTR_ONDATASETCHANGED 95 -#define HTML_ATTR_ONDATASETCOMPLETE 96 -#define HTML_ATTR_ONDBLCLICK 97 -#define HTML_ATTR_ONERRORUPDATE 98 -#define HTML_ATTR_ONFOCUS 99 -#define HTML_ATTR_ONKEYDOWN 100 -#define HTML_ATTR_ONKEYPRESS 101 -#define HTML_ATTR_ONKEYUP 102 -#define HTML_ATTR_ONLOAD 103 -#define HTML_ATTR_ONMOUSEDOWN 104 -#define HTML_ATTR_ONMOUSEMOVE 105 -#define HTML_ATTR_ONMOUSEOUT 106 -#define HTML_ATTR_ONMOUSEOVER 107 -#define HTML_ATTR_ONMOUSEUP 108 -#define HTML_ATTR_ONRESET 109 -#define HTML_ATTR_ONROWENTER 110 -#define HTML_ATTR_ONROWEXIT 111 -#define HTML_ATTR_ONSELECT 112 -#define HTML_ATTR_ONSUBMIT 113 -#define HTML_ATTR_ONUNLOAD 114 -#define HTML_ATTR_PROFILE 115 -#define HTML_ATTR_PROMPT 116 -#define HTML_ATTR_RBSPAN 117 -#define HTML_ATTR_READONLY 118 -#define HTML_ATTR_REL 119 -#define HTML_ATTR_REV 120 -#define HTML_ATTR_RIGHTMARGIN 121 -#define HTML_ATTR_ROWS 122 -#define HTML_ATTR_ROWSPAN 123 -#define HTML_ATTR_RULES 124 -#define HTML_ATTR_SCHEME 125 -#define HTML_ATTR_SCOPE 126 -#define HTML_ATTR_SCROLLING 127 -#define HTML_ATTR_SDAFORM 128 -#define HTML_ATTR_SDAPREF 129 -#define HTML_ATTR_SDASUFF 130 -#define HTML_ATTR_SELECTED 131 -#define HTML_ATTR_SHAPE 132 -#define HTML_ATTR_SHOWGRID 133 -#define HTML_ATTR_SHOWGRIDX 134 -#define HTML_ATTR_SHOWGRIDY 135 -#define HTML_ATTR_SIZE 136 -#define HTML_ATTR_SPAN 137 -#define HTML_ATTR_SRC 138 -#define HTML_ATTR_STANDBY 139 -#define HTML_ATTR_START 140 -#define HTML_ATTR_STYLE 141 -#define HTML_ATTR_SUMMARY 142 -#define HTML_ATTR_TABINDEX 143 -#define HTML_ATTR_TARGET 144 -#define HTML_ATTR_TEXT 145 -#define HTML_ATTR_TITLE 146 -#define HTML_ATTR_TOPMARGIN 147 -#define HTML_ATTR_TYPE 148 -#define HTML_ATTR_UNKNOWN 149 -#define HTML_ATTR_URN 150 -#define HTML_ATTR_USEMAP 151 -#define HTML_ATTR_VALIGN 152 -#define HTML_ATTR_VALUE 153 -#define HTML_ATTR_VALUETYPE 154 -#define HTML_ATTR_VERSION 155 -#define HTML_ATTR_VLINK 156 -#define HTML_ATTR_VSPACE 157 -#define HTML_ATTR_WIDTH 158 -#define HTML_ATTR_WRAP 159 -#define HTML_ATTR_XMLNS 160 -#define HTML_ATTR_XML_LANG 161 -#define HTML_ATTR_XML_SPACE 162 +#define HTML_ATTR_ABBR 1 +#define HTML_ATTR_ACCEPT 2 +#define HTML_ATTR_ACCEPT_CHARSET 3 +#define HTML_ATTR_ACCESSKEY 4 +#define HTML_ATTR_ACTION 5 +#define HTML_ATTR_ADD_DATE 6 +#define HTML_ATTR_ALIGN 7 +#define HTML_ATTR_ALINK 8 +#define HTML_ATTR_ALT 9 +#define HTML_ATTR_ARCHIVE 10 +#define HTML_ATTR_AXIS 11 +#define HTML_ATTR_BACKGROUND 12 +#define HTML_ATTR_BGCOLOR 13 +#define HTML_ATTR_BGPROPERTIES 14 +#define HTML_ATTR_BORDER 15 +#define HTML_ATTR_BORDERCOLOR 16 +#define HTML_ATTR_BOTTOMMARGIN 17 +#define HTML_ATTR_CELLPADDING 18 +#define HTML_ATTR_CELLSPACING 19 +#define HTML_ATTR_CHAR 20 +#define HTML_ATTR_CHAROFF 21 +#define HTML_ATTR_CHARSET 22 +#define HTML_ATTR_CHECKED 23 +#define HTML_ATTR_CITE 24 +#define HTML_ATTR_CLASS 25 +#define HTML_ATTR_CLASSID 26 +#define HTML_ATTR_CLEAR 27 +#define HTML_ATTR_CODE 28 +#define HTML_ATTR_CODEBASE 29 +#define HTML_ATTR_CODETYPE 30 +#define HTML_ATTR_COLOR 31 +#define HTML_ATTR_COLS 32 +#define HTML_ATTR_COLSPAN 33 +#define HTML_ATTR_COMPACT 34 +#define HTML_ATTR_CONTENT 35 +#define HTML_ATTR_COORDS 36 +#define HTML_ATTR_DATA 37 +#define HTML_ATTR_DATAFLD 38 +#define HTML_ATTR_DATAFORMATAS 39 +#define HTML_ATTR_DATAPAGESIZE 40 +#define HTML_ATTR_DATASRC 41 +#define HTML_ATTR_DATETIME 42 +#define HTML_ATTR_DECLARE 43 +#define HTML_ATTR_DEFER 44 +#define HTML_ATTR_DIR 45 +#define HTML_ATTR_DISABLED 46 +#define HTML_ATTR_ENCODING 47 +#define HTML_ATTR_ENCTYPE 48 +#define HTML_ATTR_EVENT 49 +#define HTML_ATTR_FACE 50 +#define HTML_ATTR_FOR 51 +#define HTML_ATTR_FRAME 52 +#define HTML_ATTR_FRAMEBORDER 53 +#define HTML_ATTR_FRAMESPACING 54 +#define HTML_ATTR_GRIDX 55 +#define HTML_ATTR_GRIDY 56 +#define HTML_ATTR_HEADERS 57 +#define HTML_ATTR_HEIGHT 58 +#define HTML_ATTR_HREF 59 +#define HTML_ATTR_HREFLANG 60 +#define HTML_ATTR_HSPACE 61 +#define HTML_ATTR_HTTP_EQUIV 62 +#define HTML_ATTR_ID 63 +#define HTML_ATTR_ISMAP 64 +#define HTML_ATTR_LABEL 65 +#define HTML_ATTR_LANG 66 +#define HTML_ATTR_LANGUAGE 67 +#define HTML_ATTR_LAST_MODIFIED 68 +#define HTML_ATTR_LAST_VISIT 69 +#define HTML_ATTR_LEFTMARGIN 70 +#define HTML_ATTR_LINK 71 +#define HTML_ATTR_LONGDESC 72 +#define HTML_ATTR_LOWSRC 73 +#define HTML_ATTR_MARGINHEIGHT 74 +#define HTML_ATTR_MARGINWIDTH 75 +#define HTML_ATTR_MAXLENGTH 76 +#define HTML_ATTR_MEDIA 77 +#define HTML_ATTR_METHOD 78 +#define HTML_ATTR_METHODS 79 +#define HTML_ATTR_MULTIPLE 80 +#define HTML_ATTR_N 81 +#define HTML_ATTR_NAME 82 +#define HTML_ATTR_NOHREF 83 +#define HTML_ATTR_NORESIZE 84 +#define HTML_ATTR_NOSHADE 85 +#define HTML_ATTR_NOWRAP 86 +#define HTML_ATTR_OBJECT 87 +#define HTML_ATTR_ONAFTERUPDATE 88 +#define HTML_ATTR_ONBEFOREUNLOAD 89 +#define HTML_ATTR_ONBEFOREUPDATE 90 +#define HTML_ATTR_ONBLUR 91 +#define HTML_ATTR_ONCHANGE 92 +#define HTML_ATTR_ONCLICK 93 +#define HTML_ATTR_ONDATAAVAILABLE 94 +#define HTML_ATTR_ONDATASETCHANGED 95 +#define HTML_ATTR_ONDATASETCOMPLETE 96 +#define HTML_ATTR_ONDBLCLICK 97 +#define HTML_ATTR_ONERRORUPDATE 98 +#define HTML_ATTR_ONFOCUS 99 +#define HTML_ATTR_ONKEYDOWN 100 +#define HTML_ATTR_ONKEYPRESS 101 +#define HTML_ATTR_ONKEYUP 102 +#define HTML_ATTR_ONLOAD 103 +#define HTML_ATTR_ONMOUSEDOWN 104 +#define HTML_ATTR_ONMOUSEMOVE 105 +#define HTML_ATTR_ONMOUSEOUT 106 +#define HTML_ATTR_ONMOUSEOVER 107 +#define HTML_ATTR_ONMOUSEUP 108 +#define HTML_ATTR_ONRESET 109 +#define HTML_ATTR_ONROWENTER 110 +#define HTML_ATTR_ONROWEXIT 111 +#define HTML_ATTR_ONSELECT 112 +#define HTML_ATTR_ONSUBMIT 113 +#define HTML_ATTR_ONUNLOAD 114 +#define HTML_ATTR_PROFILE 115 +#define HTML_ATTR_PROMPT 116 +#define HTML_ATTR_RBSPAN 117 +#define HTML_ATTR_READONLY 118 +#define HTML_ATTR_REL 119 +#define HTML_ATTR_REV 120 +#define HTML_ATTR_RIGHTMARGIN 121 +#define HTML_ATTR_ROWS 122 +#define HTML_ATTR_ROWSPAN 123 +#define HTML_ATTR_RULES 124 +#define HTML_ATTR_SCHEME 125 +#define HTML_ATTR_SCOPE 126 +#define HTML_ATTR_SCROLLING 127 +#define HTML_ATTR_SDAFORM 128 +#define HTML_ATTR_SDAPREF 129 +#define HTML_ATTR_SDASUFF 130 +#define HTML_ATTR_SELECTED 131 +#define HTML_ATTR_SHAPE 132 +#define HTML_ATTR_SHOWGRID 133 +#define HTML_ATTR_SHOWGRIDX 134 +#define HTML_ATTR_SHOWGRIDY 135 +#define HTML_ATTR_SIZE 136 +#define HTML_ATTR_SPAN 137 +#define HTML_ATTR_SRC 138 +#define HTML_ATTR_STANDBY 139 +#define HTML_ATTR_START 140 +#define HTML_ATTR_STYLE 141 +#define HTML_ATTR_SUMMARY 142 +#define HTML_ATTR_TABINDEX 143 +#define HTML_ATTR_TARGET 144 +#define HTML_ATTR_TEXT 145 +#define HTML_ATTR_TITLE 146 +#define HTML_ATTR_TOPMARGIN 147 +#define HTML_ATTR_TYPE 148 +#define HTML_ATTR_UNKNOWN 149 +#define HTML_ATTR_URN 150 +#define HTML_ATTR_USEMAP 151 +#define HTML_ATTR_VALIGN 152 +#define HTML_ATTR_VALUE 153 +#define HTML_ATTR_VALUETYPE 154 +#define HTML_ATTR_VERSION 155 +#define HTML_ATTR_VLINK 156 +#define HTML_ATTR_VSPACE 157 +#define HTML_ATTR_WIDTH 158 +#define HTML_ATTR_WRAP 159 +#define HTML_ATTR_XMLNS 160 +#define HTML_ATTR_XML_LANG 161 +#define HTML_ATTR_XML_SPACE 162 +#define HTML_ATTR_ALLOWFULLSCREEN 163 +#define HTML_ATTR_DOWNLOAD 164 +#define HTML_ATTR_IS 165 +#define HTML_ATTR_ITEMID 166 +#define HTML_ATTR_ITEMPROP 167 +#define HTML_ATTR_ITEMREF 168 +#define HTML_ATTR_ITEMSCOPE 169 +#define HTML_ATTR_ITEMTYPE 170 +#define HTML_ATTR_ROLE 171 +#define HTML_ATTR_SRCSET 172 +#define HTML_ATTR_TRANSLATE 173 +#define HTML_ATTR_ASYNC 174 +#define HTML_ATTR_AUTOCOMPLETE 175 +#define HTML_ATTR_AUTOFOCUS 176 +#define HTML_ATTR_AUTOPLAY 177 +#define HTML_ATTR_CHALLENGE 178 +#define HTML_ATTR_CONTENTEDITABLE 179 +#define HTML_ATTR_CONTEXTMENU 180 +#define HTML_ATTR_CONTROLS 181 +#define HTML_ATTR_CROSSORIGIN 182 +#define HTML_ATTR_DEFAULT 183 +#define HTML_ATTR_DIRNAME 184 +#define HTML_ATTR_DRAGGABLE 185 +#define HTML_ATTR_DROPZONE 186 +#define HTML_ATTR_FORM 187 +#define HTML_ATTR_FORMACTION 188 +#define HTML_ATTR_FORMENCTYPE 189 +#define HTML_ATTR_FORMMETHOD 190 +#define HTML_ATTR_FORMNOVALIDATE 191 +#define HTML_ATTR_FORMTARGET 192 +#define HTML_ATTR_HIDDEN 193 +#define HTML_ATTR_HIGH 194 +#define HTML_ATTR_ICON 195 +#define HTML_ATTR_KEYTYPE 196 +#define HTML_ATTR_KIND 197 +#define HTML_ATTR_LIST 198 +#define HTML_ATTR_LOOP 199 +#define HTML_ATTR_LOW 200 +#define HTML_ATTR_MANIFEST 201 +#define HTML_ATTR_MAX 202 +#define HTML_ATTR_MEDIAGROUP 203 +#define HTML_ATTR_MIN 204 +//AQUI +#define HTML_ATTR_MUTED 205 +#define HTML_ATTR_NOVALIDATE 206 +#define HTML_ATTR_OPEN 207 +#define HTML_ATTR_OPTIMUM 208 +#define HTML_ATTR_ONABORT 209 +#define HTML_ATTR_ONAFTERPRINT 210 +#define HTML_ATTR_ONBEFOREPRINT 211 +#define HTML_ATTR_ONCANPLAY 212 +#define HTML_ATTR_ONCANPLAYTHROUGH 213 +#define HTML_ATTR_ONCONTEXTMENU 214 +#define HTML_ATTR_ONCUECHANGE 215 +#define HTML_ATTR_ONDRAG 216 +#define HTML_ATTR_ONDRAGEND 217 +#define HTML_ATTR_ONDRAGENTER 218 +#define HTML_ATTR_ONDRAGLEAVE 219 +#define HTML_ATTR_ONDRAGOVER 220 +#define HTML_ATTR_ONDRAGSTART 221 +#define HTML_ATTR_ONDROP 222 +#define HTML_ATTR_ONDURATIONCHANGE 223 +#define HTML_ATTR_ONEMPTIED 224 +#define HTML_ATTR_ONENDED 225 +#define HTML_ATTR_ONERROR 226 +#define HTML_ATTR_ONHASHCHANGE 227 +#define HTML_ATTR_ONINPUT 228 +#define HTML_ATTR_ONINVALID 229 +#define HTML_ATTR_ONLOADEDDATA 230 +#define HTML_ATTR_ONLOADEDMETADATA 231 +#define HTML_ATTR_ONLOADSTART 232 +#define HTML_ATTR_ONMESSAGE 233 +#define HTML_ATTR_ONMOUSEWHEEL 234 +#define HTML_ATTR_ONOFFLINE 235 +#define HTML_ATTR_ONONLINE 236 +#define HTML_ATTR_ONPAGEHIDE 237 +#define HTML_ATTR_ONPAGESHOW 238 +#define HTML_ATTR_ONPAUSE 239 +#define HTML_ATTR_ONPLAY 240 +#define HTML_ATTR_ONPLAYING 241 +#define HTML_ATTR_ONPOPSTATE 242 +#define HTML_ATTR_ONPROGRESS 243 +#define HTML_ATTR_ONRATECHANGE 244 +#define HTML_ATTR_ONREADYSTATECHANGE 245 +#define HTML_ATTR_ONREDO 246 +#define HTML_ATTR_ONRESIZE 247 +#define HTML_ATTR_ONSCROLL 248 +#define HTML_ATTR_ONSEEKED 249 +#define HTML_ATTR_ONSEEKING 250 +#define HTML_ATTR_ONSHOW 251 +#define HTML_ATTR_ONSTALLED 252 +#define HTML_ATTR_ONSTORAGE 253 +#define HTML_ATTR_ONSUSPEND 254 +#define HTML_ATTR_ONTIMEUPDATE 255 +#define HTML_ATTR_ONUNDO 256 +#define HTML_ATTR_ONVOLUMECHANGE 257 +#define HTML_ATTR_ONWAITING 258 +#define HTML_ATTR_PATTERN 259 +#define HTML_ATTR_PLACEHOLDER 260 +#define HTML_ATTR_PLAYSINLINE 261 +#define HTML_ATTR_POSTER 262 +#define HTML_ATTR_PRELOAD 263 +#define HTML_ATTR_PUBDATE 264 +#define HTML_ATTR_RADIOGROUP 265 +#define HTML_ATTR_REQUIRED 266 +#define HTML_ATTR_REVERSED 267 +#define HTML_ATTR_SANDBOX 268 +#define HTML_ATTR_SCOPED 269 +#define HTML_ATTR_SEAMLESS 270 +#define HTML_ATTR_SIZES 271 +#define HTML_ATTR_SPELLCHECK 272 +#define HTML_ATTR_SRCDOC 273 +#define HTML_ATTR_SRCLANG 274 +#define HTML_ATTR_STEP 275 +#define HTML_ATTR_ARIA_ACTIVEDESCENDANT 276 +#define HTML_ATTR_ARIA_ATOMIC 277 +#define HTML_ATTR_ARIA_AUTOCOMPLETE 278 +#define HTML_ATTR_ARIA_BUSY 279 +#define HTML_ATTR_ARIA_CHECKED 280 +#define HTML_ATTR_ARIA_CONTROLS 281 +#define HTML_ATTR_ARIA_DESCRIBEDBY 282 +#define HTML_ATTR_ARIA_DISABLED 283 +#define HTML_ATTR_ARIA_DROPEFFECT 284 +#define HTML_ATTR_ARIA_EXPANDED 285 +#define HTML_ATTR_ARIA_FLOWTO 286 +#define HTML_ATTR_ARIA_GRABBED 287 +#define HTML_ATTR_ARIA_HASPOPUP 288 +#define HTML_ATTR_ARIA_HIDDEN 289 +#define HTML_ATTR_ARIA_INVALID 290 +#define HTML_ATTR_ARIA_LABEL 291 +#define HTML_ATTR_ARIA_LABELLEDBY 292 +#define HTML_ATTR_ARIA_LEVEL 293 +#define HTML_ATTR_ARIA_LIVE 294 +#define HTML_ATTR_ARIA_MULTILINE 295 +#define HTML_ATTR_ARIA_MULTISELECTABLE 296 +#define HTML_ATTR_ARIA_ORIENTATION 297 +#define HTML_ATTR_ARIA_OWNS 298 +#define HTML_ATTR_ARIA_POSINSET 299 +#define HTML_ATTR_ARIA_PRESSED 300 +#define HTML_ATTR_ARIA_READONLY 301 +#define HTML_ATTR_ARIA_RELEVANT 302 +#define HTML_ATTR_ARIA_REQUIRED 303 +#define HTML_ATTR_ARIA_SELECTED 304 +#define HTML_ATTR_ARIA_SETSIZE 305 +#define HTML_ATTR_ARIA_SORT 306 +#define HTML_ATTR_ARIA_VALUEMAX 307 +#define HTML_ATTR_ARIA_VALUEMIN 308 +#define HTML_ATTR_ARIA_VALUENOW 309 +#define HTML_ATTR_ARIA_VALUETEXT +/* SVG attributes (SVG 1.1) */ +#define HTML_ATTR_X 310 +#define HTML_ATTR_Y 311 +#define HTML_ATTR_VIEWBOX 312 +#define HTML_ATTR_PRESERVEASPECTRATIO 313 +#define HTML_ATTR_ZOOMANDPAN 314 +#define HTML_ATTR_BASEPROFILE 315 +#define HTML_ATTR_CONTENTSCRIPTTYPE 316 +#define HTML_ATTR_CONTENTSTYLETYPE 317 +/* MathML attributes */ +#define HTML_ATTR_DISPLAY 318 +/* RDFa global attributes */ +#define HTML_ATTR_ABOUT 319 +#define HTML_ATTR_DATATYPE 320 +#define HTML_ATTR_INLIST 321 +#define HTML_ATTR_PREFIX 322 +#define HTML_ATTR_PROPERTY 323 +#define HTML_ATTR_RESOURCE 324 +#define HTML_ATTR_TYPEOF 325 +#define HTML_ATTR_VOCAB 326 +#define HTML_ATTR_INTEGRITY 327 +#define HTML_ATTR_AS 328 +#define HTML_ATTR_XMLNSXLINK 329 +#define HTML_ATTR_SLOT 330 +#define HTML_ATTR_LOADING 331 +/* SVG paint attributes (SVG 1.1) */ +#define HTML_ATTR_FILL 332 +#define HTML_ATTR_FILLRULE 333 +#define HTML_ATTR_STROKE 334 +#define HTML_ATTR_STROKEDASHARRAY 335 +#define HTML_ATTR_STROKEDASHOFFSET 336 +#define HTML_ATTR_STROKELINECAP 337 +#define HTML_ATTR_STROKELINEJOIN 338 +#define HTML_ATTR_STROKEMITERLIMIT 339 +#define HTML_ATTR_STROKEWIDTH 340 +#define HTML_ATTR_COLORINTERPOLATION 341 +#define HTML_ATTR_COLORRENDERING 342 +#define HTML_ATTR_OPACITY 343 +#define HTML_ATTR_STROKEOPACITY 344 +#define HTML_ATTR_FILLOPACITY 345 +#define HTML_ATTR_AUTOCAPITALIZE 346 +#define HTML_ATTR_ENTERKEYHINT 347 +#define HTML_ATTR_EXPORTPARTS 348 +#define HTML_ATTR_INPUTMODE 349 +#define HTML_ATTR_NONCE 350 +#define HTML_ATTR_PART 351 -#define HTML_ATTR_COUNT 162 +#define HTML_ATTR_COUNT 351 -#define HTML_ATTR_TYPE_UNKNOWN 0 -#define HTML_ATTR_TYPE_ACTION 1 -#define HTML_ATTR_TYPE_ALIGN 2 -#define HTML_ATTR_TYPE_BOOL 3 -#define HTML_ATTR_TYPE_BORDER 4 -#define HTML_ATTR_TYPE_CHARACTER 5 -#define HTML_ATTR_TYPE_CHARSET 6 -#define HTML_ATTR_TYPE_CLEAR 7 -#define HTML_ATTR_TYPE_COLOR 8 -#define HTML_ATTR_TYPE_COLS 9 -#define HTML_ATTR_TYPE_COORDS 10 -#define HTML_ATTR_TYPE_DATE 11 -#define HTML_ATTR_TYPE_FBORDER 12 -#define HTML_ATTR_TYPE_FSUBMIT 13 -#define HTML_ATTR_TYPE_IDDEF 14 -#define HTML_ATTR_TYPE_IDREF 15 -#define HTML_ATTR_TYPE_IDREFS 16 -#define HTML_ATTR_TYPE_LANG 17 -#define HTML_ATTR_TYPE_LENGTH 18 -#define HTML_ATTR_TYPE_LINKTYPES 19 -#define HTML_ATTR_TYPE_MEDIA 20 -#define HTML_ATTR_TYPE_NAME 21 -#define HTML_ATTR_TYPE_NUMBER 22 -#define HTML_ATTR_TYPE_PCDATA 23 -#define HTML_ATTR_TYPE_SCOPE 24 -#define HTML_ATTR_TYPE_SCRIPT 25 -#define HTML_ATTR_TYPE_SCROLL 26 -#define HTML_ATTR_TYPE_SHAPE 27 -#define HTML_ATTR_TYPE_TARGET 28 -#define HTML_ATTR_TYPE_TEXTDIR 29 -#define HTML_ATTR_TYPE_TFRAME 30 -#define HTML_ATTR_TYPE_TRULES 31 -#define HTML_ATTR_TYPE_TYPE 32 -#define HTML_ATTR_TYPE_URL 33 -#define HTML_ATTR_TYPE_URLS 34 -#define HTML_ATTR_TYPE_VALIGN 35 -#define HTML_ATTR_TYPE_VTYPE 36 -#define HTML_ATTR_TYPE_XTYPE 37 +#define HTML_ATTR_TYPE_UNKNOWN 0 +#define HTML_ATTR_TYPE_ACTION 1 +#define HTML_ATTR_TYPE_ALIGN 2 +#define HTML_ATTR_TYPE_BOOL 3 +#define HTML_ATTR_TYPE_BORDER 4 +#define HTML_ATTR_TYPE_CHARACTER 5 +#define HTML_ATTR_TYPE_CHARSET 6 +#define HTML_ATTR_TYPE_CLEAR 7 +#define HTML_ATTR_TYPE_COLOR 8 +#define HTML_ATTR_TYPE_COLS 9 +#define HTML_ATTR_TYPE_COORDS 10 +#define HTML_ATTR_TYPE_DATE 11 +#define HTML_ATTR_TYPE_FBORDER 12 +#define HTML_ATTR_TYPE_FSUBMIT 13 +#define HTML_ATTR_TYPE_IDDEF 14 +#define HTML_ATTR_TYPE_IDREF 15 +#define HTML_ATTR_TYPE_IDREFS 16 +#define HTML_ATTR_TYPE_LANG 17 +#define HTML_ATTR_TYPE_LENGTH 18 +#define HTML_ATTR_TYPE_LINKTYPES 19 +#define HTML_ATTR_TYPE_MEDIA 20 +#define HTML_ATTR_TYPE_NAME 21 +#define HTML_ATTR_TYPE_NUMBER 22 +#define HTML_ATTR_TYPE_PCDATA 23 +#define HTML_ATTR_TYPE_SCOPE 24 +#define HTML_ATTR_TYPE_SCRIPT 25 +#define HTML_ATTR_TYPE_SCROLL 26 +#define HTML_ATTR_TYPE_SHAPE 27 +#define HTML_ATTR_TYPE_TARGET 28 +#define HTML_ATTR_TYPE_TEXTDIR 29 +#define HTML_ATTR_TYPE_TFRAME 30 +#define HTML_ATTR_TYPE_TRULES 31 +#define HTML_ATTR_TYPE_TYPE 32 +#define HTML_ATTR_TYPE_URL 33 +#define HTML_ATTR_TYPE_URLS 34 +#define HTML_ATTR_TYPE_VALIGN 35 +#define HTML_ATTR_TYPE_VTYPE 36 +#define HTML_ATTR_TYPE_XTYPE 37 +#define HTML_ATTR_TYPE_FVALIDATE 38 +#define HTML_ATTR_TYPE_ICON 39 +#define HTML_ATTR_TYPE_LIST 40 -#define HTML_ATTR_TYPE_COUNT 37 +#define HTML_ATTR_TYPE_COUNT 40 #endif /* _HB_THTML */ diff --git a/contrib/hbtip/thtml.prg b/contrib/hbtip/thtml.prg index 1e657836d7..62bdd8ec60 100644 --- a/contrib/hbtip/thtml.prg +++ b/contrib/hbtip/thtml.prg @@ -2,6 +2,7 @@ * HTML Classes * * Copyright 2007 Hannes Ziegler + * Copyright 2022 Marinaldo de Jesus * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -83,6 +84,7 @@ THREAD STATIC t_aHA // data for HTML attributes THREAD STATIC t_hHT // data for HTML tags +THREAD STATIC t_aGlbAttr // data for Global HTML attributes THREAD STATIC t_cHtmlCP := "" THREAD STATIC t_aHtmlUnicEntities // HTML character entities THREAD STATIC t_cHtmlUnicChars @@ -1072,7 +1074,7 @@ METHOD toString( nIndent ) CLASS THtmlNode // Builds the attribute string METHOD attrToString() CLASS THtmlNode - LOCAL aAttr, cAttr + LOCAL aAttr, cAttr, nAttr IF ::htmlAttributes == NIL cAttr := "" @@ -1085,6 +1087,16 @@ METHOD attrToString() CLASS THtmlNode RECOVER aAttr := {} // Tag has no attributes END SEQUENCE + //Add Global Attributes + //The global attributes below can be used on any HTML element + if t_aGlbAttr==NIL + t_aGlbAttr:=THtmlAttr_GlobalAttributes() + endif + for nAttr:=1 to len(t_aGlbAttr) + if (aScan(aAttr,{|x|x[1]==t_aGlbAttr[nAttr][1]})==0) + aAdd(aAttr,t_aGlbAttr[nAttr]) + endif + next nAttr cAttr := "" hb_HEval( ::htmlAttributes, {| cKey, cValue | cAttr += __AttrToStr( cKey, cValue, aAttr, Self ) } ) ENDIF @@ -1630,128 +1642,140 @@ STATIC PROCEDURE _Init_Html_TagTypes hb_HCaseMatch( t_hHT, .F. ) - t_hHT[ "_root_" ] := { , ( CM_INLINE ) } - t_hHT[ "_text_" ] := { , ( CM_INLINE ) } - t_hHT[ "!--" ] := { , hb_bitOr( CM_INLINE, CM_EMPTY ) } - t_hHT[ "a" ] := { @THtmlAttr_A() , ( CM_INLINE ) } - t_hHT[ "abbr" ] := { @THtmlAttr_ABBR() , ( CM_INLINE ) } - t_hHT[ "acronym" ] := { @THtmlAttr_ACRONYM() , ( CM_INLINE ) } - t_hHT[ "address" ] := { @THtmlAttr_ADDRESS() , ( CM_BLOCK ) } - t_hHT[ "align" ] := { , ( CM_BLOCK ) } - t_hHT[ "applet" ] := { @THtmlAttr_APPLET() , hb_bitOr( CM_OBJECT, CM_IMG, CM_INLINE, CM_PARAM ) } - t_hHT[ "area" ] := { @THtmlAttr_AREA() , hb_bitOr( CM_BLOCK, CM_EMPTY ) } - t_hHT[ "b" ] := { @THtmlAttr_B() , ( CM_INLINE ) } - t_hHT[ "base" ] := { @THtmlAttr_BASE() , hb_bitOr( CM_HEAD, CM_EMPTY ) } - t_hHT[ "basefont" ] := { @THtmlAttr_BASEFONT() , hb_bitOr( CM_INLINE, CM_EMPTY ) } - t_hHT[ "bdo" ] := { @THtmlAttr_BDO() , ( CM_INLINE ) } - t_hHT[ "bgsound" ] := { , hb_bitOr( CM_HEAD, CM_EMPTY ) } - t_hHT[ "big" ] := { @THtmlAttr_BIG() , ( CM_INLINE ) } - t_hHT[ "blink" ] := { , ( CM_INLINE ) } - t_hHT[ "blockquote" ] := { @THtmlAttr_BLOCKQUOTE() , ( CM_BLOCK ) } - t_hHT[ "body" ] := { @THtmlAttr_BODY() , hb_bitOr( CM_HTML, CM_OPT, CM_OMITST ) } - t_hHT[ "br" ] := { @THtmlAttr_BR() , hb_bitOr( CM_INLINE, CM_EMPTY ) } - t_hHT[ "button" ] := { @THtmlAttr_BUTTON() , ( CM_INLINE ) } - t_hHT[ "caption" ] := { @THtmlAttr_CAPTION() , ( CM_TABLE ) } - t_hHT[ "center" ] := { @THtmlAttr_CENTER() , ( CM_BLOCK ) } - t_hHT[ "cite" ] := { @THtmlAttr_CITE() , ( CM_INLINE ) } - t_hHT[ "code" ] := { @THtmlAttr_CODE() , ( CM_INLINE ) } - t_hHT[ "col" ] := { @THtmlAttr_COL() , hb_bitOr( CM_TABLE, CM_EMPTY ) } - t_hHT[ "colgroup" ] := { @THtmlAttr_COLGROUP() , hb_bitOr( CM_TABLE, CM_OPT ) } - t_hHT[ "comment" ] := { , ( CM_INLINE ) } - t_hHT[ "dd" ] := { @THtmlAttr_DD() , hb_bitOr( CM_DEFLIST, CM_OPT, CM_NO_INDENT ) } - t_hHT[ "del" ] := { @THtmlAttr_DEL() , hb_bitOr( CM_INLINE, CM_BLOCK, CM_MIXED ) } - t_hHT[ "dfn" ] := { @THtmlAttr_DFN() , ( CM_INLINE ) } - t_hHT[ "dir" ] := { @THtmlAttr_DIR() , hb_bitOr( CM_BLOCK, CM_OBSOLETE ) } - t_hHT[ "div" ] := { @THtmlAttr_DIV() , ( CM_BLOCK ) } - t_hHT[ "dl" ] := { @THtmlAttr_DL() , ( CM_BLOCK ) } - t_hHT[ "dt" ] := { @THtmlAttr_DT() , hb_bitOr( CM_DEFLIST, CM_OPT, CM_NO_INDENT ) } - t_hHT[ "em" ] := { @THtmlAttr_EM() , ( CM_INLINE ) } - t_hHT[ "embed" ] := { , hb_bitOr( CM_INLINE, CM_IMG, CM_EMPTY ) } - t_hHT[ "fieldset" ] := { @THtmlAttr_FIELDSET() , ( CM_BLOCK ) } - t_hHT[ "font" ] := { @THtmlAttr_FONT() , ( CM_INLINE ) } - t_hHT[ "form" ] := { @THtmlAttr_FORM() , ( CM_BLOCK ) } - t_hHT[ "frame" ] := { @THtmlAttr_FRAME() , hb_bitOr( CM_FRAMES, CM_EMPTY ) } - t_hHT[ "frameset" ] := { @THtmlAttr_FRAMESET() , hb_bitOr( CM_HTML, CM_FRAMES ) } - t_hHT[ "h1" ] := { @THtmlAttr_H1() , hb_bitOr( CM_BLOCK, CM_HEADING ) } - t_hHT[ "h2" ] := { @THtmlAttr_H2() , hb_bitOr( CM_BLOCK, CM_HEADING ) } - t_hHT[ "h3" ] := { @THtmlAttr_H3() , hb_bitOr( CM_BLOCK, CM_HEADING ) } - t_hHT[ "h4" ] := { @THtmlAttr_H4() , hb_bitOr( CM_BLOCK, CM_HEADING ) } - t_hHT[ "h5" ] := { @THtmlAttr_H5() , hb_bitOr( CM_BLOCK, CM_HEADING ) } - t_hHT[ "h6" ] := { @THtmlAttr_H6() , hb_bitOr( CM_BLOCK, CM_HEADING ) } - t_hHT[ "head" ] := { @THtmlAttr_HEAD() , hb_bitOr( CM_HTML, CM_OPT, CM_OMITST ) } - t_hHT[ "hr" ] := { @THtmlAttr_HR() , hb_bitOr( CM_BLOCK, CM_EMPTY ) } - t_hHT[ "html" ] := { @THtmlAttr_HTML() , hb_bitOr( CM_HTML, CM_OPT, CM_OMITST ) } - t_hHT[ "i" ] := { @THtmlAttr_I() , ( CM_INLINE ) } - t_hHT[ "iframe" ] := { @THtmlAttr_IFRAME() , ( CM_INLINE ) } - t_hHT[ "ilayer" ] := { , ( CM_INLINE ) } - t_hHT[ "img" ] := { @THtmlAttr_IMG() , hb_bitOr( CM_INLINE, CM_IMG, CM_EMPTY ) } - t_hHT[ "input" ] := { @THtmlAttr_INPUT() , hb_bitOr( CM_INLINE, CM_IMG, CM_EMPTY ) } - t_hHT[ "ins" ] := { @THtmlAttr_INS() , hb_bitOr( CM_INLINE, CM_BLOCK, CM_MIXED ) } - t_hHT[ "isindex" ] := { @THtmlAttr_ISINDEX() , hb_bitOr( CM_BLOCK, CM_EMPTY ) } - t_hHT[ "kbd" ] := { @THtmlAttr_KBD() , ( CM_INLINE ) } - t_hHT[ "keygen" ] := { , hb_bitOr( CM_INLINE, CM_EMPTY ) } - t_hHT[ "label" ] := { @THtmlAttr_LABEL() , ( CM_INLINE ) } - t_hHT[ "layer" ] := { , ( CM_BLOCK ) } - t_hHT[ "legend" ] := { @THtmlAttr_LEGEND() , ( CM_INLINE ) } - t_hHT[ "li" ] := { @THtmlAttr_LI() , hb_bitOr( CM_LIST, CM_OPT, CM_NO_INDENT ) } - t_hHT[ "link" ] := { @THtmlAttr_LINK() , hb_bitOr( CM_HEAD, CM_EMPTY ) } - t_hHT[ "listing" ] := { @THtmlAttr_LISTING() , hb_bitOr( CM_BLOCK, CM_OBSOLETE ) } - t_hHT[ "map" ] := { @THtmlAttr_MAP() , ( CM_INLINE ) } - t_hHT[ "marquee" ] := { , hb_bitOr( CM_INLINE, CM_OPT ) } - t_hHT[ "menu" ] := { @THtmlAttr_MENU() , hb_bitOr( CM_BLOCK, CM_OBSOLETE ) } - t_hHT[ "meta" ] := { @THtmlAttr_META() , hb_bitOr( CM_HEAD, CM_EMPTY ) } - t_hHT[ "multicol" ] := { , ( CM_BLOCK ) } - t_hHT[ "nextid" ] := { @THtmlAttr_NEXTID() , hb_bitOr( CM_HEAD, CM_EMPTY ) } - t_hHT[ "nobr" ] := { , ( CM_INLINE ) } - t_hHT[ "noembed" ] := { , ( CM_INLINE ) } - t_hHT[ "noframes" ] := { @THtmlAttr_NOFRAMES() , hb_bitOr( CM_BLOCK, CM_FRAMES ) } - t_hHT[ "nolayer" ] := { , hb_bitOr( CM_BLOCK, CM_INLINE, CM_MIXED ) } - t_hHT[ "nosave" ] := { , ( CM_BLOCK ) } - t_hHT[ "noscript" ] := { @THtmlAttr_NOSCRIPT() , hb_bitOr( CM_BLOCK, CM_INLINE, CM_MIXED ) } - t_hHT[ "object" ] := { @THtmlAttr_OBJECT() , hb_bitOr( CM_OBJECT, CM_HEAD, CM_IMG, CM_INLINE, CM_PARAM ) } - t_hHT[ "ol" ] := { @THtmlAttr_OL() , ( CM_BLOCK ) } - t_hHT[ "optgroup" ] := { @THtmlAttr_OPTGROUP() , hb_bitOr( CM_FIELD, CM_OPT ) } - t_hHT[ "option" ] := { @THtmlAttr_OPTION() , hb_bitOr( CM_FIELD, CM_OPT ) } - t_hHT[ "p" ] := { @THtmlAttr_P() , hb_bitOr( CM_BLOCK, CM_OPT ) } - t_hHT[ "param" ] := { @THtmlAttr_PARAM() , hb_bitOr( CM_INLINE, CM_EMPTY ) } - t_hHT[ "plaintext" ] := { @THtmlAttr_PLAINTEXT() , hb_bitOr( CM_BLOCK, CM_OBSOLETE ) } - t_hHT[ "pre" ] := { @THtmlAttr_PRE() , ( CM_BLOCK ) } - t_hHT[ "q" ] := { @THtmlAttr_Q() , ( CM_INLINE ) } - t_hHT[ "rb" ] := { @THtmlAttr_RB() , ( CM_INLINE ) } - t_hHT[ "rbc" ] := { @THtmlAttr_RBC() , ( CM_INLINE ) } - t_hHT[ "rp" ] := { @THtmlAttr_RP() , ( CM_INLINE ) } - t_hHT[ "rt" ] := { @THtmlAttr_RT() , ( CM_INLINE ) } - t_hHT[ "rtc" ] := { @THtmlAttr_RTC() , ( CM_INLINE ) } - t_hHT[ "ruby" ] := { @THtmlAttr_RUBY() , ( CM_INLINE ) } - t_hHT[ "s" ] := { @THtmlAttr_S() , ( CM_INLINE ) } - t_hHT[ "samp" ] := { @THtmlAttr_SAMP() , ( CM_INLINE ) } - t_hHT[ "script" ] := { @THtmlAttr_SCRIPT() , hb_bitOr( CM_HEAD, CM_MIXED, CM_BLOCK, CM_INLINE ) } - t_hHT[ "select" ] := { @THtmlAttr_SELECT() , hb_bitOr( CM_INLINE, CM_FIELD ) } - t_hHT[ "server" ] := { , hb_bitOr( CM_HEAD, CM_MIXED, CM_BLOCK, CM_INLINE ) } - t_hHT[ "servlet" ] := { , hb_bitOr( CM_OBJECT, CM_IMG, CM_INLINE, CM_PARAM ) } - t_hHT[ "small" ] := { @THtmlAttr_SMALL() , ( CM_INLINE ) } - t_hHT[ "spacer" ] := { , hb_bitOr( CM_INLINE, CM_EMPTY ) } - t_hHT[ "span" ] := { @THtmlAttr_SPAN() , ( CM_INLINE ) } - t_hHT[ "strike" ] := { @THtmlAttr_STRIKE() , ( CM_INLINE ) } - t_hHT[ "strong" ] := { @THtmlAttr_STRONG() , ( CM_INLINE ) } - t_hHT[ "style" ] := { @THtmlAttr_STYLE() , ( CM_HEAD ) } - t_hHT[ "sub" ] := { @THtmlAttr_SUB() , ( CM_INLINE ) } - t_hHT[ "sup" ] := { @THtmlAttr_SUP() , ( CM_INLINE ) } - t_hHT[ "table" ] := { @THtmlAttr_TABLE() , ( CM_BLOCK ) } - t_hHT[ "tbody" ] := { @THtmlAttr_TBODY() , hb_bitOr( CM_TABLE, CM_ROWGRP, CM_OPT ) } - t_hHT[ "td" ] := { @THtmlAttr_TD() , hb_bitOr( CM_ROW, CM_OPT, CM_NO_INDENT ) } - t_hHT[ "textarea" ] := { @THtmlAttr_TEXTAREA() , hb_bitOr( CM_INLINE, CM_FIELD ) } - t_hHT[ "tfoot" ] := { @THtmlAttr_TFOOT() , hb_bitOr( CM_TABLE, CM_ROWGRP, CM_OPT ) } - t_hHT[ "th" ] := { @THtmlAttr_TH() , hb_bitOr( CM_ROW, CM_OPT, CM_NO_INDENT ) } - t_hHT[ "thead" ] := { @THtmlAttr_THEAD() , hb_bitOr( CM_TABLE, CM_ROWGRP, CM_OPT ) } - t_hHT[ "title" ] := { @THtmlAttr_TITLE() , ( CM_HEAD ) } - t_hHT[ "tr" ] := { @THtmlAttr_TR() , hb_bitOr( CM_TABLE, CM_OPT ) } - t_hHT[ "tt" ] := { @THtmlAttr_TT() , ( CM_INLINE ) } - t_hHT[ "u" ] := { @THtmlAttr_U() , ( CM_INLINE ) } - t_hHT[ "ul" ] := { @THtmlAttr_UL() , ( CM_BLOCK ) } - t_hHT[ "var" ] := { @THtmlAttr_VAR() , ( CM_INLINE ) } - t_hHT[ "wbr" ] := { , hb_bitOr( CM_INLINE, CM_EMPTY ) } - t_hHT[ "xmp" ] := { @THtmlAttr_XMP() , hb_bitOr( CM_BLOCK, CM_OBSOLETE ) } + t_hHT[ "_root_" ] := { , ( CM_INLINE ) } + t_hHT[ "_text_" ] := { , ( CM_INLINE ) } + t_hHT[ "!--" ] := { , hb_bitOr( CM_INLINE, CM_EMPTY ) } + t_hHT[ "a" ] := { @THtmlAttr_A() , ( CM_INLINE ) } + t_hHT[ "abbr" ] := { @THtmlAttr_ABBR() , ( CM_INLINE ) } + t_hHT[ "acronym" ] := { @THtmlAttr_ACRONYM() , hb_bitOr( CM_INLINE , CM_OBSOLETE ) } + t_hHT[ "address" ] := { @THtmlAttr_ADDRESS() , ( CM_BLOCK ) } + t_hHT[ "align" ] := { , ( CM_BLOCK ) } + t_hHT[ "applet" ] := { @THtmlAttr_APPLET() , hb_bitOr( CM_OBJECT, CM_IMG, CM_INLINE, CM_PARAM , CM_OBSOLETE ) } + t_hHT[ "area" ] := { @THtmlAttr_AREA() , hb_bitOr( CM_BLOCK, CM_EMPTY ) } + t_hHT[ "article" ] := { @THtmlAttr_ARTICLE() , hb_bitOr( CM_TABLE, CM_EMPTY ) } + t_hHT[ "aside" ] := { @THtmlAttr_ASIDE() , hb_bitOr( CM_TABLE, CM_EMPTY ) } + t_hHT[ "audio" ] := { @THtmlAttr_AUDIO() , hb_bitOr( CM_INLINE, CM_EMPTY ) } + t_hHT[ "b" ] := { @THtmlAttr_B() , ( CM_INLINE ) } + t_hHT[ "base" ] := { @THtmlAttr_BASE() , hb_bitOr( CM_HEAD, CM_EMPTY ) } + t_hHT[ "basefont" ] := { @THtmlAttr_BASEFONT() , hb_bitOr( CM_INLINE, CM_EMPTY , CM_OBSOLETE ) } + t_hHT[ "bdi" ] := { @THtmlAttr_BDI() , ( CM_INLINE ) } + t_hHT[ "bdo" ] := { @THtmlAttr_BDO() , ( CM_INLINE ) } + t_hHT[ "bgsound" ] := { @THtmlAttr_BGSOUND() , hb_bitOr( CM_HEAD, CM_EMPTY , CM_OBSOLETE ) } + t_hHT[ "big" ] := { @THtmlAttr_BIG() , hb_bitOr( CM_INLINE , CM_OBSOLETE ) } + t_hHT[ "blink" ] := { , hb_bitOr( CM_INLINE , CM_OBSOLETE ) } + t_hHT[ "blockquote" ] := { @THtmlAttr_BLOCKQUOTE() , ( CM_BLOCK ) } + t_hHT[ "body" ] := { @THtmlAttr_BODY() , hb_bitOr( CM_HTML, CM_OPT, CM_OMITST ) } + t_hHT[ "br" ] := { @THtmlAttr_BR() , hb_bitOr( CM_INLINE, CM_EMPTY ) } + t_hHT[ "button" ] := { @THtmlAttr_BUTTON() , ( CM_INLINE ) } + t_hHT[ "caption" ] := { @THtmlAttr_CAPTION() , ( CM_TABLE ) } + t_hHT[ "center" ] := { @THtmlAttr_CENTER() , hb_bitOr( CM_BLOCK , CM_OBSOLETE ) } + t_hHT[ "cite" ] := { @THtmlAttr_CITE() , ( CM_INLINE ) } + t_hHT[ "code" ] := { @THtmlAttr_CODE() , ( CM_INLINE ) } + t_hHT[ "col" ] := { @THtmlAttr_COL() , hb_bitOr( CM_TABLE, CM_EMPTY ) } + t_hHT[ "colgroup" ] := { @THtmlAttr_COLGROUP() , hb_bitOr( CM_TABLE, CM_OPT ) } + t_hHT[ "comment" ] := { , ( CM_INLINE ) } + t_hHT[ "data" ] := { @THtmlAttr_DATA() , ( CM_INLINE ) } + t_hHT[ "dd" ] := { @THtmlAttr_DD() , hb_bitOr( CM_DEFLIST, CM_OPT, CM_NO_INDENT ) } + t_hHT[ "del" ] := { @THtmlAttr_DEL() , hb_bitOr( CM_INLINE, CM_BLOCK, CM_MIXED ) } + t_hHT[ "dfn" ] := { @THtmlAttr_DFN() , ( CM_INLINE ) } + t_hHT[ "dir" ] := { @THtmlAttr_DIR() , hb_bitOr( CM_BLOCK, CM_OBSOLETE ) } + t_hHT[ "div" ] := { @THtmlAttr_DIV() , ( CM_BLOCK ) } + t_hHT[ "dl" ] := { @THtmlAttr_DL() , ( CM_BLOCK ) } + t_hHT[ "dt" ] := { @THtmlAttr_DT() , hb_bitOr( CM_DEFLIST, CM_OPT, CM_NO_INDENT ) } + t_hHT[ "em" ] := { @THtmlAttr_EM() , ( CM_INLINE ) } + t_hHT[ "embed" ] := { , hb_bitOr( CM_INLINE, CM_IMG, CM_EMPTY ) } + t_hHT[ "fieldset" ] := { @THtmlAttr_FIELDSET() , ( CM_BLOCK ) } + t_hHT[ "figure" ] := { @THtmlAttr_FIGURE() , hb_bitOr( CM_TABLE, CM_EMPTY ) } + t_hHT[ "figcaption" ] := { @THtmlAttr_FIGCAPTION() , hb_bitOr( CM_TABLE, CM_EMPTY ) } + t_hHT[ "font" ] := { @THtmlAttr_FONT() , ( CM_INLINE ) } + t_hHT[ "form" ] := { @THtmlAttr_FORM() , ( CM_BLOCK ) } + t_hHT[ "frame" ] := { @THtmlAttr_FRAME() , hb_bitOr( CM_FRAMES, CM_EMPTY ) } + t_hHT[ "frameset" ] := { @THtmlAttr_FRAMESET() , hb_bitOr( CM_HTML, CM_FRAMES ) } + t_hHT[ "h1" ] := { @THtmlAttr_H1() , hb_bitOr( CM_BLOCK, CM_HEADING ) } + t_hHT[ "h2" ] := { @THtmlAttr_H2() , hb_bitOr( CM_BLOCK, CM_HEADING ) } + t_hHT[ "h3" ] := { @THtmlAttr_H3() , hb_bitOr( CM_BLOCK, CM_HEADING ) } + t_hHT[ "h4" ] := { @THtmlAttr_H4() , hb_bitOr( CM_BLOCK, CM_HEADING ) } + t_hHT[ "h5" ] := { @THtmlAttr_H5() , hb_bitOr( CM_BLOCK, CM_HEADING ) } + t_hHT[ "h6" ] := { @THtmlAttr_H6() , hb_bitOr( CM_BLOCK, CM_HEADING ) } + t_hHT[ "head" ] := { @THtmlAttr_HEAD() , hb_bitOr( CM_HTML, CM_OPT, CM_OMITST ) } + t_hHT[ "hr" ] := { @THtmlAttr_HR() , hb_bitOr( CM_BLOCK, CM_EMPTY ) } + t_hHT[ "html" ] := { @THtmlAttr_HTML() , hb_bitOr( CM_HTML, CM_OPT, CM_OMITST ) } + t_hHT[ "i" ] := { @THtmlAttr_I() , ( CM_INLINE ) } + t_hHT[ "iframe" ] := { @THtmlAttr_IFRAME() , ( CM_INLINE ) } + t_hHT[ "ilayer" ] := { , ( CM_INLINE ) } + t_hHT[ "img" ] := { @THtmlAttr_IMG() , hb_bitOr( CM_INLINE, CM_IMG, CM_EMPTY ) } + t_hHT[ "input" ] := { @THtmlAttr_INPUT() , hb_bitOr( CM_INLINE, CM_IMG, CM_EMPTY ) } + t_hHT[ "ins" ] := { @THtmlAttr_INS() , hb_bitOr( CM_INLINE, CM_BLOCK, CM_MIXED ) } + t_hHT[ "isindex" ] := { @THtmlAttr_ISINDEX() , hb_bitOr( CM_BLOCK, CM_EMPTY ) } + t_hHT[ "kbd" ] := { @THtmlAttr_KBD() , ( CM_INLINE ) } + t_hHT[ "keygen" ] := { @THtmlAttr_KEYGEN() , hb_bitOr( CM_INLINE, CM_EMPTY ) } + t_hHT[ "label" ] := { @THtmlAttr_LABEL() , ( CM_INLINE ) } + t_hHT[ "layer" ] := { , ( CM_BLOCK ) } + t_hHT[ "legend" ] := { @THtmlAttr_LEGEND() , ( CM_INLINE ) } + t_hHT[ "li" ] := { @THtmlAttr_LI() , hb_bitOr( CM_LIST, CM_OPT, CM_NO_INDENT ) } + t_hHT[ "link" ] := { @THtmlAttr_LINK() , hb_bitOr( CM_HEAD, CM_EMPTY ) } + t_hHT[ "listing" ] := { @THtmlAttr_LISTING() , hb_bitOr( CM_BLOCK, CM_OBSOLETE ) } + t_hHT[ "map" ] := { @THtmlAttr_MAP() , ( CM_INLINE ) } + t_hHT[ "marquee" ] := { @THtmlAttr_MARQUEE() , hb_bitOr( CM_INLINE, CM_OPT, CM_OBSOLETE ) } + t_hHT[ "menu" ] := { @THtmlAttr_MENU() , hb_bitOr( CM_BLOCK, CM_OBSOLETE ) } + t_hHT[ "menuitem" ] := { @THtmlAttr_MENUITEM() , hb_bitOr( CM_BLOCK, CM_OBSOLETE ) } + t_hHT[ "meta" ] := { @THtmlAttr_META() , hb_bitOr( CM_HEAD, CM_EMPTY ) } + t_hHT[ "meter" ] := { @THtmlAttr_METER() , hb_bitOr( CM_INLINE, CM_EMPTY ) } + t_hHT[ "multicol" ] := { , ( CM_BLOCK ) } + t_hHT[ "nextid" ] := { @THtmlAttr_NEXTID() , hb_bitOr( CM_HEAD, CM_EMPTY ) } + t_hHT[ "nobr" ] := { , ( CM_INLINE ) } + t_hHT[ "noembed" ] := { , ( CM_INLINE ) } + t_hHT[ "noframes" ] := { @THtmlAttr_NOFRAMES() , hb_bitOr( CM_BLOCK, CM_FRAMES ) } + t_hHT[ "nolayer" ] := { , hb_bitOr( CM_BLOCK, CM_INLINE, CM_MIXED ) } + t_hHT[ "nosave" ] := { , ( CM_BLOCK ) } + t_hHT[ "noscript" ] := { @THtmlAttr_NOSCRIPT() , hb_bitOr( CM_BLOCK, CM_INLINE, CM_MIXED ) } + t_hHT[ "object" ] := { @THtmlAttr_OBJECT() , hb_bitOr( CM_OBJECT, CM_HEAD, CM_IMG, CM_INLINE, CM_PARAM ) } + t_hHT[ "ol" ] := { @THtmlAttr_OL() , ( CM_BLOCK ) } + t_hHT[ "optgroup" ] := { @THtmlAttr_OPTGROUP() , hb_bitOr( CM_FIELD, CM_OPT ) } + t_hHT[ "option" ] := { @THtmlAttr_OPTION() , hb_bitOr( CM_FIELD, CM_OPT ) } + t_hHT[ "p" ] := { @THtmlAttr_P() , hb_bitOr( CM_BLOCK, CM_OPT ) } + t_hHT[ "param" ] := { @THtmlAttr_PARAM() , hb_bitOr( CM_INLINE, CM_EMPTY ) } + t_hHT[ "plaintext" ] := { @THtmlAttr_PLAINTEXT() , hb_bitOr( CM_BLOCK, CM_OBSOLETE ) } + t_hHT[ "pre" ] := { @THtmlAttr_PRE() , ( CM_BLOCK ) } + t_aHA[ "progress" ] := { @THtmlAttr_PROGRESS() , ( CM_BLOCK ) } + t_hHT[ "q" ] := { @THtmlAttr_Q() , ( CM_INLINE ) } + t_hHT[ "rb" ] := { @THtmlAttr_RB() , ( CM_INLINE ) } + t_hHT[ "rbc" ] := { @THtmlAttr_RBC() , ( CM_INLINE ) } + t_hHT[ "rp" ] := { @THtmlAttr_RP() , ( CM_INLINE ) } + t_hHT[ "rt" ] := { @THtmlAttr_RT() , ( CM_INLINE ) } + t_hHT[ "rtc" ] := { @THtmlAttr_RTC() , ( CM_INLINE ) } + t_hHT[ "ruby" ] := { @THtmlAttr_RUBY() , ( CM_INLINE ) } + t_hHT[ "s" ] := { @THtmlAttr_S() , ( CM_INLINE ) } + t_hHT[ "samp" ] := { @THtmlAttr_SAMP() , ( CM_INLINE ) } + t_hHT[ "script" ] := { @THtmlAttr_SCRIPT() , hb_bitOr( CM_HEAD, CM_MIXED, CM_BLOCK, CM_INLINE ) } + t_hHT[ "select" ] := { @THtmlAttr_SELECT() , hb_bitOr( CM_INLINE, CM_FIELD ) } + t_hHT[ "server" ] := { , hb_bitOr( CM_HEAD, CM_MIXED, CM_BLOCK, CM_INLINE ) } + t_hHT[ "servlet" ] := { , hb_bitOr( CM_OBJECT, CM_IMG, CM_INLINE, CM_PARAM ) } + t_hHT[ "small" ] := { @THtmlAttr_SMALL() , ( CM_INLINE ) } + t_hHT[ "spacer" ] := { , hb_bitOr( CM_INLINE, CM_EMPTY ) } + t_hHT[ "span" ] := { @THtmlAttr_SPAN() , ( CM_INLINE ) } + t_hHT[ "strike" ] := { @THtmlAttr_STRIKE() , ( CM_INLINE ) } + t_hHT[ "strong" ] := { @THtmlAttr_STRONG() , ( CM_INLINE ) } + t_hHT[ "style" ] := { @THtmlAttr_STYLE() , ( CM_HEAD ) } + t_hHT[ "sub" ] := { @THtmlAttr_SUB() , ( CM_INLINE ) } + t_hHT[ "sup" ] := { @THtmlAttr_SUP() , ( CM_INLINE ) } + t_hHT[ "table" ] := { @THtmlAttr_TABLE() , ( CM_BLOCK ) } + t_hHT[ "tbody" ] := { @THtmlAttr_TBODY() , hb_bitOr( CM_TABLE, CM_ROWGRP, CM_OPT ) } + t_hHT[ "td" ] := { @THtmlAttr_TD() , hb_bitOr( CM_ROW, CM_OPT, CM_NO_INDENT ) } + t_hHT[ "textarea" ] := { @THtmlAttr_TEXTAREA() , hb_bitOr( CM_INLINE, CM_FIELD ) } + t_hHT[ "tfoot" ] := { @THtmlAttr_TFOOT() , hb_bitOr( CM_TABLE, CM_ROWGRP, CM_OPT ) } + t_hHT[ "th" ] := { @THtmlAttr_TH() , hb_bitOr( CM_ROW, CM_OPT, CM_NO_INDENT ) } + t_hHT[ "thead" ] := { @THtmlAttr_THEAD() , hb_bitOr( CM_TABLE, CM_ROWGRP, CM_OPT ) } + t_hHT[ "title" ] := { @THtmlAttr_TITLE() , ( CM_HEAD ) } + t_hHT[ "tr" ] := { @THtmlAttr_TR() , hb_bitOr( CM_TABLE, CM_OPT ) } + t_hHT[ "track" ] := { @THtmlAttr_TRACK() , hb_bitOr( CM_MIXED, CM_BLOCK, CM_INLINE ) } + t_hHT[ "tt" ] := { @THtmlAttr_TT() , ( CM_INLINE ) } + t_hHT[ "u" ] := { @THtmlAttr_U() , ( CM_INLINE ) } + t_hHT[ "ul" ] := { @THtmlAttr_UL() , ( CM_BLOCK ) } + t_hHT[ "var" ] := { @THtmlAttr_VAR() , ( CM_INLINE ) } + t_hHT[ "video" ] := { @THtmlAttr_VIDEO() , hb_bitOr( CM_INLINE, CM_EMPTY ) } + t_hHT[ "wbr" ] := { , hb_bitOr( CM_INLINE, CM_EMPTY ) } + t_hHT[ "xmp" ] := { @THtmlAttr_XMP() , hb_bitOr( CM_BLOCK, CM_OBSOLETE ) } RETURN @@ -1768,8 +1792,13 @@ STATIC PROCEDURE _Init_Html_Attributes t_aHA[ HTML_ATTR_ADD_DATE ] := { "add_date" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_ALIGN ] := { "align" , HTML_ATTR_TYPE_ALIGN } t_aHA[ HTML_ATTR_ALINK ] := { "alink" , HTML_ATTR_TYPE_COLOR } + t_aHA[ HTML_ATTR_ALLOWFULLSCREEN ] := { "allowfullscreen" , HTML_ATTR_TYPE_BOOL } t_aHA[ HTML_ATTR_ALT ] := { "alt" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_ARCHIVE ] := { "archive" , HTML_ATTR_TYPE_URLS } + t_aHA[ HTML_ATTR_ASYNC ] := { "async" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_AUTOCOMPLETE ] := { "autocomplete" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_AUTOFOCUS ] := { "autofocus" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_AUTOPLAY ] := { "autoplay" , HTML_ATTR_TYPE_BOOL } t_aHA[ HTML_ATTR_AXIS ] := { "axis" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_BACKGROUND ] := { "background" , HTML_ATTR_TYPE_URL } t_aHA[ HTML_ATTR_BGCOLOR ] := { "bgcolor" , HTML_ATTR_TYPE_COLOR } @@ -1795,7 +1824,11 @@ STATIC PROCEDURE _Init_Html_Attributes t_aHA[ HTML_ATTR_COLSPAN ] := { "colspan" , HTML_ATTR_TYPE_NUMBER } t_aHA[ HTML_ATTR_COMPACT ] := { "compact" , HTML_ATTR_TYPE_BOOL } t_aHA[ HTML_ATTR_CONTENT ] := { "content" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_CONTENTEDITABLE ] := { "contenteditable" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_CONTEXTMENU ] := { "contextmenu" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_CONTROLS ] := { "controls" , HTML_ATTR_TYPE_BOOL } t_aHA[ HTML_ATTR_COORDS ] := { "coords" , HTML_ATTR_TYPE_COORDS } + t_aHA[ HTML_ATTR_CROSSORIGIN ] := { "crossorigin" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_DATA ] := { "data" , HTML_ATTR_TYPE_URL } t_aHA[ HTML_ATTR_DATAFLD ] := { "datafld" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_DATAFORMATAS ] := { "dataformatas" , HTML_ATTR_TYPE_PCDATA } @@ -1805,12 +1838,22 @@ STATIC PROCEDURE _Init_Html_Attributes t_aHA[ HTML_ATTR_DECLARE ] := { "declare" , HTML_ATTR_TYPE_BOOL } t_aHA[ HTML_ATTR_DEFER ] := { "defer" , HTML_ATTR_TYPE_BOOL } t_aHA[ HTML_ATTR_DIR ] := { "dir" , HTML_ATTR_TYPE_TEXTDIR } + t_aHA[ HTML_ATTR_DIRNAME ] := { "dirname" , HTML_ATTR_TYPE_TEXTDIR } t_aHA[ HTML_ATTR_DISABLED ] := { "disabled" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_DOWNLOAD ] := { "download" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_DRAGGABLE ] := { "draggable" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_DROPZONE ] := { "dropzone" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_ENCODING ] := { "encoding" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_ENCTYPE ] := { "enctype" , HTML_ATTR_TYPE_XTYPE } t_aHA[ HTML_ATTR_EVENT ] := { "event" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_FACE ] := { "face" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_FOR ] := { "for" , HTML_ATTR_TYPE_IDREF } + t_aHA[ HTML_ATTR_FORM ] := { "form" , HTML_ATTR_TYPE_IDREF } + t_aHA[ HTML_ATTR_FORMACTION ] := { "formaction" , HTML_ATTR_TYPE_IDREF } + t_aHA[ HTML_ATTR_FORMENCTYPE ] := { "formenctype" , HTML_ATTR_TYPE_TYPE } + t_aHA[ HTML_ATTR_FORMMETHOD ] := { "formmethod" , HTML_ATTR_TYPE_FSUBMIT } + t_aHA[ HTML_ATTR_FORMNOVALIDATE ] := { "formnovalidate" , HTML_ATTR_TYPE_FVALIDATE } + t_aHA[ HTML_ATTR_FORMTARGET ] := { "formtarget" , HTML_ATTR_TYPE_TARGET } t_aHA[ HTML_ATTR_FRAME ] := { "frame" , HTML_ATTR_TYPE_TFRAME } t_aHA[ HTML_ATTR_FRAMEBORDER ] := { "frameborder" , HTML_ATTR_TYPE_FBORDER } t_aHA[ HTML_ATTR_FRAMESPACING ] := { "framespacing" , HTML_ATTR_TYPE_NUMBER } @@ -1818,12 +1861,23 @@ STATIC PROCEDURE _Init_Html_Attributes t_aHA[ HTML_ATTR_GRIDY ] := { "gridy" , HTML_ATTR_TYPE_NUMBER } t_aHA[ HTML_ATTR_HEADERS ] := { "headers" , HTML_ATTR_TYPE_IDREFS } t_aHA[ HTML_ATTR_HEIGHT ] := { "height" , HTML_ATTR_TYPE_LENGTH } + t_aHA[ HTML_ATTR_HIDDEN ] := { "hidden" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_HIGH ] := { "high" , HTML_ATTR_TYPE_NUMBER } t_aHA[ HTML_ATTR_HREF ] := { "href" , HTML_ATTR_TYPE_URL } t_aHA[ HTML_ATTR_HREFLANG ] := { "hreflang" , HTML_ATTR_TYPE_LANG } t_aHA[ HTML_ATTR_HSPACE ] := { "hspace" , HTML_ATTR_TYPE_NUMBER } t_aHA[ HTML_ATTR_HTTP_EQUIV ] := { "http-equiv" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_ICON ] := { "icon" , HTML_ATTR_TYPE_ICON } t_aHA[ HTML_ATTR_ID ] := { "id" , HTML_ATTR_TYPE_IDDEF } + t_aHA[ HTML_ATTR_IS ] := { "is" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_ISMAP ] := { "ismap" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_ITEMID ] := { "itemid" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_ITEMPROP ] := { "itemprop" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_ITEMREF ] := { "itemref" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_ITEMSCOPE ] := { "itemscope" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_ITEMTYPE ] := { "itemtype" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_KEYTYPE ] := { "keytype" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_KIND ] := { "kind" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_LABEL ] := { "label" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_LANG ] := { "lang" , HTML_ATTR_TYPE_LANG } t_aHA[ HTML_ATTR_LANGUAGE ] := { "language" , HTML_ATTR_TYPE_PCDATA } @@ -1831,20 +1885,28 @@ STATIC PROCEDURE _Init_Html_Attributes t_aHA[ HTML_ATTR_LAST_VISIT ] := { "last_visit" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_LEFTMARGIN ] := { "leftmargin" , HTML_ATTR_TYPE_NUMBER } t_aHA[ HTML_ATTR_LINK ] := { "link" , HTML_ATTR_TYPE_COLOR } + t_aHA[ HTML_ATTR_LIST ] := { "list" , HTML_ATTR_TYPE_LIST } t_aHA[ HTML_ATTR_LONGDESC ] := { "longdesc" , HTML_ATTR_TYPE_URL } + t_aHA[ HTML_ATTR_LOOP ] := { "loop" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_LOW ] := { "low" , HTML_ATTR_TYPE_NUMBER } t_aHA[ HTML_ATTR_LOWSRC ] := { "lowsrc" , HTML_ATTR_TYPE_URL } + t_aHA[ HTML_ATTR_MANIFEST ] := { "manifest" , HTML_ATTR_TYPE_URL } t_aHA[ HTML_ATTR_MARGINHEIGHT ] := { "marginheight" , HTML_ATTR_TYPE_NUMBER } t_aHA[ HTML_ATTR_MARGINWIDTH ] := { "marginwidth" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_MAX ] := { "max" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_MAXLENGTH ] := { "maxlength" , HTML_ATTR_TYPE_NUMBER } t_aHA[ HTML_ATTR_MEDIA ] := { "media" , HTML_ATTR_TYPE_MEDIA } + t_aHA[ HTML_ATTR_MEDIAGROUP ] := { "mediagroup" , HTML_ATTR_TYPE_MEDIA } t_aHA[ HTML_ATTR_METHOD ] := { "method" , HTML_ATTR_TYPE_FSUBMIT } t_aHA[ HTML_ATTR_METHODS ] := { "methods" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_MIN ] := { "min" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_MULTIPLE ] := { "multiple" , HTML_ATTR_TYPE_BOOL } t_aHA[ HTML_ATTR_N ] := { "n" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_NAME ] := { "name" , HTML_ATTR_TYPE_NAME } t_aHA[ HTML_ATTR_NOHREF ] := { "nohref" , HTML_ATTR_TYPE_BOOL } t_aHA[ HTML_ATTR_NORESIZE ] := { "noresize" , HTML_ATTR_TYPE_BOOL } t_aHA[ HTML_ATTR_NOSHADE ] := { "noshade" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_NOVALIDATE ] := { "novalidate" , HTML_ATTR_TYPE_BOOL } t_aHA[ HTML_ATTR_NOWRAP ] := { "nowrap" , HTML_ATTR_TYPE_BOOL } t_aHA[ HTML_ATTR_OBJECT ] := { "object" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_ONAFTERUPDATE ] := { "onafterupdate" , HTML_ATTR_TYPE_SCRIPT } @@ -1881,6 +1943,7 @@ STATIC PROCEDURE _Init_Html_Attributes t_aHA[ HTML_ATTR_REL ] := { "rel" , HTML_ATTR_TYPE_LINKTYPES } t_aHA[ HTML_ATTR_REV ] := { "rev" , HTML_ATTR_TYPE_LINKTYPES } t_aHA[ HTML_ATTR_RIGHTMARGIN ] := { "rightmargin" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_ROLE ] := { "role" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_ROWS ] := { "rows" , HTML_ATTR_TYPE_NUMBER } t_aHA[ HTML_ATTR_ROWSPAN ] := { "rowspan" , HTML_ATTR_TYPE_NUMBER } t_aHA[ HTML_ATTR_RULES ] := { "rules" , HTML_ATTR_TYPE_TRULES } @@ -1898,6 +1961,7 @@ STATIC PROCEDURE _Init_Html_Attributes t_aHA[ HTML_ATTR_SIZE ] := { "size" , HTML_ATTR_TYPE_NUMBER } t_aHA[ HTML_ATTR_SPAN ] := { "span" , HTML_ATTR_TYPE_NUMBER } t_aHA[ HTML_ATTR_SRC ] := { "src" , HTML_ATTR_TYPE_URL } + t_aHA[ HTML_ATTR_SRCSET ] := { "srcset" , HTML_ATTR_TYPE_URL } t_aHA[ HTML_ATTR_STANDBY ] := { "standby" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_START ] := { "start" , HTML_ATTR_TYPE_NUMBER } t_aHA[ HTML_ATTR_STYLE ] := { "style" , HTML_ATTR_TYPE_PCDATA } @@ -1907,6 +1971,7 @@ STATIC PROCEDURE _Init_Html_Attributes t_aHA[ HTML_ATTR_TEXT ] := { "text" , HTML_ATTR_TYPE_COLOR } t_aHA[ HTML_ATTR_TITLE ] := { "title" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_TOPMARGIN ] := { "topmargin" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_TRANSLATE ] := { "translate" , HTML_ATTR_TYPE_BOOL } t_aHA[ HTML_ATTR_TYPE ] := { "type" , HTML_ATTR_TYPE_TYPE } t_aHA[ HTML_ATTR_UNKNOWN ] := { "unknown!" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_URN ] := { "urn" , HTML_ATTR_TYPE_PCDATA } @@ -1925,17 +1990,58 @@ STATIC PROCEDURE _Init_Html_Attributes RETURN -STATIC FUNCTION THtmlAttr_A() +/* + The global attributes below can be used on any HTML element + https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes + http://www-db.deis.unibo.it/courses/TW/DOCS/w3schools/tags/ref_standardattributes.asp.html + +*/ +STATIC FUNCTION THtmlAttr_GlobalAttributes() RETURN { ; t_aHA[ HTML_ATTR_ACCESSKEY ], ; - t_aHA[ HTML_ATTR_CHARSET ], ; + t_aHA[ HTML_ATTR_AUTOCAPITALIZE ], ; + t_aHA[ HTML_ATTR_AUTOFOCUS ], ; t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_COORDS ], ; + t_aHA[ HTML_ATTR_CONTENTEDITABLE ], ; + t_aHA[ HTML_ATTR_CONTEXTMENU ], ; + t_aHA[ HTML_ATTR_DATA ], ; + t_aHA[ HTML_ATTR_DATAFLD ], ; + t_aHA[ HTML_ATTR_DATAFORMATAS ], ; + t_aHA[ HTML_ATTR_DATAPAGESIZE ], ; + t_aHA[ HTML_ATTR_DATASRC ], ; + t_aHA[ HTML_ATTR_DATATYPE ], ; t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_HREF ], ; - t_aHA[ HTML_ATTR_HREFLANG ], ; + t_aHA[ HTML_ATTR_DRAGGABLE ], ; + t_aHA[ HTML_ATTR_DROPZONE ], ; + t_aHA[ HTML_ATTR_ENTERKEYHINT ], ; + t_aHA[ HTML_ATTR_EXPORTPARTS ], ; + t_aHA[ HTML_ATTR_HIDDEN ], ; t_aHA[ HTML_ATTR_ID ], ; + t_aHA[ HTML_ATTR_INPUTMODE ], ; + t_aHA[ HTML_ATTR_IS ], ; + t_aHA[ HTML_ATTR_ITEMID ], ; + t_aHA[ HTML_ATTR_ITEMPROP ], ; + t_aHA[ HTML_ATTR_ITEMREF ], ; + t_aHA[ HTML_ATTR_ITEMSCOPE ], ; + t_aHA[ HTML_ATTR_ITEMTYPE ], ; t_aHA[ HTML_ATTR_LANG ], ; + t_aHA[ HTML_ATTR_NONCE ], ; + t_aHA[ HTML_ATTR_PART ], ; + t_aHA[ HTML_ATTR_ROLE ], ; + t_aHA[ HTML_ATTR_SLOT ], ; + t_aHA[ HTML_ATTR_SPELLCHECK ], ; + t_aHA[ HTML_ATTR_STYLE ], ; + t_aHA[ HTML_ATTR_TABINDEX ], ; + t_aHA[ HTML_ATTR_TITLE ], ; + t_aHA[ HTML_ATTR_TRANSLATE ], ; + t_aHA[ HTML_ATTR_UNKNOWN ] } + +STATIC FUNCTION THtmlAttr_A() + RETURN { ; + t_aHA[ HTML_ATTR_CHARSET ], ; + t_aHA[ HTML_ATTR_COORDS ], ; + t_aHA[ HTML_ATTR_HREF ], ; + t_aHA[ HTML_ATTR_HREFLANG ], ; t_aHA[ HTML_ATTR_METHODS ], ; t_aHA[ HTML_ATTR_NAME ], ; t_aHA[ HTML_ATTR_ONBLUR ], ; @@ -1954,22 +2060,15 @@ STATIC FUNCTION THtmlAttr_A() t_aHA[ HTML_ATTR_REV ], ; t_aHA[ HTML_ATTR_SDAPREF ], ; t_aHA[ HTML_ATTR_SHAPE ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TABINDEX ], ; t_aHA[ HTML_ATTR_TARGET ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_TYPE ], ; t_aHA[ HTML_ATTR_URN ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_DOWNLOAD ] } STATIC FUNCTION THtmlAttr_ABBR() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -1980,18 +2079,11 @@ STATIC FUNCTION THtmlAttr_ABBR() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_ACRONYM() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -2002,18 +2094,11 @@ STATIC FUNCTION THtmlAttr_ACRONYM() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_ADDRESS() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -2026,41 +2111,28 @@ STATIC FUNCTION THtmlAttr_ADDRESS() t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; t_aHA[ HTML_ATTR_SDAPREF ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_APPLET() RETURN { ; t_aHA[ HTML_ATTR_ALIGN ], ; t_aHA[ HTML_ATTR_ALT ], ; t_aHA[ HTML_ATTR_ARCHIVE ], ; - t_aHA[ HTML_ATTR_CLASS ], ; t_aHA[ HTML_ATTR_CODE ], ; t_aHA[ HTML_ATTR_CODEBASE ], ; t_aHA[ HTML_ATTR_HEIGHT ], ; t_aHA[ HTML_ATTR_HSPACE ], ; - t_aHA[ HTML_ATTR_ID ], ; t_aHA[ HTML_ATTR_NAME ], ; t_aHA[ HTML_ATTR_OBJECT ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_VSPACE ], ; - t_aHA[ HTML_ATTR_WIDTH ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_WIDTH ] } STATIC FUNCTION THtmlAttr_AREA() RETURN { ; - t_aHA[ HTML_ATTR_ACCESSKEY ], ; t_aHA[ HTML_ATTR_ALT ], ; - t_aHA[ HTML_ATTR_CLASS ], ; t_aHA[ HTML_ATTR_COORDS ], ; - t_aHA[ HTML_ATTR_DIR ], ; t_aHA[ HTML_ATTR_HREF ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_NOHREF ], ; t_aHA[ HTML_ATTR_ONBLUR ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; @@ -2075,20 +2147,30 @@ STATIC FUNCTION THtmlAttr_AREA() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SHAPE ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TABINDEX ], ; t_aHA[ HTML_ATTR_TARGET ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } + +STATIC FUNCTION THtmlAttr_ARTICLE() + RETURN { ; + t_aHA[ HTML_ATTR_NAME ] } + +STATIC FUNCTION THtmlAttr_ASIDE() + RETURN { ; + t_aHA[ HTML_ATTR_NAME ] } + +STATIC FUNCTION THtmlAttr_AUDIO() + RETURN { ; + t_aHA[ HTML_ATTR_AUTOPLAY ], ; + t_aHA[ HTML_ATTR_CONTROLS ], ; + t_aHA[ HTML_ATTR_CROSSORIGIN ], ; + t_aHA[ HTML_ATTR_NAME ], ; + t_aHA[ HTML_ATTR_LOOP ], ; + t_aHA[ HTML_ATTR_MEDIAGROUP ], ; + t_aHA[ HTML_ATTR_SRC ] } STATIC FUNCTION THtmlAttr_B() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -2100,34 +2182,38 @@ STATIC FUNCTION THtmlAttr_B() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_BASE() RETURN { ; t_aHA[ HTML_ATTR_HREF ], ; - t_aHA[ HTML_ATTR_ID ], ; t_aHA[ HTML_ATTR_TARGET ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_BASEFONT() RETURN { ; t_aHA[ HTML_ATTR_COLOR ], ; t_aHA[ HTML_ATTR_FACE ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_SIZE ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_SIZE ] } + +STATIC FUNCTION THtmlAttr_BDI() + RETURN { ; + t_aHA[ HTML_ATTR_ONCLICK ], ; + t_aHA[ HTML_ATTR_ONDBLCLICK ], ; + t_aHA[ HTML_ATTR_ONKEYDOWN ], ; + t_aHA[ HTML_ATTR_ONKEYPRESS ], ; + t_aHA[ HTML_ATTR_ONKEYUP ], ; + t_aHA[ HTML_ATTR_ONMOUSEDOWN ], ; + t_aHA[ HTML_ATTR_ONMOUSEMOVE ], ; + t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; + t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; + t_aHA[ HTML_ATTR_ONMOUSEUP ], ; + t_aHA[ HTML_ATTR_XML_LANG ], ; + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_BDO() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -2138,18 +2224,20 @@ STATIC FUNCTION THtmlAttr_BDO() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } + +STATIC FUNCTION THtmlAttr_BGSOUND() +/* TODO: +balance +volume +*/ + RETURN { ; + t_aHA[ HTML_ATTR_LOOP ], ; + t_aHA[ HTML_ATTR_SRC ] } STATIC FUNCTION THtmlAttr_BIG() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -2160,19 +2248,12 @@ STATIC FUNCTION THtmlAttr_BIG() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_BLOCKQUOTE() RETURN { ; t_aHA[ HTML_ATTR_CITE ], ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -2184,21 +2265,14 @@ STATIC FUNCTION THtmlAttr_BLOCKQUOTE() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_BODY() RETURN { ; t_aHA[ HTML_ATTR_ALINK ], ; t_aHA[ HTML_ATTR_BACKGROUND ], ; t_aHA[ HTML_ATTR_BGCOLOR ], ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_LINK ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; @@ -2212,33 +2286,26 @@ STATIC FUNCTION THtmlAttr_BODY() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_ONUNLOAD ], ; - t_aHA[ HTML_ATTR_STYLE ], ; t_aHA[ HTML_ATTR_TEXT ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_VLINK ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_BR() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; t_aHA[ HTML_ATTR_CLEAR ], ; - t_aHA[ HTML_ATTR_ID ], ; t_aHA[ HTML_ATTR_SDAPREF ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_BUTTON() RETURN { ; - t_aHA[ HTML_ATTR_ACCESSKEY ], ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; t_aHA[ HTML_ATTR_DISABLED ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; + t_aHA[ HTML_ATTR_FORM ], ; + t_aHA[ HTML_ATTR_FORMACTION ], ; + t_aHA[ HTML_ATTR_FORMENCTYPE ], ; + t_aHA[ HTML_ATTR_FORMMETHOD ], ; + t_aHA[ HTML_ATTR_FORMNOVALIDATE ], ; + t_aHA[ HTML_ATTR_FORMTARGET ], ; t_aHA[ HTML_ATTR_NAME ], ; t_aHA[ HTML_ATTR_ONBLUR ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; @@ -2252,22 +2319,14 @@ STATIC FUNCTION THtmlAttr_BUTTON() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TABINDEX ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_TYPE ], ; t_aHA[ HTML_ATTR_VALUE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_CAPTION() RETURN { ; t_aHA[ HTML_ATTR_ALIGN ], ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -2278,18 +2337,11 @@ STATIC FUNCTION THtmlAttr_CAPTION() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_CENTER() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -2300,17 +2352,10 @@ STATIC FUNCTION THtmlAttr_CENTER() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XML_LANG ] } STATIC FUNCTION THtmlAttr_CITE() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -2322,18 +2367,11 @@ STATIC FUNCTION THtmlAttr_CITE() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_CODE() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -2345,21 +2383,14 @@ STATIC FUNCTION THtmlAttr_CODE() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_COL() RETURN { ; t_aHA[ HTML_ATTR_ALIGN ], ; t_aHA[ HTML_ATTR_CHAR ], ; t_aHA[ HTML_ATTR_CHAROFF ], ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -2371,23 +2402,16 @@ STATIC FUNCTION THtmlAttr_COL() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SPAN ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_VALIGN ], ; t_aHA[ HTML_ATTR_WIDTH ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_COLGROUP() RETURN { ; t_aHA[ HTML_ATTR_ALIGN ], ; t_aHA[ HTML_ATTR_CHAR ], ; t_aHA[ HTML_ATTR_CHAROFF ], ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -2399,20 +2423,17 @@ STATIC FUNCTION THtmlAttr_COLGROUP() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SPAN ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_VALIGN ], ; t_aHA[ HTML_ATTR_WIDTH ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } + +STATIC FUNCTION THtmlAttr_DATA() + RETURN { ; + t_aHA[ HTML_ATTR_VALUE ] } STATIC FUNCTION THtmlAttr_DD() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -2424,20 +2445,13 @@ STATIC FUNCTION THtmlAttr_DD() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_DEL() RETURN { ; t_aHA[ HTML_ATTR_CITE ], ; - t_aHA[ HTML_ATTR_CLASS ], ; t_aHA[ HTML_ATTR_DATETIME ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -2448,18 +2462,11 @@ STATIC FUNCTION THtmlAttr_DEL() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_DFN() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -2470,19 +2477,12 @@ STATIC FUNCTION THtmlAttr_DFN() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_DIR() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; t_aHA[ HTML_ATTR_COMPACT ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -2495,18 +2495,11 @@ STATIC FUNCTION THtmlAttr_DIR() t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; t_aHA[ HTML_ATTR_SDAPREF ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XML_LANG ] } STATIC FUNCTION THtmlAttr_DIV() RETURN { ; t_aHA[ HTML_ATTR_ALIGN ], ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -2517,19 +2510,12 @@ STATIC FUNCTION THtmlAttr_DIV() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_DL() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; t_aHA[ HTML_ATTR_COMPACT ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -2542,18 +2528,11 @@ STATIC FUNCTION THtmlAttr_DL() t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; t_aHA[ HTML_ATTR_SDAPREF ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_DT() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -2565,18 +2544,11 @@ STATIC FUNCTION THtmlAttr_DT() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_EM() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -2588,18 +2560,12 @@ STATIC FUNCTION THtmlAttr_EM() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_FIELDSET() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; + t_aHA[ HTML_ATTR_FORM ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -2610,38 +2576,25 @@ STATIC FUNCTION THtmlAttr_FIELDSET() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_FONT() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; t_aHA[ HTML_ATTR_COLOR ], ; - t_aHA[ HTML_ATTR_DIR ], ; t_aHA[ HTML_ATTR_FACE ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_SIZE ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XML_LANG ] } STATIC FUNCTION THtmlAttr_FORM() RETURN { ; t_aHA[ HTML_ATTR_ACCEPT ], ; t_aHA[ HTML_ATTR_ACCEPT_CHARSET ], ; t_aHA[ HTML_ATTR_ACTION ], ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; t_aHA[ HTML_ATTR_ENCTYPE ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_METHOD ], ; t_aHA[ HTML_ATTR_NAME ], ; + t_aHA[ HTML_ATTR_NOVALIDATE ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -2656,18 +2609,14 @@ STATIC FUNCTION THtmlAttr_FORM() t_aHA[ HTML_ATTR_ONSUBMIT ], ; t_aHA[ HTML_ATTR_SDAPREF ], ; t_aHA[ HTML_ATTR_SDASUFF ], ; - t_aHA[ HTML_ATTR_STYLE ], ; t_aHA[ HTML_ATTR_TARGET ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_AUTOCOMPLETE ] } STATIC FUNCTION THtmlAttr_FRAME() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; t_aHA[ HTML_ATTR_FRAMEBORDER ], ; - t_aHA[ HTML_ATTR_ID ], ; t_aHA[ HTML_ATTR_LONGDESC ], ; t_aHA[ HTML_ATTR_MARGINHEIGHT ], ; t_aHA[ HTML_ATTR_MARGINWIDTH ], ; @@ -2675,29 +2624,26 @@ STATIC FUNCTION THtmlAttr_FRAME() t_aHA[ HTML_ATTR_NORESIZE ], ; t_aHA[ HTML_ATTR_SCROLLING ], ; t_aHA[ HTML_ATTR_SRC ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_ASYNC ] } + +STATIC FUNCTION THtmlAttr_FIGURE() + RETURN { ; + t_aHA[ HTML_ATTR_NAME ] } + +STATIC FUNCTION THtmlAttr_FIGCAPTION() + RETURN { ; + t_aHA[ HTML_ATTR_NAME ] } STATIC FUNCTION THtmlAttr_FRAMESET() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_COLS ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_ONLOAD ], ; - t_aHA[ HTML_ATTR_ONUNLOAD ], ; - t_aHA[ HTML_ATTR_ROWS ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_COLS ], ; + t_aHA[ HTML_ATTR_ONLOAD ], ; + t_aHA[ HTML_ATTR_ONUNLOAD ], ; + t_aHA[ HTML_ATTR_ROWS ] } STATIC FUNCTION THtmlAttr_H1() RETURN { ; t_aHA[ HTML_ATTR_ALIGN ], ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -2709,19 +2655,12 @@ STATIC FUNCTION THtmlAttr_H1() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_H2() RETURN { ; t_aHA[ HTML_ATTR_ALIGN ], ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -2733,19 +2672,12 @@ STATIC FUNCTION THtmlAttr_H2() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_H3() RETURN { ; t_aHA[ HTML_ATTR_ALIGN ], ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -2757,19 +2689,12 @@ STATIC FUNCTION THtmlAttr_H3() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_H4() RETURN { ; t_aHA[ HTML_ATTR_ALIGN ], ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -2781,19 +2706,12 @@ STATIC FUNCTION THtmlAttr_H4() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_H5() RETURN { ; t_aHA[ HTML_ATTR_ALIGN ], ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -2805,19 +2723,12 @@ STATIC FUNCTION THtmlAttr_H5() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_H6() RETURN { ; t_aHA[ HTML_ATTR_ALIGN ], ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -2829,29 +2740,18 @@ STATIC FUNCTION THtmlAttr_H6() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_HEAD() RETURN { ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_PROFILE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_HR() RETURN { ; t_aHA[ HTML_ATTR_ALIGN ], ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_NOSHADE ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; @@ -2865,30 +2765,20 @@ STATIC FUNCTION THtmlAttr_HR() t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAPREF ], ; t_aHA[ HTML_ATTR_SIZE ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_WIDTH ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_HTML() RETURN { ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; + t_aHA[ HTML_ATTR_MANIFEST ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; t_aHA[ HTML_ATTR_VERSION ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_I() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -2900,42 +2790,33 @@ STATIC FUNCTION THtmlAttr_I() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_IFRAME() RETURN { ; t_aHA[ HTML_ATTR_ALIGN ], ; - t_aHA[ HTML_ATTR_CLASS ], ; t_aHA[ HTML_ATTR_FRAMEBORDER ], ; t_aHA[ HTML_ATTR_HEIGHT ], ; - t_aHA[ HTML_ATTR_ID ], ; t_aHA[ HTML_ATTR_LONGDESC ], ; t_aHA[ HTML_ATTR_MARGINHEIGHT ], ; t_aHA[ HTML_ATTR_MARGINWIDTH ], ; t_aHA[ HTML_ATTR_NAME ], ; t_aHA[ HTML_ATTR_SCROLLING ], ; t_aHA[ HTML_ATTR_SRC ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_WIDTH ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_ALLOWFULLSCREEN ], ; + t_aHA[ HTML_ATTR_ASYNC ] } STATIC FUNCTION THtmlAttr_IMG() RETURN { ; t_aHA[ HTML_ATTR_ALIGN ], ; t_aHA[ HTML_ATTR_ALT ], ; t_aHA[ HTML_ATTR_BORDER ], ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; + t_aHA[ HTML_ATTR_CROSSORIGIN ], ; t_aHA[ HTML_ATTR_HEIGHT ], ; t_aHA[ HTML_ATTR_HSPACE ], ; - t_aHA[ HTML_ATTR_ID ], ; t_aHA[ HTML_ATTR_ISMAP ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_LONGDESC ], ; t_aHA[ HTML_ATTR_NAME ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; @@ -2950,29 +2831,32 @@ STATIC FUNCTION THtmlAttr_IMG() t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAPREF ], ; t_aHA[ HTML_ATTR_SRC ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_USEMAP ], ; t_aHA[ HTML_ATTR_VSPACE ], ; t_aHA[ HTML_ATTR_WIDTH ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_ASYNC ] } STATIC FUNCTION THtmlAttr_INPUT() RETURN { ; t_aHA[ HTML_ATTR_ACCEPT ], ; - t_aHA[ HTML_ATTR_ACCESSKEY ], ; t_aHA[ HTML_ATTR_ALIGN ], ; t_aHA[ HTML_ATTR_ALT ], ; t_aHA[ HTML_ATTR_CHECKED ], ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; t_aHA[ HTML_ATTR_DISABLED ], ; - t_aHA[ HTML_ATTR_ID ], ; + t_aHA[ HTML_ATTR_DIRNAME ], ; + t_aHA[ HTML_ATTR_FORM ], ; + t_aHA[ HTML_ATTR_FORMACTION ], ; + t_aHA[ HTML_ATTR_FORMENCTYPE ], ; + t_aHA[ HTML_ATTR_FORMMETHOD ], ; + t_aHA[ HTML_ATTR_FORMNOVALIDATE ], ; + t_aHA[ HTML_ATTR_FORMTARGET ], ; t_aHA[ HTML_ATTR_ISMAP ], ; - t_aHA[ HTML_ATTR_LANG ], ; + t_aHA[ HTML_ATTR_LIST ], ; + t_aHA[ HTML_ATTR_MAX ], ; t_aHA[ HTML_ATTR_MAXLENGTH ], ; + t_aHA[ HTML_ATTR_MIN ], ; t_aHA[ HTML_ATTR_NAME ], ; t_aHA[ HTML_ATTR_ONBLUR ], ; t_aHA[ HTML_ATTR_ONCHANGE ], ; @@ -2992,24 +2876,18 @@ STATIC FUNCTION THtmlAttr_INPUT() t_aHA[ HTML_ATTR_SDAPREF ], ; t_aHA[ HTML_ATTR_SIZE ], ; t_aHA[ HTML_ATTR_SRC ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TABINDEX ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_TYPE ], ; t_aHA[ HTML_ATTR_USEMAP ], ; t_aHA[ HTML_ATTR_VALUE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_ASYNC ], ; + t_aHA[ HTML_ATTR_AUTOCOMPLETE ] } STATIC FUNCTION THtmlAttr_INS() RETURN { ; t_aHA[ HTML_ATTR_CITE ], ; - t_aHA[ HTML_ATTR_CLASS ], ; t_aHA[ HTML_ATTR_DATETIME ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -3020,31 +2898,17 @@ STATIC FUNCTION THtmlAttr_INS() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_ISINDEX() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_PROMPT ], ; t_aHA[ HTML_ATTR_SDAPREF ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XML_LANG ] } STATIC FUNCTION THtmlAttr_KBD() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -3056,20 +2920,21 @@ STATIC FUNCTION THtmlAttr_KBD() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } + +STATIC FUNCTION THtmlAttr_KEYGEN() + RETURN { ; + t_aHA[ HTML_ATTR_CHALLENGE ], ; + t_aHA[ HTML_ATTR_DISABLED ], ; + t_aHA[ HTML_ATTR_FORM ], ; + t_aHA[ HTML_ATTR_KEYTYPE ], ; + t_aHA[ HTML_ATTR_NAME ] } STATIC FUNCTION THtmlAttr_LABEL() RETURN { ; - t_aHA[ HTML_ATTR_ACCESSKEY ], ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; t_aHA[ HTML_ATTR_FOR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; + t_aHA[ HTML_ATTR_FORM ], ; t_aHA[ HTML_ATTR_ONBLUR ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; @@ -3082,20 +2947,12 @@ STATIC FUNCTION THtmlAttr_LABEL() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_LEGEND() RETURN { ; - t_aHA[ HTML_ATTR_ACCESSKEY ], ; t_aHA[ HTML_ATTR_ALIGN ], ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -3106,18 +2963,11 @@ STATIC FUNCTION THtmlAttr_LEGEND() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_LI() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -3129,23 +2979,17 @@ STATIC FUNCTION THtmlAttr_LI() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_TYPE ], ; t_aHA[ HTML_ATTR_VALUE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_LINK() RETURN { ; t_aHA[ HTML_ATTR_CHARSET ], ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; + t_aHA[ HTML_ATTR_CROSSORIGIN ], ; t_aHA[ HTML_ATTR_HREF ], ; t_aHA[ HTML_ATTR_HREFLANG ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_MEDIA ], ; t_aHA[ HTML_ATTR_METHODS ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; @@ -3161,27 +3005,20 @@ STATIC FUNCTION THtmlAttr_LINK() t_aHA[ HTML_ATTR_REL ], ; t_aHA[ HTML_ATTR_REV ], ; t_aHA[ HTML_ATTR_SDAPREF ], ; - t_aHA[ HTML_ATTR_STYLE ], ; t_aHA[ HTML_ATTR_TARGET ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_TYPE ], ; t_aHA[ HTML_ATTR_URN ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_SRCSET ] } STATIC FUNCTION THtmlAttr_LISTING() RETURN { ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_SDAPREF ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_SDAPREF ] } STATIC FUNCTION THtmlAttr_MAP() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_NAME ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; @@ -3193,19 +3030,31 @@ STATIC FUNCTION THtmlAttr_MAP() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } + +STATIC FUNCTION THtmlAttr_MARQUEE() +/* TODO: +behavior +direction +scrollamount +scrolldelay +onbounce +onfinish +onstart +*/ + RETURN { ; + t_aHA[ HTML_ATTR_XML_LANG ], ; + t_aHA[ HTML_ATTR_BGCOLOR ], ; + t_aHA[ HTML_ATTR_HEIGHT ], ; + t_aHA[ HTML_ATTR_HSPACE ], ; + t_aHA[ HTML_ATTR_LOOP ], ; + t_aHA[ HTML_ATTR_VSPACE ], ; + t_aHA[ HTML_ATTR_WIDTH ] } STATIC FUNCTION THtmlAttr_MENU() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; t_aHA[ HTML_ATTR_COMPACT ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -3218,35 +3067,43 @@ STATIC FUNCTION THtmlAttr_MENU() t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; t_aHA[ HTML_ATTR_SDAPREF ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XML_LANG ] } + +STATIC FUNCTION THtmlAttr_MENUITEM() + RETURN { ; + t_aHA[ HTML_ATTR_CHECKED ], ; + t_aHA[ HTML_ATTR_DEFAULT ], ; + t_aHA[ HTML_ATTR_DISABLED ], ; + t_aHA[ HTML_ATTR_ICON ], ; + t_aHA[ HTML_ATTR_LABEL ], ; + t_aHA[ HTML_ATTR_RADIOGROUP ], ; + t_aHA[ HTML_ATTR_TYPE ] } STATIC FUNCTION THtmlAttr_META() RETURN { ; t_aHA[ HTML_ATTR_CONTENT ], ; - t_aHA[ HTML_ATTR_DIR ], ; t_aHA[ HTML_ATTR_HTTP_EQUIV ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_NAME ], ; t_aHA[ HTML_ATTR_SCHEME ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } + +STATIC FUNCTION THtmlAttr_METER() + RETURN { ; + t_aHA[ HTML_ATTR_FORM ], ; + t_aHA[ HTML_ATTR_HIGH ], ; + t_aHA[ HTML_ATTR_LOW ], ; + t_aHA[ HTML_ATTR_MAX ], ; + t_aHA[ HTML_ATTR_MIN ], ; + t_aHA[ HTML_ATTR_OPTIMUM ], ; + t_aHA[ HTML_ATTR_VALUE ] } STATIC FUNCTION THtmlAttr_NEXTID() RETURN { ; - t_aHA[ HTML_ATTR_N ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_N ] } STATIC FUNCTION THtmlAttr_NOFRAMES() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -3257,17 +3114,10 @@ STATIC FUNCTION THtmlAttr_NOFRAMES() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XML_LANG ] } STATIC FUNCTION THtmlAttr_NOSCRIPT() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -3278,28 +3128,21 @@ STATIC FUNCTION THtmlAttr_NOSCRIPT() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_OBJECT() RETURN { ; t_aHA[ HTML_ATTR_ALIGN ], ; t_aHA[ HTML_ATTR_ARCHIVE ], ; t_aHA[ HTML_ATTR_BORDER ], ; - t_aHA[ HTML_ATTR_CLASS ], ; t_aHA[ HTML_ATTR_CLASSID ], ; t_aHA[ HTML_ATTR_CODEBASE ], ; t_aHA[ HTML_ATTR_CODETYPE ], ; - t_aHA[ HTML_ATTR_DATA ], ; t_aHA[ HTML_ATTR_DECLARE ], ; - t_aHA[ HTML_ATTR_DIR ], ; + t_aHA[ HTML_ATTR_FORM ], ; t_aHA[ HTML_ATTR_HEIGHT ], ; t_aHA[ HTML_ATTR_HSPACE ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_NAME ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; @@ -3312,24 +3155,16 @@ STATIC FUNCTION THtmlAttr_OBJECT() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_STANDBY ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TABINDEX ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_TYPE ], ; t_aHA[ HTML_ATTR_USEMAP ], ; t_aHA[ HTML_ATTR_VSPACE ], ; t_aHA[ HTML_ATTR_WIDTH ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_OL() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; t_aHA[ HTML_ATTR_COMPACT ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -3342,21 +3177,14 @@ STATIC FUNCTION THtmlAttr_OL() t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; t_aHA[ HTML_ATTR_START ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_TYPE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_OPTGROUP() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; t_aHA[ HTML_ATTR_DISABLED ], ; - t_aHA[ HTML_ATTR_ID ], ; t_aHA[ HTML_ATTR_LABEL ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -3367,20 +3195,13 @@ STATIC FUNCTION THtmlAttr_OPTGROUP() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_OPTION() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; t_aHA[ HTML_ATTR_DISABLED ], ; - t_aHA[ HTML_ATTR_ID ], ; t_aHA[ HTML_ATTR_LABEL ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -3394,20 +3215,13 @@ STATIC FUNCTION THtmlAttr_OPTION() t_aHA[ HTML_ATTR_SDAFORM ], ; t_aHA[ HTML_ATTR_SDAPREF ], ; t_aHA[ HTML_ATTR_SELECTED ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_VALUE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_P() RETURN { ; t_aHA[ HTML_ATTR_ALIGN ], ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -3419,33 +3233,23 @@ STATIC FUNCTION THtmlAttr_P() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_PARAM() RETURN { ; - t_aHA[ HTML_ATTR_ID ], ; t_aHA[ HTML_ATTR_NAME ], ; t_aHA[ HTML_ATTR_TYPE ], ; t_aHA[ HTML_ATTR_VALUE ], ; t_aHA[ HTML_ATTR_VALUETYPE ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_PLAINTEXT() RETURN { ; - t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_SDAFORM ] } STATIC FUNCTION THtmlAttr_PRE() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -3457,21 +3261,19 @@ STATIC FUNCTION THtmlAttr_PRE() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_WIDTH ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XML_SPACE ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } + +STATIC FUNCTION THtmlAttr_PROGRESS() + RETURN { ; + t_aHA[ HTML_ATTR_MAX ], ; + t_aHA[ HTML_ATTR_VALUE ] } STATIC FUNCTION THtmlAttr_Q() RETURN { ; t_aHA[ HTML_ATTR_CITE ], ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -3482,17 +3284,11 @@ STATIC FUNCTION THtmlAttr_Q() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_RB() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -3503,17 +3299,11 @@ STATIC FUNCTION THtmlAttr_RB() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_RBC() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -3524,17 +3314,11 @@ STATIC FUNCTION THtmlAttr_RBC() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_RP() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -3545,17 +3329,11 @@ STATIC FUNCTION THtmlAttr_RP() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_RT() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -3567,17 +3345,11 @@ STATIC FUNCTION THtmlAttr_RT() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_RBSPAN ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_RTC() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -3588,17 +3360,11 @@ STATIC FUNCTION THtmlAttr_RTC() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_RUBY() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -3609,18 +3375,11 @@ STATIC FUNCTION THtmlAttr_RUBY() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_S() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -3631,17 +3390,10 @@ STATIC FUNCTION THtmlAttr_S() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XML_LANG ] } STATIC FUNCTION THtmlAttr_SAMP() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -3653,33 +3405,27 @@ STATIC FUNCTION THtmlAttr_SAMP() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_SCRIPT() RETURN { ; t_aHA[ HTML_ATTR_CHARSET ], ; + t_aHA[ HTML_ATTR_CROSSORIGIN ], ; t_aHA[ HTML_ATTR_DEFER ], ; t_aHA[ HTML_ATTR_EVENT ], ; t_aHA[ HTML_ATTR_FOR ], ; - t_aHA[ HTML_ATTR_ID ], ; t_aHA[ HTML_ATTR_LANGUAGE ], ; t_aHA[ HTML_ATTR_SRC ], ; t_aHA[ HTML_ATTR_TYPE ], ; t_aHA[ HTML_ATTR_XML_SPACE ], ; t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_ASYNC ] } STATIC FUNCTION THtmlAttr_SELECT() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; t_aHA[ HTML_ATTR_DISABLED ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; + t_aHA[ HTML_ATTR_FORM ], ; t_aHA[ HTML_ATTR_MULTIPLE ], ; t_aHA[ HTML_ATTR_NAME ], ; t_aHA[ HTML_ATTR_ONBLUR ], ; @@ -3698,19 +3444,12 @@ STATIC FUNCTION THtmlAttr_SELECT() t_aHA[ HTML_ATTR_SDAFORM ], ; t_aHA[ HTML_ATTR_SDAPREF ], ; t_aHA[ HTML_ATTR_SIZE ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TABINDEX ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_AUTOCOMPLETE ] } STATIC FUNCTION THtmlAttr_SMALL() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -3721,18 +3460,11 @@ STATIC FUNCTION THtmlAttr_SMALL() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_SPAN() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -3743,18 +3475,11 @@ STATIC FUNCTION THtmlAttr_SPAN() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_STRIKE() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -3765,17 +3490,10 @@ STATIC FUNCTION THtmlAttr_STRIKE() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XML_LANG ] } STATIC FUNCTION THtmlAttr_STRONG() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -3787,31 +3505,20 @@ STATIC FUNCTION THtmlAttr_STRONG() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_STYLE() RETURN { ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_MEDIA ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_TYPE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XML_SPACE ], ; t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_SRCSET ] } STATIC FUNCTION THtmlAttr_SUB() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -3822,18 +3529,11 @@ STATIC FUNCTION THtmlAttr_SUB() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_SUP() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -3844,11 +3544,8 @@ STATIC FUNCTION THtmlAttr_SUP() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_TABLE() RETURN { ; @@ -3857,12 +3554,7 @@ STATIC FUNCTION THtmlAttr_TABLE() t_aHA[ HTML_ATTR_BORDER ], ; t_aHA[ HTML_ATTR_CELLPADDING ], ; t_aHA[ HTML_ATTR_CELLSPACING ], ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DATAPAGESIZE ], ; - t_aHA[ HTML_ATTR_DIR ], ; t_aHA[ HTML_ATTR_FRAME ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -3874,23 +3566,16 @@ STATIC FUNCTION THtmlAttr_TABLE() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_RULES ], ; - t_aHA[ HTML_ATTR_STYLE ], ; t_aHA[ HTML_ATTR_SUMMARY ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_WIDTH ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_TBODY() RETURN { ; t_aHA[ HTML_ATTR_ALIGN ], ; t_aHA[ HTML_ATTR_CHAR ], ; t_aHA[ HTML_ATTR_CHAROFF ], ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -3901,12 +3586,9 @@ STATIC FUNCTION THtmlAttr_TBODY() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_VALIGN ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_TD() RETURN { ; @@ -3916,13 +3598,9 @@ STATIC FUNCTION THtmlAttr_TD() t_aHA[ HTML_ATTR_BGCOLOR ], ; t_aHA[ HTML_ATTR_CHAR ], ; t_aHA[ HTML_ATTR_CHAROFF ], ; - t_aHA[ HTML_ATTR_CLASS ], ; t_aHA[ HTML_ATTR_COLSPAN ], ; - t_aHA[ HTML_ATTR_DIR ], ; t_aHA[ HTML_ATTR_HEADERS ], ; t_aHA[ HTML_ATTR_HEIGHT ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_NOWRAP ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; @@ -3936,23 +3614,17 @@ STATIC FUNCTION THtmlAttr_TD() t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_ROWSPAN ], ; t_aHA[ HTML_ATTR_SCOPE ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_VALIGN ], ; t_aHA[ HTML_ATTR_WIDTH ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_TEXTAREA() RETURN { ; - t_aHA[ HTML_ATTR_ACCESSKEY ], ; - t_aHA[ HTML_ATTR_CLASS ], ; t_aHA[ HTML_ATTR_COLS ], ; - t_aHA[ HTML_ATTR_DIR ], ; + t_aHA[ HTML_ATTR_DIRNAME ], ; t_aHA[ HTML_ATTR_DISABLED ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; + t_aHA[ HTML_ATTR_FORM ], ; t_aHA[ HTML_ATTR_NAME ], ; t_aHA[ HTML_ATTR_ONBLUR ], ; t_aHA[ HTML_ATTR_ONCHANGE ], ; @@ -3972,22 +3644,15 @@ STATIC FUNCTION THtmlAttr_TEXTAREA() t_aHA[ HTML_ATTR_ROWS ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; t_aHA[ HTML_ATTR_SDAPREF ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TABINDEX ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_AUTOCOMPLETE ] } STATIC FUNCTION THtmlAttr_TFOOT() RETURN { ; t_aHA[ HTML_ATTR_ALIGN ], ; t_aHA[ HTML_ATTR_CHAR ], ; t_aHA[ HTML_ATTR_CHAROFF ], ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -3998,12 +3663,9 @@ STATIC FUNCTION THtmlAttr_TFOOT() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_VALIGN ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_TH() RETURN { ; @@ -4013,13 +3675,9 @@ STATIC FUNCTION THtmlAttr_TH() t_aHA[ HTML_ATTR_BGCOLOR ], ; t_aHA[ HTML_ATTR_CHAR ], ; t_aHA[ HTML_ATTR_CHAROFF ], ; - t_aHA[ HTML_ATTR_CLASS ], ; t_aHA[ HTML_ATTR_COLSPAN ], ; - t_aHA[ HTML_ATTR_DIR ], ; t_aHA[ HTML_ATTR_HEADERS ], ; t_aHA[ HTML_ATTR_HEIGHT ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_NOWRAP ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; @@ -4033,23 +3691,16 @@ STATIC FUNCTION THtmlAttr_TH() t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_ROWSPAN ], ; t_aHA[ HTML_ATTR_SCOPE ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_VALIGN ], ; t_aHA[ HTML_ATTR_WIDTH ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_THEAD() RETURN { ; t_aHA[ HTML_ATTR_ALIGN ], ; t_aHA[ HTML_ATTR_CHAR ], ; t_aHA[ HTML_ATTR_CHAROFF ], ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -4060,22 +3711,15 @@ STATIC FUNCTION THtmlAttr_THEAD() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_VALIGN ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_TITLE() RETURN { ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_TR() RETURN { ; @@ -4083,10 +3727,6 @@ STATIC FUNCTION THtmlAttr_TR() t_aHA[ HTML_ATTR_BGCOLOR ], ; t_aHA[ HTML_ATTR_CHAR ], ; t_aHA[ HTML_ATTR_CHAROFF ], ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -4097,19 +3737,20 @@ STATIC FUNCTION THtmlAttr_TR() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_VALIGN ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } + +STATIC FUNCTION THtmlAttr_TRACK() + RETURN { ; + t_aHA[ HTML_ATTR_DEFAULT ], ; + t_aHA[ HTML_ATTR_KIND ], ; + t_aHA[ HTML_ATTR_LABEL ], ; + t_aHA[ HTML_ATTR_SRC ], ; + t_aHA[ HTML_ATTR_SRCLANG ] } STATIC FUNCTION THtmlAttr_TT() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -4121,18 +3762,11 @@ STATIC FUNCTION THtmlAttr_TT() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_U() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -4143,18 +3777,11 @@ STATIC FUNCTION THtmlAttr_U() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XML_LANG ] } STATIC FUNCTION THtmlAttr_UL() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; t_aHA[ HTML_ATTR_COMPACT ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -4166,19 +3793,12 @@ STATIC FUNCTION THtmlAttr_UL() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_TYPE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_VAR() RETURN { ; - t_aHA[ HTML_ATTR_CLASS ], ; - t_aHA[ HTML_ATTR_DIR ], ; - t_aHA[ HTML_ATTR_ID ], ; - t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -4190,17 +3810,28 @@ STATIC FUNCTION THtmlAttr_VAR() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_STYLE ], ; - t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_XMLNS ] } + +STATIC FUNCTION THtmlAttr_VIDEO() + RETURN { ; + t_aHA[ HTML_ATTR_AUTOPLAY ], ; + t_aHA[ HTML_ATTR_CONTROLS ], ; + t_aHA[ HTML_ATTR_HEIGHT ], ; + t_aHA[ HTML_ATTR_LOOP ], ; + t_aHA[ HTML_ATTR_MEDIAGROUP ], ; + t_aHA[ HTML_ATTR_MUTED ], ; + t_aHA[ HTML_ATTR_POSTER ], ; + t_aHA[ HTML_ATTR_PRELOAD ], ; + t_aHA[ HTML_ATTR_SRC ], ; + t_aHA[ HTML_ATTR_WIDTH ], ; + t_aHA[ HTML_ATTR_ONCLICK ], ; + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_XMP() RETURN { ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_SDAPREF ], ; - t_aHA[ HTML_ATTR_UNKNOWN ] } + t_aHA[ HTML_ATTR_SDAPREF ] } #ifdef HB_LEGACY_LEVEL4 From 313aa4ee48f9a30dfe32301d771c07f0b7c793ac Mon Sep 17 00:00:00 2001 From: Naldo DJ Date: Thu, 14 Apr 2022 13:02:48 -0300 Subject: [PATCH 02/19] New HTML Features --- contrib/hbtip/thtml.ch | 2 +- contrib/hbtip/thtml.prg | 27 +++++++++++++++++++++++++-- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/contrib/hbtip/thtml.ch b/contrib/hbtip/thtml.ch index 2f1ab4549c..ff6bd2f5d5 100644 --- a/contrib/hbtip/thtml.ch +++ b/contrib/hbtip/thtml.ch @@ -284,12 +284,12 @@ #define HTML_ATTR_MAX 202 #define HTML_ATTR_MEDIAGROUP 203 #define HTML_ATTR_MIN 204 -//AQUI #define HTML_ATTR_MUTED 205 #define HTML_ATTR_NOVALIDATE 206 #define HTML_ATTR_OPEN 207 #define HTML_ATTR_OPTIMUM 208 #define HTML_ATTR_ONABORT 209 +//AQUI #define HTML_ATTR_ONAFTERPRINT 210 #define HTML_ATTR_ONBEFOREPRINT 211 #define HTML_ATTR_ONCANPLAY 212 diff --git a/contrib/hbtip/thtml.prg b/contrib/hbtip/thtml.prg index 62bdd8ec60..540212ebc8 100644 --- a/contrib/hbtip/thtml.prg +++ b/contrib/hbtip/thtml.prg @@ -1677,13 +1677,14 @@ STATIC PROCEDURE _Init_Html_TagTypes t_hHT[ "data" ] := { @THtmlAttr_DATA() , ( CM_INLINE ) } t_hHT[ "dd" ] := { @THtmlAttr_DD() , hb_bitOr( CM_DEFLIST, CM_OPT, CM_NO_INDENT ) } t_hHT[ "del" ] := { @THtmlAttr_DEL() , hb_bitOr( CM_INLINE, CM_BLOCK, CM_MIXED ) } + t_hHT[ "details" ] := { @THtmlAttr_DETAILS() , ( CM_BLOCK ) } t_hHT[ "dfn" ] := { @THtmlAttr_DFN() , ( CM_INLINE ) } t_hHT[ "dir" ] := { @THtmlAttr_DIR() , hb_bitOr( CM_BLOCK, CM_OBSOLETE ) } t_hHT[ "div" ] := { @THtmlAttr_DIV() , ( CM_BLOCK ) } t_hHT[ "dl" ] := { @THtmlAttr_DL() , ( CM_BLOCK ) } t_hHT[ "dt" ] := { @THtmlAttr_DT() , hb_bitOr( CM_DEFLIST, CM_OPT, CM_NO_INDENT ) } t_hHT[ "em" ] := { @THtmlAttr_EM() , ( CM_INLINE ) } - t_hHT[ "embed" ] := { , hb_bitOr( CM_INLINE, CM_IMG, CM_EMPTY ) } + t_hHT[ "embed" ] := { @THtmlAttr_EMBED() , hb_bitOr( CM_INLINE, CM_IMG, CM_EMPTY ) } t_hHT[ "fieldset" ] := { @THtmlAttr_FIELDSET() , ( CM_BLOCK ) } t_hHT[ "figure" ] := { @THtmlAttr_FIGURE() , hb_bitOr( CM_TABLE, CM_EMPTY ) } t_hHT[ "figcaption" ] := { @THtmlAttr_FIGCAPTION() , hb_bitOr( CM_TABLE, CM_EMPTY ) } @@ -1901,6 +1902,7 @@ STATIC PROCEDURE _Init_Html_Attributes t_aHA[ HTML_ATTR_METHODS ] := { "methods" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_MIN ] := { "min" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_MULTIPLE ] := { "multiple" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_MUTED ] := { "muted" , HTML_ATTR_TYPE_BOOL } t_aHA[ HTML_ATTR_N ] := { "n" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_NAME ] := { "name" , HTML_ATTR_TYPE_NAME } t_aHA[ HTML_ATTR_NOHREF ] := { "nohref" , HTML_ATTR_TYPE_BOOL } @@ -1909,6 +1911,7 @@ STATIC PROCEDURE _Init_Html_Attributes t_aHA[ HTML_ATTR_NOVALIDATE ] := { "novalidate" , HTML_ATTR_TYPE_BOOL } t_aHA[ HTML_ATTR_NOWRAP ] := { "nowrap" , HTML_ATTR_TYPE_BOOL } t_aHA[ HTML_ATTR_OBJECT ] := { "object" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_ONABORT ] := { "onabort" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONAFTERUPDATE ] := { "onafterupdate" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONBEFOREUNLOAD ] := { "onbeforeunload" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONBEFOREUPDATE ] := { "onbeforeupdate" , HTML_ATTR_TYPE_SCRIPT } @@ -1936,6 +1939,8 @@ STATIC PROCEDURE _Init_Html_Attributes t_aHA[ HTML_ATTR_ONSELECT ] := { "onselect" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONSUBMIT ] := { "onsubmit" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONUNLOAD ] := { "onunload" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_OPEN ] := { "open" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_OPTIMUM ] := { "optimum" , HTML_ATTR_TYPE_NUMBER } t_aHA[ HTML_ATTR_PROFILE ] := { "profile" , HTML_ATTR_TYPE_URL } t_aHA[ HTML_ATTR_PROMPT ] := { "prompt" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_RBSPAN ] := { "rbspan" , HTML_ATTR_TYPE_NUMBER } @@ -2167,6 +2172,7 @@ STATIC FUNCTION THtmlAttr_AUDIO() t_aHA[ HTML_ATTR_NAME ], ; t_aHA[ HTML_ATTR_LOOP ], ; t_aHA[ HTML_ATTR_MEDIAGROUP ], ; + t_aHA[ HTML_ATTR_ONABORT ], ; t_aHA[ HTML_ATTR_SRC ] } STATIC FUNCTION THtmlAttr_B() @@ -2464,7 +2470,11 @@ STATIC FUNCTION THtmlAttr_DEL() t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } - + +STATIC FUNCTION THtmlAttr_DETAILS() + RETURN { ; + t_aHA[ HTML_ATTR_OPEN ] } + STATIC FUNCTION THtmlAttr_DFN() RETURN { ; t_aHA[ HTML_ATTR_ONCLICK ], ; @@ -2562,6 +2572,16 @@ STATIC FUNCTION THtmlAttr_EM() t_aHA[ HTML_ATTR_SDAFORM ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } + +STATIC FUNCTION THtmlAttr_EMBED() + RETURN { ; + t_aHA[ HTML_ATTR_HEIGHT ], ; + t_aHA[ HTML_ATTR_SRC ], ; + t_aHA[ HTML_ATTR_TYPE ], ; + t_aHA[ HTML_ATTR_WIDTH ], ; + t_aHA[ HTML_ATTR_ONKEYUP ], ; + t_aHA[ HTML_ATTR_XMLNS ], ; + t_aHA[ HTML_ATTR_ONABORT ] } STATIC FUNCTION THtmlAttr_FIELDSET() RETURN { ; @@ -2819,6 +2839,7 @@ STATIC FUNCTION THtmlAttr_IMG() t_aHA[ HTML_ATTR_ISMAP ], ; t_aHA[ HTML_ATTR_LONGDESC ], ; t_aHA[ HTML_ATTR_NAME ], ; + t_aHA[ HTML_ATTR_ONABORT ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -3144,6 +3165,7 @@ STATIC FUNCTION THtmlAttr_OBJECT() t_aHA[ HTML_ATTR_HEIGHT ], ; t_aHA[ HTML_ATTR_HSPACE ], ; t_aHA[ HTML_ATTR_NAME ], ; + t_aHA[ HTML_ATTR_ONABORT ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -3825,6 +3847,7 @@ STATIC FUNCTION THtmlAttr_VIDEO() t_aHA[ HTML_ATTR_PRELOAD ], ; t_aHA[ HTML_ATTR_SRC ], ; t_aHA[ HTML_ATTR_WIDTH ], ; + t_aHA[ HTML_ATTR_ONABORT ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_XMLNS ] } From 40e6a5622366528f656c2f9f15fc0719d4994308 Mon Sep 17 00:00:00 2001 From: Naldo DJ Date: Thu, 14 Apr 2022 19:56:19 -0300 Subject: [PATCH 03/19] New HTML Features --- contrib/hbtip/thtml.ch | 3 ++- contrib/hbtip/thtml.prg | 28 ++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/contrib/hbtip/thtml.ch b/contrib/hbtip/thtml.ch index ff6bd2f5d5..32675a28ed 100644 --- a/contrib/hbtip/thtml.ch +++ b/contrib/hbtip/thtml.ch @@ -289,7 +289,6 @@ #define HTML_ATTR_OPEN 207 #define HTML_ATTR_OPTIMUM 208 #define HTML_ATTR_ONABORT 209 -//AQUI #define HTML_ATTR_ONAFTERPRINT 210 #define HTML_ATTR_ONBEFOREPRINT 211 #define HTML_ATTR_ONCANPLAY 212 @@ -299,9 +298,11 @@ #define HTML_ATTR_ONDRAG 216 #define HTML_ATTR_ONDRAGEND 217 #define HTML_ATTR_ONDRAGENTER 218 +//AQUI #define HTML_ATTR_ONDRAGLEAVE 219 #define HTML_ATTR_ONDRAGOVER 220 #define HTML_ATTR_ONDRAGSTART 221 + #define HTML_ATTR_ONDROP 222 #define HTML_ATTR_ONDURATIONCHANGE 223 #define HTML_ATTR_ONEMPTIED 224 diff --git a/contrib/hbtip/thtml.prg b/contrib/hbtip/thtml.prg index 540212ebc8..06d3fad2df 100644 --- a/contrib/hbtip/thtml.prg +++ b/contrib/hbtip/thtml.prg @@ -1913,14 +1913,26 @@ STATIC PROCEDURE _Init_Html_Attributes t_aHA[ HTML_ATTR_OBJECT ] := { "object" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_ONABORT ] := { "onabort" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONAFTERUPDATE ] := { "onafterupdate" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONAFTERPRINT ] := { "onafterprint" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONBEFOREPRINT ] := { "onbeforeprint" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONBEFOREUNLOAD ] := { "onbeforeunload" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONBEFOREUPDATE ] := { "onbeforeupdate" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONBLUR ] := { "onblur" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONCANPLAY ] := { "oncanplay" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONCANPLAYTHROUGH ] := { "oncanplaythrough" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONCHANGE ] := { "onchange" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONCLICK ] := { "onclick" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONCONTEXTMENU ] := { "oncontextmenu" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONCUECHANGE ] := { "oncuechange" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONDATAAVAILABLE ] := { "ondataavailable" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONDATASETCHANGED ] := { "ondatasetchanged" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONDATASETCOMPLETE] := { "ondatasetcomplete", HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONDRAG ] := { "ondrag" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONDRAGEND ] := { "ondragend" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONDRAGENTER ] := { "ondragenter" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONDRAGLEAVE ] := { "ondragleave" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONDRAGOVER ] := { "ondragover" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONDRAGSTART ] := { "ondragstart" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONDBLCLICK ] := { "ondblclick" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONERRORUPDATE ] := { "onerrorupdate" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONFOCUS ] := { "onfocus" , HTML_ATTR_TYPE_SCRIPT } @@ -2031,6 +2043,13 @@ STATIC FUNCTION THtmlAttr_GlobalAttributes() t_aHA[ HTML_ATTR_ITEMTYPE ], ; t_aHA[ HTML_ATTR_LANG ], ; t_aHA[ HTML_ATTR_NONCE ], ; + t_aHA[ HTML_ATTR_ONCONTEXTMENU ], ; + t_aHA[ HTML_ATTR_ONDRAG ], ; + t_aHA[ HTML_ATTR_ONDRAGEND ], ; + t_aHA[ HTML_ATTR_ONDRAGENTER ], ; + t_aHA[ HTML_ATTR_ONDRAGLEAVE ], ; + t_aHA[ HTML_ATTR_ONDRAGOVER ], ; + t_aHA[ HTML_ATTR_ONDRAGSTART ], ; t_aHA[ HTML_ATTR_PART ], ; t_aHA[ HTML_ATTR_ROLE ], ; t_aHA[ HTML_ATTR_SLOT ], ; @@ -2167,6 +2186,8 @@ STATIC FUNCTION THtmlAttr_ASIDE() STATIC FUNCTION THtmlAttr_AUDIO() RETURN { ; t_aHA[ HTML_ATTR_AUTOPLAY ], ; + t_aHA[ HTML_ATTR_ONCANPLAY ], ; + t_aHA[ HTML_ATTR_ONCANPLAYTHROUGH ], ; t_aHA[ HTML_ATTR_CONTROLS ], ; t_aHA[ HTML_ATTR_CROSSORIGIN ], ; t_aHA[ HTML_ATTR_NAME ], ; @@ -2280,6 +2301,8 @@ STATIC FUNCTION THtmlAttr_BODY() t_aHA[ HTML_ATTR_BACKGROUND ], ; t_aHA[ HTML_ATTR_BGCOLOR ], ; t_aHA[ HTML_ATTR_LINK ], ; + t_aHA[ HTML_ATTR_ONAFTERPRINT ], ; + t_aHA[ HTML_ATTR_ONBEFOREPRINT ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -2579,6 +2602,7 @@ STATIC FUNCTION THtmlAttr_EMBED() t_aHA[ HTML_ATTR_SRC ], ; t_aHA[ HTML_ATTR_TYPE ], ; t_aHA[ HTML_ATTR_WIDTH ], ; + t_aHA[ HTML_ATTR_ONCANPLAY ], ; t_aHA[ HTML_ATTR_ONKEYUP ], ; t_aHA[ HTML_ATTR_XMLNS ], ; t_aHA[ HTML_ATTR_ONABORT ] } @@ -3166,6 +3190,7 @@ STATIC FUNCTION THtmlAttr_OBJECT() t_aHA[ HTML_ATTR_HSPACE ], ; t_aHA[ HTML_ATTR_NAME ], ; t_aHA[ HTML_ATTR_ONABORT ], ; + t_aHA[ HTML_ATTR_ONCANPLAY ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; @@ -3768,6 +3793,7 @@ STATIC FUNCTION THtmlAttr_TRACK() t_aHA[ HTML_ATTR_DEFAULT ], ; t_aHA[ HTML_ATTR_KIND ], ; t_aHA[ HTML_ATTR_LABEL ], ; + t_aHA[ HTML_ATTR_ONCUECHANGE ], ; t_aHA[ HTML_ATTR_SRC ], ; t_aHA[ HTML_ATTR_SRCLANG ] } @@ -3848,6 +3874,8 @@ STATIC FUNCTION THtmlAttr_VIDEO() t_aHA[ HTML_ATTR_SRC ], ; t_aHA[ HTML_ATTR_WIDTH ], ; t_aHA[ HTML_ATTR_ONABORT ], ; + t_aHA[ HTML_ATTR_ONCANPLAY ], ; + t_aHA[ HTML_ATTR_ONCANPLAYTHROUGH ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_XMLNS ] } From 2dfebafacf23c39ba489f6a88cc62705e56b4492 Mon Sep 17 00:00:00 2001 From: Naldo DJ Date: Thu, 14 Apr 2022 22:38:59 -0300 Subject: [PATCH 04/19] New HTML Features --- contrib/hbtip/thtml.ch | 3 +-- contrib/hbtip/thtml.prg | 59 ++++++++++++++++++++++++++++++++++------- 2 files changed, 51 insertions(+), 11 deletions(-) diff --git a/contrib/hbtip/thtml.ch b/contrib/hbtip/thtml.ch index 32675a28ed..e3ea59a2c4 100644 --- a/contrib/hbtip/thtml.ch +++ b/contrib/hbtip/thtml.ch @@ -298,11 +298,9 @@ #define HTML_ATTR_ONDRAG 216 #define HTML_ATTR_ONDRAGEND 217 #define HTML_ATTR_ONDRAGENTER 218 -//AQUI #define HTML_ATTR_ONDRAGLEAVE 219 #define HTML_ATTR_ONDRAGOVER 220 #define HTML_ATTR_ONDRAGSTART 221 - #define HTML_ATTR_ONDROP 222 #define HTML_ATTR_ONDURATIONCHANGE 223 #define HTML_ATTR_ONEMPTIED 224 @@ -317,6 +315,7 @@ #define HTML_ATTR_ONMESSAGE 233 #define HTML_ATTR_ONMOUSEWHEEL 234 #define HTML_ATTR_ONOFFLINE 235 +//AQUI #define HTML_ATTR_ONONLINE 236 #define HTML_ATTR_ONPAGEHIDE 237 #define HTML_ATTR_ONPAGESHOW 238 diff --git a/contrib/hbtip/thtml.prg b/contrib/hbtip/thtml.prg index 06d3fad2df..ff3135dafb 100644 --- a/contrib/hbtip/thtml.prg +++ b/contrib/hbtip/thtml.prg @@ -1717,7 +1717,7 @@ STATIC PROCEDURE _Init_Html_TagTypes t_hHT[ "link" ] := { @THtmlAttr_LINK() , hb_bitOr( CM_HEAD, CM_EMPTY ) } t_hHT[ "listing" ] := { @THtmlAttr_LISTING() , hb_bitOr( CM_BLOCK, CM_OBSOLETE ) } t_hHT[ "map" ] := { @THtmlAttr_MAP() , ( CM_INLINE ) } - t_hHT[ "marquee" ] := { @THtmlAttr_MARQUEE() , hb_bitOr( CM_INLINE, CM_OPT, CM_OBSOLETE ) } + t_hHT[ "marquee" ] := { @THtmlAttr_MARQUEE() , hb_bitOr( CM_INLINE, CM_OPT, CM_OBSOLETE ) } t_hHT[ "menu" ] := { @THtmlAttr_MENU() , hb_bitOr( CM_BLOCK, CM_OBSOLETE ) } t_hHT[ "menuitem" ] := { @THtmlAttr_MENUITEM() , hb_bitOr( CM_BLOCK, CM_OBSOLETE ) } t_hHT[ "meta" ] := { @THtmlAttr_META() , hb_bitOr( CM_HEAD, CM_EMPTY ) } @@ -1914,7 +1914,7 @@ STATIC PROCEDURE _Init_Html_Attributes t_aHA[ HTML_ATTR_ONABORT ] := { "onabort" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONAFTERUPDATE ] := { "onafterupdate" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONAFTERPRINT ] := { "onafterprint" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONBEFOREPRINT ] := { "onbeforeprint" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONBEFOREPRINT ] := { "onbeforeprint" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONBEFOREUNLOAD ] := { "onbeforeunload" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONBEFOREUPDATE ] := { "onbeforeupdate" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONBLUR ] := { "onblur" , HTML_ATTR_TYPE_SCRIPT } @@ -1934,17 +1934,31 @@ STATIC PROCEDURE _Init_Html_Attributes t_aHA[ HTML_ATTR_ONDRAGOVER ] := { "ondragover" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONDRAGSTART ] := { "ondragstart" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONDBLCLICK ] := { "ondblclick" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONDROP ] := { "ondrop" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONDURATIONCHANGE ] := { "ondurationchange" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONEMPTIED ] := { "onemptied" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONENDED ] := { "onended" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONERROR ] := { "onerror" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONERRORUPDATE ] := { "onerrorupdate" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONFOCUS ] := { "onfocus" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONHASHCHANGE ] := { "onhashchange" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONINPUT ] := { "oninput" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONINVALID ] := { "oninvalid" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONKEYDOWN ] := { "onkeydown" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONKEYPRESS ] := { "onkeypress" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONKEYUP ] := { "onkeyup" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONLOAD ] := { "onload" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONLOADEDDATA ] := { "onloadeddata" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONLOADEDMETADATA ] := { "onloadedmetadata" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONLOADSTART ] := { "onloadstart" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONMESSAGE ] := { "onmessage" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONMOUSEDOWN ] := { "onmousedown" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONMOUSEMOVE ] := { "onmousemove" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONMOUSEOUT ] := { "onmouseout" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONMOUSEOVER ] := { "onmouseover" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONMOUSEUP ] := { "onmouseup" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONMOUSEWHEEL ] := { "onmousewheel" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONOFFLINE ] := { "onoffline" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONRESET ] := { "onreset" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONROWENTER ] := { "onrowenter" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONROWEXIT ] := { "onrowexit" , HTML_ATTR_TYPE_SCRIPT } @@ -2049,7 +2063,10 @@ STATIC FUNCTION THtmlAttr_GlobalAttributes() t_aHA[ HTML_ATTR_ONDRAGENTER ], ; t_aHA[ HTML_ATTR_ONDRAGLEAVE ], ; t_aHA[ HTML_ATTR_ONDRAGOVER ], ; - t_aHA[ HTML_ATTR_ONDRAGSTART ], ; + t_aHA[ HTML_ATTR_ONDRAGSTART ], ; + t_aHA[ HTML_ATTR_ONDROP ], ; + t_aHA[ HTML_ATTR_ONMESSAGE ], ; + t_aHA[ HTML_ATTR_ONMOUSEWHEEL ], ; t_aHA[ HTML_ATTR_PART ], ; t_aHA[ HTML_ATTR_ROLE ], ; t_aHA[ HTML_ATTR_SLOT ], ; @@ -2194,6 +2211,13 @@ STATIC FUNCTION THtmlAttr_AUDIO() t_aHA[ HTML_ATTR_LOOP ], ; t_aHA[ HTML_ATTR_MEDIAGROUP ], ; t_aHA[ HTML_ATTR_ONABORT ], ; + t_aHA[ HTML_ATTR_ONDURATIONCHANGE ], ; + t_aHA[ HTML_ATTR_ONEMPTIED ], ; + t_aHA[ HTML_ATTR_ONENDED ], ; + t_aHA[ HTML_ATTR_ONERROR ], ; + t_aHA[ HTML_ATTR_ONLOADEDDATA ], ; + t_aHA[ HTML_ATTR_ONLOADEDMETADATA ], ; + t_aHA[ HTML_ATTR_ONLOADSTART ], ; t_aHA[ HTML_ATTR_SRC ] } STATIC FUNCTION THtmlAttr_B() @@ -2305,6 +2329,8 @@ STATIC FUNCTION THtmlAttr_BODY() t_aHA[ HTML_ATTR_ONBEFOREPRINT ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; + t_aHA[ HTML_ATTR_ONERROR ], ; + t_aHA[ HTML_ATTR_ONHASHCHANGE ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; t_aHA[ HTML_ATTR_ONKEYPRESS ], ; t_aHA[ HTML_ATTR_ONKEYUP ], ; @@ -2314,6 +2340,7 @@ STATIC FUNCTION THtmlAttr_BODY() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; + t_aHA[ HTML_ATTR_ONOFFLINE ], ; t_aHA[ HTML_ATTR_ONUNLOAD ], ; t_aHA[ HTML_ATTR_TEXT ], ; t_aHA[ HTML_ATTR_VLINK ], ; @@ -2493,11 +2520,11 @@ STATIC FUNCTION THtmlAttr_DEL() t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } - -STATIC FUNCTION THtmlAttr_DETAILS() + +STATIC FUNCTION THtmlAttr_DETAILS() RETURN { ; t_aHA[ HTML_ATTR_OPEN ] } - + STATIC FUNCTION THtmlAttr_DFN() RETURN { ; t_aHA[ HTML_ATTR_ONCLICK ], ; @@ -2595,8 +2622,8 @@ STATIC FUNCTION THtmlAttr_EM() t_aHA[ HTML_ATTR_SDAFORM ], ; t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } - -STATIC FUNCTION THtmlAttr_EMBED() + +STATIC FUNCTION THtmlAttr_EMBED() RETURN { ; t_aHA[ HTML_ATTR_HEIGHT ], ; t_aHA[ HTML_ATTR_SRC ], ; @@ -2605,7 +2632,8 @@ STATIC FUNCTION THtmlAttr_EMBED() t_aHA[ HTML_ATTR_ONCANPLAY ], ; t_aHA[ HTML_ATTR_ONKEYUP ], ; t_aHA[ HTML_ATTR_XMLNS ], ; - t_aHA[ HTML_ATTR_ONABORT ] } + t_aHA[ HTML_ATTR_ONABORT ], ; + t_aHA[ HTML_ATTR_ONERROR ] } STATIC FUNCTION THtmlAttr_FIELDSET() RETURN { ; @@ -2866,6 +2894,7 @@ STATIC FUNCTION THtmlAttr_IMG() t_aHA[ HTML_ATTR_ONABORT ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; + t_aHA[ HTML_ATTR_ONERROR ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; t_aHA[ HTML_ATTR_ONKEYPRESS ], ; t_aHA[ HTML_ATTR_ONKEYUP ], ; @@ -2908,6 +2937,8 @@ STATIC FUNCTION THtmlAttr_INPUT() t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; t_aHA[ HTML_ATTR_ONFOCUS ], ; + t_aHA[ HTML_ATTR_ONINPUT ], ; + t_aHA[ HTML_ATTR_ONINVALID ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; t_aHA[ HTML_ATTR_ONKEYPRESS ], ; t_aHA[ HTML_ATTR_ONKEYUP ], ; @@ -3039,6 +3070,7 @@ STATIC FUNCTION THtmlAttr_LINK() t_aHA[ HTML_ATTR_METHODS ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; + t_aHA[ HTML_ATTR_ONERROR ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; t_aHA[ HTML_ATTR_ONKEYPRESS ], ; t_aHA[ HTML_ATTR_ONKEYUP ], ; @@ -3193,6 +3225,7 @@ STATIC FUNCTION THtmlAttr_OBJECT() t_aHA[ HTML_ATTR_ONCANPLAY ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; + t_aHA[ HTML_ATTR_ONERROR ], ; t_aHA[ HTML_ATTR_ONKEYDOWN ], ; t_aHA[ HTML_ATTR_ONKEYPRESS ], ; t_aHA[ HTML_ATTR_ONKEYUP ], ; @@ -3463,6 +3496,7 @@ STATIC FUNCTION THtmlAttr_SCRIPT() t_aHA[ HTML_ATTR_EVENT ], ; t_aHA[ HTML_ATTR_FOR ], ; t_aHA[ HTML_ATTR_LANGUAGE ], ; + t_aHA[ HTML_ATTR_ONERROR ], ; t_aHA[ HTML_ATTR_SRC ], ; t_aHA[ HTML_ATTR_TYPE ], ; t_aHA[ HTML_ATTR_XML_SPACE ], ; @@ -3877,6 +3911,13 @@ STATIC FUNCTION THtmlAttr_VIDEO() t_aHA[ HTML_ATTR_ONCANPLAY ], ; t_aHA[ HTML_ATTR_ONCANPLAYTHROUGH ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; + t_aHA[ HTML_ATTR_ONDURATIONCHANGE ], ; + t_aHA[ HTML_ATTR_ONEMPTIED ], ; + t_aHA[ HTML_ATTR_ONENDED ], ; + t_aHA[ HTML_ATTR_ONERROR ], ; + t_aHA[ HTML_ATTR_ONLOADEDDATA ], ; + t_aHA[ HTML_ATTR_ONLOADEDMETADATA ], ; + t_aHA[ HTML_ATTR_ONLOADSTART ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_XMP() From ba0a29fa78ae477f0d3f9caa757432ceb45d10b8 Mon Sep 17 00:00:00 2001 From: Naldo DJ Date: Fri, 15 Apr 2022 13:32:55 -0300 Subject: [PATCH 05/19] New HTML Features --- contrib/hbtip/thtml.prg | 51 ++++++++++++++++++++++------------------- 1 file changed, 28 insertions(+), 23 deletions(-) diff --git a/contrib/hbtip/thtml.prg b/contrib/hbtip/thtml.prg index ff3135dafb..4118b2ea88 100644 --- a/contrib/hbtip/thtml.prg +++ b/contrib/hbtip/thtml.prg @@ -1074,7 +1074,7 @@ METHOD toString( nIndent ) CLASS THtmlNode // Builds the attribute string METHOD attrToString() CLASS THtmlNode - LOCAL aAttr, cAttr, nAttr + LOCAL aAttr, cAttr IF ::htmlAttributes == NIL cAttr := "" @@ -1082,26 +1082,36 @@ METHOD attrToString() CLASS THtmlNode cAttr := " " + ::htmlAttributes ELSE // attributes are parsed into a Hash - BEGIN SEQUENCE WITH __BreakBlock() - aAttr := ::htmlTagType[ 1 ]:exec() - RECOVER - aAttr := {} // Tag has no attributes - END SEQUENCE - //Add Global Attributes - //The global attributes below can be used on any HTML element - if t_aGlbAttr==NIL - t_aGlbAttr:=THtmlAttr_GlobalAttributes() - endif - for nAttr:=1 to len(t_aGlbAttr) - if (aScan(aAttr,{|x|x[1]==t_aGlbAttr[nAttr][1]})==0) - aAdd(aAttr,t_aGlbAttr[nAttr]) - endif - next nAttr + aAttr := __getAttributes( ::htmlTagType[ 1 ] ) cAttr := "" hb_HEval( ::htmlAttributes, {| cKey, cValue | cAttr += __AttrToStr( cKey, cValue, aAttr, Self ) } ) ENDIF RETURN cAttr + +STATIC FUNCTION __getAttributes( cAttrFunc ) + + LOCAL aAttr + LOCAL nAttr + + BEGIN SEQUENCE WITH __BreakBlock() + aAttr := cAttrFunc:exec() + RECOVER + aAttr := {} // Tag has no attributes + END SEQUENCE + + //Add Global Attributes + //The global attributes below can be used on any HTML element + if t_aGlbAttr==NIL + t_aGlbAttr:=THtmlAttr_GlobalAttributes() + endif + for nAttr:=1 to len(t_aGlbAttr) + if (aScan(aAttr,{|a|a[1]==t_aGlbAttr[nAttr][1]})==0) + aAdd(aAttr,t_aGlbAttr[nAttr]) + endif + next nAttr + + RETURN(aAttr) STATIC FUNCTION __AttrToStr( cName, cValue, aAttr, oTHtmlNode ) @@ -1326,12 +1336,7 @@ METHOD setAttribute( cName, cValue ) CLASS THtmlNode RETURN ::error( "Invalid HTML attribute for: <" + ::htmlTagName + ">", ::className(), cName, EG_ARG, { cName, cValue } ) ENDIF - BEGIN SEQUENCE WITH __BreakBlock() - aAttr := ::htmlTagType[ 1 ]:exec() - RECOVER - // Tag has no attributes - aAttr := {} - END SEQUENCE + aAttr := __getAttributes( ::htmlTagType[ 1 ] ) IF ( nPos := AScan( aAttr, {| a | a[ 1 ] == Lower( cName ) } ) ) == 0 // Tag doesn't have this attribute @@ -1738,7 +1743,7 @@ STATIC PROCEDURE _Init_Html_TagTypes t_hHT[ "param" ] := { @THtmlAttr_PARAM() , hb_bitOr( CM_INLINE, CM_EMPTY ) } t_hHT[ "plaintext" ] := { @THtmlAttr_PLAINTEXT() , hb_bitOr( CM_BLOCK, CM_OBSOLETE ) } t_hHT[ "pre" ] := { @THtmlAttr_PRE() , ( CM_BLOCK ) } - t_aHA[ "progress" ] := { @THtmlAttr_PROGRESS() , ( CM_BLOCK ) } + t_hHT[ "progress" ] := { @THtmlAttr_PROGRESS() , ( CM_BLOCK ) } t_hHT[ "q" ] := { @THtmlAttr_Q() , ( CM_INLINE ) } t_hHT[ "rb" ] := { @THtmlAttr_RB() , ( CM_INLINE ) } t_hHT[ "rbc" ] := { @THtmlAttr_RBC() , ( CM_INLINE ) } From 806c210a0d7c415ad3ab9b67db59f9dfbe204f27 Mon Sep 17 00:00:00 2001 From: Naldo DJ Date: Fri, 15 Apr 2022 20:59:27 -0300 Subject: [PATCH 06/19] New HTML Features --- contrib/hbtip/thtml.ch | 89 +++-- contrib/hbtip/thtml.prg | 718 +++++++++++++++++++++++++--------------- 2 files changed, 489 insertions(+), 318 deletions(-) diff --git a/contrib/hbtip/thtml.ch b/contrib/hbtip/thtml.ch index e3ea59a2c4..2852a18315 100644 --- a/contrib/hbtip/thtml.ch +++ b/contrib/hbtip/thtml.ch @@ -315,7 +315,6 @@ #define HTML_ATTR_ONMESSAGE 233 #define HTML_ATTR_ONMOUSEWHEEL 234 #define HTML_ATTR_ONOFFLINE 235 -//AQUI #define HTML_ATTR_ONONLINE 236 #define HTML_ATTR_ONPAGEHIDE 237 #define HTML_ATTR_ONPAGESHOW 238 @@ -390,55 +389,55 @@ #define HTML_ATTR_ARIA_VALUEMAX 307 #define HTML_ATTR_ARIA_VALUEMIN 308 #define HTML_ATTR_ARIA_VALUENOW 309 -#define HTML_ATTR_ARIA_VALUETEXT +#define HTML_ATTR_ARIA_VALUETEXT 310 /* SVG attributes (SVG 1.1) */ -#define HTML_ATTR_X 310 -#define HTML_ATTR_Y 311 -#define HTML_ATTR_VIEWBOX 312 -#define HTML_ATTR_PRESERVEASPECTRATIO 313 -#define HTML_ATTR_ZOOMANDPAN 314 -#define HTML_ATTR_BASEPROFILE 315 -#define HTML_ATTR_CONTENTSCRIPTTYPE 316 -#define HTML_ATTR_CONTENTSTYLETYPE 317 +#define HTML_ATTR_X 311 +#define HTML_ATTR_Y 312 +#define HTML_ATTR_VIEWBOX 313 +#define HTML_ATTR_PRESERVEASPECTRATIO 314 +#define HTML_ATTR_ZOOMANDPAN 315 +#define HTML_ATTR_BASEPROFILE 316 +#define HTML_ATTR_CONTENTSCRIPTTYPE 317 +#define HTML_ATTR_CONTENTSTYLETYPE 318 /* MathML attributes */ -#define HTML_ATTR_DISPLAY 318 +#define HTML_ATTR_DISPLAY 319 /* RDFa global attributes */ -#define HTML_ATTR_ABOUT 319 -#define HTML_ATTR_DATATYPE 320 -#define HTML_ATTR_INLIST 321 -#define HTML_ATTR_PREFIX 322 -#define HTML_ATTR_PROPERTY 323 -#define HTML_ATTR_RESOURCE 324 -#define HTML_ATTR_TYPEOF 325 -#define HTML_ATTR_VOCAB 326 -#define HTML_ATTR_INTEGRITY 327 -#define HTML_ATTR_AS 328 -#define HTML_ATTR_XMLNSXLINK 329 -#define HTML_ATTR_SLOT 330 -#define HTML_ATTR_LOADING 331 +#define HTML_ATTR_ABOUT 320 +#define HTML_ATTR_DATATYPE 321 +#define HTML_ATTR_INLIST 322 +#define HTML_ATTR_PREFIX 323 +#define HTML_ATTR_PROPERTY 324 +#define HTML_ATTR_RESOURCE 325 +#define HTML_ATTR_TYPEOF 326 +#define HTML_ATTR_VOCAB 327 +#define HTML_ATTR_INTEGRITY 328 +#define HTML_ATTR_AS 329 +#define HTML_ATTR_XMLNSXLINK 330 +#define HTML_ATTR_SLOT 331 +#define HTML_ATTR_LOADING 333 /* SVG paint attributes (SVG 1.1) */ -#define HTML_ATTR_FILL 332 -#define HTML_ATTR_FILLRULE 333 -#define HTML_ATTR_STROKE 334 -#define HTML_ATTR_STROKEDASHARRAY 335 -#define HTML_ATTR_STROKEDASHOFFSET 336 -#define HTML_ATTR_STROKELINECAP 337 -#define HTML_ATTR_STROKELINEJOIN 338 -#define HTML_ATTR_STROKEMITERLIMIT 339 -#define HTML_ATTR_STROKEWIDTH 340 -#define HTML_ATTR_COLORINTERPOLATION 341 -#define HTML_ATTR_COLORRENDERING 342 -#define HTML_ATTR_OPACITY 343 -#define HTML_ATTR_STROKEOPACITY 344 -#define HTML_ATTR_FILLOPACITY 345 -#define HTML_ATTR_AUTOCAPITALIZE 346 -#define HTML_ATTR_ENTERKEYHINT 347 -#define HTML_ATTR_EXPORTPARTS 348 -#define HTML_ATTR_INPUTMODE 349 -#define HTML_ATTR_NONCE 350 -#define HTML_ATTR_PART 351 +#define HTML_ATTR_FILL 333 +#define HTML_ATTR_FILLRULE 334 +#define HTML_ATTR_STROKE 335 +#define HTML_ATTR_STROKEDASHARRAY 336 +#define HTML_ATTR_STROKEDASHOFFSET 337 +#define HTML_ATTR_STROKELINECAP 338 +#define HTML_ATTR_STROKELINEJOIN 339 +#define HTML_ATTR_STROKEMITERLIMIT 340 +#define HTML_ATTR_STROKEWIDTH 341 +#define HTML_ATTR_COLORINTERPOLATION 342 +#define HTML_ATTR_COLORRENDERING 343 +#define HTML_ATTR_OPACITY 344 +#define HTML_ATTR_STROKEOPACITY 345 +#define HTML_ATTR_FILLOPACITY 346 +#define HTML_ATTR_AUTOCAPITALIZE 347 +#define HTML_ATTR_ENTERKEYHINT 348 +#define HTML_ATTR_EXPORTPARTS 349 +#define HTML_ATTR_INPUTMODE 350 +#define HTML_ATTR_NONCE 351 +#define HTML_ATTR_PART 352 -#define HTML_ATTR_COUNT 351 +#define HTML_ATTR_COUNT 352 #define HTML_ATTR_TYPE_UNKNOWN 0 #define HTML_ATTR_TYPE_ACTION 1 diff --git a/contrib/hbtip/thtml.prg b/contrib/hbtip/thtml.prg index 4118b2ea88..6a3b9370d7 100644 --- a/contrib/hbtip/thtml.prg +++ b/contrib/hbtip/thtml.prg @@ -85,6 +85,7 @@ THREAD STATIC t_aHA // data for HTML attributes THREAD STATIC t_hHT // data for HTML tags THREAD STATIC t_aGlbAttr // data for Global HTML attributes +THREAD STATIC t_cHB_EOL THREAD STATIC t_cHtmlCP := "" THREAD STATIC t_aHtmlUnicEntities // HTML character entities THREAD STATIC t_cHtmlUnicChars @@ -101,6 +102,10 @@ THREAD STATIC t_lInit := .F. // initialization flag for HTML data /* Class for handling an entire HTML document */ CREATE CLASS THtmlDocument MODULE FRIENDLY + if t_cHB_EOL==NIL + t_cHB_EOL:=hb_eol() + endif + HIDDEN: VAR oIterator VAR nodes @@ -129,17 +134,21 @@ ENDCLASS METHOD new( cHtmlString ) CLASS THtmlDocument LOCAL oSubNode, oErrNode, aHead, aBody, nMode := 0 - - LOCAL cEmptyHtmlDoc := ; - "" + hb_eol() + ; - "" + hb_eol() + ; - " " + hb_eol() + ; - " " + hb_eol() + ; - " " + hb_eol() + ; - " " + hb_eol() + ; - "" - - IF ! HB_ISSTRING( cHtmlString ) + LOCAL cEmptyHtmlDoc + +#pragma __cstream | cEmptyHtmlDoc:=%s + + + + + + + +#pragma __endtext + + cEmptyHtmlDoc+=t_cHB_EOL + + IF !HB_ISSTRING( cHtmlString ) ::root := THtmlNode():new( cEmptyHtmlDoc ) ELSEIF "", "<" + ::htmlEndTagName + ">" ) ENDIF - IF ! Right( cHtml, Len( hb_eol() ) ) == hb_eol() - cHtml += hb_eol() + IF ! Right( cHtml, Len( t_cHB_EOL ) ) == t_cHB_EOL + cHtml += t_cHB_EOL ENDIF RETURN cHtml += cIndent + iif( ::htmlEndTagName == "/", " />", "<" + ::htmlEndTagName + ">" ) ELSEIF ::htmlTagName $ "!--,br" - RETURN cHtml += hb_eol() + cIndent + RETURN cHtml += t_cHB_EOL + cIndent ENDIF RETURN cHtml @@ -1094,11 +1107,15 @@ STATIC FUNCTION __getAttributes( cAttrFunc ) LOCAL aAttr LOCAL nAttr + HB_DEFAULT(@cAttrFunc,{||Array(0)}) + BEGIN SEQUENCE WITH __BreakBlock() aAttr := cAttrFunc:exec() RECOVER aAttr := {} // Tag has no attributes END SEQUENCE + + HB_DEFAULT(@aAttr,{}) //Add Global Attributes //The global attributes below can be used on any HTML element @@ -1106,8 +1123,10 @@ STATIC FUNCTION __getAttributes( cAttrFunc ) t_aGlbAttr:=THtmlAttr_GlobalAttributes() endif for nAttr:=1 to len(t_aGlbAttr) - if (aScan(aAttr,{|a|a[1]==t_aGlbAttr[nAttr][1]})==0) - aAdd(aAttr,t_aGlbAttr[nAttr]) + if (len(t_aGlbAttr[nAttr])>=1) + if (aScan(aAttr,{|a|if(len(a)>=1,a[1]==t_aGlbAttr[nAttr][1],.F.)})==0) + aAdd(aAttr,t_aGlbAttr[nAttr]) + endif endif next nAttr @@ -1115,9 +1134,23 @@ STATIC FUNCTION __getAttributes( cAttrFunc ) STATIC FUNCTION __AttrToStr( cName, cValue, aAttr, oTHtmlNode ) + LOCAL cNameToLower LOCAL nPos - IF ( nPos := AScan( aAttr, {| a | a[ 1 ] == Lower( cName ) } ) ) == 0 + IF ("data-"==Left(cName,5)) + /* + The data-* attribute is used to store custom data private to the page or application. + The data-* attribute gives us the ability to embed custom data attributes on all HTML elements. + The stored (custom) data can then be used in the page's JavaScript to create a more engaging user experience (without any Ajax calls or server-side database queries). + The data-* attribute consist of two parts: + The attribute name should not contain any uppercase letters, and must be at least one character long after the prefix "data-" + The attribute value can be any string + Note: Custom attributes prefixed with "data-" will be completely ignored by the user agent.*/ + RETURN " " + cName + "=" + '"' + cValue + '"' + ENDIF + + cNameToLower:=Lower( cName ) + IF ( nPos := AScan( aAttr, {| a | a[ 1 ] == cNameToLower } ) ) == 0 // Tag doesn't have this attribute RETURN oTHtmlNode:error( "Invalid HTML attribute for: <" + oTHtmlNode:htmlTagName + ">", oTHtmlNode:className(), cName, EG_ARG, { cName, cValue } ) ENDIF @@ -1167,7 +1200,7 @@ METHOD getText( cEOL ) CLASS THtmlNode LOCAL cText := "" LOCAL oNode - hb_default( @cEOL, hb_eol() ) + hb_default( @cEOL, t_cHB_EOL ) IF ::htmlTagName == "_text_" RETURN RTrim( ::htmlContent ) + cEOL @@ -1328,22 +1361,34 @@ STATIC FUNCTION __ParseAttr( parser ) METHOD setAttribute( cName, cValue ) CLASS THtmlNode LOCAL aAttr + lOCAL cNameToLower LOCAL nPos - LOCAL hHash := ::getAttributes() + LOCAL hHash - IF ! HB_ISHASH( hHash ) - // Tag doesn't have any attribute - RETURN ::error( "Invalid HTML attribute for: <" + ::htmlTagName + ">", ::className(), cName, EG_ARG, { cName, cValue } ) - ENDIF + IF ("data-"==Left(cName,5)) - aAttr := __getAttributes( ::htmlTagType[ 1 ] ) + hHash := {=>} - IF ( nPos := AScan( aAttr, {| a | a[ 1 ] == Lower( cName ) } ) ) == 0 - // Tag doesn't have this attribute - RETURN ::error( "Invalid HTML attribute for: <" + ::htmlTagName + ">", ::className(), cName, EG_ARG, { cName, cValue } ) - ENDIF + ELSE - IF aAttr[ nPos ][ 2 ] == HTML_ATTR_TYPE_BOOL + hHash := ::getAttributes() + + IF !HB_ISHASH( hHash ) + // Tag doesn't have any attribute + RETURN ::error( "Invalid HTML attribute for: <" + ::htmlTagName + ">", ::className(), cName, EG_ARG, { cName, cValue } ) + ENDIF + + aAttr := __getAttributes( ::htmlTagType[ 1 ] ) + + cNameToLower:=Lower( cName ) + IF ( nPos := AScan( aAttr, {| a | a[ 1 ] == cNameToLower } ) ) == 0 + // Tag doesn't have this attribute + RETURN ::error( "Invalid HTML attribute for: <" + ::htmlTagName + ">", ::className(), cName, EG_ARG, { cName, cValue } ) + ENDIF + + ENDIF + + IF !Empty(nPos) .and. aAttr[ nPos ][ 2 ] == HTML_ATTR_TYPE_BOOL hHash[ cName ] := "" ELSE hHash[ cName ] := cValue @@ -1439,10 +1484,12 @@ METHOD noAttribute( cName, aValue ) CLASS THtmlNode METHOD findNodeByTagName( cName ) CLASS THtmlNode LOCAL aNodes := ::collect() + LOCAL cNameToLower LOCAL oNode + cNameToLower:=Lower( cName ) FOR EACH oNode IN aNodes - IF Lower( oNode:htmlTagName ) == Lower( cName ) + IF Lower( oNode:htmlTagName ) == cNameToLower RETURN oNode ENDIF NEXT @@ -1453,11 +1500,13 @@ METHOD findNodeByTagName( cName ) CLASS THtmlNode METHOD findNodesByTagName( cName, nOrdinal ) CLASS THtmlNode LOCAL aNodes := ::collect() + LOCAL cNameToLower LOCAL oNode LOCAL aRet := {} + cNameToLower:=Lower( cName ) FOR EACH oNode IN aNodes - IF Lower( oNode:htmlTagName ) == Lower( cName ) + IF Lower( oNode:htmlTagName ) == cNameToLower AAdd( aRet, oNode ) ENDIF NEXT @@ -1621,6 +1670,7 @@ FUNCTION THtmlTagType( cTagName ) FUNCTION THtmlIsValid( cTagName, cAttrName ) LOCAL lRet := .T., aValue + LOCAL cAttrNameToLower IF t_hHT == NIL THtmlInit() @@ -1629,8 +1679,9 @@ FUNCTION THtmlIsValid( cTagName, cAttrName ) BEGIN SEQUENCE WITH __BreakBlock() aValue := t_hHT[ cTagName ] IF cAttrName != NIL - aValue := aValue[ 1 ]:exec() - lRet := AScan( aValue, {| a | Lower( a[ 1 ] ) == Lower( cAttrName ) } ) > 0 + cAttrNameToLower:=Lower( cAttrName ) + aValue := __getAttributes( aValue[ 1 ] ) + lRet := AScan( aValue, {| a | Lower( a[ 1 ] ) == cAttrNameToLower } ) > 0 ENDIF RECOVER lRet := .F. @@ -1789,240 +1840,361 @@ STATIC PROCEDURE _Init_Html_TagTypes STATIC PROCEDURE _Init_Html_Attributes - // attribute NAME TYPE - t_aHA[ HTML_ATTR_ABBR ] := { "abbr" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_ACCEPT ] := { "accept" , HTML_ATTR_TYPE_XTYPE } - t_aHA[ HTML_ATTR_ACCEPT_CHARSET ] := { "accept-charset" , HTML_ATTR_TYPE_CHARSET } - t_aHA[ HTML_ATTR_ACCESSKEY ] := { "accesskey" , HTML_ATTR_TYPE_CHARACTER } - t_aHA[ HTML_ATTR_ACTION ] := { "action" , HTML_ATTR_TYPE_ACTION } - t_aHA[ HTML_ATTR_ADD_DATE ] := { "add_date" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_ALIGN ] := { "align" , HTML_ATTR_TYPE_ALIGN } - t_aHA[ HTML_ATTR_ALINK ] := { "alink" , HTML_ATTR_TYPE_COLOR } - t_aHA[ HTML_ATTR_ALLOWFULLSCREEN ] := { "allowfullscreen" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_ALT ] := { "alt" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_ARCHIVE ] := { "archive" , HTML_ATTR_TYPE_URLS } - t_aHA[ HTML_ATTR_ASYNC ] := { "async" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_AUTOCOMPLETE ] := { "autocomplete" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_AUTOFOCUS ] := { "autofocus" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_AUTOPLAY ] := { "autoplay" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_AXIS ] := { "axis" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_BACKGROUND ] := { "background" , HTML_ATTR_TYPE_URL } - t_aHA[ HTML_ATTR_BGCOLOR ] := { "bgcolor" , HTML_ATTR_TYPE_COLOR } - t_aHA[ HTML_ATTR_BGPROPERTIES ] := { "bgproperties" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_BORDER ] := { "border" , HTML_ATTR_TYPE_BORDER } - t_aHA[ HTML_ATTR_BORDERCOLOR ] := { "bordercolor" , HTML_ATTR_TYPE_COLOR } - t_aHA[ HTML_ATTR_BOTTOMMARGIN ] := { "bottommargin" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_CELLPADDING ] := { "cellpadding" , HTML_ATTR_TYPE_LENGTH } - t_aHA[ HTML_ATTR_CELLSPACING ] := { "cellspacing" , HTML_ATTR_TYPE_LENGTH } - t_aHA[ HTML_ATTR_CHAR ] := { "char" , HTML_ATTR_TYPE_CHARACTER } - t_aHA[ HTML_ATTR_CHAROFF ] := { "charoff" , HTML_ATTR_TYPE_LENGTH } - t_aHA[ HTML_ATTR_CHARSET ] := { "charset" , HTML_ATTR_TYPE_CHARSET } - t_aHA[ HTML_ATTR_CHECKED ] := { "checked" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_CITE ] := { "cite" , HTML_ATTR_TYPE_URL } - t_aHA[ HTML_ATTR_CLASS ] := { "class" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_CLASSID ] := { "classid" , HTML_ATTR_TYPE_URL } - t_aHA[ HTML_ATTR_CLEAR ] := { "clear" , HTML_ATTR_TYPE_CLEAR } - t_aHA[ HTML_ATTR_CODE ] := { "code" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_CODEBASE ] := { "codebase" , HTML_ATTR_TYPE_URL } - t_aHA[ HTML_ATTR_CODETYPE ] := { "codetype" , HTML_ATTR_TYPE_XTYPE } - t_aHA[ HTML_ATTR_COLOR ] := { "color" , HTML_ATTR_TYPE_COLOR } - t_aHA[ HTML_ATTR_COLS ] := { "cols" , HTML_ATTR_TYPE_COLS } - t_aHA[ HTML_ATTR_COLSPAN ] := { "colspan" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_COMPACT ] := { "compact" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_CONTENT ] := { "content" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_CONTENTEDITABLE ] := { "contenteditable" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_CONTEXTMENU ] := { "contextmenu" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_CONTROLS ] := { "controls" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_COORDS ] := { "coords" , HTML_ATTR_TYPE_COORDS } - t_aHA[ HTML_ATTR_CROSSORIGIN ] := { "crossorigin" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_DATA ] := { "data" , HTML_ATTR_TYPE_URL } - t_aHA[ HTML_ATTR_DATAFLD ] := { "datafld" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_DATAFORMATAS ] := { "dataformatas" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_DATAPAGESIZE ] := { "datapagesize" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_DATASRC ] := { "datasrc" , HTML_ATTR_TYPE_URL } - t_aHA[ HTML_ATTR_DATETIME ] := { "datetime" , HTML_ATTR_TYPE_DATE } - t_aHA[ HTML_ATTR_DECLARE ] := { "declare" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_DEFER ] := { "defer" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_DIR ] := { "dir" , HTML_ATTR_TYPE_TEXTDIR } - t_aHA[ HTML_ATTR_DIRNAME ] := { "dirname" , HTML_ATTR_TYPE_TEXTDIR } - t_aHA[ HTML_ATTR_DISABLED ] := { "disabled" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_DOWNLOAD ] := { "download" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_DRAGGABLE ] := { "draggable" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_DROPZONE ] := { "dropzone" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_ENCODING ] := { "encoding" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_ENCTYPE ] := { "enctype" , HTML_ATTR_TYPE_XTYPE } - t_aHA[ HTML_ATTR_EVENT ] := { "event" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_FACE ] := { "face" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_FOR ] := { "for" , HTML_ATTR_TYPE_IDREF } - t_aHA[ HTML_ATTR_FORM ] := { "form" , HTML_ATTR_TYPE_IDREF } - t_aHA[ HTML_ATTR_FORMACTION ] := { "formaction" , HTML_ATTR_TYPE_IDREF } - t_aHA[ HTML_ATTR_FORMENCTYPE ] := { "formenctype" , HTML_ATTR_TYPE_TYPE } - t_aHA[ HTML_ATTR_FORMMETHOD ] := { "formmethod" , HTML_ATTR_TYPE_FSUBMIT } - t_aHA[ HTML_ATTR_FORMNOVALIDATE ] := { "formnovalidate" , HTML_ATTR_TYPE_FVALIDATE } - t_aHA[ HTML_ATTR_FORMTARGET ] := { "formtarget" , HTML_ATTR_TYPE_TARGET } - t_aHA[ HTML_ATTR_FRAME ] := { "frame" , HTML_ATTR_TYPE_TFRAME } - t_aHA[ HTML_ATTR_FRAMEBORDER ] := { "frameborder" , HTML_ATTR_TYPE_FBORDER } - t_aHA[ HTML_ATTR_FRAMESPACING ] := { "framespacing" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_GRIDX ] := { "gridx" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_GRIDY ] := { "gridy" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_HEADERS ] := { "headers" , HTML_ATTR_TYPE_IDREFS } - t_aHA[ HTML_ATTR_HEIGHT ] := { "height" , HTML_ATTR_TYPE_LENGTH } - t_aHA[ HTML_ATTR_HIDDEN ] := { "hidden" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_HIGH ] := { "high" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_HREF ] := { "href" , HTML_ATTR_TYPE_URL } - t_aHA[ HTML_ATTR_HREFLANG ] := { "hreflang" , HTML_ATTR_TYPE_LANG } - t_aHA[ HTML_ATTR_HSPACE ] := { "hspace" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_HTTP_EQUIV ] := { "http-equiv" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_ICON ] := { "icon" , HTML_ATTR_TYPE_ICON } - t_aHA[ HTML_ATTR_ID ] := { "id" , HTML_ATTR_TYPE_IDDEF } - t_aHA[ HTML_ATTR_IS ] := { "is" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_ISMAP ] := { "ismap" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_ITEMID ] := { "itemid" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_ITEMPROP ] := { "itemprop" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_ITEMREF ] := { "itemref" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_ITEMSCOPE ] := { "itemscope" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_ITEMTYPE ] := { "itemtype" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_KEYTYPE ] := { "keytype" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_KIND ] := { "kind" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_LABEL ] := { "label" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_LANG ] := { "lang" , HTML_ATTR_TYPE_LANG } - t_aHA[ HTML_ATTR_LANGUAGE ] := { "language" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_LAST_MODIFIED ] := { "last_modified" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_LAST_VISIT ] := { "last_visit" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_LEFTMARGIN ] := { "leftmargin" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_LINK ] := { "link" , HTML_ATTR_TYPE_COLOR } - t_aHA[ HTML_ATTR_LIST ] := { "list" , HTML_ATTR_TYPE_LIST } - t_aHA[ HTML_ATTR_LONGDESC ] := { "longdesc" , HTML_ATTR_TYPE_URL } - t_aHA[ HTML_ATTR_LOOP ] := { "loop" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_LOW ] := { "low" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_LOWSRC ] := { "lowsrc" , HTML_ATTR_TYPE_URL } - t_aHA[ HTML_ATTR_MANIFEST ] := { "manifest" , HTML_ATTR_TYPE_URL } - t_aHA[ HTML_ATTR_MARGINHEIGHT ] := { "marginheight" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_MARGINWIDTH ] := { "marginwidth" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_MAX ] := { "max" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_MAXLENGTH ] := { "maxlength" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_MEDIA ] := { "media" , HTML_ATTR_TYPE_MEDIA } - t_aHA[ HTML_ATTR_MEDIAGROUP ] := { "mediagroup" , HTML_ATTR_TYPE_MEDIA } - t_aHA[ HTML_ATTR_METHOD ] := { "method" , HTML_ATTR_TYPE_FSUBMIT } - t_aHA[ HTML_ATTR_METHODS ] := { "methods" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_MIN ] := { "min" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_MULTIPLE ] := { "multiple" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_MUTED ] := { "muted" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_N ] := { "n" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_NAME ] := { "name" , HTML_ATTR_TYPE_NAME } - t_aHA[ HTML_ATTR_NOHREF ] := { "nohref" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_NORESIZE ] := { "noresize" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_NOSHADE ] := { "noshade" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_NOVALIDATE ] := { "novalidate" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_NOWRAP ] := { "nowrap" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_OBJECT ] := { "object" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_ONABORT ] := { "onabort" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONAFTERUPDATE ] := { "onafterupdate" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONAFTERPRINT ] := { "onafterprint" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONBEFOREPRINT ] := { "onbeforeprint" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONBEFOREUNLOAD ] := { "onbeforeunload" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONBEFOREUPDATE ] := { "onbeforeupdate" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONBLUR ] := { "onblur" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONCANPLAY ] := { "oncanplay" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONCANPLAYTHROUGH ] := { "oncanplaythrough" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONCHANGE ] := { "onchange" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONCLICK ] := { "onclick" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONCONTEXTMENU ] := { "oncontextmenu" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONCUECHANGE ] := { "oncuechange" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONDATAAVAILABLE ] := { "ondataavailable" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONDATASETCHANGED ] := { "ondatasetchanged" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONDATASETCOMPLETE] := { "ondatasetcomplete", HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONDRAG ] := { "ondrag" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONDRAGEND ] := { "ondragend" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONDRAGENTER ] := { "ondragenter" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONDRAGLEAVE ] := { "ondragleave" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONDRAGOVER ] := { "ondragover" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONDRAGSTART ] := { "ondragstart" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONDBLCLICK ] := { "ondblclick" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONDROP ] := { "ondrop" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONDURATIONCHANGE ] := { "ondurationchange" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONEMPTIED ] := { "onemptied" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONENDED ] := { "onended" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONERROR ] := { "onerror" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONERRORUPDATE ] := { "onerrorupdate" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONFOCUS ] := { "onfocus" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONHASHCHANGE ] := { "onhashchange" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONINPUT ] := { "oninput" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONINVALID ] := { "oninvalid" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONKEYDOWN ] := { "onkeydown" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONKEYPRESS ] := { "onkeypress" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONKEYUP ] := { "onkeyup" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONLOAD ] := { "onload" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONLOADEDDATA ] := { "onloadeddata" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONLOADEDMETADATA ] := { "onloadedmetadata" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONLOADSTART ] := { "onloadstart" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONMESSAGE ] := { "onmessage" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONMOUSEDOWN ] := { "onmousedown" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONMOUSEMOVE ] := { "onmousemove" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONMOUSEOUT ] := { "onmouseout" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONMOUSEOVER ] := { "onmouseover" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONMOUSEUP ] := { "onmouseup" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONMOUSEWHEEL ] := { "onmousewheel" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONOFFLINE ] := { "onoffline" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONRESET ] := { "onreset" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONROWENTER ] := { "onrowenter" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONROWEXIT ] := { "onrowexit" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONSELECT ] := { "onselect" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONSUBMIT ] := { "onsubmit" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONUNLOAD ] := { "onunload" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_OPEN ] := { "open" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_OPTIMUM ] := { "optimum" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_PROFILE ] := { "profile" , HTML_ATTR_TYPE_URL } - t_aHA[ HTML_ATTR_PROMPT ] := { "prompt" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_RBSPAN ] := { "rbspan" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_READONLY ] := { "readonly" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_REL ] := { "rel" , HTML_ATTR_TYPE_LINKTYPES } - t_aHA[ HTML_ATTR_REV ] := { "rev" , HTML_ATTR_TYPE_LINKTYPES } - t_aHA[ HTML_ATTR_RIGHTMARGIN ] := { "rightmargin" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_ROLE ] := { "role" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_ROWS ] := { "rows" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_ROWSPAN ] := { "rowspan" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_RULES ] := { "rules" , HTML_ATTR_TYPE_TRULES } - t_aHA[ HTML_ATTR_SCHEME ] := { "scheme" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_SCOPE ] := { "scope" , HTML_ATTR_TYPE_SCOPE } - t_aHA[ HTML_ATTR_SCROLLING ] := { "scrolling" , HTML_ATTR_TYPE_SCROLL } - t_aHA[ HTML_ATTR_SDAFORM ] := { "sdaform" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_SDAPREF ] := { "sdapref" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_SDASUFF ] := { "sdasuff" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_SELECTED ] := { "selected" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_SHAPE ] := { "shape" , HTML_ATTR_TYPE_SHAPE } - t_aHA[ HTML_ATTR_SHOWGRID ] := { "showgrid" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_SHOWGRIDX ] := { "showgridx" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_SHOWGRIDY ] := { "showgridy" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_SIZE ] := { "size" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_SPAN ] := { "span" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_SRC ] := { "src" , HTML_ATTR_TYPE_URL } - t_aHA[ HTML_ATTR_SRCSET ] := { "srcset" , HTML_ATTR_TYPE_URL } - t_aHA[ HTML_ATTR_STANDBY ] := { "standby" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_START ] := { "start" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_STYLE ] := { "style" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_SUMMARY ] := { "summary" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_TABINDEX ] := { "tabindex" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_TARGET ] := { "target" , HTML_ATTR_TYPE_TARGET } - t_aHA[ HTML_ATTR_TEXT ] := { "text" , HTML_ATTR_TYPE_COLOR } - t_aHA[ HTML_ATTR_TITLE ] := { "title" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_TOPMARGIN ] := { "topmargin" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_TRANSLATE ] := { "translate" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_TYPE ] := { "type" , HTML_ATTR_TYPE_TYPE } - t_aHA[ HTML_ATTR_UNKNOWN ] := { "unknown!" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_URN ] := { "urn" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_USEMAP ] := { "usemap" , HTML_ATTR_TYPE_URL } - t_aHA[ HTML_ATTR_VALIGN ] := { "valign" , HTML_ATTR_TYPE_VALIGN } - t_aHA[ HTML_ATTR_VALUE ] := { "value" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_VALUETYPE ] := { "valuetype" , HTML_ATTR_TYPE_VTYPE } - t_aHA[ HTML_ATTR_VERSION ] := { "version" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_VLINK ] := { "vlink" , HTML_ATTR_TYPE_COLOR } - t_aHA[ HTML_ATTR_VSPACE ] := { "vspace" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_WIDTH ] := { "width" , HTML_ATTR_TYPE_LENGTH } - t_aHA[ HTML_ATTR_WRAP ] := { "wrap" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_XMLNS ] := { "xmlns" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_XML_LANG ] := { "xml:lang" , HTML_ATTR_TYPE_LANG } - t_aHA[ HTML_ATTR_XML_SPACE ] := { "xml:space" , HTML_ATTR_TYPE_PCDATA } + /* attribute NAME TYPE */ + t_aHA[ HTML_ATTR_ABBR ] := { "abbr" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_ACCEPT ] := { "accept" , HTML_ATTR_TYPE_XTYPE } + t_aHA[ HTML_ATTR_ACCEPT_CHARSET ] := { "accept-charset" , HTML_ATTR_TYPE_CHARSET } + t_aHA[ HTML_ATTR_ACCESSKEY ] := { "accesskey" , HTML_ATTR_TYPE_CHARACTER } + t_aHA[ HTML_ATTR_ACTION ] := { "action" , HTML_ATTR_TYPE_ACTION } + t_aHA[ HTML_ATTR_ADD_DATE ] := { "add_date" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_ALIGN ] := { "align" , HTML_ATTR_TYPE_ALIGN } + t_aHA[ HTML_ATTR_ALINK ] := { "alink" , HTML_ATTR_TYPE_COLOR } + t_aHA[ HTML_ATTR_ALLOWFULLSCREEN ] := { "allowfullscreen" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_ALT ] := { "alt" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_ARCHIVE ] := { "archive" , HTML_ATTR_TYPE_URLS } + t_aHA[ HTML_ATTR_ASYNC ] := { "async" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_AUTOCAPITALIZE ] := { "autocapitalize" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_AUTOCOMPLETE ] := { "autocomplete" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_AUTOFOCUS ] := { "autofocus" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_AUTOPLAY ] := { "autoplay" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_AXIS ] := { "axis" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_BACKGROUND ] := { "background" , HTML_ATTR_TYPE_URL } + t_aHA[ HTML_ATTR_BGCOLOR ] := { "bgcolor" , HTML_ATTR_TYPE_COLOR } + t_aHA[ HTML_ATTR_BGPROPERTIES ] := { "bgproperties" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_BORDER ] := { "border" , HTML_ATTR_TYPE_BORDER } + t_aHA[ HTML_ATTR_BORDERCOLOR ] := { "bordercolor" , HTML_ATTR_TYPE_COLOR } + t_aHA[ HTML_ATTR_BOTTOMMARGIN ] := { "bottommargin" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_CELLPADDING ] := { "cellpadding" , HTML_ATTR_TYPE_LENGTH } + t_aHA[ HTML_ATTR_CELLSPACING ] := { "cellspacing" , HTML_ATTR_TYPE_LENGTH } + t_aHA[ HTML_ATTR_CHAR ] := { "char" , HTML_ATTR_TYPE_CHARACTER } + t_aHA[ HTML_ATTR_CHAROFF ] := { "charoff" , HTML_ATTR_TYPE_LENGTH } + t_aHA[ HTML_ATTR_CHARSET ] := { "charset" , HTML_ATTR_TYPE_CHARSET } + t_aHA[ HTML_ATTR_CHECKED ] := { "checked" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_CITE ] := { "cite" , HTML_ATTR_TYPE_URL } + t_aHA[ HTML_ATTR_CLASS ] := { "class" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_CLASSID ] := { "classid" , HTML_ATTR_TYPE_URL } + t_aHA[ HTML_ATTR_CLEAR ] := { "clear" , HTML_ATTR_TYPE_CLEAR } + t_aHA[ HTML_ATTR_CODE ] := { "code" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_CODEBASE ] := { "codebase" , HTML_ATTR_TYPE_URL } + t_aHA[ HTML_ATTR_CODETYPE ] := { "codetype" , HTML_ATTR_TYPE_XTYPE } + t_aHA[ HTML_ATTR_COLOR ] := { "color" , HTML_ATTR_TYPE_COLOR } + t_aHA[ HTML_ATTR_COLS ] := { "cols" , HTML_ATTR_TYPE_COLS } + t_aHA[ HTML_ATTR_COLSPAN ] := { "colspan" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_COMPACT ] := { "compact" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_CONTENT ] := { "content" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_CONTENTEDITABLE ] := { "contenteditable" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_CONTEXTMENU ] := { "contextmenu" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_CONTROLS ] := { "controls" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_COORDS ] := { "coords" , HTML_ATTR_TYPE_COORDS } + t_aHA[ HTML_ATTR_CROSSORIGIN ] := { "crossorigin" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_DATA ] := { "data" , HTML_ATTR_TYPE_URL } + t_aHA[ HTML_ATTR_DATAFLD ] := { "datafld" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_DATAFORMATAS ] := { "dataformatas" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_DATAPAGESIZE ] := { "datapagesize" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_DATASRC ] := { "datasrc" , HTML_ATTR_TYPE_URL } + t_aHA[ HTML_ATTR_DATATYPE ] := { "datatype" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_DATETIME ] := { "datetime" , HTML_ATTR_TYPE_DATE } + t_aHA[ HTML_ATTR_DECLARE ] := { "declare" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_DEFER ] := { "defer" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_DIR ] := { "dir" , HTML_ATTR_TYPE_TEXTDIR } + t_aHA[ HTML_ATTR_DIRNAME ] := { "dirname" , HTML_ATTR_TYPE_TEXTDIR } + t_aHA[ HTML_ATTR_DISABLED ] := { "disabled" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_DOWNLOAD ] := { "download" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_DRAGGABLE ] := { "draggable" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_DROPZONE ] := { "dropzone" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_ENCODING ] := { "encoding" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_ENCTYPE ] := { "enctype" , HTML_ATTR_TYPE_XTYPE } + t_aHA[ HTML_ATTR_ENTERKEYHINT ] := { "enterkeyhint" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_EVENT ] := { "event" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_FACE ] := { "face" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_FOR ] := { "for" , HTML_ATTR_TYPE_IDREF } + t_aHA[ HTML_ATTR_FORM ] := { "form" , HTML_ATTR_TYPE_IDREF } + t_aHA[ HTML_ATTR_FORMACTION ] := { "formaction" , HTML_ATTR_TYPE_IDREF } + t_aHA[ HTML_ATTR_FORMENCTYPE ] := { "formenctype" , HTML_ATTR_TYPE_TYPE } + t_aHA[ HTML_ATTR_FORMMETHOD ] := { "formmethod" , HTML_ATTR_TYPE_FSUBMIT } + t_aHA[ HTML_ATTR_FORMNOVALIDATE ] := { "formnovalidate" , HTML_ATTR_TYPE_FVALIDATE } + t_aHA[ HTML_ATTR_FORMTARGET ] := { "formtarget" , HTML_ATTR_TYPE_TARGET } + t_aHA[ HTML_ATTR_FRAME ] := { "frame" , HTML_ATTR_TYPE_TFRAME } + t_aHA[ HTML_ATTR_FRAMEBORDER ] := { "frameborder" , HTML_ATTR_TYPE_FBORDER } + t_aHA[ HTML_ATTR_FRAMESPACING ] := { "framespacing" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_GRIDX ] := { "gridx" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_GRIDY ] := { "gridy" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_HEADERS ] := { "headers" , HTML_ATTR_TYPE_IDREFS } + t_aHA[ HTML_ATTR_HEIGHT ] := { "height" , HTML_ATTR_TYPE_LENGTH } + t_aHA[ HTML_ATTR_HIDDEN ] := { "hidden" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_HIGH ] := { "high" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_HREF ] := { "href" , HTML_ATTR_TYPE_URL } + t_aHA[ HTML_ATTR_HREFLANG ] := { "hreflang" , HTML_ATTR_TYPE_LANG } + t_aHA[ HTML_ATTR_HSPACE ] := { "hspace" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_HTTP_EQUIV ] := { "http-equiv" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_ICON ] := { "icon" , HTML_ATTR_TYPE_ICON } + t_aHA[ HTML_ATTR_ID ] := { "id" , HTML_ATTR_TYPE_IDDEF } + t_aHA[ HTML_ATTR_IS ] := { "is" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_ISMAP ] := { "ismap" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_ITEMID ] := { "itemid" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_ITEMPROP ] := { "itemprop" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_ITEMREF ] := { "itemref" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_ITEMSCOPE ] := { "itemscope" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_ITEMTYPE ] := { "itemtype" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_KEYTYPE ] := { "keytype" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_KIND ] := { "kind" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_LABEL ] := { "label" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_LANG ] := { "lang" , HTML_ATTR_TYPE_LANG } + t_aHA[ HTML_ATTR_LANGUAGE ] := { "language" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_LAST_MODIFIED ] := { "last_modified" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_LAST_VISIT ] := { "last_visit" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_LEFTMARGIN ] := { "leftmargin" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_LINK ] := { "link" , HTML_ATTR_TYPE_COLOR } + t_aHA[ HTML_ATTR_LIST ] := { "list" , HTML_ATTR_TYPE_LIST } + t_aHA[ HTML_ATTR_LONGDESC ] := { "longdesc" , HTML_ATTR_TYPE_URL } + t_aHA[ HTML_ATTR_LOOP ] := { "loop" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_LOW ] := { "low" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_LOWSRC ] := { "lowsrc" , HTML_ATTR_TYPE_URL } + t_aHA[ HTML_ATTR_MANIFEST ] := { "manifest" , HTML_ATTR_TYPE_URL } + t_aHA[ HTML_ATTR_MARGINHEIGHT ] := { "marginheight" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_MARGINWIDTH ] := { "marginwidth" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_MAX ] := { "max" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_MAXLENGTH ] := { "maxlength" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_MEDIA ] := { "media" , HTML_ATTR_TYPE_MEDIA } + t_aHA[ HTML_ATTR_MEDIAGROUP ] := { "mediagroup" , HTML_ATTR_TYPE_MEDIA } + t_aHA[ HTML_ATTR_METHOD ] := { "method" , HTML_ATTR_TYPE_FSUBMIT } + t_aHA[ HTML_ATTR_METHODS ] := { "methods" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_MIN ] := { "min" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_MULTIPLE ] := { "multiple" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_MUTED ] := { "muted" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_N ] := { "n" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_NAME ] := { "name" , HTML_ATTR_TYPE_NAME } + t_aHA[ HTML_ATTR_NOHREF ] := { "nohref" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_NORESIZE ] := { "noresize" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_NOSHADE ] := { "noshade" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_NOVALIDATE ] := { "novalidate" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_NOWRAP ] := { "nowrap" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_OBJECT ] := { "object" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_ONABORT ] := { "onabort" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONAFTERUPDATE ] := { "onafterupdate" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONAFTERPRINT ] := { "onafterprint" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONBEFOREPRINT ] := { "onbeforeprint" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONBEFOREUNLOAD ] := { "onbeforeunload" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONBEFOREUPDATE ] := { "onbeforeupdate" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONBLUR ] := { "onblur" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONCANPLAY ] := { "oncanplay" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONCANPLAYTHROUGH ] := { "oncanplaythrough" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONCHANGE ] := { "onchange" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONCLICK ] := { "onclick" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONCONTEXTMENU ] := { "oncontextmenu" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONCUECHANGE ] := { "oncuechange" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONDATAAVAILABLE ] := { "ondataavailable" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONDATASETCHANGED ] := { "ondatasetchanged" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONDATASETCOMPLETE ] := { "ondatasetcomplete" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONDRAG ] := { "ondrag" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONDRAGEND ] := { "ondragend" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONDRAGENTER ] := { "ondragenter" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONDRAGLEAVE ] := { "ondragleave" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONDRAGOVER ] := { "ondragover" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONDRAGSTART ] := { "ondragstart" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONDBLCLICK ] := { "ondblclick" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONDROP ] := { "ondrop" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONDURATIONCHANGE ] := { "ondurationchange" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONEMPTIED ] := { "onemptied" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONENDED ] := { "onended" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONERROR ] := { "onerror" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONERRORUPDATE ] := { "onerrorupdate" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONFOCUS ] := { "onfocus" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONHASHCHANGE ] := { "onhashchange" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONINPUT ] := { "oninput" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONINVALID ] := { "oninvalid" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONKEYDOWN ] := { "onkeydown" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONKEYPRESS ] := { "onkeypress" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONKEYUP ] := { "onkeyup" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONLOAD ] := { "onload" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONLOADEDDATA ] := { "onloadeddata" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONLOADEDMETADATA ] := { "onloadedmetadata" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONLOADSTART ] := { "onloadstart" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONMESSAGE ] := { "onmessage" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONMOUSEDOWN ] := { "onmousedown" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONMOUSEMOVE ] := { "onmousemove" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONMOUSEOUT ] := { "onmouseout" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONMOUSEOVER ] := { "onmouseover" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONMOUSEUP ] := { "onmouseup" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONMOUSEWHEEL ] := { "onmousewheel" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONOFFLINE ] := { "onoffline" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONRESET ] := { "onreset" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONROWENTER ] := { "onrowenter" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONROWEXIT ] := { "onrowexit" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONSELECT ] := { "onselect" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONSUBMIT ] := { "onsubmit" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONUNLOAD ] := { "onunload" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_OPEN ] := { "open" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_OPTIMUM ] := { "optimum" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_PROFILE ] := { "profile" , HTML_ATTR_TYPE_URL } + t_aHA[ HTML_ATTR_PROMPT ] := { "prompt" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_RBSPAN ] := { "rbspan" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_READONLY ] := { "readonly" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_REL ] := { "rel" , HTML_ATTR_TYPE_LINKTYPES } + t_aHA[ HTML_ATTR_REV ] := { "rev" , HTML_ATTR_TYPE_LINKTYPES } + t_aHA[ HTML_ATTR_RIGHTMARGIN ] := { "rightmargin" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_ROLE ] := { "role" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_ROWS ] := { "rows" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_ROWSPAN ] := { "rowspan" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_RULES ] := { "rules" , HTML_ATTR_TYPE_TRULES } + t_aHA[ HTML_ATTR_SCHEME ] := { "scheme" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_SCOPE ] := { "scope" , HTML_ATTR_TYPE_SCOPE } + t_aHA[ HTML_ATTR_SCROLLING ] := { "scrolling" , HTML_ATTR_TYPE_SCROLL } + t_aHA[ HTML_ATTR_SDAFORM ] := { "sdaform" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_SDAPREF ] := { "sdapref" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_SDASUFF ] := { "sdasuff" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_SELECTED ] := { "selected" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_SHAPE ] := { "shape" , HTML_ATTR_TYPE_SHAPE } + t_aHA[ HTML_ATTR_SHOWGRID ] := { "showgrid" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_SHOWGRIDX ] := { "showgridx" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_SHOWGRIDY ] := { "showgridy" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_SIZE ] := { "size" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_SPAN ] := { "span" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_SRC ] := { "src" , HTML_ATTR_TYPE_URL } + t_aHA[ HTML_ATTR_SRCSET ] := { "srcset" , HTML_ATTR_TYPE_URL } + t_aHA[ HTML_ATTR_STANDBY ] := { "standby" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_START ] := { "start" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_STYLE ] := { "style" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_SUMMARY ] := { "summary" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_TABINDEX ] := { "tabindex" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_TARGET ] := { "target" , HTML_ATTR_TYPE_TARGET } + t_aHA[ HTML_ATTR_TEXT ] := { "text" , HTML_ATTR_TYPE_COLOR } + t_aHA[ HTML_ATTR_TITLE ] := { "title" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_TOPMARGIN ] := { "topmargin" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_TRANSLATE ] := { "translate" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_TYPE ] := { "type" , HTML_ATTR_TYPE_TYPE } + t_aHA[ HTML_ATTR_UNKNOWN ] := { "unknown!" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_URN ] := { "urn" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_USEMAP ] := { "usemap" , HTML_ATTR_TYPE_URL } + t_aHA[ HTML_ATTR_VALIGN ] := { "valign" , HTML_ATTR_TYPE_VALIGN } + t_aHA[ HTML_ATTR_VALUE ] := { "value" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_VALUETYPE ] := { "valuetype" , HTML_ATTR_TYPE_VTYPE } + t_aHA[ HTML_ATTR_VERSION ] := { "version" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_VLINK ] := { "vlink" , HTML_ATTR_TYPE_COLOR } + t_aHA[ HTML_ATTR_VSPACE ] := { "vspace" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_WIDTH ] := { "width" , HTML_ATTR_TYPE_LENGTH } + t_aHA[ HTML_ATTR_WRAP ] := { "wrap" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_XMLNS ] := { "xmlns" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_XML_LANG ] := { "xml:lang" , HTML_ATTR_TYPE_LANG } + t_aHA[ HTML_ATTR_XML_SPACE ] := { "xml:space" , HTML_ATTR_TYPE_PCDATA } + + /*TODO:*/ + t_aHA[ HTML_ATTR_ONONLINE ] := { "ononline" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ONPAGEHIDE ] := { "onpagehide" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ONPAGESHOW ] := { "onpageshow" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ONPAUSE ] := { "onpause" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ONPLAY ] := { "onplay" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ONPLAYING ] := { "onplaying" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ONPOPSTATE ] := { "onpopstate" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ONPROGRESS ] := { "onprogress" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ONRATECHANGE ] := { "onratechange" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ONREADYSTATECHANGE ] := { "onreadystatechange" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ONREDO ] := { "onredo" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ONRESIZE ] := { "onresize" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ONSCROLL ] := { "onscroll" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ONSEEKED ] := { "onseeked" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ONSEEKING ] := { "onseeking" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ONSHOW ] := { "onshow" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ONSTALLED ] := { "onstalled" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ONSTORAGE ] := { "onstorage" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ONSUSPEND ] := { "onsuspend" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ONTIMEUPDATE ] := { "ontimeupdate" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ONUNDO ] := { "onundo" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ONVOLUMECHANGE ] := { "onvolumechange" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ONWAITING ] := { "onwaiting" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_PATTERN ] := { "pattern" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_PLACEHOLDER ] := { "placeholder" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_PLAYSINLINE ] := { "playsinline" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_POSTER ] := { "poster" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_PRELOAD ] := { "preload" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_PUBDATE ] := { "pubdate" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_RADIOGROUP ] := { "radiogroup" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_REQUIRED ] := { "required" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_REVERSED ] := { "reversed" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SANDBOX ] := { "sandbox" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SCOPED ] := { "scoped" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SEAMLESS ] := { "seamless" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SIZES ] := { "sizes" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SPELLCHECK ] := { "spellcheck" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SRCDOC ] := { "srcdoc" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SRCLANG ] := { "srclang" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_STEP ] := { "step" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_ACTIVEDESCENDANT] := { "aria_activedescendant" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_ATOMIC ] := { "aria_atomic" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_AUTOCOMPLETE ] := { "aria_autocomplete" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_BUSY ] := { "aria_busy" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_CHECKED ] := { "aria_checked" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_CONTROLS ] := { "aria_controls" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_DESCRIBEDBY ] := { "aria_describedby" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_DISABLED ] := { "aria_disabled" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_DROPEFFECT ] := { "aria_dropeffect" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_EXPANDED ] := { "aria_expanded" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_FLOWTO ] := { "aria_flowto" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_GRABBED ] := { "aria_grabbed" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_HASPOPUP ] := { "aria_haspopup" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_HIDDEN ] := { "aria_hidden" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_INVALID ] := { "aria_invalid" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_LABEL ] := { "aria_label" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_LABELLEDBY ] := { "aria_labelledby" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_LEVEL ] := { "aria_level" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_LIVE ] := { "aria_live" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_MULTILINE ] := { "aria_multiline" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_MULTISELECTABLE ] := { "aria_multiselectable" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_ORIENTATION ] := { "aria_orientation" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_OWNS ] := { "aria_owns" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_POSINSET ] := { "aria_posinset" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_PRESSED ] := { "aria_pressed" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_READONLY ] := { "aria_readonly" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_RELEVANT ] := { "aria_relevant" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_REQUIRED ] := { "aria_required" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_SELECTED ] := { "aria_selected" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_SETSIZE ] := { "aria_setsize" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_SORT ] := { "aria_sort" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_VALUEMAX ] := { "aria_valuemax" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_VALUEMIN ] := { "aria_valuemin" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_VALUENOW ] := { "aria_valuenow" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_VALUETEXT ] := { "aria_valuetext" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_X ] := { "x" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_Y ] := { "y" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_VIEWBOX ] := { "viewbox" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_PRESERVEASPECTRATIO ] := { "preserveaspectratio" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ZOOMANDPAN ] := { "zoomandpan" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_BASEPROFILE ] := { "baseprofile" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_CONTENTSCRIPTTYPE ] := { "contentscripttype" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_CONTENTSTYLETYPE ] := { "contentstyletype" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_DISPLAY ] := { "display" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ABOUT ] := { "about" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_INLIST ] := { "inlist" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_PREFIX ] := { "prefix" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_PROPERTY ] := { "property" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_RESOURCE ] := { "resource" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_TYPEOF ] := { "typeof" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_VOCAB ] := { "vocab" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_INTEGRITY ] := { "integrity" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_AS ] := { "as" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_XMLNSXLINK ] := { "xmlnsxlink" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SLOT ] := { "slot" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_LOADING ] := { "loading" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_FILL ] := { "fill" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_FILLRULE ] := { "fillrule" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_STROKE ] := { "stroke" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_STROKEDASHARRAY ] := { "strokedasharray" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_STROKEDASHOFFSET ] := { "strokedashoffset" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_STROKELINECAP ] := { "strokelinecap" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_STROKELINEJOIN ] := { "strokelinejoin" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_STROKEMITERLIMIT ] := { "strokemiterlimit" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_STROKEWIDTH ] := { "strokewidth" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_COLORINTERPOLATION ] := { "colorinterpolation" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_COLORRENDERING ] := { "colorrendering" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_OPACITY ] := { "opacity" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_STROKEOPACITY ] := { "strokeopacity" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_FILLOPACITY ] := { "fillopacity" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_AUTOCAPITALIZE ] := { "autocapitalize" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ENTERKEYHINT ] := { "enterkeyhint" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_EXPORTPARTS ] := { "exportparts" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_INPUTMODE ] := { "inputmode" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_NONCE ] := { "nonce" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_PART ] := { "part" , HTML_ATTR_TYPE_UNKNOWN } RETURN From e8956aa80480db3e32302c1a4d95f49d8e2c545f Mon Sep 17 00:00:00 2001 From: Naldo DJ Date: Fri, 15 Apr 2022 22:18:54 -0300 Subject: [PATCH 07/19] New HTML Features --- contrib/hbtip/thtml.ch | 6 +- contrib/hbtip/thtml.prg | 449 ++++++++++++++++++---------------------- 2 files changed, 205 insertions(+), 250 deletions(-) diff --git a/contrib/hbtip/thtml.ch b/contrib/hbtip/thtml.ch index 2852a18315..059f5620b7 100644 --- a/contrib/hbtip/thtml.ch +++ b/contrib/hbtip/thtml.ch @@ -436,8 +436,9 @@ #define HTML_ATTR_INPUTMODE 350 #define HTML_ATTR_NONCE 351 #define HTML_ATTR_PART 352 +#define HTML_ATTR_XML_BASE 353 -#define HTML_ATTR_COUNT 352 +#define HTML_ATTR_COUNT 353 #define HTML_ATTR_TYPE_UNKNOWN 0 #define HTML_ATTR_TYPE_ACTION 1 @@ -480,7 +481,8 @@ #define HTML_ATTR_TYPE_FVALIDATE 38 #define HTML_ATTR_TYPE_ICON 39 #define HTML_ATTR_TYPE_LIST 40 +#define HTML_ATTR_TYPE_BASE 41 -#define HTML_ATTR_TYPE_COUNT 40 +#define HTML_ATTR_TYPE_COUNT 41 #endif /* _HB_THTML */ diff --git a/contrib/hbtip/thtml.prg b/contrib/hbtip/thtml.prg index 6a3b9370d7..8ab52e22d6 100644 --- a/contrib/hbtip/thtml.prg +++ b/contrib/hbtip/thtml.prg @@ -1137,7 +1137,7 @@ STATIC FUNCTION __AttrToStr( cName, cValue, aAttr, oTHtmlNode ) LOCAL cNameToLower LOCAL nPos - IF ("data-"==Left(cName,5)) + IF ("data-"==Left(cName,5).or."aria-"==Left(cName,5)) /* The data-* attribute is used to store custom data private to the page or application. The data-* attribute gives us the ability to embed custom data attributes on all HTML elements. @@ -1365,7 +1365,7 @@ METHOD setAttribute( cName, cValue ) CLASS THtmlNode LOCAL nPos LOCAL hHash - IF ("data-"==Left(cName,5)) + IF ("data-"==Left(cName,5).or."aria-"==Left(cName,5)) hHash := {=>} @@ -2018,12 +2018,35 @@ STATIC PROCEDURE _Init_Html_Attributes t_aHA[ HTML_ATTR_ONMOUSEUP ] := { "onmouseup" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONMOUSEWHEEL ] := { "onmousewheel" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONOFFLINE ] := { "onoffline" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONONLINE ] := { "ononline" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONPAGEHIDE ] := { "onpagehide" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONPAGESHOW ] := { "onpageshow" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONPAUSE ] := { "onpause" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONPLAY ] := { "onplay" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONPLAYING ] := { "onplaying" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONPOPSTATE ] := { "onpopstate" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONPROGRESS ] := { "onprogress" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONRATECHANGE ] := { "onratechange" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONREADYSTATECHANGE ] := { "onreadystatechange" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONREDO ] := { "onredo" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONRESET ] := { "onreset" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONRESIZE ] := { "onresize" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONROWENTER ] := { "onrowenter" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONROWEXIT ] := { "onrowexit" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONSCROLL ] := { "onscroll" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONSEEKED ] := { "onseeked" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONSEEKING ] := { "onseeking" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONSELECT ] := { "onselect" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONSHOW ] := { "onshow" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONSUBMIT ] := { "onsubmit" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONSTALLED ] := { "onstalled" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONSTORAGE ] := { "onstorage" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONSUSPEND ] := { "onsuspend" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONTIMEUPDATE ] := { "ontimeupdate" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONUNDO ] := { "onundo" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_ONUNLOAD ] := { "onunload" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONVOLUMECHANGE ] := { "onvolumechange" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONWAITING ] := { "onwaiting" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_OPEN ] := { "open" , HTML_ATTR_TYPE_BOOL } t_aHA[ HTML_ATTR_OPTIMUM ] := { "optimum" , HTML_ATTR_TYPE_NUMBER } t_aHA[ HTML_ATTR_PROFILE ] := { "profile" , HTML_ATTR_TYPE_URL } @@ -2075,126 +2098,109 @@ STATIC PROCEDURE _Init_Html_Attributes t_aHA[ HTML_ATTR_WIDTH ] := { "width" , HTML_ATTR_TYPE_LENGTH } t_aHA[ HTML_ATTR_WRAP ] := { "wrap" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_XMLNS ] := { "xmlns" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_XML_BASE ] := { "xml:base" , HTML_ATTR_TYPE_BASE } t_aHA[ HTML_ATTR_XML_LANG ] := { "xml:lang" , HTML_ATTR_TYPE_LANG } t_aHA[ HTML_ATTR_XML_SPACE ] := { "xml:space" , HTML_ATTR_TYPE_PCDATA } - /*TODO:*/ - t_aHA[ HTML_ATTR_ONONLINE ] := { "ononline" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ONPAGEHIDE ] := { "onpagehide" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ONPAGESHOW ] := { "onpageshow" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ONPAUSE ] := { "onpause" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ONPLAY ] := { "onplay" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ONPLAYING ] := { "onplaying" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ONPOPSTATE ] := { "onpopstate" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ONPROGRESS ] := { "onprogress" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ONRATECHANGE ] := { "onratechange" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ONREADYSTATECHANGE ] := { "onreadystatechange" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ONREDO ] := { "onredo" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ONRESIZE ] := { "onresize" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ONSCROLL ] := { "onscroll" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ONSEEKED ] := { "onseeked" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ONSEEKING ] := { "onseeking" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ONSHOW ] := { "onshow" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ONSTALLED ] := { "onstalled" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ONSTORAGE ] := { "onstorage" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ONSUSPEND ] := { "onsuspend" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ONTIMEUPDATE ] := { "ontimeupdate" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ONUNDO ] := { "onundo" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ONVOLUMECHANGE ] := { "onvolumechange" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ONWAITING ] := { "onwaiting" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_PATTERN ] := { "pattern" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_PLACEHOLDER ] := { "placeholder" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_PLAYSINLINE ] := { "playsinline" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_POSTER ] := { "poster" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_PRELOAD ] := { "preload" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_PUBDATE ] := { "pubdate" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_RADIOGROUP ] := { "radiogroup" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_REQUIRED ] := { "required" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_REVERSED ] := { "reversed" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_SANDBOX ] := { "sandbox" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_SCOPED ] := { "scoped" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_SEAMLESS ] := { "seamless" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_SIZES ] := { "sizes" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_SPELLCHECK ] := { "spellcheck" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_SRCDOC ] := { "srcdoc" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_SRCLANG ] := { "srclang" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_STEP ] := { "step" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_ACTIVEDESCENDANT] := { "aria_activedescendant" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_ATOMIC ] := { "aria_atomic" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_AUTOCOMPLETE ] := { "aria_autocomplete" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_BUSY ] := { "aria_busy" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_CHECKED ] := { "aria_checked" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_CONTROLS ] := { "aria_controls" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_DESCRIBEDBY ] := { "aria_describedby" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_DISABLED ] := { "aria_disabled" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_DROPEFFECT ] := { "aria_dropeffect" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_EXPANDED ] := { "aria_expanded" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_FLOWTO ] := { "aria_flowto" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_GRABBED ] := { "aria_grabbed" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_HASPOPUP ] := { "aria_haspopup" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_HIDDEN ] := { "aria_hidden" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_INVALID ] := { "aria_invalid" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_LABEL ] := { "aria_label" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_LABELLEDBY ] := { "aria_labelledby" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_LEVEL ] := { "aria_level" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_LIVE ] := { "aria_live" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_MULTILINE ] := { "aria_multiline" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_MULTISELECTABLE ] := { "aria_multiselectable" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_ORIENTATION ] := { "aria_orientation" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_OWNS ] := { "aria_owns" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_POSINSET ] := { "aria_posinset" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_PRESSED ] := { "aria_pressed" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_READONLY ] := { "aria_readonly" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_RELEVANT ] := { "aria_relevant" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_REQUIRED ] := { "aria_required" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_SELECTED ] := { "aria_selected" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_SETSIZE ] := { "aria_setsize" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_SORT ] := { "aria_sort" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_VALUEMAX ] := { "aria_valuemax" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_VALUEMIN ] := { "aria_valuemin" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_VALUENOW ] := { "aria_valuenow" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_VALUETEXT ] := { "aria_valuetext" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_X ] := { "x" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_Y ] := { "y" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_VIEWBOX ] := { "viewbox" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_PRESERVEASPECTRATIO ] := { "preserveaspectratio" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ZOOMANDPAN ] := { "zoomandpan" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_BASEPROFILE ] := { "baseprofile" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_CONTENTSCRIPTTYPE ] := { "contentscripttype" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_CONTENTSTYLETYPE ] := { "contentstyletype" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_DISPLAY ] := { "display" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ABOUT ] := { "about" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_INLIST ] := { "inlist" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_PREFIX ] := { "prefix" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_PROPERTY ] := { "property" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_RESOURCE ] := { "resource" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_TYPEOF ] := { "typeof" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_VOCAB ] := { "vocab" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_INTEGRITY ] := { "integrity" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_AS ] := { "as" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_XMLNSXLINK ] := { "xmlnsxlink" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_SLOT ] := { "slot" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_LOADING ] := { "loading" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_FILL ] := { "fill" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_FILLRULE ] := { "fillrule" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_STROKE ] := { "stroke" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_STROKEDASHARRAY ] := { "strokedasharray" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_STROKEDASHOFFSET ] := { "strokedashoffset" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_STROKELINECAP ] := { "strokelinecap" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_STROKELINEJOIN ] := { "strokelinejoin" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_STROKEMITERLIMIT ] := { "strokemiterlimit" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_STROKEWIDTH ] := { "strokewidth" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_COLORINTERPOLATION ] := { "colorinterpolation" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_COLORRENDERING ] := { "colorrendering" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_OPACITY ] := { "opacity" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_STROKEOPACITY ] := { "strokeopacity" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_FILLOPACITY ] := { "fillopacity" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_AUTOCAPITALIZE ] := { "autocapitalize" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ENTERKEYHINT ] := { "enterkeyhint" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_EXPORTPARTS ] := { "exportparts" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_INPUTMODE ] := { "inputmode" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_NONCE ] := { "nonce" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_PART ] := { "part" , HTML_ATTR_TYPE_UNKNOWN } + /*Begin TODO:*/ + + + + t_aHA[ HTML_ATTR_PATTERN ] := { "pattern" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_PLACEHOLDER ] := { "placeholder" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_PLAYSINLINE ] := { "playsinline" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_POSTER ] := { "poster" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_PRELOAD ] := { "preload" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_PUBDATE ] := { "pubdate" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_RADIOGROUP ] := { "radiogroup" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_REQUIRED ] := { "required" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_REVERSED ] := { "reversed" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SANDBOX ] := { "sandbox" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SCOPED ] := { "scoped" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SEAMLESS ] := { "seamless" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SIZES ] := { "sizes" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SPELLCHECK ] := { "spellcheck" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SRCDOC ] := { "srcdoc" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SRCLANG ] := { "srclang" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_STEP ] := { "step" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_ACTIVEDESCENDANT] := { "aria_activedescendant" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_ATOMIC ] := { "aria_atomic" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_AUTOCOMPLETE ] := { "aria_autocomplete" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_BUSY ] := { "aria_busy" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_CHECKED ] := { "aria_checked" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_CONTROLS ] := { "aria_controls" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_DESCRIBEDBY ] := { "aria_describedby" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_DISABLED ] := { "aria_disabled" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_DROPEFFECT ] := { "aria_dropeffect" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_EXPANDED ] := { "aria_expanded" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_FLOWTO ] := { "aria_flowto" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_GRABBED ] := { "aria_grabbed" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_HASPOPUP ] := { "aria_haspopup" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_HIDDEN ] := { "aria_hidden" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_INVALID ] := { "aria_invalid" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_LABEL ] := { "aria_label" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_LABELLEDBY ] := { "aria_labelledby" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_LEVEL ] := { "aria_level" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_LIVE ] := { "aria_live" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_MULTILINE ] := { "aria_multiline" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_MULTISELECTABLE ] := { "aria_multiselectable" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_ORIENTATION ] := { "aria_orientation" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_OWNS ] := { "aria_owns" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_POSINSET ] := { "aria_posinset" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_PRESSED ] := { "aria_pressed" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_READONLY ] := { "aria_readonly" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_RELEVANT ] := { "aria_relevant" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_REQUIRED ] := { "aria_required" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_SELECTED ] := { "aria_selected" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_SETSIZE ] := { "aria_setsize" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_SORT ] := { "aria_sort" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_VALUEMAX ] := { "aria_valuemax" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_VALUEMIN ] := { "aria_valuemin" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_VALUENOW ] := { "aria_valuenow" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ARIA_VALUETEXT ] := { "aria_valuetext" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_X ] := { "x" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_Y ] := { "y" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_VIEWBOX ] := { "viewbox" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_PRESERVEASPECTRATIO ] := { "preserveaspectratio" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ZOOMANDPAN ] := { "zoomandpan" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_BASEPROFILE ] := { "baseprofile" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_CONTENTSCRIPTTYPE ] := { "contentscripttype" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_CONTENTSTYLETYPE ] := { "contentstyletype" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_DISPLAY ] := { "display" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ABOUT ] := { "about" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_INLIST ] := { "inlist" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_PREFIX ] := { "prefix" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_PROPERTY ] := { "property" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_RESOURCE ] := { "resource" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_TYPEOF ] := { "typeof" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_VOCAB ] := { "vocab" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_INTEGRITY ] := { "integrity" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_AS ] := { "as" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_XMLNSXLINK ] := { "xmlnsxlink" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SLOT ] := { "slot" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_LOADING ] := { "loading" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_FILL ] := { "fill" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_FILLRULE ] := { "fillrule" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_STROKE ] := { "stroke" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_STROKEDASHARRAY ] := { "strokedasharray" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_STROKEDASHOFFSET ] := { "strokedashoffset" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_STROKELINECAP ] := { "strokelinecap" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_STROKELINEJOIN ] := { "strokelinejoin" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_STROKEMITERLIMIT ] := { "strokemiterlimit" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_STROKEWIDTH ] := { "strokewidth" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_COLORINTERPOLATION ] := { "colorinterpolation" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_COLORRENDERING ] := { "colorrendering" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_OPACITY ] := { "opacity" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_STROKEOPACITY ] := { "strokeopacity" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_FILLOPACITY ] := { "fillopacity" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_AUTOCAPITALIZE ] := { "autocapitalize" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_ENTERKEYHINT ] := { "enterkeyhint" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_EXPORTPARTS ] := { "exportparts" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_INPUTMODE ] := { "inputmode" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_NONCE ] := { "nonce" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_PART ] := { "part" , HTML_ATTR_TYPE_UNKNOWN } + + /*End TODO:*/ RETURN @@ -2252,6 +2258,8 @@ STATIC FUNCTION THtmlAttr_GlobalAttributes() t_aHA[ HTML_ATTR_TABINDEX ], ; t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_TRANSLATE ], ; + t_aHA[ HTML_ATTR_XML_BASE ], ; + t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_UNKNOWN ] } STATIC FUNCTION THtmlAttr_A() @@ -2281,7 +2289,6 @@ STATIC FUNCTION THtmlAttr_A() t_aHA[ HTML_ATTR_TARGET ], ; t_aHA[ HTML_ATTR_TYPE ], ; t_aHA[ HTML_ATTR_URN ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ], ; t_aHA[ HTML_ATTR_DOWNLOAD ] } @@ -2297,7 +2304,6 @@ STATIC FUNCTION THtmlAttr_ABBR() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_ACRONYM() @@ -2312,7 +2318,6 @@ STATIC FUNCTION THtmlAttr_ACRONYM() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_ADDRESS() @@ -2329,7 +2334,6 @@ STATIC FUNCTION THtmlAttr_ADDRESS() t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; t_aHA[ HTML_ATTR_SDAPREF ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_APPLET() @@ -2366,7 +2370,6 @@ STATIC FUNCTION THtmlAttr_AREA() t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SHAPE ], ; t_aHA[ HTML_ATTR_TARGET ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_ARTICLE() @@ -2395,6 +2398,18 @@ STATIC FUNCTION THtmlAttr_AUDIO() t_aHA[ HTML_ATTR_ONLOADEDDATA ], ; t_aHA[ HTML_ATTR_ONLOADEDMETADATA ], ; t_aHA[ HTML_ATTR_ONLOADSTART ], ; + t_aHA[ HTML_ATTR_ONPAUSE ], ; + t_aHA[ HTML_ATTR_ONPLAY ], ; + t_aHA[ HTML_ATTR_ONPLAYING ], ; + t_aHA[ HTML_ATTR_ONPROGRESS ], ; + t_aHA[ HTML_ATTR_ONRATECHANGE ], ; + t_aHA[ HTML_ATTR_ONSEEKED ], ; + t_aHA[ HTML_ATTR_ONSEEKING ], ; + t_aHA[ HTML_ATTR_ONSTALLED ], ; + t_aHA[ HTML_ATTR_ONSUSPEND ], ; + t_aHA[ HTML_ATTR_ONTIMEUPDATE ], ; + t_aHA[ HTML_ATTR_ONVOLUMECHANGE ], ; + t_aHA[ HTML_ATTR_ONWAITING ], ; t_aHA[ HTML_ATTR_SRC ] } STATIC FUNCTION THtmlAttr_B() @@ -2410,7 +2425,6 @@ STATIC FUNCTION THtmlAttr_B() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_BASE() @@ -2437,7 +2451,6 @@ STATIC FUNCTION THtmlAttr_BDI() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_BDO() @@ -2452,7 +2465,6 @@ STATIC FUNCTION THtmlAttr_BDO() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_BGSOUND() @@ -2476,7 +2488,6 @@ STATIC FUNCTION THtmlAttr_BIG() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_BLOCKQUOTE() @@ -2493,7 +2504,6 @@ STATIC FUNCTION THtmlAttr_BLOCKQUOTE() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_BODY() @@ -2518,10 +2528,17 @@ STATIC FUNCTION THtmlAttr_BODY() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_ONOFFLINE ], ; + t_aHA[ HTML_ATTR_ONONLINE ], ; + t_aHA[ HTML_ATTR_ONPAGEHIDE ], ; + t_aHA[ HTML_ATTR_ONPAGESHOW ], ; + t_aHA[ HTML_ATTR_ONPOPSTATE ], ; t_aHA[ HTML_ATTR_ONUNLOAD ], ; + t_aHA[ HTML_ATTR_ONREDO ], ; + t_aHA[ HTML_ATTR_ONRESIZE ], ; + t_aHA[ HTML_ATTR_ONSTORAGE ], ; + t_aHA[ HTML_ATTR_ONUNDO ], ; t_aHA[ HTML_ATTR_TEXT ], ; t_aHA[ HTML_ATTR_VLINK ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_BR() @@ -2554,7 +2571,6 @@ STATIC FUNCTION THtmlAttr_BUTTON() t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_TYPE ], ; t_aHA[ HTML_ATTR_VALUE ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_CAPTION() @@ -2570,7 +2586,6 @@ STATIC FUNCTION THtmlAttr_CAPTION() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_CENTER() @@ -2584,8 +2599,7 @@ STATIC FUNCTION THtmlAttr_CENTER() t_aHA[ HTML_ATTR_ONMOUSEMOVE ], ; t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; - t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_XML_LANG ] } + t_aHA[ HTML_ATTR_ONMOUSEUP ] } STATIC FUNCTION THtmlAttr_CITE() RETURN { ; @@ -2600,7 +2614,6 @@ STATIC FUNCTION THtmlAttr_CITE() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_CODE() @@ -2616,7 +2629,6 @@ STATIC FUNCTION THtmlAttr_CODE() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_COL() @@ -2637,7 +2649,6 @@ STATIC FUNCTION THtmlAttr_COL() t_aHA[ HTML_ATTR_SPAN ], ; t_aHA[ HTML_ATTR_VALIGN ], ; t_aHA[ HTML_ATTR_WIDTH ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_COLGROUP() @@ -2658,7 +2669,6 @@ STATIC FUNCTION THtmlAttr_COLGROUP() t_aHA[ HTML_ATTR_SPAN ], ; t_aHA[ HTML_ATTR_VALIGN ], ; t_aHA[ HTML_ATTR_WIDTH ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_DATA() @@ -2678,7 +2688,6 @@ STATIC FUNCTION THtmlAttr_DD() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_DEL() @@ -2695,7 +2704,6 @@ STATIC FUNCTION THtmlAttr_DEL() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_DETAILS() @@ -2714,7 +2722,6 @@ STATIC FUNCTION THtmlAttr_DFN() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_DIR() @@ -2731,8 +2738,7 @@ STATIC FUNCTION THtmlAttr_DIR() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_SDAPREF ], ; - t_aHA[ HTML_ATTR_XML_LANG ] } + t_aHA[ HTML_ATTR_SDAPREF ] } STATIC FUNCTION THtmlAttr_DIV() RETURN { ; @@ -2747,7 +2753,7 @@ STATIC FUNCTION THtmlAttr_DIV() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; + t_aHA[ HTML_ATTR_ONSCROLL ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_DL() @@ -2765,7 +2771,6 @@ STATIC FUNCTION THtmlAttr_DL() t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; t_aHA[ HTML_ATTR_SDAPREF ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_DT() @@ -2781,7 +2786,6 @@ STATIC FUNCTION THtmlAttr_DT() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_EM() @@ -2797,7 +2801,6 @@ STATIC FUNCTION THtmlAttr_EM() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_EMBED() @@ -2825,15 +2828,13 @@ STATIC FUNCTION THtmlAttr_FIELDSET() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_FONT() RETURN { ; t_aHA[ HTML_ATTR_COLOR ], ; t_aHA[ HTML_ATTR_FACE ], ; - t_aHA[ HTML_ATTR_SIZE ], ; - t_aHA[ HTML_ATTR_XML_LANG ] } + t_aHA[ HTML_ATTR_SIZE ] } STATIC FUNCTION THtmlAttr_FORM() RETURN { ; @@ -2859,7 +2860,6 @@ STATIC FUNCTION THtmlAttr_FORM() t_aHA[ HTML_ATTR_SDAPREF ], ; t_aHA[ HTML_ATTR_SDASUFF ], ; t_aHA[ HTML_ATTR_TARGET ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ], ; t_aHA[ HTML_ATTR_AUTOCOMPLETE ] } @@ -2904,7 +2904,6 @@ STATIC FUNCTION THtmlAttr_H1() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_H2() @@ -2921,7 +2920,6 @@ STATIC FUNCTION THtmlAttr_H2() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_H3() @@ -2938,7 +2936,6 @@ STATIC FUNCTION THtmlAttr_H3() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_H4() @@ -2955,7 +2952,6 @@ STATIC FUNCTION THtmlAttr_H4() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_H5() @@ -2972,7 +2968,6 @@ STATIC FUNCTION THtmlAttr_H5() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_H6() @@ -2989,13 +2984,11 @@ STATIC FUNCTION THtmlAttr_H6() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_HEAD() RETURN { ; t_aHA[ HTML_ATTR_PROFILE ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_HR() @@ -3015,7 +3008,6 @@ STATIC FUNCTION THtmlAttr_HR() t_aHA[ HTML_ATTR_SDAPREF ], ; t_aHA[ HTML_ATTR_SIZE ], ; t_aHA[ HTML_ATTR_WIDTH ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_HTML() @@ -3023,7 +3015,6 @@ STATIC FUNCTION THtmlAttr_HTML() t_aHA[ HTML_ATTR_MANIFEST ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; t_aHA[ HTML_ATTR_VERSION ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_I() @@ -3039,7 +3030,6 @@ STATIC FUNCTION THtmlAttr_I() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_IFRAME() @@ -3085,7 +3075,6 @@ STATIC FUNCTION THtmlAttr_IMG() t_aHA[ HTML_ATTR_USEMAP ], ; t_aHA[ HTML_ATTR_VSPACE ], ; t_aHA[ HTML_ATTR_WIDTH ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ], ; t_aHA[ HTML_ATTR_ASYNC ] } @@ -3132,7 +3121,6 @@ STATIC FUNCTION THtmlAttr_INPUT() t_aHA[ HTML_ATTR_TYPE ], ; t_aHA[ HTML_ATTR_USEMAP ], ; t_aHA[ HTML_ATTR_VALUE ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ], ; t_aHA[ HTML_ATTR_ASYNC ], ; t_aHA[ HTML_ATTR_AUTOCOMPLETE ] } @@ -3151,14 +3139,12 @@ STATIC FUNCTION THtmlAttr_INS() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_ISINDEX() RETURN { ; t_aHA[ HTML_ATTR_PROMPT ], ; - t_aHA[ HTML_ATTR_SDAPREF ], ; - t_aHA[ HTML_ATTR_XML_LANG ] } + t_aHA[ HTML_ATTR_SDAPREF ] } STATIC FUNCTION THtmlAttr_KBD() RETURN { ; @@ -3173,7 +3159,6 @@ STATIC FUNCTION THtmlAttr_KBD() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_KEYGEN() @@ -3200,7 +3185,6 @@ STATIC FUNCTION THtmlAttr_LABEL() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_LEGEND() @@ -3216,7 +3200,6 @@ STATIC FUNCTION THtmlAttr_LEGEND() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_LI() @@ -3234,7 +3217,6 @@ STATIC FUNCTION THtmlAttr_LI() t_aHA[ HTML_ATTR_SDAFORM ], ; t_aHA[ HTML_ATTR_TYPE ], ; t_aHA[ HTML_ATTR_VALUE ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_LINK() @@ -3262,7 +3244,6 @@ STATIC FUNCTION THtmlAttr_LINK() t_aHA[ HTML_ATTR_TARGET ], ; t_aHA[ HTML_ATTR_TYPE ], ; t_aHA[ HTML_ATTR_URN ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ], ; t_aHA[ HTML_ATTR_SRCSET ] } @@ -3284,7 +3265,6 @@ STATIC FUNCTION THtmlAttr_MAP() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_MARQUEE() @@ -3298,7 +3278,6 @@ onfinish onstart */ RETURN { ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_BGCOLOR ], ; t_aHA[ HTML_ATTR_HEIGHT ], ; t_aHA[ HTML_ATTR_HSPACE ], ; @@ -3319,9 +3298,9 @@ STATIC FUNCTION THtmlAttr_MENU() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; + t_aHA[ HTML_ATTR_ONSHOW ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_SDAPREF ], ; - t_aHA[ HTML_ATTR_XML_LANG ] } + t_aHA[ HTML_ATTR_SDAPREF ] } STATIC FUNCTION THtmlAttr_MENUITEM() RETURN { ; @@ -3339,7 +3318,6 @@ STATIC FUNCTION THtmlAttr_META() t_aHA[ HTML_ATTR_HTTP_EQUIV ], ; t_aHA[ HTML_ATTR_NAME ], ; t_aHA[ HTML_ATTR_SCHEME ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_METER() @@ -3367,8 +3345,7 @@ STATIC FUNCTION THtmlAttr_NOFRAMES() t_aHA[ HTML_ATTR_ONMOUSEMOVE ], ; t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; - t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_XML_LANG ] } + t_aHA[ HTML_ATTR_ONMOUSEUP ] } STATIC FUNCTION THtmlAttr_NOSCRIPT() RETURN { ; @@ -3382,42 +3359,41 @@ STATIC FUNCTION THtmlAttr_NOSCRIPT() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_OBJECT() RETURN { ; - t_aHA[ HTML_ATTR_ALIGN ], ; - t_aHA[ HTML_ATTR_ARCHIVE ], ; - t_aHA[ HTML_ATTR_BORDER ], ; - t_aHA[ HTML_ATTR_CLASSID ], ; - t_aHA[ HTML_ATTR_CODEBASE ], ; - t_aHA[ HTML_ATTR_CODETYPE ], ; - t_aHA[ HTML_ATTR_DECLARE ], ; - t_aHA[ HTML_ATTR_FORM ], ; - t_aHA[ HTML_ATTR_HEIGHT ], ; - t_aHA[ HTML_ATTR_HSPACE ], ; - t_aHA[ HTML_ATTR_NAME ], ; - t_aHA[ HTML_ATTR_ONABORT ], ; - t_aHA[ HTML_ATTR_ONCANPLAY ], ; - t_aHA[ HTML_ATTR_ONCLICK ], ; - t_aHA[ HTML_ATTR_ONDBLCLICK ], ; - t_aHA[ HTML_ATTR_ONERROR ], ; - t_aHA[ HTML_ATTR_ONKEYDOWN ], ; - t_aHA[ HTML_ATTR_ONKEYPRESS ], ; - t_aHA[ HTML_ATTR_ONKEYUP ], ; - t_aHA[ HTML_ATTR_ONMOUSEDOWN ], ; - t_aHA[ HTML_ATTR_ONMOUSEMOVE ], ; - t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; - t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; - t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_STANDBY ], ; - t_aHA[ HTML_ATTR_TYPE ], ; - t_aHA[ HTML_ATTR_USEMAP ], ; - t_aHA[ HTML_ATTR_VSPACE ], ; - t_aHA[ HTML_ATTR_WIDTH ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; - t_aHA[ HTML_ATTR_XMLNS ] } + t_aHA[ HTML_ATTR_ALIGN ], ; + t_aHA[ HTML_ATTR_ARCHIVE ], ; + t_aHA[ HTML_ATTR_BORDER ], ; + t_aHA[ HTML_ATTR_CLASSID ], ; + t_aHA[ HTML_ATTR_CODEBASE ], ; + t_aHA[ HTML_ATTR_CODETYPE ], ; + t_aHA[ HTML_ATTR_DECLARE ], ; + t_aHA[ HTML_ATTR_FORM ], ; + t_aHA[ HTML_ATTR_HEIGHT ], ; + t_aHA[ HTML_ATTR_HSPACE ], ; + t_aHA[ HTML_ATTR_NAME ], ; + t_aHA[ HTML_ATTR_ONABORT ], ; + t_aHA[ HTML_ATTR_ONCANPLAY ], ; + t_aHA[ HTML_ATTR_ONCLICK ], ; + t_aHA[ HTML_ATTR_ONDBLCLICK ], ; + t_aHA[ HTML_ATTR_ONERROR ], ; + t_aHA[ HTML_ATTR_ONKEYDOWN ], ; + t_aHA[ HTML_ATTR_ONKEYPRESS ], ; + t_aHA[ HTML_ATTR_ONKEYUP ], ; + t_aHA[ HTML_ATTR_ONMOUSEDOWN ], ; + t_aHA[ HTML_ATTR_ONMOUSEMOVE ], ; + t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; + t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; + t_aHA[ HTML_ATTR_ONMOUSEUP ], ; + t_aHA[ HTML_ATTR_ONREADYSTATECHANGE ], ; + t_aHA[ HTML_ATTR_STANDBY ], ; + t_aHA[ HTML_ATTR_TYPE ], ; + t_aHA[ HTML_ATTR_USEMAP ], ; + t_aHA[ HTML_ATTR_VSPACE ], ; + t_aHA[ HTML_ATTR_WIDTH ], ; + t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_OL() RETURN { ; @@ -3435,7 +3411,6 @@ STATIC FUNCTION THtmlAttr_OL() t_aHA[ HTML_ATTR_SDAFORM ], ; t_aHA[ HTML_ATTR_START ], ; t_aHA[ HTML_ATTR_TYPE ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_OPTGROUP() @@ -3452,7 +3427,6 @@ STATIC FUNCTION THtmlAttr_OPTGROUP() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_OPTION() @@ -3473,7 +3447,6 @@ STATIC FUNCTION THtmlAttr_OPTION() t_aHA[ HTML_ATTR_SDAPREF ], ; t_aHA[ HTML_ATTR_SELECTED ], ; t_aHA[ HTML_ATTR_VALUE ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_P() @@ -3490,7 +3463,6 @@ STATIC FUNCTION THtmlAttr_P() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_PARAM() @@ -3519,7 +3491,6 @@ STATIC FUNCTION THtmlAttr_PRE() t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; t_aHA[ HTML_ATTR_WIDTH ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XML_SPACE ], ; t_aHA[ HTML_ATTR_XMLNS ] } @@ -3541,7 +3512,6 @@ STATIC FUNCTION THtmlAttr_Q() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_RB() @@ -3556,7 +3526,6 @@ STATIC FUNCTION THtmlAttr_RB() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_RBC() @@ -3571,7 +3540,6 @@ STATIC FUNCTION THtmlAttr_RBC() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_RP() @@ -3586,7 +3554,6 @@ STATIC FUNCTION THtmlAttr_RP() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_RT() @@ -3602,7 +3569,6 @@ STATIC FUNCTION THtmlAttr_RT() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_RBSPAN ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_RTC() @@ -3617,7 +3583,6 @@ STATIC FUNCTION THtmlAttr_RTC() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_RUBY() @@ -3632,7 +3597,6 @@ STATIC FUNCTION THtmlAttr_RUBY() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_S() @@ -3646,8 +3610,7 @@ STATIC FUNCTION THtmlAttr_S() t_aHA[ HTML_ATTR_ONMOUSEMOVE ], ; t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; - t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_XML_LANG ] } + t_aHA[ HTML_ATTR_ONMOUSEUP ] } STATIC FUNCTION THtmlAttr_SAMP() RETURN { ; @@ -3662,7 +3625,6 @@ STATIC FUNCTION THtmlAttr_SAMP() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_SCRIPT() @@ -3702,7 +3664,6 @@ STATIC FUNCTION THtmlAttr_SELECT() t_aHA[ HTML_ATTR_SDAFORM ], ; t_aHA[ HTML_ATTR_SDAPREF ], ; t_aHA[ HTML_ATTR_SIZE ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ], ; t_aHA[ HTML_ATTR_AUTOCOMPLETE ] } @@ -3718,7 +3679,6 @@ STATIC FUNCTION THtmlAttr_SMALL() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_SPAN() @@ -3733,7 +3693,6 @@ STATIC FUNCTION THtmlAttr_SPAN() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_STRIKE() @@ -3747,8 +3706,7 @@ STATIC FUNCTION THtmlAttr_STRIKE() t_aHA[ HTML_ATTR_ONMOUSEMOVE ], ; t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; - t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_XML_LANG ] } + t_aHA[ HTML_ATTR_ONMOUSEUP ] } STATIC FUNCTION THtmlAttr_STRONG() RETURN { ; @@ -3763,14 +3721,12 @@ STATIC FUNCTION THtmlAttr_STRONG() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_STYLE() RETURN { ; t_aHA[ HTML_ATTR_MEDIA ], ; t_aHA[ HTML_ATTR_TYPE ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XML_SPACE ], ; t_aHA[ HTML_ATTR_XMLNS ], ; t_aHA[ HTML_ATTR_SRCSET ] } @@ -3787,7 +3743,6 @@ STATIC FUNCTION THtmlAttr_SUB() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_SUP() @@ -3802,7 +3757,6 @@ STATIC FUNCTION THtmlAttr_SUP() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_TABLE() @@ -3826,7 +3780,6 @@ STATIC FUNCTION THtmlAttr_TABLE() t_aHA[ HTML_ATTR_RULES ], ; t_aHA[ HTML_ATTR_SUMMARY ], ; t_aHA[ HTML_ATTR_WIDTH ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_TBODY() @@ -3845,7 +3798,6 @@ STATIC FUNCTION THtmlAttr_TBODY() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_VALIGN ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_TD() @@ -3874,7 +3826,6 @@ STATIC FUNCTION THtmlAttr_TD() t_aHA[ HTML_ATTR_SCOPE ], ; t_aHA[ HTML_ATTR_VALIGN ], ; t_aHA[ HTML_ATTR_WIDTH ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_TEXTAREA() @@ -3902,7 +3853,6 @@ STATIC FUNCTION THtmlAttr_TEXTAREA() t_aHA[ HTML_ATTR_ROWS ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; t_aHA[ HTML_ATTR_SDAPREF ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ], ; t_aHA[ HTML_ATTR_AUTOCOMPLETE ] } @@ -3922,7 +3872,6 @@ STATIC FUNCTION THtmlAttr_TFOOT() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_VALIGN ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_TH() @@ -3951,7 +3900,6 @@ STATIC FUNCTION THtmlAttr_TH() t_aHA[ HTML_ATTR_SCOPE ], ; t_aHA[ HTML_ATTR_VALIGN ], ; t_aHA[ HTML_ATTR_WIDTH ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_THEAD() @@ -3970,13 +3918,11 @@ STATIC FUNCTION THtmlAttr_THEAD() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_VALIGN ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_TITLE() RETURN { ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_TR() @@ -3996,7 +3942,6 @@ STATIC FUNCTION THtmlAttr_TR() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_VALIGN ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_TRACK() @@ -4021,7 +3966,6 @@ STATIC FUNCTION THtmlAttr_TT() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_U() @@ -4035,8 +3979,7 @@ STATIC FUNCTION THtmlAttr_U() t_aHA[ HTML_ATTR_ONMOUSEMOVE ], ; t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; - t_aHA[ HTML_ATTR_ONMOUSEUP ], ; - t_aHA[ HTML_ATTR_XML_LANG ] } + t_aHA[ HTML_ATTR_ONMOUSEUP ] } STATIC FUNCTION THtmlAttr_UL() RETURN { ; @@ -4053,7 +3996,6 @@ STATIC FUNCTION THtmlAttr_UL() t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; t_aHA[ HTML_ATTR_TYPE ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_VAR() @@ -4069,7 +4011,6 @@ STATIC FUNCTION THtmlAttr_VAR() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_VIDEO() @@ -4095,6 +4036,18 @@ STATIC FUNCTION THtmlAttr_VIDEO() t_aHA[ HTML_ATTR_ONLOADEDDATA ], ; t_aHA[ HTML_ATTR_ONLOADEDMETADATA ], ; t_aHA[ HTML_ATTR_ONLOADSTART ], ; + t_aHA[ HTML_ATTR_ONPAUSE ], ; + t_aHA[ HTML_ATTR_ONPLAY ], ; + t_aHA[ HTML_ATTR_ONPLAYING ], ; + t_aHA[ HTML_ATTR_ONPROGRESS ], ; + t_aHA[ HTML_ATTR_ONRATECHANGE ], ; + t_aHA[ HTML_ATTR_ONSEEKED ], ; + t_aHA[ HTML_ATTR_ONSEEKING ], ; + t_aHA[ HTML_ATTR_ONSTALLED ], ; + t_aHA[ HTML_ATTR_ONSUSPEND ], ; + t_aHA[ HTML_ATTR_ONTIMEUPDATE ], ; + t_aHA[ HTML_ATTR_ONVOLUMECHANGE ], ; + t_aHA[ HTML_ATTR_ONWAITING ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_XMP() From 5a2aa8184427f1b0d62d981f462d76da9b50f504 Mon Sep 17 00:00:00 2001 From: Naldo DJ Date: Sat, 16 Apr 2022 13:42:50 -0300 Subject: [PATCH 08/19] New HTML Features --- contrib/hbtip/thtml.ch | 6 +- contrib/hbtip/thtml.prg | 557 ++++++++++++++++++++-------------------- 2 files changed, 290 insertions(+), 273 deletions(-) diff --git a/contrib/hbtip/thtml.ch b/contrib/hbtip/thtml.ch index 059f5620b7..0b1ce819f5 100644 --- a/contrib/hbtip/thtml.ch +++ b/contrib/hbtip/thtml.ch @@ -482,7 +482,11 @@ #define HTML_ATTR_TYPE_ICON 39 #define HTML_ATTR_TYPE_LIST 40 #define HTML_ATTR_TYPE_BASE 41 +#define HTML_ATTR_TYPE_PATTERN 42 +#define HTML_ATTR_TYPE_PLACEHOLDER 43 +#define HTML_ATTR_TYPE_PUBDATE 44 +#define HTML_ATTR_TYPE_RADIOGROUP 45 -#define HTML_ATTR_TYPE_COUNT 41 +#define HTML_ATTR_TYPE_COUNT 45 #endif /* _HB_THTML */ diff --git a/contrib/hbtip/thtml.prg b/contrib/hbtip/thtml.prg index 8ab52e22d6..5615c0ec71 100644 --- a/contrib/hbtip/thtml.prg +++ b/contrib/hbtip/thtml.prg @@ -1823,6 +1823,7 @@ STATIC PROCEDURE _Init_Html_TagTypes t_hHT[ "tfoot" ] := { @THtmlAttr_TFOOT() , hb_bitOr( CM_TABLE, CM_ROWGRP, CM_OPT ) } t_hHT[ "th" ] := { @THtmlAttr_TH() , hb_bitOr( CM_ROW, CM_OPT, CM_NO_INDENT ) } t_hHT[ "thead" ] := { @THtmlAttr_THEAD() , hb_bitOr( CM_TABLE, CM_ROWGRP, CM_OPT ) } + t_hHT[ "time" ] := { @THtmlAttr_TIME() , hb_bitOr( CM_INLINE, CM_EMPTY ) } t_hHT[ "title" ] := { @THtmlAttr_TITLE() , ( CM_HEAD ) } t_hHT[ "tr" ] := { @THtmlAttr_TR() , hb_bitOr( CM_TABLE, CM_OPT ) } t_hHT[ "track" ] := { @THtmlAttr_TRACK() , hb_bitOr( CM_MIXED, CM_BLOCK, CM_INLINE ) } @@ -1841,280 +1842,278 @@ STATIC PROCEDURE _Init_Html_TagTypes STATIC PROCEDURE _Init_Html_Attributes /* attribute NAME TYPE */ - t_aHA[ HTML_ATTR_ABBR ] := { "abbr" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_ACCEPT ] := { "accept" , HTML_ATTR_TYPE_XTYPE } - t_aHA[ HTML_ATTR_ACCEPT_CHARSET ] := { "accept-charset" , HTML_ATTR_TYPE_CHARSET } - t_aHA[ HTML_ATTR_ACCESSKEY ] := { "accesskey" , HTML_ATTR_TYPE_CHARACTER } - t_aHA[ HTML_ATTR_ACTION ] := { "action" , HTML_ATTR_TYPE_ACTION } - t_aHA[ HTML_ATTR_ADD_DATE ] := { "add_date" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_ALIGN ] := { "align" , HTML_ATTR_TYPE_ALIGN } - t_aHA[ HTML_ATTR_ALINK ] := { "alink" , HTML_ATTR_TYPE_COLOR } - t_aHA[ HTML_ATTR_ALLOWFULLSCREEN ] := { "allowfullscreen" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_ALT ] := { "alt" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_ARCHIVE ] := { "archive" , HTML_ATTR_TYPE_URLS } - t_aHA[ HTML_ATTR_ASYNC ] := { "async" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_AUTOCAPITALIZE ] := { "autocapitalize" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_AUTOCOMPLETE ] := { "autocomplete" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_AUTOFOCUS ] := { "autofocus" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_AUTOPLAY ] := { "autoplay" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_AXIS ] := { "axis" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_BACKGROUND ] := { "background" , HTML_ATTR_TYPE_URL } - t_aHA[ HTML_ATTR_BGCOLOR ] := { "bgcolor" , HTML_ATTR_TYPE_COLOR } - t_aHA[ HTML_ATTR_BGPROPERTIES ] := { "bgproperties" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_BORDER ] := { "border" , HTML_ATTR_TYPE_BORDER } - t_aHA[ HTML_ATTR_BORDERCOLOR ] := { "bordercolor" , HTML_ATTR_TYPE_COLOR } - t_aHA[ HTML_ATTR_BOTTOMMARGIN ] := { "bottommargin" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_CELLPADDING ] := { "cellpadding" , HTML_ATTR_TYPE_LENGTH } - t_aHA[ HTML_ATTR_CELLSPACING ] := { "cellspacing" , HTML_ATTR_TYPE_LENGTH } - t_aHA[ HTML_ATTR_CHAR ] := { "char" , HTML_ATTR_TYPE_CHARACTER } - t_aHA[ HTML_ATTR_CHAROFF ] := { "charoff" , HTML_ATTR_TYPE_LENGTH } - t_aHA[ HTML_ATTR_CHARSET ] := { "charset" , HTML_ATTR_TYPE_CHARSET } - t_aHA[ HTML_ATTR_CHECKED ] := { "checked" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_CITE ] := { "cite" , HTML_ATTR_TYPE_URL } - t_aHA[ HTML_ATTR_CLASS ] := { "class" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_CLASSID ] := { "classid" , HTML_ATTR_TYPE_URL } - t_aHA[ HTML_ATTR_CLEAR ] := { "clear" , HTML_ATTR_TYPE_CLEAR } - t_aHA[ HTML_ATTR_CODE ] := { "code" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_CODEBASE ] := { "codebase" , HTML_ATTR_TYPE_URL } - t_aHA[ HTML_ATTR_CODETYPE ] := { "codetype" , HTML_ATTR_TYPE_XTYPE } - t_aHA[ HTML_ATTR_COLOR ] := { "color" , HTML_ATTR_TYPE_COLOR } - t_aHA[ HTML_ATTR_COLS ] := { "cols" , HTML_ATTR_TYPE_COLS } - t_aHA[ HTML_ATTR_COLSPAN ] := { "colspan" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_COMPACT ] := { "compact" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_CONTENT ] := { "content" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_CONTENTEDITABLE ] := { "contenteditable" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_CONTEXTMENU ] := { "contextmenu" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_CONTROLS ] := { "controls" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_COORDS ] := { "coords" , HTML_ATTR_TYPE_COORDS } - t_aHA[ HTML_ATTR_CROSSORIGIN ] := { "crossorigin" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_DATA ] := { "data" , HTML_ATTR_TYPE_URL } - t_aHA[ HTML_ATTR_DATAFLD ] := { "datafld" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_DATAFORMATAS ] := { "dataformatas" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_DATAPAGESIZE ] := { "datapagesize" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_DATASRC ] := { "datasrc" , HTML_ATTR_TYPE_URL } - t_aHA[ HTML_ATTR_DATATYPE ] := { "datatype" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_DATETIME ] := { "datetime" , HTML_ATTR_TYPE_DATE } - t_aHA[ HTML_ATTR_DECLARE ] := { "declare" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_DEFER ] := { "defer" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_DIR ] := { "dir" , HTML_ATTR_TYPE_TEXTDIR } - t_aHA[ HTML_ATTR_DIRNAME ] := { "dirname" , HTML_ATTR_TYPE_TEXTDIR } - t_aHA[ HTML_ATTR_DISABLED ] := { "disabled" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_DOWNLOAD ] := { "download" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_DRAGGABLE ] := { "draggable" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_DROPZONE ] := { "dropzone" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_ENCODING ] := { "encoding" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_ENCTYPE ] := { "enctype" , HTML_ATTR_TYPE_XTYPE } - t_aHA[ HTML_ATTR_ENTERKEYHINT ] := { "enterkeyhint" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_EVENT ] := { "event" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_FACE ] := { "face" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_FOR ] := { "for" , HTML_ATTR_TYPE_IDREF } - t_aHA[ HTML_ATTR_FORM ] := { "form" , HTML_ATTR_TYPE_IDREF } - t_aHA[ HTML_ATTR_FORMACTION ] := { "formaction" , HTML_ATTR_TYPE_IDREF } - t_aHA[ HTML_ATTR_FORMENCTYPE ] := { "formenctype" , HTML_ATTR_TYPE_TYPE } - t_aHA[ HTML_ATTR_FORMMETHOD ] := { "formmethod" , HTML_ATTR_TYPE_FSUBMIT } - t_aHA[ HTML_ATTR_FORMNOVALIDATE ] := { "formnovalidate" , HTML_ATTR_TYPE_FVALIDATE } - t_aHA[ HTML_ATTR_FORMTARGET ] := { "formtarget" , HTML_ATTR_TYPE_TARGET } - t_aHA[ HTML_ATTR_FRAME ] := { "frame" , HTML_ATTR_TYPE_TFRAME } - t_aHA[ HTML_ATTR_FRAMEBORDER ] := { "frameborder" , HTML_ATTR_TYPE_FBORDER } - t_aHA[ HTML_ATTR_FRAMESPACING ] := { "framespacing" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_GRIDX ] := { "gridx" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_GRIDY ] := { "gridy" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_HEADERS ] := { "headers" , HTML_ATTR_TYPE_IDREFS } - t_aHA[ HTML_ATTR_HEIGHT ] := { "height" , HTML_ATTR_TYPE_LENGTH } - t_aHA[ HTML_ATTR_HIDDEN ] := { "hidden" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_HIGH ] := { "high" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_HREF ] := { "href" , HTML_ATTR_TYPE_URL } - t_aHA[ HTML_ATTR_HREFLANG ] := { "hreflang" , HTML_ATTR_TYPE_LANG } - t_aHA[ HTML_ATTR_HSPACE ] := { "hspace" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_HTTP_EQUIV ] := { "http-equiv" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_ICON ] := { "icon" , HTML_ATTR_TYPE_ICON } - t_aHA[ HTML_ATTR_ID ] := { "id" , HTML_ATTR_TYPE_IDDEF } - t_aHA[ HTML_ATTR_IS ] := { "is" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_ISMAP ] := { "ismap" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_ITEMID ] := { "itemid" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_ITEMPROP ] := { "itemprop" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_ITEMREF ] := { "itemref" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_ITEMSCOPE ] := { "itemscope" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_ITEMTYPE ] := { "itemtype" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_KEYTYPE ] := { "keytype" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_KIND ] := { "kind" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_LABEL ] := { "label" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_LANG ] := { "lang" , HTML_ATTR_TYPE_LANG } - t_aHA[ HTML_ATTR_LANGUAGE ] := { "language" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_LAST_MODIFIED ] := { "last_modified" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_LAST_VISIT ] := { "last_visit" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_LEFTMARGIN ] := { "leftmargin" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_LINK ] := { "link" , HTML_ATTR_TYPE_COLOR } - t_aHA[ HTML_ATTR_LIST ] := { "list" , HTML_ATTR_TYPE_LIST } - t_aHA[ HTML_ATTR_LONGDESC ] := { "longdesc" , HTML_ATTR_TYPE_URL } - t_aHA[ HTML_ATTR_LOOP ] := { "loop" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_LOW ] := { "low" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_LOWSRC ] := { "lowsrc" , HTML_ATTR_TYPE_URL } - t_aHA[ HTML_ATTR_MANIFEST ] := { "manifest" , HTML_ATTR_TYPE_URL } - t_aHA[ HTML_ATTR_MARGINHEIGHT ] := { "marginheight" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_MARGINWIDTH ] := { "marginwidth" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_MAX ] := { "max" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_MAXLENGTH ] := { "maxlength" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_MEDIA ] := { "media" , HTML_ATTR_TYPE_MEDIA } - t_aHA[ HTML_ATTR_MEDIAGROUP ] := { "mediagroup" , HTML_ATTR_TYPE_MEDIA } - t_aHA[ HTML_ATTR_METHOD ] := { "method" , HTML_ATTR_TYPE_FSUBMIT } - t_aHA[ HTML_ATTR_METHODS ] := { "methods" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_MIN ] := { "min" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_MULTIPLE ] := { "multiple" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_MUTED ] := { "muted" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_N ] := { "n" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_NAME ] := { "name" , HTML_ATTR_TYPE_NAME } - t_aHA[ HTML_ATTR_NOHREF ] := { "nohref" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_NORESIZE ] := { "noresize" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_NOSHADE ] := { "noshade" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_NOVALIDATE ] := { "novalidate" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_NOWRAP ] := { "nowrap" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_OBJECT ] := { "object" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_ONABORT ] := { "onabort" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONAFTERUPDATE ] := { "onafterupdate" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONAFTERPRINT ] := { "onafterprint" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONBEFOREPRINT ] := { "onbeforeprint" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONBEFOREUNLOAD ] := { "onbeforeunload" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONBEFOREUPDATE ] := { "onbeforeupdate" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONBLUR ] := { "onblur" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONCANPLAY ] := { "oncanplay" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONCANPLAYTHROUGH ] := { "oncanplaythrough" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONCHANGE ] := { "onchange" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONCLICK ] := { "onclick" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONCONTEXTMENU ] := { "oncontextmenu" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONCUECHANGE ] := { "oncuechange" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONDATAAVAILABLE ] := { "ondataavailable" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONDATASETCHANGED ] := { "ondatasetchanged" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONDATASETCOMPLETE ] := { "ondatasetcomplete" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONDRAG ] := { "ondrag" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONDRAGEND ] := { "ondragend" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONDRAGENTER ] := { "ondragenter" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONDRAGLEAVE ] := { "ondragleave" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONDRAGOVER ] := { "ondragover" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONDRAGSTART ] := { "ondragstart" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONDBLCLICK ] := { "ondblclick" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONDROP ] := { "ondrop" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONDURATIONCHANGE ] := { "ondurationchange" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONEMPTIED ] := { "onemptied" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONENDED ] := { "onended" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONERROR ] := { "onerror" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONERRORUPDATE ] := { "onerrorupdate" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONFOCUS ] := { "onfocus" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONHASHCHANGE ] := { "onhashchange" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONINPUT ] := { "oninput" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONINVALID ] := { "oninvalid" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONKEYDOWN ] := { "onkeydown" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONKEYPRESS ] := { "onkeypress" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONKEYUP ] := { "onkeyup" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONLOAD ] := { "onload" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONLOADEDDATA ] := { "onloadeddata" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONLOADEDMETADATA ] := { "onloadedmetadata" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONLOADSTART ] := { "onloadstart" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONMESSAGE ] := { "onmessage" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONMOUSEDOWN ] := { "onmousedown" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONMOUSEMOVE ] := { "onmousemove" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONMOUSEOUT ] := { "onmouseout" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONMOUSEOVER ] := { "onmouseover" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONMOUSEUP ] := { "onmouseup" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONMOUSEWHEEL ] := { "onmousewheel" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONOFFLINE ] := { "onoffline" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONONLINE ] := { "ononline" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONPAGEHIDE ] := { "onpagehide" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONPAGESHOW ] := { "onpageshow" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONPAUSE ] := { "onpause" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONPLAY ] := { "onplay" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONPLAYING ] := { "onplaying" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONPOPSTATE ] := { "onpopstate" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONPROGRESS ] := { "onprogress" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONRATECHANGE ] := { "onratechange" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONREADYSTATECHANGE ] := { "onreadystatechange" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONREDO ] := { "onredo" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONRESET ] := { "onreset" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONRESIZE ] := { "onresize" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONROWENTER ] := { "onrowenter" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONROWEXIT ] := { "onrowexit" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONSCROLL ] := { "onscroll" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONSEEKED ] := { "onseeked" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONSEEKING ] := { "onseeking" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONSELECT ] := { "onselect" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONSHOW ] := { "onshow" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONSUBMIT ] := { "onsubmit" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONSTALLED ] := { "onstalled" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONSTORAGE ] := { "onstorage" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONSUSPEND ] := { "onsuspend" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONTIMEUPDATE ] := { "ontimeupdate" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONUNDO ] := { "onundo" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONUNLOAD ] := { "onunload" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONVOLUMECHANGE ] := { "onvolumechange" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_ONWAITING ] := { "onwaiting" , HTML_ATTR_TYPE_SCRIPT } - t_aHA[ HTML_ATTR_OPEN ] := { "open" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_OPTIMUM ] := { "optimum" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_PROFILE ] := { "profile" , HTML_ATTR_TYPE_URL } - t_aHA[ HTML_ATTR_PROMPT ] := { "prompt" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_RBSPAN ] := { "rbspan" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_READONLY ] := { "readonly" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_REL ] := { "rel" , HTML_ATTR_TYPE_LINKTYPES } - t_aHA[ HTML_ATTR_REV ] := { "rev" , HTML_ATTR_TYPE_LINKTYPES } - t_aHA[ HTML_ATTR_RIGHTMARGIN ] := { "rightmargin" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_ROLE ] := { "role" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_ROWS ] := { "rows" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_ROWSPAN ] := { "rowspan" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_RULES ] := { "rules" , HTML_ATTR_TYPE_TRULES } - t_aHA[ HTML_ATTR_SCHEME ] := { "scheme" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_SCOPE ] := { "scope" , HTML_ATTR_TYPE_SCOPE } - t_aHA[ HTML_ATTR_SCROLLING ] := { "scrolling" , HTML_ATTR_TYPE_SCROLL } - t_aHA[ HTML_ATTR_SDAFORM ] := { "sdaform" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_SDAPREF ] := { "sdapref" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_SDASUFF ] := { "sdasuff" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_SELECTED ] := { "selected" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_SHAPE ] := { "shape" , HTML_ATTR_TYPE_SHAPE } - t_aHA[ HTML_ATTR_SHOWGRID ] := { "showgrid" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_SHOWGRIDX ] := { "showgridx" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_SHOWGRIDY ] := { "showgridy" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_SIZE ] := { "size" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_SPAN ] := { "span" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_SRC ] := { "src" , HTML_ATTR_TYPE_URL } - t_aHA[ HTML_ATTR_SRCSET ] := { "srcset" , HTML_ATTR_TYPE_URL } - t_aHA[ HTML_ATTR_STANDBY ] := { "standby" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_START ] := { "start" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_STYLE ] := { "style" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_SUMMARY ] := { "summary" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_TABINDEX ] := { "tabindex" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_TARGET ] := { "target" , HTML_ATTR_TYPE_TARGET } - t_aHA[ HTML_ATTR_TEXT ] := { "text" , HTML_ATTR_TYPE_COLOR } - t_aHA[ HTML_ATTR_TITLE ] := { "title" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_TOPMARGIN ] := { "topmargin" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_TRANSLATE ] := { "translate" , HTML_ATTR_TYPE_BOOL } - t_aHA[ HTML_ATTR_TYPE ] := { "type" , HTML_ATTR_TYPE_TYPE } - t_aHA[ HTML_ATTR_UNKNOWN ] := { "unknown!" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_URN ] := { "urn" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_USEMAP ] := { "usemap" , HTML_ATTR_TYPE_URL } - t_aHA[ HTML_ATTR_VALIGN ] := { "valign" , HTML_ATTR_TYPE_VALIGN } - t_aHA[ HTML_ATTR_VALUE ] := { "value" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_VALUETYPE ] := { "valuetype" , HTML_ATTR_TYPE_VTYPE } - t_aHA[ HTML_ATTR_VERSION ] := { "version" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_VLINK ] := { "vlink" , HTML_ATTR_TYPE_COLOR } - t_aHA[ HTML_ATTR_VSPACE ] := { "vspace" , HTML_ATTR_TYPE_NUMBER } - t_aHA[ HTML_ATTR_WIDTH ] := { "width" , HTML_ATTR_TYPE_LENGTH } - t_aHA[ HTML_ATTR_WRAP ] := { "wrap" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_XMLNS ] := { "xmlns" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_XML_BASE ] := { "xml:base" , HTML_ATTR_TYPE_BASE } - t_aHA[ HTML_ATTR_XML_LANG ] := { "xml:lang" , HTML_ATTR_TYPE_LANG } - t_aHA[ HTML_ATTR_XML_SPACE ] := { "xml:space" , HTML_ATTR_TYPE_PCDATA } - + t_aHA[ HTML_ATTR_ABBR ] := { "abbr" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_ACCEPT ] := { "accept" , HTML_ATTR_TYPE_XTYPE } + t_aHA[ HTML_ATTR_ACCEPT_CHARSET ] := { "accept-charset" , HTML_ATTR_TYPE_CHARSET } + t_aHA[ HTML_ATTR_ACCESSKEY ] := { "accesskey" , HTML_ATTR_TYPE_CHARACTER } + t_aHA[ HTML_ATTR_ACTION ] := { "action" , HTML_ATTR_TYPE_ACTION } + t_aHA[ HTML_ATTR_ADD_DATE ] := { "add_date" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_ALIGN ] := { "align" , HTML_ATTR_TYPE_ALIGN } + t_aHA[ HTML_ATTR_ALINK ] := { "alink" , HTML_ATTR_TYPE_COLOR } + t_aHA[ HTML_ATTR_ALLOWFULLSCREEN ] := { "allowfullscreen" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_ALT ] := { "alt" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_ARCHIVE ] := { "archive" , HTML_ATTR_TYPE_URLS } + t_aHA[ HTML_ATTR_ASYNC ] := { "async" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_AUTOCAPITALIZE ] := { "autocapitalize" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_AUTOCOMPLETE ] := { "autocomplete" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_AUTOFOCUS ] := { "autofocus" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_AUTOPLAY ] := { "autoplay" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_AXIS ] := { "axis" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_BACKGROUND ] := { "background" , HTML_ATTR_TYPE_URL } + t_aHA[ HTML_ATTR_BGCOLOR ] := { "bgcolor" , HTML_ATTR_TYPE_COLOR } + t_aHA[ HTML_ATTR_BGPROPERTIES ] := { "bgproperties" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_BORDER ] := { "border" , HTML_ATTR_TYPE_BORDER } + t_aHA[ HTML_ATTR_BORDERCOLOR ] := { "bordercolor" , HTML_ATTR_TYPE_COLOR } + t_aHA[ HTML_ATTR_BOTTOMMARGIN ] := { "bottommargin" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_CELLPADDING ] := { "cellpadding" , HTML_ATTR_TYPE_LENGTH } + t_aHA[ HTML_ATTR_CELLSPACING ] := { "cellspacing" , HTML_ATTR_TYPE_LENGTH } + t_aHA[ HTML_ATTR_CHAR ] := { "char" , HTML_ATTR_TYPE_CHARACTER } + t_aHA[ HTML_ATTR_CHAROFF ] := { "charoff" , HTML_ATTR_TYPE_LENGTH } + t_aHA[ HTML_ATTR_CHARSET ] := { "charset" , HTML_ATTR_TYPE_CHARSET } + t_aHA[ HTML_ATTR_CHECKED ] := { "checked" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_CITE ] := { "cite" , HTML_ATTR_TYPE_URL } + t_aHA[ HTML_ATTR_CLASS ] := { "class" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_CLASSID ] := { "classid" , HTML_ATTR_TYPE_URL } + t_aHA[ HTML_ATTR_CLEAR ] := { "clear" , HTML_ATTR_TYPE_CLEAR } + t_aHA[ HTML_ATTR_CODE ] := { "code" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_CODEBASE ] := { "codebase" , HTML_ATTR_TYPE_URL } + t_aHA[ HTML_ATTR_CODETYPE ] := { "codetype" , HTML_ATTR_TYPE_XTYPE } + t_aHA[ HTML_ATTR_COLOR ] := { "color" , HTML_ATTR_TYPE_COLOR } + t_aHA[ HTML_ATTR_COLS ] := { "cols" , HTML_ATTR_TYPE_COLS } + t_aHA[ HTML_ATTR_COLSPAN ] := { "colspan" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_COMPACT ] := { "compact" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_CONTENT ] := { "content" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_CONTENTEDITABLE ] := { "contenteditable" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_CONTEXTMENU ] := { "contextmenu" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_CONTROLS ] := { "controls" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_COORDS ] := { "coords" , HTML_ATTR_TYPE_COORDS } + t_aHA[ HTML_ATTR_CROSSORIGIN ] := { "crossorigin" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_DATA ] := { "data" , HTML_ATTR_TYPE_URL } + t_aHA[ HTML_ATTR_DATAFLD ] := { "datafld" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_DATAFORMATAS ] := { "dataformatas" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_DATAPAGESIZE ] := { "datapagesize" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_DATASRC ] := { "datasrc" , HTML_ATTR_TYPE_URL } + t_aHA[ HTML_ATTR_DATATYPE ] := { "datatype" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_DATETIME ] := { "datetime" , HTML_ATTR_TYPE_DATE } + t_aHA[ HTML_ATTR_DECLARE ] := { "declare" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_DEFER ] := { "defer" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_DIR ] := { "dir" , HTML_ATTR_TYPE_TEXTDIR } + t_aHA[ HTML_ATTR_DIRNAME ] := { "dirname" , HTML_ATTR_TYPE_TEXTDIR } + t_aHA[ HTML_ATTR_DISABLED ] := { "disabled" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_DOWNLOAD ] := { "download" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_DRAGGABLE ] := { "draggable" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_DROPZONE ] := { "dropzone" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_ENCODING ] := { "encoding" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_ENCTYPE ] := { "enctype" , HTML_ATTR_TYPE_XTYPE } + t_aHA[ HTML_ATTR_ENTERKEYHINT ] := { "enterkeyhint" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_EVENT ] := { "event" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_FACE ] := { "face" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_FOR ] := { "for" , HTML_ATTR_TYPE_IDREF } + t_aHA[ HTML_ATTR_FORM ] := { "form" , HTML_ATTR_TYPE_IDREF } + t_aHA[ HTML_ATTR_FORMACTION ] := { "formaction" , HTML_ATTR_TYPE_IDREF } + t_aHA[ HTML_ATTR_FORMENCTYPE ] := { "formenctype" , HTML_ATTR_TYPE_TYPE } + t_aHA[ HTML_ATTR_FORMMETHOD ] := { "formmethod" , HTML_ATTR_TYPE_FSUBMIT } + t_aHA[ HTML_ATTR_FORMNOVALIDATE ] := { "formnovalidate" , HTML_ATTR_TYPE_FVALIDATE } + t_aHA[ HTML_ATTR_FORMTARGET ] := { "formtarget" , HTML_ATTR_TYPE_TARGET } + t_aHA[ HTML_ATTR_FRAME ] := { "frame" , HTML_ATTR_TYPE_TFRAME } + t_aHA[ HTML_ATTR_FRAMEBORDER ] := { "frameborder" , HTML_ATTR_TYPE_FBORDER } + t_aHA[ HTML_ATTR_FRAMESPACING ] := { "framespacing" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_GRIDX ] := { "gridx" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_GRIDY ] := { "gridy" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_HEADERS ] := { "headers" , HTML_ATTR_TYPE_IDREFS } + t_aHA[ HTML_ATTR_HEIGHT ] := { "height" , HTML_ATTR_TYPE_LENGTH } + t_aHA[ HTML_ATTR_HIDDEN ] := { "hidden" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_HIGH ] := { "high" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_HREF ] := { "href" , HTML_ATTR_TYPE_URL } + t_aHA[ HTML_ATTR_HREFLANG ] := { "hreflang" , HTML_ATTR_TYPE_LANG } + t_aHA[ HTML_ATTR_HSPACE ] := { "hspace" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_HTTP_EQUIV ] := { "http-equiv" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_ICON ] := { "icon" , HTML_ATTR_TYPE_ICON } + t_aHA[ HTML_ATTR_ID ] := { "id" , HTML_ATTR_TYPE_IDDEF } + t_aHA[ HTML_ATTR_IS ] := { "is" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_ISMAP ] := { "ismap" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_ITEMID ] := { "itemid" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_ITEMPROP ] := { "itemprop" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_ITEMREF ] := { "itemref" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_ITEMSCOPE ] := { "itemscope" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_ITEMTYPE ] := { "itemtype" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_KEYTYPE ] := { "keytype" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_KIND ] := { "kind" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_LABEL ] := { "label" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_LANG ] := { "lang" , HTML_ATTR_TYPE_LANG } + t_aHA[ HTML_ATTR_LANGUAGE ] := { "language" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_LAST_MODIFIED ] := { "last_modified" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_LAST_VISIT ] := { "last_visit" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_LEFTMARGIN ] := { "leftmargin" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_LINK ] := { "link" , HTML_ATTR_TYPE_COLOR } + t_aHA[ HTML_ATTR_LIST ] := { "list" , HTML_ATTR_TYPE_LIST } + t_aHA[ HTML_ATTR_LONGDESC ] := { "longdesc" , HTML_ATTR_TYPE_URL } + t_aHA[ HTML_ATTR_LOOP ] := { "loop" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_LOW ] := { "low" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_LOWSRC ] := { "lowsrc" , HTML_ATTR_TYPE_URL } + t_aHA[ HTML_ATTR_MANIFEST ] := { "manifest" , HTML_ATTR_TYPE_URL } + t_aHA[ HTML_ATTR_MARGINHEIGHT ] := { "marginheight" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_MARGINWIDTH ] := { "marginwidth" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_MAX ] := { "max" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_MAXLENGTH ] := { "maxlength" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_MEDIA ] := { "media" , HTML_ATTR_TYPE_MEDIA } + t_aHA[ HTML_ATTR_MEDIAGROUP ] := { "mediagroup" , HTML_ATTR_TYPE_MEDIA } + t_aHA[ HTML_ATTR_METHOD ] := { "method" , HTML_ATTR_TYPE_FSUBMIT } + t_aHA[ HTML_ATTR_METHODS ] := { "methods" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_MIN ] := { "min" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_MULTIPLE ] := { "multiple" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_MUTED ] := { "muted" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_N ] := { "n" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_NAME ] := { "name" , HTML_ATTR_TYPE_NAME } + t_aHA[ HTML_ATTR_NOHREF ] := { "nohref" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_NORESIZE ] := { "noresize" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_NOSHADE ] := { "noshade" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_NOVALIDATE ] := { "novalidate" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_NOWRAP ] := { "nowrap" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_OBJECT ] := { "object" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_ONABORT ] := { "onabort" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONAFTERUPDATE ] := { "onafterupdate" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONAFTERPRINT ] := { "onafterprint" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONBEFOREPRINT ] := { "onbeforeprint" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONBEFOREUNLOAD ] := { "onbeforeunload" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONBEFOREUPDATE ] := { "onbeforeupdate" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONBLUR ] := { "onblur" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONCANPLAY ] := { "oncanplay" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONCANPLAYTHROUGH ] := { "oncanplaythrough" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONCHANGE ] := { "onchange" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONCLICK ] := { "onclick" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONCONTEXTMENU ] := { "oncontextmenu" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONCUECHANGE ] := { "oncuechange" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONDATAAVAILABLE ] := { "ondataavailable" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONDATASETCHANGED ] := { "ondatasetchanged" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONDATASETCOMPLETE ] := { "ondatasetcomplete" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONDRAG ] := { "ondrag" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONDRAGEND ] := { "ondragend" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONDRAGENTER ] := { "ondragenter" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONDRAGLEAVE ] := { "ondragleave" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONDRAGOVER ] := { "ondragover" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONDRAGSTART ] := { "ondragstart" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONDBLCLICK ] := { "ondblclick" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONDROP ] := { "ondrop" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONDURATIONCHANGE ] := { "ondurationchange" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONEMPTIED ] := { "onemptied" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONENDED ] := { "onended" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONERROR ] := { "onerror" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONERRORUPDATE ] := { "onerrorupdate" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONFOCUS ] := { "onfocus" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONHASHCHANGE ] := { "onhashchange" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONINPUT ] := { "oninput" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONINVALID ] := { "oninvalid" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONKEYDOWN ] := { "onkeydown" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONKEYPRESS ] := { "onkeypress" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONKEYUP ] := { "onkeyup" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONLOAD ] := { "onload" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONLOADEDDATA ] := { "onloadeddata" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONLOADEDMETADATA ] := { "onloadedmetadata" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONLOADSTART ] := { "onloadstart" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONMESSAGE ] := { "onmessage" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONMOUSEDOWN ] := { "onmousedown" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONMOUSEMOVE ] := { "onmousemove" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONMOUSEOUT ] := { "onmouseout" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONMOUSEOVER ] := { "onmouseover" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONMOUSEUP ] := { "onmouseup" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONMOUSEWHEEL ] := { "onmousewheel" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONOFFLINE ] := { "onoffline" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONONLINE ] := { "ononline" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONPAGEHIDE ] := { "onpagehide" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONPAGESHOW ] := { "onpageshow" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONPAUSE ] := { "onpause" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONPLAY ] := { "onplay" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONPLAYING ] := { "onplaying" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONPOPSTATE ] := { "onpopstate" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONPROGRESS ] := { "onprogress" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONRATECHANGE ] := { "onratechange" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONREADYSTATECHANGE ] := { "onreadystatechange" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONREDO ] := { "onredo" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONRESET ] := { "onreset" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONRESIZE ] := { "onresize" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONROWENTER ] := { "onrowenter" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONROWEXIT ] := { "onrowexit" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONSCROLL ] := { "onscroll" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONSEEKED ] := { "onseeked" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONSEEKING ] := { "onseeking" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONSELECT ] := { "onselect" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONSHOW ] := { "onshow" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONSUBMIT ] := { "onsubmit" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONSTALLED ] := { "onstalled" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONSTORAGE ] := { "onstorage" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONSUSPEND ] := { "onsuspend" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONTIMEUPDATE ] := { "ontimeupdate" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONUNDO ] := { "onundo" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONUNLOAD ] := { "onunload" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONVOLUMECHANGE ] := { "onvolumechange" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_ONWAITING ] := { "onwaiting" , HTML_ATTR_TYPE_SCRIPT } + t_aHA[ HTML_ATTR_OPEN ] := { "open" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_OPTIMUM ] := { "optimum" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_PATTERN ] := { "pattern" , HTML_ATTR_TYPE_PATTERN } + t_aHA[ HTML_ATTR_PLACEHOLDER ] := { "placeholder" , HTML_ATTR_TYPE_PLACEHOLDER } + t_aHA[ HTML_ATTR_PLAYSINLINE ] := { "playsinline" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_POSTER ] := { "poster" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_PRELOAD ] := { "preload" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_PROFILE ] := { "profile" , HTML_ATTR_TYPE_URL } + t_aHA[ HTML_ATTR_PROMPT ] := { "prompt" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_PUBDATE ] := { "pubdate" , HTML_ATTR_TYPE_PUBDATE } + t_aHA[ HTML_ATTR_RADIOGROUP ] := { "radiogroup" , HTML_ATTR_TYPE_RADIOGROUP } + t_aHA[ HTML_ATTR_REQUIRED ] := { "required" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_RBSPAN ] := { "rbspan" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_READONLY ] := { "readonly" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_REL ] := { "rel" , HTML_ATTR_TYPE_LINKTYPES } + t_aHA[ HTML_ATTR_REV ] := { "rev" , HTML_ATTR_TYPE_LINKTYPES } + t_aHA[ HTML_ATTR_REVERSED ] := { "reversed" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_RIGHTMARGIN ] := { "rightmargin" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_ROLE ] := { "role" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_ROWS ] := { "rows" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_ROWSPAN ] := { "rowspan" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_RULES ] := { "rules" , HTML_ATTR_TYPE_TRULES } + t_aHA[ HTML_ATTR_SCHEME ] := { "scheme" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_SCOPE ] := { "scope" , HTML_ATTR_TYPE_SCOPE } + t_aHA[ HTML_ATTR_SCROLLING ] := { "scrolling" , HTML_ATTR_TYPE_SCROLL } + t_aHA[ HTML_ATTR_SDAFORM ] := { "sdaform" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_SDAPREF ] := { "sdapref" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_SDASUFF ] := { "sdasuff" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_SELECTED ] := { "selected" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_SHAPE ] := { "shape" , HTML_ATTR_TYPE_SHAPE } + t_aHA[ HTML_ATTR_SHOWGRID ] := { "showgrid" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_SHOWGRIDX ] := { "showgridx" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_SHOWGRIDY ] := { "showgridy" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_SIZE ] := { "size" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_SPAN ] := { "span" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_SRC ] := { "src" , HTML_ATTR_TYPE_URL } + t_aHA[ HTML_ATTR_SRCSET ] := { "srcset" , HTML_ATTR_TYPE_URL } + t_aHA[ HTML_ATTR_STANDBY ] := { "standby" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_START ] := { "start" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_STYLE ] := { "style" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_SUMMARY ] := { "summary" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_TABINDEX ] := { "tabindex" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_TARGET ] := { "target" , HTML_ATTR_TYPE_TARGET } + t_aHA[ HTML_ATTR_TEXT ] := { "text" , HTML_ATTR_TYPE_COLOR } + t_aHA[ HTML_ATTR_TITLE ] := { "title" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_TOPMARGIN ] := { "topmargin" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_TRANSLATE ] := { "translate" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_TYPE ] := { "type" , HTML_ATTR_TYPE_TYPE } + t_aHA[ HTML_ATTR_UNKNOWN ] := { "unknown!" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_URN ] := { "urn" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_USEMAP ] := { "usemap" , HTML_ATTR_TYPE_URL } + t_aHA[ HTML_ATTR_VALIGN ] := { "valign" , HTML_ATTR_TYPE_VALIGN } + t_aHA[ HTML_ATTR_VALUE ] := { "value" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_VALUETYPE ] := { "valuetype" , HTML_ATTR_TYPE_VTYPE } + t_aHA[ HTML_ATTR_VERSION ] := { "version" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_VLINK ] := { "vlink" , HTML_ATTR_TYPE_COLOR } + t_aHA[ HTML_ATTR_VSPACE ] := { "vspace" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_WIDTH ] := { "width" , HTML_ATTR_TYPE_LENGTH } + t_aHA[ HTML_ATTR_WRAP ] := { "wrap" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_XMLNS ] := { "xmlns" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_XML_BASE ] := { "xml:base" , HTML_ATTR_TYPE_BASE } + t_aHA[ HTML_ATTR_XML_LANG ] := { "xml:lang" , HTML_ATTR_TYPE_LANG } + t_aHA[ HTML_ATTR_XML_SPACE ] := { "xml:space" , HTML_ATTR_TYPE_PCDATA } + /*Begin TODO:*/ - - - t_aHA[ HTML_ATTR_PATTERN ] := { "pattern" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_PLACEHOLDER ] := { "placeholder" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_PLAYSINLINE ] := { "playsinline" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_POSTER ] := { "poster" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_PRELOAD ] := { "preload" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_PUBDATE ] := { "pubdate" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_RADIOGROUP ] := { "radiogroup" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_REQUIRED ] := { "required" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_REVERSED ] := { "reversed" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SANDBOX ] := { "sandbox" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SCOPED ] := { "scoped" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SEAMLESS ] := { "seamless" , HTML_ATTR_TYPE_UNKNOWN } @@ -3114,7 +3113,10 @@ STATIC FUNCTION THtmlAttr_INPUT() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_ONSELECT ], ; + t_aHA[ HTML_ATTR_PATTERN ], ; + t_aHA[ HTML_ATTR_PLACEHOLDER ], ; t_aHA[ HTML_ATTR_READONLY ], ; + t_aHA[ HTML_ATTR_REQUIRED ], ; t_aHA[ HTML_ATTR_SDAPREF ], ; t_aHA[ HTML_ATTR_SIZE ], ; t_aHA[ HTML_ATTR_SRC ], ; @@ -3410,6 +3412,7 @@ STATIC FUNCTION THtmlAttr_OL() t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; t_aHA[ HTML_ATTR_START ], ; + t_aHA[ HTML_ATTR_REVERSED ], ; t_aHA[ HTML_ATTR_TYPE ], ; t_aHA[ HTML_ATTR_XMLNS ] } @@ -3661,6 +3664,7 @@ STATIC FUNCTION THtmlAttr_SELECT() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; + t_aHA[ HTML_ATTR_REQUIRED ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; t_aHA[ HTML_ATTR_SDAPREF ], ; t_aHA[ HTML_ATTR_SIZE ], ; @@ -3849,7 +3853,10 @@ STATIC FUNCTION THtmlAttr_TEXTAREA() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_ONSELECT ], ; + t_aHA[ HTML_ATTR_PATTERN ], ; + t_aHA[ HTML_ATTR_PLACEHOLDER ], ; t_aHA[ HTML_ATTR_READONLY ], ; + t_aHA[ HTML_ATTR_REQUIRED ], ; t_aHA[ HTML_ATTR_ROWS ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; t_aHA[ HTML_ATTR_SDAPREF ], ; @@ -3919,6 +3926,10 @@ STATIC FUNCTION THtmlAttr_THEAD() t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_VALIGN ], ; t_aHA[ HTML_ATTR_XMLNS ] } + +STATIC FUNCTION THtmlAttr_TIME() + RETURN { ; + t_aHA[ HTML_ATTR_PUBDATE ] } STATIC FUNCTION THtmlAttr_TITLE() RETURN { ; @@ -4048,6 +4059,8 @@ STATIC FUNCTION THtmlAttr_VIDEO() t_aHA[ HTML_ATTR_ONTIMEUPDATE ], ; t_aHA[ HTML_ATTR_ONVOLUMECHANGE ], ; t_aHA[ HTML_ATTR_ONWAITING ], ; + t_aHA[ HTML_ATTR_PLAYSINLINE ], ; + t_aHA[ HTML_ATTR_POSTER ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_XMP() From 4a68aa95ca1aae8521999d983224f135989b366f Mon Sep 17 00:00:00 2001 From: Naldo DJ Date: Sat, 16 Apr 2022 15:56:24 -0300 Subject: [PATCH 09/19] New HTML Features --- contrib/hbtip/thtml.ch | 169 +++++++++++++++++++++------------------- contrib/hbtip/thtml.prg | 111 ++++++++++++++------------ 2 files changed, 151 insertions(+), 129 deletions(-) diff --git a/contrib/hbtip/thtml.ch b/contrib/hbtip/thtml.ch index 0b1ce819f5..6e0319d49f 100644 --- a/contrib/hbtip/thtml.ch +++ b/contrib/hbtip/thtml.ch @@ -355,90 +355,96 @@ #define HTML_ATTR_SRCDOC 273 #define HTML_ATTR_SRCLANG 274 #define HTML_ATTR_STEP 275 -#define HTML_ATTR_ARIA_ACTIVEDESCENDANT 276 -#define HTML_ATTR_ARIA_ATOMIC 277 -#define HTML_ATTR_ARIA_AUTOCOMPLETE 278 -#define HTML_ATTR_ARIA_BUSY 279 -#define HTML_ATTR_ARIA_CHECKED 280 -#define HTML_ATTR_ARIA_CONTROLS 281 -#define HTML_ATTR_ARIA_DESCRIBEDBY 282 -#define HTML_ATTR_ARIA_DISABLED 283 -#define HTML_ATTR_ARIA_DROPEFFECT 284 -#define HTML_ATTR_ARIA_EXPANDED 285 -#define HTML_ATTR_ARIA_FLOWTO 286 -#define HTML_ATTR_ARIA_GRABBED 287 -#define HTML_ATTR_ARIA_HASPOPUP 288 -#define HTML_ATTR_ARIA_HIDDEN 289 -#define HTML_ATTR_ARIA_INVALID 290 -#define HTML_ATTR_ARIA_LABEL 291 -#define HTML_ATTR_ARIA_LABELLEDBY 292 -#define HTML_ATTR_ARIA_LEVEL 293 -#define HTML_ATTR_ARIA_LIVE 294 -#define HTML_ATTR_ARIA_MULTILINE 295 -#define HTML_ATTR_ARIA_MULTISELECTABLE 296 -#define HTML_ATTR_ARIA_ORIENTATION 297 -#define HTML_ATTR_ARIA_OWNS 298 -#define HTML_ATTR_ARIA_POSINSET 299 -#define HTML_ATTR_ARIA_PRESSED 300 -#define HTML_ATTR_ARIA_READONLY 301 -#define HTML_ATTR_ARIA_RELEVANT 302 -#define HTML_ATTR_ARIA_REQUIRED 303 -#define HTML_ATTR_ARIA_SELECTED 304 -#define HTML_ATTR_ARIA_SETSIZE 305 -#define HTML_ATTR_ARIA_SORT 306 -#define HTML_ATTR_ARIA_VALUEMAX 307 -#define HTML_ATTR_ARIA_VALUEMIN 308 -#define HTML_ATTR_ARIA_VALUENOW 309 -#define HTML_ATTR_ARIA_VALUETEXT 310 + /* SVG attributes (SVG 1.1) */ -#define HTML_ATTR_X 311 -#define HTML_ATTR_Y 312 -#define HTML_ATTR_VIEWBOX 313 -#define HTML_ATTR_PRESERVEASPECTRATIO 314 -#define HTML_ATTR_ZOOMANDPAN 315 -#define HTML_ATTR_BASEPROFILE 316 -#define HTML_ATTR_CONTENTSCRIPTTYPE 317 -#define HTML_ATTR_CONTENTSTYLETYPE 318 +#define HTML_ATTR_X 276 +#define HTML_ATTR_Y 277 +#define HTML_ATTR_VIEWBOX 278 +#define HTML_ATTR_PRESERVEASPECTRATIO 279 +#define HTML_ATTR_ZOOMANDPAN 280 +#define HTML_ATTR_BASEPROFILE 281 +#define HTML_ATTR_CONTENTSCRIPTTYPE 282 +#define HTML_ATTR_CONTENTSTYLETYPE 283 /* MathML attributes */ -#define HTML_ATTR_DISPLAY 319 +#define HTML_ATTR_DISPLAY 284 /* RDFa global attributes */ -#define HTML_ATTR_ABOUT 320 -#define HTML_ATTR_DATATYPE 321 -#define HTML_ATTR_INLIST 322 -#define HTML_ATTR_PREFIX 323 -#define HTML_ATTR_PROPERTY 324 -#define HTML_ATTR_RESOURCE 325 -#define HTML_ATTR_TYPEOF 326 -#define HTML_ATTR_VOCAB 327 -#define HTML_ATTR_INTEGRITY 328 -#define HTML_ATTR_AS 329 -#define HTML_ATTR_XMLNSXLINK 330 -#define HTML_ATTR_SLOT 331 -#define HTML_ATTR_LOADING 333 +#define HTML_ATTR_ABOUT 285 +#define HTML_ATTR_DATATYPE 286 +#define HTML_ATTR_INLIST 287 +#define HTML_ATTR_PREFIX 288 +#define HTML_ATTR_PROPERTY 289 +#define HTML_ATTR_RESOURCE 290 +#define HTML_ATTR_TYPEOF 291 +#define HTML_ATTR_VOCAB 292 +#define HTML_ATTR_INTEGRITY 293 +#define HTML_ATTR_AS 294 +#define HTML_ATTR_XMLNSXLINK 295 +#define HTML_ATTR_SLOT 296 +#define HTML_ATTR_LOADING 297 /* SVG paint attributes (SVG 1.1) */ -#define HTML_ATTR_FILL 333 -#define HTML_ATTR_FILLRULE 334 -#define HTML_ATTR_STROKE 335 -#define HTML_ATTR_STROKEDASHARRAY 336 -#define HTML_ATTR_STROKEDASHOFFSET 337 -#define HTML_ATTR_STROKELINECAP 338 -#define HTML_ATTR_STROKELINEJOIN 339 -#define HTML_ATTR_STROKEMITERLIMIT 340 -#define HTML_ATTR_STROKEWIDTH 341 -#define HTML_ATTR_COLORINTERPOLATION 342 -#define HTML_ATTR_COLORRENDERING 343 -#define HTML_ATTR_OPACITY 344 -#define HTML_ATTR_STROKEOPACITY 345 -#define HTML_ATTR_FILLOPACITY 346 -#define HTML_ATTR_AUTOCAPITALIZE 347 -#define HTML_ATTR_ENTERKEYHINT 348 -#define HTML_ATTR_EXPORTPARTS 349 -#define HTML_ATTR_INPUTMODE 350 -#define HTML_ATTR_NONCE 351 -#define HTML_ATTR_PART 352 -#define HTML_ATTR_XML_BASE 353 +#define HTML_ATTR_FILL 298 +#define HTML_ATTR_FILLRULE 299 +#define HTML_ATTR_STROKE 300 +#define HTML_ATTR_STROKEDASHARRAY 301 +#define HTML_ATTR_STROKEDASHOFFSET 302 +#define HTML_ATTR_STROKELINECAP 303 +#define HTML_ATTR_STROKELINEJOIN 304 +#define HTML_ATTR_STROKEMITERLIMIT 305 +#define HTML_ATTR_STROKEWIDTH 306 +#define HTML_ATTR_COLORINTERPOLATION 307 +#define HTML_ATTR_COLORRENDERING 308 +#define HTML_ATTR_OPACITY 309 +#define HTML_ATTR_STROKEOPACITY 310 +#define HTML_ATTR_FILLOPACITY 311 +#define HTML_ATTR_AUTOCAPITALIZE 312 +#define HTML_ATTR_ENTERKEYHINT 313 +#define HTML_ATTR_EXPORTPARTS 314 +#define HTML_ATTR_INPUTMODE 315 +#define HTML_ATTR_NONCE 316 +#define HTML_ATTR_PART 317 +#define HTML_ATTR_XML_BASE 318 + +#define HTML_ATTR_COUNT 318 + +/* Constants for HTML ARIA attributes adopted from Tidy library */ + +#define HTML_ATTR_ARIA_ACTIVEDESCENDANT 1 +#define HTML_ATTR_ARIA_ATOMIC 2 +#define HTML_ATTR_ARIA_AUTOCOMPLETE 3 +#define HTML_ATTR_ARIA_BUSY 4 +#define HTML_ATTR_ARIA_CHECKED 5 +#define HTML_ATTR_ARIA_CONTROLS 6 +#define HTML_ATTR_ARIA_DESCRIBEDBY 7 +#define HTML_ATTR_ARIA_DISABLED 8 +#define HTML_ATTR_ARIA_DROPEFFECT 9 +#define HTML_ATTR_ARIA_EXPANDED 10 +#define HTML_ATTR_ARIA_FLOWTO 11 +#define HTML_ATTR_ARIA_GRABBED 12 +#define HTML_ATTR_ARIA_HASPOPUP 13 +#define HTML_ATTR_ARIA_HIDDEN 14 +#define HTML_ATTR_ARIA_INVALID 15 +#define HTML_ATTR_ARIA_LABEL 16 +#define HTML_ATTR_ARIA_LABELLEDBY 17 +#define HTML_ATTR_ARIA_LEVEL 18 +#define HTML_ATTR_ARIA_LIVE 19 +#define HTML_ATTR_ARIA_MULTILINE 20 +#define HTML_ATTR_ARIA_MULTISELECTABLE 21 +#define HTML_ATTR_ARIA_ORIENTATION 22 +#define HTML_ATTR_ARIA_OWNS 23 +#define HTML_ATTR_ARIA_POSINSET 24 +#define HTML_ATTR_ARIA_PRESSED 25 +#define HTML_ATTR_ARIA_READONLY 26 +#define HTML_ATTR_ARIA_RELEVANT 27 +#define HTML_ATTR_ARIA_REQUIRED 28 +#define HTML_ATTR_ARIA_SELECTED 29 +#define HTML_ATTR_ARIA_SETSIZE 30 +#define HTML_ATTR_ARIA_SORT 31 +#define HTML_ATTR_ARIA_VALUEMAX 32 +#define HTML_ATTR_ARIA_VALUEMIN 33 +#define HTML_ATTR_ARIA_VALUENOW 34 +#define HTML_ATTR_ARIA_VALUETEXT 35 -#define HTML_ATTR_COUNT 353 +#define HTML_ATTR_ARIA_COUNT 35 #define HTML_ATTR_TYPE_UNKNOWN 0 #define HTML_ATTR_TYPE_ACTION 1 @@ -486,7 +492,10 @@ #define HTML_ATTR_TYPE_PLACEHOLDER 43 #define HTML_ATTR_TYPE_PUBDATE 44 #define HTML_ATTR_TYPE_RADIOGROUP 45 +#define HTML_ATTR_TYPE_SANDBOX 46 +#define HTML_ATTR_TYPE_SRCDOC 47 +#define HTML_ATTR_TYPE_STEP 48 -#define HTML_ATTR_TYPE_COUNT 45 +#define HTML_ATTR_TYPE_COUNT 48 #endif /* _HB_THTML */ diff --git a/contrib/hbtip/thtml.prg b/contrib/hbtip/thtml.prg index 5615c0ec71..75caa15cbc 100644 --- a/contrib/hbtip/thtml.prg +++ b/contrib/hbtip/thtml.prg @@ -83,6 +83,7 @@ THREAD STATIC t_aHA // data for HTML attributes +THREAD STATIC t_aHAAria // data for HTML Aria attributes THREAD STATIC t_hHT // data for HTML tags THREAD STATIC t_aGlbAttr // data for Global HTML attributes THREAD STATIC t_cHB_EOL @@ -1396,10 +1397,10 @@ METHOD setAttribute( cName, cValue ) CLASS THtmlNode RETURN hHash[ cName ] -// Sets all attribute and values -METHOD setAttributes( cHtml ) CLASS THtmlNode +// Sets all attribute and values ( [ Character: 'cAttr="xAttrValue"' ] ou [ Hash {"cAttr"=>"xAttrValue"} ] ) +METHOD setAttributes( xHtml ) CLASS THtmlNode - ::htmlAttributes := cHtml + ::htmlAttributes := xHtml RETURN ::getAttributes() @@ -1632,12 +1633,14 @@ FUNCTION THtmlInit( lInit ) IF ! hb_defaultValue( lInit, .T. ) t_aHA := NIL t_hHT := NIL + t_aHAAria := NIL #ifdef HB_LEGACY_LEVEL4 t_aHtmlAnsiEntities := NIL #endif t_lInit := .F. ELSEIF ! t_lInit t_aHA := Array( HTML_ATTR_COUNT ) + t_aHAAria := Array( HTML_ATTR_ARIA_COUNT ) #ifdef HB_LEGACY_LEVEL4 _Init_Html_AnsiCharacterEntities() #endif @@ -1837,10 +1840,10 @@ STATIC PROCEDURE _Init_Html_TagTypes RETURN -/* HTML Tag attribute data are adopted for Harbour from Tidy */ - STATIC PROCEDURE _Init_Html_Attributes + /* HTML Tag attribute data are adopted for Harbour from Tidy */ + /* attribute NAME TYPE */ t_aHA[ HTML_ATTR_ABBR ] := { "abbr" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_ACCEPT ] := { "accept" , HTML_ATTR_TYPE_XTYPE } @@ -2070,23 +2073,31 @@ STATIC PROCEDURE _Init_Html_Attributes t_aHA[ HTML_ATTR_ROWS ] := { "rows" , HTML_ATTR_TYPE_NUMBER } t_aHA[ HTML_ATTR_ROWSPAN ] := { "rowspan" , HTML_ATTR_TYPE_NUMBER } t_aHA[ HTML_ATTR_RULES ] := { "rules" , HTML_ATTR_TYPE_TRULES } + t_aHA[ HTML_ATTR_SANDBOX ] := { "sandbox" , HTML_ATTR_TYPE_SANDBOX } t_aHA[ HTML_ATTR_SCHEME ] := { "scheme" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_SCOPE ] := { "scope" , HTML_ATTR_TYPE_SCOPE } + t_aHA[ HTML_ATTR_SCOPED ] := { "scoped" , HTML_ATTR_TYPE_BOOL } t_aHA[ HTML_ATTR_SCROLLING ] := { "scrolling" , HTML_ATTR_TYPE_SCROLL } t_aHA[ HTML_ATTR_SDAFORM ] := { "sdaform" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_SDAPREF ] := { "sdapref" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_SDASUFF ] := { "sdasuff" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_SEAMLESS ] := { "seamless" , HTML_ATTR_TYPE_BOOL } t_aHA[ HTML_ATTR_SELECTED ] := { "selected" , HTML_ATTR_TYPE_BOOL } t_aHA[ HTML_ATTR_SHAPE ] := { "shape" , HTML_ATTR_TYPE_SHAPE } t_aHA[ HTML_ATTR_SHOWGRID ] := { "showgrid" , HTML_ATTR_TYPE_BOOL } t_aHA[ HTML_ATTR_SHOWGRIDX ] := { "showgridx" , HTML_ATTR_TYPE_BOOL } t_aHA[ HTML_ATTR_SHOWGRIDY ] := { "showgridy" , HTML_ATTR_TYPE_BOOL } t_aHA[ HTML_ATTR_SIZE ] := { "size" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_SIZES ] := { "sizes" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_SPAN ] := { "span" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_SPELLCHECK ] := { "spellcheck" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_SRC ] := { "src" , HTML_ATTR_TYPE_URL } + t_aHA[ HTML_ATTR_SRCDOC ] := { "srcdoc" , HTML_ATTR_TYPE_SRCDOC } + t_aHA[ HTML_ATTR_SRCLANG ] := { "srclang" , HTML_ATTR_TYPE_LANG } t_aHA[ HTML_ATTR_SRCSET ] := { "srcset" , HTML_ATTR_TYPE_URL } t_aHA[ HTML_ATTR_STANDBY ] := { "standby" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_START ] := { "start" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_STEP ] := { "step" , HTML_ATTR_TYPE_STEP } t_aHA[ HTML_ATTR_STYLE ] := { "style" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_SUMMARY ] := { "summary" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_TABINDEX ] := { "tabindex" , HTML_ATTR_TYPE_NUMBER } @@ -2111,54 +2122,50 @@ STATIC PROCEDURE _Init_Html_Attributes t_aHA[ HTML_ATTR_XML_BASE ] := { "xml:base" , HTML_ATTR_TYPE_BASE } t_aHA[ HTML_ATTR_XML_LANG ] := { "xml:lang" , HTML_ATTR_TYPE_LANG } t_aHA[ HTML_ATTR_XML_SPACE ] := { "xml:space" , HTML_ATTR_TYPE_PCDATA } - + + /* HTML Tag Aria attribute data are adopted for Harbour from Tidy */ + + t_aHAAria[ HTML_ATTR_ARIA_ACTIVEDESCENDANT] := { "aria_activedescendant" , HTML_ATTR_TYPE_UNKNOWN } + t_aHAAria[ HTML_ATTR_ARIA_ATOMIC ] := { "aria_atomic" , HTML_ATTR_TYPE_UNKNOWN } + t_aHAAria[ HTML_ATTR_ARIA_AUTOCOMPLETE ] := { "aria_autocomplete" , HTML_ATTR_TYPE_UNKNOWN } + t_aHAAria[ HTML_ATTR_ARIA_BUSY ] := { "aria_busy" , HTML_ATTR_TYPE_UNKNOWN } + t_aHAAria[ HTML_ATTR_ARIA_CHECKED ] := { "aria_checked" , HTML_ATTR_TYPE_UNKNOWN } + t_aHAAria[ HTML_ATTR_ARIA_CONTROLS ] := { "aria_controls" , HTML_ATTR_TYPE_UNKNOWN } + t_aHAAria[ HTML_ATTR_ARIA_DESCRIBEDBY ] := { "aria_describedby" , HTML_ATTR_TYPE_UNKNOWN } + t_aHAAria[ HTML_ATTR_ARIA_DISABLED ] := { "aria_disabled" , HTML_ATTR_TYPE_UNKNOWN } + t_aHAAria[ HTML_ATTR_ARIA_DROPEFFECT ] := { "aria_dropeffect" , HTML_ATTR_TYPE_UNKNOWN } + t_aHAAria[ HTML_ATTR_ARIA_EXPANDED ] := { "aria_expanded" , HTML_ATTR_TYPE_UNKNOWN } + t_aHAAria[ HTML_ATTR_ARIA_FLOWTO ] := { "aria_flowto" , HTML_ATTR_TYPE_UNKNOWN } + t_aHAAria[ HTML_ATTR_ARIA_GRABBED ] := { "aria_grabbed" , HTML_ATTR_TYPE_UNKNOWN } + t_aHAAria[ HTML_ATTR_ARIA_HASPOPUP ] := { "aria_haspopup" , HTML_ATTR_TYPE_UNKNOWN } + t_aHAAria[ HTML_ATTR_ARIA_HIDDEN ] := { "aria_hidden" , HTML_ATTR_TYPE_UNKNOWN } + t_aHAAria[ HTML_ATTR_ARIA_INVALID ] := { "aria_invalid" , HTML_ATTR_TYPE_UNKNOWN } + t_aHAAria[ HTML_ATTR_ARIA_LABEL ] := { "aria_label" , HTML_ATTR_TYPE_UNKNOWN } + t_aHAAria[ HTML_ATTR_ARIA_LABELLEDBY ] := { "aria_labelledby" , HTML_ATTR_TYPE_UNKNOWN } + t_aHAAria[ HTML_ATTR_ARIA_LEVEL ] := { "aria_level" , HTML_ATTR_TYPE_UNKNOWN } + t_aHAAria[ HTML_ATTR_ARIA_LIVE ] := { "aria_live" , HTML_ATTR_TYPE_UNKNOWN } + t_aHAAria[ HTML_ATTR_ARIA_MULTILINE ] := { "aria_multiline" , HTML_ATTR_TYPE_UNKNOWN } + t_aHAAria[ HTML_ATTR_ARIA_MULTISELECTABLE ] := { "aria_multiselectable" , HTML_ATTR_TYPE_UNKNOWN } + t_aHAAria[ HTML_ATTR_ARIA_ORIENTATION ] := { "aria_orientation" , HTML_ATTR_TYPE_UNKNOWN } + t_aHAAria[ HTML_ATTR_ARIA_OWNS ] := { "aria_owns" , HTML_ATTR_TYPE_UNKNOWN } + t_aHAAria[ HTML_ATTR_ARIA_POSINSET ] := { "aria_posinset" , HTML_ATTR_TYPE_UNKNOWN } + t_aHAAria[ HTML_ATTR_ARIA_PRESSED ] := { "aria_pressed" , HTML_ATTR_TYPE_UNKNOWN } + t_aHAAria[ HTML_ATTR_ARIA_READONLY ] := { "aria_readonly" , HTML_ATTR_TYPE_UNKNOWN } + t_aHAAria[ HTML_ATTR_ARIA_RELEVANT ] := { "aria_relevant" , HTML_ATTR_TYPE_UNKNOWN } + t_aHAAria[ HTML_ATTR_ARIA_REQUIRED ] := { "aria_required" , HTML_ATTR_TYPE_UNKNOWN } + t_aHAAria[ HTML_ATTR_ARIA_SELECTED ] := { "aria_selected" , HTML_ATTR_TYPE_UNKNOWN } + t_aHAAria[ HTML_ATTR_ARIA_SETSIZE ] := { "aria_setsize" , HTML_ATTR_TYPE_UNKNOWN } + t_aHAAria[ HTML_ATTR_ARIA_SORT ] := { "aria_sort" , HTML_ATTR_TYPE_UNKNOWN } + t_aHAAria[ HTML_ATTR_ARIA_VALUEMAX ] := { "aria_valuemax" , HTML_ATTR_TYPE_UNKNOWN } + t_aHAAria[ HTML_ATTR_ARIA_VALUEMIN ] := { "aria_valuemin" , HTML_ATTR_TYPE_UNKNOWN } + t_aHAAria[ HTML_ATTR_ARIA_VALUENOW ] := { "aria_valuenow" , HTML_ATTR_TYPE_UNKNOWN } + t_aHAAria[ HTML_ATTR_ARIA_VALUETEXT ] := { "aria_valuetext" , HTML_ATTR_TYPE_UNKNOWN } + /*Begin TODO:*/ - t_aHA[ HTML_ATTR_SANDBOX ] := { "sandbox" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_SCOPED ] := { "scoped" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_SEAMLESS ] := { "seamless" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_SIZES ] := { "sizes" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_SPELLCHECK ] := { "spellcheck" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_SRCDOC ] := { "srcdoc" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_SRCLANG ] := { "srclang" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_STEP ] := { "step" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_ACTIVEDESCENDANT] := { "aria_activedescendant" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_ATOMIC ] := { "aria_atomic" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_AUTOCOMPLETE ] := { "aria_autocomplete" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_BUSY ] := { "aria_busy" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_CHECKED ] := { "aria_checked" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_CONTROLS ] := { "aria_controls" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_DESCRIBEDBY ] := { "aria_describedby" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_DISABLED ] := { "aria_disabled" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_DROPEFFECT ] := { "aria_dropeffect" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_EXPANDED ] := { "aria_expanded" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_FLOWTO ] := { "aria_flowto" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_GRABBED ] := { "aria_grabbed" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_HASPOPUP ] := { "aria_haspopup" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_HIDDEN ] := { "aria_hidden" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_INVALID ] := { "aria_invalid" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_LABEL ] := { "aria_label" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_LABELLEDBY ] := { "aria_labelledby" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_LEVEL ] := { "aria_level" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_LIVE ] := { "aria_live" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_MULTILINE ] := { "aria_multiline" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_MULTISELECTABLE ] := { "aria_multiselectable" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_ORIENTATION ] := { "aria_orientation" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_OWNS ] := { "aria_owns" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_POSINSET ] := { "aria_posinset" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_PRESSED ] := { "aria_pressed" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_READONLY ] := { "aria_readonly" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_RELEVANT ] := { "aria_relevant" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_REQUIRED ] := { "aria_required" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_SELECTED ] := { "aria_selected" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_SETSIZE ] := { "aria_setsize" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_SORT ] := { "aria_sort" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_VALUEMAX ] := { "aria_valuemax" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_VALUEMIN ] := { "aria_valuemin" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_VALUENOW ] := { "aria_valuenow" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ARIA_VALUETEXT ] := { "aria_valuetext" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_X ] := { "x" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_Y ] := { "y" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_VIEWBOX ] := { "viewbox" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_PRESERVEASPECTRATIO ] := { "preserveaspectratio" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_ZOOMANDPAN ] := { "zoomandpan" , HTML_ATTR_TYPE_UNKNOWN } @@ -3040,8 +3047,11 @@ STATIC FUNCTION THtmlAttr_IFRAME() t_aHA[ HTML_ATTR_MARGINHEIGHT ], ; t_aHA[ HTML_ATTR_MARGINWIDTH ], ; t_aHA[ HTML_ATTR_NAME ], ; + t_aHA[ HTML_ATTR_SANDBOX ], ; t_aHA[ HTML_ATTR_SCROLLING ], ; + t_aHA[ HTML_ATTR_SEAMLESS ], ; t_aHA[ HTML_ATTR_SRC ], ; + t_aHA[ HTML_ATTR_SRCDOC ], ; t_aHA[ HTML_ATTR_WIDTH ], ; t_aHA[ HTML_ATTR_ALLOWFULLSCREEN ], ; t_aHA[ HTML_ATTR_ASYNC ] } @@ -3120,6 +3130,7 @@ STATIC FUNCTION THtmlAttr_INPUT() t_aHA[ HTML_ATTR_SDAPREF ], ; t_aHA[ HTML_ATTR_SIZE ], ; t_aHA[ HTML_ATTR_SRC ], ; + t_aHA[ HTML_ATTR_STEP ], ; t_aHA[ HTML_ATTR_TYPE ], ; t_aHA[ HTML_ATTR_USEMAP ], ; t_aHA[ HTML_ATTR_VALUE ], ; @@ -3243,6 +3254,7 @@ STATIC FUNCTION THtmlAttr_LINK() t_aHA[ HTML_ATTR_REL ], ; t_aHA[ HTML_ATTR_REV ], ; t_aHA[ HTML_ATTR_SDAPREF ], ; + t_aHA[ HTML_ATTR_SIZES ], ; t_aHA[ HTML_ATTR_TARGET ], ; t_aHA[ HTML_ATTR_TYPE ], ; t_aHA[ HTML_ATTR_URN ], ; @@ -3730,6 +3742,7 @@ STATIC FUNCTION THtmlAttr_STRONG() STATIC FUNCTION THtmlAttr_STYLE() RETURN { ; t_aHA[ HTML_ATTR_MEDIA ], ; + t_aHA[ HTML_ATTR_SCOPED ], ; t_aHA[ HTML_ATTR_TYPE ], ; t_aHA[ HTML_ATTR_XML_SPACE ], ; t_aHA[ HTML_ATTR_XMLNS ], ; From a10a50566398b5ad909a5445cc14e76719c2fb4c Mon Sep 17 00:00:00 2001 From: Naldo DJ Date: Sat, 16 Apr 2022 18:30:59 -0300 Subject: [PATCH 10/19] New HTML Features --- contrib/hbtip/thtml.ch | 888 ++++++++++++++++++++++------------------ contrib/hbtip/thtml.prg | 309 +++++++++++--- 2 files changed, 735 insertions(+), 462 deletions(-) diff --git a/contrib/hbtip/thtml.ch b/contrib/hbtip/thtml.ch index 6e0319d49f..c182c26c49 100644 --- a/contrib/hbtip/thtml.ch +++ b/contrib/hbtip/thtml.ch @@ -80,422 +80,498 @@ /* Constants for HTML attributes adopted from Tidy library */ -#define HTML_ATTR_ABBR 1 -#define HTML_ATTR_ACCEPT 2 -#define HTML_ATTR_ACCEPT_CHARSET 3 -#define HTML_ATTR_ACCESSKEY 4 -#define HTML_ATTR_ACTION 5 -#define HTML_ATTR_ADD_DATE 6 -#define HTML_ATTR_ALIGN 7 -#define HTML_ATTR_ALINK 8 -#define HTML_ATTR_ALT 9 -#define HTML_ATTR_ARCHIVE 10 -#define HTML_ATTR_AXIS 11 -#define HTML_ATTR_BACKGROUND 12 -#define HTML_ATTR_BGCOLOR 13 -#define HTML_ATTR_BGPROPERTIES 14 -#define HTML_ATTR_BORDER 15 -#define HTML_ATTR_BORDERCOLOR 16 -#define HTML_ATTR_BOTTOMMARGIN 17 -#define HTML_ATTR_CELLPADDING 18 -#define HTML_ATTR_CELLSPACING 19 -#define HTML_ATTR_CHAR 20 -#define HTML_ATTR_CHAROFF 21 -#define HTML_ATTR_CHARSET 22 -#define HTML_ATTR_CHECKED 23 -#define HTML_ATTR_CITE 24 -#define HTML_ATTR_CLASS 25 -#define HTML_ATTR_CLASSID 26 -#define HTML_ATTR_CLEAR 27 -#define HTML_ATTR_CODE 28 -#define HTML_ATTR_CODEBASE 29 -#define HTML_ATTR_CODETYPE 30 -#define HTML_ATTR_COLOR 31 -#define HTML_ATTR_COLS 32 -#define HTML_ATTR_COLSPAN 33 -#define HTML_ATTR_COMPACT 34 -#define HTML_ATTR_CONTENT 35 -#define HTML_ATTR_COORDS 36 -#define HTML_ATTR_DATA 37 -#define HTML_ATTR_DATAFLD 38 -#define HTML_ATTR_DATAFORMATAS 39 -#define HTML_ATTR_DATAPAGESIZE 40 -#define HTML_ATTR_DATASRC 41 -#define HTML_ATTR_DATETIME 42 -#define HTML_ATTR_DECLARE 43 -#define HTML_ATTR_DEFER 44 -#define HTML_ATTR_DIR 45 -#define HTML_ATTR_DISABLED 46 -#define HTML_ATTR_ENCODING 47 -#define HTML_ATTR_ENCTYPE 48 -#define HTML_ATTR_EVENT 49 -#define HTML_ATTR_FACE 50 -#define HTML_ATTR_FOR 51 -#define HTML_ATTR_FRAME 52 -#define HTML_ATTR_FRAMEBORDER 53 -#define HTML_ATTR_FRAMESPACING 54 -#define HTML_ATTR_GRIDX 55 -#define HTML_ATTR_GRIDY 56 -#define HTML_ATTR_HEADERS 57 -#define HTML_ATTR_HEIGHT 58 -#define HTML_ATTR_HREF 59 -#define HTML_ATTR_HREFLANG 60 -#define HTML_ATTR_HSPACE 61 -#define HTML_ATTR_HTTP_EQUIV 62 -#define HTML_ATTR_ID 63 -#define HTML_ATTR_ISMAP 64 -#define HTML_ATTR_LABEL 65 -#define HTML_ATTR_LANG 66 -#define HTML_ATTR_LANGUAGE 67 -#define HTML_ATTR_LAST_MODIFIED 68 -#define HTML_ATTR_LAST_VISIT 69 -#define HTML_ATTR_LEFTMARGIN 70 -#define HTML_ATTR_LINK 71 -#define HTML_ATTR_LONGDESC 72 -#define HTML_ATTR_LOWSRC 73 -#define HTML_ATTR_MARGINHEIGHT 74 -#define HTML_ATTR_MARGINWIDTH 75 -#define HTML_ATTR_MAXLENGTH 76 -#define HTML_ATTR_MEDIA 77 -#define HTML_ATTR_METHOD 78 -#define HTML_ATTR_METHODS 79 -#define HTML_ATTR_MULTIPLE 80 -#define HTML_ATTR_N 81 -#define HTML_ATTR_NAME 82 -#define HTML_ATTR_NOHREF 83 -#define HTML_ATTR_NORESIZE 84 -#define HTML_ATTR_NOSHADE 85 -#define HTML_ATTR_NOWRAP 86 -#define HTML_ATTR_OBJECT 87 -#define HTML_ATTR_ONAFTERUPDATE 88 -#define HTML_ATTR_ONBEFOREUNLOAD 89 -#define HTML_ATTR_ONBEFOREUPDATE 90 -#define HTML_ATTR_ONBLUR 91 -#define HTML_ATTR_ONCHANGE 92 -#define HTML_ATTR_ONCLICK 93 -#define HTML_ATTR_ONDATAAVAILABLE 94 -#define HTML_ATTR_ONDATASETCHANGED 95 -#define HTML_ATTR_ONDATASETCOMPLETE 96 -#define HTML_ATTR_ONDBLCLICK 97 -#define HTML_ATTR_ONERRORUPDATE 98 -#define HTML_ATTR_ONFOCUS 99 -#define HTML_ATTR_ONKEYDOWN 100 -#define HTML_ATTR_ONKEYPRESS 101 -#define HTML_ATTR_ONKEYUP 102 -#define HTML_ATTR_ONLOAD 103 -#define HTML_ATTR_ONMOUSEDOWN 104 -#define HTML_ATTR_ONMOUSEMOVE 105 -#define HTML_ATTR_ONMOUSEOUT 106 -#define HTML_ATTR_ONMOUSEOVER 107 -#define HTML_ATTR_ONMOUSEUP 108 -#define HTML_ATTR_ONRESET 109 -#define HTML_ATTR_ONROWENTER 110 -#define HTML_ATTR_ONROWEXIT 111 -#define HTML_ATTR_ONSELECT 112 -#define HTML_ATTR_ONSUBMIT 113 -#define HTML_ATTR_ONUNLOAD 114 -#define HTML_ATTR_PROFILE 115 -#define HTML_ATTR_PROMPT 116 -#define HTML_ATTR_RBSPAN 117 -#define HTML_ATTR_READONLY 118 -#define HTML_ATTR_REL 119 -#define HTML_ATTR_REV 120 -#define HTML_ATTR_RIGHTMARGIN 121 -#define HTML_ATTR_ROWS 122 -#define HTML_ATTR_ROWSPAN 123 -#define HTML_ATTR_RULES 124 -#define HTML_ATTR_SCHEME 125 -#define HTML_ATTR_SCOPE 126 -#define HTML_ATTR_SCROLLING 127 -#define HTML_ATTR_SDAFORM 128 -#define HTML_ATTR_SDAPREF 129 -#define HTML_ATTR_SDASUFF 130 -#define HTML_ATTR_SELECTED 131 -#define HTML_ATTR_SHAPE 132 -#define HTML_ATTR_SHOWGRID 133 -#define HTML_ATTR_SHOWGRIDX 134 -#define HTML_ATTR_SHOWGRIDY 135 -#define HTML_ATTR_SIZE 136 -#define HTML_ATTR_SPAN 137 -#define HTML_ATTR_SRC 138 -#define HTML_ATTR_STANDBY 139 -#define HTML_ATTR_START 140 -#define HTML_ATTR_STYLE 141 -#define HTML_ATTR_SUMMARY 142 -#define HTML_ATTR_TABINDEX 143 -#define HTML_ATTR_TARGET 144 -#define HTML_ATTR_TEXT 145 -#define HTML_ATTR_TITLE 146 -#define HTML_ATTR_TOPMARGIN 147 -#define HTML_ATTR_TYPE 148 -#define HTML_ATTR_UNKNOWN 149 -#define HTML_ATTR_URN 150 -#define HTML_ATTR_USEMAP 151 -#define HTML_ATTR_VALIGN 152 -#define HTML_ATTR_VALUE 153 -#define HTML_ATTR_VALUETYPE 154 -#define HTML_ATTR_VERSION 155 -#define HTML_ATTR_VLINK 156 -#define HTML_ATTR_VSPACE 157 -#define HTML_ATTR_WIDTH 158 -#define HTML_ATTR_WRAP 159 -#define HTML_ATTR_XMLNS 160 -#define HTML_ATTR_XML_LANG 161 -#define HTML_ATTR_XML_SPACE 162 -#define HTML_ATTR_ALLOWFULLSCREEN 163 -#define HTML_ATTR_DOWNLOAD 164 -#define HTML_ATTR_IS 165 -#define HTML_ATTR_ITEMID 166 -#define HTML_ATTR_ITEMPROP 167 -#define HTML_ATTR_ITEMREF 168 -#define HTML_ATTR_ITEMSCOPE 169 -#define HTML_ATTR_ITEMTYPE 170 -#define HTML_ATTR_ROLE 171 -#define HTML_ATTR_SRCSET 172 -#define HTML_ATTR_TRANSLATE 173 -#define HTML_ATTR_ASYNC 174 -#define HTML_ATTR_AUTOCOMPLETE 175 -#define HTML_ATTR_AUTOFOCUS 176 -#define HTML_ATTR_AUTOPLAY 177 -#define HTML_ATTR_CHALLENGE 178 -#define HTML_ATTR_CONTENTEDITABLE 179 -#define HTML_ATTR_CONTEXTMENU 180 -#define HTML_ATTR_CONTROLS 181 -#define HTML_ATTR_CROSSORIGIN 182 -#define HTML_ATTR_DEFAULT 183 -#define HTML_ATTR_DIRNAME 184 -#define HTML_ATTR_DRAGGABLE 185 -#define HTML_ATTR_DROPZONE 186 -#define HTML_ATTR_FORM 187 -#define HTML_ATTR_FORMACTION 188 -#define HTML_ATTR_FORMENCTYPE 189 -#define HTML_ATTR_FORMMETHOD 190 -#define HTML_ATTR_FORMNOVALIDATE 191 -#define HTML_ATTR_FORMTARGET 192 -#define HTML_ATTR_HIDDEN 193 -#define HTML_ATTR_HIGH 194 -#define HTML_ATTR_ICON 195 -#define HTML_ATTR_KEYTYPE 196 -#define HTML_ATTR_KIND 197 -#define HTML_ATTR_LIST 198 -#define HTML_ATTR_LOOP 199 -#define HTML_ATTR_LOW 200 -#define HTML_ATTR_MANIFEST 201 -#define HTML_ATTR_MAX 202 -#define HTML_ATTR_MEDIAGROUP 203 -#define HTML_ATTR_MIN 204 -#define HTML_ATTR_MUTED 205 -#define HTML_ATTR_NOVALIDATE 206 -#define HTML_ATTR_OPEN 207 -#define HTML_ATTR_OPTIMUM 208 -#define HTML_ATTR_ONABORT 209 -#define HTML_ATTR_ONAFTERPRINT 210 -#define HTML_ATTR_ONBEFOREPRINT 211 -#define HTML_ATTR_ONCANPLAY 212 -#define HTML_ATTR_ONCANPLAYTHROUGH 213 -#define HTML_ATTR_ONCONTEXTMENU 214 -#define HTML_ATTR_ONCUECHANGE 215 -#define HTML_ATTR_ONDRAG 216 -#define HTML_ATTR_ONDRAGEND 217 -#define HTML_ATTR_ONDRAGENTER 218 -#define HTML_ATTR_ONDRAGLEAVE 219 -#define HTML_ATTR_ONDRAGOVER 220 -#define HTML_ATTR_ONDRAGSTART 221 -#define HTML_ATTR_ONDROP 222 -#define HTML_ATTR_ONDURATIONCHANGE 223 -#define HTML_ATTR_ONEMPTIED 224 -#define HTML_ATTR_ONENDED 225 -#define HTML_ATTR_ONERROR 226 -#define HTML_ATTR_ONHASHCHANGE 227 -#define HTML_ATTR_ONINPUT 228 -#define HTML_ATTR_ONINVALID 229 -#define HTML_ATTR_ONLOADEDDATA 230 -#define HTML_ATTR_ONLOADEDMETADATA 231 -#define HTML_ATTR_ONLOADSTART 232 -#define HTML_ATTR_ONMESSAGE 233 -#define HTML_ATTR_ONMOUSEWHEEL 234 -#define HTML_ATTR_ONOFFLINE 235 -#define HTML_ATTR_ONONLINE 236 -#define HTML_ATTR_ONPAGEHIDE 237 -#define HTML_ATTR_ONPAGESHOW 238 -#define HTML_ATTR_ONPAUSE 239 -#define HTML_ATTR_ONPLAY 240 -#define HTML_ATTR_ONPLAYING 241 -#define HTML_ATTR_ONPOPSTATE 242 -#define HTML_ATTR_ONPROGRESS 243 -#define HTML_ATTR_ONRATECHANGE 244 -#define HTML_ATTR_ONREADYSTATECHANGE 245 -#define HTML_ATTR_ONREDO 246 -#define HTML_ATTR_ONRESIZE 247 -#define HTML_ATTR_ONSCROLL 248 -#define HTML_ATTR_ONSEEKED 249 -#define HTML_ATTR_ONSEEKING 250 -#define HTML_ATTR_ONSHOW 251 -#define HTML_ATTR_ONSTALLED 252 -#define HTML_ATTR_ONSTORAGE 253 -#define HTML_ATTR_ONSUSPEND 254 -#define HTML_ATTR_ONTIMEUPDATE 255 -#define HTML_ATTR_ONUNDO 256 -#define HTML_ATTR_ONVOLUMECHANGE 257 -#define HTML_ATTR_ONWAITING 258 -#define HTML_ATTR_PATTERN 259 -#define HTML_ATTR_PLACEHOLDER 260 -#define HTML_ATTR_PLAYSINLINE 261 -#define HTML_ATTR_POSTER 262 -#define HTML_ATTR_PRELOAD 263 -#define HTML_ATTR_PUBDATE 264 -#define HTML_ATTR_RADIOGROUP 265 -#define HTML_ATTR_REQUIRED 266 -#define HTML_ATTR_REVERSED 267 -#define HTML_ATTR_SANDBOX 268 -#define HTML_ATTR_SCOPED 269 -#define HTML_ATTR_SEAMLESS 270 -#define HTML_ATTR_SIZES 271 -#define HTML_ATTR_SPELLCHECK 272 -#define HTML_ATTR_SRCDOC 273 -#define HTML_ATTR_SRCLANG 274 -#define HTML_ATTR_STEP 275 +#define HTML_ATTR_ABBR 1 +#define HTML_ATTR_ACCEPT 2 +#define HTML_ATTR_ACCEPT_CHARSET 3 +#define HTML_ATTR_ACCESSKEY 4 +#define HTML_ATTR_ACTION 5 +#define HTML_ATTR_ADD_DATE 6 +#define HTML_ATTR_ALIGN 7 +#define HTML_ATTR_ALINK 8 +#define HTML_ATTR_ALT 9 +#define HTML_ATTR_ARCHIVE 10 +#define HTML_ATTR_AXIS 11 +#define HTML_ATTR_BACKGROUND 12 +#define HTML_ATTR_BGCOLOR 13 +#define HTML_ATTR_BGPROPERTIES 14 +#define HTML_ATTR_BORDER 15 +#define HTML_ATTR_BORDERCOLOR 16 +#define HTML_ATTR_BOTTOMMARGIN 17 +#define HTML_ATTR_CELLPADDING 18 +#define HTML_ATTR_CELLSPACING 19 +#define HTML_ATTR_CHAR 20 +#define HTML_ATTR_CHAROFF 21 +#define HTML_ATTR_CHARSET 22 +#define HTML_ATTR_CHECKED 23 +#define HTML_ATTR_CITE 24 +#define HTML_ATTR_CLASS 25 +#define HTML_ATTR_CLASSID 26 +#define HTML_ATTR_CLEAR 27 +#define HTML_ATTR_CODE 28 +#define HTML_ATTR_CODEBASE 29 +#define HTML_ATTR_CODETYPE 30 +#define HTML_ATTR_COLOR 31 +#define HTML_ATTR_COLS 32 +#define HTML_ATTR_COLSPAN 33 +#define HTML_ATTR_COMPACT 34 +#define HTML_ATTR_CONTENT 35 +#define HTML_ATTR_COORDS 36 +#define HTML_ATTR_DATA 37 +#define HTML_ATTR_DATAFLD 38 +#define HTML_ATTR_DATAFORMATAS 39 +#define HTML_ATTR_DATAPAGESIZE 40 +#define HTML_ATTR_DATASRC 41 +#define HTML_ATTR_DATETIME 42 +#define HTML_ATTR_DECLARE 43 +#define HTML_ATTR_DEFER 44 +#define HTML_ATTR_DIR 45 +#define HTML_ATTR_DISABLED 46 +#define HTML_ATTR_ENCODING 47 +#define HTML_ATTR_ENCTYPE 48 +#define HTML_ATTR_EVENT 49 +#define HTML_ATTR_FACE 50 +#define HTML_ATTR_FOR 51 +#define HTML_ATTR_FRAME 52 +#define HTML_ATTR_FRAMEBORDER 53 +#define HTML_ATTR_FRAMESPACING 54 +#define HTML_ATTR_GRIDX 55 +#define HTML_ATTR_GRIDY 56 +#define HTML_ATTR_HEADERS 57 +#define HTML_ATTR_HEIGHT 58 +#define HTML_ATTR_HREF 59 +#define HTML_ATTR_HREFLANG 60 +#define HTML_ATTR_HSPACE 61 +#define HTML_ATTR_HTTP_EQUIV 62 +#define HTML_ATTR_ID 63 +#define HTML_ATTR_ISMAP 64 +#define HTML_ATTR_LABEL 65 +#define HTML_ATTR_LANG 66 +#define HTML_ATTR_LANGUAGE 67 +#define HTML_ATTR_LAST_MODIFIED 68 +#define HTML_ATTR_LAST_VISIT 69 +#define HTML_ATTR_LEFTMARGIN 70 +#define HTML_ATTR_LINK 71 +#define HTML_ATTR_LONGDESC 72 +#define HTML_ATTR_LOWSRC 73 +#define HTML_ATTR_MARGINHEIGHT 74 +#define HTML_ATTR_MARGINWIDTH 75 +#define HTML_ATTR_MAXLENGTH 76 +#define HTML_ATTR_MEDIA 77 +#define HTML_ATTR_METHOD 78 +#define HTML_ATTR_METHODS 79 +#define HTML_ATTR_MULTIPLE 80 +#define HTML_ATTR_N 81 +#define HTML_ATTR_NAME 82 +#define HTML_ATTR_NOHREF 83 +#define HTML_ATTR_NORESIZE 84 +#define HTML_ATTR_NOSHADE 85 +#define HTML_ATTR_NOWRAP 86 +#define HTML_ATTR_OBJECT 87 +#define HTML_ATTR_ONAFTERUPDATE 88 +#define HTML_ATTR_ONBEFOREUNLOAD 89 +#define HTML_ATTR_ONBEFOREUPDATE 90 +#define HTML_ATTR_ONBLUR 91 +#define HTML_ATTR_ONCHANGE 92 +#define HTML_ATTR_ONCLICK 93 +#define HTML_ATTR_ONDATAAVAILABLE 94 +#define HTML_ATTR_ONDATASETCHANGED 95 +#define HTML_ATTR_ONDATASETCOMPLETE 96 +#define HTML_ATTR_ONDBLCLICK 97 +#define HTML_ATTR_ONERRORUPDATE 98 +#define HTML_ATTR_ONFOCUS 99 +#define HTML_ATTR_ONKEYDOWN 100 +#define HTML_ATTR_ONKEYPRESS 101 +#define HTML_ATTR_ONKEYUP 102 +#define HTML_ATTR_ONLOAD 103 +#define HTML_ATTR_ONMOUSEDOWN 104 +#define HTML_ATTR_ONMOUSEMOVE 105 +#define HTML_ATTR_ONMOUSEOUT 106 +#define HTML_ATTR_ONMOUSEOVER 107 +#define HTML_ATTR_ONMOUSEUP 108 +#define HTML_ATTR_ONRESET 109 +#define HTML_ATTR_ONROWENTER 110 +#define HTML_ATTR_ONROWEXIT 111 +#define HTML_ATTR_ONSELECT 112 +#define HTML_ATTR_ONSUBMIT 113 +#define HTML_ATTR_ONUNLOAD 114 +#define HTML_ATTR_PROFILE 115 +#define HTML_ATTR_PROMPT 116 +#define HTML_ATTR_RBSPAN 117 +#define HTML_ATTR_READONLY 118 +#define HTML_ATTR_REL 119 +#define HTML_ATTR_REV 120 +#define HTML_ATTR_RIGHTMARGIN 121 +#define HTML_ATTR_ROWS 122 +#define HTML_ATTR_ROWSPAN 123 +#define HTML_ATTR_RULES 124 +#define HTML_ATTR_SCHEME 125 +#define HTML_ATTR_SCOPE 126 +#define HTML_ATTR_SCROLLING 127 +#define HTML_ATTR_SDAFORM 128 +#define HTML_ATTR_SDAPREF 129 +#define HTML_ATTR_SDASUFF 130 +#define HTML_ATTR_SELECTED 131 +#define HTML_ATTR_SHAPE 132 +#define HTML_ATTR_SHOWGRID 133 +#define HTML_ATTR_SHOWGRIDX 134 +#define HTML_ATTR_SHOWGRIDY 135 +#define HTML_ATTR_SIZE 136 +#define HTML_ATTR_SPAN 137 +#define HTML_ATTR_SRC 138 +#define HTML_ATTR_STANDBY 139 +#define HTML_ATTR_START 140 +#define HTML_ATTR_STYLE 141 +#define HTML_ATTR_SUMMARY 142 +#define HTML_ATTR_TABINDEX 143 +#define HTML_ATTR_TARGET 144 +#define HTML_ATTR_TEXT 145 +#define HTML_ATTR_TITLE 146 +#define HTML_ATTR_TOPMARGIN 147 +#define HTML_ATTR_TYPE 148 +#define HTML_ATTR_UNKNOWN 149 +#define HTML_ATTR_URN 150 +#define HTML_ATTR_USEMAP 151 +#define HTML_ATTR_VALIGN 152 +#define HTML_ATTR_VALUE 153 +#define HTML_ATTR_VALUETYPE 154 +#define HTML_ATTR_VERSION 155 +#define HTML_ATTR_VLINK 156 +#define HTML_ATTR_VSPACE 157 +#define HTML_ATTR_WIDTH 158 +#define HTML_ATTR_WRAP 159 +#define HTML_ATTR_XMLNS 160 +#define HTML_ATTR_XML_LANG 161 +#define HTML_ATTR_XML_SPACE 162 +#define HTML_ATTR_ALLOWFULLSCREEN 163 +#define HTML_ATTR_DOWNLOAD 164 +#define HTML_ATTR_IS 165 +#define HTML_ATTR_ITEMID 166 +#define HTML_ATTR_ITEMPROP 167 +#define HTML_ATTR_ITEMREF 168 +#define HTML_ATTR_ITEMSCOPE 169 +#define HTML_ATTR_ITEMTYPE 170 +#define HTML_ATTR_ROLE 171 +#define HTML_ATTR_SRCSET 172 +#define HTML_ATTR_TRANSLATE 173 +#define HTML_ATTR_ASYNC 174 +#define HTML_ATTR_AUTOCOMPLETE 175 +#define HTML_ATTR_AUTOFOCUS 176 +#define HTML_ATTR_AUTOPLAY 177 +#define HTML_ATTR_CHALLENGE 178 +#define HTML_ATTR_CONTENTEDITABLE 179 +#define HTML_ATTR_CONTEXTMENU 180 +#define HTML_ATTR_CONTROLS 181 +#define HTML_ATTR_CROSSORIGIN 182 +#define HTML_ATTR_DEFAULT 183 +#define HTML_ATTR_DIRNAME 184 +#define HTML_ATTR_DRAGGABLE 185 +#define HTML_ATTR_DROPZONE 186 +#define HTML_ATTR_FORM 187 +#define HTML_ATTR_FORMACTION 188 +#define HTML_ATTR_FORMENCTYPE 189 +#define HTML_ATTR_FORMMETHOD 190 +#define HTML_ATTR_FORMNOVALIDATE 191 +#define HTML_ATTR_FORMTARGET 192 +#define HTML_ATTR_HIDDEN 193 +#define HTML_ATTR_HIGH 194 +#define HTML_ATTR_ICON 195 +#define HTML_ATTR_KEYTYPE 196 +#define HTML_ATTR_KIND 197 +#define HTML_ATTR_LIST 198 +#define HTML_ATTR_LOOP 199 +#define HTML_ATTR_LOW 200 +#define HTML_ATTR_MANIFEST 201 +#define HTML_ATTR_MAX 202 +#define HTML_ATTR_MEDIAGROUP 203 +#define HTML_ATTR_MIN 204 +#define HTML_ATTR_MUTED 205 +#define HTML_ATTR_NOVALIDATE 206 +#define HTML_ATTR_OPEN 207 +#define HTML_ATTR_OPTIMUM 208 +#define HTML_ATTR_ONABORT 209 +#define HTML_ATTR_ONAFTERPRINT 210 +#define HTML_ATTR_ONBEFOREPRINT 211 +#define HTML_ATTR_ONCANPLAY 212 +#define HTML_ATTR_ONCANPLAYTHROUGH 213 +#define HTML_ATTR_ONCONTEXTMENU 214 +#define HTML_ATTR_ONCUECHANGE 215 +#define HTML_ATTR_ONDRAG 216 +#define HTML_ATTR_ONDRAGEND 217 +#define HTML_ATTR_ONDRAGENTER 218 +#define HTML_ATTR_ONDRAGLEAVE 219 +#define HTML_ATTR_ONDRAGOVER 220 +#define HTML_ATTR_ONDRAGSTART 221 +#define HTML_ATTR_ONDROP 222 +#define HTML_ATTR_ONDURATIONCHANGE 223 +#define HTML_ATTR_ONEMPTIED 224 +#define HTML_ATTR_ONENDED 225 +#define HTML_ATTR_ONERROR 226 +#define HTML_ATTR_ONHASHCHANGE 227 +#define HTML_ATTR_ONINPUT 228 +#define HTML_ATTR_ONINVALID 229 +#define HTML_ATTR_ONLOADEDDATA 230 +#define HTML_ATTR_ONLOADEDMETADATA 231 +#define HTML_ATTR_ONLOADSTART 232 +#define HTML_ATTR_ONMESSAGE 233 +#define HTML_ATTR_ONMOUSEWHEEL 234 +#define HTML_ATTR_ONOFFLINE 235 +#define HTML_ATTR_ONONLINE 236 +#define HTML_ATTR_ONPAGEHIDE 237 +#define HTML_ATTR_ONPAGESHOW 238 +#define HTML_ATTR_ONPAUSE 239 +#define HTML_ATTR_ONPLAY 240 +#define HTML_ATTR_ONPLAYING 241 +#define HTML_ATTR_ONPOPSTATE 242 +#define HTML_ATTR_ONPROGRESS 243 +#define HTML_ATTR_ONRATECHANGE 244 +#define HTML_ATTR_ONREADYSTATECHANGE 245 +#define HTML_ATTR_ONREDO 246 +#define HTML_ATTR_ONRESIZE 247 +#define HTML_ATTR_ONSCROLL 248 +#define HTML_ATTR_ONSEEKED 249 +#define HTML_ATTR_ONSEEKING 250 +#define HTML_ATTR_ONSHOW 251 +#define HTML_ATTR_ONSTALLED 252 +#define HTML_ATTR_ONSTORAGE 253 +#define HTML_ATTR_ONSUSPEND 254 +#define HTML_ATTR_ONTIMEUPDATE 255 +#define HTML_ATTR_ONUNDO 256 +#define HTML_ATTR_ONVOLUMECHANGE 257 +#define HTML_ATTR_ONWAITING 258 +#define HTML_ATTR_PATTERN 259 +#define HTML_ATTR_PLACEHOLDER 260 +#define HTML_ATTR_PLAYSINLINE 261 +#define HTML_ATTR_POSTER 262 +#define HTML_ATTR_PRELOAD 263 +#define HTML_ATTR_PUBDATE 264 +#define HTML_ATTR_RADIOGROUP 265 +#define HTML_ATTR_REQUIRED 266 +#define HTML_ATTR_REVERSED 267 +#define HTML_ATTR_SANDBOX 268 +#define HTML_ATTR_SCOPED 269 +#define HTML_ATTR_SEAMLESS 270 +#define HTML_ATTR_SIZES 271 +#define HTML_ATTR_SPELLCHECK 272 +#define HTML_ATTR_SRCDOC 273 +#define HTML_ATTR_SRCLANG 274 +#define HTML_ATTR_STEP 275 +#define HTML_ATTR_AUTOCAPITALIZE 276 /* SVG attributes (SVG 1.1) */ -#define HTML_ATTR_X 276 -#define HTML_ATTR_Y 277 -#define HTML_ATTR_VIEWBOX 278 -#define HTML_ATTR_PRESERVEASPECTRATIO 279 -#define HTML_ATTR_ZOOMANDPAN 280 -#define HTML_ATTR_BASEPROFILE 281 -#define HTML_ATTR_CONTENTSCRIPTTYPE 282 -#define HTML_ATTR_CONTENTSTYLETYPE 283 +#define HTML_ATTR_SVG_BASEPROFILE 277 +#define HTML_ATTR_SVG_BY 278 +#define HTML_ATTR_SVG_COLORINTERPOLATION 279 +#define HTML_ATTR_SVG_COLORRENDERING 280 +#define HTML_ATTR_SVG_CONTENTSCRIPTTYPE 281 +#define HTML_ATTR_SVG_CONTENTSTYLETYPE 282 +#define HTML_ATTR_SVG_CX 283 +#define HTML_ATTR_SVG_CY 284 +#define HTML_ATTR_SVG_ENTERKEYHINT 285 +#define HTML_ATTR_SVG_EXPORTPARTS 286 +#define HTML_ATTR_SVG_FILL 287 +#define HTML_ATTR_SVG_FILL-RULE 288 +#define HTML_ATTR_SVG_FILL-OPACITY 289 +#define HTML_ATTR_SVG_FILTER 290 +#define HTML_ATTR_SVG_FLOOD-COLOR 291 +#define HTML_ATTR_SVG_FLOOD-OPACITY 292 +#define HTML_ATTR_SVG_FONT-SIZE 293 +#define HTML_ATTR_SVG_FONT-SIZE-ADJUST 294 +#define HTML_ATTR_SVG_FONT-STYLE 295 +#define HTML_ATTR_SVG_VISIBILITY 297 +#define HTML_ATTR_SVG_FROM 298 +#define HTML_ATTR_SVG_FR 299 +#define HTML_ATTR_SVG_HEIGHT 300 +#define HTML_ATTR_SVG_KEYPOINTS 301 +#define HTML_ATTR_SVG_KEYTIMES 302 +#define HTML_ATTR_SVG_LENGTHADJUST 303 +#define HTML_ATTR_SVG_LETTER-SPACING 304 +#define HTML_ATTR_SVG_LIGHTING-COLOR 305 +#define HTML_ATTR_SVG_MARKERHEIGHT 306 +#define HTML_ATTR_SVG_MARKERWIDTH 307 +#define HTML_ATTR_SVG_MASK 308 +#define HTML_ATTR_SVG_MEDIA 309 +#define HTML_ATTR_SVG_NUMOCTAVES 310 +#define HTML_ATTR_SVG_NONCE 311 +#define HTML_ATTR_SVG_OPACITY 312 +#define HTML_ATTR_SVG_OPERATOR 313 +#define HTML_ATTR_SVG_ORIENT 314 +#define HTML_ATTR_SVG_PART 315 +#define HTML_ATTR_SVG_PATH 316 +#define HTML_ATTR_SVG_PATHLENGTH 317 +#define HTML_ATTR_SVG_PATTERNCONTENTUNITS 318 +#define HTML_ATTR_SVG_PATTERNTRANSFORM 319 +#define HTML_ATTR_SVG_PATTERNUNITS 320 +#define HTML_ATTR_SVG_POINTER-EVENTS 321 +#define HTML_ATTR_SVG_POINTS 322 +#define HTML_ATTR_SVG_POINTSATX 323 +#define HTML_ATTR_SVG_POINTSATY 324 +#define HTML_ATTR_SVG_POINTSATZ 325 +#define HTML_ATTR_SVG_PRESERVEASPECTRATIO 326 +#define HTML_ATTR_SVG_R 327 +#define HTML_ATTR_SVG_RADIUS 328 +#define HTML_ATTR_SVG_REPEATCOUNT 329 +#define HTML_ATTR_SVG_REPEATDUR 330 +#define HTML_ATTR_SVG_RESTART 331 +#define HTML_ATTR_SVG_ROTATE 332 +#define HTML_ATTR_SVG_RX 333 +#define HTML_ATTR_SVG_RY 334 +#define HTML_ATTR_SVG_SCALE 335 +#define HTML_ATTR_SVG_SEED 336 +#define HTML_ATTR_SVG_SHAPE-RENDERING 337 +#define HTML_ATTR_SVG_STARTOFFSET 338 +#define HTML_ATTR_SVG_STDDEVIATION 339 +#define HTML_ATTR_SVG_STITCHTILES 340 +#define HTML_ATTR_SVG_STOP-COLOR 341 +#define HTML_ATTR_SVG_STOP-OPACITY 342 +#define HTML_ATTR_SVG_STROKE 343 +#define HTML_ATTR_SVG_STROKE-DASHARRAY 344 +#define HTML_ATTR_SVG_STROKE-DASHOFFSET 345 +#define HTML_ATTR_SVG_STROKE-LINECAP 346 +#define HTML_ATTR_SVG_STROKE-OPACITY 347 +#define HTML_ATTR_SVG_STROKE-WIDTH 348 +#define HTML_ATTR_SVG_STROKE-LINEJOIN 349 +#define HTML_ATTR_SVG_STROKE-MITERLIMIT 350 +#define HTML_ATTR_SVG_STYLE 351 +#define HTML_ATTR_SVG_SURFACESCALE 352 +#define HTML_ATTR_SVG_SYSTEMLANGUAGE 353 +#define HTML_ATTR_SVG_TABINDEX 354 +#define HTML_ATTR_SVG_TABLEVALUES 355 +#define HTML_ATTR_SVG_TEXT-ANCHOR 356 +#define HTML_ATTR_SVG_TEXT-DECORATION 357 +#define HTML_ATTR_SVG_TEXT-RENDERING 358 +#define HTML_ATTR_SVG_TEXTLENGTH 359 +#define HTML_ATTR_SVG_TO 360 +#define HTML_ATTR_SVG_TRANSFORM 361 +#define HTML_ATTR_SVG_TYPE 362 +#define HTML_ATTR_SVG_VECTOR-EFFECT 363 +#define HTML_ATTR_SVG_VIEWBOX 364 +#define HTML_ATTR_SVG_VISIBILITY 365 +#define HTML_ATTR_SVG_WIDTH 366 +#define HTML_ATTR_SVG_WORD-SPACING 367 +#define HTML_ATTR_SVG_X 368 +#define HTML_ATTR_SVG_X1 369 +#define HTML_ATTR_SVG_X2 370 +#define HTML_ATTR_SVG_XCHANNELSELECTOR 371 +#define HTML_ATTR_SVG_XML:LANG 372 +#define HTML_ATTR_SVG_XML:BASE 373 +#define HTML_ATTR_SVG_Y 374 +#define HTML_ATTR_SVG_Y1 375 +#define HTML_ATTR_SVG_Y2 376 +#define HTML_ATTR_SVG_YCHANNELSELECTOR 377 +#define HTML_ATTR_SVG_Z 378 +#define HTML_ATTR_SVG_ZOOMANDPAN 379 + /* MathML attributes */ -#define HTML_ATTR_DISPLAY 284 +#define HTML_ATTR_DISPLAY 380 + /* RDFa global attributes */ -#define HTML_ATTR_ABOUT 285 -#define HTML_ATTR_DATATYPE 286 -#define HTML_ATTR_INLIST 287 -#define HTML_ATTR_PREFIX 288 -#define HTML_ATTR_PROPERTY 289 -#define HTML_ATTR_RESOURCE 290 -#define HTML_ATTR_TYPEOF 291 -#define HTML_ATTR_VOCAB 292 -#define HTML_ATTR_INTEGRITY 293 -#define HTML_ATTR_AS 294 -#define HTML_ATTR_XMLNSXLINK 295 -#define HTML_ATTR_SLOT 296 -#define HTML_ATTR_LOADING 297 -/* SVG paint attributes (SVG 1.1) */ -#define HTML_ATTR_FILL 298 -#define HTML_ATTR_FILLRULE 299 -#define HTML_ATTR_STROKE 300 -#define HTML_ATTR_STROKEDASHARRAY 301 -#define HTML_ATTR_STROKEDASHOFFSET 302 -#define HTML_ATTR_STROKELINECAP 303 -#define HTML_ATTR_STROKELINEJOIN 304 -#define HTML_ATTR_STROKEMITERLIMIT 305 -#define HTML_ATTR_STROKEWIDTH 306 -#define HTML_ATTR_COLORINTERPOLATION 307 -#define HTML_ATTR_COLORRENDERING 308 -#define HTML_ATTR_OPACITY 309 -#define HTML_ATTR_STROKEOPACITY 310 -#define HTML_ATTR_FILLOPACITY 311 -#define HTML_ATTR_AUTOCAPITALIZE 312 -#define HTML_ATTR_ENTERKEYHINT 313 -#define HTML_ATTR_EXPORTPARTS 314 -#define HTML_ATTR_INPUTMODE 315 -#define HTML_ATTR_NONCE 316 -#define HTML_ATTR_PART 317 -#define HTML_ATTR_XML_BASE 318 +#define HTML_ATTR_ABOUT 381 +#define HTML_ATTR_DATATYPE 382 +#define HTML_ATTR_INLIST 383 +#define HTML_ATTR_PREFIX 384 +#define HTML_ATTR_PROPERTY 385 +#define HTML_ATTR_RESOURCE 386 +#define HTML_ATTR_TYPEOF 387 +#define HTML_ATTR_VOCAB 388 +#define HTML_ATTR_INTEGRITY 389 +#define HTML_ATTR_AS 390 +#define HTML_ATTR_XMLNS:XLINK 391 +#define HTML_ATTR_SLOT 392 +#define HTML_ATTR_LOADING 393 +#define HTML_ATTR_INPUTMODE 394 -#define HTML_ATTR_COUNT 318 +#define HTML_ATTR_COUNT 394 /* Constants for HTML ARIA attributes adopted from Tidy library */ -#define HTML_ATTR_ARIA_ACTIVEDESCENDANT 1 -#define HTML_ATTR_ARIA_ATOMIC 2 -#define HTML_ATTR_ARIA_AUTOCOMPLETE 3 -#define HTML_ATTR_ARIA_BUSY 4 -#define HTML_ATTR_ARIA_CHECKED 5 -#define HTML_ATTR_ARIA_CONTROLS 6 -#define HTML_ATTR_ARIA_DESCRIBEDBY 7 -#define HTML_ATTR_ARIA_DISABLED 8 -#define HTML_ATTR_ARIA_DROPEFFECT 9 -#define HTML_ATTR_ARIA_EXPANDED 10 -#define HTML_ATTR_ARIA_FLOWTO 11 -#define HTML_ATTR_ARIA_GRABBED 12 -#define HTML_ATTR_ARIA_HASPOPUP 13 -#define HTML_ATTR_ARIA_HIDDEN 14 -#define HTML_ATTR_ARIA_INVALID 15 -#define HTML_ATTR_ARIA_LABEL 16 -#define HTML_ATTR_ARIA_LABELLEDBY 17 -#define HTML_ATTR_ARIA_LEVEL 18 -#define HTML_ATTR_ARIA_LIVE 19 -#define HTML_ATTR_ARIA_MULTILINE 20 -#define HTML_ATTR_ARIA_MULTISELECTABLE 21 -#define HTML_ATTR_ARIA_ORIENTATION 22 -#define HTML_ATTR_ARIA_OWNS 23 -#define HTML_ATTR_ARIA_POSINSET 24 -#define HTML_ATTR_ARIA_PRESSED 25 -#define HTML_ATTR_ARIA_READONLY 26 -#define HTML_ATTR_ARIA_RELEVANT 27 -#define HTML_ATTR_ARIA_REQUIRED 28 -#define HTML_ATTR_ARIA_SELECTED 29 -#define HTML_ATTR_ARIA_SETSIZE 30 -#define HTML_ATTR_ARIA_SORT 31 -#define HTML_ATTR_ARIA_VALUEMAX 32 -#define HTML_ATTR_ARIA_VALUEMIN 33 -#define HTML_ATTR_ARIA_VALUENOW 34 -#define HTML_ATTR_ARIA_VALUETEXT 35 +#define HTML_ATTR_ARIA_ACTIVEDESCENDANT 1 +#define HTML_ATTR_ARIA_ATOMIC 2 +#define HTML_ATTR_ARIA_AUTOCOMPLETE 3 +#define HTML_ATTR_ARIA_BUSY 4 +#define HTML_ATTR_ARIA_CHECKED 5 +#define HTML_ATTR_ARIA_CONTROLS 6 +#define HTML_ATTR_ARIA_DESCRIBEDBY 7 +#define HTML_ATTR_ARIA_DISABLED 8 +#define HTML_ATTR_ARIA_DROPEFFECT 9 +#define HTML_ATTR_ARIA_EXPANDED 10 +#define HTML_ATTR_ARIA_FLOWTO 11 +#define HTML_ATTR_ARIA_GRABBED 12 +#define HTML_ATTR_ARIA_HASPOPUP 13 +#define HTML_ATTR_ARIA_HIDDEN 14 +#define HTML_ATTR_ARIA_INVALID 15 +#define HTML_ATTR_ARIA_LABEL 16 +#define HTML_ATTR_ARIA_LABELLEDBY 17 +#define HTML_ATTR_ARIA_LEVEL 18 +#define HTML_ATTR_ARIA_LIVE 19 +#define HTML_ATTR_ARIA_MULTILINE 20 +#define HTML_ATTR_ARIA_MULTISELECTABLE 21 +#define HTML_ATTR_ARIA_ORIENTATION 22 +#define HTML_ATTR_ARIA_OWNS 23 +#define HTML_ATTR_ARIA_POSINSET 24 +#define HTML_ATTR_ARIA_PRESSED 25 +#define HTML_ATTR_ARIA_READONLY 26 +#define HTML_ATTR_ARIA_RELEVANT 27 +#define HTML_ATTR_ARIA_REQUIRED 28 +#define HTML_ATTR_ARIA_SELECTED 29 +#define HTML_ATTR_ARIA_SETSIZE 30 +#define HTML_ATTR_ARIA_SORT 31 +#define HTML_ATTR_ARIA_VALUEMAX 32 +#define HTML_ATTR_ARIA_VALUEMIN 33 +#define HTML_ATTR_ARIA_VALUENOW 34 +#define HTML_ATTR_ARIA_VALUETEXT 35 -#define HTML_ATTR_ARIA_COUNT 35 +#define HTML_ATTR_ARIA_COUNT 35 -#define HTML_ATTR_TYPE_UNKNOWN 0 -#define HTML_ATTR_TYPE_ACTION 1 -#define HTML_ATTR_TYPE_ALIGN 2 -#define HTML_ATTR_TYPE_BOOL 3 -#define HTML_ATTR_TYPE_BORDER 4 -#define HTML_ATTR_TYPE_CHARACTER 5 -#define HTML_ATTR_TYPE_CHARSET 6 -#define HTML_ATTR_TYPE_CLEAR 7 -#define HTML_ATTR_TYPE_COLOR 8 -#define HTML_ATTR_TYPE_COLS 9 -#define HTML_ATTR_TYPE_COORDS 10 -#define HTML_ATTR_TYPE_DATE 11 -#define HTML_ATTR_TYPE_FBORDER 12 -#define HTML_ATTR_TYPE_FSUBMIT 13 -#define HTML_ATTR_TYPE_IDDEF 14 -#define HTML_ATTR_TYPE_IDREF 15 -#define HTML_ATTR_TYPE_IDREFS 16 -#define HTML_ATTR_TYPE_LANG 17 -#define HTML_ATTR_TYPE_LENGTH 18 -#define HTML_ATTR_TYPE_LINKTYPES 19 -#define HTML_ATTR_TYPE_MEDIA 20 -#define HTML_ATTR_TYPE_NAME 21 -#define HTML_ATTR_TYPE_NUMBER 22 -#define HTML_ATTR_TYPE_PCDATA 23 -#define HTML_ATTR_TYPE_SCOPE 24 -#define HTML_ATTR_TYPE_SCRIPT 25 -#define HTML_ATTR_TYPE_SCROLL 26 -#define HTML_ATTR_TYPE_SHAPE 27 -#define HTML_ATTR_TYPE_TARGET 28 -#define HTML_ATTR_TYPE_TEXTDIR 29 -#define HTML_ATTR_TYPE_TFRAME 30 -#define HTML_ATTR_TYPE_TRULES 31 -#define HTML_ATTR_TYPE_TYPE 32 -#define HTML_ATTR_TYPE_URL 33 -#define HTML_ATTR_TYPE_URLS 34 -#define HTML_ATTR_TYPE_VALIGN 35 -#define HTML_ATTR_TYPE_VTYPE 36 -#define HTML_ATTR_TYPE_XTYPE 37 -#define HTML_ATTR_TYPE_FVALIDATE 38 -#define HTML_ATTR_TYPE_ICON 39 -#define HTML_ATTR_TYPE_LIST 40 -#define HTML_ATTR_TYPE_BASE 41 -#define HTML_ATTR_TYPE_PATTERN 42 -#define HTML_ATTR_TYPE_PLACEHOLDER 43 -#define HTML_ATTR_TYPE_PUBDATE 44 -#define HTML_ATTR_TYPE_RADIOGROUP 45 -#define HTML_ATTR_TYPE_SANDBOX 46 -#define HTML_ATTR_TYPE_SRCDOC 47 -#define HTML_ATTR_TYPE_STEP 48 +#define HTML_ATTR_TYPE_UNKNOWN 0 +#define HTML_ATTR_TYPE_ACTION 1 +#define HTML_ATTR_TYPE_ALIGN 2 +#define HTML_ATTR_TYPE_BOOL 3 +#define HTML_ATTR_TYPE_BORDER 4 +#define HTML_ATTR_TYPE_CHARACTER 5 +#define HTML_ATTR_TYPE_CHARSET 6 +#define HTML_ATTR_TYPE_CLEAR 7 +#define HTML_ATTR_TYPE_COLOR 8 +#define HTML_ATTR_TYPE_COLS 9 +#define HTML_ATTR_TYPE_COORDS 10 +#define HTML_ATTR_TYPE_DATE 11 +#define HTML_ATTR_TYPE_FBORDER 12 +#define HTML_ATTR_TYPE_FSUBMIT 13 +#define HTML_ATTR_TYPE_IDDEF 14 +#define HTML_ATTR_TYPE_IDREF 15 +#define HTML_ATTR_TYPE_IDREFS 16 +#define HTML_ATTR_TYPE_LANG 17 +#define HTML_ATTR_TYPE_LENGTH 18 +#define HTML_ATTR_TYPE_LINKTYPES 19 +#define HTML_ATTR_TYPE_MEDIA 20 +#define HTML_ATTR_TYPE_NAME 21 +#define HTML_ATTR_TYPE_NUMBER 22 +#define HTML_ATTR_TYPE_PCDATA 23 +#define HTML_ATTR_TYPE_SCOPE 24 +#define HTML_ATTR_TYPE_SCRIPT 25 +#define HTML_ATTR_TYPE_SCROLL 26 +#define HTML_ATTR_TYPE_SHAPE 27 +#define HTML_ATTR_TYPE_TARGET 28 +#define HTML_ATTR_TYPE_TEXTDIR 29 +#define HTML_ATTR_TYPE_TFRAME 30 +#define HTML_ATTR_TYPE_TRULES 31 +#define HTML_ATTR_TYPE_TYPE 32 +#define HTML_ATTR_TYPE_URL 33 +#define HTML_ATTR_TYPE_URLS 34 +#define HTML_ATTR_TYPE_VALIGN 35 +#define HTML_ATTR_TYPE_VTYPE 36 +#define HTML_ATTR_TYPE_XTYPE 37 +#define HTML_ATTR_TYPE_FVALIDATE 38 +#define HTML_ATTR_TYPE_ICON 39 +#define HTML_ATTR_TYPE_LIST 40 +#define HTML_ATTR_TYPE_BASE 41 +#define HTML_ATTR_TYPE_PATTERN 42 +#define HTML_ATTR_TYPE_PLACEHOLDER 43 +#define HTML_ATTR_TYPE_PUBDATE 44 +#define HTML_ATTR_TYPE_RADIOGROUP 45 +#define HTML_ATTR_TYPE_SANDBOX 46 +#define HTML_ATTR_TYPE_SRCDOC 47 +#define HTML_ATTR_TYPE_STEP 48 -#define HTML_ATTR_TYPE_COUNT 48 +#define HTML_ATTR_TYPE_COUNT 48 #endif /* _HB_THTML */ diff --git a/contrib/hbtip/thtml.prg b/contrib/hbtip/thtml.prg index 75caa15cbc..224d726add 100644 --- a/contrib/hbtip/thtml.prg +++ b/contrib/hbtip/thtml.prg @@ -1819,6 +1819,7 @@ STATIC PROCEDURE _Init_Html_TagTypes t_hHT[ "style" ] := { @THtmlAttr_STYLE() , ( CM_HEAD ) } t_hHT[ "sub" ] := { @THtmlAttr_SUB() , ( CM_INLINE ) } t_hHT[ "sup" ] := { @THtmlAttr_SUP() , ( CM_INLINE ) } + t_hHT[ "svg" ] := { @THtmlAttr_SVG() , ( CM_BLOCK ) } t_hHT[ "table" ] := { @THtmlAttr_TABLE() , ( CM_BLOCK ) } t_hHT[ "tbody" ] := { @THtmlAttr_TBODY() , hb_bitOr( CM_TABLE, CM_ROWGRP, CM_OPT ) } t_hHT[ "td" ] := { @THtmlAttr_TD() , hb_bitOr( CM_ROW, CM_OPT, CM_NO_INDENT ) } @@ -1903,6 +1904,7 @@ STATIC PROCEDURE _Init_Html_Attributes t_aHA[ HTML_ATTR_DIR ] := { "dir" , HTML_ATTR_TYPE_TEXTDIR } t_aHA[ HTML_ATTR_DIRNAME ] := { "dirname" , HTML_ATTR_TYPE_TEXTDIR } t_aHA[ HTML_ATTR_DISABLED ] := { "disabled" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_DISPLAY ] := { "display" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_DOWNLOAD ] := { "download" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_DRAGGABLE ] := { "draggable" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_DROPZONE ] := { "dropzone" , HTML_ATTR_TYPE_PCDATA } @@ -1933,6 +1935,7 @@ STATIC PROCEDURE _Init_Html_Attributes t_aHA[ HTML_ATTR_HTTP_EQUIV ] := { "http-equiv" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_ICON ] := { "icon" , HTML_ATTR_TYPE_ICON } t_aHA[ HTML_ATTR_ID ] := { "id" , HTML_ATTR_TYPE_IDDEF } + t_aHA[ HTML_ATTR_INTEGRITY ] := { "integrity" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_IS ] := { "is" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_ISMAP ] := { "ismap" , HTML_ATTR_TYPE_BOOL } t_aHA[ HTML_ATTR_ITEMID ] := { "itemid" , HTML_ATTR_TYPE_PCDATA } @@ -1940,6 +1943,7 @@ STATIC PROCEDURE _Init_Html_Attributes t_aHA[ HTML_ATTR_ITEMREF ] := { "itemref" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_ITEMSCOPE ] := { "itemscope" , HTML_ATTR_TYPE_BOOL } t_aHA[ HTML_ATTR_ITEMTYPE ] := { "itemtype" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_INPUTMODE ] := { "inputmode" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_KEYTYPE ] := { "keytype" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_KIND ] := { "kind" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_LABEL ] := { "label" , HTML_ATTR_TYPE_PCDATA } @@ -2057,7 +2061,8 @@ STATIC PROCEDURE _Init_Html_Attributes t_aHA[ HTML_ATTR_PLACEHOLDER ] := { "placeholder" , HTML_ATTR_TYPE_PLACEHOLDER } t_aHA[ HTML_ATTR_PLAYSINLINE ] := { "playsinline" , HTML_ATTR_TYPE_BOOL } t_aHA[ HTML_ATTR_POSTER ] := { "poster" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_PRELOAD ] := { "preload" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_PRELOAD ] := { "preload" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_PREFIX ] := { "prefix" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_PROFILE ] := { "profile" , HTML_ATTR_TYPE_URL } t_aHA[ HTML_ATTR_PROMPT ] := { "prompt" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_PUBDATE ] := { "pubdate" , HTML_ATTR_TYPE_PUBDATE } @@ -2118,10 +2123,140 @@ STATIC PROCEDURE _Init_Html_Attributes t_aHA[ HTML_ATTR_VSPACE ] := { "vspace" , HTML_ATTR_TYPE_NUMBER } t_aHA[ HTML_ATTR_WIDTH ] := { "width" , HTML_ATTR_TYPE_LENGTH } t_aHA[ HTML_ATTR_WRAP ] := { "wrap" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_XML:BASE ] := { "xml:base" , HTML_ATTR_TYPE_BASE } + t_aHA[ HTML_ATTR_XML:LANG ] := { "xml:lang" , HTML_ATTR_TYPE_LANG } + t_aHA[ HTML_ATTR_XML:SPACE ] := { "xml:space" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_XMLNS ] := { "xmlns" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_XML_BASE ] := { "xml:base" , HTML_ATTR_TYPE_BASE } - t_aHA[ HTML_ATTR_XML_LANG ] := { "xml:lang" , HTML_ATTR_TYPE_LANG } - t_aHA[ HTML_ATTR_XML_SPACE ] := { "xml:space" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_XMLNS:XLINK ] := { "xmlns:xlink" , HTML_ATTR_TYPE_URL } + +/*Begin TODO:*/ + + t_aHA[ HTML_ATTR_ABOUT ] := { "about" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_INLIST ] := { "inlist" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_PROPERTY ] := { "property" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_RESOURCE ] := { "resource" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_TYPEOF ] := { "typeof" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_VOCAB ] := { "vocab" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_AS ] := { "as" , HTML_ATTR_TYPE_UNKNOWN } + + t_aHA[ HTML_ATTR_SLOT ] := { "slot" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_LOADING ] := { "loading" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_FILL ] := { "fill" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_FILLRULE ] := { "fillrule" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_EXPORTPARTS ] := { "exportparts" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_NONCE ] := { "nonce" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_PART ] := { "part" , HTML_ATTR_TYPE_UNKNOWN } + +/*End TODO:*/ + +/*Begin TODO:*/ + + /* HTML SVG Tag attribute data are adopted for Harbour from Tidy */ + + t_aHA[ HTML_ATTR_SVG_BASEPROFILE ] := { "baseprofile" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_BY ] := { "by" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_COLORINTERPOLATION ] := { "colorinterpolation" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_COLORRENDERING ] := { "colorrendering" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_CONTENTSCRIPTTYPE ] := { "contentscripttype" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_CONTENTSTYLETYPE ] := { "contentstyletype" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_CX ] := { "cx" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_CY ] := { "cy" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_ENTERKEYHINT ] := { "enterkeyhint" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_EXPORTPARTS ] := { "exportparts" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_FILL ] := { "fill" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_FILL-RULE ] := { "fill-rule" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_FILL-OPACITY ] := { "fill-opacity" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_FILTER ] := { "filter" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_FLOOD-COLOR ] := { "flood-color" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_FLOOD-OPACITY ] := { "flood-opacity" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_FONT-SIZE ] := { "font-size" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_FONT-SIZE-ADJUST ] := { "font-size-adjust" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_FONT-STYLE ] := { "font-style" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_VISIBILITY ] := { "visibility" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_FROM ] := { "from" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_FR ] := { "fr" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_HEIGHT ] := { "height" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_KEYPOINTS ] := { "keypoints" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_KEYTIMES ] := { "keytimes" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_LENGTHADJUST ] := { "lengthadjust" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_LETTER-SPACING ] := { "letter-spacing" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_LIGHTING-COLOR ] := { "lighting-color" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_MARKERHEIGHT ] := { "markerheight" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_MARKERWIDTH ] := { "markerwidth" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_MASK ] := { "mask" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_MEDIA ] := { "media" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_NUMOCTAVES ] := { "numoctaves" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_NONCE ] := { "nonce" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_OPACITY ] := { "opacity" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_OPERATOR ] := { "operator" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_ORIENT ] := { "orient" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_PART ] := { "part" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_PATH ] := { "path" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_PATHLENGTH ] := { "pathlength" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_PATTERNCONTENTUNITS ] := { "patterncontentunits" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_PATTERNTRANSFORM ] := { "patterntransform" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_PATTERNUNITS ] := { "patternunits" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_POINTER-EVENTS ] := { "pointer-events" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_POINTS ] := { "points" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_POINTSATX ] := { "pointsatx" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_POINTSATY ] := { "pointsaty" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_POINTSATZ ] := { "pointsatz" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_PRESERVEASPECTRATIO ] := { "preserveaspectratio" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_R ] := { "r" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_RADIUS ] := { "radius" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_REPEATCOUNT ] := { "repeatcount" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_REPEATDUR ] := { "repeatdur" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_RESTART ] := { "restart" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_ROTATE ] := { "rotate" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_RX ] := { "rx" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_RY ] := { "ry" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_SCALE ] := { "scale" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_SEED ] := { "seed" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_SHAPE-RENDERING ] := { "shape-rendering" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_STARTOFFSET ] := { "startoffset" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_STDDEVIATION ] := { "stddeviation" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_STITCHTILES ] := { "stitchtiles" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_STOP-COLOR ] := { "stop-color" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_STOP-OPACITY ] := { "stop-opacity" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_STROKE ] := { "stroke" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_STROKE-DASHARRAY ] := { "stroke-dasharray" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_STROKE-DASHOFFSET ] := { "stroke-dashoffset" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_STROKE-LINECAP ] := { "stroke-linecap" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_STROKE-OPACITY ] := { "stroke-opacity" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_STROKE-WIDTH ] := { "stroke-width" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_STROKE-LINEJOIN ] := { "stroke-linejoin" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_STROKE-MITERLIMIT ] := { "stroke-miterlimit" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_STYLE ] := { "style" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_SURFACESCALE ] := { "surfacescale" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_SYSTEMLANGUAGE ] := { "systemlanguage" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_TABINDEX ] := { "tabindex" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_TABLEVALUES ] := { "tablevalues" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_TEXT-ANCHOR ] := { "text-anchor" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_TEXT-DECORATION ] := { "text-decoration" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_TEXT-RENDERING ] := { "text-rendering" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_TEXTLENGTH ] := { "textlength" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_TO ] := { "to" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_TRANSFORM ] := { "transform" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_TYPE ] := { "type" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_VECTOR-EFFECT ] := { "vector-effect" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_VIEWBOX ] := { "viewbox" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_VISIBILITY ] := { "visibility" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_WIDTH ] := { "width" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_WORD-SPACING ] := { "word-spacing" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_X ] := { "x" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_X1 ] := { "x1" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_X2 ] := { "x2" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_XCHANNELSELECTOR ] := { "xchannelselector" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_XML:LANG ] := { "xml:lang" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_XML:BASE ] := { "xml:base" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_Y ] := { "y" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_Y1 ] := { "y1" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_Y2 ] := { "y2" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_YCHANNELSELECTOR ] := { "ychannelselector" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_Z ] := { "z" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_ZOOMANDPAN ] := { "zoomandpan" , HTML_ATTR_TYPE_UNKNOWN } + +/*End TODO:*/ /* HTML Tag Aria attribute data are adopted for Harbour from Tidy */ @@ -2160,53 +2295,6 @@ STATIC PROCEDURE _Init_Html_Attributes t_aHAAria[ HTML_ATTR_ARIA_VALUEMIN ] := { "aria_valuemin" , HTML_ATTR_TYPE_UNKNOWN } t_aHAAria[ HTML_ATTR_ARIA_VALUENOW ] := { "aria_valuenow" , HTML_ATTR_TYPE_UNKNOWN } t_aHAAria[ HTML_ATTR_ARIA_VALUETEXT ] := { "aria_valuetext" , HTML_ATTR_TYPE_UNKNOWN } - - /*Begin TODO:*/ - - t_aHA[ HTML_ATTR_X ] := { "x" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_Y ] := { "y" , HTML_ATTR_TYPE_UNKNOWN } - - t_aHA[ HTML_ATTR_VIEWBOX ] := { "viewbox" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_PRESERVEASPECTRATIO ] := { "preserveaspectratio" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ZOOMANDPAN ] := { "zoomandpan" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_BASEPROFILE ] := { "baseprofile" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_CONTENTSCRIPTTYPE ] := { "contentscripttype" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_CONTENTSTYLETYPE ] := { "contentstyletype" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_DISPLAY ] := { "display" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ABOUT ] := { "about" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_INLIST ] := { "inlist" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_PREFIX ] := { "prefix" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_PROPERTY ] := { "property" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_RESOURCE ] := { "resource" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_TYPEOF ] := { "typeof" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_VOCAB ] := { "vocab" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_INTEGRITY ] := { "integrity" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_AS ] := { "as" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_XMLNSXLINK ] := { "xmlnsxlink" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_SLOT ] := { "slot" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_LOADING ] := { "loading" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_FILL ] := { "fill" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_FILLRULE ] := { "fillrule" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_STROKE ] := { "stroke" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_STROKEDASHARRAY ] := { "strokedasharray" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_STROKEDASHOFFSET ] := { "strokedashoffset" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_STROKELINECAP ] := { "strokelinecap" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_STROKELINEJOIN ] := { "strokelinejoin" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_STROKEMITERLIMIT ] := { "strokemiterlimit" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_STROKEWIDTH ] := { "strokewidth" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_COLORINTERPOLATION ] := { "colorinterpolation" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_COLORRENDERING ] := { "colorrendering" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_OPACITY ] := { "opacity" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_STROKEOPACITY ] := { "strokeopacity" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_FILLOPACITY ] := { "fillopacity" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_AUTOCAPITALIZE ] := { "autocapitalize" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_ENTERKEYHINT ] := { "enterkeyhint" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_EXPORTPARTS ] := { "exportparts" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_INPUTMODE ] := { "inputmode" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_NONCE ] := { "nonce" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_PART ] := { "part" , HTML_ATTR_TYPE_UNKNOWN } - - /*End TODO:*/ RETURN @@ -2231,6 +2319,7 @@ STATIC FUNCTION THtmlAttr_GlobalAttributes() t_aHA[ HTML_ATTR_DATASRC ], ; t_aHA[ HTML_ATTR_DATATYPE ], ; t_aHA[ HTML_ATTR_DIR ], ; + t_aHA[ HTML_ATTR_DISPLAY ], ; t_aHA[ HTML_ATTR_DRAGGABLE ], ; t_aHA[ HTML_ATTR_DROPZONE ], ; t_aHA[ HTML_ATTR_ENTERKEYHINT ], ; @@ -2257,6 +2346,7 @@ STATIC FUNCTION THtmlAttr_GlobalAttributes() t_aHA[ HTML_ATTR_ONMESSAGE ], ; t_aHA[ HTML_ATTR_ONMOUSEWHEEL ], ; t_aHA[ HTML_ATTR_PART ], ; + t_aHA[ HTML_ATTR_PREFIX ], ; t_aHA[ HTML_ATTR_ROLE ], ; t_aHA[ HTML_ATTR_SLOT ], ; t_aHA[ HTML_ATTR_SPELLCHECK ], ; @@ -2264,8 +2354,8 @@ STATIC FUNCTION THtmlAttr_GlobalAttributes() t_aHA[ HTML_ATTR_TABINDEX ], ; t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_TRANSLATE ], ; - t_aHA[ HTML_ATTR_XML_BASE ], ; - t_aHA[ HTML_ATTR_XML_LANG ], ; + t_aHA[ HTML_ATTR_XML:BASE ], ; + t_aHA[ HTML_ATTR_XML:LANG ], ; t_aHA[ HTML_ATTR_UNKNOWN ] } STATIC FUNCTION THtmlAttr_A() @@ -3092,6 +3182,7 @@ STATIC FUNCTION THtmlAttr_INPUT() t_aHA[ HTML_ATTR_ACCEPT ], ; t_aHA[ HTML_ATTR_ALIGN ], ; t_aHA[ HTML_ATTR_ALT ], ; + t_aHA[ HTML_ATTR_AUTOCAPITALIZE ], ; t_aHA[ HTML_ATTR_CHECKED ], ; t_aHA[ HTML_ATTR_DISABLED ], ; t_aHA[ HTML_ATTR_DIRNAME ], ; @@ -3506,7 +3597,7 @@ STATIC FUNCTION THtmlAttr_PRE() t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; t_aHA[ HTML_ATTR_WIDTH ], ; - t_aHA[ HTML_ATTR_XML_SPACE ], ; + t_aHA[ HTML_ATTR_XML:SPACE ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_PROGRESS() @@ -3649,11 +3740,12 @@ STATIC FUNCTION THtmlAttr_SCRIPT() t_aHA[ HTML_ATTR_DEFER ], ; t_aHA[ HTML_ATTR_EVENT ], ; t_aHA[ HTML_ATTR_FOR ], ; + t_aHA[ HTML_ATTR_INTEGRITY ], ; t_aHA[ HTML_ATTR_LANGUAGE ], ; t_aHA[ HTML_ATTR_ONERROR ], ; t_aHA[ HTML_ATTR_SRC ], ; t_aHA[ HTML_ATTR_TYPE ], ; - t_aHA[ HTML_ATTR_XML_SPACE ], ; + t_aHA[ HTML_ATTR_XML:SPACE ], ; t_aHA[ HTML_ATTR_XMLNS ], ; t_aHA[ HTML_ATTR_ASYNC ] } @@ -3744,7 +3836,7 @@ STATIC FUNCTION THtmlAttr_STYLE() t_aHA[ HTML_ATTR_MEDIA ], ; t_aHA[ HTML_ATTR_SCOPED ], ; t_aHA[ HTML_ATTR_TYPE ], ; - t_aHA[ HTML_ATTR_XML_SPACE ], ; + t_aHA[ HTML_ATTR_XML:SPACE ], ; t_aHA[ HTML_ATTR_XMLNS ], ; t_aHA[ HTML_ATTR_SRCSET ] } @@ -3775,6 +3867,111 @@ STATIC FUNCTION THtmlAttr_SUP() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_XMLNS ] } + +STATIC FUNCTION THtmlAttr_SVG() + RETURN { ; + t_aHA[ HTML_ATTR_SVG_BASEPROFILE ], ; + t_aHA[ HTML_ATTR_SVG_BY ], ; + t_aHA[ HTML_ATTR_SVG_COLORINTERPOLATION ], ; + t_aHA[ HTML_ATTR_SVG_COLORRENDERING ], ; + t_aHA[ HTML_ATTR_SVG_CONTENTSCRIPTTYPE ], ; + t_aHA[ HTML_ATTR_SVG_CONTENTSTYLETYPE ], ; + t_aHA[ HTML_ATTR_SVG_CX ], ; + t_aHA[ HTML_ATTR_SVG_CY ], ; + t_aHA[ HTML_ATTR_SVG_ENTERKEYHINT ], ; + t_aHA[ HTML_ATTR_SVG_EXPORTPARTS ], ; + t_aHA[ HTML_ATTR_SVG_FILL ], ; + t_aHA[ HTML_ATTR_SVG_FILL-RULE ], ; + t_aHA[ HTML_ATTR_SVG_FILL-OPACITY ], ; + t_aHA[ HTML_ATTR_SVG_FILTER ], ; + t_aHA[ HTML_ATTR_SVG_FLOOD-COLOR ], ; + t_aHA[ HTML_ATTR_SVG_FLOOD-OPACITY ], ; + t_aHA[ HTML_ATTR_SVG_FONT-SIZE ], ; + t_aHA[ HTML_ATTR_SVG_FONT-SIZE-ADJUST ], ; + t_aHA[ HTML_ATTR_SVG_FONT-STYLE ], ; + t_aHA[ HTML_ATTR_SVG_VISIBILITY ], ; + t_aHA[ HTML_ATTR_SVG_FROM ], ; + t_aHA[ HTML_ATTR_SVG_FR ], ; + t_aHA[ HTML_ATTR_SVG_HEIGHT ], ; + t_aHA[ HTML_ATTR_SVG_KEYPOINTS ], ; + t_aHA[ HTML_ATTR_SVG_KEYTIMES ], ; + t_aHA[ HTML_ATTR_SVG_LENGTHADJUST ], ; + t_aHA[ HTML_ATTR_SVG_LETTER-SPACING ], ; + t_aHA[ HTML_ATTR_SVG_LIGHTING-COLOR ], ; + t_aHA[ HTML_ATTR_SVG_MARKERHEIGHT ], ; + t_aHA[ HTML_ATTR_SVG_MARKERWIDTH ], ; + t_aHA[ HTML_ATTR_SVG_MASK ], ; + t_aHA[ HTML_ATTR_SVG_MEDIA ], ; + t_aHA[ HTML_ATTR_SVG_NUMOCTAVES ], ; + t_aHA[ HTML_ATTR_SVG_NONCE ], ; + t_aHA[ HTML_ATTR_SVG_OPACITY ], ; + t_aHA[ HTML_ATTR_SVG_OPERATOR ], ; + t_aHA[ HTML_ATTR_SVG_ORIENT ], ; + t_aHA[ HTML_ATTR_SVG_PART ], ; + t_aHA[ HTML_ATTR_SVG_PATH ], ; + t_aHA[ HTML_ATTR_SVG_PATHLENGTH ], ; + t_aHA[ HTML_ATTR_SVG_PATTERNCONTENTUNITS ], ; + t_aHA[ HTML_ATTR_SVG_PATTERNTRANSFORM ], ; + t_aHA[ HTML_ATTR_SVG_PATTERNUNITS ], ; + t_aHA[ HTML_ATTR_SVG_POINTER-EVENTS ], ; + t_aHA[ HTML_ATTR_SVG_POINTS ], ; + t_aHA[ HTML_ATTR_SVG_POINTSATX ], ; + t_aHA[ HTML_ATTR_SVG_POINTSATY ], ; + t_aHA[ HTML_ATTR_SVG_POINTSATZ ], ; + t_aHA[ HTML_ATTR_SVG_PRESERVEASPECTRATIO ], ; + t_aHA[ HTML_ATTR_SVG_R ], ; + t_aHA[ HTML_ATTR_SVG_RADIUS ], ; + t_aHA[ HTML_ATTR_SVG_REPEATCOUNT ], ; + t_aHA[ HTML_ATTR_SVG_REPEATDUR ], ; + t_aHA[ HTML_ATTR_SVG_RESTART ], ; + t_aHA[ HTML_ATTR_SVG_ROTATE ], ; + t_aHA[ HTML_ATTR_SVG_RX ], ; + t_aHA[ HTML_ATTR_SVG_RY ], ; + t_aHA[ HTML_ATTR_SVG_SCALE ], ; + t_aHA[ HTML_ATTR_SVG_SEED ], ; + t_aHA[ HTML_ATTR_SVG_SHAPE-RENDERING ], ; + t_aHA[ HTML_ATTR_SVG_STARTOFFSET ], ; + t_aHA[ HTML_ATTR_SVG_STDDEVIATION ], ; + t_aHA[ HTML_ATTR_SVG_STITCHTILES ], ; + t_aHA[ HTML_ATTR_SVG_STOP-COLOR ], ; + t_aHA[ HTML_ATTR_SVG_STOP-OPACITY ], ; + t_aHA[ HTML_ATTR_SVG_STROKE ], ; + t_aHA[ HTML_ATTR_SVG_STROKE-DASHARRAY ], ; + t_aHA[ HTML_ATTR_SVG_STROKE-DASHOFFSET ], ; + t_aHA[ HTML_ATTR_SVG_STROKE-LINECAP ], ; + t_aHA[ HTML_ATTR_SVG_STROKE-OPACITY ], ; + t_aHA[ HTML_ATTR_SVG_STROKE-WIDTH ], ; + t_aHA[ HTML_ATTR_SVG_STROKE-LINEJOIN ], ; + t_aHA[ HTML_ATTR_SVG_STROKE-MITERLIMIT ], ; + t_aHA[ HTML_ATTR_SVG_STYLE ], ; + t_aHA[ HTML_ATTR_SVG_SURFACESCALE ], ; + t_aHA[ HTML_ATTR_SVG_SYSTEMLANGUAGE ], ; + t_aHA[ HTML_ATTR_SVG_TABINDEX ], ; + t_aHA[ HTML_ATTR_SVG_TABLEVALUES ], ; + t_aHA[ HTML_ATTR_SVG_TEXT-ANCHOR ], ; + t_aHA[ HTML_ATTR_SVG_TEXT-DECORATION ], ; + t_aHA[ HTML_ATTR_SVG_TEXT-RENDERING ], ; + t_aHA[ HTML_ATTR_SVG_TEXTLENGTH ], ; + t_aHA[ HTML_ATTR_SVG_TO ], ; + t_aHA[ HTML_ATTR_SVG_TRANSFORM ], ; + t_aHA[ HTML_ATTR_SVG_TYPE ], ; + t_aHA[ HTML_ATTR_SVG_VECTOR-EFFECT ], ; + t_aHA[ HTML_ATTR_SVG_VIEWBOX ], ; + t_aHA[ HTML_ATTR_SVG_VISIBILITY ], ; + t_aHA[ HTML_ATTR_SVG_WIDTH ], ; + t_aHA[ HTML_ATTR_SVG_WORD-SPACING ], ; + t_aHA[ HTML_ATTR_SVG_X ], ; + t_aHA[ HTML_ATTR_SVG_X1 ], ; + t_aHA[ HTML_ATTR_SVG_X2 ], ; + t_aHA[ HTML_ATTR_SVG_XCHANNELSELECTOR ], ; + t_aHA[ HTML_ATTR_SVG_XML:LANG ], ; + t_aHA[ HTML_ATTR_SVG_XML:BASE ], ; + t_aHA[ HTML_ATTR_SVG_Y ], ; + t_aHA[ HTML_ATTR_SVG_Y1 ], ; + t_aHA[ HTML_ATTR_SVG_Y2 ], ; + t_aHA[ HTML_ATTR_SVG_YCHANNELSELECTOR ], ; + t_aHA[ HTML_ATTR_SVG_Z ], ; + t_aHA[ HTML_ATTR_SVG_ZOOMANDPAN ] } STATIC FUNCTION THtmlAttr_TABLE() RETURN { ; From 9963396aac73caa9444058e604d5dcbecb47e670 Mon Sep 17 00:00:00 2001 From: Naldo DJ Date: Sat, 16 Apr 2022 20:21:10 -0300 Subject: [PATCH 11/19] New HTML Features --- contrib/hbtip/thtml.ch | 4 ++-- contrib/hbtip/thtml.prg | 8 +++----- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/contrib/hbtip/thtml.ch b/contrib/hbtip/thtml.ch index c182c26c49..1ac2d8c947 100644 --- a/contrib/hbtip/thtml.ch +++ b/contrib/hbtip/thtml.ch @@ -240,8 +240,8 @@ #define HTML_ATTR_WIDTH 158 #define HTML_ATTR_WRAP 159 #define HTML_ATTR_XMLNS 160 -#define HTML_ATTR_XML_LANG 161 -#define HTML_ATTR_XML_SPACE 162 +#define HTML_ATTR_XML:LANG 161 +#define HTML_ATTR_XML:SPACE 162 #define HTML_ATTR_ALLOWFULLSCREEN 163 #define HTML_ATTR_DOWNLOAD 164 #define HTML_ATTR_IS 165 diff --git a/contrib/hbtip/thtml.prg b/contrib/hbtip/thtml.prg index 224d726add..6cc3728f65 100644 --- a/contrib/hbtip/thtml.prg +++ b/contrib/hbtip/thtml.prg @@ -1912,6 +1912,7 @@ STATIC PROCEDURE _Init_Html_Attributes t_aHA[ HTML_ATTR_ENCTYPE ] := { "enctype" , HTML_ATTR_TYPE_XTYPE } t_aHA[ HTML_ATTR_ENTERKEYHINT ] := { "enterkeyhint" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_EVENT ] := { "event" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_EXPORTPARTS ] := { "exportparts" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_FACE ] := { "face" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_FOR ] := { "for" , HTML_ATTR_TYPE_IDREF } t_aHA[ HTML_ATTR_FORM ] := { "form" , HTML_ATTR_TYPE_IDREF } @@ -1973,6 +1974,7 @@ STATIC PROCEDURE _Init_Html_Attributes t_aHA[ HTML_ATTR_N ] := { "n" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_NAME ] := { "name" , HTML_ATTR_TYPE_NAME } t_aHA[ HTML_ATTR_NOHREF ] := { "nohref" , HTML_ATTR_TYPE_BOOL } + t_aHA[ HTML_ATTR_NONCE ] := { "nonce" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_NORESIZE ] := { "noresize" , HTML_ATTR_TYPE_BOOL } t_aHA[ HTML_ATTR_NOSHADE ] := { "noshade" , HTML_ATTR_TYPE_BOOL } t_aHA[ HTML_ATTR_NOVALIDATE ] := { "novalidate" , HTML_ATTR_TYPE_BOOL } @@ -2057,6 +2059,7 @@ STATIC PROCEDURE _Init_Html_Attributes t_aHA[ HTML_ATTR_ONWAITING ] := { "onwaiting" , HTML_ATTR_TYPE_SCRIPT } t_aHA[ HTML_ATTR_OPEN ] := { "open" , HTML_ATTR_TYPE_BOOL } t_aHA[ HTML_ATTR_OPTIMUM ] := { "optimum" , HTML_ATTR_TYPE_NUMBER } + t_aHA[ HTML_ATTR_PART ] := { "part" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_PATTERN ] := { "pattern" , HTML_ATTR_TYPE_PATTERN } t_aHA[ HTML_ATTR_PLACEHOLDER ] := { "placeholder" , HTML_ATTR_TYPE_PLACEHOLDER } t_aHA[ HTML_ATTR_PLAYSINLINE ] := { "playsinline" , HTML_ATTR_TYPE_BOOL } @@ -2138,14 +2141,9 @@ STATIC PROCEDURE _Init_Html_Attributes t_aHA[ HTML_ATTR_TYPEOF ] := { "typeof" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_VOCAB ] := { "vocab" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_AS ] := { "as" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_SLOT ] := { "slot" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_LOADING ] := { "loading" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_FILL ] := { "fill" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_FILLRULE ] := { "fillrule" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_EXPORTPARTS ] := { "exportparts" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_NONCE ] := { "nonce" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_PART ] := { "part" , HTML_ATTR_TYPE_UNKNOWN } /*End TODO:*/ From f8bf7971d11605d9c7d8fd2ede7d64e1082f3768 Mon Sep 17 00:00:00 2001 From: Naldo DJ Date: Sat, 16 Apr 2022 22:58:26 -0300 Subject: [PATCH 12/19] New HTML Features --- contrib/hbtip/thtml.prg | 85 ++++++++++++++++++++++++++++++++++------- 1 file changed, 71 insertions(+), 14 deletions(-) diff --git a/contrib/hbtip/thtml.prg b/contrib/hbtip/thtml.prg index 6cc3728f65..93c03525e0 100644 --- a/contrib/hbtip/thtml.prg +++ b/contrib/hbtip/thtml.prg @@ -148,7 +148,7 @@ METHOD new( cHtmlString ) CLASS THtmlDocument #pragma __endtext cEmptyHtmlDoc+=t_cHB_EOL - + IF !HB_ISSTRING( cHtmlString ) ::root := THtmlNode():new( cEmptyHtmlDoc ) ELSEIF "} + hHash := {=>} ELSE hHash := ::getAttributes() - + IF !HB_ISHASH( hHash ) // Tag doesn't have any attribute RETURN ::error( "Invalid HTML attribute for: <" + ::htmlTagName + ">", ::className(), cName, EG_ARG, { cName, cValue } ) @@ -1386,8 +1386,8 @@ METHOD setAttribute( cName, cValue ) CLASS THtmlNode // Tag doesn't have this attribute RETURN ::error( "Invalid HTML attribute for: <" + ::htmlTagName + ">", ::className(), cName, EG_ARG, { cName, cValue } ) ENDIF - - ENDIF + + ENDIF IF !Empty(nPos) .and. aAttr[ nPos ][ 2 ] == HTML_ATTR_TYPE_BOOL hHash[ cName ] := "" @@ -1704,6 +1704,7 @@ STATIC PROCEDURE _Init_Html_TagTypes t_hHT[ "_root_" ] := { , ( CM_INLINE ) } t_hHT[ "_text_" ] := { , ( CM_INLINE ) } t_hHT[ "!--" ] := { , hb_bitOr( CM_INLINE, CM_EMPTY ) } + t_hHT[ "!DOCTYPE" ] := { , hb_bitOr( CM_INLINE, CM_EMPTY ) } t_hHT[ "a" ] := { @THtmlAttr_A() , ( CM_INLINE ) } t_hHT[ "abbr" ] := { @THtmlAttr_ABBR() , ( CM_INLINE ) } t_hHT[ "acronym" ] := { @THtmlAttr_ACRONYM() , hb_bitOr( CM_INLINE , CM_OBSOLETE ) } @@ -1726,18 +1727,22 @@ STATIC PROCEDURE _Init_Html_TagTypes t_hHT[ "body" ] := { @THtmlAttr_BODY() , hb_bitOr( CM_HTML, CM_OPT, CM_OMITST ) } t_hHT[ "br" ] := { @THtmlAttr_BR() , hb_bitOr( CM_INLINE, CM_EMPTY ) } t_hHT[ "button" ] := { @THtmlAttr_BUTTON() , ( CM_INLINE ) } + t_hHT[ "canvas" ] := { @THtmlAttr_CANVAS() , hb_bitOr( CM_INLINE, CM_EMPTY ) } t_hHT[ "caption" ] := { @THtmlAttr_CAPTION() , ( CM_TABLE ) } t_hHT[ "center" ] := { @THtmlAttr_CENTER() , hb_bitOr( CM_BLOCK , CM_OBSOLETE ) } t_hHT[ "cite" ] := { @THtmlAttr_CITE() , ( CM_INLINE ) } t_hHT[ "code" ] := { @THtmlAttr_CODE() , ( CM_INLINE ) } t_hHT[ "col" ] := { @THtmlAttr_COL() , hb_bitOr( CM_TABLE, CM_EMPTY ) } t_hHT[ "colgroup" ] := { @THtmlAttr_COLGROUP() , hb_bitOr( CM_TABLE, CM_OPT ) } + t_hHT[ "command" ] := { @THtmlAttr_COMMAND() , ( CM_INLINE ) } t_hHT[ "comment" ] := { , ( CM_INLINE ) } t_hHT[ "data" ] := { @THtmlAttr_DATA() , ( CM_INLINE ) } + t_hHT[ "datalist" ] := { , hb_bitOr( CM_BLOCK, CM_EMPTY ) } t_hHT[ "dd" ] := { @THtmlAttr_DD() , hb_bitOr( CM_DEFLIST, CM_OPT, CM_NO_INDENT ) } t_hHT[ "del" ] := { @THtmlAttr_DEL() , hb_bitOr( CM_INLINE, CM_BLOCK, CM_MIXED ) } t_hHT[ "details" ] := { @THtmlAttr_DETAILS() , ( CM_BLOCK ) } t_hHT[ "dfn" ] := { @THtmlAttr_DFN() , ( CM_INLINE ) } + t_hHT[ "dialog" ] := { @THtmlAttr_DIALOG() , ( CM_INLINE ) } t_hHT[ "dir" ] := { @THtmlAttr_DIR() , hb_bitOr( CM_BLOCK, CM_OBSOLETE ) } t_hHT[ "div" ] := { @THtmlAttr_DIV() , ( CM_BLOCK ) } t_hHT[ "dl" ] := { @THtmlAttr_DL() , ( CM_BLOCK ) } @@ -1745,9 +1750,10 @@ STATIC PROCEDURE _Init_Html_TagTypes t_hHT[ "em" ] := { @THtmlAttr_EM() , ( CM_INLINE ) } t_hHT[ "embed" ] := { @THtmlAttr_EMBED() , hb_bitOr( CM_INLINE, CM_IMG, CM_EMPTY ) } t_hHT[ "fieldset" ] := { @THtmlAttr_FIELDSET() , ( CM_BLOCK ) } - t_hHT[ "figure" ] := { @THtmlAttr_FIGURE() , hb_bitOr( CM_TABLE, CM_EMPTY ) } t_hHT[ "figcaption" ] := { @THtmlAttr_FIGCAPTION() , hb_bitOr( CM_TABLE, CM_EMPTY ) } + t_hHT[ "figure" ] := { @THtmlAttr_FIGURE() , hb_bitOr( CM_TABLE, CM_EMPTY ) } t_hHT[ "font" ] := { @THtmlAttr_FONT() , ( CM_INLINE ) } + t_hHT[ "footer" ] := { , hb_bitOr( CM_BLOCK, CM_EMPTY ) } t_hHT[ "form" ] := { @THtmlAttr_FORM() , ( CM_BLOCK ) } t_hHT[ "frame" ] := { @THtmlAttr_FRAME() , hb_bitOr( CM_FRAMES, CM_EMPTY ) } t_hHT[ "frameset" ] := { @THtmlAttr_FRAMESET() , hb_bitOr( CM_HTML, CM_FRAMES ) } @@ -1758,6 +1764,8 @@ STATIC PROCEDURE _Init_Html_TagTypes t_hHT[ "h5" ] := { @THtmlAttr_H5() , hb_bitOr( CM_BLOCK, CM_HEADING ) } t_hHT[ "h6" ] := { @THtmlAttr_H6() , hb_bitOr( CM_BLOCK, CM_HEADING ) } t_hHT[ "head" ] := { @THtmlAttr_HEAD() , hb_bitOr( CM_HTML, CM_OPT, CM_OMITST ) } + t_hHT[ "header" ] := { @THtmlAttr_HEADER() , hb_bitOr( CM_BLOCK, CM_EMPTY ) } + t_hHT[ "hgroup" ] := { @THtmlAttr_HGROUP() , hb_bitOr( CM_BLOCK, CM_EMPTY ) } t_hHT[ "hr" ] := { @THtmlAttr_HR() , hb_bitOr( CM_BLOCK, CM_EMPTY ) } t_hHT[ "html" ] := { @THtmlAttr_HTML() , hb_bitOr( CM_HTML, CM_OPT, CM_OMITST ) } t_hHT[ "i" ] := { @THtmlAttr_I() , ( CM_INLINE ) } @@ -1775,13 +1783,16 @@ STATIC PROCEDURE _Init_Html_TagTypes t_hHT[ "li" ] := { @THtmlAttr_LI() , hb_bitOr( CM_LIST, CM_OPT, CM_NO_INDENT ) } t_hHT[ "link" ] := { @THtmlAttr_LINK() , hb_bitOr( CM_HEAD, CM_EMPTY ) } t_hHT[ "listing" ] := { @THtmlAttr_LISTING() , hb_bitOr( CM_BLOCK, CM_OBSOLETE ) } + t_hHT[ "main" ] := { , ( CM_BLOCK ) } t_hHT[ "map" ] := { @THtmlAttr_MAP() , ( CM_INLINE ) } t_hHT[ "marquee" ] := { @THtmlAttr_MARQUEE() , hb_bitOr( CM_INLINE, CM_OPT, CM_OBSOLETE ) } + t_hHT[ "mark" ] := { , hb_bitOr( CM_INLINE, CM_EMPTY ) } t_hHT[ "menu" ] := { @THtmlAttr_MENU() , hb_bitOr( CM_BLOCK, CM_OBSOLETE ) } t_hHT[ "menuitem" ] := { @THtmlAttr_MENUITEM() , hb_bitOr( CM_BLOCK, CM_OBSOLETE ) } t_hHT[ "meta" ] := { @THtmlAttr_META() , hb_bitOr( CM_HEAD, CM_EMPTY ) } t_hHT[ "meter" ] := { @THtmlAttr_METER() , hb_bitOr( CM_INLINE, CM_EMPTY ) } t_hHT[ "multicol" ] := { , ( CM_BLOCK ) } + t_hHT[ "nav" ] := { , ( CM_BLOCK ) } t_hHT[ "nextid" ] := { @THtmlAttr_NEXTID() , hb_bitOr( CM_HEAD, CM_EMPTY ) } t_hHT[ "nobr" ] := { , ( CM_INLINE ) } t_hHT[ "noembed" ] := { , ( CM_INLINE ) } @@ -1793,8 +1804,10 @@ STATIC PROCEDURE _Init_Html_TagTypes t_hHT[ "ol" ] := { @THtmlAttr_OL() , ( CM_BLOCK ) } t_hHT[ "optgroup" ] := { @THtmlAttr_OPTGROUP() , hb_bitOr( CM_FIELD, CM_OPT ) } t_hHT[ "option" ] := { @THtmlAttr_OPTION() , hb_bitOr( CM_FIELD, CM_OPT ) } + t_hHT[ "output" ] := { @THtmlAttr_OUTPUT() , hb_bitOr( CM_BLOCK, CM_OPT ) } t_hHT[ "p" ] := { @THtmlAttr_P() , hb_bitOr( CM_BLOCK, CM_OPT ) } t_hHT[ "param" ] := { @THtmlAttr_PARAM() , hb_bitOr( CM_INLINE, CM_EMPTY ) } + t_hHT[ "picture" ] := { @THtmlAttr_PARAM() , hb_bitOr( CM_INLINE, CM_EMPTY ) } t_hHT[ "plaintext" ] := { @THtmlAttr_PLAINTEXT() , hb_bitOr( CM_BLOCK, CM_OBSOLETE ) } t_hHT[ "pre" ] := { @THtmlAttr_PRE() , ( CM_BLOCK ) } t_hHT[ "progress" ] := { @THtmlAttr_PROGRESS() , ( CM_BLOCK ) } @@ -1808,21 +1821,25 @@ STATIC PROCEDURE _Init_Html_TagTypes t_hHT[ "s" ] := { @THtmlAttr_S() , ( CM_INLINE ) } t_hHT[ "samp" ] := { @THtmlAttr_SAMP() , ( CM_INLINE ) } t_hHT[ "script" ] := { @THtmlAttr_SCRIPT() , hb_bitOr( CM_HEAD, CM_MIXED, CM_BLOCK, CM_INLINE ) } + t_hHT[ "section" ] := { , ( CM_BLOCK ) } t_hHT[ "select" ] := { @THtmlAttr_SELECT() , hb_bitOr( CM_INLINE, CM_FIELD ) } t_hHT[ "server" ] := { , hb_bitOr( CM_HEAD, CM_MIXED, CM_BLOCK, CM_INLINE ) } t_hHT[ "servlet" ] := { , hb_bitOr( CM_OBJECT, CM_IMG, CM_INLINE, CM_PARAM ) } t_hHT[ "small" ] := { @THtmlAttr_SMALL() , ( CM_INLINE ) } t_hHT[ "spacer" ] := { , hb_bitOr( CM_INLINE, CM_EMPTY ) } + t_hHT[ "source" ] := { @THtmlAttr_SOURCE() , hb_bitOr( CM_INLINE, CM_EMPTY ) } t_hHT[ "span" ] := { @THtmlAttr_SPAN() , ( CM_INLINE ) } t_hHT[ "strike" ] := { @THtmlAttr_STRIKE() , ( CM_INLINE ) } t_hHT[ "strong" ] := { @THtmlAttr_STRONG() , ( CM_INLINE ) } t_hHT[ "style" ] := { @THtmlAttr_STYLE() , ( CM_HEAD ) } t_hHT[ "sub" ] := { @THtmlAttr_SUB() , ( CM_INLINE ) } + t_hHT[ "summary" ] := { , ( CM_INLINE ) } t_hHT[ "sup" ] := { @THtmlAttr_SUP() , ( CM_INLINE ) } t_hHT[ "svg" ] := { @THtmlAttr_SVG() , ( CM_BLOCK ) } t_hHT[ "table" ] := { @THtmlAttr_TABLE() , ( CM_BLOCK ) } t_hHT[ "tbody" ] := { @THtmlAttr_TBODY() , hb_bitOr( CM_TABLE, CM_ROWGRP, CM_OPT ) } t_hHT[ "td" ] := { @THtmlAttr_TD() , hb_bitOr( CM_ROW, CM_OPT, CM_NO_INDENT ) } + t_hHT[ "template" ] := { , ( CM_BLOCK ) } t_hHT[ "textarea" ] := { @THtmlAttr_TEXTAREA() , hb_bitOr( CM_INLINE, CM_FIELD ) } t_hHT[ "tfoot" ] := { @THtmlAttr_TFOOT() , hb_bitOr( CM_TABLE, CM_ROWGRP, CM_OPT ) } t_hHT[ "th" ] := { @THtmlAttr_TH() , hb_bitOr( CM_ROW, CM_OPT, CM_NO_INDENT ) } @@ -1897,7 +1914,7 @@ STATIC PROCEDURE _Init_Html_Attributes t_aHA[ HTML_ATTR_DATAFORMATAS ] := { "dataformatas" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_DATAPAGESIZE ] := { "datapagesize" , HTML_ATTR_TYPE_NUMBER } t_aHA[ HTML_ATTR_DATASRC ] := { "datasrc" , HTML_ATTR_TYPE_URL } - t_aHA[ HTML_ATTR_DATATYPE ] := { "datatype" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_DATATYPE ] := { "datatype" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_DATETIME ] := { "datetime" , HTML_ATTR_TYPE_DATE } t_aHA[ HTML_ATTR_DECLARE ] := { "declare" , HTML_ATTR_TYPE_BOOL } t_aHA[ HTML_ATTR_DEFER ] := { "defer" , HTML_ATTR_TYPE_BOOL } @@ -2667,6 +2684,11 @@ STATIC FUNCTION THtmlAttr_BUTTON() t_aHA[ HTML_ATTR_VALUE ], ; t_aHA[ HTML_ATTR_XMLNS ] } +STATIC FUNCTION THtmlAttr_CANVAS() + RETURN { ; + t_aHA[ HTML_ATTR_HEIGHT ], ; + t_aHA[ HTML_ATTR_WIDTH ] } + STATIC FUNCTION THtmlAttr_CAPTION() RETURN { ; t_aHA[ HTML_ATTR_ALIGN ], ; @@ -2765,6 +2787,15 @@ STATIC FUNCTION THtmlAttr_COLGROUP() t_aHA[ HTML_ATTR_WIDTH ], ; t_aHA[ HTML_ATTR_XMLNS ] } +STATIC FUNCTION THtmlAttr_COMMAND() + RETURN { ; + t_aHA[ HTML_ATTR_CHECKED ], ; + t_aHA[ HTML_ATTR_DISABLED ], ; + t_aHA[ HTML_ATTR_ICON ], ; + t_aHA[ HTML_ATTR_LABEL ], ; + t_aHA[ HTML_ATTR_RADIOGROUP ], ; + t_aHA[ HTML_ATTR_TYPE ] } + STATIC FUNCTION THtmlAttr_DATA() RETURN { ; t_aHA[ HTML_ATTR_VALUE ] } @@ -2818,6 +2849,10 @@ STATIC FUNCTION THtmlAttr_DFN() t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_XMLNS ] } +STATIC FUNCTION THtmlAttr_DIALOG() + RETURN { ; + t_aHA[ HTML_ATTR_OPEN ] } + STATIC FUNCTION THtmlAttr_DIR() RETURN { ; t_aHA[ HTML_ATTR_COMPACT ], ; @@ -3085,6 +3120,12 @@ STATIC FUNCTION THtmlAttr_HEAD() t_aHA[ HTML_ATTR_PROFILE ], ; t_aHA[ HTML_ATTR_XMLNS ] } +STATIC FUNCTION THtmlAttr_HEADER() + RETURN {} + +STATIC FUNCTION THtmlAttr_HGROUP() +RETURN {} + STATIC FUNCTION THtmlAttr_HR() RETURN { ; t_aHA[ HTML_ATTR_ALIGN ], ; @@ -3323,8 +3364,10 @@ STATIC FUNCTION THtmlAttr_LI() STATIC FUNCTION THtmlAttr_LINK() RETURN { ; + t_aHA[ HTML_ATTR_AS ], ; t_aHA[ HTML_ATTR_CHARSET ], ; t_aHA[ HTML_ATTR_CROSSORIGIN ], ; + t_aHA[ HTML_ATTR_DISABLED ], ; t_aHA[ HTML_ATTR_HREF ], ; t_aHA[ HTML_ATTR_HREFLANG ], ; t_aHA[ HTML_ATTR_MEDIA ], ; @@ -3553,6 +3596,12 @@ STATIC FUNCTION THtmlAttr_OPTION() t_aHA[ HTML_ATTR_VALUE ], ; t_aHA[ HTML_ATTR_XMLNS ] } +STATIC FUNCTION THtmlAttr_OUTPUT() + RETURN { ; + t_aHA[ HTML_ATTR_FOR ], ; + t_aHA[ HTML_ATTR_FORM ], ; + t_aHA[ HTML_ATTR_NAME ] } + STATIC FUNCTION THtmlAttr_P() RETURN { ; t_aHA[ HTML_ATTR_ALIGN ], ; @@ -3787,6 +3836,14 @@ STATIC FUNCTION THtmlAttr_SMALL() t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_XMLNS ] } +STATIC FUNCTION THtmlAttr_SOURCE() + RETURN { ; + t_aHA[ HTML_ATTR_MEDIA ], ; + t_aHA[ HTML_ATTR_SIZES ], ; + t_aHA[ HTML_ATTR_SRC ], ; + t_aHA[ HTML_ATTR_SRCSET ], ; + t_aHA[ HTML_ATTR_TYPE ] } + STATIC FUNCTION THtmlAttr_SPAN() RETURN { ; t_aHA[ HTML_ATTR_ONCLICK ], ; @@ -3865,7 +3922,7 @@ STATIC FUNCTION THtmlAttr_SUP() t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_XMLNS ] } - + STATIC FUNCTION THtmlAttr_SVG() RETURN { ; t_aHA[ HTML_ATTR_SVG_BASEPROFILE ], ; @@ -4134,8 +4191,8 @@ STATIC FUNCTION THtmlAttr_THEAD() t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_VALIGN ], ; t_aHA[ HTML_ATTR_XMLNS ] } - -STATIC FUNCTION THtmlAttr_TIME() + +STATIC FUNCTION THtmlAttr_TIME() RETURN { ; t_aHA[ HTML_ATTR_PUBDATE ] } From 9fc62338c580295eb4d3ad7363fd33c160c2ba4f Mon Sep 17 00:00:00 2001 From: Naldo DJ Date: Sun, 17 Apr 2022 17:05:55 -0300 Subject: [PATCH 13/19] New HTML Features --- contrib/hbtip/tests/dbtohtml.prg | 374 +++++++++++++++++++++++++------ contrib/hbtip/thtml.ch | 221 +++++++++--------- contrib/hbtip/thtml.prg | 170 ++++++++------ 3 files changed, 510 insertions(+), 255 deletions(-) diff --git a/contrib/hbtip/tests/dbtohtml.prg b/contrib/hbtip/tests/dbtohtml.prg index 4dc8dfaa0e..07b66e822a 100644 --- a/contrib/hbtip/tests/dbtohtml.prg +++ b/contrib/hbtip/tests/dbtohtml.prg @@ -1,108 +1,336 @@ /* Demonstrating operator overloading for creating an HTML document */ +#include "dbstruct.ch" + #require "hbtip" #require "hbtest" PROCEDURE Main() - LOCAL oDoc, oNode, oTable, oRow, oCell - LOCAL i, j + LOCAL aDBStruct AS ARRAY - IF ! hbtest_Table() - ? "Error: Test database couldn't be created" - RETURN - ENDIF + LOCAL cAlias AS CHARACTER + LOCAL ctip_HtmlToStr AS CHARACTER - oDoc := THtmlDocument():New() + LOCAL nField AS NUMERIC + LOCAL nFields AS NUMERIC + LOCAL nProgress AS NUMERIC - /* Operator "+" creates a new node */ - oNode := oDoc:head + "meta" - oNode:name := "Generator" - oNode:content := "THtmlDocument" + LOCAL oRow AS OBJECT + LOCAL oDoc AS OBJECT + LOCAL oLang AS OBJECT + LOCAL oNode AS OBJECT + LOCAL oCell AS OBJECT + LOCAL oLink AS OBJECT + LOCAL oMeta AS OBJECT + LOCAL oTable AS OBJECT + LOCAL oTitle AS OBJECT + LOCAL oScript AS OBJECT + LOCAL oComment AS OBJECT - /* Operator ":" returns first "h1" from body (creates if not existent) */ - oNode := oDoc:body:h1 - oNode:text := "My address book" + LOCAL uValue - /* Operator "+" creates a new

node */ - oNode := oDoc:body + "p" + IF !hbtest_Table() + ? "Error: Test database couldn't be created" + RETURN + ENDIF - /* Operator "+" creates a new node with attribute */ - oNode := oNode + 'font size="5"' - oNode:text := "This is a " + cAlias:=Alias() - /* Operator "+" creates a new node */ - oNode := oNode + "b" + oDoc:=THtmlDocument():New() - /* Operator "+" creates a new node with attribute */ - oNode := oNode + 'font color="blue"' - oNode:text := "sample " + with object oDoc - /* Operator "-" closes 2nd , result is node */ - oNode := oNode - "font" + oLang:=oDoc:root:html + oLang:attr:={"lang"=>"en"} - /* Operator "-" closes node, result is 1st node */ - oNode := oNode - "b" + /* Operator "+" creates a new node */ + oMeta:=:head+"meta" + with object oMeta + :attr:={"http-equiv"=>"content-type","content"=>"text/html; charset=UTF-8"} + end with - oNode:text := "database!" + /* Operator "+" creates a new node */ + oComment:=:head+"!--" + with object oComment + oComment:text:="Required meta tags" + end with + :head:AddNode(THtmlNode():New(:head,"--")) - /* Operator "-" closes 1st node, result is

node */ - oNode := oNode - "font" + /* Operator "+" creates a new node */ + oMeta:=:head+"meta" + with object oMeta + :attr:={"charset"=>"UTF-8"} + end with - oNode := oNode + "hr" - HB_SYMBOL_UNUSED( oNode ) + /* Operator "+" creates a new node */ + oMeta:=:head+"meta" + with object oMeta + :attr:={; + "name"=>"viewport",; + "content"=>"width=device-width, initial-scale=1, shrink-to-fit=no"; + } + end with - /* Operator ":" returns first "table" from body (creates if not existent) */ - oTable := oDoc:body:table - oTable:attr := 'border="0" width="100%" cellspacing="0" cellpadding="0"' + /* Operator "+" creates a new node */ + oMeta:=:head+"meta" + with object oMeta + :name:="Generator" + :content:="Harbour/THtmlDocument" + end with - oRow := oTable + 'tr bgcolor="lightcyan"' - FOR i := 1 TO FCount() - oCell := oRow + "th" - oCell:text := FieldName( i ) - oCell := oCell - "th" - HB_SYMBOL_UNUSED( oCell ) - NEXT + /* Operator "+" creates a new node */ + oComment:=:head+"!--" + with object oComment + oComment:text:="Bootstrap CSS" + end with + :head:AddNode(THtmlNode():New(:head,"--")) - oRow := oRow - "tr" - HB_SYMBOL_UNUSED( oRow ) + /* Operator "+" creates a new node */ + oLink:=:head+"link" + with object oLink + :attr:={; + "rel"=>"stylesheet",; + "href"=>"https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/css/bootstrap.min.css",; + "integrity"=>"sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm",; + "crossorigin"=>"anonymous"; + } + end with - FOR i := 1 TO 10 - oRow := oTable + "tr" - oRow:bgColor := iif( RecNo() % 2 == 0, "lightgrey", "white" ) + /* Operator "+" creates a new node */ + oComment:=:head+"!--" + with object oComment + oComment:text:="Optional JavaScript :: jQuery first, then Popper.js, then Bootstrap JS" + end with + :head:AddNode(THtmlNode():New(:head,"--")) - FOR j := 1 TO FCount() - oCell := oRow + "td" - oCell:text := FieldGet( j ) - oCell := oCell - "td" - HB_SYMBOL_UNUSED( oCell ) - NEXT + /* Operator "+" creates a new node */ + oScript:=:head+"script" + with object oScript + :attr:={; + "src"=>"https://code.jquery.com/jquery-3.2.1.slim.min.js",; + "integrity"=>"sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN",; + "crossorigin"=>"anonymous"; + } + end with - oRow := oRow - "tr" - HB_SYMBOL_UNUSED( oRow ) + /* Operator "+" creates a new node */ + oScript:=:head+"script" + with object oScript + :attr:={; + "src"=>"https://cdn.jsdelivr.net/npm/popper.js@1.12.9/dist/umd/popper.min.js",; + "integrity"=>"sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q",; + "crossorigin"=>"anonymous"; + } + end with - dbSkip() - NEXT + /* Operator "+" creates a new node */ + oScript:=:head+"script" + with object oScript + :attr:={; + "src"=>"https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/js/bootstrap.min.js",; + "integrity"=>"sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl",; + "crossorigin"=>"anonymous"; + } + end with - oNode := oDoc:body + "hr" - HB_SYMBOL_UNUSED( oNode ) - oNode := oDoc:body + "p" + /* Operator "+" creates a new node */ + oComment:=:head+"!--" + with object oComment + oComment:text:="https://materializecss.com :: Compiled and minified CSS" + end with + :head:AddNode(THtmlNode():New(:head,"--")) - oNode:text := "10 records from database " + Alias() + /* Operator "+" creates a new node */ + oLink:=:head+"link" + with object oLink + :attr:={; + "rel"=>"stylesheet",; + "href"=>"https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css",; + "crossorigin"=>"anonymous"; + } + end with - dbCloseArea() + /* Operator "+" creates a new node */ + oComment:=:head+"!--" + with object oComment + oComment:text:="Compiled and minified JavaScript" + end with + :head:AddNode(THtmlNode():New(:head,"--")) - IF oDoc:writeFile( "address.html" ) - ? "File created:", "address.html" - ELSE - ? "Error:", FError() - ENDIF + /* Operator "+" creates a new node */ + oScript:=:head+"script" + with object oScript + :attr:={; + "src"=>"https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js",; + "crossorigin"=>"anonymous"; + } + end with + + /* Operator "+" creates a new node */ + oComment:=:head+"!--" + with object oComment + oComment:text:="https://materializecss.com/icons.html" + end with + :head:AddNode(THtmlNode():New(:head,"--")) + + /* Operator "+" creates a new node */ + oLink:=:head+"link" + with object oLink + :attr:={; + "rel"=>"stylesheet",; + "href"=>"https://fonts.googleapis.com/icon?family=Material+Icons"; + } + end with + + oTitle:=:head:title + oTitle:text="Harbour/dbtohtml.prg" + + end with + + with object oDoc:body + + /* Operator ":" returns first "h1" from body (creates if not existent) */ + oNode:=:h1 + with object oNode + :text:="My address book" + end with + + /* Operator "+" creates a new

node */ + oNode:=oDoc:body+"p" + + /* Operator "+=" creates a new node with attribute */ + oNode+='font size="5"' + oNode:text:="This is a " + + /* Operator "+" creates a new node */ + oNode+="b" + + /* Operator "+" creates a new node with attribute */ + oNode:=oNode+'font color="blue"' + oNode:text:="sample " + + /* Operator "-=" closes 2nd , result is node */ + oNode-="font" + + /* Operator "-=" closes node, result is 1st node */ + oNode-="b" + + oNode:text:="database!" + + /* Operator "-" closes 1st node, result is

node */ + oNode-="font" + HB_SYMBOL_UNUSED( oNode ) + + oNode:=oDoc:body:AddNode(THtmlNode():New(oDoc:body,"/p")) + HB_SYMBOL_UNUSED( oNode ) + + oNode+="hr" + HB_SYMBOL_UNUSED(oNode) + + /* Operator ":" returns first "table" from body (creates if not existent) */ + oTable:=:table + with object oTable + + :attr:='class="table"' + + aDBStruct:=(cAlias)->(dbStruct()) + nFields:=Len(aDBStruct) + nProgress:=0 + + oRow:=oTable +'tr bgcolor="lightcyan"' + FOR nField:=1 TO nFields + Progress(@nProgress,Row(),Col()+3) + oCell:=oRow+"th" + oCell:text:=aDBStruct[nField][DBS_NAME] + oCell-="th" + HB_SYMBOL_UNUSED(oCell) + NEXT nField + + oRow-="tr" + HB_SYMBOL_UNUSED(oRow) - WAIT - ? tip_HtmlToStr( oDoc:body:getText() ) + (cAlias)->(dbGoTop()) + WHILE ((cAlias)->(!Eof())) - hb_run( "address.html" ) + Progress(@nProgress,Row(),Col()+3) + + oRow:=oTable+"tr" + oRow:bgColor:=iif( RecNo() % 2 == 0, "lightgrey", "white" ) + + FOR nField:=1 TO nFields + Progress(@nProgress,Row(),Col()+3) + oCell:=oRow+"td" + uValue:=(cAlias)->(FieldGet(nField)) + if (aDbStruct[nField][DBS_TYPE]=="C") + uValue:=allTrim(uValue) + endif + oCell:text:=uValue + oCell-="td" + HB_SYMBOL_UNUSED(oCell) + NEXT nField + + oRow-="tr" + HB_SYMBOL_UNUSED(oRow) + + (cAlias)->(dbSkip()) + + END WHILE + + oNode:=oDoc:body+"hr" + HB_SYMBOL_UNUSED( oNode ) + oNode:=oDoc:body+"p" + oNode:text:=hb_NToS((cAlias)->(RecCount()))+" records from database "+cAlias + oNode:=oDoc:body:AddNode(THtmlNode():New(oDoc:body,"/p")) + HB_SYMBOL_UNUSED( oNode ) + + end with + + end with + + (cAlias)->(dbCloseArea()) + + IF oDoc:writeFile( "address.html" , 4 ) + ? "File created:", "address.html" + ELSE + ? "Error:", FError() + ENDIF + + ctip_HtmlToStr:=tip_HtmlToStr( oDoc:body:getText() ) + + WAIT + ? ctip_HtmlToStr + hb_Memowrit("address.HtmlToStr.txt",ctip_HtmlToStr) + + hb_run( "address.html" ) + +* hb_vfErase( "address.html" ) + + RETURN + +PROCEDURE Progress( nProgress, nDrow, nDcol ) + + LOCAL nRow := Row(), nCol := Col() + + @ nDrow, nDcol SAY "[ ]" + + DO CASE + CASE nProgress == 0 + @ nDrow, nDcol + 1 SAY "-" + CASE nProgress == 1 + @ nDrow, nDcol + 1 SAY "\" + CASE nProgress == 2 + @ nDrow, nDcol + 1 SAY "|" + CASE nProgress == 3 + @ nDrow, nDcol + 1 SAY "/" + ENDCASE + + nProgress++ + + IF nProgress == 4 + nProgress := 0 + ENDIF - hb_vfErase( "address.html" ) + @ nRow, nCol - RETURN + RETURN \ No newline at end of file diff --git a/contrib/hbtip/thtml.ch b/contrib/hbtip/thtml.ch index 1ac2d8c947..eeb0113ada 100644 --- a/contrib/hbtip/thtml.ch +++ b/contrib/hbtip/thtml.ch @@ -240,8 +240,8 @@ #define HTML_ATTR_WIDTH 158 #define HTML_ATTR_WRAP 159 #define HTML_ATTR_XMLNS 160 -#define HTML_ATTR_XML:LANG 161 -#define HTML_ATTR_XML:SPACE 162 +#define HTML_ATTR_XML_LANG 161 +#define HTML_ATTR_XML_SPACE 162 #define HTML_ATTR_ALLOWFULLSCREEN 163 #define HTML_ATTR_DOWNLOAD 164 #define HTML_ATTR_IS 165 @@ -369,118 +369,123 @@ #define HTML_ATTR_SVG_ENTERKEYHINT 285 #define HTML_ATTR_SVG_EXPORTPARTS 286 #define HTML_ATTR_SVG_FILL 287 -#define HTML_ATTR_SVG_FILL-RULE 288 -#define HTML_ATTR_SVG_FILL-OPACITY 289 +#define HTML_ATTR_SVG_FILL_RULE 288 +#define HTML_ATTR_SVG_FILL_OPACITY 289 #define HTML_ATTR_SVG_FILTER 290 -#define HTML_ATTR_SVG_FLOOD-COLOR 291 -#define HTML_ATTR_SVG_FLOOD-OPACITY 292 -#define HTML_ATTR_SVG_FONT-SIZE 293 -#define HTML_ATTR_SVG_FONT-SIZE-ADJUST 294 -#define HTML_ATTR_SVG_FONT-STYLE 295 -#define HTML_ATTR_SVG_VISIBILITY 297 -#define HTML_ATTR_SVG_FROM 298 -#define HTML_ATTR_SVG_FR 299 -#define HTML_ATTR_SVG_HEIGHT 300 -#define HTML_ATTR_SVG_KEYPOINTS 301 -#define HTML_ATTR_SVG_KEYTIMES 302 -#define HTML_ATTR_SVG_LENGTHADJUST 303 -#define HTML_ATTR_SVG_LETTER-SPACING 304 -#define HTML_ATTR_SVG_LIGHTING-COLOR 305 -#define HTML_ATTR_SVG_MARKERHEIGHT 306 -#define HTML_ATTR_SVG_MARKERWIDTH 307 -#define HTML_ATTR_SVG_MASK 308 -#define HTML_ATTR_SVG_MEDIA 309 -#define HTML_ATTR_SVG_NUMOCTAVES 310 -#define HTML_ATTR_SVG_NONCE 311 -#define HTML_ATTR_SVG_OPACITY 312 -#define HTML_ATTR_SVG_OPERATOR 313 -#define HTML_ATTR_SVG_ORIENT 314 -#define HTML_ATTR_SVG_PART 315 -#define HTML_ATTR_SVG_PATH 316 -#define HTML_ATTR_SVG_PATHLENGTH 317 -#define HTML_ATTR_SVG_PATTERNCONTENTUNITS 318 -#define HTML_ATTR_SVG_PATTERNTRANSFORM 319 -#define HTML_ATTR_SVG_PATTERNUNITS 320 -#define HTML_ATTR_SVG_POINTER-EVENTS 321 -#define HTML_ATTR_SVG_POINTS 322 -#define HTML_ATTR_SVG_POINTSATX 323 -#define HTML_ATTR_SVG_POINTSATY 324 -#define HTML_ATTR_SVG_POINTSATZ 325 -#define HTML_ATTR_SVG_PRESERVEASPECTRATIO 326 -#define HTML_ATTR_SVG_R 327 -#define HTML_ATTR_SVG_RADIUS 328 -#define HTML_ATTR_SVG_REPEATCOUNT 329 -#define HTML_ATTR_SVG_REPEATDUR 330 -#define HTML_ATTR_SVG_RESTART 331 -#define HTML_ATTR_SVG_ROTATE 332 -#define HTML_ATTR_SVG_RX 333 -#define HTML_ATTR_SVG_RY 334 -#define HTML_ATTR_SVG_SCALE 335 -#define HTML_ATTR_SVG_SEED 336 -#define HTML_ATTR_SVG_SHAPE-RENDERING 337 -#define HTML_ATTR_SVG_STARTOFFSET 338 -#define HTML_ATTR_SVG_STDDEVIATION 339 -#define HTML_ATTR_SVG_STITCHTILES 340 -#define HTML_ATTR_SVG_STOP-COLOR 341 -#define HTML_ATTR_SVG_STOP-OPACITY 342 -#define HTML_ATTR_SVG_STROKE 343 -#define HTML_ATTR_SVG_STROKE-DASHARRAY 344 -#define HTML_ATTR_SVG_STROKE-DASHOFFSET 345 -#define HTML_ATTR_SVG_STROKE-LINECAP 346 -#define HTML_ATTR_SVG_STROKE-OPACITY 347 -#define HTML_ATTR_SVG_STROKE-WIDTH 348 -#define HTML_ATTR_SVG_STROKE-LINEJOIN 349 -#define HTML_ATTR_SVG_STROKE-MITERLIMIT 350 -#define HTML_ATTR_SVG_STYLE 351 -#define HTML_ATTR_SVG_SURFACESCALE 352 -#define HTML_ATTR_SVG_SYSTEMLANGUAGE 353 -#define HTML_ATTR_SVG_TABINDEX 354 -#define HTML_ATTR_SVG_TABLEVALUES 355 -#define HTML_ATTR_SVG_TEXT-ANCHOR 356 -#define HTML_ATTR_SVG_TEXT-DECORATION 357 -#define HTML_ATTR_SVG_TEXT-RENDERING 358 -#define HTML_ATTR_SVG_TEXTLENGTH 359 -#define HTML_ATTR_SVG_TO 360 -#define HTML_ATTR_SVG_TRANSFORM 361 -#define HTML_ATTR_SVG_TYPE 362 -#define HTML_ATTR_SVG_VECTOR-EFFECT 363 -#define HTML_ATTR_SVG_VIEWBOX 364 -#define HTML_ATTR_SVG_VISIBILITY 365 -#define HTML_ATTR_SVG_WIDTH 366 -#define HTML_ATTR_SVG_WORD-SPACING 367 -#define HTML_ATTR_SVG_X 368 -#define HTML_ATTR_SVG_X1 369 -#define HTML_ATTR_SVG_X2 370 -#define HTML_ATTR_SVG_XCHANNELSELECTOR 371 -#define HTML_ATTR_SVG_XML:LANG 372 -#define HTML_ATTR_SVG_XML:BASE 373 -#define HTML_ATTR_SVG_Y 374 -#define HTML_ATTR_SVG_Y1 375 -#define HTML_ATTR_SVG_Y2 376 -#define HTML_ATTR_SVG_YCHANNELSELECTOR 377 -#define HTML_ATTR_SVG_Z 378 -#define HTML_ATTR_SVG_ZOOMANDPAN 379 +#define HTML_ATTR_SVG_FLOOD_COLOR 291 +#define HTML_ATTR_SVG_FLOOD_OPACITY 292 +#define HTML_ATTR_SVG_FONT_SIZE 293 +#define HTML_ATTR_SVG_FONT_SIZE_ADJUST 294 +#define HTML_ATTR_SVG_FONT_STYLE 295 +#define HTML_ATTR_SVG_FROM 296 +#define HTML_ATTR_SVG_FR 297 +#define HTML_ATTR_SVG_HEIGHT 298 +#define HTML_ATTR_SVG_KEYPOINTS 299 +#define HTML_ATTR_SVG_KEYTIMES 300 +#define HTML_ATTR_SVG_LENGTHADJUST 301 +#define HTML_ATTR_SVG_LETTER_SPACING 302 +#define HTML_ATTR_SVG_LIGHTING_COLOR 303 +#define HTML_ATTR_SVG_MARKERHEIGHT 304 +#define HTML_ATTR_SVG_MARKERWIDTH 305 +#define HTML_ATTR_SVG_MASK 306 +#define HTML_ATTR_SVG_MEDIA 307 +#define HTML_ATTR_SVG_NUMOCTAVES 308 +#define HTML_ATTR_SVG_NONCE 309 +#define HTML_ATTR_SVG_OPACITY 310 +#define HTML_ATTR_SVG_OPERATOR 311 +#define HTML_ATTR_SVG_ORIENT 312 +#define HTML_ATTR_SVG_PART 313 +#define HTML_ATTR_SVG_PATH 314 +#define HTML_ATTR_SVG_PATHLENGTH 315 +#define HTML_ATTR_SVG_PATTERNCONTENTUNITS 316 +#define HTML_ATTR_SVG_PATTERNTRANSFORM 317 +#define HTML_ATTR_SVG_PATTERNUNITS 318 +#define HTML_ATTR_SVG_POINTER_EVENTS 319 +#define HTML_ATTR_SVG_POINTS 320 +#define HTML_ATTR_SVG_POINTSATX 321 +#define HTML_ATTR_SVG_POINTSATY 322 +#define HTML_ATTR_SVG_POINTSATZ 323 +#define HTML_ATTR_SVG_PRESERVEASPECTRATIO 324 +#define HTML_ATTR_SVG_R 325 +#define HTML_ATTR_SVG_RADIUS 326 +#define HTML_ATTR_SVG_REPEATCOUNT 327 +#define HTML_ATTR_SVG_REPEATDUR 328 +#define HTML_ATTR_SVG_RESTART 329 +#define HTML_ATTR_SVG_ROTATE 330 +#define HTML_ATTR_SVG_RX 331 +#define HTML_ATTR_SVG_RY 332 +#define HTML_ATTR_SVG_SCALE 333 +#define HTML_ATTR_SVG_SEED 334 +#define HTML_ATTR_SVG_SHAPE_RENDERING 335 +#define HTML_ATTR_SVG_STARTOFFSET 336 +#define HTML_ATTR_SVG_STDDEVIATION 337 +#define HTML_ATTR_SVG_STITCHTILES 338 +#define HTML_ATTR_SVG_STOP_COLOR 339 +#define HTML_ATTR_SVG_STOP_OPACITY 340 +#define HTML_ATTR_SVG_STROKE 341 +#define HTML_ATTR_SVG_STROKE_DASHARRAY 342 +#define HTML_ATTR_SVG_STROKE_DASHOFFSET 343 +#define HTML_ATTR_SVG_STROKE_LINECAP 344 +#define HTML_ATTR_SVG_STROKE_OPACITY 345 +#define HTML_ATTR_SVG_STROKE_WIDTH 346 +#define HTML_ATTR_SVG_STROKE_LINEJOIN 347 +#define HTML_ATTR_SVG_STROKE_MITERLIMIT 348 +#define HTML_ATTR_SVG_STYLE 349 +#define HTML_ATTR_SVG_SURFACESCALE 350 +#define HTML_ATTR_SVG_SYSTEMLANGUAGE 351 +#define HTML_ATTR_SVG_TABINDEX 352 +#define HTML_ATTR_SVG_TABLEVALUES 353 +#define HTML_ATTR_SVG_TEXT_ANCHOR 354 +#define HTML_ATTR_SVG_TEXT_DECORATION 355 +#define HTML_ATTR_SVG_TEXT_RENDERING 356 +#define HTML_ATTR_SVG_TEXTLENGTH 357 +#define HTML_ATTR_SVG_TO 358 +#define HTML_ATTR_SVG_TRANSFORM 359 +#define HTML_ATTR_SVG_TYPE 360 +#define HTML_ATTR_SVG_VECTOR_EFFECT 361 +#define HTML_ATTR_SVG_VIEWBOX 362 +#define HTML_ATTR_SVG_VISIBILITY 363 +#define HTML_ATTR_SVG_WIDTH 364 +#define HTML_ATTR_SVG_WORD_SPACING 365 +#define HTML_ATTR_SVG_X 366 +#define HTML_ATTR_SVG_X1 367 +#define HTML_ATTR_SVG_X2 368 +#define HTML_ATTR_SVG_XCHANNELSELECTOR 369 +#define HTML_ATTR_SVG_XML_LANG 370 +#define HTML_ATTR_SVG_XML_BASE 371 +#define HTML_ATTR_SVG_Y 372 +#define HTML_ATTR_SVG_Y1 373 +#define HTML_ATTR_SVG_Y2 374 +#define HTML_ATTR_SVG_YCHANNELSELECTOR 375 +#define HTML_ATTR_SVG_Z 376 +#define HTML_ATTR_SVG_ZOOMANDPAN 377 /* MathML attributes */ -#define HTML_ATTR_DISPLAY 380 +#define HTML_ATTR_DISPLAY 378 /* RDFa global attributes */ -#define HTML_ATTR_ABOUT 381 -#define HTML_ATTR_DATATYPE 382 -#define HTML_ATTR_INLIST 383 -#define HTML_ATTR_PREFIX 384 -#define HTML_ATTR_PROPERTY 385 -#define HTML_ATTR_RESOURCE 386 -#define HTML_ATTR_TYPEOF 387 -#define HTML_ATTR_VOCAB 388 -#define HTML_ATTR_INTEGRITY 389 -#define HTML_ATTR_AS 390 -#define HTML_ATTR_XMLNS:XLINK 391 -#define HTML_ATTR_SLOT 392 -#define HTML_ATTR_LOADING 393 -#define HTML_ATTR_INPUTMODE 394 +#define HTML_ATTR_ABOUT 379 +#define HTML_ATTR_DATATYPE 380 +#define HTML_ATTR_INLIST 381 +#define HTML_ATTR_PREFIX 382 +#define HTML_ATTR_PROPERTY 383 +#define HTML_ATTR_RESOURCE 384 +#define HTML_ATTR_TYPEOF 385 +#define HTML_ATTR_VOCAB 386 +#define HTML_ATTR_INTEGRITY 387 +#define HTML_ATTR_AS 388 +#define HTML_ATTR_XMLNS_XLINK 389 +#define HTML_ATTR_SLOT 390 +#define HTML_ATTR_LOADING 391 +#define HTML_ATTR_INPUTMODE 392 +#define HTML_ATTR_ENTERKEYHINT 393 +#define HTML_ATTR_EXPORTPARTS 394 +#define HTML_ATTR_NONCE 395 +#define HTML_ATTR_PART 396 +#define HTML_ATTR_XML_BASE 397 +#define HTML_ATTR_FILL 398 -#define HTML_ATTR_COUNT 394 +#define HTML_ATTR_COUNT 398 /* Constants for HTML ARIA attributes adopted from Tidy library */ diff --git a/contrib/hbtip/thtml.prg b/contrib/hbtip/thtml.prg index 93c03525e0..4ae4061103 100644 --- a/contrib/hbtip/thtml.prg +++ b/contrib/hbtip/thtml.prg @@ -122,7 +122,7 @@ CREATE CLASS THtmlDocument MODULE FRIENDLY METHOD writeFile( cFileName ) METHOD collect() - METHOD toString() + METHOD toString( nIndent ) METHOD getNode( cTagName ) METHOD getNodes( cTagName ) METHOD findFirst( cName, cAttrib, cValue, cData ) @@ -228,8 +228,8 @@ METHOD new( cHtmlString ) CLASS THtmlDocument RETURN Self // Builds a HTML formatted string -METHOD toString() CLASS THtmlDocument - RETURN ::root:toString() +METHOD toString( nIndent ) CLASS THtmlDocument + RETURN ::root:toString(nIndent) // reads HTML file and parses it into tree of objects METHOD readFile( cFileName ) CLASS THtmlDocument @@ -244,9 +244,9 @@ METHOD readFile( cFileName ) CLASS THtmlDocument RETURN .F. // writes the entire tree of HTML objects into a file -METHOD writeFile( cFileName ) CLASS THtmlDocument +METHOD writeFile( cFileName , nIndent ) CLASS THtmlDocument - LOCAL lSuccess := hb_MemoWrit( cFileName, ::toString() ) + LOCAL lSuccess := hb_MemoWrit( cFileName, ::toString( nIndent ) ) IF lSuccess ::changed := .F. @@ -590,7 +590,7 @@ CREATE CLASS THtmlNode MODULE FRIENDLY METHOD getAttributes() METHOD setAttribute( cName, cValue ) - METHOD setAttributes( cHtml ) + METHOD setAttributes( xHtml ) METHOD delAttribute( cName ) METHOD delAttributes() @@ -606,6 +606,9 @@ CREATE CLASS THtmlNode MODULE FRIENDLY METHOD pushNode OPERATOR + METHOD popNode OPERATOR - + OPERATOR "+=" INLINE ::pushNode() + OPERATOR "-=" INLINE ::popNode() + METHOD findNodeByTagName METHOD findNodesByTagName @@ -1047,9 +1050,16 @@ METHOD toString( nIndent ) CLASS THtmlNode IF ! ::htmlTagName == "_root_" // all nodes but the root node have a HTML tag IF ! ::isInline() .OR. ::htmlTagName == "!--" + IF ::htmlTagName == "!--" + IF ! Right( cHtml, Len( t_cHB_EOL ) ) == t_cHB_EOL + cHtml += t_cHB_EOL + ENDIF + ENDIF cHtml += cIndent ELSEIF ::keepFormatting() - cHtml += t_cHB_EOL + IF ! Right( cHtml, Len( t_cHB_EOL ) ) == t_cHB_EOL + cHtml += t_cHB_EOL + ENDIF ENDIF cHtml += "<" + ::htmlTagName + ::attrToString() @@ -1062,7 +1072,9 @@ METHOD toString( nIndent ) CLASS THtmlNode FOR EACH oNode IN ::htmlContent IF ! oNode:isInline() .OR. oNode:htmlTagName == "!--" - cHtml += t_cHB_EOL + IF ! Right( cHtml, Len( t_cHB_EOL ) ) == t_cHB_EOL + cHtml += t_cHB_EOL + ENDIF ENDIF cHtml += oNode:toString( nIndent + 1 ) NEXT @@ -1073,16 +1085,24 @@ METHOD toString( nIndent ) CLASS THtmlNode IF ::htmlEndTagName != NIL IF ::isInline() .OR. ::keepFormatting() .OR. ::isType( CM_HEADING ) .OR. ::isType( CM_HEAD ) - RETURN cHtml += iif( ::htmlEndTagName == "/", " />", "<" + ::htmlEndTagName + ">" ) + cHtml += iif( ::htmlEndTagName == "/", " />", "<" + ::htmlEndTagName + ">" ) ENDIF IF ! Right( cHtml, Len( t_cHB_EOL ) ) == t_cHB_EOL cHtml += t_cHB_EOL ENDIF - RETURN cHtml += cIndent + iif( ::htmlEndTagName == "/", " />", "<" + ::htmlEndTagName + ">" ) + cHtml += cIndent + iif( ::htmlEndTagName == "/", " />", iif( ::htmlEndTagName == "--" , ::htmlEndTagName+">" , "<" + ::htmlEndTagName + ">" ) ) ELSEIF ::htmlTagName $ "!--,br" - RETURN cHtml += t_cHB_EOL + cIndent + IF ! Right( cHtml, Len( t_cHB_EOL ) ) == t_cHB_EOL + cHtml += t_cHB_EOL + cHtml += cIndent + ENDIF ENDIF + //TODO: Workaround until reviewing the logic of the tags + cHtml:=strTran(cHtml,"","","-->") + cHtml:=strTran(cHtml,"","-->") + RETURN cHtml // Builds the attribute string @@ -2143,11 +2163,11 @@ STATIC PROCEDURE _Init_Html_Attributes t_aHA[ HTML_ATTR_VSPACE ] := { "vspace" , HTML_ATTR_TYPE_NUMBER } t_aHA[ HTML_ATTR_WIDTH ] := { "width" , HTML_ATTR_TYPE_LENGTH } t_aHA[ HTML_ATTR_WRAP ] := { "wrap" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_XML:BASE ] := { "xml:base" , HTML_ATTR_TYPE_BASE } - t_aHA[ HTML_ATTR_XML:LANG ] := { "xml:lang" , HTML_ATTR_TYPE_LANG } - t_aHA[ HTML_ATTR_XML:SPACE ] := { "xml:space" , HTML_ATTR_TYPE_PCDATA } + t_aHA[ HTML_ATTR_XML_BASE ] := { "xml:base" , HTML_ATTR_TYPE_BASE } + t_aHA[ HTML_ATTR_XML_LANG ] := { "xml:lang" , HTML_ATTR_TYPE_LANG } + t_aHA[ HTML_ATTR_XML_SPACE ] := { "xml:space" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_XMLNS ] := { "xmlns" , HTML_ATTR_TYPE_PCDATA } - t_aHA[ HTML_ATTR_XMLNS:XLINK ] := { "xmlns:xlink" , HTML_ATTR_TYPE_URL } + t_aHA[ HTML_ATTR_XMLNS_XLINK ] := { "xmlns:xlink" , HTML_ATTR_TYPE_URL } /*Begin TODO:*/ @@ -2179,14 +2199,14 @@ STATIC PROCEDURE _Init_Html_Attributes t_aHA[ HTML_ATTR_SVG_ENTERKEYHINT ] := { "enterkeyhint" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SVG_EXPORTPARTS ] := { "exportparts" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SVG_FILL ] := { "fill" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_SVG_FILL-RULE ] := { "fill-rule" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_SVG_FILL-OPACITY ] := { "fill-opacity" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_FILL_RULE ] := { "fill-rule" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_FILL_OPACITY ] := { "fill-opacity" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SVG_FILTER ] := { "filter" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_SVG_FLOOD-COLOR ] := { "flood-color" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_SVG_FLOOD-OPACITY ] := { "flood-opacity" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_SVG_FONT-SIZE ] := { "font-size" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_SVG_FONT-SIZE-ADJUST ] := { "font-size-adjust" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_SVG_FONT-STYLE ] := { "font-style" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_FLOOD_COLOR ] := { "flood-color" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_FLOOD_OPACITY ] := { "flood-opacity" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_FONT_SIZE ] := { "font-size" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_FONT_SIZE_ADJUST ] := { "font-size-adjust" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_FONT_STYLE ] := { "font-style" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SVG_VISIBILITY ] := { "visibility" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SVG_FROM ] := { "from" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SVG_FR ] := { "fr" , HTML_ATTR_TYPE_UNKNOWN } @@ -2194,8 +2214,8 @@ STATIC PROCEDURE _Init_Html_Attributes t_aHA[ HTML_ATTR_SVG_KEYPOINTS ] := { "keypoints" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SVG_KEYTIMES ] := { "keytimes" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SVG_LENGTHADJUST ] := { "lengthadjust" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_SVG_LETTER-SPACING ] := { "letter-spacing" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_SVG_LIGHTING-COLOR ] := { "lighting-color" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_LETTER_SPACING ] := { "letter-spacing" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_LIGHTING_COLOR ] := { "lighting-color" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SVG_MARKERHEIGHT ] := { "markerheight" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SVG_MARKERWIDTH ] := { "markerwidth" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SVG_MASK ] := { "mask" , HTML_ATTR_TYPE_UNKNOWN } @@ -2211,7 +2231,7 @@ STATIC PROCEDURE _Init_Html_Attributes t_aHA[ HTML_ATTR_SVG_PATTERNCONTENTUNITS ] := { "patterncontentunits" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SVG_PATTERNTRANSFORM ] := { "patterntransform" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SVG_PATTERNUNITS ] := { "patternunits" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_SVG_POINTER-EVENTS ] := { "pointer-events" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_POINTER_EVENTS ] := { "pointer-events" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SVG_POINTS ] := { "points" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SVG_POINTSATX ] := { "pointsatx" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SVG_POINTSATY ] := { "pointsaty" , HTML_ATTR_TYPE_UNKNOWN } @@ -2227,43 +2247,43 @@ STATIC PROCEDURE _Init_Html_Attributes t_aHA[ HTML_ATTR_SVG_RY ] := { "ry" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SVG_SCALE ] := { "scale" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SVG_SEED ] := { "seed" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_SVG_SHAPE-RENDERING ] := { "shape-rendering" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_SHAPE_RENDERING ] := { "shape-rendering" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SVG_STARTOFFSET ] := { "startoffset" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SVG_STDDEVIATION ] := { "stddeviation" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SVG_STITCHTILES ] := { "stitchtiles" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_SVG_STOP-COLOR ] := { "stop-color" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_SVG_STOP-OPACITY ] := { "stop-opacity" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_STOP_COLOR ] := { "stop-color" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_STOP_OPACITY ] := { "stop-opacity" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SVG_STROKE ] := { "stroke" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_SVG_STROKE-DASHARRAY ] := { "stroke-dasharray" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_SVG_STROKE-DASHOFFSET ] := { "stroke-dashoffset" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_SVG_STROKE-LINECAP ] := { "stroke-linecap" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_SVG_STROKE-OPACITY ] := { "stroke-opacity" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_SVG_STROKE-WIDTH ] := { "stroke-width" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_SVG_STROKE-LINEJOIN ] := { "stroke-linejoin" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_SVG_STROKE-MITERLIMIT ] := { "stroke-miterlimit" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_STROKE_DASHARRAY ] := { "stroke-dasharray" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_STROKE_DASHOFFSET ] := { "stroke-dashoffset" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_STROKE_LINECAP ] := { "stroke-linecap" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_STROKE_OPACITY ] := { "stroke-opacity" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_STROKE_WIDTH ] := { "stroke-width" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_STROKE_LINEJOIN ] := { "stroke-linejoin" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_STROKE_MITERLIMIT ] := { "stroke-miterlimit" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SVG_STYLE ] := { "style" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SVG_SURFACESCALE ] := { "surfacescale" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SVG_SYSTEMLANGUAGE ] := { "systemlanguage" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SVG_TABINDEX ] := { "tabindex" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SVG_TABLEVALUES ] := { "tablevalues" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_SVG_TEXT-ANCHOR ] := { "text-anchor" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_SVG_TEXT-DECORATION ] := { "text-decoration" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_SVG_TEXT-RENDERING ] := { "text-rendering" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_TEXT_ANCHOR ] := { "text-anchor" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_TEXT_DECORATION ] := { "text-decoration" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_TEXT_RENDERING ] := { "text-rendering" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SVG_TEXTLENGTH ] := { "textlength" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SVG_TO ] := { "to" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SVG_TRANSFORM ] := { "transform" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SVG_TYPE ] := { "type" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_SVG_VECTOR-EFFECT ] := { "vector-effect" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_VECTOR_EFFECT ] := { "vector-effect" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SVG_VIEWBOX ] := { "viewbox" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SVG_VISIBILITY ] := { "visibility" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SVG_WIDTH ] := { "width" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_SVG_WORD-SPACING ] := { "word-spacing" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_WORD_SPACING ] := { "word-spacing" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SVG_X ] := { "x" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SVG_X1 ] := { "x1" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SVG_X2 ] := { "x2" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SVG_XCHANNELSELECTOR ] := { "xchannelselector" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_SVG_XML:LANG ] := { "xml:lang" , HTML_ATTR_TYPE_UNKNOWN } - t_aHA[ HTML_ATTR_SVG_XML:BASE ] := { "xml:base" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_XML_LANG ] := { "xml:lang" , HTML_ATTR_TYPE_UNKNOWN } + t_aHA[ HTML_ATTR_SVG_XML_BASE ] := { "xml:base" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SVG_Y ] := { "y" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SVG_Y1 ] := { "y1" , HTML_ATTR_TYPE_UNKNOWN } t_aHA[ HTML_ATTR_SVG_Y2 ] := { "y2" , HTML_ATTR_TYPE_UNKNOWN } @@ -2369,8 +2389,8 @@ STATIC FUNCTION THtmlAttr_GlobalAttributes() t_aHA[ HTML_ATTR_TABINDEX ], ; t_aHA[ HTML_ATTR_TITLE ], ; t_aHA[ HTML_ATTR_TRANSLATE ], ; - t_aHA[ HTML_ATTR_XML:BASE ], ; - t_aHA[ HTML_ATTR_XML:LANG ], ; + t_aHA[ HTML_ATTR_XML_BASE ], ; + t_aHA[ HTML_ATTR_XML_LANG ], ; t_aHA[ HTML_ATTR_UNKNOWN ] } STATIC FUNCTION THtmlAttr_A() @@ -3370,6 +3390,7 @@ STATIC FUNCTION THtmlAttr_LINK() t_aHA[ HTML_ATTR_DISABLED ], ; t_aHA[ HTML_ATTR_HREF ], ; t_aHA[ HTML_ATTR_HREFLANG ], ; + t_aHA[ HTML_ATTR_INTEGRITY ], ; t_aHA[ HTML_ATTR_MEDIA ], ; t_aHA[ HTML_ATTR_METHODS ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; @@ -3460,6 +3481,7 @@ STATIC FUNCTION THtmlAttr_MENUITEM() STATIC FUNCTION THtmlAttr_META() RETURN { ; + t_aHA[ HTML_ATTR_CHARSET ], ; t_aHA[ HTML_ATTR_CONTENT ], ; t_aHA[ HTML_ATTR_HTTP_EQUIV ], ; t_aHA[ HTML_ATTR_NAME ], ; @@ -3644,7 +3666,7 @@ STATIC FUNCTION THtmlAttr_PRE() t_aHA[ HTML_ATTR_ONMOUSEUP ], ; t_aHA[ HTML_ATTR_SDAFORM ], ; t_aHA[ HTML_ATTR_WIDTH ], ; - t_aHA[ HTML_ATTR_XML:SPACE ], ; + t_aHA[ HTML_ATTR_XML_SPACE ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_PROGRESS() @@ -3792,7 +3814,7 @@ STATIC FUNCTION THtmlAttr_SCRIPT() t_aHA[ HTML_ATTR_ONERROR ], ; t_aHA[ HTML_ATTR_SRC ], ; t_aHA[ HTML_ATTR_TYPE ], ; - t_aHA[ HTML_ATTR_XML:SPACE ], ; + t_aHA[ HTML_ATTR_XML_SPACE ], ; t_aHA[ HTML_ATTR_XMLNS ], ; t_aHA[ HTML_ATTR_ASYNC ] } @@ -3891,7 +3913,7 @@ STATIC FUNCTION THtmlAttr_STYLE() t_aHA[ HTML_ATTR_MEDIA ], ; t_aHA[ HTML_ATTR_SCOPED ], ; t_aHA[ HTML_ATTR_TYPE ], ; - t_aHA[ HTML_ATTR_XML:SPACE ], ; + t_aHA[ HTML_ATTR_XML_SPACE ], ; t_aHA[ HTML_ATTR_XMLNS ], ; t_aHA[ HTML_ATTR_SRCSET ] } @@ -3936,14 +3958,14 @@ STATIC FUNCTION THtmlAttr_SVG() t_aHA[ HTML_ATTR_SVG_ENTERKEYHINT ], ; t_aHA[ HTML_ATTR_SVG_EXPORTPARTS ], ; t_aHA[ HTML_ATTR_SVG_FILL ], ; - t_aHA[ HTML_ATTR_SVG_FILL-RULE ], ; - t_aHA[ HTML_ATTR_SVG_FILL-OPACITY ], ; + t_aHA[ HTML_ATTR_SVG_FILL_RULE ], ; + t_aHA[ HTML_ATTR_SVG_FILL_OPACITY ], ; t_aHA[ HTML_ATTR_SVG_FILTER ], ; - t_aHA[ HTML_ATTR_SVG_FLOOD-COLOR ], ; - t_aHA[ HTML_ATTR_SVG_FLOOD-OPACITY ], ; - t_aHA[ HTML_ATTR_SVG_FONT-SIZE ], ; - t_aHA[ HTML_ATTR_SVG_FONT-SIZE-ADJUST ], ; - t_aHA[ HTML_ATTR_SVG_FONT-STYLE ], ; + t_aHA[ HTML_ATTR_SVG_FLOOD_COLOR ], ; + t_aHA[ HTML_ATTR_SVG_FLOOD_OPACITY ], ; + t_aHA[ HTML_ATTR_SVG_FONT_SIZE ], ; + t_aHA[ HTML_ATTR_SVG_FONT_SIZE_ADJUST ], ; + t_aHA[ HTML_ATTR_SVG_FONT_STYLE ], ; t_aHA[ HTML_ATTR_SVG_VISIBILITY ], ; t_aHA[ HTML_ATTR_SVG_FROM ], ; t_aHA[ HTML_ATTR_SVG_FR ], ; @@ -3951,8 +3973,8 @@ STATIC FUNCTION THtmlAttr_SVG() t_aHA[ HTML_ATTR_SVG_KEYPOINTS ], ; t_aHA[ HTML_ATTR_SVG_KEYTIMES ], ; t_aHA[ HTML_ATTR_SVG_LENGTHADJUST ], ; - t_aHA[ HTML_ATTR_SVG_LETTER-SPACING ], ; - t_aHA[ HTML_ATTR_SVG_LIGHTING-COLOR ], ; + t_aHA[ HTML_ATTR_SVG_LETTER_SPACING ], ; + t_aHA[ HTML_ATTR_SVG_LIGHTING_COLOR ], ; t_aHA[ HTML_ATTR_SVG_MARKERHEIGHT ], ; t_aHA[ HTML_ATTR_SVG_MARKERWIDTH ], ; t_aHA[ HTML_ATTR_SVG_MASK ], ; @@ -3968,7 +3990,7 @@ STATIC FUNCTION THtmlAttr_SVG() t_aHA[ HTML_ATTR_SVG_PATTERNCONTENTUNITS ], ; t_aHA[ HTML_ATTR_SVG_PATTERNTRANSFORM ], ; t_aHA[ HTML_ATTR_SVG_PATTERNUNITS ], ; - t_aHA[ HTML_ATTR_SVG_POINTER-EVENTS ], ; + t_aHA[ HTML_ATTR_SVG_POINTER_EVENTS ], ; t_aHA[ HTML_ATTR_SVG_POINTS ], ; t_aHA[ HTML_ATTR_SVG_POINTSATX ], ; t_aHA[ HTML_ATTR_SVG_POINTSATY ], ; @@ -3984,43 +4006,43 @@ STATIC FUNCTION THtmlAttr_SVG() t_aHA[ HTML_ATTR_SVG_RY ], ; t_aHA[ HTML_ATTR_SVG_SCALE ], ; t_aHA[ HTML_ATTR_SVG_SEED ], ; - t_aHA[ HTML_ATTR_SVG_SHAPE-RENDERING ], ; + t_aHA[ HTML_ATTR_SVG_SHAPE_RENDERING ], ; t_aHA[ HTML_ATTR_SVG_STARTOFFSET ], ; t_aHA[ HTML_ATTR_SVG_STDDEVIATION ], ; t_aHA[ HTML_ATTR_SVG_STITCHTILES ], ; - t_aHA[ HTML_ATTR_SVG_STOP-COLOR ], ; - t_aHA[ HTML_ATTR_SVG_STOP-OPACITY ], ; + t_aHA[ HTML_ATTR_SVG_STOP_COLOR ], ; + t_aHA[ HTML_ATTR_SVG_STOP_OPACITY ], ; t_aHA[ HTML_ATTR_SVG_STROKE ], ; - t_aHA[ HTML_ATTR_SVG_STROKE-DASHARRAY ], ; - t_aHA[ HTML_ATTR_SVG_STROKE-DASHOFFSET ], ; - t_aHA[ HTML_ATTR_SVG_STROKE-LINECAP ], ; - t_aHA[ HTML_ATTR_SVG_STROKE-OPACITY ], ; - t_aHA[ HTML_ATTR_SVG_STROKE-WIDTH ], ; - t_aHA[ HTML_ATTR_SVG_STROKE-LINEJOIN ], ; - t_aHA[ HTML_ATTR_SVG_STROKE-MITERLIMIT ], ; + t_aHA[ HTML_ATTR_SVG_STROKE_DASHARRAY ], ; + t_aHA[ HTML_ATTR_SVG_STROKE_DASHOFFSET ], ; + t_aHA[ HTML_ATTR_SVG_STROKE_LINECAP ], ; + t_aHA[ HTML_ATTR_SVG_STROKE_OPACITY ], ; + t_aHA[ HTML_ATTR_SVG_STROKE_WIDTH ], ; + t_aHA[ HTML_ATTR_SVG_STROKE_LINEJOIN ], ; + t_aHA[ HTML_ATTR_SVG_STROKE_MITERLIMIT ], ; t_aHA[ HTML_ATTR_SVG_STYLE ], ; t_aHA[ HTML_ATTR_SVG_SURFACESCALE ], ; t_aHA[ HTML_ATTR_SVG_SYSTEMLANGUAGE ], ; t_aHA[ HTML_ATTR_SVG_TABINDEX ], ; t_aHA[ HTML_ATTR_SVG_TABLEVALUES ], ; - t_aHA[ HTML_ATTR_SVG_TEXT-ANCHOR ], ; - t_aHA[ HTML_ATTR_SVG_TEXT-DECORATION ], ; - t_aHA[ HTML_ATTR_SVG_TEXT-RENDERING ], ; + t_aHA[ HTML_ATTR_SVG_TEXT_ANCHOR ], ; + t_aHA[ HTML_ATTR_SVG_TEXT_DECORATION ], ; + t_aHA[ HTML_ATTR_SVG_TEXT_RENDERING ], ; t_aHA[ HTML_ATTR_SVG_TEXTLENGTH ], ; t_aHA[ HTML_ATTR_SVG_TO ], ; t_aHA[ HTML_ATTR_SVG_TRANSFORM ], ; t_aHA[ HTML_ATTR_SVG_TYPE ], ; - t_aHA[ HTML_ATTR_SVG_VECTOR-EFFECT ], ; + t_aHA[ HTML_ATTR_SVG_VECTOR_EFFECT ], ; t_aHA[ HTML_ATTR_SVG_VIEWBOX ], ; t_aHA[ HTML_ATTR_SVG_VISIBILITY ], ; t_aHA[ HTML_ATTR_SVG_WIDTH ], ; - t_aHA[ HTML_ATTR_SVG_WORD-SPACING ], ; + t_aHA[ HTML_ATTR_SVG_WORD_SPACING ], ; t_aHA[ HTML_ATTR_SVG_X ], ; t_aHA[ HTML_ATTR_SVG_X1 ], ; t_aHA[ HTML_ATTR_SVG_X2 ], ; t_aHA[ HTML_ATTR_SVG_XCHANNELSELECTOR ], ; - t_aHA[ HTML_ATTR_SVG_XML:LANG ], ; - t_aHA[ HTML_ATTR_SVG_XML:BASE ], ; + t_aHA[ HTML_ATTR_SVG_XML_LANG ], ; + t_aHA[ HTML_ATTR_SVG_XML_BASE ], ; t_aHA[ HTML_ATTR_SVG_Y ], ; t_aHA[ HTML_ATTR_SVG_Y1 ], ; t_aHA[ HTML_ATTR_SVG_Y2 ], ; From eee4946784f52123e00d72a1bfe54dcafe3c9966 Mon Sep 17 00:00:00 2001 From: Naldo DJ Date: Sun, 17 Apr 2022 18:51:21 -0300 Subject: [PATCH 14/19] New HTML Features --- contrib/hbtip/tests/dbtohtml.prg | 16 +++++++++++++++- contrib/hbtip/thtml.prg | 8 ++++---- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/contrib/hbtip/tests/dbtohtml.prg b/contrib/hbtip/tests/dbtohtml.prg index 07b66e822a..2c339bd05c 100644 --- a/contrib/hbtip/tests/dbtohtml.prg +++ b/contrib/hbtip/tests/dbtohtml.prg @@ -14,6 +14,7 @@ PROCEDURE Main() LOCAL nField AS NUMERIC LOCAL nFields AS NUMERIC + LOCAL nOption AS NUMERIC LOCAL nProgress AS NUMERIC LOCAL oRow AS OBJECT @@ -304,7 +305,20 @@ PROCEDURE Main() hb_run( "address.html" ) -* hb_vfErase( "address.html" ) + while .T. + nOption := Alert( "Do you want to delete the address.html file?", { "YES" , "NO" } ) + switch nOption + case 0 + case 2 + exit + case 1 + hb_vfErase( "address.html" ) + exit + end switch + if (nOption>=1) + exit + endif + end while RETURN diff --git a/contrib/hbtip/thtml.prg b/contrib/hbtip/thtml.prg index 4ae4061103..b26f1033b5 100644 --- a/contrib/hbtip/thtml.prg +++ b/contrib/hbtip/thtml.prg @@ -119,7 +119,7 @@ CREATE CLASS THtmlDocument MODULE FRIENDLY METHOD new( cHtmlString ) METHOD readFile( cFileName ) - METHOD writeFile( cFileName ) + METHOD writeFile( cFileName , nIndent ) METHOD collect() METHOD toString( nIndent ) @@ -1769,9 +1769,9 @@ STATIC PROCEDURE _Init_Html_TagTypes t_hHT[ "dt" ] := { @THtmlAttr_DT() , hb_bitOr( CM_DEFLIST, CM_OPT, CM_NO_INDENT ) } t_hHT[ "em" ] := { @THtmlAttr_EM() , ( CM_INLINE ) } t_hHT[ "embed" ] := { @THtmlAttr_EMBED() , hb_bitOr( CM_INLINE, CM_IMG, CM_EMPTY ) } - t_hHT[ "fieldset" ] := { @THtmlAttr_FIELDSET() , ( CM_BLOCK ) } - t_hHT[ "figcaption" ] := { @THtmlAttr_FIGCAPTION() , hb_bitOr( CM_TABLE, CM_EMPTY ) } - t_hHT[ "figure" ] := { @THtmlAttr_FIGURE() , hb_bitOr( CM_TABLE, CM_EMPTY ) } + t_hHT[ "fieldset" ] := { @THtmlAttr_FIELDSET() , ( CM_INLINE ) } + t_hHT[ "figcaption" ] := { @THtmlAttr_FIGCAPTION() , ( CM_BLOCK ) } + t_hHT[ "figure" ] := { @THtmlAttr_FIGURE() , ( CM_BLOCK ) } t_hHT[ "font" ] := { @THtmlAttr_FONT() , ( CM_INLINE ) } t_hHT[ "footer" ] := { , hb_bitOr( CM_BLOCK, CM_EMPTY ) } t_hHT[ "form" ] := { @THtmlAttr_FORM() , ( CM_BLOCK ) } From 4aae699db05d62c5a7a0202d7e6aaad1cb1ce1d5 Mon Sep 17 00:00:00 2001 From: Naldo DJ Date: Sun, 17 Apr 2022 22:37:17 -0300 Subject: [PATCH 15/19] New HTML Features --- contrib/hbtip/tests/dbtohtml.prg | 2 +- contrib/hbtip/thtml.prg | 72 ++++++++++++++------------------ 2 files changed, 33 insertions(+), 41 deletions(-) diff --git a/contrib/hbtip/tests/dbtohtml.prg b/contrib/hbtip/tests/dbtohtml.prg index 2c339bd05c..212a4e4f7d 100644 --- a/contrib/hbtip/tests/dbtohtml.prg +++ b/contrib/hbtip/tests/dbtohtml.prg @@ -291,7 +291,7 @@ PROCEDURE Main() (cAlias)->(dbCloseArea()) - IF oDoc:writeFile( "address.html" , 4 ) + IF oDoc:writeFile( "address.html" , -9 , 4 ) ? "File created:", "address.html" ELSE ? "Error:", FError() diff --git a/contrib/hbtip/thtml.prg b/contrib/hbtip/thtml.prg index b26f1033b5..d62b3234de 100644 --- a/contrib/hbtip/thtml.prg +++ b/contrib/hbtip/thtml.prg @@ -119,10 +119,10 @@ CREATE CLASS THtmlDocument MODULE FRIENDLY METHOD new( cHtmlString ) METHOD readFile( cFileName ) - METHOD writeFile( cFileName , nIndent ) + METHOD writeFile( cFileName , nIndent , nIncIndent ) METHOD collect() - METHOD toString( nIndent ) + METHOD toString( nIndent , nIncIndent ) METHOD getNode( cTagName ) METHOD getNodes( cTagName ) METHOD findFirst( cName, cAttrib, cValue, cData ) @@ -228,8 +228,8 @@ METHOD new( cHtmlString ) CLASS THtmlDocument RETURN Self // Builds a HTML formatted string -METHOD toString( nIndent ) CLASS THtmlDocument - RETURN ::root:toString(nIndent) +METHOD toString( nIndent , nIncIndent ) CLASS THtmlDocument + RETURN ::root:toString( nIndent , nIncIndent ) // reads HTML file and parses it into tree of objects METHOD readFile( cFileName ) CLASS THtmlDocument @@ -244,9 +244,9 @@ METHOD readFile( cFileName ) CLASS THtmlDocument RETURN .F. // writes the entire tree of HTML objects into a file -METHOD writeFile( cFileName , nIndent ) CLASS THtmlDocument +METHOD writeFile( cFileName , nIndent , nIncIndent ) CLASS THtmlDocument - LOCAL lSuccess := hb_MemoWrit( cFileName, ::toString( nIndent ) ) + LOCAL lSuccess := hb_MemoWrit( cFileName, ::toString( nIndent , nIncIndent ) ) IF lSuccess ::changed := .F. @@ -580,7 +580,7 @@ CREATE CLASS THtmlNode MODULE FRIENDLY ACCESS parentNode() INLINE ::parent ACCESS document() INLINE iif( ::root == NIL, NIL, ::root:_document ) - METHOD toString( nIndent ) + METHOD toString( nIndent , nIncIndent ) METHOD attrToString() METHOD collect( oEndNode ) @@ -1034,7 +1034,7 @@ METHOD prevNode() CLASS THtmlNode RETURN iif( nPos == 1, ::parent, aNodes[ nPos - 1 ] ) // creates HTML code for this node -METHOD toString( nIndent ) CLASS THtmlNode +METHOD toString( nIndent , nIncIndent ) CLASS THtmlNode LOCAL cIndent, cHtml := "", oNode @@ -1043,23 +1043,17 @@ METHOD toString( nIndent ) CLASS THtmlNode RETURN ::htmlContent ENDIF - hb_default( @nIndent, -1 ) + hb_default( @nIndent, -4 ) + hb_default( @nIncIndent, 4 ) cIndent := iif( ::keepFormatting(), "", Space( Max( 0, nIndent ) ) ) IF ! ::htmlTagName == "_root_" // all nodes but the root node have a HTML tag IF ! ::isInline() .OR. ::htmlTagName == "!--" - IF ::htmlTagName == "!--" - IF ! Right( cHtml, Len( t_cHB_EOL ) ) == t_cHB_EOL - cHtml += t_cHB_EOL - ENDIF - ENDIF cHtml += cIndent ELSEIF ::keepFormatting() - IF ! Right( cHtml, Len( t_cHB_EOL ) ) == t_cHB_EOL - cHtml += t_cHB_EOL - ENDIF + cHtml += t_cHB_EOL ENDIF cHtml += "<" + ::htmlTagName + ::attrToString() @@ -1072,11 +1066,9 @@ METHOD toString( nIndent ) CLASS THtmlNode FOR EACH oNode IN ::htmlContent IF ! oNode:isInline() .OR. oNode:htmlTagName == "!--" - IF ! Right( cHtml, Len( t_cHB_EOL ) ) == t_cHB_EOL - cHtml += t_cHB_EOL - ENDIF + cHtml += t_cHB_EOL ENDIF - cHtml += oNode:toString( nIndent + 1 ) + cHtml += oNode:toString( nIndent + nIncIndent ) NEXT ELSEIF HB_ISSTRING( ::htmlContent ) @@ -1085,23 +1077,21 @@ METHOD toString( nIndent ) CLASS THtmlNode IF ::htmlEndTagName != NIL IF ::isInline() .OR. ::keepFormatting() .OR. ::isType( CM_HEADING ) .OR. ::isType( CM_HEAD ) - cHtml += iif( ::htmlEndTagName == "/", " />", "<" + ::htmlEndTagName + ">" ) + RETURN cHtml += iif( ::htmlEndTagName == "/", " />", "<" + ::htmlEndTagName + ">" ) ENDIF IF ! Right( cHtml, Len( t_cHB_EOL ) ) == t_cHB_EOL cHtml += t_cHB_EOL ENDIF - cHtml += cIndent + iif( ::htmlEndTagName == "/", " />", iif( ::htmlEndTagName == "--" , ::htmlEndTagName+">" , "<" + ::htmlEndTagName + ">" ) ) + RETURN cHtml += cIndent + iif( ::htmlEndTagName == "/", " />", "<" + ::htmlEndTagName + ">" ) ELSEIF ::htmlTagName $ "!--,br" - IF ! Right( cHtml, Len( t_cHB_EOL ) ) == t_cHB_EOL - cHtml += t_cHB_EOL - cHtml += cIndent - ENDIF + RETURN cHtml += t_cHB_EOL + cIndent ENDIF //TODO: Workaround until reviewing the logic of the tags cHtml:=strTran(cHtml,"","","-->") cHtml:=strTran(cHtml,"","-->") + cHtml:=strTran(cHtml,"-->-->","-->") RETURN cHtml @@ -1598,6 +1588,8 @@ METHOD pushNode( cTagName ) CLASS THtmlNode oNode := THtmlNode():new( Self, cName, cAttr ) IF ! oNode:isOptional() .AND. ! oNode:isEmpty() oNode:htmlEndTagName := "/" + cName + ELSEIF cName=="!--" + oNode:htmlEndTagName := "--" ENDIF ::addNode( oNode ) @@ -1772,11 +1764,11 @@ STATIC PROCEDURE _Init_Html_TagTypes t_hHT[ "fieldset" ] := { @THtmlAttr_FIELDSET() , ( CM_INLINE ) } t_hHT[ "figcaption" ] := { @THtmlAttr_FIGCAPTION() , ( CM_BLOCK ) } t_hHT[ "figure" ] := { @THtmlAttr_FIGURE() , ( CM_BLOCK ) } - t_hHT[ "font" ] := { @THtmlAttr_FONT() , ( CM_INLINE ) } + t_hHT[ "font" ] := { @THtmlAttr_FONT() , hb_bitOr( CM_INLINE , CM_OBSOLETE ) } t_hHT[ "footer" ] := { , hb_bitOr( CM_BLOCK, CM_EMPTY ) } t_hHT[ "form" ] := { @THtmlAttr_FORM() , ( CM_BLOCK ) } - t_hHT[ "frame" ] := { @THtmlAttr_FRAME() , hb_bitOr( CM_FRAMES, CM_EMPTY ) } - t_hHT[ "frameset" ] := { @THtmlAttr_FRAMESET() , hb_bitOr( CM_HTML, CM_FRAMES ) } + t_hHT[ "frame" ] := { @THtmlAttr_FRAME() , hb_bitOr( CM_FRAMES, CM_EMPTY , CM_OBSOLETE ) } + t_hHT[ "frameset" ] := { @THtmlAttr_FRAMESET() , hb_bitOr( CM_HTML, CM_FRAMES , CM_OBSOLETE ) } t_hHT[ "h1" ] := { @THtmlAttr_H1() , hb_bitOr( CM_BLOCK, CM_HEADING ) } t_hHT[ "h2" ] := { @THtmlAttr_H2() , hb_bitOr( CM_BLOCK, CM_HEADING ) } t_hHT[ "h3" ] := { @THtmlAttr_H3() , hb_bitOr( CM_BLOCK, CM_HEADING ) } @@ -1785,7 +1777,7 @@ STATIC PROCEDURE _Init_Html_TagTypes t_hHT[ "h6" ] := { @THtmlAttr_H6() , hb_bitOr( CM_BLOCK, CM_HEADING ) } t_hHT[ "head" ] := { @THtmlAttr_HEAD() , hb_bitOr( CM_HTML, CM_OPT, CM_OMITST ) } t_hHT[ "header" ] := { @THtmlAttr_HEADER() , hb_bitOr( CM_BLOCK, CM_EMPTY ) } - t_hHT[ "hgroup" ] := { @THtmlAttr_HGROUP() , hb_bitOr( CM_BLOCK, CM_EMPTY ) } + t_hHT[ "hgroup" ] := { @THtmlAttr_HGROUP() , hb_bitOr( CM_BLOCK, CM_EMPTY, CM_OBSOLETE ) } t_hHT[ "hr" ] := { @THtmlAttr_HR() , hb_bitOr( CM_BLOCK, CM_EMPTY ) } t_hHT[ "html" ] := { @THtmlAttr_HTML() , hb_bitOr( CM_HTML, CM_OPT, CM_OMITST ) } t_hHT[ "i" ] := { @THtmlAttr_I() , ( CM_INLINE ) } @@ -1794,7 +1786,7 @@ STATIC PROCEDURE _Init_Html_TagTypes t_hHT[ "img" ] := { @THtmlAttr_IMG() , hb_bitOr( CM_INLINE, CM_IMG, CM_EMPTY ) } t_hHT[ "input" ] := { @THtmlAttr_INPUT() , hb_bitOr( CM_INLINE, CM_IMG, CM_EMPTY ) } t_hHT[ "ins" ] := { @THtmlAttr_INS() , hb_bitOr( CM_INLINE, CM_BLOCK, CM_MIXED ) } - t_hHT[ "isindex" ] := { @THtmlAttr_ISINDEX() , hb_bitOr( CM_BLOCK, CM_EMPTY ) } + t_hHT[ "isindex" ] := { @THtmlAttr_ISINDEX() , hb_bitOr( CM_BLOCK, CM_EMPTY, CM_OBSOLETE ) } t_hHT[ "kbd" ] := { @THtmlAttr_KBD() , ( CM_INLINE ) } t_hHT[ "keygen" ] := { @THtmlAttr_KEYGEN() , hb_bitOr( CM_INLINE, CM_EMPTY ) } t_hHT[ "label" ] := { @THtmlAttr_LABEL() , ( CM_INLINE ) } @@ -1811,12 +1803,12 @@ STATIC PROCEDURE _Init_Html_TagTypes t_hHT[ "menuitem" ] := { @THtmlAttr_MENUITEM() , hb_bitOr( CM_BLOCK, CM_OBSOLETE ) } t_hHT[ "meta" ] := { @THtmlAttr_META() , hb_bitOr( CM_HEAD, CM_EMPTY ) } t_hHT[ "meter" ] := { @THtmlAttr_METER() , hb_bitOr( CM_INLINE, CM_EMPTY ) } - t_hHT[ "multicol" ] := { , ( CM_BLOCK ) } + t_hHT[ "multicol" ] := { , hb_bitOr( CM_BLOCK, CM_OBSOLETE ) } t_hHT[ "nav" ] := { , ( CM_BLOCK ) } - t_hHT[ "nextid" ] := { @THtmlAttr_NEXTID() , hb_bitOr( CM_HEAD, CM_EMPTY ) } - t_hHT[ "nobr" ] := { , ( CM_INLINE ) } - t_hHT[ "noembed" ] := { , ( CM_INLINE ) } - t_hHT[ "noframes" ] := { @THtmlAttr_NOFRAMES() , hb_bitOr( CM_BLOCK, CM_FRAMES ) } + t_hHT[ "nextid" ] := { @THtmlAttr_NEXTID() , hb_bitOr( CM_HEAD, CM_EMPTY , CM_OBSOLETE ) } + t_hHT[ "nobr" ] := { , hb_bitOr( CM_INLINE , CM_OBSOLETE ) } + t_hHT[ "noembed" ] := { , hb_bitOr( CM_INLINE , CM_OBSOLETE ) } + t_hHT[ "noframes" ] := { @THtmlAttr_NOFRAMES() , hb_bitOr( CM_BLOCK, CM_FRAMES , CM_OBSOLETE ) } t_hHT[ "nolayer" ] := { , hb_bitOr( CM_BLOCK, CM_INLINE, CM_MIXED ) } t_hHT[ "nosave" ] := { , ( CM_BLOCK ) } t_hHT[ "noscript" ] := { @THtmlAttr_NOSCRIPT() , hb_bitOr( CM_BLOCK, CM_INLINE, CM_MIXED ) } @@ -1846,10 +1838,10 @@ STATIC PROCEDURE _Init_Html_TagTypes t_hHT[ "server" ] := { , hb_bitOr( CM_HEAD, CM_MIXED, CM_BLOCK, CM_INLINE ) } t_hHT[ "servlet" ] := { , hb_bitOr( CM_OBJECT, CM_IMG, CM_INLINE, CM_PARAM ) } t_hHT[ "small" ] := { @THtmlAttr_SMALL() , ( CM_INLINE ) } - t_hHT[ "spacer" ] := { , hb_bitOr( CM_INLINE, CM_EMPTY ) } + t_hHT[ "spacer" ] := { , hb_bitOr( CM_INLINE, CM_EMPTY , CM_OBSOLETE ) } t_hHT[ "source" ] := { @THtmlAttr_SOURCE() , hb_bitOr( CM_INLINE, CM_EMPTY ) } t_hHT[ "span" ] := { @THtmlAttr_SPAN() , ( CM_INLINE ) } - t_hHT[ "strike" ] := { @THtmlAttr_STRIKE() , ( CM_INLINE ) } + t_hHT[ "strike" ] := { @THtmlAttr_STRIKE() , hb_bitOr( CM_INLINE, CM_OBSOLETE ) } t_hHT[ "strong" ] := { @THtmlAttr_STRONG() , ( CM_INLINE ) } t_hHT[ "style" ] := { @THtmlAttr_STYLE() , ( CM_HEAD ) } t_hHT[ "sub" ] := { @THtmlAttr_SUB() , ( CM_INLINE ) } @@ -1868,7 +1860,7 @@ STATIC PROCEDURE _Init_Html_TagTypes t_hHT[ "title" ] := { @THtmlAttr_TITLE() , ( CM_HEAD ) } t_hHT[ "tr" ] := { @THtmlAttr_TR() , hb_bitOr( CM_TABLE, CM_OPT ) } t_hHT[ "track" ] := { @THtmlAttr_TRACK() , hb_bitOr( CM_MIXED, CM_BLOCK, CM_INLINE ) } - t_hHT[ "tt" ] := { @THtmlAttr_TT() , ( CM_INLINE ) } + t_hHT[ "tt" ] := { @THtmlAttr_TT() , hb_bitOr( CM_INLINE, CM_OBSOLETE ) } t_hHT[ "u" ] := { @THtmlAttr_U() , ( CM_INLINE ) } t_hHT[ "ul" ] := { @THtmlAttr_UL() , ( CM_BLOCK ) } t_hHT[ "var" ] := { @THtmlAttr_VAR() , ( CM_INLINE ) } From f18aa0119716fcf1d8e9399f7ecf761cf4aacec6 Mon Sep 17 00:00:00 2001 From: Naldo DJ Date: Sun, 17 Apr 2022 22:42:58 -0300 Subject: [PATCH 16/19] New HTML Features --- contrib/hbtip/tests/dbtohtml.prg | 8 ++++---- contrib/hbtip/thtml.prg | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/contrib/hbtip/tests/dbtohtml.prg b/contrib/hbtip/tests/dbtohtml.prg index 212a4e4f7d..6f5751c960 100644 --- a/contrib/hbtip/tests/dbtohtml.prg +++ b/contrib/hbtip/tests/dbtohtml.prg @@ -183,7 +183,7 @@ PROCEDURE Main() "href"=>"https://fonts.googleapis.com/icon?family=Material+Icons"; } end with - + oTitle:=:head:title oTitle:text="Harbour/dbtohtml.prg" @@ -311,12 +311,12 @@ PROCEDURE Main() case 0 case 2 exit - case 1 + case 1 hb_vfErase( "address.html" ) exit end switch if (nOption>=1) - exit + exit endif end while @@ -347,4 +347,4 @@ PROCEDURE Progress( nProgress, nDrow, nDcol ) @ nRow, nCol - RETURN \ No newline at end of file + RETURN diff --git a/contrib/hbtip/thtml.prg b/contrib/hbtip/thtml.prg index d62b3234de..8c57143fd9 100644 --- a/contrib/hbtip/thtml.prg +++ b/contrib/hbtip/thtml.prg @@ -1804,7 +1804,7 @@ STATIC PROCEDURE _Init_Html_TagTypes t_hHT[ "meta" ] := { @THtmlAttr_META() , hb_bitOr( CM_HEAD, CM_EMPTY ) } t_hHT[ "meter" ] := { @THtmlAttr_METER() , hb_bitOr( CM_INLINE, CM_EMPTY ) } t_hHT[ "multicol" ] := { , hb_bitOr( CM_BLOCK, CM_OBSOLETE ) } - t_hHT[ "nav" ] := { , ( CM_BLOCK ) } + t_hHT[ "nav" ] := { , ( CM_BLOCK ) } t_hHT[ "nextid" ] := { @THtmlAttr_NEXTID() , hb_bitOr( CM_HEAD, CM_EMPTY , CM_OBSOLETE ) } t_hHT[ "nobr" ] := { , hb_bitOr( CM_INLINE , CM_OBSOLETE ) } t_hHT[ "noembed" ] := { , hb_bitOr( CM_INLINE , CM_OBSOLETE ) } @@ -3382,7 +3382,7 @@ STATIC FUNCTION THtmlAttr_LINK() t_aHA[ HTML_ATTR_DISABLED ], ; t_aHA[ HTML_ATTR_HREF ], ; t_aHA[ HTML_ATTR_HREFLANG ], ; - t_aHA[ HTML_ATTR_INTEGRITY ], ; + t_aHA[ HTML_ATTR_INTEGRITY ], ; t_aHA[ HTML_ATTR_MEDIA ], ; t_aHA[ HTML_ATTR_METHODS ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; From 25c13f5893643e77be958bec9afbdad698e85003 Mon Sep 17 00:00:00 2001 From: Naldo DJ Date: Tue, 19 Apr 2022 09:13:19 -0300 Subject: [PATCH 17/19] add Copyright --- contrib/hbtip/thtml.ch | 1 + 1 file changed, 1 insertion(+) diff --git a/contrib/hbtip/thtml.ch b/contrib/hbtip/thtml.ch index eeb0113ada..4b0854c21c 100644 --- a/contrib/hbtip/thtml.ch +++ b/contrib/hbtip/thtml.ch @@ -2,6 +2,7 @@ * Directives for HTML Classes * * Copyright 2007 Hannes Ziegler + * Copyright 2022 Marinaldo de Jesus * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by From f0d1b809911990893dc00df963967b80373cd2fc Mon Sep 17 00:00:00 2001 From: Naldo DJ Date: Tue, 26 Apr 2022 08:32:48 -0300 Subject: [PATCH 18/19] New features and new examples --- .../hbtip/tests/{ => dbtohtml}/dbtohtml.prg | 76 +++++++++---------- contrib/hbtip/tests/dbtohtml/hbmk.hbm | 4 + contrib/hbtip/thtml.ch | 27 ++++--- contrib/hbtip/thtml.prg | 38 ++++++---- contrib/hbtip/thtml/hbmk.hbm | 3 + contrib/hbtip/thtml/thtml.hbc | 5 ++ contrib/hbtip/thtml/thtml.hbp | 18 +++++ 7 files changed, 105 insertions(+), 66 deletions(-) rename contrib/hbtip/tests/{ => dbtohtml}/dbtohtml.prg (84%) create mode 100644 contrib/hbtip/tests/dbtohtml/hbmk.hbm create mode 100644 contrib/hbtip/thtml/hbmk.hbm create mode 100644 contrib/hbtip/thtml/thtml.hbc create mode 100644 contrib/hbtip/thtml/thtml.hbp diff --git a/contrib/hbtip/tests/dbtohtml.prg b/contrib/hbtip/tests/dbtohtml/dbtohtml.prg similarity index 84% rename from contrib/hbtip/tests/dbtohtml.prg rename to contrib/hbtip/tests/dbtohtml/dbtohtml.prg index 6f5751c960..5419655662 100644 --- a/contrib/hbtip/tests/dbtohtml.prg +++ b/contrib/hbtip/tests/dbtohtml/dbtohtml.prg @@ -1,4 +1,8 @@ -/* Demonstrating operator overloading for creating an HTML document */ +/* + Demonstrating operator overloading for creating an HTML document + Document checking completed. No errors or warnings to show. + https://validator.w3.org/nu/#file +*/ #include "dbstruct.ch" @@ -45,12 +49,6 @@ PROCEDURE Main() oLang:=oDoc:root:html oLang:attr:={"lang"=>"en"} - /* Operator "+" creates a new node */ - oMeta:=:head+"meta" - with object oMeta - :attr:={"http-equiv"=>"content-type","content"=>"text/html; charset=UTF-8"} - end with - /* Operator "+" creates a new node */ oComment:=:head+"!--" with object oComment @@ -189,7 +187,7 @@ PROCEDURE Main() end with - with object oDoc:body + with object oDoc:body:main /* Operator ":" returns first "h1" from body (creates if not existent) */ oNode:=:h1 @@ -198,32 +196,21 @@ PROCEDURE Main() end with /* Operator "+" creates a new

node */ - oNode:=oDoc:body+"p" - - /* Operator "+=" creates a new node with attribute */ - oNode+='font size="5"' - oNode:text:="This is a " - - /* Operator "+" creates a new node */ - oNode+="b" - - /* Operator "+" creates a new node with attribute */ - oNode:=oNode+'font color="blue"' - oNode:text:="sample " + oNode:=oDoc:body:main+"p" + oNode:attr:={"style"=>"font-size: 30px"} + oNode:text:="Harbour THtmlDocument " - /* Operator "-=" closes 2nd , result is node */ - oNode-="font" + /* Operator "+" creates a new node */ + oNode+="b" + oNode:attr:={"style"=>"color:blue"} + oNode:text:="sample " + /* Operator "-=" closes node*/ + oNode-="b" - /* Operator "-=" closes node, result is 1st node */ - oNode-="b" + oNode:text:="database!" - oNode:text:="database!" - - /* Operator "-" closes 1st node, result is

node */ - oNode-="font" - HB_SYMBOL_UNUSED( oNode ) - - oNode:=oDoc:body:AddNode(THtmlNode():New(oDoc:body,"/p")) + /* closes

node*/ + oNode:=oDoc:body:main:AddNode(THtmlNode():New(oDoc:body:main,"/p")) HB_SYMBOL_UNUSED( oNode ) oNode+="hr" @@ -233,16 +220,24 @@ PROCEDURE Main() oTable:=:table with object oTable - :attr:='class="table"' + :attr:='class="table table-striped table-hover"' aDBStruct:=(cAlias)->(dbStruct()) nFields:=Len(aDBStruct) nProgress:=0 - oRow:=oTable +'tr bgcolor="lightcyan"' + oRow:=oTable +'tr' + + oCell:=oRow:AddNode(THtmlNode():New(oRow,"th")) + oCell:scope:="row" + oCell:text:="#" + oCell:=oCell-"th" + HB_SYMBOL_UNUSED(oCell) + FOR nField:=1 TO nFields Progress(@nProgress,Row(),Col()+3) oCell:=oRow+"th" + oCell:scope:="col" oCell:text:=aDBStruct[nField][DBS_NAME] oCell-="th" HB_SYMBOL_UNUSED(oCell) @@ -257,7 +252,12 @@ PROCEDURE Main() Progress(@nProgress,Row(),Col()+3) oRow:=oTable+"tr" - oRow:bgColor:=iif( RecNo() % 2 == 0, "lightgrey", "white" ) + + oCell:=oRow:AddNode(THtmlNode():New(oRow,"th")) + oCell:scope:="row" + oCell:text:=(cAlias)->(RecNo()) + oCell:=oCell-"th" + HB_SYMBOL_UNUSED(oCell) FOR nField:=1 TO nFields Progress(@nProgress,Row(),Col()+3) @@ -278,11 +278,11 @@ PROCEDURE Main() END WHILE - oNode:=oDoc:body+"hr" + oNode:=oDoc:body:main+"hr" HB_SYMBOL_UNUSED( oNode ) - oNode:=oDoc:body+"p" + oNode:=oDoc:body:main+"p" oNode:text:=hb_NToS((cAlias)->(RecCount()))+" records from database "+cAlias - oNode:=oDoc:body:AddNode(THtmlNode():New(oDoc:body,"/p")) + oNode:=oDoc:body:main:AddNode(THtmlNode():New(oDoc:body:main,"/p")) HB_SYMBOL_UNUSED( oNode ) end with @@ -297,7 +297,7 @@ PROCEDURE Main() ? "Error:", FError() ENDIF - ctip_HtmlToStr:=tip_HtmlToStr( oDoc:body:getText() ) + ctip_HtmlToStr:=tip_HtmlToStr( oDoc:body:main:getText() ) WAIT ? ctip_HtmlToStr diff --git a/contrib/hbtip/tests/dbtohtml/hbmk.hbm b/contrib/hbtip/tests/dbtohtml/hbmk.hbm new file mode 100644 index 0000000000..9d78f95031 --- /dev/null +++ b/contrib/hbtip/tests/dbtohtml/hbmk.hbm @@ -0,0 +1,4 @@ +hbtip.hbc +hbtest.hbc + +-w3 -es2 diff --git a/contrib/hbtip/thtml.ch b/contrib/hbtip/thtml.ch index 4b0854c21c..82e923d398 100644 --- a/contrib/hbtip/thtml.ch +++ b/contrib/hbtip/thtml.ch @@ -49,7 +49,8 @@ #define _HB_THTML /* Content model shortcut encoding taken from Tidy library - https://github.com/htacg/tidy-html5 */ + https://github.com/htacg/tidy-html5/blob/next/src/lexer.h +*/ #define CM_UNKNOWN 0 #define CM_EMPTY 0x000001 /* Elements with no content. Map to HTML specification. */ @@ -62,24 +63,24 @@ #define CM_TABLE 0x000080 /* Elements that can appear inside TABLE. */ #define CM_ROWGRP 0x000100 /* Used for "thead", "tfoot" or "tbody". */ #define CM_ROW 0x000200 /* Used for "td", "th" */ -#define CM_FIELD 0x000400 /* Elements whose content must be protected against white space movement. - Includes some elements that can found in forms. */ -#define CM_OBJECT 0x000800 /* Used to avoid propagating inline emphasis inside some elements - such as OBJECT or APPLET. */ +#define CM_FIELD 0x000400 /* Elements whose content must be protected against white space movement. Includes some elements that can found in forms. */ +#define CM_OBJECT 0x000800 /* Used to avoid propagating inline emphasis inside some elements such as OBJECT or APPLET. */ #define CM_PARAM 0x001000 /* Elements that allows "PARAM". */ #define CM_FRAMES 0x002000 /* "FRAME", "FRAMESET", "NOFRAMES". Used in ParseFrameSet. */ #define CM_HEADING 0x004000 /* Heading elements (h1, h2, ...). */ #define CM_OPT 0x008000 /* Elements with an optional end tag. */ #define CM_IMG 0x010000 /* Elements that use "align" attribute for vertical position. */ #define CM_MIXED 0x020000 /* Elements with inline and block model. Used to avoid calling InlineDup. */ -#define CM_NO_INDENT 0x040000 /* Elements whose content needs to be indented only if containing one - CM_BLOCK element. */ +#define CM_NO_INDENT 0x040000 /* Elements whose content needs to be indented only if containing one CM_BLOCK element. */ #define CM_OBSOLETE 0x080000 /* Elements that are obsolete (such as "dir", "menu"). */ -#define CM_NEW 0x100000 /* User defined elements. Used to determine how attributes without value - should be printed. */ +#define CM_NEW 0x100000 /* User defined elements. Used to determine how attributes without value should be printed. */ #define CM_OMITST 0x200000 /* Elements that cannot be omitted. */ +#define CM_VOID 0X400000 /* Elements that are void per https://www.w3.org/TR/2011/WD-html-markup-20110113/syntax.html#syntax-elements. */ -/* Constants for HTML attributes adopted from Tidy library */ +/* + Constants for HTML attributes adopted from Tidy library + https://github.com/htacg/tidy-html5/blob/next/include/tidyenum.h +*/ #define HTML_ATTR_ABBR 1 #define HTML_ATTR_ACCEPT 2 @@ -485,8 +486,9 @@ #define HTML_ATTR_PART 396 #define HTML_ATTR_XML_BASE 397 #define HTML_ATTR_FILL 398 +#define HTML_ATTR_REFERRERPOLICY 399 -#define HTML_ATTR_COUNT 398 +#define HTML_ATTR_COUNT 399 /* Constants for HTML ARIA attributes adopted from Tidy library */ @@ -577,7 +579,8 @@ #define HTML_ATTR_TYPE_SANDBOX 46 #define HTML_ATTR_TYPE_SRCDOC 47 #define HTML_ATTR_TYPE_STEP 48 +#define HTML_ATTR_TYPE_REFERRERPOLICY 49 -#define HTML_ATTR_TYPE_COUNT 48 +#define HTML_ATTR_TYPE_COUNT 49 #endif /* _HB_THTML */ diff --git a/contrib/hbtip/thtml.prg b/contrib/hbtip/thtml.prg index 8c57143fd9..c5ed78e197 100644 --- a/contrib/hbtip/thtml.prg +++ b/contrib/hbtip/thtml.prg @@ -103,10 +103,6 @@ THREAD STATIC t_lInit := .F. // initialization flag for HTML data /* Class for handling an entire HTML document */ CREATE CLASS THtmlDocument MODULE FRIENDLY - if t_cHB_EOL==NIL - t_cHB_EOL:=hb_eol() - endif - HIDDEN: VAR oIterator VAR nodes @@ -137,12 +133,20 @@ METHOD new( cHtmlString ) CLASS THtmlDocument LOCAL oSubNode, oErrNode, aHead, aBody, nMode := 0 LOCAL cEmptyHtmlDoc + if t_cHB_EOL==NIL + t_cHB_EOL:=hb_eol() + endif + #pragma __cstream | cEmptyHtmlDoc:=%s +

+
+
+
#pragma __endtext @@ -1113,21 +1117,17 @@ METHOD attrToString() CLASS THtmlNode RETURN cAttr -STATIC FUNCTION __getAttributes( cAttrFunc ) +STATIC FUNCTION __getAttributes( sAttrFunc ) LOCAL aAttr LOCAL nAttr - HB_DEFAULT(@cAttrFunc,{||Array(0)}) - BEGIN SEQUENCE WITH __BreakBlock() - aAttr := cAttrFunc:exec() + aAttr := sAttrFunc:exec() RECOVER aAttr := {} // Tag has no attributes END SEQUENCE - HB_DEFAULT(@aAttr,{}) - //Add Global Attributes //The global attributes below can be used on any HTML element if t_aGlbAttr==NIL @@ -1715,8 +1715,8 @@ STATIC PROCEDURE _Init_Html_TagTypes t_hHT[ "_root_" ] := { , ( CM_INLINE ) } t_hHT[ "_text_" ] := { , ( CM_INLINE ) } - t_hHT[ "!--" ] := { , hb_bitOr( CM_INLINE, CM_EMPTY ) } - t_hHT[ "!DOCTYPE" ] := { , hb_bitOr( CM_INLINE, CM_EMPTY ) } + t_hHT[ "!--" ] := { , ( CM_INLINE ) } + t_hHT[ "!DOCTYPE" ] := { , ( CM_INLINE ) } t_hHT[ "a" ] := { @THtmlAttr_A() , ( CM_INLINE ) } t_hHT[ "abbr" ] := { @THtmlAttr_ABBR() , ( CM_INLINE ) } t_hHT[ "acronym" ] := { @THtmlAttr_ACRONYM() , hb_bitOr( CM_INLINE , CM_OBSOLETE ) } @@ -1724,9 +1724,9 @@ STATIC PROCEDURE _Init_Html_TagTypes t_hHT[ "align" ] := { , ( CM_BLOCK ) } t_hHT[ "applet" ] := { @THtmlAttr_APPLET() , hb_bitOr( CM_OBJECT, CM_IMG, CM_INLINE, CM_PARAM , CM_OBSOLETE ) } t_hHT[ "area" ] := { @THtmlAttr_AREA() , hb_bitOr( CM_BLOCK, CM_EMPTY ) } - t_hHT[ "article" ] := { @THtmlAttr_ARTICLE() , hb_bitOr( CM_TABLE, CM_EMPTY ) } - t_hHT[ "aside" ] := { @THtmlAttr_ASIDE() , hb_bitOr( CM_TABLE, CM_EMPTY ) } - t_hHT[ "audio" ] := { @THtmlAttr_AUDIO() , hb_bitOr( CM_INLINE, CM_EMPTY ) } + t_hHT[ "article" ] := { @THtmlAttr_ARTICLE() , ( CM_BLOCK) } + t_hHT[ "aside" ] := { @THtmlAttr_ASIDE() , ( CM_BLOCK ) } + t_hHT[ "audio" ] := { @THtmlAttr_AUDIO() , ( CM_BLOCK ) } t_hHT[ "b" ] := { @THtmlAttr_B() , ( CM_INLINE ) } t_hHT[ "base" ] := { @THtmlAttr_BASE() , hb_bitOr( CM_HEAD, CM_EMPTY ) } t_hHT[ "basefont" ] := { @THtmlAttr_BASEFONT() , hb_bitOr( CM_INLINE, CM_EMPTY , CM_OBSOLETE ) } @@ -1765,7 +1765,7 @@ STATIC PROCEDURE _Init_Html_TagTypes t_hHT[ "figcaption" ] := { @THtmlAttr_FIGCAPTION() , ( CM_BLOCK ) } t_hHT[ "figure" ] := { @THtmlAttr_FIGURE() , ( CM_BLOCK ) } t_hHT[ "font" ] := { @THtmlAttr_FONT() , hb_bitOr( CM_INLINE , CM_OBSOLETE ) } - t_hHT[ "footer" ] := { , hb_bitOr( CM_BLOCK, CM_EMPTY ) } + t_hHT[ "footer" ] := { , hb_bitOr( CM_HTML, CM_OPT, CM_OMITST ) } t_hHT[ "form" ] := { @THtmlAttr_FORM() , ( CM_BLOCK ) } t_hHT[ "frame" ] := { @THtmlAttr_FRAME() , hb_bitOr( CM_FRAMES, CM_EMPTY , CM_OBSOLETE ) } t_hHT[ "frameset" ] := { @THtmlAttr_FRAMESET() , hb_bitOr( CM_HTML, CM_FRAMES , CM_OBSOLETE ) } @@ -2099,6 +2099,7 @@ STATIC PROCEDURE _Init_Html_Attributes t_aHA[ HTML_ATTR_PROMPT ] := { "prompt" , HTML_ATTR_TYPE_PCDATA } t_aHA[ HTML_ATTR_PUBDATE ] := { "pubdate" , HTML_ATTR_TYPE_PUBDATE } t_aHA[ HTML_ATTR_RADIOGROUP ] := { "radiogroup" , HTML_ATTR_TYPE_RADIOGROUP } + t_aHA[ HTML_ATTR_REFERRERPOLICY ] := { "referrerpolicy" , HTML_ATTR_TYPE_REFERRERPOLICY } t_aHA[ HTML_ATTR_REQUIRED ] := { "required" , HTML_ATTR_TYPE_BOOL } t_aHA[ HTML_ATTR_RBSPAN ] := { "rbspan" , HTML_ATTR_TYPE_NUMBER } t_aHA[ HTML_ATTR_READONLY ] := { "readonly" , HTML_ATTR_TYPE_BOOL } @@ -2478,7 +2479,9 @@ STATIC FUNCTION THtmlAttr_AREA() t_aHA[ HTML_ATTR_ALT ], ; t_aHA[ HTML_ATTR_COORDS ], ; t_aHA[ HTML_ATTR_HREF ], ; + t_aHA[ HTML_ATTR_HREFLANG ], ; t_aHA[ HTML_ATTR_NOHREF ], ; + t_aHA[ HTML_ATTR_MEDIA ], ; t_aHA[ HTML_ATTR_ONBLUR ], ; t_aHA[ HTML_ATTR_ONCLICK ], ; t_aHA[ HTML_ATTR_ONDBLCLICK ], ; @@ -2491,8 +2494,11 @@ STATIC FUNCTION THtmlAttr_AREA() t_aHA[ HTML_ATTR_ONMOUSEOUT ], ; t_aHA[ HTML_ATTR_ONMOUSEOVER ], ; t_aHA[ HTML_ATTR_ONMOUSEUP ], ; + t_aHA[ HTML_ATTR_REFERRERPOLICY ], ; + t_aHA[ HTML_ATTR_REL ], ; t_aHA[ HTML_ATTR_SHAPE ], ; t_aHA[ HTML_ATTR_TARGET ], ; + t_aHA[ HTML_ATTR_TYPE ], ; t_aHA[ HTML_ATTR_XMLNS ] } STATIC FUNCTION THtmlAttr_ARTICLE() diff --git a/contrib/hbtip/thtml/hbmk.hbm b/contrib/hbtip/thtml/hbmk.hbm new file mode 100644 index 0000000000..84d1149f2e --- /dev/null +++ b/contrib/hbtip/thtml/hbmk.hbm @@ -0,0 +1,3 @@ +thtml.hbc + +-w3 -es2 -mt diff --git a/contrib/hbtip/thtml/thtml.hbc b/contrib/hbtip/thtml/thtml.hbc new file mode 100644 index 0000000000..f133538927 --- /dev/null +++ b/contrib/hbtip/thtml/thtml.hbc @@ -0,0 +1,5 @@ +description=tHTML Class + +incpaths=. + +libs=${_HB_DYNPREF}${hb_name}${_HB_DYNSUFF} \ No newline at end of file diff --git a/contrib/hbtip/thtml/thtml.hbp b/contrib/hbtip/thtml/thtml.hbp new file mode 100644 index 0000000000..8dab384f9a --- /dev/null +++ b/contrib/hbtip/thtml/thtml.hbp @@ -0,0 +1,18 @@ +-hbhrb +-inc+ +-mt + +-D_DEBUG_ + +-w3 -es2 + +${hb_name}.hbx + +-cpp +-gui +-compr=max + +../tHtml.ch +../tHtml.prg + +-o${hb_name} \ No newline at end of file From 9a21822c7c2ddae038cfa310d9729881b86a6869 Mon Sep 17 00:00:00 2001 From: Naldo DJ Date: Wed, 27 Apr 2022 14:45:51 -0300 Subject: [PATCH 19/19] Adjustment of end-of-line formatting --- contrib/hbtip/tests/dbtohtml/dbtohtml.prg | 9 +-- contrib/hbtip/thtml.prg | 67 +++++++++++++++-------- contrib/hbtip/thtml/thtml.hbx | 62 +++++++++++++++++++++ 3 files changed, 112 insertions(+), 26 deletions(-) create mode 100644 contrib/hbtip/thtml/thtml.hbx diff --git a/contrib/hbtip/tests/dbtohtml/dbtohtml.prg b/contrib/hbtip/tests/dbtohtml/dbtohtml.prg index 5419655662..94be5761d9 100644 --- a/contrib/hbtip/tests/dbtohtml/dbtohtml.prg +++ b/contrib/hbtip/tests/dbtohtml/dbtohtml.prg @@ -299,20 +299,21 @@ PROCEDURE Main() ctip_HtmlToStr:=tip_HtmlToStr( oDoc:body:main:getText() ) - WAIT - ? ctip_HtmlToStr - hb_Memowrit("address.HtmlToStr.txt",ctip_HtmlToStr) + IF hb_Memowrit("address.HtmlToStr.txt",ctip_HtmlToStr) + ? "File created:", "address.HtmlToStr.txt" + ENDIF hb_run( "address.html" ) while .T. - nOption := Alert( "Do you want to delete the address.html file?", { "YES" , "NO" } ) + nOption := Alert( "Do you want to delete the address.html and address.HtmlToStr.txt files?", { "YES" , "NO" } ) switch nOption case 0 case 2 exit case 1 hb_vfErase( "address.html" ) + hb_vfErase( "address.HtmlToStr.txt" ) exit end switch if (nOption>=1) diff --git a/contrib/hbtip/thtml.prg b/contrib/hbtip/thtml.prg index c5ed78e197..9a0dc00588 100644 --- a/contrib/hbtip/thtml.prg +++ b/contrib/hbtip/thtml.prg @@ -49,6 +49,8 @@ #include "hbclass.ch" #include "thtml.ch" +#DEFINE THTML_HB_EOL "__THTML_HB_EOL__" + // A Html document can have more than 16 nesting levels. // The current implementation of FOR EACH is not suitable for the HTML classes @@ -86,7 +88,6 @@ THREAD STATIC t_aHA // data for HTML attributes THREAD STATIC t_aHAAria // data for HTML Aria attributes THREAD STATIC t_hHT // data for HTML tags THREAD STATIC t_aGlbAttr // data for Global HTML attributes -THREAD STATIC t_cHB_EOL THREAD STATIC t_cHtmlCP := "" THREAD STATIC t_aHtmlUnicEntities // HTML character entities THREAD STATIC t_cHtmlUnicChars @@ -132,11 +133,7 @@ METHOD new( cHtmlString ) CLASS THtmlDocument LOCAL oSubNode, oErrNode, aHead, aBody, nMode := 0 LOCAL cEmptyHtmlDoc - - if t_cHB_EOL==NIL - t_cHB_EOL:=hb_eol() - endif - + #pragma __cstream | cEmptyHtmlDoc:=%s @@ -151,7 +148,8 @@ METHOD new( cHtmlString ) CLASS THtmlDocument #pragma __endtext - cEmptyHtmlDoc+=t_cHB_EOL + cEmptyHtmlDoc:=strTran(cEmptyHtmlDoc,CHR(10),"") + cEmptyHtmlDoc+=hb_eol() IF !HB_ISSTRING( cHtmlString ) ::root := THtmlNode():new( cEmptyHtmlDoc ) @@ -585,6 +583,7 @@ CREATE CLASS THtmlNode MODULE FRIENDLY ACCESS document() INLINE iif( ::root == NIL, NIL, ::root:_document ) METHOD toString( nIndent , nIncIndent ) + METHOD __toString( nIndent , nIncIndent ) METHOD attrToString() METHOD collect( oEndNode ) @@ -1039,12 +1038,41 @@ METHOD prevNode() CLASS THtmlNode // creates HTML code for this node METHOD toString( nIndent , nIncIndent ) CLASS THtmlNode + + LOCAL cHtml + + hb_default( @nIndent, -4 ) + hb_default( @nIncIndent, 4 ) + + cHtml := ::__toString( nIndent , nIncIndent ) + + //TODO: Workaround until reviewing the logic of the tags + cHtml:=strTran(cHtml,"","","-->") + cHtml:=strTran(cHtml,"","-->") + cHtml:=strTran(cHtml,"-->-->","-->") + cHtml:=strTran(cHtml,"","-->") + + //TODO: Workaround until reviewing the logic of the EOL + while " "+THTML_HB_EOL$cHtml + cHtml:=strTran(cHtml," "+THTML_HB_EOL,THTML_HB_EOL) + end while + while THTML_HB_EOL+THTML_HB_EOL$cHtml + cHtml:=strTran(cHtml,THTML_HB_EOL+THTML_HB_EOL,THTML_HB_EOL) + end while + + cHtml:=strTran(cHtml,THTML_HB_EOL,hb_eol()) + + RETURN(cHtml) + +METHOD __toString( nIndent , nIncIndent ) CLASS THtmlNode LOCAL cIndent, cHtml := "", oNode IF ::htmlTagName == "_text_" // a leaf has no child nodes - RETURN ::htmlContent + cHtml += ::htmlContent + RETURN cHtml ENDIF hb_default( @nIndent, -4 ) @@ -1057,7 +1085,7 @@ METHOD toString( nIndent , nIncIndent ) CLASS THtmlNode IF ! ::isInline() .OR. ::htmlTagName == "!--" cHtml += cIndent ELSEIF ::keepFormatting() - cHtml += t_cHB_EOL + cHtml += THTML_HB_EOL ENDIF cHtml += "<" + ::htmlTagName + ::attrToString() @@ -1070,9 +1098,9 @@ METHOD toString( nIndent , nIncIndent ) CLASS THtmlNode FOR EACH oNode IN ::htmlContent IF ! oNode:isInline() .OR. oNode:htmlTagName == "!--" - cHtml += t_cHB_EOL + cHtml += THTML_HB_EOL ENDIF - cHtml += oNode:toString( nIndent + nIncIndent ) + cHtml += oNode:__toString( nIndent + nIncIndent ) NEXT ELSEIF HB_ISSTRING( ::htmlContent ) @@ -1083,20 +1111,14 @@ METHOD toString( nIndent , nIncIndent ) CLASS THtmlNode IF ::isInline() .OR. ::keepFormatting() .OR. ::isType( CM_HEADING ) .OR. ::isType( CM_HEAD ) RETURN cHtml += iif( ::htmlEndTagName == "/", " />", "<" + ::htmlEndTagName + ">" ) ENDIF - IF ! Right( cHtml, Len( t_cHB_EOL ) ) == t_cHB_EOL - cHtml += t_cHB_EOL + IF ! Right( cHtml, Len( THTML_HB_EOL ) ) == THTML_HB_EOL + cHtml += THTML_HB_EOL ENDIF RETURN cHtml += cIndent + iif( ::htmlEndTagName == "/", " />", "<" + ::htmlEndTagName + ">" ) ELSEIF ::htmlTagName $ "!--,br" - RETURN cHtml += t_cHB_EOL + cIndent + RETURN cHtml += THTML_HB_EOL + cIndent ENDIF - //TODO: Workaround until reviewing the logic of the tags - cHtml:=strTran(cHtml,"","","-->") - cHtml:=strTran(cHtml,"","-->") - cHtml:=strTran(cHtml,"-->-->","-->") - RETURN cHtml // Builds the attribute string @@ -1208,10 +1230,11 @@ STATIC FUNCTION __CollectTags( oTHtmlNode, stack, oEndNode ) // Retrieves the textual content of a node METHOD getText( cEOL ) CLASS THtmlNode + LOCAL cCHR9 := Chr( 9 ) LOCAL cText := "" LOCAL oNode - hb_default( @cEOL, t_cHB_EOL ) + hb_default( @cEOL, hb_eol() ) IF ::htmlTagName == "_text_" RETURN RTrim( ::htmlContent ) + cEOL @@ -1221,7 +1244,7 @@ METHOD getText( cEOL ) CLASS THtmlNode cText += oNode:getText( cEOL ) IF Lower( ::htmlTagName ) $ "td,th" .AND. hb_AScan( ::parent:htmlContent, Self,,, .T. ) < Len( ::parent:htmlContent ) // leave table rows in one line, cells separated by Tab - cText := hb_StrShrink( cText, Len( cEOL ) ) + Chr( 9 ) + cText := hb_StrShrink( cText, Len( cEOL ) ) + cCHR9 ENDIF NEXT diff --git a/contrib/hbtip/thtml/thtml.hbx b/contrib/hbtip/thtml/thtml.hbx new file mode 100644 index 0000000000..ee1717ddf6 --- /dev/null +++ b/contrib/hbtip/thtml/thtml.hbx @@ -0,0 +1,62 @@ +/* -------------------------------------------------------------------- + * NOTE: You can add manual override which functions to include or + * exclude from automatically generated EXTERNAL/DYNAMIC list. + * Syntax: // HB_FUNC_INCLUDE + * // HB_FUNC_EXCLUDE + */ + +/* -------------------------------------------------------------------- + * WARNING: Automatically generated code below. DO NOT EDIT! (except casing) + * Regenerate using hbmk2 '-hbx=' option. + */ + +#ifndef __HBEXTERN_CH__THTML__ +#define __HBEXTERN_CH__THTML__ + +#if defined( __HBEXTREQ__ ) .OR. defined( __HBEXTERN__THTML__ANNOUNCE ) + ANNOUNCE __HBEXTERN__THTML__ +#endif + +#if defined( __HBEXTREQ__ ) .OR. defined( __HBEXTERN__THTML__REQUEST ) + #command DYNAMIC => EXTERNAL +#endif + +DYNAMIC THtmlCleanup +DYNAMIC THtmlDocument +DYNAMIC THtmlInit +DYNAMIC THtmlIsValid +DYNAMIC THtmlIterator +DYNAMIC THtmlIteratorRegex +DYNAMIC THtmlIteratorScan +DYNAMIC THtmlNode +DYNAMIC THtmlTagType +DYNAMIC TIPCgi +DYNAMIC TIPClient +DYNAMIC TIPClientFTP +DYNAMIC TIPClientHTTP +DYNAMIC TIPClientPOP +DYNAMIC TIPClientSMTP +DYNAMIC TIPEncoder +DYNAMIC TIPEncoderBase64 +DYNAMIC TIPEncoderQP +DYNAMIC TIPEncoderUrl +DYNAMIC TIPLog +DYNAMIC TIPMail +DYNAMIC tip_base64DecodeUrl +DYNAMIC tip_base64EncodeUrl +DYNAMIC tip_CheckSID +DYNAMIC tip_CRLF +DYNAMIC tip_DateToGMT +DYNAMIC tip_GenerateSID +DYNAMIC tip_GetEncoder +DYNAMIC tip_GetNameEmail +DYNAMIC tip_GetRawEmail +DYNAMIC tip_HtmlSpecialChars +DYNAMIC tip_HtmlToStr +DYNAMIC tip_StrToHtml + +#if defined( __HBEXTREQ__ ) .OR. defined( __HBEXTERN__THTML__REQUEST ) + #uncommand DYNAMIC => EXTERNAL +#endif + +#endif