Helper functions
To help you write your own templates in JavaScript, the extension provides helper functions via a global object - zoteroRoam. You may have come across them in the Getting Started section, in the code for the default formatting function.
All available functions are described below ; note that the arguments item, pdfs, and notes correspond to the arguments your custom function receives from the extension.
// Let's say you're writing a custom function called myFunction
// It will be passed 3 arguments by the extension, in order:
// - item: the raw metadata for the Zotero item
// - pdfs: the raw metadata for the PDF(s) linked to the Zotero item
// - notes: the raw metadata for the notes/annotations linked to the Zotero item
window.myFunction = function(item, pdfs, notes){
let metadata = [];
// Inside of your function, you can use helpers like so:
metadata.push(`Type:: ` + zoteroRoam.getItemType(item));
if(notes.length > 0){
metadata.push({
string: "[[Notes]]",
children: zoteroRoam.formatNotes(notes)
})
}
return metadata;
}List of functions
zoteroRoam.formatNotes(notes)
Args
notes - the notes/annotations linked to the Zotero item
Returns
The notes/annotations, formatted according to current user settings.
Usage
zoteroRoam.formatPDFs(pdfs)
Args
pdfs - the PDFs linked to the Zotero item
as - the format in which to return the PDFs' information. Values: string|links|identity . Default : "string".
Returns
The list of PDFs, according to the configuration provided.
Usage
zoteroRoam.getItemChildren(item)
You normally won't need to use this method, since your function will receive the item's PDFs and notes/annotations as arguments.
Args
item - the Zotero item
Returns
An Array containing the raw metadata of all the item's linked PDFs, notes, and annotations.
Usage
async zoteroRoam.getItemCitation(item)
Refer to the Zotero API documentation for details and accepted values.
Args
item - the Zotero item
config - additional configuration Object. Properties available :
style- the citation style to use. Default : "chicago-note-bibliography".locale- the locale to use when generating the citation. Default : "en-US".linkwrap- whether URLs and DOIs should render as links. Values :0|1. Default : 0.
Returns
A formatted citation for the item, according to the configuration provided.
Usage
zoteroRoam.getItemCollections(item)
Args
item - the Zotero item
config - additional configuration Object. Properties available:
brackets: whether to surround the collection names in brackets. Values:true|false. Default : true.return_as: the format in which the collection names should be returned. Values:"string"|"array". Default: "string".
Returns
The names of the item's Zotero collections, formatted according to the configuration provided.
Usage
zoteroRoam.getItemCreators(item)
Args
item - the Zotero item
config - additional configuration Object. Properties available:
brackets: whether to surround the creator names in brackets. Values:true|false|existing. Default : true.return_as: the format in which the creators should be returned. Values:"string"|"array"|"identity". Default: "string".use_type: whether to include the creator's type (author, editor, ...). Values:true|false. Default : true.
Returns
The creators of the Zotero item, formatted according to the configuration provided.
Usage
zoteroRoam.getItemDateAdded(item)
Args
item - the Zotero item
config - additional configuration Object. Properties available:
brackets: whether to surround the date with brackets. Values :true|false. Default : true.
Returns
The date on which the item was added to Zotero, in Daily Notes Page format.
Usage
zoteroRoam.getItemLink(item)
Args
item - the Zotero item
type - the type of link to generate. Values : local|web. Default : "local".
config - additional configuration Object. Properties available:
format- the format in which the link should be returned. Values :markdown|target. Default : "markdown".text- ifformat: "markdown", the text to use for the Markdown link. Default : "Local library" or "Web library", depending ontype.
Returns
A link to the item in Zotero (local app or web version).
Usage
zoteroRoam.getItemMetadata(item, pdfs, notes)
Args
item - the Zotero item
pdfs - the Zotero item's linked PDFs
notes - the Zotero item's linked notes/annotations
Returns
The output of the extension's default metadata formatter, according to current user settings.
Usage
zoteroRoam.getItemPublication(item)
Args
item - the Zotero item
config - additional configuration Object. Properties available :
brackets- whether to surround the publication with brackets. Values :true|false. Default : true.
Returns
The publication details of the item. In order, the extension will look for a publicationTitle, then a bookTitle, then a university name.
Usage
zoteroRoam.getItemRelated(item)
Args
item - the Zotero item
config - additional configuration Object. Properties available :
brackets- whether to surround the relations with brackets. Values :true|false. Default : true.return_as- the format in which to return the relations. Values :string|array|raw. Default : "string".
Returns
The list of Zotero items related to the given item, per Zotero metadata.
Usage
zoteroRoam.getItemTags(item)
Args
item - the Zotero item
config - additional configuration Object. Properties available:
brackets- whether to surround the tags with brackets. Values :true|false. Default : true.return_as- the format in which to return the tags. Values :string|array. Default : string.
Returns
The tags of the item
Usage
zoteroRoam.getItemType(item)
Args
item - the Zotero item
config - additional configuration Object. Properties available :
brackets- whether to surround the type with brackets. Values :true|false. Default : true.
Returns
The item's type, according to current user settings (mapping provided in Typemap).
Usage
Last updated