Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | |||
dev:client_coding:libreoffice_plugin_wire_protocol [2020/10/13 03:57] – Add import/export commands and improve/clarify other commands. adomasven | dev:client_coding:libreoffice_plugin_wire_protocol [2022/07/20 09:44] (current) – adomasven | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | < | + | ====== LibreOffice Wire Protocol ====== |
- | in the process of updating the documentation for | + | |
- | <a href=" | + | |
- | may be outdated in the meantime. Thanks for your understanding.</ | + | |
- | + | The LibreOffice plugin uses a simple wire protocol to communicate with Zotero. (The Word for Mac and Word for Windows plugins both run in process, and use AppleEvents and COM respectively to communicate with the word processor.) The below documentation applies to Zotero | |
- | ====== LibreOffice Plugin Wire Protocol ====== | + | |
- | + | ||
- | The LibreOffice plugin uses a simple wire protocol to communicate with Zotero. (The Word for Mac and Word for Windows plugins both run in process, and use AppleEvents and COM respectively to communicate with the word processor.) The below documentation applies to Zotero | + | |
===== Basics ===== | ===== Basics ===== | ||
- | The Firefox or Zotero | + | The Zotero |
There are two types of commands: [[# | There are two types of commands: [[# | ||
Line 26: | Line 20: | ||
TRANS ID LENGTH | TRANS ID LENGTH | ||
HEXADECIMAL | HEXADECIMAL | ||
- | INTERPRETATION | + | INTERPRETATION |
</ | </ | ||
Line 46: | Line 40: | ||
You can observe frame payloads sent between Zotero and LibreOffice in the Zotero [[/ | You can observe frame payloads sent between Zotero and LibreOffice in the Zotero [[/ | ||
+ | |||
===== Integration Commands ===== | ===== Integration Commands ===== | ||
- | These commands are sent from the word processor to Zotero, and do not receive a response. The command payload is always a quoted string. | + | These commands are sent from the word processor to Zotero, and do not receive a response. The command payload is always a JSON object with a `command` property, which is described below and a `templateVersion` property which is a number. The templateVersion number is used by Zotero to notify the integration user if the plugin installed in LibreOffice is outdated. The current up-to-date version is " |
^ Command ^ Description ^ | ^ Command ^ Description ^ | ||
- | | "addCitation" | Add a new citation | | + | | "addEditCitation" | Add a new or edit an existing citation | |
- | | " | + | | "addEditBibliography" | Add a new or edit an existing |
- | | "addBibliography" | Add a new bibliography | | + | | "addNote" | Insert a Zotero note into the document |
- | | "editBibliography" | Edit an existing bibliography | + | |
| " | | " | ||
| " | | " | ||
| " | | " | ||
+ | | " | ||
+ | |||
+ | An up-to-date command list is always available by looking at the methods of [[https:// | ||
===== Word Processor Commands ==== | ===== Word Processor Commands ==== | ||
Line 76: | Line 73: | ||
Zotero will cancel the current operation, log this error, and present it to the user using the [[# | Zotero will cancel the current operation, log this error, and present it to the user using the [[# | ||
+ | |||
+ | A full and up-to-date API of commands is available as part of [[https:// | ||
==== Application_getActiveDocument ==== | ==== Application_getActiveDocument ==== | ||
Line 211: | Line 210: | ||
| 1 | fieldCode | %%Integer|String%% | The code stored within this field. Since no data has been set, this should be empty. | | | 1 | fieldCode | %%Integer|String%% | The code stored within this field. Since no data has been set, this should be empty. | | ||
| 2 | noteIndex | %%Integer%% | The number of the footnote in which this field resides, or 0 if the field is not in a footnote. | | | 2 | noteIndex | %%Integer%% | The number of the footnote in which this field resides, or 0 if the field is not in a footnote. | | ||
+ | |||
+ | ==== Document_insertText ==== | ||
+ | |||
+ | Inserts rich text (HTML) at cursor position. The rich text may contain citation placeholder hyperlinks (to https:// | ||
+ | |||
+ | === Parameters === | ||
+ | |||
+ | | 0 | documentID | %%Integer|String%% | The documentID, as originally returned by [[# | ||
+ | | 1 | text | %%String%% | The text | | ||
+ | |||
+ | |||
+ | === Returns === | ||
+ | |||
+ | null | ||
+ | |||
==== Document_getFields ==== | ==== Document_getFields ==== | ||
Line 231: | Line 245: | ||
==== Document_convert ==== | ==== Document_convert ==== | ||
- | TODO | + | Converts all fields in a document to a different fieldType or noteType. Called upon style change from a an in-text to note type or vice-versa |
+ | |||
+ | === Parameters === | ||
+ | |||
+ | | 0 | documentID | %%Integer|String%% | The documentID, as originally returned by [[# | ||
+ | | 1 | fields | %%Array(String)%% | Array of field IDs to be converted | | ||
+ | | 2 | toFieldType | %%Array(String)%% | Array of field types to be converted to. Each entry is either " | ||
+ | | 3 | toNoteType | %%Array(Number)%% | Array of note types to be converted to. Each array entry corresponds to a field in the '' | ||
+ | NOTE_IN_TEXT = 0 | ||
+ | NOTE_FOOTNOTE = 1 | ||
+ | NOTE_ENDNOTE = 2 | ||
+ | </ | ||
+ | | count | %%Number%% | Size of the above arrays | | ||
+ | |||
+ | === Returns === | ||
+ | |||
+ | null | ||
+ | |||
+ | ==== Document_convertPlaceholdersToFields ==== | ||
+ | |||
+ | Converts placeholders (which are text with links to https:// | ||
+ | |||
+ | === Parameters === | ||
+ | |||
+ | | 0 | documentID | %%Integer|String%% | The documentID, as originally returned by [[# | ||
+ | | 1 | placeholderIDs | %%Array(String)%% | An array of placeholderID strings which are to be converted to citation fields in the document. | | ||
+ | | 2 | noteType | Number | Note type to convert citation placeholders to. Is one of< | ||
+ | NOTE_IN_TEXT = 0 | ||
+ | NOTE_FOOTNOTE = 1 | ||
+ | NOTE_ENDNOTE = 2 | ||
+ | </ | ||
+ | | 3 | fieldType | Number | Field type to convert to. Either `ReferenceMark` or `Bookmark` | ||
+ | | count | %%Number%% | Size of the above arrays | | ||
+ | |||
+ | === Returns === | ||
+ | |||
+ | Array of fields after conversion | ||
+ | |||
+ | (Array) | ||
+ | |||
+ | | 0 | fieldID | %%Array(Integer|String)%% | Unique identifiers for each field | | ||
+ | | 1 | fieldCode | %%Array(Integer|String)%% | The code stored in each field | | ||
+ | | 2 | noteIndex | %%Array(Integer)%% | The number of the footnote in which each field resides, or 0 if the field is not in a footnote | | ||