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 https://www.mediawiki.org/wiki/Citoid
See https://phabricator.wikimedia.org/T1083 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 https://www.mediawiki.org/wiki/Google_Code-in_2014#Instructions_for_GCI_students first.