zotero / web-library

Other
140 stars 45 forks source link

CI

Web Library

This is zotero.org's Web Library capable of being installed/run on other websites.

Web Library is a single-page application implemented in Javascript. It uses Zotero API via CORS requests and requires keys configured in order to access private libraries.

Installation

  1. Clone git repository into target web directory (git clone --recursive https://github.com/zotero/web-library.git)
  2. Ensure up-to-date version of Node is used. It should be possible to build Web Library with any recent version of Node, see .nvmrc for recommended version of Node (usually current LTS). On systems where nvm is available it's possible to use nvm install and nvm use to install and switch to a preferred version of node.
  3. Run npm install to install dependencies
  4. Tweak configuration in src/html/index.html and/or src/html/embedded.html. Default configuration displays a public library in read-only mode. In order to edit a library, change userId and provide apiKey.
  5. Run development proces: npm start
  6. Point browser at http://localhost:8001/ to see the demo
  7. Modyfing source files will trigger incremental build

Production-ready version can be built with npm run build and served with npm run serve.

Configuration

Web Library reads configuration from a DOM node with ID zotero-web-library-config. See example config in src/html/index.html. To access private libraries, userId and apiKey must be provided. It's also possible to configure Web Library to only display public libraries, in which case libraries object must be populated and it must include value for defaultLibraryKey as well as includeMyLibrary set to false.

Build targets

There are two build targets controlled by TARGET environment variable: zotero and embedded. Former produces a single-page app as seen on zotero.org, latter produces a web-library widget that can be embedded on other pages. Embedded build is currently considered experimental. It's also possible to build both variants using TARGET set to all (default behaviour).

Build & Development options

The following environment variables are recognized: