| pandoc-1.6: Conversion between markup formats | Source code | Contents | Index

Text.Pandoc.Shared

Portability | portable
Stability | alpha
Maintainer | John MacFarlane <jgm@berkeley.edu>

Contents

List processing
Text processing
Prettyprinting
Pandoc block and inline list processing
Writer options
File handling

Description
Utility functions and definitions used by the various Pandoc modules.
Synopsis

splitBy :: Eq a => a -> [a] -> [[a]]
splitByIndices :: [Int] -> [a] -> [[a]]
substitute :: Eq a => [a] -> [a] -> [a] -> [a]
backslashEscapes :: [Char] -> [(Char, String)]
escapeStringUsing :: [(Char, String)] -> String -> String
stripTrailingNewlines :: String -> String
removeLeadingTrailingSpace :: String -> String
removeLeadingSpace :: String -> String
removeTrailingSpace :: String -> String
stripFirstAndLast :: String -> String
camelCaseToHyphenated :: String -> String
toRomanNumeral :: Int -> String
escapeURI :: String -> String
unescapeURI :: String -> String
tabFilter :: Int -> String -> String
wrapped :: Monad m => ([Inline] -> m Doc) -> [Inline] -> m Doc
wrapIfNeeded :: Monad m => WriterOptions -> ([Inline] -> m Doc) -> [Inline] -> m Doc
wrappedTeX :: Monad m => Bool -> ([Inline] -> m Doc) -> [Inline] -> m Doc
wrapTeXIfNeeded :: Monad m => WriterOptions -> Bool -> ([Inline] -> m Doc) -> [Inline] -> m Doc

data BlockWrapper

= Pad Doc
| Reg Doc

wrappedBlocksToDoc :: [BlockWrapper] -> Doc
hang' :: Doc -> Int -> Doc -> Doc
orderedListMarkers :: (Int, ListNumberStyle, ListNumberDelim) -> [String]
normalizeSpaces :: [Inline] -> [Inline]
compactify :: [[Block]] -> [[Block]]

data Element

= Blk Block
| Sec Int [Int] String [Inline] [Element]

hierarchicalize :: [Block] -> [Element]
uniqueIdent :: [Inline] -> [String] -> String
isHeaderBlock :: Block -> Bool
headerShift :: Int -> Pandoc -> Pandoc

data HTMLMathMethod

= PlainMath
| LaTeXMathML (Maybe String)
| JsMath (Maybe String)
| GladTeX
| WebTeX String
| MathML (Maybe String)

data ObfuscationMethod

= NoObfuscation
| ReferenceObfuscation
| JavascriptObfuscation

data HTMLSlideVariant

= S5Slides
| SlidySlides
| NoSlides

data WriterOptions = WriterOptions {

writerStandalone :: Bool
writerTemplate :: String
writerVariables :: [(String, String)]
writerEPUBMetadata :: String
writerTabStop :: Int
writerTableOfContents :: Bool
writerSlideVariant :: HTMLSlideVariant
writerIncremental :: Bool
writerXeTeX :: Bool
writerHTMLMathMethod :: HTMLMathMethod
writerIgnoreNotes :: Bool
writerNumberSections :: Bool
writerSectionDivs :: Bool
writerStrictMarkdown :: Bool
writerReferenceLinks :: Bool
writerWrapText :: Bool
writerLiterateHaskell :: Bool
writerEmailObfuscation :: ObfuscationMethod
writerIdentifierPrefix :: String
writerSourceDirectory :: FilePath
writerUserDataDir :: Maybe FilePath

}

defaultWriterOptions :: WriterOptions
inDirectory :: FilePath -> IO a -> IO a
readDataFile :: Maybe FilePath -> FilePath -> IO String

List processing

splitBy :: Eq a => a -> [a] -> [[a]] | Source

Split list by groups of one or more sep.

splitByIndices :: [Int] -> [a] -> [[a]] | Source

Split list into chunks divided at specified indices.

substitute :: Eq a => [a] -> [a] -> [a] -> [a] | Source

Replace each occurrence of one sublist in a list with another.
Text processing

backslashEscapes | Source

:: [Char] | list of special characters to escape
-> [(Char, String)] |
Returns an association list of backslash escapes for the designated characters.

escapeStringUsing :: [(Char, String)] -> String -> String | Source

Escape a string of characters, using an association list of characters and strings.

stripTrailingNewlines :: String -> String | Source

Strip trailing newlines from string.

removeLeadingTrailingSpace :: String -> String | Source

Remove leading and trailing space (including newlines) from string.

removeLeadingSpace :: String -> String | Source

Remove leading space (including newlines) from string.

removeTrailingSpace :: String -> String | Source

Remove trailing space (including newlines) from string.

stripFirstAndLast :: String -> String | Source

Strip leading and trailing characters from string

camelCaseToHyphenated :: String -> String | Source

Change CamelCase word to hyphenated lowercase (e.g., camel-case).

toRomanNumeral :: Int -> String | Source

Convert number < 4000 to uppercase roman numeral.

escapeURI :: String -> String | Source

Escape unicode characters in a URI. Characters that are already valid in a URI, including % and ?, are left alone.

unescapeURI :: String -> String | Source

Unescape unicode and some special characters in a URI, but without introducing spaces.

tabFilter | Source

