pandoc-ext / multibib

Generate multiple, topic-specific bibliographies.
MIT License
15 stars 5 forks source link
lua pandoc pandoc-filter quarto quarto-extension

multibib

GitHub build status

This filter allows to create multiple bibliographies using citeproc. The content of each bibliography is controlled via YAML values and the file in which a bibliographic entry is specified.

The bibliographies must be defined in a map below the bibliography key in the document's metadata. E.g.

---
bibliography:
  main: main-bibliography.bib
  software: software.bib
---

The placement of bibliographies is controlled via special divs.

# References

::: {#refs-main}
:::

# Software

::: {#refs-software}
:::

Each refs-x div should have a matching entry x in the metadata. These divs are filled with citations from the respective bib-file.

[!IMPORTANT] This filter works best with citation styles that use non-numeric citation labels.

Usage

The filter modifies the internal document representation; it can be used with many publishing systems that are based on pandoc.

Plain pandoc

Pass the filter to pandoc via the --lua-filter (or -L) command line option.

pandoc --lua-filter multibib.lua ...

Quarto

Users of Quarto can install this filter as an extension with

quarto install extension pandoc-ext/multibib

and use it by adding multibib to the filters entry in their YAML header. (You also need to add validate-yaml: false, as per this discussion.)

---
filters:
  - multibib
validate-yaml: false
---

R Markdown

Use pandoc_args to invoke the filter. See the R Markdown Cookbook for details.

---
output:
  word_document:
    pandoc_args: ['--lua-filter=multibib.lua']
---

License

This pandoc Lua filter is published under the MIT license, see file LICENSE for details.