180 lines
6.0 KiB
Markdown
180 lines
6.0 KiB
Markdown
# LMathPluginAPI
|
|
|
|
This is a documentation-ish for the `LMathPluginAPI` object, revealed to plugins at the init phase.
|
|
|
|
## Common
|
|
These methods and variables are available on both the backend part and the frontend part.
|
|
|
|
### api.getVersion()
|
|
Returns current L'Math version.
|
|
|
|
### api.getSettings()
|
|
Returns the settings object. If you need to modify settings, please see ___ (WIP).
|
|
|
|
### api.getUserSetting()
|
|
Returns the user settings object. If you need to modify settings, please see ___ (WIP).
|
|
|
|
----
|
|
|
|
### api.events
|
|
The event-specific API
|
|
#### events.on(eventName, callback)
|
|
Allows you to listen to L'Math-specific events.
|
|
#### events.fire(eventName, eventData)
|
|
Allows you to fire a custom-named event. The data will be passed as
|
|
|
|
----
|
|
|
|
### api.messages
|
|
The messaging-specific API
|
|
#### messages.on(messageName, callback)
|
|
Allows you to listen to plugin-specific IPC messages between the backend and the frontend.
|
|
Any data sent will be passed as an argument to the callback function.
|
|
**Just like with regular ipc messaging, you can't send functions or other non-json types.**
|
|
#### messages.send(messageName, messageData)
|
|
Allows you to send plugin-specific IPC messages between the backend and the frontend.
|
|
The messageData object will be converted to JSON and passed as a parsed object to any listeners on the other process.
|
|
**Just like with regular ipc messaging, you can't send functions or other non-json types.**
|
|
|
|
|
|
|
|
## Backend
|
|
|
|
### api.getSessionId() (`String`)
|
|
Returns the current session identifier
|
|
### api.getArgs() (`Array` of `String`)
|
|
Returns the process arguments
|
|
|
|
### api.getLogger() (lo4js logger)
|
|
Returns the `log4js` logger.
|
|
### api.getWindow() (`BrowserWindow`)
|
|
Returns the main Electron window of the app
|
|
### api.getDataFolder() (`String`)
|
|
Returns the absolute path to L'Math's data folder
|
|
### api.getTempFolder() (`String`)
|
|
Returns the absolute path to the session-specific temp folder
|
|
### api.getPluginsFolder() (`String`)
|
|
Returns the absolute path to L'Math's plugin folder
|
|
|
|
### api.getCurrentFile() (`String`)
|
|
Returns the absolute path of the current file (or an empty string or null if none)
|
|
### api.openDevTools()
|
|
Opens developer tools in the main window
|
|
|
|
### api.renderFormula(latex (`String`), callback (`function`))
|
|
Uses the built-in MathQuill instance to render TeX to SVG.
|
|
Does not trigger the `formulaRender` or `formulaRendered` events.
|
|
|
|
----
|
|
|
|
### events
|
|
|
|
* `fileOpened`
|
|
* Called when a file has been succesfully opened
|
|
* Event data:
|
|
* `file` - the absolute path to the file
|
|
* `content` - a brief content description of the file
|
|
* `fileSaved`
|
|
* Called when a file has been succesfully saved
|
|
* Event data:
|
|
* `file` - the absolute path to the file
|
|
* `pageImport`
|
|
* Called when a page is about to be loaded from file (and possibly safe-checked)
|
|
* Event data:
|
|
* `pageId` - the id of the page
|
|
* `content` - the HTML contents, **can be modified**
|
|
* `pageLoaded`
|
|
* Called when a page has been loaded (from file or from cache) and is about to be sent to the frontend
|
|
* Event data
|
|
* `pageId` - the id of the page
|
|
* `content` - the HTML contents, **can be modified**
|
|
* `pageSave`
|
|
* Called before saving a page to its temporary file
|
|
* Event data
|
|
* `pageId` - the id of the page
|
|
* `content` - the HTML contents, **can be modified**
|
|
* `pageSaved`
|
|
* Called when a page has been succesfully saved to its temporary file
|
|
* Event data
|
|
* `pageId` - the id of the page
|
|
* `formulaRender`
|
|
* Called before rendering a LaTeX formula
|
|
* Event data
|
|
* `number` - value of the formula counter
|
|
* `latex` - the TeX code, **can be modified**
|
|
* `formulaRendered`
|
|
* Called before rendering a LaTeX formula
|
|
* Event data
|
|
* `number` - value of the formula counter
|
|
* `svg` - the SVG content, **can be modified**
|
|
|
|
## Frontend
|
|
|
|
### api.getWindow() (`window`)
|
|
Returns the vanilla JS `window` object.
|
|
### api.getDocument() (`document`)
|
|
Returns the vanilla JS `window.document` object.
|
|
### api.getJQuery() (`jQuery`)
|
|
Returns the jQuery (`$`) object of the window.
|
|
|
|
----
|
|
|
|
### api.gui
|
|
All returned elements are **plain DOM objects**, not jQuery objects.
|
|
|
|
#### gui.getEditor()
|
|
Returns the main ContentEditable editor area (`#_editor_area`)
|
|
#### gui.getSidebar()
|
|
Returns the left-hand side sidebar (`#_work_tabs`)
|
|
#### gui.getToolbox()
|
|
Returns the main top toolbar (`#_toolbox`)
|
|
#### gui.getTextToolbar()
|
|
Returns the text toolbar (`#_bottom_row`)
|
|
#### gui.getCalc()
|
|
Returns the T'Calc addon calculator window (`#_minicalc`)
|
|
#### gui.getImageToolbox()
|
|
Returns the floating image toolbox (`#_image_editor`)
|
|
#### gui.getSpinner()
|
|
Returns the loading spinner
|
|
#### gui.getSpinnerDimmer()
|
|
Returns the loading spinner dimmer
|
|
#### gui.getDialogContainer()
|
|
Returns the special dialog container (that contains e.g. the welcome and settings dialogs)
|
|
|
|
----
|
|
|
|
### events
|
|
* `worksheetLoading`
|
|
* Called when a worksheet is being loaded
|
|
* `worksheetOpened`
|
|
* Called when a worksheet has been opened (probably from a file)
|
|
* Event data:
|
|
* `content` - the brief contents of the file, **can be modified**, but please don't
|
|
* `worksheetSaved`
|
|
* Called when a worksheet has been saved
|
|
* `worksheetReset`
|
|
* Called when a new worksheet has been initialized
|
|
* `formulaRender`
|
|
* Called before a LaTeX formula is sent to the renderer
|
|
* Event data:
|
|
* `latex` - the LaTeX input, **can be modified**
|
|
* `pageSave`
|
|
* Called before saving the contents of a page
|
|
* Event data:
|
|
* `pageId` - the id of the page
|
|
* `content` - the HTML content, **can be modified**
|
|
* `data` - page metadata object, **can be modified**
|
|
* `pageLoad`
|
|
* Called before loading a page
|
|
* Event data
|
|
* `pageId` - the id of the page to be loaded
|
|
* `pageLoaded`
|
|
* Called when a page has been loaded and is about to be shown
|
|
* Event data
|
|
* `content` - the HTML content, **can be modified**
|
|
* `pageAdd`
|
|
* Called when a page is about to be created
|
|
* Event data:
|
|
* `pageName` - the name of the new page, **can be modified**
|
|
|