Citoid

cite-from-id is a node.js service which converts unique identifiers, such as a URL, to citations for use by RefToolbar and VisualEditor.

Implementation
The cite-from-id module will be a node.js service. A rough description of how the service would work is as follows:


 * 1) [client js] VisualEditor makes query for reference
 * 2) [node js] CiteURLEngine considers cache and either responds with the previously stored result or…
 * 3) [first or third party?] Query against DOI/ISBN/ISSN/etc. sources and return citation.

Potential use of DOI as internal resource identifier
URL -> attempt conversion to DOI

Conversion: DOI - URL key/value pair may be cached/db, from external resource, or page scraped to look for one

Key:DOI -> Citations. Lookup in cache/db, in external source(crossref) or generate on fly (or some combination if ISSN is available)

Conversion to DOI fails: generate citation, try to locate DOI from citation? (cross ref?)

If fails, generate new DOI to point to resource? Runs risk of duplicating DOIs. But if no DOI is available, there will be no internal identifier.

What about online journal/physical journal or newspaper relationship? same article may have digital citation and non-digital citation- Separate entries for each?

Related extensions and services

 * User:Aurimas/CiteByDOI
 * Extension:Cite/Special:Cite.php
 * Extension:Cite/Cite.php
 * Extension:Cite
 * Extension:VisualEditor
 * Extension:WikiEditor
 * Parsoid
 * https://github.com/zotero/translators -- Zotero translator / scraper modules
 * https://github.com/zotero/translation-server -- xpcshell-based Zotero translation server, and https://github.com/zotero/zotero-node, an abandoned and old nodejs equivalent
 * Zotero field mappings, including vs. some cite templates
 * Lua-based citation templates
 * Citation templates
 * Citation style 1
 * https://www.mediawiki.org/wiki/VisualEditor/Citation_tool
 * http://en.wikipedia.beta.wmflabs.org/wiki/MediaWiki:Visualeditor-cite-tool-definition.json