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.
git clone --recursive https://github.com/zotero/web-library.git
).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.npm install
to install dependenciessrc/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
.npm start
http://localhost:8001/
to see the demoProduction-ready version can be built with npm run build
and served with npm run serve
.
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
.
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).
The following environment variables are recognized:
DEBUG
- if set to 1
extra info about produced bundle will be printed to the console. Increases build time.EMBEDDED
- if set to 1
dev server will default to src/html/embedded.html
, otherwise it will serve src/html/index.html
.LOCALE_CACHE_TIME
- advanced usage, see scripts/fetch-locale.cjs
.NODE_ENV
- used by build scripts to control various debug options. See package.json
. PORT
- port on which development server listens for incoming connections.STYLES_CACHE_TIME
- advanced usage, see scripts/build-styles-json.cjs
.TARGET
- see Build targets above.TRANSLATE_URL
- URL where to proxy translation requests.USE_HTTPS
- if set to 1
dev server will use HTTPS. Requires certificates, see scripts/server.cjs
.