2020-10-15 16:08:01 +01:00
<!doctype html>
< html class = "default no-js" >
< head >
< meta charset = "utf-8" >
< meta http-equiv = "X-UA-Compatible" content = "IE=edge" >
< title > joplin.plugins | Joplin Plugin API Documentation< / title >
< meta name = "description" content = "Documentation for Joplin Plugin API Documentation" >
< meta name = "viewport" content = "width=device-width, initial-scale=1" >
< link rel = "stylesheet" href = "../assets/css/main.css" >
< / head >
< body >
< header >
< div class = "tsd-page-toolbar" >
< div class = "container" >
< div class = "table-wrap" >
< div class = "table-cell" id = "tsd-search" data-index = "../assets/js/search.json" data-base = ".." >
< div class = "field" >
< label for = "tsd-search-field" class = "tsd-widget search no-caption" > Search< / label >
< input id = "tsd-search-field" type = "text" / >
< / div >
< ul class = "results" >
< li class = "state loading" > Preparing search index...< / li >
< li class = "state failure" > The search index is not available< / li >
< / ul >
< a href = "joplin.html" class = "title" > Joplin Plugin API Documentation< / a >
< / div >
< div class = "table-cell" id = "tsd-widgets" >
< div id = "tsd-filter" >
< a href = "#" class = "tsd-widget options no-caption" data-toggle = "options" > Options< / a >
< div class = "tsd-filter-group" >
< div class = "tsd-select" id = "tsd-filter-visibility" >
< span class = "tsd-select-label" > All< / span >
< ul class = "tsd-select-list" >
< li data-value = "public" > Public< / li >
< li data-value = "protected" > Public/Protected< / li >
< li data-value = "private" class = "selected" > All< / li >
< / ul >
< / div >
< input type = "checkbox" id = "tsd-filter-inherited" checked / >
< label class = "tsd-widget" for = "tsd-filter-inherited" > Inherited< / label >
< / div >
< / div >
< a href = "#" class = "tsd-widget menu no-caption" data-toggle = "menu" > Menu< / a >
< / div >
< / div >
< / div >
< / div >
< div class = "tsd-page-title" >
< div class = "container" >
< ul class = "tsd-breadcrumb" >
<!--
< li >
< a href = "../globals.html" > Globals< / a >
< / li >
-->
< li >
< a href = "joplinplugins.html" > joplin.plugins< / a >
< / li >
< / ul >
< h1 > <!-- Class --> joplin.plugins< / h1 >
< / div >
< / div >
< / header >
< div class = "container container-main" >
< div class = "row" >
< div class = "col-8 col-content" >
< section class = "tsd-panel tsd-comment" >
< div class = "tsd-comment tsd-typography" >
< div class = "lead" >
< p > This class provides access to plugin-related features.< / p >
< / div >
< / div >
< / section >
<!--
< section class = "tsd-panel tsd-hierarchy" >
< h3 > Hierarchy< / h3 >
< ul class = "tsd-hierarchy" >
< li >
< span class = "target" > JoplinPlugins< / span >
< / li >
< / ul >
< / section >
-->
< section class = "tsd-panel-group tsd-index-group" >
< h2 > Index< / h2 >
< section class = "tsd-panel tsd-index-panel" >
< div class = "tsd-index-content" >
< section class = "tsd-index-section " >
< / section >
< section class = "tsd-index-section " >
< h3 > Methods< / h3 >
< ul class = "tsd-index-list" >
< li class = "tsd-kind-method tsd-parent-kind-class" > < a href = "joplinplugins.html#register" class = "tsd-kind-icon" > register< / a > < / li >
2020-10-21 00:27:11 +01:00
< li class = "tsd-kind-method tsd-parent-kind-class" > < a href = "joplinplugins.html#registercontentscript" class = "tsd-kind-icon" > register< wbr > Content< wbr > Script< / a > < / li >
2020-10-15 16:08:01 +01:00
< / ul >
< / section >
< / div >
< / section >
< / section >
< section class = "tsd-panel-group tsd-member-group " >
< / section >
< section class = "tsd-panel-group tsd-member-group " >
< h2 > Methods< / h2 >
< section class = "tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class" >
< a name = "register" class = "tsd-anchor" > < / a >
< h3 > register< / h3 >
< ul class = "tsd-signatures tsd-kind-method tsd-parent-kind-class" >
< li class = "tsd-signature tsd-kind-icon" > register< span class = "tsd-signature-symbol" > (< / span > script< span class = "tsd-signature-symbol" > : < / span > < a href = "../interfaces/script.html" class = "tsd-signature-type" > Script< / a > < span class = "tsd-signature-symbol" > )< / span > < span class = "tsd-signature-symbol" > : < / span > < span class = "tsd-signature-type" > Promise< / span > < span class = "tsd-signature-symbol" > < < / span > < span class = "tsd-signature-type" > void< / span > < span class = "tsd-signature-symbol" > > < / span > < / li >
< / ul >
< ul class = "tsd-descriptions" >
< li class = "tsd-description" >
< aside class = "tsd-sources" >
< / aside >
< div class = "tsd-comment tsd-typography" >
< div class = "lead" >
< p > Registers a new plugin. This is the entry point when creating a plugin. You should pass a simple object with an < code > onStart< / code > method to it.
That < code > onStart< / code > method will be executed as soon as the plugin is loaded.< / p >
< / div >
< pre > < code class = "language-typescript" > joplin.plugins.register({
2020-11-05 16:58:23 +00:00
< span class = "hljs-attr" > onStart< / span > : < span class = "hljs-keyword" > async< / span > < span class = "hljs-function" > < span class = "hljs-keyword" > function< / span > (< span class = "hljs-params" > < / span > ) < / span > {
2020-10-15 16:08:01 +01:00
< span class = "hljs-comment" > // Run your plugin code here< / span >
}
});< / code > < / pre >
< / div >
< h4 class = "tsd-parameters-title" > Parameters< / h4 >
< ul class = "tsd-parameters" >
< li >
< h5 > script: < a href = "../interfaces/script.html" class = "tsd-signature-type" > Script< / a > < / h5 >
< / li >
< / ul >
<!-- JOPLINCHANGE
< h4 class = "tsd-returns-title" > Returns < span class = "tsd-signature-type" > Promise< / span > < span class = "tsd-signature-symbol" > < < / span > < span class = "tsd-signature-type" > void< / span > < span class = "tsd-signature-symbol" > > < / span > < / h4 >
2020-10-21 00:27:11 +01:00
-->
< / li >
< / ul >
< / section >
< section class = "tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class" >
< a name = "registercontentscript" class = "tsd-anchor" > < / a >
< h3 > register< wbr > Content< wbr > Script< / h3 >
< ul class = "tsd-signatures tsd-kind-method tsd-parent-kind-class" >
< li class = "tsd-signature tsd-kind-icon" > register< wbr > Content< wbr > Script< span class = "tsd-signature-symbol" > (< / span > type< span class = "tsd-signature-symbol" > : < / span > < a href = "../enums/contentscripttype.html" class = "tsd-signature-type" > ContentScriptType< / a > , id< span class = "tsd-signature-symbol" > : < / span > < span class = "tsd-signature-type" > string< / span > , scriptPath< span class = "tsd-signature-symbol" > : < / span > < span class = "tsd-signature-type" > string< / span > < span class = "tsd-signature-symbol" > )< / span > < span class = "tsd-signature-symbol" > : < / span > < span class = "tsd-signature-type" > Promise< / span > < span class = "tsd-signature-symbol" > < < / span > < span class = "tsd-signature-type" > void< / span > < span class = "tsd-signature-symbol" > > < / span > < / li >
< / ul >
< ul class = "tsd-descriptions" >
< li class = "tsd-description" >
< aside class = "tsd-sources" >
< / aside >
< div class = "tsd-comment tsd-typography" >
< div class = "lead" >
< p > Registers a new content script. Unlike regular plugin code, which runs in a separate process, content scripts run within the main process code
and thus allow improved performances and more customisations in specific cases. It can be used for example to load a Markdown or editor plugin.< / p >
< / div >
< p > Note that registering a content script in itself will do nothing - it will only be loaded in specific cases by the relevant app modules
(eg. the Markdown renderer or the code editor). So it is not a way to inject and run arbitrary code in the app, which for safety and performance reasons is not supported.< / p >
2020-11-06 21:52:57 +00:00
< p > < a href = "https://github.com/laurent22/joplin/tree/dev/packages/app-cli/tests/support/plugins/content_script" > View the demo plugin< / a > < / p >
2020-10-21 00:27:11 +01:00
< / div >
< h4 class = "tsd-parameters-title" > Parameters< / h4 >
< ul class = "tsd-parameters" >
< li >
< h5 > type: < a href = "../enums/contentscripttype.html" class = "tsd-signature-type" > ContentScriptType< / a > < / h5 >
< div class = "tsd-comment tsd-typography" >
< p > Defines how the script will be used. See the type definition for more information about each supported type.< / p >
< / div >
< / li >
< li >
< h5 > id: < span class = "tsd-signature-type" > string< / span > < / h5 >
< div class = "tsd-comment tsd-typography" >
< p > A unique ID for the content script.< / p >
< / div >
< / li >
< li >
< h5 > scriptPath: < span class = "tsd-signature-type" > string< / span > < / h5 >
< div class = "tsd-comment tsd-typography" >
< p > Must be a path relative to the plugin main script. For example, if your file content_script.js is next to your index.ts file, you would set < code > scriptPath< / code > to < code > " ./content_script.js< / code > .< / p >
< / div >
< / li >
< / ul >
<!-- JOPLINCHANGE
< h4 class = "tsd-returns-title" > Returns < span class = "tsd-signature-type" > Promise< / span > < span class = "tsd-signature-symbol" > < < / span > < span class = "tsd-signature-type" > void< / span > < span class = "tsd-signature-symbol" > > < / span > < / h4 >
2020-10-15 16:08:01 +01:00
-->
< / li >
< / ul >
< / section >
< / section >
< / div >
< div class = "col-4 col-menu menu-sticky-wrap menu-highlight" >
<!--
< nav class = "tsd-navigation primary" >
< ul >
< li class = "globals " >
< a href = "../globals.html" > < em > Globals< / em > < / a >
< / li >
< / ul >
< / nav >
-->
< nav class = "tsd-navigation secondary menu-sticky" >
< ul class = "before-current" >
2020-10-21 00:27:11 +01:00
< li class = " tsd-kind-enum" >
< a href = "../enums/contentscripttype.html" class = "tsd-kind-icon" > ContentScriptType< / a >
< / li >
2020-10-15 16:08:01 +01:00
< li class = " tsd-kind-enum" >
< a href = "../enums/filesystemitem.html" class = "tsd-kind-icon" > FileSystemItem< / a >
< / li >
< li class = " tsd-kind-enum" >
< a href = "../enums/importmoduleoutputformat.html" class = "tsd-kind-icon" > ImportModuleOutputFormat< / a >
< / li >
< li class = " tsd-kind-enum" >
< a href = "../enums/menuitemlocation.html" class = "tsd-kind-icon" > MenuItemLocation< / a >
< / li >
< li class = " tsd-kind-enum" >
< a href = "../enums/settingitemtype.html" class = "tsd-kind-icon" > SettingItemType< / a >
< / li >
< li class = " tsd-kind-enum" >
< a href = "../enums/toolbarbuttonlocation.html" class = "tsd-kind-icon" > ToolbarButtonLocation< / a >
< / li >
< li class = " tsd-kind-class" >
< a href = "joplin.html" class = "tsd-kind-icon" > joplin< / a >
< / li >
< li class = " tsd-kind-class" >
< a href = "joplincommands.html" class = "tsd-kind-icon" > joplin.commands< / a >
< / li >
< li class = " tsd-kind-class" >
< a href = "joplindata.html" class = "tsd-kind-icon" > joplin.data< / a >
< / li >
< li class = " tsd-kind-class" >
< a href = "joplininterop.html" class = "tsd-kind-icon" > joplin.interop< / a >
< / li >
< / ul >
< ul class = "current" >
< li class = "current tsd-kind-class" >
< a href = "joplinplugins.html" class = "tsd-kind-icon" > joplin.plugins< / a >
< ul >
< li class = " tsd-kind-constructor tsd-parent-kind-class" >
< a href = "joplinplugins.html#constructor" class = "tsd-kind-icon" > constructor< / a >
< / li >
< li class = " tsd-kind-method tsd-parent-kind-class" >
< a href = "joplinplugins.html#register" class = "tsd-kind-icon" > register< / a >
< / li >
2020-10-21 00:27:11 +01:00
< li class = " tsd-kind-method tsd-parent-kind-class" >
< a href = "joplinplugins.html#registercontentscript" class = "tsd-kind-icon" > register< wbr > Content< wbr > Script< / a >
< / li >
2020-10-15 16:08:01 +01:00
< / ul >
< / li >
< / ul >
< ul class = "after-current" >
< li class = " tsd-kind-class" >
< a href = "joplinsettings.html" class = "tsd-kind-icon" > joplin.settings< / a >
< / li >
< li class = " tsd-kind-class" >
< a href = "joplinviews.html" class = "tsd-kind-icon" > joplin.views< / a >
< / li >
< li class = " tsd-kind-class" >
< a href = "joplinviewsdialogs.html" class = "tsd-kind-icon" > joplin.views.dialogs< / a >
< / li >
< li class = " tsd-kind-class" >
< a href = "joplinviewsmenuitems.html" class = "tsd-kind-icon" > joplin.views.menuItems< / a >
< / li >
< li class = " tsd-kind-class" >
< a href = "joplinviewsmenus.html" class = "tsd-kind-icon" > joplin.views.menus< / a >
< / li >
< li class = " tsd-kind-class" >
< a href = "joplinviewspanels.html" class = "tsd-kind-icon" > joplin.views.panels< / a >
< / li >
< li class = " tsd-kind-class" >
< a href = "joplinviewstoolbarbuttons.html" class = "tsd-kind-icon" > joplin.views.toolbarButtons< / a >
< / li >
< li class = " tsd-kind-class" >
< a href = "joplinworkspace.html" class = "tsd-kind-icon" > joplin.workspace< / a >
< / li >
< li class = " tsd-kind-interface" >
< a href = "../interfaces/buttonspec.html" class = "tsd-kind-icon" > ButtonSpec< / a >
< / li >
< li class = " tsd-kind-interface" >
< a href = "../interfaces/command.html" class = "tsd-kind-icon" > Command< / a >
< / li >
< li class = " tsd-kind-interface" >
< a href = "../interfaces/createmenuitemoptions.html" class = "tsd-kind-icon" > CreateMenuItemOptions< / a >
< / li >
< li class = " tsd-kind-interface" >
< a href = "../interfaces/editorcommand.html" class = "tsd-kind-icon" > EditorCommand< / a >
< / li >
< li class = " tsd-kind-interface" >
< a href = "../interfaces/exportcontext.html" class = "tsd-kind-icon" > ExportContext< / a >
< / li >
< li class = " tsd-kind-interface" >
< a href = "../interfaces/exportmodule.html" class = "tsd-kind-icon" > ExportModule< / a >
< / li >
< li class = " tsd-kind-interface" >
< a href = "../interfaces/exportoptions.html" class = "tsd-kind-icon" > ExportOptions< / a >
< / li >
< li class = " tsd-kind-interface" >
< a href = "../interfaces/importcontext.html" class = "tsd-kind-icon" > ImportContext< / a >
< / li >
< li class = " tsd-kind-interface" >
< a href = "../interfaces/importmodule.html" class = "tsd-kind-icon" > ImportModule< / a >
< / li >
< li class = " tsd-kind-interface" >
< a href = "../interfaces/menuitem.html" class = "tsd-kind-icon" > MenuItem< / a >
< / li >
< li class = " tsd-kind-interface" >
< a href = "../interfaces/script.html" class = "tsd-kind-icon" > Script< / a >
< / li >
< li class = " tsd-kind-interface" >
< a href = "../interfaces/settingitem.html" class = "tsd-kind-icon" > SettingItem< / a >
< / li >
< li class = " tsd-kind-interface" >
< a href = "../interfaces/settingsection.html" class = "tsd-kind-icon" > SettingSection< / a >
< / li >
< li class = " tsd-kind-type-alias" >
< a href = "../globals.html#buttonid" class = "tsd-kind-icon" > ButtonId< / a >
< / li >
< li class = " tsd-kind-type-alias" >
< a href = "../globals.html#path" class = "tsd-kind-icon" > Path< / a >
< / li >
< li class = " tsd-kind-type-alias" >
< a href = "../globals.html#viewhandle" class = "tsd-kind-icon" > ViewHandle< / a >
< / li >
< / ul >
< / nav >
< / div >
< / div >
< / div >
<!-- JOPLINCHANGE
< footer class = "with-border-bottom" >
< div class = "container" >
< h2 > Legend< / h2 >
< div class = "tsd-legend-group" >
< ul class = "tsd-legend" >
< li class = "tsd-kind-property tsd-parent-kind-interface" > < span class = "tsd-kind-icon" > Property< / span > < / li >
< li class = "tsd-kind-method tsd-parent-kind-interface" > < span class = "tsd-kind-icon" > Method< / span > < / li >
< / ul >
< ul class = "tsd-legend" >
< li class = "tsd-kind-constructor tsd-parent-kind-class" > < span class = "tsd-kind-icon" > Constructor< / span > < / li >
< li class = "tsd-kind-method tsd-parent-kind-class" > < span class = "tsd-kind-icon" > Method< / span > < / li >
< / ul >
< / div >
< / div >
< / footer >
< div class = "container tsd-generator" >
< p > Generated using < a href = "https://typedoc.org/" target = "_blank" > TypeDoc< / a > < / p >
< / div >
-->
< div class = "overlay" > < / div >
< script src = "../assets/js/main.js" > < / script >
< / body >
< / html >