remark-bibliography
Remark plugin for adding citations and bibliographies to Markdown documents.
Bibliographies are included by specifying the
bibliography
field in the YAML frontmatter metadata
at the top of each document. Inline citations simply use @ followed by the name of the source.
A complete bibliography will then be appended to the bottom of the output. See the example below for more details.This plugin requires remark-meta to resolve the path to bibliography files. Files are resolved relative to the path of the markdown file.
BibJSON is the only format currently supported, but support for other formats like BibTeX, MODS, and RIS is planned. Pull requests are welcome.
Install
This package is ESM only: Node 12+ is needed to use it and it must beimport
ed instead of require
d.npm:
npm install remark-bibliography
Example
Consider the following example:```
bibliography: example.json locale: en-usstyle: chicago
Example Bibliography
Example citation:Vulkan has better support for multithreading than OpenGL (@singh2016)
See the full reference for this citation below:
When given a bibliography file [example/example.json](example/example.json),
the result will look something like this: [examples/example.html](examples/example.html)
## Configuring
remark-bibliography is configured using several metadata fields in each document.
### `bibliography`
Required. Specifies the path to the bibliography file, relative to the current file.
### `locale`
Which locale the citations use. Supported options:
`de-de`, `en-gb`, `en-us`, `es-es`, and `fr-fr` (default: `en-us`).
### `style`
Which citation style to use for inline citations and the bibliography.
Supported options: `apa`, `chicago`, `mla`, and `vancouver` (default: `chicago`).
## Usage
```javascript
import { unified } from 'unified'
import markdown from 'remark-parse'
import html from 'rehype-stringify'
import remark2rehype from 'remark-rehype'
import bibliography from 'remark-bibliography'
import frontmatter from 'remark-frontmatter'
import meta from 'remark-meta'
unified()
.use(markdown)
.use(frontmatter)
.use(meta)
.use(bibliography)
.use(remark2rehype)
.use(html)