Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
dev:client_coding:javascript_api [2019/01/22 04:37] dstillmandev:client_coding:javascript_api [2019/10/20 06:32] – [Managing citations and bibliographies] zuphilip
Line 8: Line 8:
 ===== Running Ad Hoc JavaScript in Zotero ===== ===== Running Ad Hoc JavaScript in Zotero =====
  
-Zotero 5.0.61 and later include an option to run arbitrary privileged JavaScript:+Zotero includes an option to run arbitrary privileged JavaScript:
  
-  - In the Advanced pane of the Zotero preferences, select Config Editor, and then set ''devtools.chrome.enabled'' to ''true'' and restart Zotero. +  - In the Tools → Developer menu, select Run JavaScript. Opening the Error Console, which appears in the same menu, will also be helpful.
-  - In the Tools menu, select Run JavaScript. Open the Error Console, which also appears in Tools, will also be helpful.+
   - In the window that opens, enter JavaScript in the Code textbox and click Run or press Cmd-R/Ctrl-R.   - In the window that opens, enter JavaScript in the Code textbox and click Run or press Cmd-R/Ctrl-R.
  
-To run asynchronous code, check the "Run as async function" checkbox. This runs the entered code wrapped in an [[https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function|async function]], allowing you to use ''await'' to wait for the resolution of promises returned by functions. Most Zotero functions that access the database, disk, or network are asynchronous. In this mode, the value of a ''return'' statement will be displayed in the right-hand pane upon successful completion.+When running **asynchronous** code containing ''await'', the entered code is wrapped in an [[https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function|async function]], allowing you to wait for the resolution of promises returned by functions. Most Zotero functions that access the database, disk, or network are asynchronous. In this mode, the value of a ''return'' statement will be displayed in the right-hand pane upon successful completion. E.g. returning the currently selected item(s)
  
-In synchronous mode, the value of the final line will appear in the right-hand pane.+<code javascript> 
 +var items = Zotero.getActiveZoteroPane().getSelectedItems(); 
 +return items; 
 +</code>
  
-(Before Zotero 5.0.61 is releasedyou'll need to install the [[:dev_builds|Zotero beta]] to use this feature.)+In **synchronous** mode, the value of the final line will appear in the right-hand paneThe same result as above could be achieved in synchonous mode with
  
 +<code javascript>
 +var items = Zotero.getActiveZoteroPane().getSelectedItems();
 +items;
 +</code>
 ===== Zotero Code Architecture ===== ===== Zotero Code Architecture =====
  
Line 236: Line 242:
 <code javascript>var items = await Zotero.Items.getAsync(results);</code> <code javascript>var items = await Zotero.Items.getAsync(results);</code>
  
-===== Managing citations and bibliographies =====+==== Managing citations and bibliographies ====
  
 TODO:  this is pretty sparse.  the rtfscan code is a good place to look for some guidance. TODO:  this is pretty sparse.  the rtfscan code is a good place to look for some guidance.
  
-==== Getting a bibliography for an array of items: ====+=== Getting a bibliography for an array of items: ===
  
 Here we use Zotero's Quick Copy functions to get a bibliography in the style Here we use Zotero's Quick Copy functions to get a bibliography in the style
Line 248: Line 254:
  
 <code javascript>var qc = Zotero.QuickCopy; <code javascript>var qc = Zotero.QuickCopy;
-var biblio qc.getContentFromItems([item], Zotero.Prefs.get("export.quickCopy.setting")); +var format = Zotero.Prefs.get("export.quickCopy.setting")
-var biblio_html_format = cite.html; +if (format.split("=")[0] !== "bibliography") { 
-var biblio_txt  cite.text; +   return "No bibliography style is choosen in the settings for QuickCopy."; 
 +
 +var biblio = qc.getContentFromItems([item], format); 
 +var biblio_html_format = biblio.html; 
 +var biblio_txt = biblio.text;
 </code> </code>
  
-==== Get a list of available styles ====+=== Get a list of available styles ===
  
 <code javascript>  <code javascript> 
dev/client_coding/javascript_api.txt · Last modified: 2022/07/02 18:22 by dstillman