diff --git a/sdkjs-plugins/content/zotero/scripts/csl/citation/citation-item-data.js b/sdkjs-plugins/content/zotero/scripts/csl/citation/citation-item-data.js index cd2934f1..26b69efc 100644 --- a/sdkjs-plugins/content/zotero/scripts/csl/citation/citation-item-data.js +++ b/sdkjs-plugins/content/zotero/scripts/csl/citation/citation-item-data.js @@ -466,6 +466,18 @@ CitationItemData.prototype.fillFromObject = function (itemDataObject) { if (creator.lastName) { author.family = creator.lastName; } + let bHasAuthor = self._author.some(function (a) { + if (a.family !== author.family && (a.family || author.family)) { + return false; + } + if (a.given !== author.given && (a.given || author.given)) { + return false; + } + return true; + }); + if (bHasAuthor) { + return; + } self._author.push(author); }, this); diff --git a/sdkjs-plugins/content/zotero/scripts/csl/citation/citation-item.js b/sdkjs-plugins/content/zotero/scripts/csl/citation/citation-item.js index 314ca620..e6191902 100644 --- a/sdkjs-plugins/content/zotero/scripts/csl/citation/citation-item.js +++ b/sdkjs-plugins/content/zotero/scripts/csl/citation/citation-item.js @@ -11,6 +11,14 @@ * @property {boolean} [`suppress-author`] */ +/** + * @typedef {Object} InfoForCitationCluster + * @property {string|number} id + * @property {boolean} `suppress-author` + * @property {string} [prefix] + * @property {string} [suffix] + */ + /** * @param {string|number} id */ diff --git a/sdkjs-plugins/content/zotero/scripts/csl/citation/citation.js b/sdkjs-plugins/content/zotero/scripts/csl/citation/citation.js index 443d346a..49a2ff65 100644 --- a/sdkjs-plugins/content/zotero/scripts/csl/citation/citation.js +++ b/sdkjs-plugins/content/zotero/scripts/csl/citation/citation.js @@ -1,14 +1,6 @@ // @ts-check /// -/** - * @typedef {Object} InfoForCitationCluster - * @property {string|number} id - * @property {boolean} `suppress-author` - * @property {string} [prefix] - * @property {string} [suffix] - */ - /** * @typedef {Object} CitationJsonData * @property {string} key