Exkit tries to be a abstraction layer on top of the browser API. You communicate with exkit, exkit with your browser. Because of that, exkit can rapidly swap out the browser layer and replace it with a different one during build. Right now supported are: opera, firefox and chrome.
npm install -g exkit
exkit init <project name>. Exkit will attempt to install itself into the dir by running
npm install. If you don't have a internet connection, this will fail
exkit build <firefox / chrome / operato compile
Because exkit is a framework, you currently need to stick to the directory structure it requires.
src/- is all your js code. must contain a
resources/- all your resources as images, html fields and more
exkit.json- must be in the project root. Configures exkit and provides config parameters for browser specific config jsons. make sure to check the example exkit.json for configuring exkit
Exkit is still in a very very early phase and will very likely miss features you need. Currently available are:
createTab(url): creates a new browser tab
setButtonIcon(fileurl): updates the icon to
setButtonLabel(text): sets the button label to
event is a global event system built on top of the browsers event system. Event can bind events that are getting emited by page-worker, and receives
exkit-button-clicked on browserAction clicks.
bind(name, callback): executes
<name>is getting fired. Callback is receiving a
answerparameter. Answer is a function to pass a answer back to the event caller
fire(name, payload, callback): fires
<payload>as data and
<callback>for when the binding function calls
init(): inits exkit
Pull requests welcome!