123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632 |
- {
- $Id: htmldefs.pp,v 1.2 2006/01/03 23:33:23 lukvdl Exp $
- This file is part of the Free Component Library
- HTML definitions and utility functions
- Copyright (c) 2000-2002 by
- Areca Systems GmbH / Sebastian Guenther, [email protected]
- See the file COPYING.FPC, included in this distribution,
- for details about the copyright.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- **********************************************************************}
- unit HTMLDefs;
- {$MODE objfpc}
- {$H+}
- interface
- type
- THTMLCData = string;
- THTMLID = string;
- THTMLName = string;
- THTMLIDRef = string;
- THTMLIDRefs = string;
- THTMLNumber = longint;
- THTMLText = THTMLCData;
- THTMLCharsets = THTMLCData;
- THTMLContentTypes = THTMLCData;
- THTMLURI = string;
- THTMLCharacter = char;
- THTMLDir = (dirEmpty,dirLeftToRight,dirRightToLeft);
- THTMLalign = (alEmpty,alleft,alcenter,alright,aljustify,alchar);
- THTMLvalign = (vaEmpty,vatop,vamiddle,vabottom,vabaseline);
- THTMLframe = (frEmpty,frvoid,frabove,frbelow,frhsides,frvsides,frlefthandsise,frrighthandside,frbox,frborder);
- THTMLrules = (ruEmpty,runone,rugroups,rurows,rucols,ruall);
- THTMLvaluetype = (vtEmpty,vtdata,vtref,vtobject);
- THTMLshape = (shEmpty,shdefault,shrect,shcircle,shpoly);
- THTMLinputtype = (itEmpty,ittext,itpassword,itcheckbox,itradio,itsubmit,itreset,itfile,ithidden,itimage,itbutton);
- THTMLbuttontype = (btEmpty,btsubmit,btreset,btbutton);
- THTMLColor = (
- clHTMLBlack, clHTMLSilver, clHTMLGray, clHTMLWhite, clHTMLMaroon,
- // #000000 #C0C0C0 #808080 #FFFFFF #800000
- clHTMLRed, clHTMLPurple, clHTMLFuchsia,clHTMLGreen, clHTMLLime, clHTMLOlive,
- // #FF0000 #800080 #FF00FF #008000 #00FF00 #808000
- clHTMLYellow,clHTMLNavy, clHTMLBlue, clHTMLTeal, clHTMLAqua
- // #FFFF00 #000080 #0000FF #008080 #00FFFF
- );
- THTMLAttributeTag = (
- atabbr, atacceptcharset, ataccept, ataccesskey, ataction, atalign, atalt, atarchive,
- ataxis, atborder, atcellpadding, atcellspacing, atchar, atcharoff, atcharset,
- atchecked, atcite, atclass, atclassid, atcodebase, atcodetype, atcols,
- atcolspan, atcontent, atcoords, atdata, atdatetime, atdeclare,atdefer,
- atdir, atdisabled, atenctype, atfor, atframe, atframeborder, atheaders,
- atheight, athref, athreflang, athttpequiv, atid, atismap, atlabel, atlang,
- atlongdesc, atmarginheight, atmarginwidth, atmaxlength, atmedia, atmethod,
- atmultiple, atname, atnohref, atnoresize, atonblur, atonchange, atonclick,
- atondblclick, atonfocus, atonkeydown, atonkeypress, atonkeyup, atonload,
- atonmousedown, atonmousemove, atonmouseout, atonmouseover, atonmouseup,
- atonreset, atonselect, atonsubmit, atonunload, atprofile, atreadonly,
- atrel, atrev, atrows, atrowspan, atrules, atscheme, atscope, atscrolling,
- atselected, atshape, atsize, atspan, atsrc, atstandby, atstyle, atsummary,
- attabindex, attarget, attitle, attype, atusemap, atvalign, atvalue,
- atvaluetype, atwidth
- );
- THTMLAttributeSet = set of THTMLAttributeTag;
- THTMLElementTag = (
- eta, etabbr, etacronym, etaddress, etapplet, etarea, etb, etbase,
- etbasefont, etbdo, etbig, etblockquote, etbody, etbr, etbutton,
- etcaption, etcenter, etcite, etcode, etcol, etcolgroup, etdd, etdel,
- etdfn, etdir, etdiv, etdl, etdt, etem, etfieldset, etfont, etform,
- etframe, etframeset, eth1, eth2, eth3, eth4, eth5, eth6, ethead, ethr,
- ethtml, eti, etiframe, etimg, etinput, etins, etisindex, etkbd, etlabel,
- etlegend, etli, etlink, etmap, etmenu, etmeta, etnoframes, etnoscript,
- etobject, etol, etoptgroup, etoption, etp, etparam, etpre, etq, ets,
- etsamp, etscript, etselect, etsmall, etspan, etstrike, etstrong,
- etstyle, etsub, etsup, ettable, ettbody, ettd, ettextarea, ettfoot,
- etth, etthead, ettitle, ettr, ettt, etu, etul, etvar,
- etText, etUnknown
- );
- THTMLElementTagSet = set of THTMLElementTag;
- THTMLElementFlag = (
- efSubelementContent, // may have subelements
- efPCDATAContent, // may have PCDATA content
- efPreserveWhitespace, // preserve all whitespace
- efDeprecated, // can be dropped in future versions
- efNoChecks // Checks (attributes,subtags,...) can only be implemented in descendants
- );
- THTMLElementFlags = set of THTMLElementFlag;
- PHTMLElementProps = ^THTMLElementProps;
- THTMLElementProps = record
- Name: String;
- Flags: THTMLElementFlags;
- Attributes: THTMLAttributeSet;
- end;
- const
- BooleanAttributes = [atchecked,atdeclare,atdefer,atdisabled,atnohref,atnoresize,
- atmultiple,atreadonly,atselected];
- efSubcontent = [efSubelementContent, efPCDATAContent];
- atsi18n = [atlang, atdir];
- atscoreattrs = [atid,atclass,atstyle,attitle];
- atsevents = [atonclick,atondblclick,atonmousedown,atonmouseup,atonmouseover,
- atonmousemove,atonmouseout,atonkeypress,atonkeydown,atonkeyup];
- atsattrs = atsevents + atscoreattrs + atsi18n;
- atscellhalign = [atalign, atchar, atcharoff];
- { etsStructured := [];
- etsDivisions := [];
- etsLists := [];
- etsLinks := [];
- etsObjects := [etImg, etObject, etApplet, etMap, etArea];
- etsForms := [etForm];
- etsText = etsStructured + etsDivisions + etsLists + etsLinks + etsObjects +
- etsForms +
- etTable + etText + etScript + ; }
- HTMLElementProps: array[THTMLElementTag] of THTMLElementProps = (
- (Name: 'a'; Flags: efSubcontent;
- Attributes: atsattrs+[atcharset,attype,atname,athref,athreflang,atrel,atrev,
- ataccesskey,atshape,atcoords,attabindex,atonfocus,atonblur]),
- (Name: 'abbr'; Flags: efSubcontent; Attributes: atsattrs),
- (Name: 'acronym'; Flags: efSubcontent; Attributes: atsattrs),
- (Name: 'address'; Flags: efSubcontent; Attributes: atsattrs),
- (Name: 'applet'; Flags: efSubcontent+[efDeprecated];
- Attributes: atscoreattrs+[atcodebase,atarchive,atalt,atname,atwidth,atheight]),
- (Name: 'area'; Flags: [];
- Attributes: atsattrs+[atshape,atcoords,athref,atnohref,atalt,attabindex,
- ataccesskey,atonfocus,atonblur]),
- (Name: 'b'; Flags: efSubcontent; Attributes: atsattrs),
- (Name: 'base'; Flags: []; Attributes: [athref]),
- (Name: 'basefont'; Flags: [efDeprecated]; Attributes: [atid]),
- (Name: 'bdo'; Flags: efSubcontent; Attributes: atscoreattrs+[atlang,atdir]),
- (Name: 'big'; Flags: efSubcontent; Attributes: atsattrs),
- (Name: 'blockquote';Flags: [efSubelementContent]; Attributes: atsattrs+[atcite]),
- (Name: 'body'; Flags: [efSubelementContent];
- Attributes: atsAttrs+[atonload, atonunload]),
- (Name: 'br'; Flags: []; Attributes: atscoreattrs),
- (Name: 'button'; Flags: efSubcontent;
- Attributes: atsattrs+[atname,atvalue,attype,atdisabled,attabindex,
- ataccesskey,atonfocus,atonblur]),
- (Name: 'caption'; Flags: efSubcontent; Attributes: atsattrs),
- (Name: 'center'; Flags: [efSubelementContent,efDeprecated]; Attributes: []),
- (Name: 'cite'; Flags: efSubcontent; Attributes: atsattrs),
- (Name: 'code'; Flags: efSubcontent; Attributes: atsattrs),
- (Name: 'col'; Flags: [];
- Attributes: atsattrs+atscellhalign+[atvalign,atspan,atwidth]),
- (Name: 'colgroup'; Flags: [efSubelementContent];
- Attributes: atsattrs+atscellhalign+[atvalign,atspan,atwidth]),
- (Name: 'dd'; Flags: efSubcontent; Attributes: atsattrs),
- (Name: 'del'; Flags: [efSubelementContent]; Attributes: atsattrs+[atcite,atdatetime]),
- (Name: 'dfn'; Flags: efSubcontent; Attributes: atsattrs),
- (Name: 'dir'; Flags: [efSubelementContent,efDeprecated]; Attributes: atsattrs),
- (Name: 'div'; Flags: [efSubelementContent]; Attributes: atsattrs),
- (Name: 'dl'; Flags: [efSubelementContent]; Attributes: atsattrs),
- (Name: 'dt'; Flags: [efPCDataContent]; Attributes: atsattrs),
- (Name: 'em'; Flags: efSubcontent; Attributes: atsattrs),
- (Name: 'fieldset'; Flags: efSubcontent; Attributes: atsattrs),
- (Name: 'font'; Flags: efSubcontent+[efDeprecated]; Attributes: atscoreattrs+atsi18n),
- (Name: 'form'; Flags: [efSubelementContent];
- Attributes: atsattrs+[ataction,atmethod,atenctype,atonsubmit,atonreset,atacceptcharset]),
- (Name: 'frame'; Flags: [];
- Attributes: atscoreattrs+[atlongdesc,atname,atsrc,atframeborder,
- atmarginwidth,atmarginheight,atnoresize,atscrolling]),
- (Name: 'frameset'; Flags: efSubcontent;
- Attributes: atsCoreattrs+[atrows,atcols,atonload,atonunload]),
- (Name: 'h1'; Flags: efSubcontent; Attributes: atsattrs),
- (Name: 'h2'; Flags: efSubcontent; Attributes: atsattrs),
- (Name: 'h3'; Flags: efSubcontent; Attributes: atsattrs),
- (Name: 'h4'; Flags: efSubcontent; Attributes: atsattrs),
- (Name: 'h5'; Flags: efSubcontent; Attributes: atsattrs),
- (Name: 'h6'; Flags: efSubcontent; Attributes: atsattrs),
- (Name: 'head'; Flags: [efSubelementContent]; Attributes: atsi18n+[atprofile]),
- (Name: 'hr'; Flags: []; Attributes: atscoreattrs+atsevents),
- (Name: 'html'; Flags: [efSubelementContent]; Attributes: atsi18n),
- (Name: 'i'; Flags: efSubcontent; Attributes: atsattrs),
- (Name: 'iframe'; Flags: [efSubelementContent];
- Attributes: atscoreattrs+[atlongdesc,atname,atsrc,atframeborder,atmarginwidth,
- atmarginheight,atscrolling,atalign,atheight,atwidth]),
- (Name: 'img'; Flags: [];
- Attributes: atsattrs+[atsrc,atalt,atlongdesc,atheight,atwidth,atusemap,atismap]),
- (Name: 'input'; Flags: [];
- Attributes: atsattrs+[attype,atname,atvalue,atchecked,atdisabled,
- atreadonly,atsize,atmaxlength,atsrc,atalt,atusemap,attabindex,
- ataccesskey,atonfocus,atonblur,atonselect,atonchange,ataccept]),
- (Name: 'ins'; Flags: [efSubelementContent]; Attributes: atsattrs+[atcite,atdatetime]),
- (Name: 'isindex'; Flags: [efDeprecated]; Attributes: atscoreattrs+atsi18n),
- (Name: 'kbd'; Flags: efSubcontent; Attributes: atsattrs),
- (Name: 'label'; Flags: efSubcontent;
- Attributes: atsattrs+[atfor,ataccesskey,atonfocus,atonblur]),
- (Name: 'legend'; Flags: efSubcontent; Attributes: atsattrs+[ataccesskey]),
- (Name: 'li'; Flags: efSubcontent; Attributes: atsattrs),
- (Name: 'link'; Flags: [];
- Attributes: atsattrs+[atcharset,athref,athreflang,attype,atrel,atrev,atmedia]),
- (Name: 'map'; Flags: [efSubelementContent]; Attributes: atsattrs+[atname]),
- (Name: 'menu'; Flags: [efSubelementContent,efDeprecated]; Attributes: atsattrs),
- (Name: 'meta'; Flags: []; Attributes: atsi18n+[athttpequiv,atname,atcontent,atscheme]),
- (Name: 'noframes'; Flags: efSubcontent; Attributes: atsattrs),
- (Name: 'noscript'; Flags: efSubcontent; Attributes: atsattrs),
- (Name: 'object'; Flags: efSubcontent;
- Attributes: atsattrs+[atdeclare,atclassid,atcodebase,atdata,attype,atcodetype,
- atarchive,atstandby,atheight,atwidth,atusemap,atname,attabindex]),
- (Name: 'ol'; Flags: [efSubelementContent]; Attributes: atsattrs),
- (Name: 'optgroup'; Flags: efSubcontent; Attributes: atsattrs+[atdisabled,atlabel]),
- (Name: 'option'; Flags: efSubcontent;
- Attributes: atsattrs+[atselected,atdisabled,atlabel,atvalue]),
- (Name: 'p'; Flags: efSubcontent; Attributes: atsattrs),
- (Name: 'param'; Flags: []; Attributes: [atid,atname,atvalue,atvaluetype,attype]),
- (Name: 'pre'; Flags: efSubcontent + [efPreserveWhitespace]; Attributes: atsattrs),
- (Name: 'q'; Flags: efSubcontent; Attributes: atsattrs+[atcite]),
- (Name: 's'; Flags: efSubcontent+[efDeprecated]; Attributes: atsattrs),
- (Name: 'samp'; Flags: efSubcontent; Attributes: atsattrs),
- (Name: 'script'; Flags: [efPCDATAContent]; Attributes: [atcharset,attype,atsrc,atdefer]),
- (Name: 'select'; Flags: [efSubelementContent];
- Attributes: atsattrs+[atname,atsize,atmultiple,atdisabled,attabindex,atonfocus,
- atonblur,atonchange]),
- (Name: 'small'; Flags: efSubcontent; Attributes: atsattrs),
- (Name: 'span'; Flags: efSubcontent; Attributes: atsattrs),
- (Name: 'strike'; Flags: efSubcontent+[efDeprecated]; Attributes: atsattrs),
- (Name: 'strong'; Flags: efSubcontent; Attributes: atsattrs),
- (Name: 'style'; Flags: [efPCDATAContent];
- Attributes: atsi18n+[attype,atmedia,attitle]),
- (Name: 'sub'; Flags: efSubcontent; Attributes: atsattrs),
- (Name: 'sup'; Flags: efSubcontent; Attributes: atsattrs),
- (Name: 'table'; Flags: [efSubelementContent];
- Attributes: atsattrs+[atsummary,atwidth,atborder,atframe,atrules,atcellspacing,atcellpadding]),
- (Name: 'tbody'; Flags: [efSubelementContent]; Attributes: atsattrs+atscellhalign+[atvalign]),
- (Name: 'td'; Flags: efSubcontent;
- Attributes: atsattrs+atscellhalign+[atvalign,atabbr,ataxis,atheaders,atscope,atrowspan,atcolspan]),
- (Name: 'textarea'; Flags: [efPCDATAContent];
- Attributes: atsattrs+[atname,atrows,atcols,atdisabled,atreadonly,attabindex,
- ataccesskey,atonfocus,atonblur,atonselect,atonchange]),
- (Name: 'tfoot'; Flags: [efSubelementContent]; Attributes: atsattrs+atscellhalign+[atvalign]),
- (Name: 'th'; Flags: efSubcontent;
- Attributes: atsattrs+atscellhalign+[atvalign,atabbr,ataxis,atheaders,atscope,atrowspan,atcolspan]),
- (Name: 'thead'; Flags: [efSubelementContent]; Attributes: atsattrs+atscellhalign+[atvalign]),
- (Name: 'title'; Flags: efSubcontent; Attributes: atsi18n),
- (Name: 'tr'; Flags: [efSubelementContent];
- Attributes: atsattrs+atscellhalign+[atvalign]),
- (Name: 'tt'; Flags: efSubcontent; Attributes: atsattrs),
- (Name: 'u'; Flags: efSubcontent+[efDeprecated]; Attributes: atsattrs),
- (Name: 'ul'; Flags: [efSubelementContent]; Attributes: atsattrs),
- (Name: 'var'; Flags: efSubcontent; Attributes: atsattrs),
- (Name: 'text'; Flags: efSubcontent; Attributes: []),
- (Name: 'unknown'; Flags: efSubcontent+[efNoChecks]; Attributes: [])
- );
- HTMLAttributeTag : array [THTMLAttributeTag] of string = (
- 'abbr', 'accept-charset', 'accept', 'accesskey', 'action', 'align', 'alt', 'archive',
- 'axis', 'border', 'cellpadding', 'cellspacing', 'char', 'charoff', 'charset',
- 'checked', 'cite', 'class', 'classid', 'codebase', 'codetype', 'cols',
- 'colspan', 'content', 'coords', 'data', 'datetime', 'declare', 'defer',
- 'dir', 'disabled', 'enctype', 'for', 'frame', 'frameborder', 'headers',
- 'height', 'href', 'hreflang', 'http-equiv', 'id', 'ismap', 'label', 'lang',
- 'longdesc', 'marginheight', 'marginwidth', 'maxlength', 'media', 'method',
- 'multiple', 'name', 'nohref', 'noresize', 'onblur', 'onchange', 'onclick',
- 'ondblclick', 'onfocus', 'onkeydown', 'onkeypress', 'onkeyup', 'onload',
- 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup',
- 'onreset', 'onselect', 'onsubmit', 'onunload', 'profile', 'readonly',
- 'rel', 'rev', 'rows', 'rowspan', 'rules', 'scheme', 'scope', 'scrolling',
- 'selected', 'shape', 'size', 'span', 'src', 'standby', 'style', 'summary',
- 'tabindex', 'target', 'title', 'type', 'usemap', 'valign', 'value',
- 'valuetype', 'width');
- HTMLColor : array [THTMLColor] of string =
- ('Black', 'Silver', 'Gray', 'White', 'Maroon', 'Red', 'Purple', 'Fuchsia',
- 'Green', 'Lime', 'Olive', 'Yellow', 'Navy', 'Blue', 'Teal', 'Aqua');
- HTMLDir : array [THTMLDir] of string = ('','LTR','RTL');
- HTMLAlign : array [THTMLalign] of string = ('','left','center','right','justify','char');
- HTMLvalign : array [THTMLvalign] of string = ('','top','middle','bottom','baseline');
- HTMLframe : array [THTMLframe] of string =
- ('','void','above','below','hsides','vsides','lhs','rhs','box','border');
- HTMLrules : array [THTMLrules] of string = ('','none','groups','rows','cols','all');
- HTMLvaluetype : array [THTMLvaluetype] of string = ('','data','ref','object');
- HTMLshape : array [THTMLshape] of string = ('','default','rect','circle','poly');
- HTMLinputtype : array [THTMLinputtype] of string = ('','text','password','checkbox',
- 'radio','submit','reset','file','hidden','image','button');
- HTMLbuttontype : array [THTMLbuttontype] of string = ('','submit','reset','button');
- // ISO8859-1 mapping:
- HTMLEntities: array[#160..#255] of String = (
- // 160-191
- 'nbsp', 'iexcl', 'cent', 'pound', 'curren', 'yen', 'brvbar', 'sect',
- 'uml', 'copy', 'ordf', 'laquo', 'not', 'shy', 'reg', 'macr',
- 'deg', 'plusmn', 'sup2', 'sup3', 'acute', 'micro', 'para', 'middot',
- 'cedil', 'sup1', 'ordm', 'raquo', 'frac14', 'frac12', 'frac34', 'iquest',
- // 192-223
- 'Agrave', 'Aacute', 'Acirc', 'Atilde', 'Auml', 'Aring', 'AElig', 'Ccedil',
- 'Egrave', 'Eacute', 'Ecirc', 'Euml', 'Igrave', 'Iacute', 'Icirc', 'Iuml',
- 'ETH', 'Ntilde', 'Ograve', 'Oacute', 'Ocirc', 'Otilde', 'Ouml', 'times',
- 'Oslash', 'Ugrave', 'Uacute', 'Ucirc', 'Uuml', 'Yacute', 'THORN', 'szlig',
- // 224-255
- 'agrave', 'aacute', 'acirc', 'atilde', 'auml', 'aring', 'aelig', 'ccedil',
- 'egrave', 'eacute', 'ecirc', 'euml', 'igrave', 'iacute', 'icirc', 'iuml',
- 'eth', 'ntilde', 'ograve', 'oacute', 'ocirc', 'otilde', 'ouml', 'divide',
- 'oslash', 'ugrave', 'uacute', 'ucirc', 'uuml', 'yacute', 'thorn', 'yuml');
- UnicodeHTMLEntities: array[0..141] of String = (
- 'Alpha', // #913
- 'Beta', // #914
- 'Gamma', // #915
- 'Delta', // #916
- 'Epsilon', // #917
- 'Zeta', // #918
- 'Eta', // #919
- 'Theta', // #920
- 'Iota', // #921
- 'Kappa', // #922
- 'Lambda', // #923
- 'Mu', // #924
- 'Nu', // #925
- 'Xi', // #926
- 'Omicron', // #927
- 'Pi', // #928
- 'Rho', // #929
- 'Sigma', // #931
- 'Tau', // #932
- 'Upsilon', // #933
- 'Phi', // #934
- 'Chi', // #935
- 'Psi', // #936
- 'Omega', // #937
- 'alpha', // #945
- 'beta', // #946
- 'gamma', // #947
- 'delta', // #948
- 'epsilon', // #949
- 'zeta', // #950
- 'eta', // #951
- 'theta', // #952
- 'iota', // #953
- 'kappa', // #954
- 'lambda', // #955
- 'mu', // #956
- 'nu', // #957
- 'xi', // #958
- 'omicron', // #959
- 'pi', // #960
- 'rho', // #961
- 'sigmaf', // #962
- 'sigma', // #963
- 'tau', // #964
- 'upsilon', // #965
- 'phi', // #966
- 'chi', // #967
- 'psi', // #968
- 'omega', // #969
- 'thetasym', // #977
- 'upsih', // #978
- 'piv', // #982
- 'ensp', // #8194
- 'emsp', // #8195
- 'thinsp', // #8201
- 'zwnj', // #8204
- 'zwj', // #8205
- 'lrm', // #8206
- 'rlm', // #8207
- 'ndash', // #8211
- 'mdash', // #8212
- 'lsquo', // #8216
- 'rsquo', // #8217
- 'sbquo', // #8218
- 'ldquo', // #8220
- 'rdquo', // #8221
- 'bdquo', // #8222
- 'dagger', // #8224
- 'Dagger', // #8225
- 'bull', // #8226
- 'hellip', // #8230
- 'permil', // #8240
- 'prime', // #8242
- 'lsaquo', // #8249
- 'rsaquo', // #8250
- 'oline', // #8254
- 'frasl', // #8260
- 'image', // #8465
- 'weierp', // #8472
- 'real', // #8476
- 'trade', // #8482
- 'alefsym', // #8501
- 'larr', // #8592
- 'uarr', // #8593
- 'rarr', // #8594
- 'darr', // #8595
- 'harr', // #8596
- 'crarr', // #8629
- 'lArr', // #8656
- 'uArr', // #8657
- 'rArr', // #8658
- 'dArr', // #8659
- 'hArr', // #8660
- 'forall', // #8704
- 'part', // #8706
- 'exist', // #8707
- 'empty', // #8709
- 'nabla', // #8711
- 'isin', // #8712
- 'notin', // #8713
- 'ni', // #8715
- 'prod', // #8719
- 'sum', // #8721
- 'minus', // #8722
- 'lowast', // #8727
- 'radic', // #8730
- 'prop', // #8733
- 'infin', // #8734
- 'ang', // #8736
- 'and', // #8743
- 'or', // #8744
- 'cap', // #8745
- 'cup', // #8746
- 'int', // #8747
- 'there4', // #8756
- 'sim', // #8764
- 'cong', // #8773
- 'asymp', // #8776
- 'ne', // #8800
- 'equiv', // #8801
- 'le', // #8804
- 'ge', // #8805
- 'sub', // #8834
- 'sup', // #8835
- 'nsub', // #8836
- 'sube', // #8838
- 'supe', // #8839
- 'oplus', // #8853
- 'otimes', // #8855
- 'perp', // #8869
- 'sdot', // #8901
- 'lceil', // #8968
- 'rceil', // #8969
- 'lfloor', // #8970
- 'rfloor', // #8971
- 'lang', // #9001
- 'rang', // #9002
- 'loz', // #9674
- 'spades', // #9824
- 'clubs', // #9827
- 'hearts', // #9829
- 'diams' // #9830
- );
- function ResolveHTMLEntityReference(const Name: String;
- var Entity: Char): Boolean;
- implementation
- uses SysUtils;
- function ResolveHTMLEntityReference(const Name: String;
- var Entity: Char): Boolean;
- var
- Ent: Char;
- i: Integer;
- begin
- if Name = 'quot' then
- begin
- Entity := '"';
- Result := True;
- end else if Name = 'apos' then
- begin
- Entity := '''';
- Result := True;
- end else if Name = 'amp' then
- begin
- Entity := '&';
- Result := True;
- end else if Name = 'lt' then
- begin
- Entity := '<';
- Result := True;
- end else if Name = 'gt' then
- begin
- Entity := '>';
- Result := True;
- end else if (Length(Name) > 0) and (Name[1] = '#') then
- begin
- for i := 2 to Length(Name) do
- if (Name[i] < '0') or (Name[i] > '9') then
- break;
- if i > 2 then
- begin
- Entity := Chr(StrToInt(Copy(Name, 2, i - 1)));
- Result := True;
- end else
- Result := False;
- end else
- begin
- for Ent := Low(HTMLEntities) to High(HTMLEntities) do
- if HTMLEntities[Ent] = Name then
- begin
- Entity := Ent;
- Result := True;
- exit;
- end;
- Result := False;
- end;
- end;
- end.
- {
- $Log: htmldefs.pp,v $
- Revision 1.2 2006/01/03 23:33:23 lukvdl
- + TH: properties forgotten added
- Revision 1.1 2005/11/22 21:04:37 michael
- + Initial import
- Revision 1.4 2005/02/14 17:13:18 peter
- * truncate log
- }
|