forked from science-ation/science-ation
355 lines
7.0 KiB
JavaScript
355 lines
7.0 KiB
JavaScript
|
/*
|
|||
|
* 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' ) ;
|
|||
|
}
|