-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Conversion between markup formats
--   
--   Pandoc is a Haskell library for converting from one markup format to
--   another, and a command-line tool that uses this library. It can read
--   markdown and (subsets of) HTML, reStructuredText, LaTeX, DocBook, and
--   Textile, and it can write markdown, reStructuredText, HTML, LaTeX,
--   ConTeXt, Docbook, OpenDocument, ODT, Word docx, RTF, MediaWiki,
--   Textile, groff man pages, plain text, Emacs Org-Mode, AsciiDoc, EPUB,
--   and S5, Slidy and Slideous HTML slide shows.
--   
--   Pandoc extends standard markdown syntax with footnotes, embedded
--   LaTeX, definition lists, tables, and other features. A compatibility
--   mode is provided for those who need a drop-in replacement for
--   Markdown.pl.
--   
--   In contrast to existing tools for converting markdown to HTML, which
--   use regex substitutions, pandoc has a modular design: it consists of a
--   set of readers, which parse text in a given format and produce a
--   native representation of the document, and a set of writers, which
--   convert this native representation into a target format. Thus, adding
--   an input or output format requires only adding a reader or writer.
@package pandoc
@version 1.9.4.5


-- | Conversion of TeX math to a list of <a>Pandoc</a> inline elements.
module Text.Pandoc.Readers.TeXMath

-- | Converts a raw TeX math formula to a list of <a>Pandoc</a> inlines.
--   Defaults to raw formula between <tt>$</tt> characters if entire
--   formula can't be converted.
readTeXMath :: String -> [Inline]


-- | Exports functions for syntax highlighting.
module Text.Pandoc.Highlighting

-- | List of supported languages.
languages :: [String]

-- | Returns a list of languages appropriate for the given file extension.
languagesByExtension :: String -> [String]
highlight :: (FormatOptions -> [SourceLine] -> a) -> Attr -> String -> Maybe a

-- | Formats tokens as LaTeX using custom commands inside <tt>|</tt>
--   characters. Assumes that <tt>|</tt> is defined as a short verbatim
--   command by the macros produced by <a>styleToLaTeX</a>. A
--   <tt>KeywordTok</tt> is rendered using <tt>\KeywordTok{..}</tt>, and so
--   on.
formatLaTeXInline :: FormatOptions -> [SourceLine] -> String

-- | Format tokens as a LaTeX <tt>Highlighting</tt> environment inside a
--   <tt>Shaded</tt> environment. <tt>Highlighting</tt> and <tt>Shaded</tt>
--   are defined by the macros produced by <a>styleToLaTeX</a>.
--   <tt>Highlighting</tt> is a verbatim environment using
--   <tt>fancyvrb</tt>; <tt>\</tt>, <tt>{</tt>, and <tt>}</tt> have their
--   normal meanings inside this environment, so that formatting commands
--   work. <tt>Shaded</tt> is either nothing (if the style's background
--   color is default) or a <tt>snugshade</tt> environment from
--   <tt>framed</tt>, providing a background color for the whole code
--   block, even if it spans multiple pages.
formatLaTeXBlock :: FormatOptions -> [SourceLine] -> String

-- | Converts a <a>Style</a> to a set of LaTeX macro definitions, which
--   should be placed in the document's preamble. Note: default LaTeX setup
--   doesn't allow boldface typewriter font. To make boldface work in
--   styles, you need to use a different typewriter font. This will work
--   for computer modern:
--   
--   <pre>
--   \DeclareFontShape{OT1}{cmtt}{bx}{n}{&lt;5&gt;&lt;6&gt;&lt;7&gt;&lt;8&gt;&lt;9&gt;&lt;10&gt;&lt;10.95&gt;&lt;12&gt;&lt;14.4&gt;&lt;17.28&gt;&lt;20.74&gt;&lt;24.88&gt;cmttb10}{}
--   </pre>
--   
--   Or, with xelatex:
--   
--   <pre>
--   \usepackage{fontspec}
--   \setmainfont[SmallCapsFont={* Caps}]{Latin Modern Roman}
--   \setsansfont{Latin Modern Sans}
--   \setmonofont[SmallCapsFont={Latin Modern Mono Caps}]{Latin Modern Mono Light}
--   </pre>
styleToLaTeX :: Style -> String

-- | Format tokens using HTML spans inside <tt>code</tt> tags. For example,
--   A <tt>KeywordTok</tt> is rendered as a span with class <tt>kw</tt>.
--   Short class names correspond to <a>TokenType</a>s as follows:
--   <a>KeywordTok</a> = <tt>kw</tt>, <a>DataTypeTok</a> = <tt>dt</tt>,
--   <a>DecValTok</a> = <tt>dv</tt>, <a>BaseNTok</a> = <tt>bn</tt>,
--   <a>FloatTok</a> = <tt>fl</tt>, <a>CharTok</a> = <tt>ch</tt>,
--   <a>StringTok</a> = <tt>st</tt>, <tt>CommontTok</tt> = <tt>co</tt>,
--   <a>OtherTok</a> = <tt>ot</tt>, <a>AlertTok</a> = <tt>al</tt>,
--   <a>FunctionTok</a> = <tt>fu</tt>, <a>RegionMarkerTok</a> =
--   <tt>re</tt>, <a>ErrorTok</a> = <tt>er</tt>. A <a>NormalTok</a> is not
--   marked up at all.
formatHtmlInline :: FormatOptions -> [SourceLine] -> Html

-- | Format tokens as an HTML <tt>pre</tt> block. If line numbering is
--   selected, this is put into a table row with line numbers in the left
--   cell.
formatHtmlBlock :: FormatOptions -> [SourceLine] -> Html

-- | Returns CSS for styling highlighted code according to the given style.
styleToCss :: Style -> String

-- | Style based on pygments's default colors.
pygments :: Style

-- | Style based on ultraviolet's espresso_libre.css (dark background).
espresso :: Style

-- | Style based on the popular zenburn vim color scheme
zenburn :: Style

-- | Style based on pygments's tango colors.
tango :: Style

-- | Style based on kate's default colors.
kate :: Style

-- | Style with no colors.
monochrome :: Style

-- | Style based on haddock's source highlighting.
haddock :: Style
data Style :: *


-- | UTF-8 aware string IO functions that will work with GHC 6.10, 6.12, or
--   7.
module Text.Pandoc.UTF8
readFile :: FilePath -> IO String
writeFile :: FilePath -> String -> IO ()
getContents :: IO String
putStr :: String -> IO ()
putStrLn :: String -> IO ()
hPutStr :: Handle -> String -> IO ()
hPutStrLn :: Handle -> String -> IO ()
hGetContents :: Handle -> IO String


-- | Conversion of LaTeX documents to PDF.
module Text.Pandoc.PDF
tex2pdf :: String -> String -> IO (Either ByteString ByteString)


-- | A prettyprinting library for the production of text documents,
--   including wrapped text, indentated blocks, and tables.
module Text.Pandoc.Pretty
data Doc

