commit a47174748ec5bfb64747bd2274d59ad2b90506ad
parent 2296d1f6aca1e18c97de5b0dee3dddd160aaa409
Author: Simon Kornblith <simon@simonster.com>
Date: Thu, 16 Feb 2012 07:56:40 -0500
Update to citeproc-js 1.0.285
Diffstat:
1 file changed, 30 insertions(+), 13 deletions(-)
diff --git a/chrome/content/zotero/xpcom/citeproc.js b/chrome/content/zotero/xpcom/citeproc.js
@@ -2148,7 +2148,7 @@ CSL.DateParser = function () {
};
CSL.Engine = function (sys, style, lang, forceLang) {
var attrs, langspec, localexml, locale;
- this.processor_version = "1.0.283";
+ this.processor_version = "1.0.285";
this.csl_version = "1.0";
this.sys = sys;
this.sys.xml = new CSL.System.Xml.Parsing();
@@ -7500,6 +7500,9 @@ CSL.Node.text = {
} else {
state.transform.setTransformFallback(true);
state.transform.setAbbreviationFallback(true);
+ if (this.variables_real[0] === "subjurisdiction") {
+ state.transform.setSuppressMonitor("container-title");
+ }
func = state.transform.getOutputFunction(this.variables);
}
if (this.variables_real[0] === "container-title") {
@@ -7554,14 +7557,16 @@ CSL.Node.text = {
}
};
} else if (this.variables_real[0] === "hereinafter") {
- func = function (state, Item) {
- var hereinafter_info = state.transform.getHereinafter(Item);
- var value = state.transform.abbrevs[hereinafter_info[0]].hereinafter[hereinafter_info[1]];
- if (value) {
- state.tmp.group_context.value()[2] = true;
- state.output.append(value, this);
- }
- };
+ if (state.sys.getAbbreviation) {
+ func = function (state, Item) {
+ var hereinafter_info = state.transform.getHereinafter(Item);
+ var value = state.transform.abbrevs[hereinafter_info[0]].hereinafter[hereinafter_info[1]];
+ if (value) {
+ state.tmp.group_context.value()[2] = true;
+ state.output.append(value, this);
+ }
+ };
+ }
} else if (this.variables_real[0] === "URL") {
func = function (state, Item) {
var value;
@@ -8585,7 +8590,8 @@ CSL.Transform = function (state) {
opt = {
abbreviation_fallback: false,
alternative_varname: false,
- transform_fallback: false
+ transform_fallback: false,
+ suppress_monitor: false
};
}
this.init = init;
@@ -8661,6 +8667,10 @@ CSL.Transform = function (state) {
opt.abbreviation_fallback = b;
}
this.setAbbreviationFallback = setAbbreviationFallback;
+ function setSuppressMonitor(b) {
+ opt.suppress_monitor = b;
+ }
+ this.setSuppressMonitor = setSuppressMonitor;
function setAlternativeVariableName(s) {
opt.alternative_varname = s;
}
@@ -8731,9 +8741,10 @@ CSL.Transform = function (state) {
var myabbrev_family, myfieldname, abbreviation_fallback, alternative_varname, transform_locale, transform_fallback, getTextSubfield;
myabbrev_family = abbrev_family;
myfieldname = fieldname;
- abbreviation_fallback = opt.abbreviation_fallback;
- alternative_varname = opt.alternative_varname;
- transform_fallback = opt.transform_fallback;
+ var abbreviation_fallback = opt.abbreviation_fallback;
+ var alternative_varname = opt.alternative_varname;
+ var transform_fallback = opt.transform_fallback;
+ var suppress_monitor = opt.suppress_monitor;
var localesets;
var langPrefs = CSL.LangPrefsMap[myfieldname];
if (!langPrefs) {
@@ -8797,6 +8808,12 @@ CSL.Transform = function (state) {
}
if (myabbrev_family) {
primary = abbreviate(state, Item, alternative_varname, primary, myabbrev_family, true);
+ if (suppress_monitor && primary) {
+ suppressing_partner = abbreviate(state, Item, false, Item["container-title"], "container-title", true);
+ if (suppressing_partner && suppressing_partner.slice(0, primary.length) === primary) {
+ return null;
+ }
+ }
secondary = abbreviate(state, Item, false, secondary, myabbrev_family, true);
tertiary = abbreviate(state, Item, false, tertiary, myabbrev_family, true);
}