Zotero题录信息批量修改
首先打开zotero,点击工具→开发者→Run JavaScript
参考文献题目格式批量修改
将下面代码复制进入Run JavaScript,点击Run
zoteroPane = Zotero.getActiveZoteroPane();
items = zoteroPane.getSelectedItems();
var result = "";
for (item of items) {
var title = item.getField('title');
result += " " + title + "\n";
var new_title = title.replace(/\b([A-Z][a-z0-9]+|A)\b/g, function (x) { return x.toLowerCase(); });
new_title = new_title.replace(/(^|\?\s*)[a-z]/, function (x) { return x.toUpperCase(); });
result += "-> " + new_title + "\n\n";
// // Do it at your own risk
item.setField('title', new_title);
await item.saveTx();
}
return result;
下图为所选中题录的修改结果,可以看到修改后只有第一个单词首字母大写
参考文献期刊格式批量修改
与上面题名修改步骤相同,将下面的代码复制到Run JavaScript,点击Run
var items = ZoteroPane.getSelectedItems();
// 需保持大写的期刊
var uppercaseJournals = ['ACS', 'RSC'];
// 介词保持小写
var lowercaseWords = ['a', 'an', 'in', 'on', 'the', 'of', 'and', 'for', 'with', 'to'];
for (var i = 0; i < items.length; i++) {
var item = items[i];
var itemType = Zotero.ItemTypes.getName(item.itemTypeID);
if (itemType === 'journalArticle') {
var pubTitle = item.getField('publicationTitle');
// 分割标题为单词,调整大小写
var formattedPubTitle = pubTitle.replace(/\b\w+/g, function(txt) {
if (uppercaseJournals.includes(txt.toUpperCase())) {
return txt.toUpperCase();
} else if (lowercaseWords.includes(txt.toLowerCase())) {
return txt.toLowerCase();
} else {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
}
});
item.setField('publicationTitle', formattedPubTitle);
await item.saveTx();
}
}
return "adjust completed";
可以看到,代码运行之后期刊格式修改成功。