Open access articles extracted from the Biodiversity Heritage Library
PHP JavaScript XSLT HTML ApacheConf
Failed to load latest commit information.
bhl-couchdb Experiments with different types of query Aug 11, 2015
bhl-import Importing BHL pages and XML Aug 11, 2015
couchdb Updated CouchDB design docs Jul 30, 2015
locale Added CiteProc Jul 16, 2015
static Tweak images, add favicon Aug 4, 2015
style Add Wikipedia and Zootaxa citation styles Jul 27, 2015
CiteProc.php Added CiteProc Jul 16, 2015 Fix error in URL Feb 14, 2017
api.php Add extraction of citations to API and article display Feb 14, 2017
api_author.php Added display of similar names when searching for author Aug 6, 2015
api_bhl.php Test that fields are defined Feb 14, 2017
api_counter.php Don't count multiple access from same IP address Dec 22, 2016
api_documentcloud.php DocumentCloud API uses image proxy Sep 26, 2016
api_geo.php Geospatial searching added Aug 12, 2016
api_map.php Added Google Maps Jul 30, 2015
api_reconciliation.php Reconciliation API Aug 15, 2016
api_tilehit.php Added Google Maps Jul 30, 2015
api_utils.php Check whether $obj is array or object Feb 4, 2016
djvu2html.xsl Debugging extra space in image URL Sep 3, 2016
find.php Add citation matching to OpenURL Feb 15, 2017
index.php Add simple OpenURL lookup for citations Feb 15, 2017
lcs.php Reconciliation API Aug 15, 2016
lib.php Tweak HEAD Jan 21, 2016
opensearch.xml Added tags May 19, 2016
pintrest.php Handle new-style BioStor URLs in Pintrest pages Aug 11, 2015
reconciliation_api.php Tidy up Aug 18, 2016
timeline.php Check whether we actually get any results! Dec 23, 2016


Stories in Ready

Throughput Graph

Join the chat at

SSH keys

Use github SSH keys (see The following command puts the public key into the clipboard:

pbcopy < ~/.ssh/

Can then paste this key into Pagodabox site.

Multiple keys

I found that sometimes Pagodabox would expect the github SSH key, authorities the one I’d generated for Pagodabox, so I pasted both keys into the Pagodabox admin panel.

Pushing to Pagodabox

git push pagoda --all


Added New Relic key, after a while New Relic shows data for the app


Launch this from local machine to replicate CouchDB with Cloudant.

curl http://localhost:5984/_replicate -H ‘Content-Type: application/json’ -d ‘{ “source”: “biostor”, “target”: “https://<username>:<password>”, “continuous”:true }’

Image proxy

BioStor uses CloudFlare to provide caching, and by default CloudFlare doesn’t cache images that with dynamic URLs (i.e., it expects a URL to have a file extension). I’ve borrowed heavily from to create an image proxy that fetches images from BHL, then outputs them such that CloudFlare will treat them as static images and cache them.