fckxhtmlentities.js
354 lines
| 7.0 KiB
| application/javascript
|
JavascriptLexer
|
r0 | /* | ||
* FCKeditor - The text editor for Internet - http://www.fckeditor.net | ||||
* Copyright (C) 2003-2008 Frederico Caldeira Knabben | ||||
* | ||||
* == BEGIN LICENSE == | ||||
* | ||||
* Licensed under the terms of any of the following licenses at your | ||||
* choice: | ||||
* | ||||
* - GNU General Public License Version 2 or later (the "GPL") | ||||
* http://www.gnu.org/licenses/gpl.html | ||||
* | ||||
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL") | ||||
* http://www.gnu.org/licenses/lgpl.html | ||||
* | ||||
* - Mozilla Public License Version 1.1 or later (the "MPL") | ||||
* http://www.mozilla.org/MPL/MPL-1.1.html | ||||
* | ||||
* == END LICENSE == | ||||
* | ||||
* This file define the HTML entities handled by the editor. | ||||
*/ | ||||
var FCKXHtmlEntities = new Object() ; | ||||
FCKXHtmlEntities.Initialize = function() | ||||
{ | ||||
if ( FCKXHtmlEntities.Entities ) | ||||
return ; | ||||
var sChars = '' ; | ||||
var oEntities, e ; | ||||
if ( FCKConfig.ProcessHTMLEntities ) | ||||
{ | ||||
FCKXHtmlEntities.Entities = { | ||||
// Latin-1 Entities | ||||
' ':'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', | ||||
'×':'times', | ||||
'÷':'divide', | ||||
// Symbols | ||||
'ƒ':'fnof', | ||||
'•':'bull', | ||||
'…':'hellip', | ||||
'′':'prime', | ||||
'″':'Prime', | ||||
'‾':'oline', | ||||
'⁄':'frasl', | ||||
'℘':'weierp', | ||||
'ℑ':'image', | ||||
'ℜ':'real', | ||||
'™':'trade', | ||||
'ℵ':'alefsym', | ||||
'←':'larr', | ||||
'↑':'uarr', | ||||
'→':'rarr', | ||||
'↓':'darr', | ||||
'↔':'harr', | ||||
'↵':'crarr', | ||||
'⇐':'lArr', | ||||
'⇑':'uArr', | ||||
'⇒':'rArr', | ||||
'⇓':'dArr', | ||||
'⇔':'hArr', | ||||
'∀':'forall', | ||||
'∂':'part', | ||||
'∃':'exist', | ||||
'∅':'empty', | ||||
'∇':'nabla', | ||||
'∈':'isin', | ||||
'∉':'notin', | ||||
'∋':'ni', | ||||
'∏':'prod', | ||||
'∑':'sum', | ||||
'−':'minus', | ||||
'∗':'lowast', | ||||
'√':'radic', | ||||
'∝':'prop', | ||||
'∞':'infin', | ||||
'∠':'ang', | ||||
'∧':'and', | ||||
'∨':'or', | ||||
'∩':'cap', | ||||
'∪':'cup', | ||||
'∫':'int', | ||||
'∴':'there4', | ||||
'∼':'sim', | ||||
'≅':'cong', | ||||
'≈':'asymp', | ||||
'≠':'ne', | ||||
'≡':'equiv', | ||||
'≤':'le', | ||||
'≥':'ge', | ||||
'⊂':'sub', | ||||
'⊃':'sup', | ||||
'⊄':'nsub', | ||||
'⊆':'sube', | ||||
'⊇':'supe', | ||||
'⊕':'oplus', | ||||
'⊗':'otimes', | ||||
'⊥':'perp', | ||||
'⋅':'sdot', | ||||
'\u2308':'lceil', | ||||
'\u2309':'rceil', | ||||
'\u230a':'lfloor', | ||||
'\u230b':'rfloor', | ||||
'\u2329':'lang', | ||||
'\u232a':'rang', | ||||
'◊':'loz', | ||||
'♠':'spades', | ||||
'♣':'clubs', | ||||
'♥':'hearts', | ||||
'♦':'diams', | ||||
// Other Special Characters | ||||
'"':'quot', | ||||
// '&':'amp', // This entity is automatically handled by the XHTML parser. | ||||
// '<':'lt', // This entity is automatically handled by the XHTML parser. | ||||
// '>':'gt', // This entity is automatically handled by the XHTML parser. | ||||
'ˆ':'circ', | ||||
'˜':'tilde', | ||||
' ':'ensp', | ||||
' ':'emsp', | ||||
' ':'thinsp', | ||||
'':'zwnj', | ||||
'':'zwj', | ||||
'':'lrm', | ||||
'':'rlm', | ||||
'–':'ndash', | ||||
'—':'mdash', | ||||
'‘':'lsquo', | ||||
'’':'rsquo', | ||||
'‚':'sbquo', | ||||
'“':'ldquo', | ||||
'”':'rdquo', | ||||
'„':'bdquo', | ||||
'†':'dagger', | ||||
'‡':'Dagger', | ||||
'‰':'permil', | ||||
'‹':'lsaquo', | ||||
'›':'rsaquo', | ||||
'€':'euro' | ||||
} ; | ||||
// Process Base Entities. | ||||
for ( e in FCKXHtmlEntities.Entities ) | ||||
sChars += e ; | ||||
// Include Latin Letters Entities. | ||||
if ( FCKConfig.IncludeLatinEntities ) | ||||
{ | ||||
oEntities = { | ||||
'À':'Agrave', | ||||
'Á':'Aacute', | ||||
'Â':'Acirc', | ||||
'Ã':'Atilde', | ||||
'Ä':'Auml', | ||||
'Å':'Aring', | ||||
'Æ':'AElig', | ||||
'Ç':'Ccedil', | ||||
'È':'Egrave', | ||||
'É':'Eacute', | ||||
'Ê':'Ecirc', | ||||
'Ë':'Euml', | ||||
'Ì':'Igrave', | ||||
'Í':'Iacute', | ||||
'Î':'Icirc', | ||||
'Ï':'Iuml', | ||||
'Ð':'ETH', | ||||
'Ñ':'Ntilde', | ||||
'Ò':'Ograve', | ||||
'Ó':'Oacute', | ||||
'Ô':'Ocirc', | ||||
'Õ':'Otilde', | ||||
'Ö':'Ouml', | ||||
'Ø':'Oslash', | ||||
'Ù':'Ugrave', | ||||
'Ú':'Uacute', | ||||
'Û':'Ucirc', | ||||
'Ü':'Uuml', | ||||
'Ý':'Yacute', | ||||
'Þ':'THORN', | ||||
'ß':'szlig', | ||||
'à':'agrave', | ||||
'á':'aacute', | ||||
'â':'acirc', | ||||
'ã':'atilde', | ||||
'ä':'auml', | ||||
'å':'aring', | ||||
'æ':'aelig', | ||||
'ç':'ccedil', | ||||
'è':'egrave', | ||||
'é':'eacute', | ||||
'ê':'ecirc', | ||||
'ë':'euml', | ||||
'ì':'igrave', | ||||
'í':'iacute', | ||||
'î':'icirc', | ||||
'ï':'iuml', | ||||
'ð':'eth', | ||||
'ñ':'ntilde', | ||||
'ò':'ograve', | ||||
'ó':'oacute', | ||||
'ô':'ocirc', | ||||
'õ':'otilde', | ||||
'ö':'ouml', | ||||
'ø':'oslash', | ||||
'ù':'ugrave', | ||||
'ú':'uacute', | ||||
'û':'ucirc', | ||||
'ü':'uuml', | ||||
'ý':'yacute', | ||||
'þ':'thorn', | ||||
'ÿ':'yuml', | ||||
'Œ':'OElig', | ||||
'œ':'oelig', | ||||
'Š':'Scaron', | ||||
'š':'scaron', | ||||
'Ÿ':'Yuml' | ||||
} ; | ||||
for ( e in oEntities ) | ||||
{ | ||||
FCKXHtmlEntities.Entities[ e ] = oEntities[ e ] ; | ||||
sChars += e ; | ||||
} | ||||
oEntities = null ; | ||||
} | ||||
// Include Greek Letters Entities. | ||||
if ( FCKConfig.IncludeGreekEntities ) | ||||
{ | ||||
oEntities = { | ||||
'Α':'Alpha', | ||||
'Β':'Beta', | ||||
'Γ':'Gamma', | ||||
'Δ':'Delta', | ||||
'Ε':'Epsilon', | ||||
'Ζ':'Zeta', | ||||
'Η':'Eta', | ||||
'Θ':'Theta', | ||||
'Ι':'Iota', | ||||
'Κ':'Kappa', | ||||
'Λ':'Lambda', | ||||
'Μ':'Mu', | ||||
'Ν':'Nu', | ||||
'Ξ':'Xi', | ||||
'Ο':'Omicron', | ||||
'Π':'Pi', | ||||
'Ρ':'Rho', | ||||
'Σ':'Sigma', | ||||
'Τ':'Tau', | ||||
'Υ':'Upsilon', | ||||
'Φ':'Phi', | ||||
'Χ':'Chi', | ||||
'Ψ':'Psi', | ||||
'Ω':'Omega', | ||||
'α':'alpha', | ||||
'β':'beta', | ||||
'γ':'gamma', | ||||
'δ':'delta', | ||||
'ε':'epsilon', | ||||
'ζ':'zeta', | ||||
'η':'eta', | ||||
'θ':'theta', | ||||
'ι':'iota', | ||||
'κ':'kappa', | ||||
'λ':'lambda', | ||||
'μ':'mu', | ||||
'ν':'nu', | ||||
'ξ':'xi', | ||||
'ο':'omicron', | ||||
'π':'pi', | ||||
'ρ':'rho', | ||||
'ς':'sigmaf', | ||||
'σ':'sigma', | ||||
'τ':'tau', | ||||
'υ':'upsilon', | ||||
'φ':'phi', | ||||
'χ':'chi', | ||||
'ψ':'psi', | ||||
'ω':'omega', | ||||
'\u03d1':'thetasym', | ||||
'\u03d2':'upsih', | ||||
'\u03d6':'piv' | ||||
} ; | ||||
for ( e in oEntities ) | ||||
{ | ||||
FCKXHtmlEntities.Entities[ e ] = oEntities[ e ] ; | ||||
sChars += e ; | ||||
} | ||||
oEntities = null ; | ||||
} | ||||
} | ||||
else | ||||
{ | ||||
FCKXHtmlEntities.Entities = {} ; | ||||
// Even if we are not processing the entities, we must render the | ||||
// correctly. As we don't want HTML entities, let's use its numeric | ||||
// representation ( ). | ||||
sChars = ' ' ; | ||||
} | ||||
// Create the Regex used to find entities in the text. | ||||
var sRegexPattern = '[' + sChars + ']' ; | ||||
if ( FCKConfig.ProcessNumericEntities ) | ||||
sRegexPattern = '[^ -~]|' + sRegexPattern ; | ||||
var sAdditional = FCKConfig.AdditionalNumericEntities ; | ||||
if ( sAdditional && sAdditional.length > 0 ) | ||||
sRegexPattern += '|' + FCKConfig.AdditionalNumericEntities ; | ||||
FCKXHtmlEntities.EntitiesRegex = new RegExp( sRegexPattern, 'g' ) ; | ||||
} | ||||