diff options
-rw-r--r-- | python/fatcat_web/routes.py | 2 | ||||
-rw-r--r-- | python/fatcat_web/templates/release_view.html | 3 | ||||
-rw-r--r-- | python/tests/web_citation_csl.py | 8 |
3 files changed, 12 insertions, 1 deletions
diff --git a/python/fatcat_web/routes.py b/python/fatcat_web/routes.py index 8e07aff0..32a1837d 100644 --- a/python/fatcat_web/routes.py +++ b/python/fatcat_web/routes.py @@ -570,6 +570,8 @@ def release_citeproc(ident): cite = citeproc_csl(csl, style, is_html) if is_html: return Response(cite) + elif style == "csl-json": + return jsonify(json.loads(cite)) else: return Response(cite, mimetype="text/plain") diff --git a/python/fatcat_web/templates/release_view.html b/python/fatcat_web/templates/release_view.html index ef77360f..ff044c49 100644 --- a/python/fatcat_web/templates/release_view.html +++ b/python/fatcat_web/templates/release_view.html @@ -415,6 +415,9 @@ </div> <div class="content"> <a href="/release/{{ release.ident }}.bib">BibTeX</a> + <br><a href="/release/{{ release.ident }}/citeproc?style=csl-json">CSL-JSON</a> + <br><a href="/release/{{ release.ident }}/citeproc?style=modern-language-association">MLA</a> + <br><a href="/release/{{ release.ident }}/citeproc?style=elsevier-harvard">Harvard</a> </div> </div> {% endif %} diff --git a/python/tests/web_citation_csl.py b/python/tests/web_citation_csl.py index 1b6f34e1..ae9bca55 100644 --- a/python/tests/web_citation_csl.py +++ b/python/tests/web_citation_csl.py @@ -1,5 +1,4 @@ - import json import tempfile import pytest @@ -16,6 +15,13 @@ def test_release_bibtex(app): rv = app.get('/release/aaaaaaaaaaaaarceaaaaaaaaam.bib') assert rv.status_code == 200 assert b'@article{' in rv.data + rv = app.get('/release/aaaaaaaaaaaaarceaaaaaaaaam/citeproc?style=csl-json') + assert rv.status_code == 200 + # could also rv.get_json() here + json.loads(rv.data.decode('utf-8')) + rv = app.get('/release/aaaaaaaaaaaaarceaaaaaaaaam/citeproc?style=modern-language-association') + assert rv.status_code == 200 + assert rv.data.decode('utf-8').startswith('Ioannidis. “Why Most Published Research Findings Are False”. 2.8 (2005)') # "dummy" demo entity rv = app.get('/release/aaaaaaaaaaaaarceaaaaaaaaai') |