1
0
mirror of https://github.com/laurent22/joplin.git synced 2024-12-21 09:38:01 +02:00

Doc: Added more info about the Joplin API

This commit is contained in:
Laurent Cozic 2020-11-15 19:45:35 +00:00
parent 147f3ce073
commit f45029b2e8
3 changed files with 42 additions and 14 deletions

View File

@ -85,14 +85,19 @@ The Web Clipper is a browser extension that allows you to save web pages and scr
- [How to enable debug mode](https://github.com/laurent22/joplin/blob/dev/readme/debugging.md)
- [FAQ](https://github.com/laurent22/joplin/blob/dev/readme/faq.md)
- Joplin API
- Joplin API - Get Started
- [Joplin API Overview](https://github.com/laurent22/joplin/blob/dev/readme/api/overview.md)
- [Plugin development](https://github.com/laurent22/joplin/blob/dev/readme/api/get_started/plugins.md)
- [Plugin tutorial](https://github.com/laurent22/joplin/blob/dev/readme/api/tutorials/toc_plugin.md)
- [Plugin manifest](https://github.com/laurent22/joplin/blob/dev/readme/api/references/plugin_manifest.md)
- Joplin API - References
- [Plugin API](https://joplinapp.org/api/references/plugin_api/classes/joplin.html)
- [Data API documentation](https://github.com/laurent22/joplin/blob/dev/readme/api/references/rest_api.md)
- [Data API](https://github.com/laurent22/joplin/blob/dev/readme/api/references/rest_api.md)
- [Plugin manifest](https://github.com/laurent22/joplin/blob/dev/readme/api/references/plugin_manifest.md)
- [Plugin loading rules](https://github.com/laurent22/joplin/blob/dev/readme/api/references/plugin_loading_rules.md)
- Development

View File

@ -4,15 +4,30 @@ Joplin provides a number of extension points to allow third-party applications t
The two main extension points are:
- The [data API](https://github.com/laurent22/joplin/blob/dev/readme/api/references/rest_api.md), which is a server that provides access to Joplin data to external applications. It is possible, using standard HTTP calls, to create, modify or delete notes, notebooks, tags, etc. as well as attach files to notes and retrieve these files. This is for example how the web clipper communicates with Joplin.
## Data API
- The [plugin API](https://github.com/laurent22/joplin/blob/dev/readme/api/get_started/plugins.md), which allows directly modifying Joplin by adding new features to the application. Using this API, you can:
- Access notes, folders, etc. via the data API
- Add a view to display custom data using HTML/CSS/JS
- Create a dialog to display information and get input from the user
- Create a new command and associate a toolbar button or menu item with it
- Get access to the note currently being edited and modify it
- Listen to various events and run code when they happen
- Hook into the application to set additional options and customise Joplin's behaviour
- Create a module to export or import data into Joplin
- Define new settings and setting sections, and get/set them from the plugin
The [data API](https://github.com/laurent22/joplin/blob/dev/readme/api/references/rest_api.md) provides access to Joplin data to external applications. It is possible, using standard HTTP calls, to create, modify or delete notes, notebooks, tags, etc. as well as attach files to notes and retrieve these files.
This is for example how the web clipper communicates with Joplin, and this is most likely what you will need if you have an external application that needs access to Joplin data.
To get started with the data API, [check the documentation](https://github.com/laurent22/joplin/blob/dev/readme/api/references/rest_api.md).
## Plugin API
With plugins you can directly modify Joplin by adding new features to the application. Using this API, you can:
- Access notes, folders, etc. via the data API
- Add a view to display custom data using HTML/CSS/JS
- Create a dialog to display information and get input from the user
- Create a new command and associate a toolbar button or menu item with it
- Get access to the note currently being edited and modify it
- Listen to various events and run code when they happen
- Hook into the application to set additional options and customise Joplin's behaviour
- Create a module to export or import data into Joplin
- Define new settings and setting sections, and get/set them from the plugin
- Create a new Markdown plugin to render custom markup.
- Create an editor plugin to modify low-level the behaviour of the Markdown editor (CodeMirror)
To get started with the plugin API, check the [Get Started](https://github.com/laurent22/joplin/blob/dev/readme/api/get_started/plugins.md) page or have a look at the [TOC tutorial](https://github.com/laurent22/joplin/blob/dev/readme/api/tutorials/toc_plugin.md).
Once you are familiar with the API, you can have a look at the [plugin API reference](https://github.com/laurent22/joplin/blob/dev/readme/api/get_started/plugins.md) for a detailed documentation about each supported feature.

View File

@ -0,0 +1,8 @@
When loading plugins from the profile `plugins` directory, Joplin will look at the following locations:
- `plugins/PLUGIN_ID.js`
- `plugins/PLUGIN_ID/index.js`
- `plugins/PLUGIN_ID/dist/index.js`
- Any directory or file that starts with "_" will be excluded. This can be used to disable a plugin without having to delete it from the directory.
`PLUGIN_ID` can be any string but it must be unique.