pandoc-crossref-0.3.5.0: Pandoc filter for cross-references

CopyrightCopyright (C) 2015 Nikolay Yakimov
LicenseGNU GPL, version 2 or above
MaintainerNikolay Yakimov <root@livid.pp.ru>
Stabilityalpha
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

Text.Pandoc.CrossRef

Description

Public interface to pandoc-crossref library

Example of use:

import Text.Pandoc
import Text.Pandoc.JSON

import Text.Pandoc.CrossRef

main :: IO ()
main = toJSONFilter go
  where
    go fmt p@(Pandoc meta _) = runCrossRefIO meta fmt action p
      where
        action (Pandoc _ bs) = do
          meta' <- crossRefMeta
          bs' <- crossRefBlocks bs
          return $ Pandoc meta' bs'

This module also exports utility functions for setting up meta-settings for pandoc-crossref. Refer to documentation for a complete list of metadata field names. All functions accept a single argument of type, returned by Text.Pandoc.Builder functions, and return Meta.

Example:

runCrossRefIO meta fmt crossRefBlocks blocks
  where
    meta =
         figureTitle (str "Figura")
      <> tableTitle (str "Tabla")
      <> figPrefix (str "fig.")
      <> eqnPrefix (str "ec.")
      <> tblPrefix (str "tbl.")
      <> loftitle (header 1 $ text "Lista de figuras")
      <> lotTitle (header 1 $ text "Lista de tablas")
      <> chaptersDepth (MetaString "2")
Synopsis

Documentation

crossRefBlocks :: [Block] -> CrossRefM [Block] Source #

Walk over blocks, while inserting cross-references, list-of, etc.

Works in CrossRefM monad.

crossRefMeta :: CrossRefM Meta Source #

Modifies metadata for LaTeX output, adding header-includes instructions to setup custom and builtin environments.

Note, that if output format is not "latex", this function does nothing.

Works in CrossRefM monad.

runCrossRef :: forall a b. Meta -> Maybe Format -> (a -> CrossRefM b) -> a -> b Source #

Run an action in CrossRefM monad with argument, and return pure result.

This is primary function to work with CrossRefM

runCrossRefIO :: forall a b. Meta -> Maybe Format -> (a -> CrossRefM b) -> a -> IO b Source #

Run an action in CrossRefM monad with argument, and return IO result.

This function will attempt to read pandoc-crossref settings from settings file specified by crossrefYaml metadata field.

nameInLink :: forall a. ToMetaValue a => a -> Meta Source #

linkReferences :: forall a. ToMetaValue a => a -> Meta Source #

subfigGrid :: forall a. ToMetaValue a => a -> Meta Source #

autoEqnLabels :: forall a. ToMetaValue a => a -> Meta Source #

tableEqns :: forall a. ToMetaValue a => a -> Meta Source #

ccsLabelSep :: forall a. ToMetaValue a => a -> Meta Source #

ccsDelim :: forall a. ToMetaValue a => a -> Meta Source #

customLabel :: forall a. ToMetaValue a => a -> Meta Source #

listingTemplate :: forall a. ToMetaValue a => a -> Meta Source #

tableTemplate :: forall a. ToMetaValue a => a -> Meta Source #

ccsTemplate :: forall a. ToMetaValue a => a -> Meta Source #

subfigureTemplate :: forall a. ToMetaValue a => a -> Meta Source #

figureTemplate :: forall a. ToMetaValue a => a -> Meta Source #

outFormat :: forall a. ToMetaValue a => a -> Meta Source #

lolTitle :: forall a. ToMetaValue a => a -> Meta Source #

lotTitle :: forall a. ToMetaValue a => a -> Meta Source #

lofTitle :: forall a. ToMetaValue a => a -> Meta Source #

refDelim :: forall a. ToMetaValue a => a -> Meta Source #

lastDelim :: forall a. ToMetaValue a => a -> Meta Source #

pairDelim :: forall a. ToMetaValue a => a -> Meta Source #

rangeDelim :: forall a. ToMetaValue a => a -> Meta Source #

chapDelim :: forall a. ToMetaValue a => a -> Meta Source #

secHeaderTemplate :: forall a. ToMetaValue a => a -> Meta Source #

refIndexTemplate :: forall a. ToMetaValue a => a -> Meta Source #

secPrefixTemplate :: forall a. ToMetaValue a => a -> Meta Source #

lstPrefixTemplate :: forall a. ToMetaValue a => a -> Meta Source #

tblPrefixTemplate :: forall a. ToMetaValue a => a -> Meta Source #

eqnPrefixTemplate :: forall a. ToMetaValue a => a -> Meta Source #

figPrefixTemplate :: forall a. ToMetaValue a => a -> Meta Source #

secPrefix :: forall a. ToMetaValue a => a -> Meta Source #

lstPrefix :: forall a. ToMetaValue a => a -> Meta Source #

tblPrefix :: forall a. ToMetaValue a => a -> Meta Source #

eqnPrefix :: forall a. ToMetaValue a => a -> Meta Source #

figPrefix :: forall a. ToMetaValue a => a -> Meta Source #

sectionsDepth :: forall a. ToMetaValue a => a -> Meta Source #

numberSections :: forall a. ToMetaValue a => a -> Meta Source #

autoSectionLabels :: forall a. ToMetaValue a => a -> Meta Source #

codeBlockCaptions :: forall a. ToMetaValue a => a -> Meta Source #

listings :: forall a. ToMetaValue a => a -> Meta Source #

chaptersDepth :: forall a. ToMetaValue a => a -> Meta Source #

cref :: forall a. ToMetaValue a => a -> Meta Source #

secHeaderDelim :: forall a. ToMetaValue a => a -> Meta Source #

secLabels :: forall a. ToMetaValue a => a -> Meta Source #

lstLabels :: forall a. ToMetaValue a => a -> Meta Source #

tblLabels :: forall a. ToMetaValue a => a -> Meta Source #

eqLabels :: forall a. ToMetaValue a => a -> Meta Source #

figLabels :: forall a. ToMetaValue a => a -> Meta Source #

chapters :: forall a. ToMetaValue a => a -> Meta Source #

subfigLabels :: forall a. ToMetaValue a => a -> Meta Source #

crossrefYaml :: forall a. ToMetaValue a => a -> Meta Source #

titleDelim :: forall a. ToMetaValue a => a -> Meta Source #

listingTitle :: forall a. ToMetaValue a => a -> Meta Source #

tableTitle :: forall a. ToMetaValue a => a -> Meta Source #

figureTitle :: forall a. ToMetaValue a => a -> Meta Source #

getOptions :: Meta -> Maybe Format -> Options Source #

type CrossRefM a = Reader CrossRefEnv a Source #

Essentially a reader monad for basic pandoc-crossref environment

data CrossRefEnv Source #

Enviromnent for CrossRefM

Constructors

CrossRefEnv 

Fields