This piece of code allows you to create an Obsidian link which links directly to a reference inside Zotero, simply by dragging the reference into a note. If you’re processing research or simply want to reference a study in one of your notes, this is is helpful in speeding up the process.
Note: the code was adapted from another external translator made by Florian Wessling, which can be found here .
Some other resources for writing Zotero translators:
- dev:translators:coding [Zotero Documentation]
- dev:translators:functions [Zotero Documentation]
- kb:item types and fields [Zotero Documentation]
Save the code as a .js
file at /Users/YOURNAME/Zotero/translators
.
{
"translatorID":"f1ff9f87-3531-4db2-8cbc-7025872812f5",
"translatorType":2,
"label":"Zotero-Obsidian Quick Copy",
"creator":"Koen Raijer",
"target":"txt",
"minVersion":"2.0",
"maxVersion":"",
"priority":200,
"inRepository":false,
"displayOptions":{"exportCharset":"UTF-8"},
"lastUpdated":"2022-12-26 12:23:32"
}
// Save at: /Users/YOURNAME/Zotero/translators
function doExport() {
var output = "";
var item;
while(item = Zotero.nextItem()) {
// title and link
var selectLink = "zotero://select/items/";
var library_id = item.libraryID ? item.libraryID : 0;
selectLink += library_id + "_" + item.key;
// output += ""<a href="" + selectLink + "">" + item.title + "</a>""; // “ ”
var addition = "";
// authors
var author = "";
if (item.creators !== undefined) {
for (var a = 0; a < 1; a++) {
if (item.creators[a]["creatorType"] == "author") {
author += item.creators[a]["lastName"]; // + ", " + item.creators[a]["firstName"];
}
}
addition += author;
} else {
addition += "noauthor"
}
// date
if (item.date !== undefined && item.date.length > 0) {
addition += ", " + item.date.substring(0,4);
} else {
addition += ", nodate";
}
if (addition.length > 0) {
output += "([" + addition + "](" + selectLink + "))";
} else {
output += "([zotlink](" + selectLink + ")";
}
Zotero.debug(item);
}
Zotero.write(output);
}
Github link