📄 bithtmldtd.c
字号:
#include "BitHtml.h"#define HTML_ENTITY(_name, _value) {#_name,_value},BitEntity gHTMLEntity[101]={HTML_ENTITY(quot , 34)HTML_ENTITY(amp , 38)HTML_ENTITY(lt , 60)HTML_ENTITY(gt , 62)HTML_ENTITY(nbsp , 160)HTML_ENTITY(iexcl, 161)HTML_ENTITY(cent , 162)HTML_ENTITY(pound, 163)HTML_ENTITY(curren, 164)HTML_ENTITY(yen , 165)HTML_ENTITY(brvbar, 166)HTML_ENTITY(sect , 167)HTML_ENTITY(uml , 168)HTML_ENTITY(copy , 169)HTML_ENTITY(ordf , 170)HTML_ENTITY(laquo, 171)HTML_ENTITY(not , 172)HTML_ENTITY(shy , 173)HTML_ENTITY(reg , 174)HTML_ENTITY(macr , 175)HTML_ENTITY(deg , 176)HTML_ENTITY(plusmn, 177)HTML_ENTITY(sup2 , 178)HTML_ENTITY(sup3 , 179)HTML_ENTITY(acute, 180)HTML_ENTITY(micro, 181)HTML_ENTITY(para , 182)HTML_ENTITY(middot, 183)HTML_ENTITY(cedil, 184)HTML_ENTITY(sup1 , 185)HTML_ENTITY(ordm, 186)HTML_ENTITY(raquo, 187)HTML_ENTITY(frac14, 188)HTML_ENTITY(frac12, 189)HTML_ENTITY(frac34, 190)HTML_ENTITY(iquest, 191)HTML_ENTITY(Agrave, 192)HTML_ENTITY(Aacute, 193)HTML_ENTITY(Acirc, 194)HTML_ENTITY(Atilde, 195)HTML_ENTITY(Auml, 196)HTML_ENTITY(Aring, 197)HTML_ENTITY(AElig, 198)HTML_ENTITY(Ccedil, 199)HTML_ENTITY(Egrave, 200)HTML_ENTITY(Eacute, 201)HTML_ENTITY(Ecirc, 202)HTML_ENTITY(Euml, 203)HTML_ENTITY(Igrave, 204)HTML_ENTITY(Iacute, 205)HTML_ENTITY(Icirc, 206)HTML_ENTITY(Iuml, 207)HTML_ENTITY(ETH, 208)HTML_ENTITY(Ntilde, 209)HTML_ENTITY(Ograve, 210)HTML_ENTITY(Oacute, 211)HTML_ENTITY(Ocirc, 212)HTML_ENTITY(Otilde, 213)HTML_ENTITY(Ouml, 214)HTML_ENTITY(times, 215)HTML_ENTITY(Oslash, 216)HTML_ENTITY(Ugrave, 217)HTML_ENTITY(Uacute, 218)HTML_ENTITY(Ucirc, 219)HTML_ENTITY(Uuml, 220)HTML_ENTITY(Yacute, 221)HTML_ENTITY(THORN, 222)HTML_ENTITY(szlig, 223)HTML_ENTITY(agrave, 224)HTML_ENTITY(aacute, 225)HTML_ENTITY(acirc, 226)HTML_ENTITY(atilde, 227)HTML_ENTITY(auml, 228)HTML_ENTITY(aring, 229)HTML_ENTITY(aelig, 230)HTML_ENTITY(ccedil, 231)HTML_ENTITY(egrave, 232)HTML_ENTITY(eacute, 233)HTML_ENTITY(ecirc, 234)HTML_ENTITY(euml, 235)HTML_ENTITY(igrave, 236)HTML_ENTITY(iacute, 237)HTML_ENTITY(icirc, 238)HTML_ENTITY(iuml, 239)HTML_ENTITY(eth, 240)HTML_ENTITY(ntilde, 241)HTML_ENTITY(ograve, 242)HTML_ENTITY(oacute, 243)HTML_ENTITY(ocirc, 244)HTML_ENTITY(otilde, 245)HTML_ENTITY(ouml, 246)HTML_ENTITY(divide, 247)HTML_ENTITY(oslash, 248)HTML_ENTITY(ugrave, 249)HTML_ENTITY(uacute, 250)HTML_ENTITY(ucirc, 251)HTML_ENTITY(uuml, 252)HTML_ENTITY(yacute, 253)HTML_ENTITY(thorn, 254)HTML_ENTITY(yuml, 255){0}};#undef HTML_ENTITY/*** ELEMENTS** Must match definitions in HTMLPDBit.html!** Must be in alphabetical order.**Name ID */#define HTML_TAG(t) { #t,HTML_##t }BitTag gHTMLTags[HTML_ELEMENTS+1] = { HTML_TAG(A), HTML_TAG(ABBREV), HTML_TAG(ACRONYM), HTML_TAG(ADDRESS), HTML_TAG(APPLET), HTML_TAG(AREA), HTML_TAG(AU), HTML_TAG(AUTHOR), HTML_TAG(B), HTML_TAG(BANNER), HTML_TAG(BASE), HTML_TAG(BASEFONT), HTML_TAG(BDO), HTML_TAG(BGSOUND), HTML_TAG(BIG), HTML_TAG(BLINK), HTML_TAG(BLOCKQUOTE), HTML_TAG(BODY), HTML_TAG(BODYTEXT), HTML_TAG(BQ), HTML_TAG(BR), HTML_TAG(BUTTON), HTML_TAG(CAPTION), HTML_TAG(CENTER), HTML_TAG(CITE), HTML_TAG(CODE), HTML_TAG(COL), HTML_TAG(COLGROUP), HTML_TAG(COMMENT), HTML_TAG(CREDIT), HTML_TAG(DD), HTML_TAG(DEL), HTML_TAG(DFN), HTML_TAG(DIR), HTML_TAG(DIV), HTML_TAG(DL), HTML_TAG(DLC), HTML_TAG(DT), HTML_TAG(EM), HTML_TAG(EMBED), HTML_TAG(FIELDSET), HTML_TAG(FIG), HTML_TAG(FN), HTML_TAG(FONT), HTML_TAG(FORM), HTML_TAG(FRAME), HTML_TAG(FRAMESET), HTML_TAG(H1), HTML_TAG(H2), HTML_TAG(H3), HTML_TAG(H4), HTML_TAG(H5), HTML_TAG(H6), HTML_TAG(HEAD), HTML_TAG(HR), HTML_TAG(HTML), HTML_TAG(HY), HTML_TAG(I), HTML_TAG(IFRAME), HTML_TAG(IMG), HTML_TAG(INPUT), HTML_TAG(INS), HTML_TAG(ISINDEX), HTML_TAG(KBD), HTML_TAG(KEYGEN), HTML_TAG(LABEL), HTML_TAG(LEGEND), HTML_TAG(LH), HTML_TAG(LI), HTML_TAG(LINK), HTML_TAG(LISTING), HTML_TAG(MAP), HTML_TAG(MARQUEE), HTML_TAG(MATH), HTML_TAG(MENU), HTML_TAG(META), HTML_TAG(NEXTID), HTML_TAG(NOFRAMES), HTML_TAG(NOTE), HTML_TAG(OBJECT), HTML_TAG(OL), HTML_TAG(OPTION), HTML_TAG(OVERLAY), HTML_TAG(P), HTML_TAG(PARAM), HTML_TAG(PLAINTEXT), HTML_TAG(PRE), HTML_TAG(Q), HTML_TAG(S), HTML_TAG(SAMP), HTML_TAG(SCRIPT), HTML_TAG(SELECT), HTML_TAG(SHY), HTML_TAG(SMALL), HTML_TAG(SPAN), HTML_TAG(SPOT), HTML_TAG(STRIKE), HTML_TAG(STRONG), HTML_TAG(STYLE), HTML_TAG(SUB), HTML_TAG(SUP), HTML_TAG(TAB), HTML_TAG(TABLE), HTML_TAG(TBODY), HTML_TAG(TD), HTML_TAG(TEXTAREA), HTML_TAG(TEXTFLOW), HTML_TAG(TFOOT), HTML_TAG(TH), HTML_TAG(THEAD), HTML_TAG(TITLE), HTML_TAG(TR), HTML_TAG(TT), HTML_TAG(U), HTML_TAG(UL), HTML_TAG(VAR), HTML_TAG(WBR), HTML_TAG(XMP), //additional tag HTML_TAG(TEXT), /* old TDXML HTML_TAG(A) , HTML_TAG(AREA) , HTML_TAG(B) , HTML_TAG(BODY) , HTML_TAG(BR) , HTML_TAG(BUTTON) , HTML_TAG(COMMENT), HTML_TAG(FONT), HTML_TAG(GROUP) , HTML_TAG(HEAD) , HTML_TAG(I), HTML_TAG(IFRAME), HTML_TAG(IMG), HTML_TAG(INPUT), HTML_TAG(LABEL), HTML_TAG(MAP), HTML_TAG(META), HTML_TAG(P) , HTML_TAG(SCRIPT), HTML_TAG(SCROLL), HTML_TAG(STRIKE), HTML_TAG(SUB), HTML_TAG(SUP), HTML_TAG(TEXT), HTML_TAG(TEXTAREA), HTML_TAG(TITLE), HTML_TAG(U) , HTML_TAG(VAR), //HTML_TAG(VIDEO), //below add by me HTML_TAG(TABLE), HTML_TAG(TR), HTML_TAG(TD), HTML_TAG(TH), HTML_TAG(TBODY), */ //{ #t,HTML_##t } { "HTML", HTML_HTML},};#ifdef HTML_ATTR#undef HTML_ATTR#endif#define HTML_ATTR(a) { #a,HTML_ATTR_##a } BitTag gHTMLAttr[HTML_ATTR_ATTRIBUTES] = { HTML_ATTR(ACCESSKEY), HTML_ATTR(ALIGN), HTML_ATTR(ALPHA), HTML_ATTR(ALT), HTML_ATTR(BKCOLOR), HTML_ATTR(BKSOUND), HTML_ATTR(BORDER), HTML_ATTR(CHARSET) , HTML_ATTR(CLASS), HTML_ATTR(COLOR), HTML_ATTR(COLORKEY), HTML_ATTR(COLS), HTML_ATTR(COORDS), HTML_ATTR(DEFER), HTML_ATTR(DISABLED), HTML_ATTR(END), HTML_ATTR(EXTER), HTML_ATTR(HREF), HTML_ATTR(HREFLANG), HTML_ATTR(HTTP_EQUIV), /* { "HTTP-EQUIV" ) */ HTML_ATTR(ID), HTML_ATTR(ISMAP), HTML_ATTR(LANG), HTML_ATTR(MARGINHEIGHT), HTML_ATTR(MARGINWIDTH), HTML_ATTR(NAME), HTML_ATTR(NOHREF), HTML_ATTR(NORESIZE), HTML_ATTR(ONBLUR), HTML_ATTR(ONDBCLICK), HTML_ATTR(ONFOCUS), HTML_ATTR(ONMOUSEDOWN), HTML_ATTR(ONMOUSEMOVE), HTML_ATTR(ONMOUSEOVER), HTML_ATTR(ONMOUSEOUT), HTML_ATTR(ONMOUSEUP), HTML_ATTR(ONKEYDOWN), HTML_ATTR(ONKEYUP), HTML_ATTR(PROFILE), HTML_ATTR(READONLY), HTML_ATTR(ROWS), HTML_ATTR(SCHEME), HTML_ATTR(SHAPE), HTML_ATTR(SCROLLING), HTML_ATTR(SIZE), HTML_ATTR(SRC), HTML_ATTR(SRCDOWN), HTML_ATTR(SRCOVER), HTML_ATTR(START), HTML_ATTR(STYLE), HTML_ATTR(TARGET), HTML_ATTR(TITLE), HTML_ATTR(TYPE), HTML_ATTR(USRMAP), HTML_ATTR(VALUE), HTML_ATTR(VERSION), HTML_ATTR(ZORDER), // below add by me HTML_ATTR(ACTION), HTML_ATTR(BACKGROUND), HTML_ATTR(BGCOLOR), HTML_ATTR(CELLPADDING), HTML_ATTR(CELLSPACING), HTML_ATTR(HEIGHT), HTML_ATTR(LINK), HTML_ATTR(TOPMARGIN), HTML_ATTR(VALIGN), HTML_ATTR(VLINK), HTML_ATTR(WIDTH),};/*JSHashTable* gHTMLTagHashTable=NULL,*gHTMLAttrHashTable=NULL;int BitHTML_InitHashTable(){ int i; gHTMLTagHashTable=JS_NewHashTable(HTML_ELEMENTS,NULL,NULL,NULL,NULL,NULL); gHTMLAttrHashTable=JS_NewHashTable(HTML_ELEMENTS,NULL,NULL,NULL,NULL,NULL); if(!gHTMLTagHashTable || !gHTMLAttrHashTable) return BitFALSE; for(i=0;i<HTML_ELEMENTS;i++) { JS_HashTableAdd(gHTMLTagHashTable,gHTMLTags[i].name,(void*)gHTMLTags[i].id); } for(i=0;i<HTML_ATTR_ATTRIBUTES;i++) { JS_HashTableAdd(gHTMLAttrHashTable,gHTMLAttr[i].name,(void*)gHTMLAttr[i].id); } return BitTRUE;}*/int BitHTML_GetTagID(char *pName){ int i; BitTag *ct; if(!pName) return 0; for (i = 0; i<HTML_ELEMENTS; i++) { ct =&gHTMLTags[i]; if(stricmp(pName,ct->name)==0) return i; } return -1;}int BitHTML_GetAtrID(char *pName){ int i; BitTag *ct; if(!pName) return 0; for (i = 0; i<HTML_ATTR_ATTRIBUTES; i++) { ct =&gHTMLAttr[i]; if(stricmp(pName,ct->name)==0) return i; } return -1;}char *BitHTML_GetTagName(int id){ if(id>=0 && id< HTML_ELEMENTS) return gHTMLTags[id].name; return NULL;}char * BitHTML_GetAtrName(int id){ if(id>=0 && id< HTML_ATTR_ATTRIBUTES) return gHTMLAttr[id].name; return NULL;}/*typedef struct BitTagList { BitHTML_GET_ID fGetTagID; BitHTML_GET_NAME fGetTagName; BitHTML_GET_ID fGetAtrID; BitHTML_GET_NAME fGetAtrName; int mEntityCount; BitPEntity pEntity; int nComment; char* pCommentEnd; int nPlainText;}BitTagList,*BitPTagList;*/BitTagList gHTMLTagList={BitHTML_GetTagID,BitHTML_GetTagName, BitHTML_GetAtrID,BitHTML_GetAtrName, 100,gHTMLEntity, HTML_COMMENT,"-->",HTML_TEXT};BitPTagList Bit_GetHTMLTagList(){ return &gHTMLTagList;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -