This is an old revision of the document!


Developer Documentation

Zotero is an open source tool, and we welcome anyone who would like to contribute (programming experience is not always required!). Below we list the different parts of the Zotero ecosystem, as well as the estimated technical difficulty and the required skills for contributing. Each area has its own starting page with further details.

If you have questions about development not answered here, or would like to discuss development with Zotero developers, you can consult and post to the zotero-dev mailing list, or join the #zotero-dev IRC channel on irc.freenode.net (do not use the mailing list or IRC channel for user support questions).


Getting Started with Zotero Development (under construction)
So what is Zotero made of exactly? And how does it work? Find out the answers to such questions here. And if terms like “API”, “serialization formats” and “XPath” are new to you, this section will provide you with a guide for learning more about these and other tools used in Zotero programming.
Client Coding
Learn how to program for the Zotero client (the Firefox add-on and Standalone version). This section also discusses development of Zotero plugins.
Difficulty moderate to high
Skills JavaScript, CSS, Mozilla technologies (XPCOM, XULRunner, XUL, etc.)
Web API
Learn how to access online Zotero libraries using Zotero's Web Application Programming Interface (API). Use the Read API to generate Atom feeds or formatted bibliographies, or the Write API to create, modify, delete and organize library items.
Difficulty low to high
Skills CSS/HTML, XML, JSON, Atom
Translators
Learn how to develop Zotero translators. These JavaScript files allow Zotero to save items from webpages, import and export items in various file formats (e.g. BibTeX, RIS, etc.), and look up items when given identifiers (e.g. DOIs or PubMed IDs). Because translators are sandboxed, share a similar structure, and are relatively short pieces of code, they are very suitable for beginning JavaScript coders.
Difficulty low to moderate
Skills JavaScript, HTML/XML, DOM, regular expressions, XPath
Citation Styles
Learn how to create or modify the Citation Style Language (CSL) citation styles that Zotero uses to format citations and bibliographies. In this section we'll also discuss the citeproc-js CSL processor that Zotero uses to process the CSL styles, and citeproc-node, a wrapper for server-side deployment of citeproc-js.
Difficulty low to moderate
Skills XML, JavaScript
Documentation
Learn how you can contribute to Zotero's wiki documentation to make sure it's complete, up-to-date and of high quality. Make it easier for users to learn how to use Zotero, discover new features, and find solutions to problems, and for developers to get the info they need.
Difficulty low
Skills writing & editing, wiki editing
Localization
Learn how you can help translating the various parts of the Zotero ecosystem (the Zotero client, wiki documentation, and CSL citation styles) into other languages.
Difficulty low
Skills knowledge of English and at least one other language
Have Your Website Support Zotero
You can make your website accessible to Zotero by using open standards. Learn how to:
Expose Your Metadata
Create an OpenSearch Lookup Engine

Additional Resources

Developer Workshops
Use this section of the wiki to look up or add information about one of the Zotero developer workshops.
Project Ideas
While the Zotero development team is constantly busy adding new features to Zotero, their resources are limited. As a result, some project ideas, while good, don't get the attention they deserve. If you're looking for an interesting Zotero project to work on, look here for ideas. In this section we also keep track of project progress.
dev/start.1303228371.txt.gz · Last modified: 2011/04/19 11:52 by rmzelle