This repo contains code for Zotero Bib, including React components, translation client, stylesheets and entry-point website.
- Node JS with npm
- Basic command-line tools including rsync
- Existing translation-server
- Existing bib-server
- Existing styles-repo
Getting The Library
-
git clone --recursive git@github.com:zotero/zoterobib.git -
cd zoterobib -
npm install -
npm start
This will serve demo on http://127.0.0.1:8001.
You might need to provide configuration options (see below) in order to get storage and translation to work.
By default, the development server proxies translations server requests to localhost:1969. If your server is located elsewhere you need to provide the url, e.g. the last step above would look like this:
TRANSLATE_URL=http://localhost:1234 npm start
This will proxy requests from the browser to the specified translation server.
To obtain production-ready files use the following npm command:
npm run build
It's possible to provide configuration parameters for the build (both in development and production) using configuration files and/or environment variables.
The easiest way is to copy config/default.json to config/local.json and place variables there (this file is git ignored and should not be committed). Alternatively environment variables listed in config/custom-environment-variables.json can be used. For more details how to provide configurations, see config npm package.
The following configuration options are accepted:
storeURL Specifies url for the bib-server api where bibliographies are stored.
stylesURL Specifies url for the styles-repo website. When left empty, default will be used which is https://www.zotero.org/styles-files/styles.json
translatePrefix
Specifies an additional prefix for where translation server request should be send. Useful in cases where translateURL is left empty so that it's possible to direct requests to a specific endpoint at wherever zotero-bib is being hosted.
translateURL Specifies URL for the translation-server. By default localhost is assumed to proxy request to the translation server.
apiAuthorityPart
Specifies the authority part of the URL for Zotero API requests. Defaults to api.zotero.org.
Running npm start checks for the following environment variables:
TRANSLATE_URL
Where to proxy translation requests, defaults to http://localhost:1969. By default ZoteroBib will send translation requests to window.location.origin and dev server should be configured to proxy these requests to a translation server.
PORT On which port should the dev server listen, defaults to 8001.
NO_HYDRATE
When accessing a remote bibliography, ZoteroBib can hydrate from pre-rendered HTML to avoid a spinner while loading. For development purposes, a hard-coded bibliography is stored in hydrate.hbs and is used to serve any request that includes a remote bibliography ID. To disable this behavior, set NO_HYDRATE to 1, which will serve index.hbs instead, meaning the bibliography is always rendered client-side with a spinner.