GSoC/GCI Archive
Google Code-in 2014 Wikimedia Foundation

Citoid: Add BibTeX as export format

completed by: Geoffrey Mon

mentors: Mvolz

citoid is a Node.js application (written in Javascript) that retrieves information about a webpage, book, journal article, etc. given a URL to the webpage or some other identifier, like DOI (digital object identifier).

It uses another open source project, Zotero's translation-server, also written in Javascript, to do a lot of the work. Doing this work may involve reading both citoid and translation-server code. In order to get citoid working on your computer, you'll need to download both Node version 10.0 (for citoid) and xpcshell version 29.0 (for Zotero) to get both of them working. Citoid is a very new project so the code is rough around the edges and may change a lot- but that means there's lots of code to write! There are installation instructions and more information available at

See for the corresponding bug report. In the file server.js, 'mediawiki', 'zotero', and 'mwDeprecated' are allowed export formats for both the 'url' and 'api' endpoints. However, scientists love BibTeX! Zotero's translation-server can translate between the 'zotero' format and a number of other formats, including bibtex. In translation-server, check out the file translation-server/build/translation-server/server-translation.js which documents the "export" endpoint.

Students are required to read Wikimedia's general instructions at first.