跳转至

14

批量修改作者姓名为首字母大写

某些网站文章利用connector导入Zotero后作者名字全部为大写, 如HYDRODYNAMICS AND ENERGETICS OF FISH PROPULSIONCiNii Articles - Environmental factors and growth 用Zotero插入Word中时,如果参考文献要求作者姓名首字母大写, 其余小写,通过修改csl文件中作者姓名大小写无法实现要求。 只能手动修改Zotero条目的作者大小写来实现, 一个一个作者修改太麻烦,参考以前代码, 编写了以下代码可以实现批量修改Zotero条 目中作者大小写为首字母大写其他小写。

实现方法:

  1. 在Zotero中将需要修改作者大小写的文献条目加上”try”的标签, 不含引号,也可以改为其他的名称,在JavaScript代码中也相应修改即可)

  2. 复制以下代码:

    var newFieldMode = 0; // 0: two-field, 1: one-field (with empty first name)
                            var s = new Zotero.Search();
                            s.libraryID = ZoteroPane.getSelectedLibraryID();
                            var tagName = 'try'; //需要提前将需要修改的项目添加标签
                            s.addCondition('tag', 'is', tagName);
                            //s.addCondition('creator', 'is', oldName);
    
                            var ids = await s.search();
                                if (!ids.length) {
                                return "No items found";
                            }
    
                            await Zotero.DB.executeTransaction(async function () {
                                    for (let id of ids) {
                                        var item = await Zotero.Items.getAsync(id);
                                        var creators = item.getCreators();
    
                                        let newCreators = [];
                                        for (let creator of creators) {
                                            creator.firstName = titleCase(creator.firstName.trim());
                                            creator.lastName = titleCase(creator.lastName.trim());
                                            creator.fieldMode = newFieldMode;
                                            newCreators.push(creator);
                                            } 
                                        item.setCreators(newCreators);
                                        await item.save();
                                        }  
    
                            }); 
                            return ids.length + "个条目作者变为作者首字母大写。";
    
    
                            function titleCase(str) {    var newStr = str.split(" ");    for(var i = 0; i<newStr.length; i++){
                                    newStr[i] = newStr[i].slice(0,1).toUpperCase() + newStr[i].slice(1).toLowerCase();
                                }    return newStr.join(" ");
                            }
    
  3. 在Zotero中依次点击Tools-Developer-Run JavaScript:

  4. 将JavaScript代码粘贴到代码框中,点击Run。 则加try标签的文献作者就会改为作者大小写为首字母大写其他小写 (无论作者以前是大写还是小写)。 因为前面没有对作者大小写进行判断,因此,代码的输出值仅供参考。

作者姓名批量修改为首字母大写具体操作也可见, Zotero作者姓名批量修改为首字母大写。 首字母大写设置脚本参考了 javascript如何设置字符串首字母大写, 在此感谢。


最后更新: 2022-07-31 20:47:38