Reads a Bibliography-file (.json
) with academic references and renders it as footnotes at the end of the page. Allows for a variety of styles and languages using CSL.
Uses Citeproc-PHP for parsing and formatting. JSON
is a more reliable format than Bibtex, Ris, and EndNote, and conversion to it should be possible with most modern bibliography managers (eg. Zotero).
/your/site/grav/user/plugins
.bibliography
.You should now have all the plugin files under
/your/site/grav/user/plugins/bibliography
The plugin is enabled by default, and can be disabled by copying user/plugins/bibliography/bibliography.yaml
into user/config/plugins/bibliography.yaml
and setting enabled: false
.
Markdown Extra must be enabled in your Grav-config (system.yaml
) for footnotes to function. That is, it should look like this:
pages:
markdown:
extra: true
In the plugin's settings, use the upload-field to add any bibliography-files. These are stored in /user/data/bibliography
, and can be selected in the Admin-interface under the Options tab, or set manually with a FrontMatter-variable, like so:
---
title: Home
bibliography: citations.json
---
Or whatever you named the file that was uploaded. For example, using this example as citations.json
, with the default options, returns this:
[^ITEM-1]: Knuth, D. E. (1998). Digital Typography. Center for the Study of Language and Information.
[^ITEM-2]: Friedl, J. E. F. (2006). Mastering Regular Expressions (3rd ed.). O'Reilly Media.
[^ITEM-3]: Sprowl, J. A. (1975). The Westlaw System: A Different Approach to Computer-Assisted Legal Research. Jurimetrics Journal, 16, 142. Retrieved from http://heinonline.org/HOL/Page?handle=hein.journals/juraba16&id=152&div=&collection=journals
[^ITEM-4]: Jarvis, R. M. (2008). John B. West: Founder of the West Publishing Company. American Journal Of Legal History, 50(1), 1-22. http://doi.org/10.2307/25664481
You reference these by their identifier, for example [^ITEM-1]
(see Markdown Extra), and a link to the citation will be inserted in your text. From the way Markdown is parsed, only referenced citations are shown.
FrontMatter key | Default | Description |
---|---|---|
bibliography | Filename of a bibliography file, for example citations.json , set on a page-level. |
|
enabled | true | true to enable the plugin, false to disable it. |
bibliography_style | "apa-5th-edition" | Style to use for formatting citations, must match a .csl-file in /vendor/citation-style-language/styles-distribution . |
bibliography_lang | "en-US" | Language to use for formatting citations, must match a .xml-file in /vendor/citation-style-language/locales . |
The included style and locale are only the defaults, and more can be installed into /your/site/grav/user/plugins/bibliography/vendor/citation-style-language
. Locale-files go into ... /vendor/citation-style-language/locales
and styles go into ... /vendor/citation-style-language/styles-distribution
, and are available from here and here, respectively.
Performance may be slow on initial load with a large bibliography, but if cached the impact is negligible - it is just a bunch Markdown returned as HTML. Some simple tests, using Grav v1.1.3:
References | Time | Filesize |
---|---|---|
4 | 107.54ms | 2.43 KB |
59 | 395.03ms | 33.8 KB |
100 | 885.29ms | 58.4 KB |
1000 | 3.45s | 581 KB |
10.000 | 49.66s | 5.69 MB |
These numbers are the time needed by the plugin to read and render a JSON-file with a bibliography, and do not represent the load impact on a live, cached site. If developing with the Debugger enabled, the Bibliography-rendering is logged into the Timeline.
MIT License 2018-2023 by Ole Vik.