The past few days I've been working on an elisp module to allow interaction with Chandler Server via Emacs. The inspiration for this project came primarily from conversations with a co-worker and my experimentation with atom-api.el.
The current version of chandler.el relies on a heavily modified version of atom-api.el. I've submitted my modifications back to the author, so hopefully we can converge on a canonical module at some point. Until then I'm distributing my version of atom-api.el alongside chandler.el.
Download
You can get the latest version of chandler.el and the modified atom-api.el by visiting gitweb.occident.us.
If you'd like to contribute, you can use Git to check out the code:
git clone http://git.occident.us/chandler-elisp.git/
You can download a tarball containing all the dependencies you'll need to install chandler.el here.
Install
Preface: load-path
First, you'll need to make sure you have a place to put elisp. I use the directory ~/.elisp by adding
(setq load-path (cons "~/.elisp" load-path))
to ~/.emacs.
The easy way
If you'd like to use the tarball, first unzip it and move its contents to ~/.elisp with:
tar xvzf chandler-latest.tar.gz
cp chandler/* ~/.elisp
and then add the following to ~/.emacs:
(load "~/.elisp/nxml-mode/rng-auto.el")
(autoload 'chandler:note/edit "chandler"
"Prompts for a note to edit." t)
(autoload 'chandler:note/publish "chandler"
"Posts the current buffer to a server." t)
(autoload 'chandler:set-options "chandler"
"Set options for chandler." t)
The slightly harder way
If you'd rather grab the dependencies yourself, or just want to know what all that .emacs config corresponds to, follow these steps.
First, grab the following files and put them on your load path:
You'll also need to install nXML (more info). Be sure to add
(load "~/.elisp/nxml-mode/rng-auto.el") to ~/.emacs.
Finally, grab:
- atom-api.el
- chandler.el
(autoload 'chandler:note/edit "chandler"
"Prompts for a note to edit." t)
(autoload 'chandler:note/publish "chandler"
"Posts the current buffer to a server." t)
(autoload 'chandler:set-options "chandler"
"Set options for chandler." t)
to ~/.emacs.
Use
To get started, do M-x chandler:set-options and enter your server information in the Chandler:Server Info customization field. You'll need to enter two string values, server path and username. If you are using Chandler Hub you'll only need to add your username.
Next, open a new buffer with C-x C-b. Add some text and do M-x chandler:note/publish. Your note will be published using the buffer title as its title and the buffer contents as its body. If you'd like to use a different title you can change the buffer name using M-x rename-buffer.
To edit a note you've already published, do M-x chandler:note/edit. After logging in to the server you'll be prompted for a collection name and entry name that you'd like to edit. Tab-complete should work well in both cases.
Caveats
At the time of this writing this module is still somewhat one-off. Improvements and suggestions are more than welcome!


