unified

Project: Symbitic/remark-plugins

Package: remark-bibliography@1.0.0

  1. Remark plugin for adding bibliographies to markdown.
  1. remark 213
  2. remark-plugin 81

remark-bibliography

CI/CD Status MIT License stars

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 be imported instead of required.

npm:

npm install remark-bibliography

Example

Consider the following example:

---
bibliography: example.json
locale: en-us
style: 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, the result will look something like this: 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

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)

License

MIT © Alex Shaw