Vue lecture

How to delete tags in bulk? - Zotero Forums

Script à ajouter dans l'extension Actions & Tags de Zotero permettant de supprimer les marqueurs tout en conservant certains d'entre eux

Astuce : en commentant les 2 lignes qui affichent une fenêtre pendant la suppression, cela évite de devoir cliquer des centaines, voire des milliers de fois sur OK.

// Delete tags, based on Replace tags
// This script removes all tags from the specified Zotero items, except those in the ignore list.
// add tags you wish to keep to `ignoreTags` list, the list is prefilled with two examples

(async () => {

const ignoreTags = ['#GoldSet', '#ClinicalTrials.gov', '#Cochrane Central', '#Embase', '#Medline', '#Proquest', '#Web of Science', '#WHO ICTRP'];

// ^^^^^ Add tag names here to ignore. ^^^^^^^

// Initialize `targetItems` to the array of `items`, or if `items` is undefined,
// use the single `item` wrapped in an array. If neither exists, default to an empty array.
let targetItems = items || (item ? [item] : []);

// Show an alert message
// await Zotero.alert(null, "Delete all tags except ignored ones");

// Iterate over each item in the `targetItems` array.
for (const currentItem of targetItems) {

// Retrieve all tags associated with the current item.
// Use `.getTags()` to get tag objects, and map to their `tag` property to get tag names.
const tags = currentItem.getTags().map(tag => tag.tag);

// Iterate over each tag in the list of tag names.
for (const tag of tags) {

// Check if the tag is in the ignore list.
if (ignoreTags.includes(tag)) {

// Alert the user that the tag is being skipped.
// await Zotero.alert(null, `Tag "${tag}" is in the ignore list and will not be deleted.`);
continue;
}

// Remove the tag from the current item using `.removeTag()`.
await currentItem.removeTag(tag);
}
}

// The script finishes here.
})(); 

Permalien
  •  

cannot sync because creator name is too long - Zotero Forums

Solution simple et efficace pour régler le problème de synchronisation des références dans Zotero lorsque le prénom d'un auteur est trop long (plus de 256 caractères) parce que les données importées ne sont pas propres.

Adapté pour le prénom à partir du script proposé dans le forum :

var items = ZoteroPane.getSelectedItems();
for (let item of items) {
    if (!item.isRegularItem()) continue;
    let modified = false;
    for (let i = 0; i < item.getCreators().length; i++) {
        if (item.getCreators()[i].firstName.length > 255) {
            item.removeCreator(i);
            i--;
            modified = true;
        }
    }
    if (modified) {
        await item.saveTx();
    }
}

Permalien
  •