www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | Submodules | README | LICENSE

commit 2538e258b65354024cfb79181ba7edfd15611432
parent 2a2e5e4e395895d132596cea21ed41266d04455f
Author: fbennett <biercenator@gmail.com>
Date:   Wed,  4 Jan 2017 21:34:53 +0900

Accept variations in spacing, and single-quoted XML serialization

Diffstat:
Mchrome/content/zotero/bindings/styled-textbox.xml | 39++++++++++++++++++++++++++-------------
1 file changed, 26 insertions(+), 13 deletions(-)

diff --git a/chrome/content/zotero/bindings/styled-textbox.xml b/chrome/content/zotero/bindings/styled-textbox.xml @@ -84,7 +84,7 @@ var _rexData = [ [ [ - ["<span style=\"font-variant:small-caps;\">"], + ["<span +style=\"font-variant: *small-caps;\">"], ["{\\scaps ", "{\\scaps{}"] ], [ @@ -94,7 +94,7 @@ ], [ [ - ["<span style=\"text-decoration:underline;\">"], + ["<span +style=\"text-decoration: *underline;\">"], ["{\\ul{}", "{\\ul "] ], [ @@ -164,7 +164,7 @@ ], [ [ - ["<span style=\"font-variant:normal;\">"], + ["<span +style=\"font-variant: *normal;\">"], ["{\\scaps0{}", "{\\scaps0 "] ], [ @@ -174,7 +174,7 @@ ], [ [ - ["<span style=\"font-style:normal;\">"], + ["<span +style=\"font-style: *normal;\">"], ["{\\i0{}", "{\\i0 "] ], [ @@ -184,7 +184,7 @@ ], [ [ - ["<span style=\"font-weight:normal;\">"], + ["<span +style=\"font-weight: *normal;\">"], ["{\\b0{}", "{\\b0 "] ], [ @@ -204,6 +204,16 @@ } } + function normalizeRegExpString(str) { + if (!str) return str; + return str.replace(/\s+/g, " ") + .replace(/(?:[\+]|\s[\*])/g, "") + .replace(/[\']/g, '\"') + .replace(/:\s/g, ":"); + } + + this.normalizeRegExpString = normalizeRegExpString; + function composeRex(rexes, noGlobal) { var lst = []; for (var rex in rexes) { @@ -247,13 +257,15 @@ function openTagRemapMaker(segment) { var ret = {}; for (var i=0,ilen=_rexData.length; i < ilen; i++) { - var master = _rexData[i][0][segment][0]; + var primaryVal = normalizeRegExpString(_rexData[i][0][segment][0]); for (var j=0,jlen=_rexData[i][0][segment].length; j < jlen; j++) { - ret[_rexData[i][0][segment][j]] = master; + var key = normalizeRegExpString(_rexData[i][0][segment][j]); + ret[key] = primaryVal; } } return ret; } + this.rtfHTMLopenTagRemap = openTagRemapMaker(1); this.htmlRTFopenTagRemap = openTagRemapMaker(0); @@ -262,11 +274,11 @@ var ret = {}; var rexes = {}; for (var i=0,ilen=_rexData.length; i < ilen; i++) { - var master = _rexData[i][0][segment][0]; + var primaryVal = _rexData[i][0][segment][0]; for (var j=0,jlen=_rexData[i][1][segment].length; j < jlen; j++) { rexes[_rexData[i][1][segment][j]] = true; } - ret[master] = composeRex(rexes); + ret[primaryVal] = composeRex(rexes); } return ret; } @@ -281,14 +293,15 @@ } var ret = {}; for (var i=0,ilen=_rexData.length; i < ilen; i++) { - var master = _rexData[i][0][segment][0]; - ret[master] = { - open: _rexData[i][0][antisegment][0], + var primaryVal = normalizeRegExpString(_rexData[i][0][segment][0]); + ret[primaryVal] = { + open: normalizeRegExpString(_rexData[i][0][antisegment][0]), close: _rexData[i][1][antisegment][0] } } return ret; } + this.rtfHTMLtagRegistry = tagRegistryMaker(1); this.htmlRTFtagRegistry = tagRegistryMaker(0); @@ -311,7 +324,7 @@ this.getOpenTag = function(mode, str) { var m = str.match(this[mode + "openSniffRex"]); if (m) { - m = this[mode + "openTagRemap"][m[0]]; + m = this[mode + "openTagRemap"][this.normalizeRegExpString(m[0])]; } return m; }