Welcome to Inkdrop! These docs give an overview of how Inkdrop works, and are meant to be a reference for plugin developers.
The Inkdrop Forum is the place to discuss anything and everything Inkdrop related with the entire Inkdrop community. If you have problems or are looking for help, this is your place.
Inkdrop uses Alt, a slim implementation of Facebook's Flux Application Architecture to coordinate the movement of data through the application. Flux is extremely well suited for applications that support third-party extension because it emphasizes loose coupling and well defined interfaces between components. It enforces:
For more information about the Flux pattern, check out this diagram.
You can access a global instance of Alt via
There are several core stores in the application:
In Flux applications, views fire Actions, which anyone in the application can subscribe to. Typically, Stores listen to actions to perform business logic and trigger updates to their corresponding views. For example, when you click "Create New Note" button on the top right corner of the note list bar, the React component for the button fires
EditorStore listens to this action and opens a newly created note.
This approach means that your plugins can fire existing Actions, like
EditorActions::update, or observe actions to add functionality. You can also define your own actions for use within your plugin with
The source of these docs is here on GitHub. If you see a way these docs can be improved, please fork us!