Comparing version 1.2.4 to 1.2.5
{ | ||
"name": "typograf", | ||
"version": "1.2.4", | ||
"version": "1.2.5", | ||
"description": "The client and server typographer", | ||
@@ -11,3 +11,3 @@ "bugs": "https://github.com/hcodes/typograf/issues/new", | ||
"typograf" | ||
], | ||
], | ||
"main": [ | ||
@@ -14,0 +14,0 @@ "dist/typograf.js", |
@@ -70,11 +70,11 @@ /*! Typograf | (c) 2014 Denis Seleznev | https://github.com/hcodes/typograf/ */ | ||
text = '' + text; | ||
if(!text) { | ||
return ''; | ||
} | ||
text = text | ||
.replace(/\r\n/g, '\n') // Windows | ||
.replace(/\r/g, '\n'); // MacOS | ||
var isHTML = text.search(/<|>/) !== -1; | ||
@@ -112,3 +112,3 @@ | ||
if(arguments.length <= 2) { | ||
return this._settings[rule] ? this._settings[rule][name] : undefined; | ||
return this._settings[rule] && this._settings[rule][name]; | ||
} else { | ||
@@ -230,4 +230,3 @@ this._settings[rule] = this._settings[rule] || {}; | ||
this.entities.forEach(function(entity) { | ||
var re = new RegExp(entity[2], 'g'); | ||
text = text.replace(re, entity[index]); | ||
text = text.replace(new RegExp(entity[2], 'g'), entity[index]); | ||
}, this); | ||
@@ -244,255 +243,261 @@ } | ||
Typograf.prototype.entities = [ | ||
['\\ ', '\\&\\#160;', '\u00A0'], | ||
['\\¡', '\\&\\#161;', '\u00A1'], | ||
['\\¢', '\\&\\#162;', '\u00A2'], | ||
['\\£', '\\&\\#163;', '\u00A3'], | ||
['\\¤', '\\&\\#164;', '\u00A4'], | ||
['\\¥', '\\&\\#165;', '\u00A5'], | ||
['\\¦', '\\&\\#166;', '\u00A6'], | ||
['\\§', '\\&\\#167;', '\u00A7'], | ||
['\\¨', '\\&\\#168;', '\u00A8'], | ||
['\\©', '\\&\\#169;', '\u00A9'], | ||
['\\ª', '\\&\\#170;', '\u00AA'], | ||
['\\«', '\\&\\#171;', '\u00AB'], | ||
['\\¬', '\\&\\#172;', '\u00AC'], | ||
['\\­', '\\&\\#173;', '\u00AD'], | ||
['\\®', '\\&\\#174;', '\u00AE'], | ||
['\\¯', '\\&\\#175;', '\u00AF'], | ||
['\\°', '\\&\\#176;', '\u00B0'], | ||
['\\±', '\\&\\#177;', '\u00B1'], | ||
['\\²', '\\&\\#178;', '\u00B2'], | ||
['\\³', '\\&\\#179;', '\u00B3'], | ||
['\\´', '\\&\\#180;', '\u00B4'], | ||
['\\µ', '\\&\\#181;', '\u00B5'], | ||
['\\¶', '\\&\\#182;', '\u00B6'], | ||
['\\·', '\\&\\#183;', '\u00B7'], | ||
['\\¸', '\\&\\#184;', '\u00B8'], | ||
['\\¹', '\\&\\#185;', '\u00B9'], | ||
['\\º', '\\&\\#186;', '\u00BA'], | ||
['\\»', '\\&\\#187;', '\u00BB'], | ||
['\\¼', '\\&\\#188;', '\u00BC'], | ||
['\\½', '\\&\\#189;', '\u00BD'], | ||
['\\¾', '\\&\\#190;', '\u00BE'], | ||
['\\¿', '\\&\\#191;', '\u00BF'], | ||
['\\À', '\\&\\#192;', '\u00C0'], | ||
['\\Á', '\\&\\#193;', '\u00C1'], | ||
['\\Â', '\\&\\#194;', '\u00C2'], | ||
['\\Ã', '\\&\\#195;', '\u00C3'], | ||
['\\Ä', '\\&\\#196;', '\u00C4'], | ||
['\\Å', '\\&\\#197;', '\u00C5'], | ||
['\\Æ', '\\&\\#198;', '\u00C6'], | ||
['\\Ç', '\\&\\#199;', '\u00C7'], | ||
['\\È', '\\&\\#200;', '\u00C8'], | ||
['\\É', '\\&\\#201;', '\u00C9'], | ||
['\\Ê', '\\&\\#202;', '\u00CA'], | ||
['\\Ë', '\\&\\#203;', '\u00CB'], | ||
['\\Ì', '\\&\\#204;', '\u00CC'], | ||
['\\Í', '\\&\\#205;', '\u00CD'], | ||
['\\Î', '\\&\\#206;', '\u00CE'], | ||
['\\Ï', '\\&\\#207;', '\u00CF'], | ||
['\\Ð', '\\&\\#208;', '\u00D0'], | ||
['\\Ñ', '\\&\\#209;', '\u00D1'], | ||
['\\Ò', '\\&\\#210;', '\u00D2'], | ||
['\\Ó', '\\&\\#211;', '\u00D3'], | ||
['\\Ô', '\\&\\#212;', '\u00D4'], | ||
['\\Õ', '\\&\\#213;', '\u00D5'], | ||
['\\Ö', '\\&\\#214;', '\u00D6'], | ||
['\\×', '\\&\\#215;', '\u00D7'], | ||
['\\Ø', '\\&\\#216;', '\u00D8'], | ||
['\\Ù', '\\&\\#217;', '\u00D9'], | ||
['\\Ú', '\\&\\#218;', '\u00DA'], | ||
['\\Û', '\\&\\#219;', '\u00DB'], | ||
['\\Ü', '\\&\\#220;', '\u00DC'], | ||
['\\Ý', '\\&\\#221;', '\u00DD'], | ||
['\\Þ', '\\&\\#222;', '\u00DE'], | ||
['\\ß', '\\&\\#223;', '\u00DF'], | ||
['\\à', '\\&\\#224;', '\u00E0'], | ||
['\\á', '\\&\\#225;', '\u00E1'], | ||
['\\â', '\\&\\#226;', '\u00E2'], | ||
['\\ã', '\\&\\#227;', '\u00E3'], | ||
['\\ä', '\\&\\#228;', '\u00E4'], | ||
['\\å', '\\&\\#229;', '\u00E5'], | ||
['\\æ', '\\&\\#230;', '\u00E6'], | ||
['\\ç', '\\&\\#231;', '\u00E7'], | ||
['\\è', '\\&\\#232;', '\u00E8'], | ||
['\\é', '\\&\\#233;', '\u00E9'], | ||
['\\ê', '\\&\\#234;', '\u00EA'], | ||
['\\ë', '\\&\\#235;', '\u00EB'], | ||
['\\ì', '\\&\\#236;', '\u00EC'], | ||
['\\í', '\\&\\#237;', '\u00ED'], | ||
['\\î', '\\&\\#238;', '\u00EE'], | ||
['\\ï', '\\&\\#239;', '\u00EF'], | ||
['\\ð', '\\&\\#240;', '\u00F0'], | ||
['\\ñ', '\\&\\#241;', '\u00F1'], | ||
['\\ò', '\\&\\#242;', '\u00F2'], | ||
['\\ó', '\\&\\#243;', '\u00F3'], | ||
['\\ô', '\\&\\#244;', '\u00F4'], | ||
['\\õ', '\\&\\#245;', '\u00F5'], | ||
['\\ö', '\\&\\#246;', '\u00F6'], | ||
['\\÷', '\\&\\#247;', '\u00F7'], | ||
['\\ø', '\\&\\#248;', '\u00F8'], | ||
['\\ù', '\\&\\#249;', '\u00F9'], | ||
['\\ú', '\\&\\#250;', '\u00FA'], | ||
['\\û', '\\&\\#251;', '\u00FB'], | ||
['\\ü', '\\&\\#252;', '\u00FC'], | ||
['\\ý', '\\&\\#253;', '\u00FD'], | ||
['\\þ', '\\&\\#254;', '\u00FE'], | ||
['\\ÿ', '\\&\\#255;', '\u00FF'], | ||
['\\ƒ', '\\&\\#402;', '\u0192'], | ||
['\\Α', '\\&\\#913;', '\u0391'], | ||
['\\Β', '\\&\\#914;', '\u0392'], | ||
['\\Γ', '\\&\\#915;', '\u0393'], | ||
['\\Δ', '\\&\\#916;', '\u0394'], | ||
['\\Ε', '\\&\\#917;', '\u0395'], | ||
['\\Ζ', '\\&\\#918;', '\u0396'], | ||
['\\Η', '\\&\\#919;', '\u0397'], | ||
['\\Θ', '\\&\\#920;', '\u0398'], | ||
['\\Ι', '\\&\\#921;', '\u0399'], | ||
['\\Κ', '\\&\\#922;', '\u039A'], | ||
['\\Λ', '\\&\\#923;', '\u039B'], | ||
['\\Μ', '\\&\\#924;', '\u039C'], | ||
['\\Ν', '\\&\\#925;', '\u039D'], | ||
['\\Ξ', '\\&\\#926;', '\u039E'], | ||
['\\Ο', '\\&\\#927;', '\u039F'], | ||
['\\Π', '\\&\\#928;', '\u03A0'], | ||
['\\Ρ', '\\&\\#929;', '\u03A1'], | ||
['\\Σ', '\\&\\#931;', '\u03A3'], | ||
['\\Τ', '\\&\\#932;', '\u03A4'], | ||
['\\Υ', '\\&\\#933;', '\u03A5'], | ||
['\\Φ', '\\&\\#934;', '\u03A6'], | ||
['\\Χ', '\\&\\#935;', '\u03A7'], | ||
['\\Ψ', '\\&\\#936;', '\u03A8'], | ||
['\\Ω', '\\&\\#937;', '\u03A9'], | ||
['\\α', '\\&\\#945;', '\u03B1'], | ||
['\\β', '\\&\\#946;', '\u03B2'], | ||
['\\γ', '\\&\\#947;', '\u03B3'], | ||
['\\δ', '\\&\\#948;', '\u03B4'], | ||
['\\ε', '\\&\\#949;', '\u03B5'], | ||
['\\ζ', '\\&\\#950;', '\u03B6'], | ||
['\\η', '\\&\\#951;', '\u03B7'], | ||
['\\θ', '\\&\\#952;', '\u03B8'], | ||
['\\ι', '\\&\\#953;', '\u03B9'], | ||
['\\κ', '\\&\\#954;', '\u03BA'], | ||
['\\λ', '\\&\\#955;', '\u03BB'], | ||
['\\μ', '\\&\\#956;', '\u03BC'], | ||
['\\ν', '\\&\\#957;', '\u03BD'], | ||
['\\ξ', '\\&\\#958;', '\u03BE'], | ||
['\\ο', '\\&\\#959;', '\u03BF'], | ||
['\\π', '\\&\\#960;', '\u03C0'], | ||
['\\ρ', '\\&\\#961;', '\u03C1'], | ||
['\\ς', '\\&\\#962;', '\u03C2'], | ||
['\\σ', '\\&\\#963;', '\u03C3'], | ||
['\\τ', '\\&\\#964;', '\u03C4'], | ||
['\\υ', '\\&\\#965;', '\u03C5'], | ||
['\\φ', '\\&\\#966;', '\u03C6'], | ||
['\\χ', '\\&\\#967;', '\u03C7'], | ||
['\\ψ', '\\&\\#968;', '\u03C8'], | ||
['\\ω', '\\&\\#969;', '\u03C9'], | ||
['\\ϑ', '\\&\\#977;', '\u03D1'], | ||
['\\ϒ', '\\&\\#978;', '\u03D2'], | ||
['\\ϖ', '\\&\\#982;', '\u03D6'], | ||
['\\•', '\\&\\#8226;', '\u2022'], | ||
['\\…', '\\&\\#8230;', '\u2026'], | ||
['\\′', '\\&\\#8242;', '\u2032'], | ||
['\\″', '\\&\\#8243;', '\u2033'], | ||
['\\‾', '\\&\\#8254;', '\u203E'], | ||
['\\⁄', '\\&\\#8260;', '\u2044'], | ||
['\\℘', '\\&\\#8472;', '\u2118'], | ||
['\\ℑ', '\\&\\#8465;', '\u2111'], | ||
['\\ℜ', '\\&\\#8476;', '\u211C'], | ||
['\\™', '\\&\\#8482;', '\u2122'], | ||
['\\ℵ', '\\&\\#8501;', '\u2135'], | ||
['\\←', '\\&\\#8592;', '\u2190'], | ||
['\\↑', '\\&\\#8593;', '\u2191'], | ||
['\\→', '\\&\\#8594;', '\u2192'], | ||
['\\↓', '\\&\\#8595;', '\u2193'], | ||
['\\↔', '\\&\\#8596;', '\u2194'], | ||
['\\↵', '\\&\\#8629;', '\u21B5'], | ||
['\\⇐', '\\&\\#8656;', '\u21D0'], | ||
['\\⇑', '\\&\\#8657;', '\u21D1'], | ||
['\\⇒', '\\&\\#8658;', '\u21D2'], | ||
['\\⇓', '\\&\\#8659;', '\u21D3'], | ||
['\\⇔', '\\&\\#8660;', '\u21D4'], | ||
['\\∀', '\\&\\#8704;', '\u2200'], | ||
['\\∂', '\\&\\#8706;', '\u2202'], | ||
['\\∃', '\\&\\#8707;', '\u2203'], | ||
['\\∅', '\\&\\#8709;', '\u2205'], | ||
['\\∇', '\\&\\#8711;', '\u2207'], | ||
['\\∈', '\\&\\#8712;', '\u2208'], | ||
['\\∉', '\\&\\#8713;', '\u2209'], | ||
['\\∋', '\\&\\#8715;', '\u220B'], | ||
['\\∏', '\\&\\#8719;', '\u220F'], | ||
['\\∑', '\\&\\#8721;', '\u2211'], | ||
['\\−', '\\&\\#8722;', '\u2212'], | ||
['\\∗', '\\&\\#8727;', '\u2217'], | ||
['\\√', '\\&\\#8730;', '\u221A'], | ||
['\\∝', '\\&\\#8733;', '\u221D'], | ||
['\\∞', '\\&\\#8734;', '\u221E'], | ||
['\\∠', '\\&\\#8736;', '\u2220'], | ||
['\\∧', '\\&\\#8743;', '\u2227'], | ||
['\\∨', '\\&\\#8744;', '\u2228'], | ||
['\\∩', '\\&\\#8745;', '\u2229'], | ||
['\\∪', '\\&\\#8746;', '\u222A'], | ||
['\\∫', '\\&\\#8747;', '\u222B'], | ||
['\\∴', '\\&\\#8756;', '\u2234'], | ||
['\\∼', '\\&\\#8764;', '\u223C'], | ||
['\\≅', '\\&\\#8773;', '\u2245'], | ||
['\\≈', '\\&\\#8776;', '\u2248'], | ||
['\\≠', '\\&\\#8800;', '\u2260'], | ||
['\\≡', '\\&\\#8801;', '\u2261'], | ||
['\\≤', '\\&\\#8804;', '\u2264'], | ||
['\\≥', '\\&\\#8805;', '\u2265'], | ||
['\\⊂', '\\&\\#8834;', '\u2282'], | ||
['\\⊃', '\\&\\#8835;', '\u2283'], | ||
['\\⊄', '\\&\\#8836;', '\u2284'], | ||
['\\⊆', '\\&\\#8838;', '\u2286'], | ||
['\\⊇', '\\&\\#8839;', '\u2287'], | ||
['\\⊕', '\\&\\#8853;', '\u2295'], | ||
['\\⊗', '\\&\\#8855;', '\u2297'], | ||
['\\⊥', '\\&\\#8869;', '\u22A5'], | ||
['\\⋅', '\\&\\#8901;', '\u22C5'], | ||
['\\⌈', '\\&\\#8968;', '\u2308'], | ||
['\\⌉', '\\&\\#8969;', '\u2309'], | ||
['\\⌊', '\\&\\#8970;', '\u230A'], | ||
['\\⌋', '\\&\\#8971;', '\u230B'], | ||
['\\⟨', '\\&\\#9001;', '\u2329'], | ||
['\\⟩', '\\&\\#9002;', '\u232A'], | ||
['\\♠', '\\&\\#9824;', '\u2660'], | ||
['\\♣', '\\&\\#9827;', '\u2663'], | ||
['\\♥', '\\&\\#9829;', '\u2665'], | ||
['\\♦', '\\&\\#9830;', '\u2666'], | ||
['\\◊', '\\&\\#9674;', '\u25CA'], | ||
['\\Œ', '\\&\\#338;', '\u0152'], | ||
['\\œ', '\\&\\#339;', '\u0153'], | ||
['\\Š', '\\&\\#352;', '\u0160'], | ||
['\\š', '\\&\\#353;', '\u0161'], | ||
['\\Ÿ', '\\&\\#376;', '\u0178'], | ||
['\\ˆ', '\\&\\#710;', '\u02C6'], | ||
['\\˜', '\\&\\#732;', '\u02DC'], | ||
['\\ ', '\\&\\#8194;', '\u2002'], | ||
['\\ ', '\\&\\#8195;', '\u2003'], | ||
['\\ ', '\\&\\#8201;', '\u2009'], | ||
['\\‌', '\\&\\#8204;', '\u200C'], | ||
['\\‍', '\\&\\#8205;', '\u200D'], | ||
['\\‎', '\\&\\#8206;', '\u200E'], | ||
['\\‏', '\\&\\#8207;', '\u200F'], | ||
['\\–', '\\&\\#8211;', '\u2013'], | ||
['\\—', '\\&\\#8212;', '\u2014'], | ||
['\\‘', '\\&\\#8216;', '\u2018'], | ||
['\\’', '\\&\\#8217;', '\u2019'], | ||
['\\‚', '\\&\\#8218;', '\u201A'], | ||
['\\“', '\\&\\#8220;', '\u201C'], | ||
['\\”', '\\&\\#8221;', '\u201D'], | ||
['\\„', '\\&\\#8222;', '\u201E'], | ||
['\\†', '\\&\\#8224;', '\u2020'], | ||
['\\‡', '\\&\\#8225;', '\u2021'], | ||
['\\‰', '\\&\\#8240;', '\u2030'], | ||
['\\‹', '\\&\\#8249;', '\u2039'], | ||
['\\›', '\\&\\#8250;', '\u203A'], | ||
['\\€', '\\&\\#8364;', '\u20AC'] | ||
]; | ||
Typograf.prototype.entities = []; | ||
Typograf.prototype.entities.forEach(function(en) { | ||
en[3] = new RegExp('(' + en[0] + '|' + en[1] + ')', 'g'); | ||
[ | ||
['nbsp', 160], | ||
['iexcl', 161], | ||
['cent', 162], | ||
['pound', 163], | ||
['curren', 164], | ||
['yen', 165], | ||
['brvbar', 166], | ||
['sect', 167], | ||
['uml', 168], | ||
['copy', 169], | ||
['ordf', 170], | ||
['laquo', 171], | ||
['not', 172], | ||
['shy', 173], | ||
['reg', 174], | ||
['macr', 175], | ||
['deg', 176], | ||
['plusmn', 177], | ||
['sup2', 178], | ||
['sup3', 179], | ||
['acute', 180], | ||
['micro', 181], | ||
['para', 182], | ||
['middot', 183], | ||
['cedil', 184], | ||
['sup1', 185], | ||
['ordm', 186], | ||
['raquo', 187], | ||
['frac14', 188], | ||
['frac12', 189], | ||
['frac34', 190], | ||
['iquest', 191], | ||
['Agrave', 192], | ||
['Aacute', 193], | ||
['Acirc', 194], | ||
['Atilde', 195], | ||
['Auml', 196], | ||
['Aring', 197], | ||
['AElig', 198], | ||
['Ccedil', 199], | ||
['Egrave', 200], | ||
['Eacute', 201], | ||
['Ecirc', 202], | ||
['Euml', 203], | ||
['Igrave', 204], | ||
['Iacute', 205], | ||
['Icirc', 206], | ||
['Iuml', 207], | ||
['ETH', 208], | ||
['Ntilde', 209], | ||
['Ograve', 210], | ||
['Oacute', 211], | ||
['Ocirc', 212], | ||
['Otilde', 213], | ||
['Ouml', 214], | ||
['times', 215], | ||
['Oslash', 216], | ||
['Ugrave', 217], | ||
['Uacute', 218], | ||
['Ucirc', 219], | ||
['Uuml', 220], | ||
['Yacute', 221], | ||
['THORN', 222], | ||
['szlig', 223], | ||
['agrave', 224], | ||
['aacute', 225], | ||
['acirc', 226], | ||
['atilde', 227], | ||
['auml', 228], | ||
['aring', 229], | ||
['aelig', 230], | ||
['ccedil', 231], | ||
['egrave', 232], | ||
['eacute', 233], | ||
['ecirc', 234], | ||
['euml', 235], | ||
['igrave', 236], | ||
['iacute', 237], | ||
['icirc', 238], | ||
['iuml', 239], | ||
['eth', 240], | ||
['ntilde', 241], | ||
['ograve', 242], | ||
['oacute', 243], | ||
['ocirc', 244], | ||
['otilde', 245], | ||
['ouml', 246], | ||
['divide', 247], | ||
['oslash', 248], | ||
['ugrave', 249], | ||
['uacute', 250], | ||
['ucirc', 251], | ||
['uuml', 252], | ||
['yacute', 253], | ||
['thorn', 254], | ||
['yuml', 255], | ||
['fnof', 402], | ||
['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], | ||
['bull', 8226], | ||
['hellip', 8230], | ||
['prime', 8242], | ||
['Prime', 8243], | ||
['oline', 8254], | ||
['frasl', 8260], | ||
['weierp', 8472], | ||
['image', 8465], | ||
['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], | ||
['spades', 9824], | ||
['clubs', 9827], | ||
['hearts', 9829], | ||
['diams', 9830], | ||
['loz', 9674], | ||
['OElig', 338], | ||
['oelig', 339], | ||
['Scaron', 352], | ||
['scaron', 353], | ||
['Yuml', 376], | ||
['circ', 710], | ||
['tilde', 732], | ||
['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], | ||
['permil', 8240], | ||
['lsaquo', 8249], | ||
['rsaquo', 8250], | ||
['euro', 8364] | ||
].forEach(function(en) { | ||
var name = en[0] + ';', | ||
num = en[1] + ';', | ||
buf = ['&' + name, '&#' + num, String.fromCharCode(en[1])]; | ||
buf.push(new RegExp('(\\&\\#' + num + (name ? '|\\&' + name : '') + ')', 'g')); | ||
Typograf.prototype.entities.push(buf); | ||
}, this); | ||
@@ -601,2 +606,18 @@ | ||
Typograf.rule({ | ||
title: 'Преобразование дат к виду DD.MM.YYYY', | ||
name: 'date/main', | ||
sortIndex: 1300, | ||
func: function(text) { | ||
var sp1 = '(-|\\.|\\/)', | ||
sp2 = '(-|\\/)', | ||
re1 = new RegExp('(^|\\D)(\\d{4})' + sp1 + '(\\d{2})' + sp1 + '(\\d{2})(\\D|$)', 'gi'), | ||
re2 = new RegExp('(^|\\D)(\\d{2})' + sp2 + '(\\d{2})' + sp2 + '(\\d{4})(\\D|$)', 'gi'); | ||
return text | ||
.replace(re1, '$1$6.$4.$2$7') | ||
.replace(re2, '$1$4.$2.$6$7'); | ||
} | ||
}); | ||
(function() { | ||
@@ -704,18 +725,2 @@ | ||
Typograf.rule({ | ||
title: 'Преобразование дат к виду DD.MM.YYYY', | ||
name: 'date/main', | ||
sortIndex: 1300, | ||
func: function(text) { | ||
var sp1 = '(-|\\.|\\/)', | ||
sp2 = '(-|\\/)', | ||
re1 = new RegExp('(^|\\D)(\\d{4})' + sp1 + '(\\d{2})' + sp1 + '(\\d{2})(\\D|$)', 'gi'), | ||
re2 = new RegExp('(^|\\D)(\\d{2})' + sp2 + '(\\d{2})' + sp2 + '(\\d{4})(\\D|$)', 'gi'); | ||
return text | ||
.replace(re1, '$1$6.$4.$2$7') | ||
.replace(re2, '$1$4.$2.$6$7'); | ||
} | ||
}); | ||
Typograf.rule({ | ||
title: 'Замена перевода строки на <br/>', | ||
@@ -825,3 +830,3 @@ name: 'html/nbr', | ||
title: 'Неразрывный пробел после короткого слова', | ||
name: 'nbsp/afterShortWord', | ||
name: 'nbsp/afterShortWord', | ||
sortIndex: 590, | ||
@@ -832,3 +837,3 @@ func: function(text, settings) { | ||
return len > 0 ? text.replace(re, '$1\u00A0') : text; | ||
return text.replace(re, '$1\u00A0'); | ||
}, | ||
@@ -857,3 +862,3 @@ settings: { | ||
return len > 0 ? text.replace(re, '\u00A0$1$2') : text; | ||
return text.replace(re, '\u00A0$1$2'); | ||
}, | ||
@@ -918,80 +923,2 @@ settings: { | ||
Typograf.rule({ | ||
title: 'Пробел после знаков пунктуации', | ||
name: 'space/afterPunctuation', | ||
sortIndex: 560, | ||
func: function(text) { | ||
return text | ||
.replace(/(\!|;|\?)([^ \n\t\!;\?])/g, '$1 $2') | ||
.replace(/(\D)(,|\:)([^ \/\d\n\t\!;,\?\.\:])/g, '$1$2 $3'); | ||
} | ||
}); | ||
Typograf.rule({ | ||
title: 'Удаление пробела перед %', | ||
name: 'space/delBeforePercent', | ||
sortIndex: 600, | ||
func: function(text) { | ||
return text.replace(/(\d)( |\u00A0)%/g, '$1%'); | ||
} | ||
}); | ||
Typograf.rule({ | ||
title: 'Удаление пробелов перед знаками пунктуации', | ||
name: 'space/delBeforePunctuation', | ||
sortIndex: 550, | ||
func: function(text) { | ||
return text.replace(/ (\!|;|,|\?|\.|\:)/g, '$1') | ||
.replace(/\( /g, '(') | ||
.replace(/([^ ])\(/g, '$1 (') | ||
.replace(/ \)/g, ')') | ||
.replace(/\)([^\!;,\?\.\:])/g, ') $1'); | ||
} | ||
}); | ||
Typograf.rule({ | ||
title: 'Удаление повторяющихся переносов строки (не более двух)', | ||
name: 'space/delRepeatN', | ||
sortIndex: 545, | ||
func: function(text) { | ||
return text.replace(/\n{3,}/g, '\n\n'); | ||
} | ||
}); | ||
Typograf.rule({ | ||
title: 'Удаление повторяющихся пробелов', | ||
name: 'space/delRepeatSpace', | ||
sortIndex: 540, | ||
func: function(text) { | ||
return text.replace(/( |\t){2,}/g, '$1'); | ||
} | ||
}); | ||
Typograf.rule({ | ||
title: 'Удаление пробелов в конце строк', | ||
name: 'space/delTrailingBlanks', | ||
sortIndex: 505, | ||
func: function(text) { | ||
return text.replace(/( |\t)+\n/g, '\n'); | ||
} | ||
}); | ||
Typograf.rule({ | ||
title: 'Замена табов на пробелы', | ||
name: 'space/replaceTab', | ||
sortIndex: 510, | ||
func: function(text) { | ||
return text.replace(/\t/g, ' '); | ||
} | ||
}); | ||
Typograf.rule({ | ||
title: 'Удаление пробелов в начале и в конце текста', | ||
name: 'space/trim', | ||
sortIndex: 530, | ||
func: function(text) { | ||
return text.trim(); | ||
} | ||
}); | ||
Typograf.rule({ | ||
title: '-> → →, <- → ←', | ||
@@ -1077,3 +1004,81 @@ name: 'sym/arrow', | ||
Typograf.rule({ | ||
title: 'Пробел после знаков пунктуации', | ||
name: 'space/afterPunctuation', | ||
sortIndex: 560, | ||
func: function(text) { | ||
return text | ||
.replace(/(\!|;|\?)([^ \n\t\!;\?])/g, '$1 $2') | ||
.replace(/(\D)(,|\:)([^ \/\d\n\t\!;,\?\.\:])/g, '$1$2 $3'); | ||
} | ||
}); | ||
Typograf.rule({ | ||
title: 'Удаление пробела перед %', | ||
name: 'space/delBeforePercent', | ||
sortIndex: 600, | ||
func: function(text) { | ||
return text.replace(/(\d)( |\u00A0)%/g, '$1%'); | ||
} | ||
}); | ||
Typograf.rule({ | ||
title: 'Удаление пробелов перед знаками пунктуации', | ||
name: 'space/delBeforePunctuation', | ||
sortIndex: 550, | ||
func: function(text) { | ||
return text.replace(/ (\!|;|,|\?|\.|\:)/g, '$1') | ||
.replace(/\( /g, '(') | ||
.replace(/([^ ])\(/g, '$1 (') | ||
.replace(/ \)/g, ')') | ||
.replace(/\)([^\!;,\?\.\:])/g, ') $1'); | ||
} | ||
}); | ||
Typograf.rule({ | ||
title: 'Удаление повторяющихся переносов строки (не более двух)', | ||
name: 'space/delRepeatN', | ||
sortIndex: 545, | ||
func: function(text) { | ||
return text.replace(/\n{3,}/g, '\n\n'); | ||
} | ||
}); | ||
Typograf.rule({ | ||
title: 'Удаление повторяющихся пробелов', | ||
name: 'space/delRepeatSpace', | ||
sortIndex: 540, | ||
func: function(text) { | ||
return text.replace(/( |\t){2,}/g, '$1'); | ||
} | ||
}); | ||
Typograf.rule({ | ||
title: 'Удаление пробелов в конце строк', | ||
name: 'space/delTrailingBlanks', | ||
sortIndex: 505, | ||
func: function(text) { | ||
return text.replace(/( |\t)+\n/g, '\n'); | ||
} | ||
}); | ||
Typograf.rule({ | ||
title: 'Замена табов на пробелы', | ||
name: 'space/replaceTab', | ||
sortIndex: 510, | ||
func: function(text) { | ||
return text.replace(/\t/g, ' '); | ||
} | ||
}); | ||
Typograf.rule({ | ||
title: 'Удаление пробелов в начале и в конце текста', | ||
name: 'space/trim', | ||
sortIndex: 530, | ||
func: function(text) { | ||
return text.trim(); | ||
} | ||
}); | ||
Typograf._sortRules(); | ||
Typograf._needSortRules = true; |
@@ -1,1 +0,1 @@ | ||
function Typograf(e){this._prefs="object"==typeof e?e:{},this._settings={},this._enabledRules={},this._rules.forEach(function(e){this._settings[e.name]=e.settings||{},this._enabledRules[e.name]=e.enabled},this)}Typograf.rule=function(e){return e.enabled=e.enabled===!1?!1:!0,Typograf.prototype._rules.push(e),Typograf._needSortRules&&this._sortRules(),this},Typograf.data=function(e,r){Typograf.prototype.data[e]=r},Typograf._sortRules=function(){Typograf.prototype._rules.sort(function(e,r){return e.sortIndex>r.sortIndex?1:-1})},Typograf.prototype={constructor:Typograf,execute:function(e){if(e=""+e,!e)return"";e=e.replace(/\r\n/g,"\n").replace(/\r/g,"\n");var r=-1!==e.search(/<|>/);return r&&(e=this._hideSafeTags(e)),e=this._utfication(e),this._rules.forEach(function(r){this.enabled(r.name)&&(e=r.func.call(this,e,this._settings[r.name]))},this),e=this._modification(e),r&&(e=this._showSafeTags(e)),e},setting:function(e,r,n){return arguments.length<=2?this._settings[e]?this._settings[e][r]:void 0:(this._settings[e]=this._settings[e]||{},this._settings[e][r]=n,this)},enabled:function(e){return this._enabledRules[e]},disabled:function(e){return!this._enabledRules[e]},enable:function(e){return this._enable(e,!0)},disable:function(e){return this._enable(e,!1)},data:{},_enable:function(e,r){return Array.isArray(e)?e.forEach(function(e){this._enabledRules[e]=r},this):this._enabledRules[e]=r,this},_rules:[],_hideSafeTags:function(e){this._hiddenSafeTags={};var r=this,n="",t=[["<!--","-->"],["<pre[^>]*>","<\\/pre>"],["<code[^>]*>","<\\/code>"],["<style[^>]*>","<\\/style>"],["<script[^>]*>","<\\/script>"],["<object>","<\\/object>"]];t.forEach(function(e){n+="("+e[0]+"(.|\\n)*?"+e[1]+")|"},this);var a=0;return e=e.replace(new RegExp("("+n+"<[^>]*[\\s][^>]*>)","gim"),function(e){var n="__typograf"+a+"__";return r._hiddenSafeTags[n]=e,a++,n})},_showSafeTags:function(e){return Object.keys(this._hiddenSafeTags).forEach(function(r){e=e.replace(new RegExp(r,"gim"),this._hiddenSafeTags[r])},this),delete this._hiddenSafeTags,e},_utfication:function(e){return-1===e.search("&")?e:(this.entities.forEach(function(r){e=e.replace(r[3],r[2])},this),e)},_modification:function(e){var r,n=this._prefs.mode;return("name"===n||"digit"===n)&&(r="name"===n?0:1,this.entities.forEach(function(n){var t=new RegExp(n[2],"g");e=e.replace(t,n[r])},this)),e}},"object"==typeof exports&&(module.exports=Typograf),Typograf.prototype.entities=[["\\ ","\\&\\#160;"," "],["\\¡","\\&\\#161;","¡"],["\\¢","\\&\\#162;","¢"],["\\£","\\&\\#163;","£"],["\\¤","\\&\\#164;","¤"],["\\¥","\\&\\#165;","¥"],["\\¦","\\&\\#166;","¦"],["\\§","\\&\\#167;","§"],["\\¨","\\&\\#168;","¨"],["\\©","\\&\\#169;","©"],["\\ª","\\&\\#170;","ª"],["\\«","\\&\\#171;","«"],["\\¬","\\&\\#172;","¬"],["\\­","\\&\\#173;",""],["\\®","\\&\\#174;","®"],["\\¯","\\&\\#175;","¯"],["\\°","\\&\\#176;","°"],["\\±","\\&\\#177;","±"],["\\²","\\&\\#178;","²"],["\\³","\\&\\#179;","³"],["\\´","\\&\\#180;","´"],["\\µ","\\&\\#181;","µ"],["\\¶","\\&\\#182;","¶"],["\\·","\\&\\#183;","·"],["\\¸","\\&\\#184;","¸"],["\\¹","\\&\\#185;","¹"],["\\º","\\&\\#186;","º"],["\\»","\\&\\#187;","»"],["\\¼","\\&\\#188;","¼"],["\\½","\\&\\#189;","½"],["\\¾","\\&\\#190;","¾"],["\\¿","\\&\\#191;","¿"],["\\À","\\&\\#192;","À"],["\\Á","\\&\\#193;","Á"],["\\Â","\\&\\#194;","Â"],["\\Ã","\\&\\#195;","Ã"],["\\Ä","\\&\\#196;","Ä"],["\\Å","\\&\\#197;","Å"],["\\Æ","\\&\\#198;","Æ"],["\\Ç","\\&\\#199;","Ç"],["\\È","\\&\\#200;","È"],["\\É","\\&\\#201;","É"],["\\Ê","\\&\\#202;","Ê"],["\\Ë","\\&\\#203;","Ë"],["\\Ì","\\&\\#204;","Ì"],["\\Í","\\&\\#205;","Í"],["\\Î","\\&\\#206;","Î"],["\\Ï","\\&\\#207;","Ï"],["\\Ð","\\&\\#208;","Ð"],["\\Ñ","\\&\\#209;","Ñ"],["\\Ò","\\&\\#210;","Ò"],["\\Ó","\\&\\#211;","Ó"],["\\Ô","\\&\\#212;","Ô"],["\\Õ","\\&\\#213;","Õ"],["\\Ö","\\&\\#214;","Ö"],["\\×","\\&\\#215;","×"],["\\Ø","\\&\\#216;","Ø"],["\\Ù","\\&\\#217;","Ù"],["\\Ú","\\&\\#218;","Ú"],["\\Û","\\&\\#219;","Û"],["\\Ü","\\&\\#220;","Ü"],["\\Ý","\\&\\#221;","Ý"],["\\Þ","\\&\\#222;","Þ"],["\\ß","\\&\\#223;","ß"],["\\à","\\&\\#224;","à"],["\\á","\\&\\#225;","á"],["\\â","\\&\\#226;","â"],["\\ã","\\&\\#227;","ã"],["\\ä","\\&\\#228;","ä"],["\\å","\\&\\#229;","å"],["\\æ","\\&\\#230;","æ"],["\\ç","\\&\\#231;","ç"],["\\è","\\&\\#232;","è"],["\\é","\\&\\#233;","é"],["\\ê","\\&\\#234;","ê"],["\\ë","\\&\\#235;","ë"],["\\ì","\\&\\#236;","ì"],["\\í","\\&\\#237;","í"],["\\î","\\&\\#238;","î"],["\\ï","\\&\\#239;","ï"],["\\ð","\\&\\#240;","ð"],["\\ñ","\\&\\#241;","ñ"],["\\ò","\\&\\#242;","ò"],["\\ó","\\&\\#243;","ó"],["\\ô","\\&\\#244;","ô"],["\\õ","\\&\\#245;","õ"],["\\ö","\\&\\#246;","ö"],["\\÷","\\&\\#247;","÷"],["\\ø","\\&\\#248;","ø"],["\\ù","\\&\\#249;","ù"],["\\ú","\\&\\#250;","ú"],["\\û","\\&\\#251;","û"],["\\ü","\\&\\#252;","ü"],["\\ý","\\&\\#253;","ý"],["\\þ","\\&\\#254;","þ"],["\\ÿ","\\&\\#255;","ÿ"],["\\ƒ","\\&\\#402;","ƒ"],["\\Α","\\&\\#913;","Α"],["\\Β","\\&\\#914;","Β"],["\\Γ","\\&\\#915;","Γ"],["\\Δ","\\&\\#916;","Δ"],["\\Ε","\\&\\#917;","Ε"],["\\Ζ","\\&\\#918;","Ζ"],["\\Η","\\&\\#919;","Η"],["\\Θ","\\&\\#920;","Θ"],["\\Ι","\\&\\#921;","Ι"],["\\Κ","\\&\\#922;","Κ"],["\\Λ","\\&\\#923;","Λ"],["\\Μ","\\&\\#924;","Μ"],["\\Ν","\\&\\#925;","Ν"],["\\Ξ","\\&\\#926;","Ξ"],["\\Ο","\\&\\#927;","Ο"],["\\Π","\\&\\#928;","Π"],["\\Ρ","\\&\\#929;","Ρ"],["\\Σ","\\&\\#931;","Σ"],["\\Τ","\\&\\#932;","Τ"],["\\Υ","\\&\\#933;","Υ"],["\\Φ","\\&\\#934;","Φ"],["\\Χ","\\&\\#935;","Χ"],["\\Ψ","\\&\\#936;","Ψ"],["\\Ω","\\&\\#937;","Ω"],["\\α","\\&\\#945;","α"],["\\β","\\&\\#946;","β"],["\\γ","\\&\\#947;","γ"],["\\δ","\\&\\#948;","δ"],["\\ε","\\&\\#949;","ε"],["\\ζ","\\&\\#950;","ζ"],["\\η","\\&\\#951;","η"],["\\θ","\\&\\#952;","θ"],["\\ι","\\&\\#953;","ι"],["\\κ","\\&\\#954;","κ"],["\\λ","\\&\\#955;","λ"],["\\μ","\\&\\#956;","μ"],["\\ν","\\&\\#957;","ν"],["\\ξ","\\&\\#958;","ξ"],["\\ο","\\&\\#959;","ο"],["\\π","\\&\\#960;","π"],["\\ρ","\\&\\#961;","ρ"],["\\ς","\\&\\#962;","ς"],["\\σ","\\&\\#963;","σ"],["\\τ","\\&\\#964;","τ"],["\\υ","\\&\\#965;","υ"],["\\φ","\\&\\#966;","φ"],["\\χ","\\&\\#967;","χ"],["\\ψ","\\&\\#968;","ψ"],["\\ω","\\&\\#969;","ω"],["\\ϑ","\\&\\#977;","ϑ"],["\\ϒ","\\&\\#978;","ϒ"],["\\ϖ","\\&\\#982;","ϖ"],["\\•","\\&\\#8226;","•"],["\\…","\\&\\#8230;","…"],["\\′","\\&\\#8242;","′"],["\\″","\\&\\#8243;","″"],["\\‾","\\&\\#8254;","‾"],["\\⁄","\\&\\#8260;","⁄"],["\\℘","\\&\\#8472;","℘"],["\\ℑ","\\&\\#8465;","ℑ"],["\\ℜ","\\&\\#8476;","ℜ"],["\\™","\\&\\#8482;","™"],["\\ℵ","\\&\\#8501;","ℵ"],["\\←","\\&\\#8592;","←"],["\\↑","\\&\\#8593;","↑"],["\\→","\\&\\#8594;","→"],["\\↓","\\&\\#8595;","↓"],["\\↔","\\&\\#8596;","↔"],["\\↵","\\&\\#8629;","↵"],["\\⇐","\\&\\#8656;","⇐"],["\\⇑","\\&\\#8657;","⇑"],["\\⇒","\\&\\#8658;","⇒"],["\\⇓","\\&\\#8659;","⇓"],["\\⇔","\\&\\#8660;","⇔"],["\\∀","\\&\\#8704;","∀"],["\\∂","\\&\\#8706;","∂"],["\\∃","\\&\\#8707;","∃"],["\\∅","\\&\\#8709;","∅"],["\\∇","\\&\\#8711;","∇"],["\\∈","\\&\\#8712;","∈"],["\\∉","\\&\\#8713;","∉"],["\\∋","\\&\\#8715;","∋"],["\\∏","\\&\\#8719;","∏"],["\\∑","\\&\\#8721;","∑"],["\\−","\\&\\#8722;","−"],["\\∗","\\&\\#8727;","∗"],["\\√","\\&\\#8730;","√"],["\\∝","\\&\\#8733;","∝"],["\\∞","\\&\\#8734;","∞"],["\\∠","\\&\\#8736;","∠"],["\\∧","\\&\\#8743;","∧"],["\\∨","\\&\\#8744;","∨"],["\\∩","\\&\\#8745;","∩"],["\\∪","\\&\\#8746;","∪"],["\\∫","\\&\\#8747;","∫"],["\\∴","\\&\\#8756;","∴"],["\\∼","\\&\\#8764;","∼"],["\\≅","\\&\\#8773;","≅"],["\\≈","\\&\\#8776;","≈"],["\\≠","\\&\\#8800;","≠"],["\\≡","\\&\\#8801;","≡"],["\\≤","\\&\\#8804;","≤"],["\\≥","\\&\\#8805;","≥"],["\\⊂","\\&\\#8834;","⊂"],["\\⊃","\\&\\#8835;","⊃"],["\\⊄","\\&\\#8836;","⊄"],["\\⊆","\\&\\#8838;","⊆"],["\\⊇","\\&\\#8839;","⊇"],["\\⊕","\\&\\#8853;","⊕"],["\\⊗","\\&\\#8855;","⊗"],["\\⊥","\\&\\#8869;","⊥"],["\\⋅","\\&\\#8901;","⋅"],["\\⌈","\\&\\#8968;","⌈"],["\\⌉","\\&\\#8969;","⌉"],["\\⌊","\\&\\#8970;","⌊"],["\\⌋","\\&\\#8971;","⌋"],["\\⟨","\\&\\#9001;","〈"],["\\⟩","\\&\\#9002;","〉"],["\\♠","\\&\\#9824;","♠"],["\\♣","\\&\\#9827;","♣"],["\\♥","\\&\\#9829;","♥"],["\\♦","\\&\\#9830;","♦"],["\\◊","\\&\\#9674;","◊"],["\\Œ","\\&\\#338;","Œ"],["\\œ","\\&\\#339;","œ"],["\\Š","\\&\\#352;","Š"],["\\š","\\&\\#353;","š"],["\\Ÿ","\\&\\#376;","Ÿ"],["\\ˆ","\\&\\#710;","ˆ"],["\\˜","\\&\\#732;","˜"],["\\ ","\\&\\#8194;"," "],["\\ ","\\&\\#8195;"," "],["\\ ","\\&\\#8201;"," "],["\\‌","\\&\\#8204;",""],["\\‍","\\&\\#8205;",""],["\\‎","\\&\\#8206;",""],["\\‏","\\&\\#8207;",""],["\\–","\\&\\#8211;","–"],["\\—","\\&\\#8212;","—"],["\\‘","\\&\\#8216;","‘"],["\\’","\\&\\#8217;","’"],["\\‚","\\&\\#8218;","‚"],["\\“","\\&\\#8220;","“"],["\\”","\\&\\#8221;","”"],["\\„","\\&\\#8222;","„"],["\\†","\\&\\#8224;","†"],["\\‡","\\&\\#8225;","‡"],["\\‰","\\&\\#8240;","‰"],["\\‹","\\&\\#8249;","‹"],["\\›","\\&\\#8250;","›"],["\\€","\\&\\#8364;","€"]],Typograf.prototype.entities.forEach(function(e){e[3]=new RegExp("("+e[0]+"|"+e[1]+")","g")},this),Typograf.data("month",["январь","февраль","март","апрель","май","июнь","июль","август","сентябрь","октябрь","ноябрь","декабрь"]),Typograf.data("weekday",["понедельник","вторник","среда","четверг","пятница","суббота","воскресенье"]),Typograf.rule({title:"Удаление двойной пунктуации",name:"delDoublePunctiation",sortIndex:580,func:function(e){return e.replace(/(,|:|;|\?){2,}/g,"$1")}}),Typograf.rule({title:"!! → !",name:"exclamation",sortIndex:1150,func:function(e){return e.replace(/(^|[^!])\!{2}($|[^!])/,"$1!$2").replace(/(^|[^!])\!{4}?($|[^!])/,"$1!!!$2")}}),Typograf.rule({title:"!? → ?!",name:"exclamationQuestion",sortIndex:1140,func:function(e){var r=new RegExp("(^|[^!])!\\?([^?]|$)","g");return e.replace(r,"$1?!$2")}}),Typograf.rule({title:"Расстановка кавычек",name:"quot",sortIndex:700,func:function(e,r){var n="[\\w\\dа-яёА-ЯЁ]",t=r.lquot,a=r.rquot,u=r.lquot2,i=r.rquot2,o="(?:^|<\\w.*?>)*",l="(?:…|"+n+"|\\n)",c="(?:"+[n,"[)!?.:;#*]"].join("|")+")*",s='(«|»|„|“|”|‘|’|"|")',p='(»|“|"|")',g=new RegExp("("+o+")?"+s+"("+o+l+o+")","g"),f=new RegExp("("+o+c+o+")"+p+"("+c+")","g"),d=new RegExp("("+t+")(.*?)"+t+"(.*?)("+a+")","g"),$=new RegExp("("+t+")(.*?)"+a+"(.*?)("+a+")","g"),m=new RegExp(t+t,"g"),h=new RegExp(a+a,"g");return e=e.replace(g,"$1"+t+"$3").replace(f,"$1"+a+"$3"),e=t===u&&a===i?e.replace(m,"$1$2"+t+"$3$4").replace(h,"$1$2"+a+"$3$4"):e.replace(d,"$1$2"+u+"$3$4").replace($,"$1$2"+i+"$3$4")},settings:{lquot:"«",rquot:"»",lquot2:"„",rquot2:"“"}}),function(){var e="(^| |\\n)",r="( |,|\\.|\\?|\\:|\\!|$)";Typograf.rule({title:"Дефис перед то, либо, нибудь, ка, де, кась",name:"dash/to",sortIndex:30,func:function(e){var n=new RegExp("( | ?- ?)(то|либо|нибудь|ка|де|кась)"+r,"g");return e.replace(n,"-$2$3")}}),Typograf.rule({title:"Дефис между из-за",name:"dash/izza",sortIndex:33,func:function(n){var t=new RegExp(e+"(И|и)з за"+r,"g");return n.replace(t,"$1$2з-за$3")}}),Typograf.rule({title:"Дефис между из-под",name:"dash/izpod",sortIndex:35,func:function(n){var t=new RegExp(e+"(И|и)з под"+r,"g");return n.replace(t,"$1$2з-под$3")}}),Typograf.rule({title:"Дефис после кое и кой",name:"dash/koe",sortIndex:38,func:function(n){var t=new RegExp(e+"(К|к)ое\\s([а-яё]{3,})"+r,"g");n=n.replace(t,"$1$2ое-$3$4");var a=new RegExp(e+"(К|к)ой\\s([а-я]{3,})"+r,"g");return n.replace(a,"$1$2ой-$3$4")}}),Typograf.rule({title:"Дефис между верно-таки и т.д.",name:"dash/taki",sortIndex:39,func:function(e){var n=new RegExp("(верно|довольно|опять|прямо|так|всё|действительно|неужели)\\s(таки)"+r,"g");return e.replace(n,"$1-$2$3")}})}(),Typograf.rule({title:"Дефис на тире",name:"dash/main",sortIndex:620,func:function(e){var r=new RegExp("(\\s| )(-|—)(\\s|\\n)","g");return e.replace(r," —$3").replace(/(X|I|V)(?: |\u00A0)?(-|—)(?: |\u00A0)?(X|I|V)/g,"$1—$3")},settings:{dash:"—",dashInterval:"—"}}),Typograf.rule({title:"Дефис между месяцами",name:"dash/month",sortIndex:610,func:function(e){var r="("+this.data.month.join("|")+")",n=new RegExp(r+" ?(-|—) ?"+r,"gi");return e.replace(n,"$1"+this.setting("dash/main","dashInterval")+"$3")}}),Typograf.rule({title:"Дефис между днями недели",name:"dash/weekday",sortIndex:600,func:function(e){var r="("+this.data.weekday.join("|")+")",n=new RegExp(r+" ?(-|—) ?"+r,"gi");return e.replace(n,"$1"+this.setting("dash/main","dashInterval")+"$3")}}),Typograf.rule({title:"Преобразование дат к виду DD.MM.YYYY",name:"date/main",sortIndex:1300,func:function(e){var r="(-|\\.|\\/)",n="(-|\\/)",t=new RegExp("(^|\\D)(\\d{4})"+r+"(\\d{2})"+r+"(\\d{2})(\\D|$)","gi"),a=new RegExp("(^|\\D)(\\d{2})"+n+"(\\d{2})"+n+"(\\d{4})(\\D|$)","gi");return e.replace(t,"$1$6.$4.$2$7").replace(a,"$1$4.$2.$6$7")}}),Typograf.rule({title:"Замена перевода строки на <br/>",name:"html/nbr",sortIndex:710,func:function(e){return e.replace(/\n/g,"<br/>")},enabled:!1}),Typograf.rule({title:"Расстановка <p> и <br/>",name:"html/pbr",sortIndex:700,func:function(e){return-1===e.search(/\n/)?e="<p>"+e+"</p>":(e="<p>"+e.replace(/\n\n/g,"</p>\n<p>")+"</p>",e=e.replace(/([^>])\n/g,"$1<br/>\n")),e},enabled:!1}),Typograf.rule({title:"Удаление HTML-тегов",name:"html/stripTags",sortIndex:5,func:function(e){return e.replace(/<\/?[^>]+>/g,"")},enabled:!1}),Typograf.rule({title:"Расстановка ссылок",name:"html/url",sortIndex:200,func:function(e){var r="(http|https|ftp|telnet|news|gopher|file|wais)://",n="([a-zA-Z0-9/\\n+-=%&:_.~?]+[a-zA-Z0-9#+]*)",t=new RegExp(r+n,"g");return e.replace(t,function(e,r,n){var t=n,a=r+"://"+n,u='<a href="'+a+'">';return"http"===r?(t=t.replace(/^www\./,"").replace(/^([^\/]+)\/$/,"$1"),u+t+"</a>"):u+a+"</a>"})}}),Typograf.rule({title:"$100 → 100 $",name:"money/dollar",sortIndex:1140,func:function(e){var r=new RegExp("(^|[\\D]{2,})\\$ ?([\\d.,]+)","g"),n=new RegExp("(^|[\\D])([\\d.,]+) ?\\$"),t="$1$2 $";return e.replace(r,t).replace(n,t)}}),Typograf.rule({title:"€100 → 100 €",name:"money/euro",sortIndex:1140,func:function(e){var r=new RegExp("(^|[\\D]{2,})€ ?([\\d.]+)","g"),n=new RegExp("(^|[\\D])([\\d.,]+) ?€"),t="$1$2 €";return e.replace(r,t).replace(n,t)}}),Typograf.rule({title:"Неразрывный пробел после № и §",name:"nbsp/afterNum",sortIndex:610,func:function(e){return e.replace(/№ ?(\d)/g,"№ $1").replace(/§ ?(\d|I|V|X)/g,"§ $1")}}),Typograf.rule({title:"Неразрывный пробел после короткого слова",name:"nbsp/afterShortWord",sortIndex:590,func:function(e,r){var n=r.lengthShortWord,t=new RegExp("( [а-яёА-ЯЁ\\w]{1,"+n+"}) ","g");return n>0?e.replace(t,"$1 "):e},settings:{lengthShortWord:2}}),Typograf.rule({title:"Неразрывный пробел перед ли, ль, же, бы, б",name:"nbsp/beforeParticle",sortIndex:570,func:function(e){return e.replace(/ (ли|ль|же|ж|бы|б)([^а-яёА-ЯЁ])/g," $1$2")}}),Typograf.rule({title:"Неразрывный пробел перед последним коротким словом в предложении",name:"nbsp/beforeShortLastWord",sortIndex:620,func:function(e,r){var n=r.lengthLastWord,t=new RegExp(" ([а-яёА-ЯЁ\\w]{1,"+n+"})(\\.|\\?|:|!|,)","g");return n>0?e.replace(t," $1$2"):e},settings:{lengthLastWord:3}}),Typograf.rule({title:"Расстановка запятых и неразрывного пробела перед а и но",name:"nbsp/but",sortIndex:1110,func:function(e){var r=new RegExp("([,])?( | |\n)(а|но)( | |\n)","g");return e.replace(r,",$2$3$4")}}),Typograf.rule({title:"m2 → м², m3 → м³ и неразрывный пробел",name:"nbsp/m",sortIndex:1030,func:function(e){var r="(км|м|дм|см|мм)",n=new RegExp("(^|\\D)(\\d+) ?"+r+"2(\\D|$)","g"),t=new RegExp("(^|\\D)(\\d+) ?"+r+"3(\\D|$)","g");return e=e.replace(n,"$1$2 $3²$4"),e.replace(t,"$1$2 $3³$4")}}),Typograf.rule({title:"Неразрывный пробел после OOO или ОАО",name:"nbsp/ooo",sortIndex:1100,func:function(e){return e.replace(/(ООО|ОАО) /g,"$1 ")}}),Typograf.rule({title:"Неразрывный пробел после XXXX",name:"nbsp/xxxx",sortIndex:1060,func:function(e){return e.replace(/(^|\D)(\d{4}) ?г( |,|;|\.|\n|$)/g,"$1$2 г$3")}}),Typograf.rule({title:"г.г. → гг. и неразрывный пробел",name:"nbsp/yy",sortIndex:1080,func:function(e){return e.replace(/(^|\d) ?г\. ?г\./g,"$1 гг.")}}),Typograf.rule({title:"Пробел после знаков пунктуации",name:"space/afterPunctuation",sortIndex:560,func:function(e){return e.replace(/(\!|;|\?)([^ \n\t\!;\?])/g,"$1 $2").replace(/(\D)(,|\:)([^ \/\d\n\t\!;,\?\.\:])/g,"$1$2 $3")}}),Typograf.rule({title:"Удаление пробела перед %",name:"space/delBeforePercent",sortIndex:600,func:function(e){return e.replace(/(\d)( |\u00A0)%/g,"$1%")}}),Typograf.rule({title:"Удаление пробелов перед знаками пунктуации",name:"space/delBeforePunctuation",sortIndex:550,func:function(e){return e.replace(/ (\!|;|,|\?|\.|\:)/g,"$1").replace(/\( /g,"(").replace(/([^ ])\(/g,"$1 (").replace(/ \)/g,")").replace(/\)([^\!;,\?\.\:])/g,") $1")}}),Typograf.rule({title:"Удаление повторяющихся переносов строки (не более двух)",name:"space/delRepeatN",sortIndex:545,func:function(e){return e.replace(/\n{3,}/g,"\n\n")}}),Typograf.rule({title:"Удаление повторяющихся пробелов",name:"space/delRepeatSpace",sortIndex:540,func:function(e){return e.replace(/( |\t){2,}/g,"$1")}}),Typograf.rule({title:"Удаление пробелов в конце строк",name:"space/delTrailingBlanks",sortIndex:505,func:function(e){return e.replace(/( |\t)+\n/g,"\n")}}),Typograf.rule({title:"Замена табов на пробелы",name:"space/replaceTab",sortIndex:510,func:function(e){return e.replace(/\t/g," ")}}),Typograf.rule({title:"Удаление пробелов в начале и в конце текста",name:"space/trim",sortIndex:530,func:function(e){return e.trim()}}),Typograf.rule({title:"-> → →, <- → ←",name:"sym/arrow",sortIndex:1130,func:function(e){return e.replace(/(^|[^-])->(?!>)/g,"$1→").replace(/(^|[^<])<-(?!-)/g,"$1←")}}),Typograf.rule({title:"Удаление лишних точек и пробелов в вв.",name:"sym/cc",sortIndex:1090,func:function(e){return e=e.replace(/(^|\d|V|I|X) ?в(в)?( |,|;|\n|$)/g,"$1 в$2.$3"),e.replace(/(^|\d|[IVX]) ?в\.? ?в\./g,"$1 вв.")}}),Typograf.rule({title:"Добавление ° к C и F",name:"sym/cf",sortIndex:1020,func:function(e){var r=new RegExp('(\\d+)( | )?(C|F)([\\W \\.,:\\!\\?"\\]\\)]|$)',"g");return e.replace(r,"$1 °$3$4")}}),Typograf.rule({title:"(c) → ©, (tm) → ©, (r) → ™",name:"sym/copy",sortIndex:10,func:function(e){return e.replace(/\(r\)/gi,"®").replace(/\((c|с)\)/gi,"©").replace(/\(tm\)/gi,"™")}}),Typograf.rule({title:"1/2 → ½, 1/4 → ¼, 3/3 → ¾",name:"sym/fraction",sortIndex:1120,func:function(e){return e.replace(/(^|\D)1\/2(\D|$)/g,"$1½$2").replace(/(^|\D)1\/4(\D|$)/g,"$1¼$2").replace(/(^|\D)3\/4(\D|$)/g,"$1¾$2")}}),Typograf.rule({title:"... → …",name:"sym/hellip",sortIndex:20,func:function(e){return e.replace(/(^|[^.])\.{3,4}([^.]|$)/g,"$1…$2")}}),Typograf.rule({title:"+- → ±",name:"sym/plusMinus",sortIndex:1010,func:function(e){var r=new RegExp("(^| |\\>| )\\+-(\\d)","g");return e.replace(r,"$1±$2").replace(/(^\s*)\+-(\s*$)/g,"$1±$2")}}),Typograf.rule({title:"x → ×",name:"sym/times",sortIndex:1050,func:function(e){return e.replace(/(\d) ?(x|х) ?(\d)/g,"$1×$3")}}),Typograf._sortRules(),Typograf._needSortRules=!0; | ||
function Typograf(e){this._prefs="object"==typeof e?e:{},this._settings={},this._enabledRules={},this._rules.forEach(function(e){this._settings[e.name]=e.settings||{},this._enabledRules[e.name]=e.enabled},this)}Typograf.rule=function(e){return e.enabled=e.enabled===!1?!1:!0,Typograf.prototype._rules.push(e),Typograf._needSortRules&&this._sortRules(),this},Typograf.data=function(e,r){Typograf.prototype.data[e]=r},Typograf._sortRules=function(){Typograf.prototype._rules.sort(function(e,r){return e.sortIndex>r.sortIndex?1:-1})},Typograf.prototype={constructor:Typograf,execute:function(e){if(e=""+e,!e)return"";e=e.replace(/\r\n/g,"\n").replace(/\r/g,"\n");var r=-1!==e.search(/<|>/);return r&&(e=this._hideSafeTags(e)),e=this._utfication(e),this._rules.forEach(function(r){this.enabled(r.name)&&(e=r.func.call(this,e,this._settings[r.name]))},this),e=this._modification(e),r&&(e=this._showSafeTags(e)),e},setting:function(e,r,n){return arguments.length<=2?this._settings[e]&&this._settings[e][r]:(this._settings[e]=this._settings[e]||{},this._settings[e][r]=n,this)},enabled:function(e){return this._enabledRules[e]},disabled:function(e){return!this._enabledRules[e]},enable:function(e){return this._enable(e,!0)},disable:function(e){return this._enable(e,!1)},data:{},_enable:function(e,r){return Array.isArray(e)?e.forEach(function(e){this._enabledRules[e]=r},this):this._enabledRules[e]=r,this},_rules:[],_hideSafeTags:function(e){this._hiddenSafeTags={};var r=this,n="",t=[["<!--","-->"],["<pre[^>]*>","<\\/pre>"],["<code[^>]*>","<\\/code>"],["<style[^>]*>","<\\/style>"],["<script[^>]*>","<\\/script>"],["<object>","<\\/object>"]];t.forEach(function(e){n+="("+e[0]+"(.|\\n)*?"+e[1]+")|"},this);var a=0;return e=e.replace(new RegExp("("+n+"<[^>]*[\\s][^>]*>)","gim"),function(e){var n="__typograf"+a+"__";return r._hiddenSafeTags[n]=e,a++,n})},_showSafeTags:function(e){return Object.keys(this._hiddenSafeTags).forEach(function(r){e=e.replace(new RegExp(r,"gim"),this._hiddenSafeTags[r])},this),delete this._hiddenSafeTags,e},_utfication:function(e){return-1===e.search("&")?e:(this.entities.forEach(function(r){e=e.replace(r[3],r[2])},this),e)},_modification:function(e){var r,n=this._prefs.mode;return("name"===n||"digit"===n)&&(r="name"===n?0:1,this.entities.forEach(function(n){e=e.replace(new RegExp(n[2],"g"),n[r])},this)),e}},"object"==typeof exports&&(module.exports=Typograf),Typograf.prototype.entities=[],[["nbsp",160],["iexcl",161],["cent",162],["pound",163],["curren",164],["yen",165],["brvbar",166],["sect",167],["uml",168],["copy",169],["ordf",170],["laquo",171],["not",172],["shy",173],["reg",174],["macr",175],["deg",176],["plusmn",177],["sup2",178],["sup3",179],["acute",180],["micro",181],["para",182],["middot",183],["cedil",184],["sup1",185],["ordm",186],["raquo",187],["frac14",188],["frac12",189],["frac34",190],["iquest",191],["Agrave",192],["Aacute",193],["Acirc",194],["Atilde",195],["Auml",196],["Aring",197],["AElig",198],["Ccedil",199],["Egrave",200],["Eacute",201],["Ecirc",202],["Euml",203],["Igrave",204],["Iacute",205],["Icirc",206],["Iuml",207],["ETH",208],["Ntilde",209],["Ograve",210],["Oacute",211],["Ocirc",212],["Otilde",213],["Ouml",214],["times",215],["Oslash",216],["Ugrave",217],["Uacute",218],["Ucirc",219],["Uuml",220],["Yacute",221],["THORN",222],["szlig",223],["agrave",224],["aacute",225],["acirc",226],["atilde",227],["auml",228],["aring",229],["aelig",230],["ccedil",231],["egrave",232],["eacute",233],["ecirc",234],["euml",235],["igrave",236],["iacute",237],["icirc",238],["iuml",239],["eth",240],["ntilde",241],["ograve",242],["oacute",243],["ocirc",244],["otilde",245],["ouml",246],["divide",247],["oslash",248],["ugrave",249],["uacute",250],["ucirc",251],["uuml",252],["yacute",253],["thorn",254],["yuml",255],["fnof",402],["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],["bull",8226],["hellip",8230],["prime",8242],["Prime",8243],["oline",8254],["frasl",8260],["weierp",8472],["image",8465],["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],["spades",9824],["clubs",9827],["hearts",9829],["diams",9830],["loz",9674],["OElig",338],["oelig",339],["Scaron",352],["scaron",353],["Yuml",376],["circ",710],["tilde",732],["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],["permil",8240],["lsaquo",8249],["rsaquo",8250],["euro",8364]].forEach(function(e){var r=e[0]+";",n=e[1]+";",t=["&"+r,"&#"+n,String.fromCharCode(e[1])];t.push(new RegExp("(\\&\\#"+n+(r?"|\\&"+r:"")+")","g")),Typograf.prototype.entities.push(t)},this),Typograf.data("month",["январь","февраль","март","апрель","май","июнь","июль","август","сентябрь","октябрь","ноябрь","декабрь"]),Typograf.data("weekday",["понедельник","вторник","среда","четверг","пятница","суббота","воскресенье"]),Typograf.rule({title:"Удаление двойной пунктуации",name:"delDoublePunctiation",sortIndex:580,func:function(e){return e.replace(/(,|:|;|\?){2,}/g,"$1")}}),Typograf.rule({title:"!! → !",name:"exclamation",sortIndex:1150,func:function(e){return e.replace(/(^|[^!])\!{2}($|[^!])/,"$1!$2").replace(/(^|[^!])\!{4}?($|[^!])/,"$1!!!$2")}}),Typograf.rule({title:"!? → ?!",name:"exclamationQuestion",sortIndex:1140,func:function(e){var r=new RegExp("(^|[^!])!\\?([^?]|$)","g");return e.replace(r,"$1?!$2")}}),Typograf.rule({title:"Расстановка кавычек",name:"quot",sortIndex:700,func:function(e,r){var n="[\\w\\dа-яёА-ЯЁ]",t=r.lquot,a=r.rquot,u=r.lquot2,o=r.rquot2,i="(?:^|<\\w.*?>)*",l="(?:…|"+n+"|\\n)",c="(?:"+[n,"[)!?.:;#*]"].join("|")+")*",s='(«|»|„|“|”|‘|’|"|")',p='(»|“|"|")',g=new RegExp("("+i+")?"+s+"("+i+l+i+")","g"),f=new RegExp("("+i+c+i+")"+p+"("+c+")","g"),d=new RegExp("("+t+")(.*?)"+t+"(.*?)("+a+")","g"),$=new RegExp("("+t+")(.*?)"+a+"(.*?)("+a+")","g"),m=new RegExp(t+t,"g"),h=new RegExp(a+a,"g");return e=e.replace(g,"$1"+t+"$3").replace(f,"$1"+a+"$3"),e=t===u&&a===o?e.replace(m,"$1$2"+t+"$3$4").replace(h,"$1$2"+a+"$3$4"):e.replace(d,"$1$2"+u+"$3$4").replace($,"$1$2"+o+"$3$4")},settings:{lquot:"«",rquot:"»",lquot2:"„",rquot2:"“"}}),function(){var e="(^| |\\n)",r="( |,|\\.|\\?|\\:|\\!|$)";Typograf.rule({title:"Дефис перед то, либо, нибудь, ка, де, кась",name:"dash/to",sortIndex:30,func:function(e){var n=new RegExp("( | ?- ?)(то|либо|нибудь|ка|де|кась)"+r,"g");return e.replace(n,"-$2$3")}}),Typograf.rule({title:"Дефис между из-за",name:"dash/izza",sortIndex:33,func:function(n){var t=new RegExp(e+"(И|и)з за"+r,"g");return n.replace(t,"$1$2з-за$3")}}),Typograf.rule({title:"Дефис между из-под",name:"dash/izpod",sortIndex:35,func:function(n){var t=new RegExp(e+"(И|и)з под"+r,"g");return n.replace(t,"$1$2з-под$3")}}),Typograf.rule({title:"Дефис после кое и кой",name:"dash/koe",sortIndex:38,func:function(n){var t=new RegExp(e+"(К|к)ое\\s([а-яё]{3,})"+r,"g");n=n.replace(t,"$1$2ое-$3$4");var a=new RegExp(e+"(К|к)ой\\s([а-я]{3,})"+r,"g");return n.replace(a,"$1$2ой-$3$4")}}),Typograf.rule({title:"Дефис между верно-таки и т.д.",name:"dash/taki",sortIndex:39,func:function(e){var n=new RegExp("(верно|довольно|опять|прямо|так|всё|действительно|неужели)\\s(таки)"+r,"g");return e.replace(n,"$1-$2$3")}})}(),Typograf.rule({title:"Дефис на тире",name:"dash/main",sortIndex:620,func:function(e){var r=new RegExp("(\\s| )(-|—)(\\s|\\n)","g");return e.replace(r," —$3").replace(/(X|I|V)(?: |\u00A0)?(-|—)(?: |\u00A0)?(X|I|V)/g,"$1—$3")},settings:{dash:"—",dashInterval:"—"}}),Typograf.rule({title:"Дефис между месяцами",name:"dash/month",sortIndex:610,func:function(e){var r="("+this.data.month.join("|")+")",n=new RegExp(r+" ?(-|—) ?"+r,"gi");return e.replace(n,"$1"+this.setting("dash/main","dashInterval")+"$3")}}),Typograf.rule({title:"Дефис между днями недели",name:"dash/weekday",sortIndex:600,func:function(e){var r="("+this.data.weekday.join("|")+")",n=new RegExp(r+" ?(-|—) ?"+r,"gi");return e.replace(n,"$1"+this.setting("dash/main","dashInterval")+"$3")}}),Typograf.rule({title:"Преобразование дат к виду DD.MM.YYYY",name:"date/main",sortIndex:1300,func:function(e){var r="(-|\\.|\\/)",n="(-|\\/)",t=new RegExp("(^|\\D)(\\d{4})"+r+"(\\d{2})"+r+"(\\d{2})(\\D|$)","gi"),a=new RegExp("(^|\\D)(\\d{2})"+n+"(\\d{2})"+n+"(\\d{4})(\\D|$)","gi");return e.replace(t,"$1$6.$4.$2$7").replace(a,"$1$4.$2.$6$7")}}),Typograf.rule({title:"Замена перевода строки на <br/>",name:"html/nbr",sortIndex:710,func:function(e){return e.replace(/\n/g,"<br/>")},enabled:!1}),Typograf.rule({title:"Расстановка <p> и <br/>",name:"html/pbr",sortIndex:700,func:function(e){return-1===e.search(/\n/)?e="<p>"+e+"</p>":(e="<p>"+e.replace(/\n\n/g,"</p>\n<p>")+"</p>",e=e.replace(/([^>])\n/g,"$1<br/>\n")),e},enabled:!1}),Typograf.rule({title:"Удаление HTML-тегов",name:"html/stripTags",sortIndex:5,func:function(e){return e.replace(/<\/?[^>]+>/g,"")},enabled:!1}),Typograf.rule({title:"Расстановка ссылок",name:"html/url",sortIndex:200,func:function(e){var r="(http|https|ftp|telnet|news|gopher|file|wais)://",n="([a-zA-Z0-9/\\n+-=%&:_.~?]+[a-zA-Z0-9#+]*)",t=new RegExp(r+n,"g");return e.replace(t,function(e,r,n){var t=n,a=r+"://"+n,u='<a href="'+a+'">';return"http"===r?(t=t.replace(/^www\./,"").replace(/^([^\/]+)\/$/,"$1"),u+t+"</a>"):u+a+"</a>"})}}),Typograf.rule({title:"$100 → 100 $",name:"money/dollar",sortIndex:1140,func:function(e){var r=new RegExp("(^|[\\D]{2,})\\$ ?([\\d.,]+)","g"),n=new RegExp("(^|[\\D])([\\d.,]+) ?\\$"),t="$1$2 $";return e.replace(r,t).replace(n,t)}}),Typograf.rule({title:"€100 → 100 €",name:"money/euro",sortIndex:1140,func:function(e){var r=new RegExp("(^|[\\D]{2,})€ ?([\\d.]+)","g"),n=new RegExp("(^|[\\D])([\\d.,]+) ?€"),t="$1$2 €";return e.replace(r,t).replace(n,t)}}),Typograf.rule({title:"Неразрывный пробел после № и §",name:"nbsp/afterNum",sortIndex:610,func:function(e){return e.replace(/№ ?(\d)/g,"№ $1").replace(/§ ?(\d|I|V|X)/g,"§ $1")}}),Typograf.rule({title:"Неразрывный пробел после короткого слова",name:"nbsp/afterShortWord",sortIndex:590,func:function(e,r){var n=r.lengthShortWord,t=new RegExp("( [а-яёА-ЯЁ\\w]{1,"+n+"}) ","g");return e.replace(t,"$1 ")},settings:{lengthShortWord:2}}),Typograf.rule({title:"Неразрывный пробел перед ли, ль, же, бы, б",name:"nbsp/beforeParticle",sortIndex:570,func:function(e){return e.replace(/ (ли|ль|же|ж|бы|б)([^а-яёА-ЯЁ])/g," $1$2")}}),Typograf.rule({title:"Неразрывный пробел перед последним коротким словом в предложении",name:"nbsp/beforeShortLastWord",sortIndex:620,func:function(e,r){var n=r.lengthLastWord,t=new RegExp(" ([а-яёА-ЯЁ\\w]{1,"+n+"})(\\.|\\?|:|!|,)","g");return e.replace(t," $1$2")},settings:{lengthLastWord:3}}),Typograf.rule({title:"Расстановка запятых и неразрывного пробела перед а и но",name:"nbsp/but",sortIndex:1110,func:function(e){var r=new RegExp("([,])?( | |\n)(а|но)( | |\n)","g");return e.replace(r,",$2$3$4")}}),Typograf.rule({title:"m2 → м², m3 → м³ и неразрывный пробел",name:"nbsp/m",sortIndex:1030,func:function(e){var r="(км|м|дм|см|мм)",n=new RegExp("(^|\\D)(\\d+) ?"+r+"2(\\D|$)","g"),t=new RegExp("(^|\\D)(\\d+) ?"+r+"3(\\D|$)","g");return e=e.replace(n,"$1$2 $3²$4"),e.replace(t,"$1$2 $3³$4")}}),Typograf.rule({title:"Неразрывный пробел после OOO или ОАО",name:"nbsp/ooo",sortIndex:1100,func:function(e){return e.replace(/(ООО|ОАО) /g,"$1 ")}}),Typograf.rule({title:"Неразрывный пробел после XXXX",name:"nbsp/xxxx",sortIndex:1060,func:function(e){return e.replace(/(^|\D)(\d{4}) ?г( |,|;|\.|\n|$)/g,"$1$2 г$3")}}),Typograf.rule({title:"г.г. → гг. и неразрывный пробел",name:"nbsp/yy",sortIndex:1080,func:function(e){return e.replace(/(^|\d) ?г\. ?г\./g,"$1 гг.")}}),Typograf.rule({title:"Пробел после знаков пунктуации",name:"space/afterPunctuation",sortIndex:560,func:function(e){return e.replace(/(\!|;|\?)([^ \n\t\!;\?])/g,"$1 $2").replace(/(\D)(,|\:)([^ \/\d\n\t\!;,\?\.\:])/g,"$1$2 $3")}}),Typograf.rule({title:"Удаление пробела перед %",name:"space/delBeforePercent",sortIndex:600,func:function(e){return e.replace(/(\d)( |\u00A0)%/g,"$1%")}}),Typograf.rule({title:"Удаление пробелов перед знаками пунктуации",name:"space/delBeforePunctuation",sortIndex:550,func:function(e){return e.replace(/ (\!|;|,|\?|\.|\:)/g,"$1").replace(/\( /g,"(").replace(/([^ ])\(/g,"$1 (").replace(/ \)/g,")").replace(/\)([^\!;,\?\.\:])/g,") $1")}}),Typograf.rule({title:"Удаление повторяющихся переносов строки (не более двух)",name:"space/delRepeatN",sortIndex:545,func:function(e){return e.replace(/\n{3,}/g,"\n\n")}}),Typograf.rule({title:"Удаление повторяющихся пробелов",name:"space/delRepeatSpace",sortIndex:540,func:function(e){return e.replace(/( |\t){2,}/g,"$1")}}),Typograf.rule({title:"Удаление пробелов в конце строк",name:"space/delTrailingBlanks",sortIndex:505,func:function(e){return e.replace(/( |\t)+\n/g,"\n")}}),Typograf.rule({title:"Замена табов на пробелы",name:"space/replaceTab",sortIndex:510,func:function(e){return e.replace(/\t/g," ")}}),Typograf.rule({title:"Удаление пробелов в начале и в конце текста",name:"space/trim",sortIndex:530,func:function(e){return e.trim()}}),Typograf.rule({title:"-> → →, <- → ←",name:"sym/arrow",sortIndex:1130,func:function(e){return e.replace(/(^|[^-])->(?!>)/g,"$1→").replace(/(^|[^<])<-(?!-)/g,"$1←")}}),Typograf.rule({title:"Удаление лишних точек и пробелов в вв.",name:"sym/cc",sortIndex:1090,func:function(e){return e=e.replace(/(^|\d|V|I|X) ?в(в)?( |,|;|\n|$)/g,"$1 в$2.$3"),e.replace(/(^|\d|[IVX]) ?в\.? ?в\./g,"$1 вв.")}}),Typograf.rule({title:"Добавление ° к C и F",name:"sym/cf",sortIndex:1020,func:function(e){var r=new RegExp('(\\d+)( | )?(C|F)([\\W \\.,:\\!\\?"\\]\\)]|$)',"g");return e.replace(r,"$1 °$3$4")}}),Typograf.rule({title:"(c) → ©, (tm) → ©, (r) → ™",name:"sym/copy",sortIndex:10,func:function(e){return e.replace(/\(r\)/gi,"®").replace(/\((c|с)\)/gi,"©").replace(/\(tm\)/gi,"™")}}),Typograf.rule({title:"1/2 → ½, 1/4 → ¼, 3/3 → ¾",name:"sym/fraction",sortIndex:1120,func:function(e){return e.replace(/(^|\D)1\/2(\D|$)/g,"$1½$2").replace(/(^|\D)1\/4(\D|$)/g,"$1¼$2").replace(/(^|\D)3\/4(\D|$)/g,"$1¾$2")}}),Typograf.rule({title:"... → …",name:"sym/hellip",sortIndex:20,func:function(e){return e.replace(/(^|[^.])\.{3,4}([^.]|$)/g,"$1…$2")}}),Typograf.rule({title:"+- → ±",name:"sym/plusMinus",sortIndex:1010,func:function(e){var r=new RegExp("(^| |\\>| )\\+-(\\d)","g");return e.replace(r,"$1±$2").replace(/(^\s*)\+-(\s*$)/g,"$1±$2")}}),Typograf.rule({title:"x → ×",name:"sym/times",sortIndex:1050,func:function(e){return e.replace(/(\d) ?(x|х) ?(\d)/g,"$1×$3")}}),Typograf._sortRules(),Typograf._needSortRules=!0; |
{ | ||
"name": "typograf", | ||
"description": "The client and server typographer", | ||
"version": "1.2.4", | ||
"version": "1.2.5", | ||
"author": { | ||
@@ -10,3 +10,3 @@ "name": "Denis Seleznev", | ||
}, | ||
"main": "typograf.js", | ||
"main": "dist/typograf.js", | ||
"homepage": "https://github.com/hcodes/typograf", | ||
@@ -39,7 +39,7 @@ "repository": { | ||
"test": "npm run-script jshint && npm run-script check-style && npm run-script unit-test-coverage", | ||
"check-style": "./node_modules/.bin/jscs .", | ||
"jshint": "./node_modules/.bin/jshint .", | ||
"unit-test": "./node_modules/.bin/mocha -u bdd -R spec --recursive test", | ||
"unit-test-coverage": "./node_modules/.bin/istanbul cover ./node_modules/mocha/bin/_mocha -- -u bdd -R spec --recursive test", | ||
"check-style": "./node_modules/.bin/jscs ." | ||
"unit-test-coverage": "./node_modules/.bin/istanbul cover ./node_modules/mocha/bin/_mocha -- -u bdd -R spec --recursive test" | ||
} | ||
} |
@@ -13,3 +13,7 @@ var assert = require('chai').assert, | ||
['1\r\n2\r\n3', '1\n2\n3'], // Windows | ||
['1\r\r2\r3', '1\n\n2\n3'] // MacOS | ||
['1\r\r2\r3', '1\n\n2\n3'], // MacOS | ||
[0, '0'], | ||
[null, 'null'], | ||
['', ''], | ||
[undefined, 'undefined'] | ||
]; | ||
@@ -16,0 +20,0 @@ |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
134
22494
0
1189583