Standalone API?
Hi: I'm a GMU graduate (MA in cultural studies), so I've been following Zotero and decided to download the standalone software. This is an excellent project, but (like several similar projects) I think it is hard to construct one tool for all possible users. For example, when I wrote my doctoral dissertation and went on to explore computational applications of my work there, I'm not sure I would have needed special tools for document management. But there are other things I would have liked to do with a tool like Zotero. Actually, I am currently exploring techniques for customizing software to particular academic researchers and communities. Different projects have different needs (document libraries, 3d imaging, simulations, math/statistical analysis). My particular interest is building custom software using the newly published C++11 standard. Anyhow, I realize that custom software can integrate with an online Zotero account through the web API, but is there a similar API which would allow external programs to interact with a running Zotero Standalone window? Or is there some kind of plugin/embedding system for Zotero Standalone, or scripting support? I did try to clone the "standalone-build" repository but for some reason git could not connect to the server although I could browser the repo online; however, I'm a little confused as this appears to be a build utility rather than the actual application source. Is the code open-source? And is it public knowledge what GUI framework is used (Qt, like Mendeley? Platform-specific, like MFC or KDE depending on the target platfor? Something else?). Thanks for any feedback.
http://www.zotero.org/support/dev/client_coding/javascript_api
The code is fully open, yes, it's a build utility for standalone because it uses the same zotero code that is used for the FF add-on (which is in a sibling repository on github).
You can also write regular .xpi plugins for standalone.
the GUI framework is based on XULrunner
You can extend Zotero with add-ons, although it requires at least a moderate amount of knowledge of how to write a Firefox extension. See here for the basics and here for details on how to make add-ons that work with Zotero Standalone. There are several examples of Zotero add-ons here.
If you want to write code in C++, you can create a C++ XPCOM component that will magically expose objects and methods to JavaScript but will break with new Zotero releases; you can use js-ctypes, which doesn't really support C++ and will require writing glue code in C, but will remain compatible across releases; or you can communicate with Zotero Standalone's built-in web server (although you'll probably need to write the code to expose whatever you're interested in).
If you have further questions, you should post to zotero-dev.