HORIZON HASKELLDocslts/ghc-10.0.x8c2f8e82026-10-19Search names, modules, packages, or :: a typeCtrl K

GHC 10.0.0.20260917 · lts/ghc-10.0.x · 8c2f8e8 · 2026-10-19

Modulehakyll-4.17.0.0Haskell2010

Hakyll.Web.Pandoc.Biblio

Wraps pandocs bibiliography handling

In order to add a bibliography, you will need a bibliography file (e.g. .bib) and a CSL file (.csl). Both need to be compiled with their respective compilers (biblioCompiler and cslCompiler). Then, you can refer to these files when you use readPandocBiblio. This function also takes the reader options for completeness -- you can use defaultHakyllReaderOptions if you're unsure. If you already read the source into a Pandoc type and need to add processing for the bibliography, you can use processPandocBiblio instead. pandocBiblioCompiler is a convenience wrapper which works like pandocCompiler, but also takes paths to compiled bibliography and csl files; pandocBibliosCompiler is similar but instead takes a glob pattern for bib files.

  • 2 types
  • 8 values
  • Packagehakyll-4.17.0.0
  • Exports10
  • LanguageHaskell2010
  • LicenceBSD-3-Clause
  • SourceBiblio.hs
newtypenewtype CSL
#

Constructors

Instances3Show, Binary, Writable
  • Show CSLDefined in hakyll-4.17.0.0 · Hakyll.Web.Pandoc.Biblio
  • Binary CSLDefined in hakyll-4.17.0.0 · Hakyll.Web.Pandoc.Biblio
  • Writable CSLDefined in hakyll-4.17.0.0 · Hakyll.Web.Pandoc.Biblio

Process a bibliography file with the given style.

This function supports pandoc's nocite functionality when there is a nocite metadata field present.

Example

In your main function, first compile the respective files:

main = hakyll $ do
  …
  match "style.csl" $ compile cslCompiler
  match "bib.bib"   $ compile biblioCompiler

Then, create a function like the following:

processBib :: Item Pandoc -> Compiler (Item Pandoc)
processBib pandoc = do
  csl <- load @CSL    "bib/style.csl"
  bib <- load @Biblio "bib/bibliography.bib"
  processPandocBiblio csl bib pandoc

Now, feed this function to your pandoc compiler:

myCompiler :: Compiler (Item String)
myCompiler = pandocItemCompilerWithTransformM myReader myWriter processBib