pandoc-1.6: Conversion between markup formatsSource codeContentsIndex
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]]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
backslashEscapesSource
:: [Char]list of special characters to escape
-> [(Char, String)]
Returns an association list of backslash escapes for the designated characters.
escapeStringUsing :: [(Char, String)] -> String -> StringSource
Escape a string of characters, using an association list of characters and strings.
stripTrailingNewlines :: String -> StringSource
Strip trailing newlines from string.
removeLeadingTrailingSpace :: String -> StringSource
Remove leading and trailing space (including newlines) from string.
removeLeadingSpace :: String -> StringSource
Remove leading space (including newlines) from string.
removeTrailingSpace :: String -> StringSource
Remove trailing space (including newlines) from string.
stripFirstAndLast :: String -> StringSource
Strip leading and trailing characters from string
camelCaseToHyphenated :: String -> StringSource
Change CamelCase word to hyphenated lowercase (e.g., camel-case).
toRomanNumeral :: Int -> StringSource
Convert number < 4000 to uppercase roman numeral.
escapeURI :: String -> StringSource
Escape unicode characters in a URI. Characters that are already valid in a URI, including % and ?, are left alone.
unescapeURI :: String -> StringSource
Unescape unicode and some special characters in a URI, but without introducing spaces.
tabFilterSource
:: 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 DocSource
Wrap inlines to line length.
wrapIfNeeded :: Monad m => WriterOptions -> ([Inline] -> m Doc) -> [Inline] -> m DocSource
Wrap inlines if the text wrap option is selected.
wrappedTeX :: Monad m => Bool -> ([Inline] -> m Doc) -> [Inline] -> m DocSource
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 DocSource
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] -> DocSource
Converts a list of wrapped blocks to a Doc, with appropriate spaces around blocks.
hang' :: Doc -> Int -> Doc -> DocSource
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 Spaces into singles, and remove empty Str elements.
compactifySource
:: [[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]
show/hide Instances
hierarchicalize :: [Block] -> [Element]Source
Convert list of Pandoc blocks into (hierarchical) list of Elements
uniqueIdent :: [Inline] -> [String] -> StringSource
Generate a unique identifier from a list of inlines. Second argument is a list of already used identifiers.
isHeaderBlock :: Block -> BoolSource
True if block is a Header block.
headerShift :: Int -> Pandoc -> PandocSource
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)
show/hide Instances
data ObfuscationMethod Source
Methods for obfuscating email addresses in HTML.
Constructors
NoObfuscation
ReferenceObfuscation
JavascriptObfuscation
show/hide Instances
data HTMLSlideVariant Source
Varieties of HTML slide shows.
Constructors
S5Slides
SlidySlides
NoSlides
show/hide Instances
data WriterOptions Source
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 :: WriterOptionsSource
Default writer options.
File handling
inDirectory :: FilePath -> IO a -> IO aSource
Perform an IO action in a directory, returning to starting directory.
readDataFile :: Maybe FilePath -> FilePath -> IO StringSource
Read file from specified user data directory or, if not found there, from Cabal data directory.
Produced by Haddock version 2.4.2