| Copyright | Copyright (C) 2015 Nikolay Yakimov |
|---|---|
| License | GNU GPL, version 2 or above |
| Maintainer | Nikolay Yakimov <root@livid.pp.ru> |
| Stability | alpha |
| Portability | portable |
| Safe Haskell | None |
| Language | Haskell2010 |
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
- crossRefBlocks :: [Block] -> CrossRefM [Block]
- crossRefMeta :: CrossRefM Meta
- defaultCrossRefAction :: Pandoc -> CrossRefM Pandoc
- runCrossRef :: Meta -> Maybe Format -> (a -> CrossRefM b) -> a -> b
- runCrossRefIO :: Meta -> Maybe Format -> (a -> CrossRefM b) -> a -> IO b
- getOptions :: Meta -> Maybe Format -> Options
- codeBlockCaptions :: ToMetaValue a => a -> Meta
- cref :: ToMetaValue a => a -> Meta
- eqnPrefix :: ToMetaValue a => a -> Meta
- figPrefix :: ToMetaValue a => a -> Meta
- listings :: ToMetaValue a => a -> Meta
- lstPrefix :: ToMetaValue a => a -> Meta
- nameInLink :: ToMetaValue a => a -> Meta
- secPrefix :: ToMetaValue a => a -> Meta
- tblPrefix :: ToMetaValue a => a -> Meta
- autoEqnLabels :: ToMetaValue a => a -> Meta
- autoSectionLabels :: ToMetaValue a => a -> Meta
- ccsDelim :: ToMetaValue a => a -> Meta
- ccsLabelSep :: ToMetaValue a => a -> Meta
- ccsTemplate :: ToMetaValue a => a -> Meta
- chapDelim :: ToMetaValue a => a -> Meta
- chaptersDepth :: ToMetaValue a => a -> Meta
- customHeadingLabel :: ToMetaValue a => a -> Meta
- customLabel :: ToMetaValue a => a -> Meta
- eqnBlockInlineMath :: ToMetaValue a => a -> Meta
- eqnBlockTemplate :: ToMetaValue a => a -> Meta
- eqnDisplayTemplate :: ToMetaValue a => a -> Meta
- eqnIndexTemplate :: ToMetaValue a => a -> Meta
- eqnInlineTableTemplate :: ToMetaValue a => a -> Meta
- eqnInlineTemplate :: ToMetaValue a => a -> Meta
- eqnPrefixTemplate :: ToMetaValue a => a -> Meta
- equationNumberTeX :: ToMetaValue a => a -> Meta
- figPrefixTemplate :: ToMetaValue a => a -> Meta
- figureTemplate :: ToMetaValue a => a -> Meta
- lastDelim :: ToMetaValue a => a -> Meta
- linkReferences :: ToMetaValue a => a -> Meta
- listingTemplate :: ToMetaValue a => a -> Meta
- lofItemTemplate :: ToMetaValue a => a -> Meta
- lofTitle :: ToMetaValue a => a -> Meta
- lolItemTemplate :: ToMetaValue a => a -> Meta
- lolTitle :: ToMetaValue a => a -> Meta
- lotItemTemplate :: ToMetaValue a => a -> Meta
- lotTitle :: ToMetaValue a => a -> Meta
- lstPrefixTemplate :: ToMetaValue a => a -> Meta
- numberSections :: ToMetaValue a => a -> Meta
- outFormat :: ToMetaValue a => a -> Meta
- pairDelim :: ToMetaValue a => a -> Meta
- rangeDelim :: ToMetaValue a => a -> Meta
- refDelim :: ToMetaValue a => a -> Meta
- refIndexTemplate :: ToMetaValue a => a -> Meta
- secHeaderTemplate :: ToMetaValue a => a -> Meta
- secPrefixTemplate :: ToMetaValue a => a -> Meta
- sectionsDepth :: ToMetaValue a => a -> Meta
- setLabelAttribute :: ToMetaValue a => a -> Meta
- subfigGrid :: ToMetaValue a => a -> Meta
- subfigureChildTemplate :: ToMetaValue a => a -> Meta
- subfigureRefIndexTemplate :: ToMetaValue a => a -> Meta
- subfigureTemplate :: ToMetaValue a => a -> Meta
- tableEqns :: ToMetaValue a => a -> Meta
- tableTemplate :: ToMetaValue a => a -> Meta
- tblPrefixTemplate :: ToMetaValue a => a -> Meta
- chapters :: ToMetaValue a => a -> Meta
- crossrefYaml :: ToMetaValue a => a -> Meta
- eqLabels :: ToMetaValue a => a -> Meta
- figLabels :: ToMetaValue a => a -> Meta
- figureTitle :: ToMetaValue a => a -> Meta
- listItemTitleDelim :: ToMetaValue a => a -> Meta
- listingTitle :: ToMetaValue a => a -> Meta
- lofItemTitle :: ToMetaValue a => a -> Meta
- lolItemTitle :: ToMetaValue a => a -> Meta
- lotItemTitle :: ToMetaValue a => a -> Meta
- lstLabels :: ToMetaValue a => a -> Meta
- secHeaderDelim :: ToMetaValue a => a -> Meta
- secLabels :: ToMetaValue a => a -> Meta
- subfigLabels :: ToMetaValue a => a -> Meta
- tableTitle :: ToMetaValue a => a -> Meta
- tblLabels :: ToMetaValue a => a -> Meta
- titleDelim :: ToMetaValue a => a -> Meta
- defaultMeta :: Meta
- type CrossRefM a = Reader CrossRefEnv a
- data CrossRefEnv = CrossRefEnv {
- creSettings :: Meta
- creOptions :: Options
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.
defaultCrossRefAction :: Pandoc -> CrossRefM Pandoc Source #
Combines crossRefMeta and crossRefBlocks
Works in CrossRefM monad.
getOptions :: Meta -> Maybe Format -> Options #
codeBlockCaptions :: ToMetaValue a => a -> Meta #
cref :: ToMetaValue a => a -> Meta #
eqnPrefix :: ToMetaValue a => a -> Meta #
figPrefix :: ToMetaValue a => a -> Meta #
listings :: ToMetaValue a => a -> Meta #
lstPrefix :: ToMetaValue a => a -> Meta #
nameInLink :: ToMetaValue a => a -> Meta #
secPrefix :: ToMetaValue a => a -> Meta #
tblPrefix :: ToMetaValue a => a -> Meta #
autoEqnLabels :: ToMetaValue a => a -> Meta #
autoSectionLabels :: ToMetaValue a => a -> Meta #
ccsDelim :: ToMetaValue a => a -> Meta #
ccsLabelSep :: ToMetaValue a => a -> Meta #
ccsTemplate :: ToMetaValue a => a -> Meta #
chapDelim :: ToMetaValue a => a -> Meta #
chaptersDepth :: ToMetaValue a => a -> Meta #
customHeadingLabel :: ToMetaValue a => a -> Meta #
customLabel :: ToMetaValue a => a -> Meta #
eqnBlockInlineMath :: ToMetaValue a => a -> Meta #
eqnBlockTemplate :: ToMetaValue a => a -> Meta #
eqnDisplayTemplate :: ToMetaValue a => a -> Meta #
eqnIndexTemplate :: ToMetaValue a => a -> Meta #
eqnInlineTableTemplate :: ToMetaValue a => a -> Meta #
eqnInlineTemplate :: ToMetaValue a => a -> Meta #
eqnPrefixTemplate :: ToMetaValue a => a -> Meta #
equationNumberTeX :: ToMetaValue a => a -> Meta #
figPrefixTemplate :: ToMetaValue a => a -> Meta #
figureTemplate :: ToMetaValue a => a -> Meta #
lastDelim :: ToMetaValue a => a -> Meta #
linkReferences :: ToMetaValue a => a -> Meta #
listingTemplate :: ToMetaValue a => a -> Meta #
lofItemTemplate :: ToMetaValue a => a -> Meta #
lofTitle :: ToMetaValue a => a -> Meta #
lolItemTemplate :: ToMetaValue a => a -> Meta #
lolTitle :: ToMetaValue a => a -> Meta #
lotItemTemplate :: ToMetaValue a => a -> Meta #
lotTitle :: ToMetaValue a => a -> Meta #
lstPrefixTemplate :: ToMetaValue a => a -> Meta #
numberSections :: ToMetaValue a => a -> Meta #
outFormat :: ToMetaValue a => a -> Meta #
pairDelim :: ToMetaValue a => a -> Meta #
rangeDelim :: ToMetaValue a => a -> Meta #
refDelim :: ToMetaValue a => a -> Meta #
refIndexTemplate :: ToMetaValue a => a -> Meta #
secHeaderTemplate :: ToMetaValue a => a -> Meta #
secPrefixTemplate :: ToMetaValue a => a -> Meta #
sectionsDepth :: ToMetaValue a => a -> Meta #
setLabelAttribute :: ToMetaValue a => a -> Meta #
subfigGrid :: ToMetaValue a => a -> Meta #
subfigureChildTemplate :: ToMetaValue a => a -> Meta #
subfigureRefIndexTemplate :: ToMetaValue a => a -> Meta #
subfigureTemplate :: ToMetaValue a => a -> Meta #
tableEqns :: ToMetaValue a => a -> Meta #
tableTemplate :: ToMetaValue a => a -> Meta #
tblPrefixTemplate :: ToMetaValue a => a -> Meta #
chapters :: ToMetaValue a => a -> Meta #
crossrefYaml :: ToMetaValue a => a -> Meta #
eqLabels :: ToMetaValue a => a -> Meta #
figLabels :: ToMetaValue a => a -> Meta #
figureTitle :: ToMetaValue a => a -> Meta #
listItemTitleDelim :: ToMetaValue a => a -> Meta #
listingTitle :: ToMetaValue a => a -> Meta #
lofItemTitle :: ToMetaValue a => a -> Meta #
lolItemTitle :: ToMetaValue a => a -> Meta #
lotItemTitle :: ToMetaValue a => a -> Meta #
lstLabels :: ToMetaValue a => a -> Meta #
secHeaderDelim :: ToMetaValue a => a -> Meta #
secLabels :: ToMetaValue a => a -> Meta #
subfigLabels :: ToMetaValue a => a -> Meta #
tableTitle :: ToMetaValue a => a -> Meta #
tblLabels :: ToMetaValue a => a -> Meta #
titleDelim :: ToMetaValue a => a -> Meta #
defaultMeta :: Meta #
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
| |