pandoc-1.6.0.1: Conversion between markup formatsContentsIndex
Text.Pandoc.Shared
Portabilityportable
Stabilityalpha
MaintainerJohn 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]]
Split list by groups of one or more sep.
splitByIndices :: [Int] -> [a] -> [[a]]
Split list into chunks divided at specified indices.
substitute :: Eq a => [a] -> [a] -> [a] -> [a]
Replace each occurrence of one sublist in a list with another.
Text processing
backslashEscapes
:: [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
Escape a string of characters, using an association list of characters and strings.
stripTrailingNewlines :: String -> String
Strip trailing newlines from string.
removeLeadingTrailingSpace :: String -> String
Remove leading and trailing space (including newlines) from string.
removeLeadingSpace :: String -> String
Remove leading space (including newlines) from string.
removeTrailingSpace :: String -> String
Remove trailing space (including newlines) from string.
stripFirstAndLast :: String -> String
Strip leading and trailing characters from string
camelCaseToHyphenated :: String -> String
Change CamelCase word to hyphenated lowercase (e.g., camel-case).
toRomanNumeral :: Int -> String
Convert number < 4000 to uppercase roman numeral.
escapeURI :: String -> String
Escape unicode characters in a URI. Characters that are already valid in a URI, including % and ?, are left alone.
unescapeURI :: String -> String
Unescape unicode and some special characters in a URI, but without introducing spaces.
tabFilter
:: IntTab stop
-> StringInput
-> 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
Wrap inlines to line length.
wrapIfNeeded :: Monad m => WriterOptions -> ([Inline] -> m Doc) -> [Inline] -> m Doc
Wrap inlines if the text wrap option is selected.
wrappedTeX :: Monad m => Bool -> ([Inline] -> m Doc) -> [Inline] -> m Doc
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
Wrap inlines if the text wrap option is selected, specialized for LaTeX and ConTeXt.
data BlockWrapper
Indicates whether block should be surrounded by blank lines (Pad) or not (Reg).
Constructors
Pad Doc
Reg Doc
wrappedBlocksToDoc :: [BlockWrapper] -> Doc
Converts a list of wrapped blocks to a Doc, with appropriate spaces around blocks.
hang' :: Doc -> Int -> Doc -> Doc
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]
Generate infinite lazy list of markers for an ordered list, depending on list attributes.
normalizeSpaces :: [Inline] -> [Inline]
Normalize a list of inline elements: remove leading and trailing Space elements, collapse double Spaces into singles, and remove empty Str elements.
compactify
:: [[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
Data structure for defining hierarchical Pandoc documents
Constructors
Blk Block
Sec Int [Int] String [Inline] [Element]
show/hide Instances
hierarchicalize :: [Block] -> [Element]
Convert list of Pandoc blocks into (hierarchical) list of Elements
uniqueIdent :: [Inline] -> [String] -> String
Generate a unique identifier from a list of inlines. Second argument is a list of already used identifiers.
isHeaderBlock :: Block -> Bool
True if block is a Header block.
headerShift :: Int -> Pandoc -> Pandoc
Shift header levels up or down.
Writer options
data HTMLMathMethod
Constructors
PlainMath
LaTeXMathML (Maybe String)
JsMath (Maybe String)
GladTeX
WebTeX String
MathML (Maybe String)
show/hide Instances
data ObfuscationMethod
Methods for obfuscating email addresses in HTML.
Constructors
NoObfuscation
ReferenceObfuscation
JavascriptObfuscation
show/hide Instances
data HTMLSlideVariant
Varieties of HTML slide shows.
Constructors
S5Slides
SlidySlides
NoSlides
show/hide Instances
data WriterOptions
Options for writers
Constructors
WriterOptions
writerStandalone :: BoolInclude header and footer
writerTemplate :: StringTemplate to use in standalone mode
writerVariables :: [(String, String)]Variables to set in template
writerEPUBMetadata :: StringMetadata to include in EPUB
writerTabStop :: IntTabstop for conversion btw spaces and tabs
writerTableOfContents :: BoolInclude table of contents
writerSlideVariant :: HTMLSlideVariantAre we writing S5 or Slidy?
writerIncremental :: BoolTrue if lists should be incremental
writerXeTeX :: BoolCreate latex suitable for use by xetex
writerHTMLMathMethod :: HTMLMathMethodHow to print math in HTML
writerIgnoreNotes :: BoolIgnore footnotes (used in making toc)
writerNumberSections :: BoolNumber sections in LaTeX
writerSectionDivs :: BoolPut sections in div tags in HTML
writerStrictMarkdown :: BoolUse strict markdown syntax
writerReferenceLinks :: BoolUse reference links in writing markdown, rst
writerWrapText :: BoolWrap text to line length
writerLiterateHaskell :: BoolWrite as literate haskell
writerEmailObfuscation :: ObfuscationMethodHow to obfuscate emails
writerIdentifierPrefix :: StringPrefix for section & note ids in HTML
writerSourceDirectory :: FilePathDirectory path of 1st source file
writerUserDataDir :: Maybe FilePathPath of user data directory
show/hide Instances
defaultWriterOptions :: WriterOptions
Default writer options.
File handling
inDirectory :: FilePath -> IO a -> IO a
Perform an IO action in a directory, returning to starting directory.
readDataFile :: Maybe FilePath -> FilePath -> IO String
Read file from specified user data directory or, if not found there, from Cabal data directory.
Produced by Haddock version 2.6.0