Update citeproc-js to version 1.0.298 (note that previous 1.0.295 tag update is mis-applied and anachronistic)

This commit is contained in:
Frank 2012-03-06 07:23:26 +08:00 committed by Simon Kornblith
parent 74af1fbb8c
commit 25862e3af0

View file

@ -2153,7 +2153,7 @@ CSL.DateParser = function () {
};
CSL.Engine = function (sys, style, lang, forceLang) {
var attrs, langspec, localexml, locale;
this.processor_version = "1.0.297";
this.processor_version = "1.0.298";
this.csl_version = "1.0";
this.sys = sys;
this.sys.xml = new CSL.System.Xml.Parsing();
@ -5019,9 +5019,11 @@ CSL.Node.key = {
func = CSL.dateAsSortKey;
single_text.variables = this.variables;
} else if ("title" === variable) {
state.transform.init("empty", "title");
state.transform.setTransformFallback(true);
func = state.transform.getOutputFunction(this.variables);
var abbrevfam = "title";
var abbrfall = false;
var altvar = false;
var transfall = true;
func = state.transform.getOutputFunction(this.variables, abbrevfam, abbrfall, altvar, transfall);
} else {
func = function (state, Item) {
var varval = Item[variable];
@ -7524,25 +7526,26 @@ CSL.Node.text = {
};
this.execs.push(func);
if (CSL.MULTI_FIELDS.indexOf(this.variables_real[0]) > -1) {
var abbrevfam = this.variables[0];
var abbrfall = false;
var altvar = false;
var transfall = false;
if (form === "short") {
state.transform.init(this, this.variables_real[0], this.variables_real[0]);
if (this.variables_real[0] === "container-title") {
state.transform.setAlternativeVariableName("journalAbbreviation");
altvar = "journalAbbreviation";
} else if (this.variables_real[0] === "title") {
state.transform.setAlternativeVariableName("shortTitle");
altvar = "shortTitle";
}
} else {
state.transform.init(this, this.variables_real[0]);
abbrevfam = false;
}
if (state.build.extension) {
state.transform.init(this, this.variables_real[0], this.variables_real[0]);
state.transform.setTransformFallback(true);
func = state.transform.getOutputFunction(this.variables);
transfall = true;
} else {
state.transform.setTransformFallback(true);
state.transform.setAbbreviationFallback(true);
func = state.transform.getOutputFunction(this.variables);
transfall = true;
abbrfall = true;
}
func = state.transform.getOutputFunction(this.variables, abbrevfam, abbrfall, altvar, transfall);
if (this.variables_real[0] === "container-title") {
var xfunc = function (state, Item, item) {
if (Item['container-title'] && state.tmp.citeblob.has_volume) {
@ -8207,7 +8210,7 @@ CSL.Attributes["@position"] = function (state, arg) {
state.opt.update_mode = CSL.POSITION;
if ("near-note" === arg) {
var near_note_func = function (state, Item, item) {
if (item && item["near-note"]) {
if (item && item["position"] === CSL.POSITION_SUBSEQUENT && item["near-note"]) {
return true;
}
return false;
@ -8626,17 +8629,6 @@ CSL.Transform = function (state) {
var debug = false, abbreviations, token, fieldname, abbrev_family, opt;
this.abbrevs = {};
this.abbrevs["default"] = new state.sys.AbbreviationSegments();
function init(mytoken, myfieldname, myabbrev_family) {
token = mytoken;
fieldname = myfieldname;
abbrev_family = myabbrev_family;
opt = {
abbreviation_fallback: false,
alternative_varname: false,
transform_fallback: false
};
}
this.init = init;
function abbreviate(state, Item, altvar, basevalue, myabbrev_family, use_field) {
var value;
if (!myabbrev_family) {
@ -8705,18 +8697,6 @@ CSL.Transform = function (state) {
}
return ret;
}
function setAbbreviationFallback(b) {
opt.abbreviation_fallback = b;
}
this.setAbbreviationFallback = setAbbreviationFallback;
function setAlternativeVariableName(s) {
opt.alternative_varname = s;
}
this.setAlternativeVariableName = setAlternativeVariableName;
function setTransformFallback(b) {
opt.transform_fallback = b;
}
this.setTransformFallback = setTransformFallback;
function loadAbbreviation(jurisdiction, category, orig) {
var pos, len;
if (!jurisdiction) {
@ -8724,7 +8704,7 @@ CSL.Transform = function (state) {
}
if (!orig) {
if (!this.abbrevs[jurisdiction]) {
this.abbrevs[jurisdiction] = new state.sys..AbbreviationSegments();
this.abbrevs[jurisdiction] = new state.sys.AbbreviationSegments();
}
return jurisdiction;
}
@ -8775,15 +8755,9 @@ CSL.Transform = function (state) {
}
return false;
}
function getOutputFunction(variables) {
var myabbrev_family, myfieldname, abbreviation_fallback, alternative_varname, transform_locale, transform_fallback, getTextSubfield;
myabbrev_family = abbrev_family;
myfieldname = fieldname;
var abbreviation_fallback = opt.abbreviation_fallback;
var alternative_varname = opt.alternative_varname;
var transform_fallback = opt.transform_fallback;
function getOutputFunction(variables, myabbrev_family, abbreviation_fallback, alternative_varname, transform_fallback) {
var localesets;
var langPrefs = CSL.LangPrefsMap[myfieldname];
var langPrefs = CSL.LangPrefsMap[variables[0]];
if (!langPrefs) {
localesets = false;
} else {
@ -8828,7 +8802,7 @@ CSL.Transform = function (state) {
}
return null;
}
var res = getTextSubField(Item, myfieldname, slot.primary, true);
var res = getTextSubField(Item, variables[0], slot.primary, true);
primary = res.name;
if (publisherCheck(this, Item, primary, myabbrev_family)) {
return null;
@ -8836,11 +8810,11 @@ CSL.Transform = function (state) {
secondary = false;
tertiary = false;
if (slot.secondary) {
res = getTextSubField(Item, myfieldname, slot.secondary, false, res.usedOrig);
res = getTextSubField(Item, variables[0], slot.secondary, false, res.usedOrig);
secondary = res.name;
}
if (slot.tertiary) {
res = getTextSubField(Item, myfieldname, slot.tertiary, false, res.usedOrig);
res = getTextSubField(Item, variables[0], slot.tertiary, false, res.usedOrig);
tertiary = res.name;
}
if (myabbrev_family) {
@ -11156,44 +11130,6 @@ CSL.Registry.prototype.doinserts = function (mylist) {
}
}
}
if (this.state.sys.getAbbreviation) {
for (var field in this.state.transform.abbrevs["default"]) {
switch (field) {
case "place":
if (Item["publisher-place"]) {
this.state.transform.loadAbbreviation(Item.jurisdiction, "place", Item["publisher-place"]);
} else if (Item["event-place"]) {
this.state.transform.loadAbbreviation(Item.jurisdiction, "place", Item["event-place"]);
}
break;
case "institution-part":
for (var creatorVar in CSL.CREATORS) {
for (var creatorList in Item[creatorVar]) {
for (j = 0, jlen = creatorList.length; j < jlen; j += 1) {
if (creatorList[j].isInstitution) {
var subOrganizations = creatorList[j].literal;
if (!subOrganizations) {
subOrganizations = creatorList[j].family;
}
if (subOrganizations) {
subOrganizations = subOrganizations.split(/\s*|\s*/);
for (k = 0, klen = subOrganizations.length; k < klen; k += 1) {
this.state.transform.loadAbbreviation(Item.jurisdiction, "institution-part", subOrganizations[k]);
}
}
}
}
}
}
break;
default:
if (Item[field]) {
this.state.transform.loadAbbreviation(Item.jurisdiction, field, Item[field]);
}
break;
}
}
}
akey = CSL.getAmbiguousCite.call(this.state, Item);
this.akeys[akey] = true;
newitem = {