3069 shaares
281 liens privés
281 liens privés
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.
})();