-- | Renders a <a>Doc</a>. <tt>render (Just n)</tt> will use a line length
--   of <tt>n</tt> to reflow text on breakable spaces. <tt>render
--   Nothing</tt> will not reflow text.
render :: (Monoid a, IsString a) => Maybe Int -> Doc -> a

-- | A carriage return. Does nothing if we're at the beginning of a line;
--   otherwise inserts a newline.
cr :: Doc

-- | Inserts a blank line unless one exists already. (<tt>blankline <a></a>
--   blankline</tt> has the same effect as <tt>blankline</tt>. If you want
--   multiple blank lines, use <tt>text <a>\n\n</a></tt>.
blankline :: Doc

-- | A breaking (reflowable) space.
space :: Doc

-- | A literal string.
text :: String -> Doc

-- | A character.
char :: Char -> Doc

-- | Uses the specified string as a prefix for every line of the inside
--   document (except the first, if not at the beginning of the line).
prefixed :: String -> Doc -> Doc

-- | Makes a <a>Doc</a> flush against the left margin.
flush :: Doc -> Doc

-- | Indents a <a>Doc</a> by the specified number of spaces.
nest :: Int -> Doc -> Doc

-- | A hanging indent. <tt>hang ind start doc</tt> prints <tt>start</tt>,
--   then <tt>doc</tt>, leaving an indent of <tt>ind</tt> spaces on every
--   line but the first.
hang :: Int -> Doc -> Doc -> Doc

-- | <tt>beforeNonBlank d</tt> conditionally includes <tt>d</tt> unless it
--   is followed by blank space.
beforeNonBlank :: Doc -> Doc

-- | Makes a <a>Doc</a> non-reflowable.
nowrap :: Doc -> Doc

-- | Returns the width of a <a>Doc</a>.
offset :: Doc -> Int

-- | Returns the height of a block or other <a>Doc</a>.
height :: Doc -> Int

-- | <tt>lblock n d</tt> is a block of width <tt>n</tt> characters, with
--   text derived from <tt>d</tt> and aligned to the left.
lblock :: Int -> Doc -> Doc

-- | Like <a>lblock</a> but aligned centered.
cblock :: Int -> Doc -> Doc

-- | Like <a>lblock</a> but aligned to the right.
rblock :: Int -> Doc -> Doc

-- | An infix synonym for <a>mappend</a>.
(<>) :: Monoid m => m -> m -> m

-- | Concatenate a list of <a>Doc</a>s, putting breakable spaces between
--   them.
(<+>) :: Doc -> Doc -> Doc

-- | <tt>a $$ b</tt> puts <tt>a</tt> above <tt>b</tt>.
($$) :: Doc -> Doc -> Doc

-- | <tt>a $$ b</tt> puts <tt>a</tt> above <tt>b</tt>, with a blank line
--   between.
($+$) :: Doc -> Doc -> Doc

-- | True if the document is empty.
isEmpty :: Doc -> Bool

-- | The empty document.
empty :: Doc

-- | Concatenate a list of <a>Doc</a>s.
cat :: [Doc] -> Doc

-- | Same as <a>cat</a>.
hcat :: [Doc] -> Doc

-- | Same as <a>cat</a>, but putting breakable spaces between the
--   <a>Doc</a>s.
hsep :: [Doc] -> Doc

-- | List version of <a>$$</a>.
vcat :: [Doc] -> Doc

-- | List version of <a>$+$</a>.
vsep :: [Doc] -> Doc

-- | Chomps trailing blank space off of a <a>Doc</a>.
chomp :: Doc -> Doc

-- | Encloses a <a>Doc</a> inside a start and end <a>Doc</a>.
inside :: Doc -> Doc -> Doc -> Doc

-- | Puts a <a>Doc</a> in curly braces.
braces :: Doc -> Doc

-- | Puts a <a>Doc</a> in square brackets.
brackets :: Doc -> Doc

-- | Puts a <a>Doc</a> in parentheses.
parens :: Doc -> Doc

-- | Wraps a <a>Doc</a> in single quotes.
quotes :: Doc -> Doc

-- | Wraps a <a>Doc</a> in double quotes.
doubleQuotes :: Doc -> Doc

-- | Returns width of a character in a monospace font: 0 for a combining
--   character, 1 for a regular character, 2 for an East Asian wide
--   character.
charWidth :: Char -> Int

-- | Get real length of string, taking into account combining and
--   double-wide characters.
realLength :: String -> Int
instance Monoid Doc
instance Show D
instance IsString Doc
instance Show Doc


-- | Utility functions and definitions used by the various Pandoc modules.
module Text.Pandoc.Shared

-- | Split list by groups of one or more sep.
splitBy :: (a -> Bool) -> [a] -> [[a]]
splitByIndices :: [Int] -> [a] -> [[a]]

-- | Split string into chunks divided at specified indices.
splitStringByIndices :: [Int] -> [Char] -> [[Char]]

-- | Replace each occurrence of one sublist in a list with another.
substitute :: Eq a => [a] -> [a] -> [a] -> [a]

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

-- | Escape a string of characters, using an association list of characters
--   and strings.
escapeStringUsing :: [(Char, String)] -> String -> String

-- | Strip trailing newlines from string.
stripTrailingNewlines :: String -> String

-- | Remove leading and trailing space (including newlines) from string.
removeLeadingTrailingSpace :: String -> String

-- | Remove leading space (including newlines) from string.
removeLeadingSpace :: String -> String

-- | Remove trailing space (including newlines) from string.
removeTrailingSpace :: String -> String

-- | Strip leading and trailing characters from string
stripFirstAndLast :: String -> String

-- | Change CamelCase word to hyphenated lowercase (e.g., camel-case).
camelCaseToHyphenated :: String -> String

-- | Convert number &lt; 4000 to uppercase roman numeral.
toRomanNumeral :: Int -> String

-- | Escape whitespace in URI.
escapeURI :: String -> String

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

-- | Parse a date and convert (if possible) to <a>YYYY-MM-DD</a> format.
normalizeDate :: String -> Maybe String

-- | Generate infinite lazy list of markers for an ordered list, depending
--   on list attributes.
orderedListMarkers :: (Int, ListNumberStyle, ListNumberDelim) -> [String]

-- | Normalize a list of inline elements: remove leading and trailing
--   <tt>Space</tt> elements, collapse double <tt>Space</tt>s into singles,
--   and remove empty Str elements.
normalizeSpaces :: [Inline] -> [Inline]

-- | Normalize <tt>Pandoc</tt> document, consolidating doubled
--   <a>Space</a>s, combining adjacent <a>Str</a>s and <a>Emph</a>s, remove
--   <a>Null</a>s and empty elements, etc.
normalize :: (Eq a, Data a) => a -> a

-- | Convert list of inlines to a string with formatting removed.
stringify :: [Inline] -> String

-- | Change final list item from <tt>Para</tt> to <tt>Plain</tt> if the
--   list contains no other <tt>Para</tt> blocks.
compactify :: [[Block]] -> [[Block]]

-- | Data structure for defining hierarchical Pandoc documents
data Element
Blk :: Block -> Element
Sec :: Int -> [Int] -> String -> [Inline] -> [Element] -> Element

-- | Convert list of Pandoc blocks into (hierarchical) list of Elements
hierarchicalize :: [Block] -> [Element]

-- | Generate a unique identifier from a list of inlines. Second argument
--   is a list of already used identifiers.
uniqueIdent :: [Inline] -> [String] -> String

-- | True if block is a Header block.
isHeaderBlock :: Block -> Bool

-- | Shift header levels up or down.
headerShift :: Int -> Pandoc -> Pandoc
data HTMLMathMethod
PlainMath :: HTMLMathMethod
LaTeXMathML :: (Maybe String) -> HTMLMathMethod
JsMath :: (Maybe String) -> HTMLMathMethod
GladTeX :: HTMLMathMethod
WebTeX :: String -> HTMLMathMethod
MathML :: (Maybe String) -> HTMLMathMethod
MathJax :: String -> HTMLMathMethod
data CiteMethod
Citeproc :: CiteMethod
Natbib :: CiteMethod
Biblatex :: CiteMethod

-- | Methods for obfuscating email addresses in HTML.
data ObfuscationMethod
NoObfuscation :: ObfuscationMethod
ReferenceObfuscation :: ObfuscationMethod
JavascriptObfuscation :: ObfuscationMethod

-- | Varieties of HTML slide shows.
data HTMLSlideVariant
S5Slides :: HTMLSlideVariant
SlidySlides :: HTMLSlideVariant
SlideousSlides :: HTMLSlideVariant
DZSlides :: HTMLSlideVariant
NoSlides :: HTMLSlideVariant

-- | Options for writers
data WriterOptions
WriterOptions :: Bool -> String -> [(String, String)] -> String -> Int -> Bool -> HTMLSlideVariant -> Bool -> Bool -> HTMLMathMethod -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Int -> Bool -> ObfuscationMethod -> String -> FilePath -> Maybe FilePath -> CiteMethod -> [FilePath] -> Bool -> Bool -> Maybe Int -> Bool -> Bool -> Bool -> Style -> Bool -> Bool -> WriterOptions

-- | Include header and footer
writerStandalone :: WriterOptions -> Bool

-- | Template to use in standalone mode
writerTemplate :: WriterOptions -> String

-- | Variables to set in template
writerVariables :: WriterOptions -> [(String, String)]

-- | Metadata to include in EPUB
writerEPUBMetadata :: WriterOptions -> String

-- | Tabstop for conversion btw spaces and tabs
writerTabStop :: WriterOptions -> Int

-- | Include table of contents
writerTableOfContents :: WriterOptions -> Bool

-- | Are we writing S5, Slidy or Slideous?
writerSlideVariant :: WriterOptions -> HTMLSlideVariant

-- | True if lists should be incremental
writerIncremental :: WriterOptions -> Bool

-- | Create latex suitable for use by xetex
writerXeTeX :: WriterOptions -> Bool

-- | How to print math in HTML
writerHTMLMathMethod :: WriterOptions -> HTMLMathMethod

-- | Ignore footnotes (used in making toc)
writerIgnoreNotes :: WriterOptions -> Bool

-- | Number sections in LaTeX
writerNumberSections :: WriterOptions -> Bool

-- | Put sections in div tags in HTML
writerSectionDivs :: WriterOptions -> Bool

-- | Use strict markdown syntax
writerStrictMarkdown :: WriterOptions -> Bool

-- | Use reference links in writing markdown, rst
writerReferenceLinks :: WriterOptions -> Bool

-- | Wrap text to line length
writerWrapText :: WriterOptions -> Bool

-- | Characters in a line (for text wrapping)
writerColumns :: WriterOptions -> Int

-- | Write as literate haskell
writerLiterateHaskell :: WriterOptions -> Bool

-- | How to obfuscate emails
writerEmailObfuscation :: WriterOptions -> ObfuscationMethod

-- | Prefix for section &amp; note ids in HTML
writerIdentifierPrefix :: WriterOptions -> String

-- | Directory path of 1st source file
writerSourceDirectory :: WriterOptions -> FilePath

-- | Path of user data directory
writerUserDataDir :: WriterOptions -> Maybe FilePath

-- | How to print cites
writerCiteMethod :: WriterOptions -> CiteMethod

-- | Biblio files to use for citations
writerBiblioFiles :: WriterOptions -> [FilePath]

-- | Produce HTML5
writerHtml5 :: WriterOptions -> Bool

-- | Produce beamer LaTeX slide show
writerBeamer :: WriterOptions -> Bool

-- | Force header level of slides
writerSlideLevel :: WriterOptions -> Maybe Int

-- | Use <a>chapter</a> for top-level sects
writerChapters :: WriterOptions -> Bool

-- | Use listings package for code
writerListings :: WriterOptions -> Bool

-- | Highlight source code
writerHighlight :: WriterOptions -> Bool

-- | Style to use for highlighting
writerHighlightStyle :: WriterOptions -> Style

-- | Use setext headers for levels 1-2 in markdown
writerSetextHeaders :: WriterOptions -> Bool

-- | Use tex ligatures quotes, dashes in latex
writerTeXLigatures :: WriterOptions -> Bool

-- | Default writer options.
defaultWriterOptions :: WriterOptions

-- | Perform an IO action in a directory, returning to starting directory.
inDirectory :: FilePath -> IO a -> IO a

-- | Get file path for data file, either from specified user data
--   directory, or, if not found there, from Cabal data directory.
findDataFile :: Maybe FilePath -> FilePath -> IO FilePath

-- | Read file from specified user data directory or, if not found there,
--   from Cabal data directory.
readDataFile :: Maybe FilePath -> FilePath -> IO String
err :: Int -> String -> IO a
warn :: String -> IO ()
instance Typeable Element
instance Eq Element
instance Read Element
instance Show Element
instance Data Element
instance Show HTMLMathMethod
instance Read HTMLMathMethod
instance Eq HTMLMathMethod
instance Show CiteMethod
instance Read CiteMethod
instance Eq CiteMethod
instance Show ObfuscationMethod
instance Read ObfuscationMethod
instance Eq ObfuscationMethod
instance Show HTMLSlideVariant
instance Read HTMLSlideVariant
instance Eq HTMLSlideVariant
instance Show WriterOptions


module Text.Pandoc.Biblio

-- | Process a <a>Pandoc</a> document by adding citations formatted
--   according to a CSL style, using <a>citeproc</a> from citeproc-hs.
processBiblio :: FilePath -> Maybe FilePath -> [Reference] -> Pandoc -> IO Pandoc


-- | Functions for converting an HTML file into one that can be viewed
--   offline, by incorporating linked images, CSS, and scripts into the
--   HTML using data URIs.
module Text.Pandoc.SelfContained

-- | Convert HTML into self-contained HTML, incorporating images, scripts,
--   and CSS using data: URIs. Items specified using absolute URLs will be
--   downloaded; those specified using relative URLs will be sought first
--   relative to the working directory, then relative to the user data
--   directory (if the first parameter is <a>Just</a> a directory), and
--   finally relative to pandoc's default data directory.
makeSelfContained :: Maybe FilePath -> String -> IO String


-- | A utility library with parsers used in pandoc readers.
module Text.Pandoc.Parsing

-- | Like &gt;&gt;, but returns the operation on the left. (Suggested by
--   Tillmann Rendel on Haskell-cafe list.)
(>>~) :: Monad m => m a -> m b -> m a

-- | Parse any line of text
anyLine :: GenParser Char st [Char]

-- | Like <tt>manyTill</tt>, but reads at least one item.
many1Till :: GenParser tok st a -> GenParser tok st end -> GenParser tok st [a]

-- | A more general form of <tt>notFollowedBy</tt>. This one allows any
--   type of parser to be specified, and succeeds only if that parser
--   fails. It does not consume any input.
notFollowedBy' :: Show b => GenParser a st b -> GenParser a st ()

-- | Parses one of a list of strings (tried in order).
oneOfStrings :: [String] -> GenParser Char st String

-- | Parses a space or tab.
spaceChar :: CharParser st Char

-- | Parses a nonspace, nonnewline character.
nonspaceChar :: CharParser st Char

-- | Skips zero or more spaces or tabs.
skipSpaces :: GenParser Char st ()

-- | Skips zero or more spaces or tabs, then reads a newline.
blankline :: GenParser Char st Char

-- | Parses one or more blank lines and returns a string of newlines.
blanklines :: GenParser Char st [Char]

-- | Parses material enclosed between start and end parsers.
enclosed :: GenParser Char st t -> GenParser Char st end -> GenParser Char st a -> GenParser Char st [a]

-- | Parse string, case insensitive.
stringAnyCase :: [Char] -> CharParser st String

-- | Parse contents of <tt>str</tt> using <tt>parser</tt> and return
--   result.
parseFromString :: GenParser tok st a -> [tok] -> GenParser tok st a

-- | Parse raw line block up to and including blank lines.
lineClump :: GenParser Char st String

-- | Parse a string of characters between an open character and a close
--   character, including text between balanced pairs of open and close,
--   which must be different. For example, <tt>charsInBalanced '(' ')'
--   anyChar</tt> will parse <a>(hello (there))</a> and return <a>hello
--   (there)</a>.
charsInBalanced :: Char -> Char -> GenParser Char st Char -> GenParser Char st String

-- | Parses a roman numeral (uppercase or lowercase), returns number.
romanNumeral :: Bool -> GenParser Char st Int

-- | Parses an email address; returns original and corresponding escaped
--   mailto: URI.
emailAddress :: GenParser Char st (String, String)

-- | Parses a URI. Returns pair of original and URI-escaped version.
uri :: GenParser Char st (String, String)

-- | Applies a parser, returns tuple of its results and its horizontal
--   displacement (the difference between the source column at the end and
--   the source column at the beginning). Vertical displacement (source
--   row) is ignored.
withHorizDisplacement :: GenParser Char st a -> GenParser Char st (a, Int)

-- | Applies a parser and returns the raw string that was parsed, along
--   with the value produced by the parser.
withRaw :: GenParser Char st a -> GenParser Char st (a, [Char])

-- | Parses a character and returns <a>Null</a> (so that the parser can
--   move on if it gets stuck).
nullBlock :: GenParser Char st Block

-- | Fail if reader is in strict markdown syntax mode.
failIfStrict :: GenParser a ParserState ()

-- | Fail unless we're in literate haskell mode.
failUnlessLHS :: GenParser tok ParserState ()

-- | Parses backslash, then applies character parser.
escaped :: GenParser Char st Char -> GenParser Char st Char

-- | Parse character entity.
characterReference :: GenParser Char st Char
updateLastStrPos :: GenParser Char ParserState ()

-- | Parses an ordered list marker and returns list attributes.
anyOrderedListMarker :: GenParser Char ParserState ListAttributes

-- | Parses an ordered list marker with a given style and delimiter,
--   returns number.
orderedListMarker :: ListNumberStyle -> ListNumberDelim -> GenParser Char ParserState Int

-- | Parses a character reference and returns a Str element.
charRef :: GenParser Char st Inline

-- | Parse a table using <tt>headerParser</tt>, <tt>rowParser</tt>,
--   <tt>lineParser</tt>, and <tt>footerParser</tt>.
tableWith :: GenParser Char ParserState ([[Block]], [Alignment], [Int]) -> ([Int] -> GenParser Char ParserState [[Block]]) -> GenParser Char ParserState sep -> GenParser Char ParserState end -> GenParser Char ParserState [Inline] -> GenParser Char ParserState Block
gridTableWith :: GenParser Char ParserState Block -> GenParser Char ParserState [Inline] -> Bool -> GenParser Char ParserState Block

-- | Parse a string with a given parser and state.
readWith :: GenParser t ParserState a -> ParserState -> [t] -> a

-- | Parse a string with <tt>parser</tt> (for testing).
testStringWith :: Show a => GenParser Char ParserState a -> String -> IO ()

-- | Parsing options.
data ParserState
ParserState :: Bool -> ParserContext -> QuoteContext -> Int -> Maybe SourcePos -> KeyTable -> [String] -> NoteTable -> Int -> Bool -> [Inline] -> [[Inline]] -> [Inline] -> Bool -> Bool -> Bool -> Bool -> Int -> [HeaderType] -> [String] -> Int -> Map String Int -> Bool -> Bool -> [Macro] -> String -> ParserState

-- | Parse raw HTML and LaTeX?
stateParseRaw :: ParserState -> Bool

-- | Inside list?
stateParserContext :: ParserState -> ParserContext

-- | Inside quoted environment?
stateQuoteContext :: ParserState -> QuoteContext

-- | Max # of nested Strong/Emph
stateMaxNestingLevel :: ParserState -> Int

-- | Position after last str parsed
stateLastStrPos :: ParserState -> Maybe SourcePos

-- | List of reference keys
stateKeys :: ParserState -> KeyTable

-- | List of available citations
stateCitations :: ParserState -> [String]

-- | List of notes
stateNotes :: ParserState -> NoteTable

-- | Tab stop
stateTabStop :: ParserState -> Int

-- | Parse bibliographic info?
stateStandalone :: ParserState -> Bool

-- | Title of document
stateTitle :: ParserState -> [Inline]

-- | Authors of document
stateAuthors :: ParserState -> [[Inline]]

-- | Date of document
stateDate :: ParserState -> [Inline]

-- | Use strict markdown syntax?
stateStrict :: ParserState -> Bool

-- | Use smart typography?
stateSmart :: ParserState -> Bool

-- | Use pandoc &lt;= 1.8.2.1 behavior in parsing dashes; -- is em-dash;
--   before numeral is en-dash
stateOldDashes :: ParserState -> Bool

-- | Treat input as literate haskell
stateLiterateHaskell :: ParserState -> Bool

-- | Number of columns in terminal
stateColumns :: ParserState -> Int

-- | Ordered list of header types used
stateHeaderTable :: ParserState -> [HeaderType]

-- | Classes to use for indented code blocks
stateIndentedCodeClasses :: ParserState -> [String]

-- | Number of next example
stateNextExample :: ParserState -> Int

-- | Map from example labels to numbers
stateExamples :: ParserState -> Map String Int

-- | True if chapter encountered
stateHasChapters :: ParserState -> Bool

-- | Apply LaTeX macros?
stateApplyMacros :: ParserState -> Bool

-- | List of macros defined so far
stateMacros :: ParserState -> [Macro]

-- | Current rST default interpreted text role
stateRstDefaultRole :: ParserState -> String
defaultParserState :: ParserState
data HeaderType

-- | Single line of characters underneath
SingleHeader :: Char -> HeaderType

-- | Lines of characters above and below
DoubleHeader :: Char -> HeaderType
data ParserContext

-- | Used when running parser on list item contents
ListItemState :: ParserContext

-- | Default state
NullState :: ParserContext
data QuoteContext

-- | Used when parsing inside single quotes
InSingleQuote :: QuoteContext

-- | Used when parsing inside double quotes
InDoubleQuote :: QuoteContext

-- | Used when not parsing inside quotes
NoQuote :: QuoteContext
type NoteTable = [(String, String)]
type KeyTable = Map Key Target
data Key
toKey :: [Inline] -> Key
fromKey :: Key -> [Inline]

-- | Look up key in key table and return target object.
lookupKeySrc :: KeyTable -> Key -> Maybe Target
smartPunctuation :: GenParser Char ParserState Inline -> GenParser Char ParserState Inline

-- | Parse a newcommand or renewcommand macro definition.
macro :: GenParser Char ParserState Block

-- | Apply current macros to string.
applyMacros' :: String -> GenParser Char ParserState String
instance Eq HeaderType
instance Show HeaderType
instance Eq ParserContext
instance Show ParserContext
instance Eq QuoteContext
instance Show QuoteContext
instance Show Key
instance Read Key
instance Eq Key
instance Ord Key
instance Show ParserState


-- | Conversion of <a>Pandoc</a> documents to docx.
module Text.Pandoc.Writers.Docx

-- | Produce an Docx file from a Pandoc document.
writeDocx :: Maybe FilePath -> WriterOptions -> Pandoc -> IO ByteString
instance Show ListMarker
instance Read ListMarker
instance Eq ListMarker
instance Ord ListMarker


-- | Conversion of a <a>Pandoc</a> document to a string representation.
--   
--   Note: If <tt>writerStandalone</tt> is <tt>False</tt>, only the
--   document body is represented; otherwise, the full <a>Pandoc</a>
--   document, including the metadata.
module Text.Pandoc.Writers.Native

-- | Prettyprint Pandoc document.
writeNative :: WriterOptions -> Pandoc -> String


-- | Conversion of a string representation of a pandoc type
--   (<tt>Pandoc</tt>, <tt>[Block]</tt>, <tt>Block</tt>, <tt>[Inline]</tt>,
--   or <tt>Inline</tt>) to a <tt>Pandoc</tt> document.
module Text.Pandoc.Readers.Native

-- | Read native formatted text and return a Pandoc document. The input may
--   be a full pandoc document, a block list, a block, an inline list, or
--   an inline. Thus, for example,
--   
--   <pre>
--   Str "hi"
--   </pre>
--   
--   will be treated as if it were
--   
--   <pre>
--   Pandoc (Meta [] [] []) [Plain [Str "hi"]]
--   </pre>
readNative :: String -> Pandoc


-- | Conversion of HTML to <a>Pandoc</a> document.
module Text.Pandoc.Readers.HTML

-- | Convert HTML-formatted string to <a>Pandoc</a> document.
readHtml :: ParserState -> String -> Pandoc

-- | Matches a tag meeting a certain condition.
htmlTag :: (Tag String -> Bool) -> GenParser Char ParserState (Tag String, String)

-- | Matches a stretch of HTML in balanced tags.
htmlInBalanced :: (Tag String -> Bool) -> GenParser Char ParserState String
isInlineTag :: Tag String -> Bool
isBlockTag :: Tag String -> Bool
isTextTag :: Tag String -> Bool
isCommentTag :: Tag String -> Bool


-- | Conversion of LaTeX to <a>Pandoc</a> document.
module Text.Pandoc.Readers.LaTeX

-- | Parse LaTeX from string and return <a>Pandoc</a> document.
readLaTeX :: ParserState -> String -> Pandoc
rawLaTeXInline :: GenParser Char ParserState Inline
rawLaTeXBlock :: GenParser Char ParserState String

-- | Replace <a>include</a> commands with file contents.
handleIncludes :: String -> IO String


-- | Conversion from Textile to <a>Pandoc</a> document, based on the spec
--   available at http:<i></i>redcloth.org/textile.
--   
--   Implemented and parsed: - Paragraphs - Code blocks - Lists -
--   blockquote - Inlines : strong, emph, cite, code, deleted, superscript,
--   subscript, links - footnotes
--   
--   Implemented but discarded: - HTML-specific and CSS-specific attributes
--   
--   Left to be implemented: - dimension sign - all caps - continued blocks
--   (ex bq..)
--   
--   TODO : refactor common patterns across readers : - autolink -
--   smartPunctuation - more ...
module Text.Pandoc.Readers.Textile

-- | Parse a Textile text and return a Pandoc document.
readTextile :: ParserState -> String -> Pandoc

module Text.Pandoc.Readers.DocBook
readDocBook :: ParserState -> String -> Pandoc
instance Show DBState


-- | Conversion from reStructuredText to <a>Pandoc</a> document.
module Text.Pandoc.Readers.RST

-- | Parse reStructuredText string and return Pandoc document.
readRST :: ParserState -> String -> Pandoc


-- | Conversion of markdown-formatted plain text to <a>Pandoc</a> document.
module Text.Pandoc.Readers.Markdown

-- | Read markdown from an input string and return a Pandoc document.
readMarkdown :: ParserState -> String -> Pandoc


-- | A simple templating system with variable substitution and
--   conditionals. Example:
--   
--   <pre>
--   renderTemplate [("name","Sam"),("salary","50,000")] $
--      "Hi, $name$.  $if(salary)$You make $$$salary$.$else$No salary data.$endif$" 
--   "Hi, John.  You make $50,000."
--   </pre>
--   
--   A slot for an interpolated variable is a variable name surrounded by
--   dollar signs. To include a literal <tt>$</tt> in your template, use
--   <tt>$$</tt>. Variable names must begin with a letter and can contain
--   letters, numbers, <tt>_</tt>, and <tt>-</tt>.
--   
--   The value of a variable will be indented to the same level as the
--   variable.
--   
--   A conditional begins with <tt>$if(variable_name)$</tt> and ends with
--   <tt>$endif$</tt>. It may optionally contain an <tt>$else$</tt>
--   section. The if section is used if <tt>variable_name</tt> has a
--   non-null value, otherwise the else section is used.
--   
--   Conditional keywords should not be indented, or unexpected spacing
--   problems may occur.
--   
--   If a variable name is associated with multiple values in the
--   association list passed to <a>renderTemplate</a>, you may use the
--   <tt>$for$</tt> keyword to iterate over them:
--   
--   <pre>
--   renderTemplate [("name","Sam"),("name","Joe")] $
--     "$for(name)$\nHi, $name$.\n$endfor$"
--   "Hi, Sam.\nHi, Joe."
--   </pre>
--   
--   You may optionally specify separators using <tt>$sep$</tt>:
--   
--   <pre>
--   renderTemplate [("name","Sam"),("name","Joe"),("name","Lynn")] $
--     "Hi, $for(name)$$name$$sep$, $endfor$"
--   "Hi, Sam, Joe, Lynn."
--   </pre>
module Text.Pandoc.Templates

-- | Renders a template
renderTemplate :: TemplateTarget a => [(String, String)] -> String -> a
class TemplateTarget a

-- | Get default template for the specified writer.
getDefaultTemplate :: (Maybe FilePath) -> String -> IO (Either IOException String)
instance TemplateTarget Html
instance TemplateTarget ByteString
instance TemplateTarget String


-- | Conversion of <a>Pandoc</a> documents to markdown-formatted plain
--   text.
--   
--   Markdown: <a>http://daringfireball.net/projects/markdown/</a>
module Text.Pandoc.Writers.Markdown

-- | Convert Pandoc to Markdown.
writeMarkdown :: WriterOptions -> Pandoc -> String

-- | Convert Pandoc to plain text (like markdown, but without links,
--   pictures, or inline formatting).
writePlain :: WriterOptions -> Pandoc -> String


-- | Conversion of <a>Pandoc</a> documents to reStructuredText.
--   
--   reStructuredText: <a>http://docutils.sourceforge.net/rst.html</a>
module Text.Pandoc.Writers.RST

-- | Convert Pandoc to RST.
writeRST :: WriterOptions -> Pandoc -> String


-- | Conversion of <a>Pandoc</a> format into LaTeX.
module Text.Pandoc.Writers.LaTeX

-- | Convert Pandoc to LaTeX.
writeLaTeX :: WriterOptions -> Pandoc -> String


-- | Conversion of <a>Pandoc</a> format into ConTeXt.
module Text.Pandoc.Writers.ConTeXt

-- | Convert Pandoc to ConTeXt.
writeConTeXt :: WriterOptions -> Pandoc -> String


-- | Conversion of <a>Pandoc</a> format into Texinfo.
module Text.Pandoc.Writers.Texinfo

-- | Convert Pandoc to Texinfo.
writeTexinfo :: WriterOptions -> Pandoc -> String


-- | Conversion of <a>Pandoc</a> documents to HTML.
module Text.Pandoc.Writers.HTML

-- | Convert Pandoc document to Html structure.
writeHtml :: WriterOptions -> Pandoc -> Html

-- | Convert Pandoc document to Html string.
writeHtmlString :: WriterOptions -> Pandoc -> String


-- | Conversion of <a>Pandoc</a> documents to EPUB.
module Text.Pandoc.Writers.EPUB

-- | Produce an EPUB file from a Pandoc document.
writeEPUB :: Maybe String -> [FilePath] -> WriterOptions -> Pandoc -> IO ByteString
instance Read IdentState
instance Show IdentState


-- | Conversion of <a>Pandoc</a> documents to Docbook XML.
module Text.Pandoc.Writers.Docbook

-- | Convert Pandoc document to string in Docbook format.
writeDocbook :: WriterOptions -> Pandoc -> String


-- | Conversion of <a>Pandoc</a> documents to OpenDocument XML.
module Text.Pandoc.Writers.OpenDocument

-- | Convert Pandoc document to string in OpenDocument format.
writeOpenDocument :: WriterOptions -> Pandoc -> String
instance Eq TextStyle
instance Ord TextStyle


-- | Conversion of <a>Pandoc</a> documents to ODT.
module Text.Pandoc.Writers.ODT

-- | Produce an ODT file from a Pandoc document.
writeODT :: Maybe FilePath -> WriterOptions -> Pandoc -> IO ByteString


-- | Conversion of <a>Pandoc</a> documents to groff man page format.
module Text.Pandoc.Writers.Man

-- | Convert Pandoc to Man.
writeMan :: WriterOptions -> Pandoc -> String


-- | Conversion of <a>Pandoc</a> documents to RTF (rich text format).
module Text.Pandoc.Writers.RTF

-- | Convert Pandoc to a string in rich text format.
writeRTF :: WriterOptions -> Pandoc -> String

-- | Convert Image inlines into a raw RTF embedded image, read from a file.
--   If file not found or filetype not jpeg or png, leave the inline
--   unchanged.
rtfEmbedImage :: Inline -> IO Inline


-- | Conversion of <a>Pandoc</a> documents to MediaWiki markup.
--   
--   MediaWiki: <a>http://www.mediawiki.org/wiki/MediaWiki</a>
module Text.Pandoc.Writers.MediaWiki

-- | Convert Pandoc to MediaWiki.
writeMediaWiki :: WriterOptions -> Pandoc -> String


-- | Conversion of <a>Pandoc</a> documents to Textile markup.
--   
--   Textile:
--   <a>http://thresholdstate.com/articles/4312/the-textile-reference-manual</a>
module Text.Pandoc.Writers.Textile

-- | Convert Pandoc to Textile.
writeTextile :: WriterOptions -> Pandoc -> String


-- | Conversion of <a>Pandoc</a> documents to Emacs Org-Mode.
--   
--   Org-Mode: <a>http://orgmode.org</a>
module Text.Pandoc.Writers.Org

-- | Convert Pandoc to Org.
writeOrg :: WriterOptions -> Pandoc -> String


-- | Conversion of <a>Pandoc</a> documents to asciidoc.
--   
--   Note that some information may be lost in conversion, due to
--   expressive limitations of asciidoc. Footnotes and table cells with
--   paragraphs (or other block items) are not possible in asciidoc. If
--   pandoc encounters one of these, it will insert a message indicating
--   that it has omitted the construct.
--   
--   AsciiDoc: <a>http://www.methods.co.nz/asciidoc/</a>
module Text.Pandoc.Writers.AsciiDoc

-- | Convert Pandoc to AsciiDoc.
writeAsciiDoc :: WriterOptions -> Pandoc -> String


-- | This helper module exports the main writers, readers, and data
--   structure definitions from the Pandoc libraries.
--   
--   A typical application will chain together a reader and a writer to
--   convert strings from one format to another. For example, the following
--   simple program will act as a filter converting markdown fragments to
--   reStructuredText, using reference-style links instead of inline links:
--   
--   <pre>
--   module Main where
--   import Text.Pandoc
--   -- include the following two lines only if you're using ghc &lt; 6.12:
--   import Prelude hiding (getContents, putStrLn)
--   import System.IO.UTF8
--   
--   markdownToRST :: String -&gt; String
--   markdownToRST =
--     (writeRST defaultWriterOptions {writerReferenceLinks = True}) .
--     readMarkdown defaultParserState
--   
--   main = getContents &gt;&gt;= putStrLn . markdownToRST
--   </pre>
--   
--   Note: all of the readers assume that the input text has <tt>'\n'</tt>
--   line endings. So if you get your input text from a web form, you
--   should remove <tt>'\r'</tt> characters using <tt>filter (/='\r')</tt>.
module Text.Pandoc

-- | Association list of formats and readers.
readers :: [(String, ParserState -> String -> Pandoc)]

-- | Association list of formats and writers (omitting the binary writers,
--   odt, docx, and epub).
writers :: [(String, WriterOptions -> Pandoc -> String)]

-- | Read markdown from an input string and return a Pandoc document.
readMarkdown :: ParserState -> String -> Pandoc

-- | Parse reStructuredText string and return Pandoc document.
readRST :: ParserState -> String -> Pandoc

-- | Parse LaTeX from string and return <a>Pandoc</a> document.
readLaTeX :: ParserState -> String -> Pandoc

-- | Convert HTML-formatted string to <a>Pandoc</a> document.
readHtml :: ParserState -> String -> Pandoc

-- | Parse a Textile text and return a Pandoc document.
readTextile :: ParserState -> String -> Pandoc
readDocBook :: ParserState -> String -> Pandoc

-- | Read native formatted text and return a Pandoc document. The input may
--   be a full pandoc document, a block list, a block, an inline list, or
--   an inline. Thus, for example,
--   
--   <pre>
--   Str "hi"
--   </pre>
--   
--   will be treated as if it were
--   
--   <pre>
--   Pandoc (Meta [] [] []) [Plain [Str "hi"]]
--   </pre>
readNative :: String -> Pandoc

-- | Parsing options.
data ParserState
ParserState :: Bool -> ParserContext -> QuoteContext -> Int -> Maybe SourcePos -> KeyTable -> [String] -> NoteTable -> Int -> Bool -> [Inline] -> [[Inline]] -> [Inline] -> Bool -> Bool -> Bool -> Bool -> Int -> [HeaderType] -> [String] -> Int -> Map String Int -> Bool -> Bool -> [Macro] -> String -> ParserState

-- | Parse raw HTML and LaTeX?
stateParseRaw :: ParserState -> Bool

-- | Inside list?
stateParserContext :: ParserState -> ParserContext

-- | Inside quoted environment?
stateQuoteContext :: ParserState -> QuoteContext

-- | Max # of nested Strong/Emph
stateMaxNestingLevel :: ParserState -> Int

-- | Position after last str parsed
stateLastStrPos :: ParserState -> Maybe SourcePos

-- | List of reference keys
stateKeys :: ParserState -> KeyTable

-- | List of available citations
stateCitations :: ParserState -> [String]

-- | List of notes
stateNotes :: ParserState -> NoteTable

-- | Tab stop
stateTabStop :: ParserState -> Int

-- | Parse bibliographic info?
stateStandalone :: ParserState -> Bool

-- | Title of document
stateTitle :: ParserState -> [Inline]

-- | Authors of document
stateAuthors :: ParserState -> [[Inline]]

-- | Date of document
stateDate :: ParserState -> [Inline]

-- | Use strict markdown syntax?
stateStrict :: ParserState -> Bool

-- | Use smart typography?
stateSmart :: ParserState -> Bool

-- | Use pandoc &lt;= 1.8.2.1 behavior in parsing dashes; -- is em-dash;
--   before numeral is en-dash
stateOldDashes :: ParserState -> Bool

-- | Treat input as literate haskell
stateLiterateHaskell :: ParserState -> Bool

-- | Number of columns in terminal
stateColumns :: ParserState -> Int

-- | Ordered list of header types used
stateHeaderTable :: ParserState -> [HeaderType]

-- | Classes to use for indented code blocks
stateIndentedCodeClasses :: ParserState -> [String]

-- | Number of next example
stateNextExample :: ParserState -> Int

-- | Map from example labels to numbers
stateExamples :: ParserState -> Map String Int

-- | True if chapter encountered
stateHasChapters :: ParserState -> Bool

-- | Apply LaTeX macros?
stateApplyMacros :: ParserState -> Bool

-- | List of macros defined so far
stateMacros :: ParserState -> [Macro]

-- | Current rST default interpreted text role
stateRstDefaultRole :: ParserState -> String
defaultParserState :: ParserState
data ParserContext

-- | Used when running parser on list item contents
ListItemState :: ParserContext

-- | Default state
NullState :: ParserContext
data QuoteContext

-- | Used when parsing inside single quotes
InSingleQuote :: QuoteContext

-- | Used when parsing inside double quotes
InDoubleQuote :: QuoteContext

-- | Used when not parsing inside quotes
NoQuote :: QuoteContext
type KeyTable = Map Key Target
type NoteTable = [(String, String)]
data HeaderType

-- | Single line of characters underneath
SingleHeader :: Char -> HeaderType

-- | Lines of characters above and below
DoubleHeader :: Char -> HeaderType

-- | Prettyprint Pandoc document.
writeNative :: WriterOptions -> Pandoc -> String

-- | Convert Pandoc to Markdown.
writeMarkdown :: WriterOptions -> Pandoc -> String

-- | Convert Pandoc to plain text (like markdown, but without links,
--   pictures, or inline formatting).
writePlain :: WriterOptions -> Pandoc -> String

-- | Convert Pandoc to RST.
writeRST :: WriterOptions -> Pandoc -> String

-- | Convert Pandoc to LaTeX.
writeLaTeX :: WriterOptions -> Pandoc -> String

-- | Convert Pandoc to ConTeXt.
writeConTeXt :: WriterOptions -> Pandoc -> String

-- | Convert Pandoc to Texinfo.
writeTexinfo :: WriterOptions -> Pandoc -> String

-- | Convert Pandoc document to Html structure.
writeHtml :: WriterOptions -> Pandoc -> Html

-- | Convert Pandoc document to Html string.
writeHtmlString :: WriterOptions -> Pandoc -> String

-- | Convert Pandoc document to string in Docbook format.
writeDocbook :: WriterOptions -> Pandoc -> String

-- | Convert Pandoc document to string in OpenDocument format.
writeOpenDocument :: WriterOptions -> Pandoc -> String

-- | Convert Pandoc to Man.
writeMan :: WriterOptions -> Pandoc -> String

-- | Convert Pandoc to MediaWiki.
writeMediaWiki :: WriterOptions -> Pandoc -> String

-- | Convert Pandoc to Textile.
writeTextile :: WriterOptions -> Pandoc -> String

-- | Convert Pandoc to a string in rich text format.
writeRTF :: WriterOptions -> Pandoc -> String

-- | Produce an ODT file from a Pandoc document.
writeODT :: Maybe FilePath -> WriterOptions -> Pandoc -> IO ByteString

-- | Produce an Docx file from a Pandoc document.
writeDocx :: Maybe FilePath -> WriterOptions -> Pandoc -> IO ByteString

-- | Produce an EPUB file from a Pandoc document.
writeEPUB :: Maybe String -> [FilePath] -> WriterOptions -> Pandoc -> IO ByteString

-- | Convert Pandoc to Org.
writeOrg :: WriterOptions -> Pandoc -> String

-- | Convert Pandoc to AsciiDoc.
writeAsciiDoc :: WriterOptions -> Pandoc -> String

-- | Options for writers
data WriterOptions
WriterOptions :: Bool -> String -> [(String, String)] -> String -> Int -> Bool -> HTMLSlideVariant -> Bool -> Bool -> HTMLMathMethod -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Int -> Bool -> ObfuscationMethod -> String -> FilePath -> Maybe FilePath -> CiteMethod -> [FilePath] -> Bool -> Bool -> Maybe Int -> Bool -> Bool -> Bool -> Style -> Bool -> Bool -> WriterOptions

-- | Include header and footer
writerStandalone :: WriterOptions -> Bool

-- | Template to use in standalone mode
writerTemplate :: WriterOptions -> String

-- | Variables to set in template
writerVariables :: WriterOptions -> [(String, String)]

-- | Metadata to include in EPUB
writerEPUBMetadata :: WriterOptions -> String

-- | Tabstop for conversion btw spaces and tabs
writerTabStop :: WriterOptions -> Int

-- | Include table of contents
writerTableOfContents :: WriterOptions -> Bool

-- | Are we writing S5, Slidy or Slideous?
writerSlideVariant :: WriterOptions -> HTMLSlideVariant

-- | True if lists should be incremental
writerIncremental :: WriterOptions -> Bool

-- | Create latex suitable for use by xetex
writerXeTeX :: WriterOptions -> Bool

-- | How to print math in HTML
writerHTMLMathMethod :: WriterOptions -> HTMLMathMethod

-- | Ignore footnotes (used in making toc)
writerIgnoreNotes :: WriterOptions -> Bool

-- | Number sections in LaTeX
writerNumberSections :: WriterOptions -> Bool

-- | Put sections in div tags in HTML
writerSectionDivs :: WriterOptions -> Bool

-- | Use strict markdown syntax
writerStrictMarkdown :: WriterOptions -> Bool

-- | Use reference links in writing markdown, rst
writerReferenceLinks :: WriterOptions -> Bool

-- | Wrap text to line length
writerWrapText :: WriterOptions -> Bool

-- | Characters in a line (for text wrapping)
writerColumns :: WriterOptions -> Int

-- | Write as literate haskell
writerLiterateHaskell :: WriterOptions -> Bool

-- | How to obfuscate emails
writerEmailObfuscation :: WriterOptions -> ObfuscationMethod

-- | Prefix for section &amp; note ids in HTML
writerIdentifierPrefix :: WriterOptions -> String

-- | Directory path of 1st source file
writerSourceDirectory :: WriterOptions -> FilePath

-- | Path of user data directory
writerUserDataDir :: WriterOptions -> Maybe FilePath

-- | How to print cites
writerCiteMethod :: WriterOptions -> CiteMethod

-- | Biblio files to use for citations
writerBiblioFiles :: WriterOptions -> [FilePath]

-- | Produce HTML5
writerHtml5 :: WriterOptions -> Bool

-- | Produce beamer LaTeX slide show
writerBeamer :: WriterOptions -> Bool

-- | Force header level of slides
writerSlideLevel :: WriterOptions -> Maybe Int

-- | Use <a>chapter</a> for top-level sects
writerChapters :: WriterOptions -> Bool

-- | Use listings package for code
writerListings :: WriterOptions -> Bool

-- | Highlight source code
writerHighlight :: WriterOptions -> Bool

-- | Style to use for highlighting
writerHighlightStyle :: WriterOptions -> Style

-- | Use setext headers for levels 1-2 in markdown
writerSetextHeaders :: WriterOptions -> Bool

-- | Use tex ligatures quotes, dashes in latex
writerTeXLigatures :: WriterOptions -> Bool

-- | Varieties of HTML slide shows.
data HTMLSlideVariant
S5Slides :: HTMLSlideVariant
SlidySlides :: HTMLSlideVariant
SlideousSlides :: HTMLSlideVariant
DZSlides :: HTMLSlideVariant
NoSlides :: HTMLSlideVariant
data HTMLMathMethod
PlainMath :: HTMLMathMethod
LaTeXMathML :: (Maybe String) -> HTMLMathMethod
JsMath :: (Maybe String) -> HTMLMathMethod
GladTeX :: HTMLMathMethod
WebTeX :: String -> HTMLMathMethod
MathML :: (Maybe String) -> HTMLMathMethod
MathJax :: String -> HTMLMathMethod
data CiteMethod
Citeproc :: CiteMethod
Natbib :: CiteMethod
Biblatex :: CiteMethod

-- | Default writer options.
defaultWriterOptions :: WriterOptions

-- | Version number of pandoc library.
pandocVersion :: String

-- | Convert Image inlines into a raw RTF embedded image, read from a file.
--   If file not found or filetype not jpeg or png, leave the inline
--   unchanged.
rtfEmbedImage :: Inline -> IO Inline

-- | Converts a transformation on the Pandoc AST into a function that reads
--   and writes a JSON-encoded string. This is useful for writing small
--   scripts.
jsonFilter :: (Pandoc -> Pandoc) -> String -> String

-- | <a>toJsonFilter</a> convert a function into a filter that reads
--   pandoc's json output from stdin, transforms it by walking the AST and
--   applying the specified function, and writes the result as json to
--   stdout. Usage example:
--   
--   <pre>
--   -- capitalize.hs
--   -- compile with:  ghc --make capitalize
--   -- run with:      pandoc -t json | ./capitalize | pandoc -f json
--   
--   import Text.Pandoc
--   import Data.Char (toUpper)
--   
--   main :: IO ()
--   main = toJsonFilter capitalizeStrings
--   
--   capitalizeStrings :: Inline -&gt; Inline
--   capitalizeStrings (Str s) = Str $ map toUpper s
--   capitalizeStrings x       = x
--   </pre>
--   
--   The function can be any type <tt>(a -&gt; a)</tt>, <tt>(a -&gt; IO
--   a)</tt>, <tt>(a -&gt; [a])</tt>, or <tt>(a -&gt; IO [a])</tt>, where
--   <tt>a</tt> is an instance of <a>Data</a>. So, for example, <tt>a</tt>
--   can be <a>Pandoc</a>, <a>Inline</a>, <a>Block</a>, [<a>Inline</a>],
--   [<a>Block</a>], <a>Meta</a>, <a>ListNumberStyle</a>, <a>Alignment</a>,
--   <a>ListNumberDelim</a>, <a>QuoteType</a>, etc. See <a>Definition</a>.
class ToJsonFilter a
toJsonFilter :: ToJsonFilter a => a -> IO ()
instance Data a => ToJsonFilter (a -> IO [a])
instance Data a => ToJsonFilter (a -> [a])
instance Data a => ToJsonFilter (a -> IO a)
instance Data a => ToJsonFilter (a -> a)
