commit 015a13716f1b13c9cbb16f7c374cb1c3a14a4f9e
parent 610dce7c1f7b90427003c138c15d19b41bbd5eda
Author: Dan Stillman <dstillman@zotero.org>
Date: Thu, 22 Sep 2016 00:19:02 -0400
Update citeproc-js to 1.1.133
Diffstat:
1 file changed, 39 insertions(+), 34 deletions(-)
diff --git a/chrome/content/zotero/xpcom/citeproc.js b/chrome/content/zotero/xpcom/citeproc.js
@@ -23,7 +23,7 @@
* <http://www.gnu.org/licenses/> respectively.
*/
var CSL = {
- PROCESSOR_VERSION: "1.1.131",
+ PROCESSOR_VERSION: "1.1.133",
CONDITION_LEVEL_TOP: 1,
CONDITION_LEVEL_BOTTOM: 2,
PLAIN_HYPHEN_REGEX: /(?:[^\\]-|\u2013)/,
@@ -238,42 +238,47 @@ var CSL = {
elems.push(m[i]);
}
elems.push(splt[splt.length-1])
- var names = {};
- for (var i=1,ilen=elems.length;i<ilen;i+=2) {
- var mm = elems[i].match(CSL.NOTE_FIELD_REGEXP);
- var key = mm[1];
- var val = mm[2].replace(/^\s+/, "").replace(/\s+$/, "");
- if (!Item[key]) {
- if (!validFieldsForType || validFieldsForType[key]) {
- if (CSL.DATE_VARIABLES.indexOf(key) > -1) {
- Item[key] = {raw: val};
- elems[i] = "";
- } else {
- Item[key] = val;
- }
- } else if (CSL.NAME_VARIABLES.indexOf(key) > -1) {
- if (!names[key]) {
- names[key] = [];
- }
- var lst = val.split(/\s*\|\|\s*/);
- if (lst.length === 1) {
- names[key].push({literal:lst[0]});
- } else if (lst.length === 2) {
- var name = {family:lst[0],given:lst[1]};
- CSL.parseParticles(name);
- names[key].push(name);
- }
- elems[i] = "";
+ for (var i=1,ilen=elems.length;i<ilen;i += 2) {
+ elems[i] = '\n' + elems[i].slice(2,-1).trim() + '\n';
+ }
+ elems = elems.join('').split('\n');
+ } else {
+ elems = Item.note.split('\n');
+ }
+ var names = {};
+ for (var i=0,ilen=elems.length;i<ilen;i++) {
+ var line = elems[i];
+ var mm = line.match(CSL.NOTE_FIELD_REGEXP);
+ if (!mm) continue;
+ var key = mm[1];
+ var val = mm[2].replace(/^\s+/, "").replace(/\s+$/, "");
+ if (!Item[key]) {
+ if (CSL.DATE_VARIABLES.indexOf(key) > -1) {
+ Item[key] = {raw: val};
+ } else if (CSL.NAME_VARIABLES.indexOf(key) > -1) {
+ if (!names[key]) {
+ names[key] = [];
+ }
+ var lst = val.split(/\s*\|\|\s*/);
+ if (lst.length === 1) {
+ names[key].push({literal:lst[0]});
+ } else if (lst.length === 2) {
+ var name = {family:lst[0],given:lst[1]};
+ CSL.parseParticles(name);
+ names[key].push(name);
}
+ } else {
+ Item[key] = val;
}
- if (name === "type") {
- Item.type = val;
- }
- Item.note = elems.join("");
+ elems[i] = "";
}
- for (var key in names) {
- Item[key] = names[key];
+ if (name === "type") {
+ Item.type = val;
}
+ Item.note = elems.join("");
+ }
+ for (var key in names) {
+ Item[key] = names[key];
}
},
GENDERS: ["masculine", "feminine"],
@@ -365,7 +370,7 @@ var CSL = {
VIETNAMESE_SPECIALS: /[\u00c0-\u00c3\u00c8-\u00ca\u00cc\u00cd\u00d2-\u00d5\u00d9\u00da\u00dd\u00e0-\u00e3\u00e8-\u00ea\u00ec\u00ed\u00f2-\u00f5\u00f9\u00fa\u00fd\u0101\u0103\u0110\u0111\u0128\u0129\u0168\u0169\u01a0\u01a1\u01af\u01b0\u1ea0-\u1ef9]/,
VIETNAMESE_NAMES: /^(?:(?:[.AaBbCcDdEeGgHhIiKkLlMmNnOoPpQqRrSsTtUuVvXxYy \u00c0-\u00c3\u00c8-\u00ca\u00cc\u00cd\u00d2-\u00d5\u00d9\u00da\u00dd\u00e0-\u00e3\u00e8-\u00ea\u00ec\u00ed\u00f2-\u00f5\u00f9\u00fa\u00fd\u0101\u0103\u0110\u0111\u0128\u0129\u0168\u0169\u01a0\u01a1\u01af\u01b0\u1ea0-\u1ef9]{2,6})(\s+|$))+$/,
NOTE_FIELDS_REGEXP: /\{:(?:[\-_a-z]+|[A-Z]+):[^\}]+\}/g,
- NOTE_FIELD_REGEXP: /\{:([\-_a-z]+|[A-Z]+):\s*([^\}]+)\}/,
+ NOTE_FIELD_REGEXP: /^([\-_a-z]+|[A-Z]+):\s*([^\}]+)$/,
DISPLAY_CLASSES: ["block", "left-margin", "right-inline", "indent"],
NAME_VARIABLES: [
"author",