:: Int | Tab stop
-> String | Input
-> String |
Convert tabs to spaces and filter out DOS line endings. Tabs will be preserved if tab stop is set to 0.

Prettyprinting

wrapped :: Monad m => ([Inline] -> m Doc) -> [Inline] -> m Doc | Source

Wrap inlines to line length.

wrapIfNeeded :: Monad m => WriterOptions -> ([Inline] -> m Doc) -> [Inline] -> m Doc | Source

Wrap inlines if the text wrap option is selected.

wrappedTeX :: Monad m => Bool -> ([Inline] -> m Doc) -> [Inline] -> m Doc | Source

Wrap inlines to line length, treating footnotes in a way that makes sense in LaTeX and ConTeXt.

wrapTeXIfNeeded :: Monad m => WriterOptions -> Bool -> ([Inline] -> m Doc) -> [Inline] -> m Doc | Source

Wrap inlines if the text wrap option is selected, specialized for LaTeX and ConTeXt.

data BlockWrapper | Source

Indicates whether block should be surrounded by blank lines (`Pad`) or not (`Reg`).
Constructors

Pad Doc |
Reg Doc |

wrappedBlocksToDoc :: [BlockWrapper] -> Doc | Source

Converts a list of wrapped blocks to a Doc, with appropriate spaces around blocks.

hang' :: Doc -> Int -> Doc -> Doc | Source

A version of hang that works like the version in pretty-1.0.0.0
Pandoc block and inline list processing

orderedListMarkers :: (Int, ListNumberStyle, ListNumberDelim) -> [String] | Source

Generate infinite lazy list of markers for an ordered list, depending on list attributes.

normalizeSpaces :: [Inline] -> [Inline] | Source

Normalize a list of inline elements: remove leading and trailing `Space` elements, collapse double `Space`s into singles, and remove empty Str elements.

compactify | Source

:: [[Block]] | List of list items (each a list of blocks)
-> [[Block]] |
Change final list item from `Para` to `Plain` if the list contains no other `Para` blocks.

data Element | Source

Data structure for defining hierarchical Pandoc documents
Constructors

Blk Block |
Sec Int [Int] String [Inline] [Element] |

Instances

Eq Element
Data Element
Read Element
Show Element
Typeable Element

hierarchicalize :: [Block] -> [Element] | Source

Convert list of Pandoc blocks into (hierarchical) list of Elements

uniqueIdent :: [Inline] -> [String] -> String | Source

Generate a unique identifier from a list of inlines. Second argument is a list of already used identifiers.

isHeaderBlock :: Block -> Bool | Source

True if block is a Header block.

headerShift :: Int -> Pandoc -> Pandoc | Source

Shift header levels up or down.
Writer options

data HTMLMathMethod | Source

Constructors

PlainMath |
LaTeXMathML (Maybe String) |
JsMath (Maybe String) |
GladTeX |
WebTeX String |
MathML (Maybe String) |

Instances

Eq HTMLMathMethod
Read HTMLMathMethod
Show HTMLMathMethod

data ObfuscationMethod | Source

Methods for obfuscating email addresses in HTML.
Constructors

NoObfuscation |
ReferenceObfuscation |
JavascriptObfuscation |

Instances

Eq ObfuscationMethod
Read ObfuscationMethod
Show ObfuscationMethod

data HTMLSlideVariant | Source

Varieties of HTML slide shows.
Constructors

S5Slides |
SlidySlides |
NoSlides |

Instances

Eq HTMLSlideVariant
Read HTMLSlideVariant
Show HTMLSlideVariant

data WriterOptions | Source

Options for writers
Constructors

WriterOptions |

writerStandalone :: Bool | Include header and footer
writerTemplate :: String | Template to use in standalone mode
writerVariables :: [(String, String)] | Variables to set in template
writerEPUBMetadata :: String | Metadata to include in EPUB
writerTabStop :: Int | Tabstop for conversion btw spaces and tabs
writerTableOfContents :: Bool | Include table of contents
writerSlideVariant :: HTMLSlideVariant | Are we writing S5 or Slidy?
writerIncremental :: Bool | True if lists should be incremental
writerXeTeX :: Bool | Create latex suitable for use by xetex
writerHTMLMathMethod :: HTMLMathMethod | How to print math in HTML
writerIgnoreNotes :: Bool | Ignore footnotes (used in making toc)
writerNumberSections :: Bool | Number sections in LaTeX
writerSectionDivs :: Bool | Put sections in div tags in HTML
writerStrictMarkdown :: Bool | Use strict markdown syntax
writerReferenceLinks :: Bool | Use reference links in writing markdown, rst
writerWrapText :: Bool | Wrap text to line length
writerLiterateHaskell :: Bool | Write as literate haskell
writerEmailObfuscation :: ObfuscationMethod | How to obfuscate emails
writerIdentifierPrefix :: String | Prefix for section & note ids in HTML
writerSourceDirectory :: FilePath | Directory path of 1st source file
writerUserDataDir :: Maybe FilePath | Path of user data directory

Instances

Show WriterOptions

defaultWriterOptions :: WriterOptions | Source

Default writer options.
File handling

inDirectory :: FilePath -> IO a -> IO a | Source

Perform an IO action in a directory, returning to starting directory.

readDataFile :: Maybe FilePath -> FilePath -> IO String | Source

Read file from specified user data directory or, if not found there, from Cabal data directory.
Produced by Haddock version 2.4.2