-- 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
--   several dialects of Markdown and (subsets of) HTML, reStructuredText,
--   LaTeX, DocBook, MediaWiki markup, TWiki markup, Haddock markup, OPML,
--   Emacs Org-Mode, txt2tags, Word Docx, ODT, and Textile, and it can
--   write Markdown, reStructuredText, XHTML, HTML 5, LaTeX, ConTeXt,
--   DocBook, OPML, TEI, OpenDocument, ODT, Word docx, RTF, MediaWiki,
--   DokuWiki, ZimWiki, Textile, groff man pages, plain text, Emacs
--   Org-Mode, AsciiDoc, Haddock markup, EPUB (v2 and v3), FictionBook2,
--   InDesign ICML, and several kinds of HTML/javascript slide shows (S5,
--   Slidy, Slideous, DZSlides, reveal.js).
--   
--   In contrast to most existing tools for converting Markdown to HTML,
--   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.19.2.4

-- | 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

-- | Convert UTF8-encoded ByteString to String, also removing '\r'
--   characters.
toString :: ByteString -> String
fromString :: String -> ByteString

-- | Convert UTF8-encoded ByteString to String, also removing '\r'
--   characters.
toStringLazy :: ByteString -> String
fromStringLazy :: String -> ByteString
encodePath :: FilePath -> FilePath
decodeArg :: String -> String

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

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

-- | ByteString variant of readProcessWithExitCode.
module Text.Pandoc.Process

-- | Version of readProcessWithExitCode that uses lazy bytestrings
--   instead of strings and allows setting environment variables.
--   
--   readProcessWithExitCode creates an external process, reads
--   its standard output and standard error strictly, waits until the
--   process terminates, and then returns the ExitCode of the
--   process, the standard output, and the standard error.
--   
--   If an asynchronous exception is thrown to the thread executing
--   readProcessWithExitCode, the forked process will be
--   terminated and readProcessWithExitCode will wait (block)
--   until the process has been terminated.
pipeProcess :: Maybe [(String, String)] -> FilePath -> [String] -> ByteString -> IO (ExitCode, 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 Doc. render (Just n) will use a line length
--   of n to reflow text on breakable spaces. render
--   Nothing will not reflow text.
render :: (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. (blankline
--   <> blankline has the same effect as blankline.
blankline :: Doc

-- | Inserts a blank lines unless they exists already. (blanklines m
--   <> blanklines n has the same effect as blankline (max m
--   n).
blanklines :: Int -> 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 Doc flush against the left margin.
flush :: Doc -> Doc

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

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

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

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

-- | Content to print only if it comes at the beginning of a line, to be
--   used e.g. for escaping line-initial . in groff man.
afterBreak :: String -> Doc

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

-- | Returns the minimal width of a Doc when reflowed at breakable
--   spaces.
minOffset :: Doc -> Int

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

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

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

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

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

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

-- | a $$ b puts a above b.
($$) :: Doc -> Doc -> Doc
infixr 5 $$

-- | a $+$ b puts a above b, with a blank line
--   between.
($+$) :: Doc -> Doc -> Doc
infixr 5 $+$

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

-- | The empty document.
empty :: Doc

-- | Concatenate a list of Docs.
cat :: [Doc] -> Doc

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

-- | Same as cat, but putting breakable spaces between the
--   Docs.
hsep :: [Doc] -> Doc

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

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

-- | Removes leading blank lines from a Doc.
nestle :: Doc -> Doc

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

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

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

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

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

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

-- | Wraps a Doc 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 GHC.Show.Show Text.Pandoc.Pretty.D
instance GHC.Show.Show Text.Pandoc.Pretty.Doc
instance GHC.Base.Monoid Text.Pandoc.Pretty.Doc
instance Data.String.IsString Text.Pandoc.Pretty.Doc

-- | Functions for escaping and formatting XML.
module Text.Pandoc.XML

-- | Escape one character as needed for XML.
escapeCharForXML :: Char -> String

-- | Escape string as needed for XML. Entity references are not preserved.
escapeStringForXML :: String -> String

-- | Put the supplied contents between start and end tags of tagType, with
--   specified attributes and (if specified) indentation.
inTags :: Bool -> String -> [(String, String)] -> Doc -> Doc

-- | Return a self-closing tag of tagType with specified attributes
selfClosingTag :: String -> [(String, String)] -> Doc

-- | Put the supplied contents between start and end tags of tagType.
inTagsSimple :: String -> Doc -> Doc

-- | Put the supplied contents in indented block btw start and end tags.
inTagsIndented :: String -> Doc -> Doc

-- | Escape all non-ascii characters using numerical entities.
toEntities :: String -> String
fromEntities :: String -> String

-- | Definition of a MediaBag object to hold binary resources, and an
--   interface for interacting with it.
module Text.Pandoc.MediaBag

-- | A container for a collection of binary resources, with names and mime
--   types. Note that a MediaBag is a Monoid, so mempty can
--   be used for an empty MediaBag, and <> can be
--   used to append two MediaBags.
data MediaBag

-- | Lookup a media item in a MediaBag, returning mime type and
--   contents.
lookupMedia :: FilePath -> MediaBag -> Maybe (MimeType, ByteString)

-- | Insert a media item into a MediaBag, replacing any existing
--   value with the same name.
insertMedia :: FilePath -> Maybe MimeType -> ByteString -> MediaBag -> MediaBag

-- | Get a list of the file paths stored in a MediaBag, with their
--   corresponding mime types and the lengths in bytes of the contents.
mediaDirectory :: MediaBag -> [(String, MimeType, Int)]

-- | Extract contents of MediaBag to a given directory. Print informational
--   messages if verbose is true.
extractMediaBag :: Bool -> FilePath -> MediaBag -> IO ()
instance Data.Data.Data Text.Pandoc.MediaBag.MediaBag
instance GHC.Base.Monoid Text.Pandoc.MediaBag.MediaBag
instance GHC.Show.Show Text.Pandoc.MediaBag.MediaBag

-- | This module provides a standard way to deal with possible errors
--   encounted during parsing.
module Text.Pandoc.Error
data PandocError

-- | Generic parse failure
ParseFailure :: String -> PandocError

-- | Error thrown by a Parsec parser
ParsecError :: Input -> ParseError -> PandocError

-- | An unsafe method to handle PandocErrors.
handleError :: Either PandocError a -> a
instance GHC.Generics.Generic Text.Pandoc.Error.PandocError
instance GHC.Show.Show Text.Pandoc.Error.PandocError
instance GHC.Exception.Exception Text.Pandoc.Error.PandocError

-- | 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]
ordNub :: (Ord 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.
trim :: String -> String

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

-- | Remove trailing space (including newlines) from string.
trimr :: 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 < 4000 to uppercase roman numeral.
toRomanNumeral :: Int -> String

-- | Escape whitespace and some punctuation characters 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 YYYY-MM-DD format. We
--   limit years to the range 1601-9999 (ISO 8601 accepts greater than or
--   equal to 1583, but MS Word only accepts dates starting 1601).
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
--   Space elements, collapse double Spaces into singles,
--   and remove empty Str elements.
normalizeSpaces :: [Inline] -> [Inline]

-- | Extract the leading and trailing spaces from inside an inline element
--   and place them outside the element. SoftBreaks count as Spaces for
--   these purposes.
extractSpaces :: (Inlines -> Inlines) -> Inlines -> Inlines

-- | Normalize Pandoc document, consolidating doubled
--   Spaces, combining adjacent Strs and Emphs, remove
--   Nulls and empty elements, etc.
normalize :: Pandoc -> Pandoc
normalizeInlines :: [Inline] -> [Inline]
normalizeBlocks :: [Block] -> [Block]

-- | Extract inlines, removing formatting.
removeFormatting :: Walkable Inline a => a -> [Inline]

-- | Convert pandoc structure to a string with formatting removed.
--   Footnotes are skipped (since we don't want their contents in link
--   labels).
stringify :: Walkable Inline a => a -> String

-- | Bring all regular text in a pandoc structure to uppercase.
--   
--   This function correctly handles cases where a lowercase character
--   doesn't match to a single uppercase character – e.g. “Straße” would be
--   converted to “STRASSE”, not “STRAßE”.
capitalize :: Walkable Inline a => a -> a

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

-- | Change final list item from Para to Plain if the
--   list contains no other Para blocks. Like compactify, but
--   operates on Blocks rather than [Block].
compactify' :: [Blocks] -> [Blocks]

-- | Like compactify', but acts on items of definition lists.
compactify'DL :: [(Inlines, [Blocks])] -> [(Inlines, [Blocks])]

-- | Convert a list of lines into a paragraph with hard line breaks. This
--   is useful e.g. for rudimentary support of LineBlock elements in
--   writers.
linesToPara :: [[Inline]] -> Block

-- | Data structure for defining hierarchical Pandoc documents
data Element
Blk :: Block -> Element
Sec :: Int -> [Int] -> Attr -> [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] -> Set String -> String

-- | Convert Pandoc inline list to plain text identifier. HTML identifiers
--   must start with a letter, and may contain only letters, digits, and
--   the characters _-.
inlineListToIdentifier :: [Inline] -> String

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

-- | Shift header levels up or down.
headerShift :: Int -> Pandoc -> Pandoc

-- | Detect if a list is tight.
isTightList :: [[Block]] -> Bool

-- | Set a field of a Meta object. If the field already has a value,
--   convert it into a list with the new value appended to the old
--   value(s).
addMetaField :: ToMetaValue a => String -> a -> Meta -> Meta

-- | Create Meta from old-style title, authors, date. This is
--   provided to ease the transition from the old API.
makeMeta :: [Inline] -> [[Inline]] -> [Inline] -> Meta

-- | Render HTML tags.
renderTags' :: [Tag String] -> String

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

-- | Read file from specified user data directory or, if not found there,
--   from Cabal data directory.
readDataFile :: Maybe FilePath -> FilePath -> IO ByteString

-- | Same as readDataFile but returns a String instead of a
--   ByteString.
readDataFileUTF8 :: Maybe FilePath -> FilePath -> IO String

-- | Fetch an image or other item from the local filesystem or the net.
--   Returns raw content and maybe mime type.
fetchItem :: Maybe String -> String -> IO (Either SomeException (ByteString, Maybe MimeType))

-- | Like fetchItem, but also looks for items in a MediaBag.
fetchItem' :: MediaBag -> Maybe String -> String -> IO (Either SomeException (ByteString, Maybe MimeType))

-- | Read from a URL and return raw data and maybe mime type.
openURL :: String -> IO (Either SomeException (ByteString, Maybe MimeType))

-- | Remove intermediate "." and ".." directories from a path.
--   
--   
--   collapseFilePath "./foo" == "foo"
--   collapseFilePath "/bar/../baz" == "/baz"
--   collapseFilePath "/../baz" == "/../baz"
--   collapseFilePath "parent/foo/baz/../bar" ==  "parent/foo/bar"
--   collapseFilePath "parent/foo/baz/../../bar" ==  "parent/bar"
--   collapseFilePath "parent/foo/.." ==  "parent"
--   collapseFilePath "/parent/foo/../../bar" ==  "/bar"
--   
collapseFilePath :: FilePath -> FilePath
filteredFilesFromArchive :: Archive -> (FilePath -> Bool) -> [(FilePath, ByteString)]
err :: Int -> String -> IO a
warn :: MonadIO m => String -> m ()
mapLeft :: (a -> b) -> Either a c -> Either b c
hush :: Either a b -> Maybe b
blocksToInlines :: [Block] -> [Inline]
safeRead :: (MonadPlus m, Read a) => String -> m a
withTempDir :: String -> (FilePath -> IO a) -> IO a

-- | Version number of pandoc library.
pandocVersion :: String
instance Data.Data.Data Text.Pandoc.Shared.Element
instance GHC.Show.Show Text.Pandoc.Shared.Element
instance GHC.Read.Read Text.Pandoc.Shared.Element
instance GHC.Classes.Eq Text.Pandoc.Shared.Element
instance Text.Pandoc.Walk.Walkable Text.Pandoc.Definition.Inline Text.Pandoc.Shared.Element
instance Text.Pandoc.Walk.Walkable Text.Pandoc.Definition.Block Text.Pandoc.Shared.Element

module Text.Pandoc.CSS
foldOrElse :: Eq a => a -> [a] -> a

-- | takes a list of key/property synonyms and a CSS string and maybe
--   returns the value of the first match (in order of the supplied list)
pickStyleAttrProps :: [String] -> String -> Maybe String

-- | takes a list of keys/properties and a CSS string and returns the
--   corresponding key-value-pairs.
pickStylesToKVs :: [String] -> String -> [(String, String)]

-- | Data structures and functions for representing parser and writer
--   options.
module Text.Pandoc.Options

-- | Individually selectable syntax extensions.
data Extension

-- | PandocPHPMMD style footnotes
Ext_footnotes :: Extension

-- | Pandoc-style inline notes
Ext_inline_notes :: Extension

-- | Pandoc title block
Ext_pandoc_title_block :: Extension

-- | YAML metadata block
Ext_yaml_metadata_block :: Extension

-- | Multimarkdown metadata block
Ext_mmd_title_block :: Extension

-- | Pandoc-style table captions
Ext_table_captions :: Extension

-- | A paragraph with just an image is a figure
Ext_implicit_figures :: Extension

-- | Pandoc-style simple tables
Ext_simple_tables :: Extension

-- | Pandoc-style multiline tables
Ext_multiline_tables :: Extension

-- | Grid tables (pandoc, reST)
Ext_grid_tables :: Extension

-- | Pipe tables (as in PHP markdown extra)
Ext_pipe_tables :: Extension

-- | Pandoc/citeproc citations
Ext_citations :: Extension

-- | Allow raw TeX (other than math)
Ext_raw_tex :: Extension

-- | Allow raw HTML
Ext_raw_html :: Extension

-- | TeX math between $..$ or $$..$$
Ext_tex_math_dollars :: Extension

-- | TeX math btw <math> <math>
Ext_tex_math_single_backslash :: Extension

-- | TeX math btw \(..\) \[..\]
Ext_tex_math_double_backslash :: Extension

-- | Parse LaTeX macro definitions (for math only)
Ext_latex_macros :: Extension

-- | Parse fenced code blocks
Ext_fenced_code_blocks :: Extension

-- | Allow attributes on fenced code blocks
Ext_fenced_code_attributes :: Extension

-- | GitHub style ``` code blocks
Ext_backtick_code_blocks :: Extension

-- | Allow attributes on inline code
Ext_inline_code_attributes :: Extension

-- | Interpret as markdown inside HTML blocks
Ext_markdown_in_html_blocks :: Extension

-- | Use Div blocks for contents of div tags
Ext_native_divs :: Extension

-- | Use Span inlines for contents of span
Ext_native_spans :: Extension

-- | Bracketed spans with attributes
Ext_bracketed_spans :: Extension

-- | Interpret text inside HTML as markdown iff container has attribute
--   markdown
Ext_markdown_attribute :: Extension

-- | Treat a backslash at EOL as linebreak
Ext_escaped_line_breaks :: Extension

-- | link and image attributes
Ext_link_attributes :: Extension

-- | MMD style reference link attributes
Ext_mmd_link_attributes :: Extension

-- | Make all absolute URIs into links
Ext_autolink_bare_uris :: Extension

-- | Enable fancy list numbers and delimiters
Ext_fancy_lists :: Extension

-- | Allow lists without preceding blank
Ext_lists_without_preceding_blankline :: Extension

-- | Make start number of ordered list significant
Ext_startnum :: Extension

-- | Definition lists as in pandoc, mmd, php
Ext_definition_lists :: Extension

-- | Definition lists without space between items, and disallow laziness
Ext_compact_definition_lists :: Extension

-- | Markdown-style numbered examples
Ext_example_lists :: Extension

-- | Make all non-alphanumerics escapable
Ext_all_symbols_escapable :: Extension

-- | Make and escapable
Ext_angle_brackets_escapable :: Extension

-- | Treat underscore inside word as literal
Ext_intraword_underscores :: Extension

-- | Require blank line before a blockquote
Ext_blank_before_blockquote :: Extension

-- | Require blank line before a header
Ext_blank_before_header :: Extension

-- | Strikeout using ~~this~~ syntax
Ext_strikeout :: Extension

-- | Superscript using ^this^ syntax
Ext_superscript :: Extension

-- | Subscript using ~this~ syntax
Ext_subscript :: Extension

-- | All newlines become hard line breaks
Ext_hard_line_breaks :: Extension

-- | Newlines in paragraphs are ignored
Ext_ignore_line_breaks :: Extension

-- | Newlines in paragraphs are ignored between East Asian wide characters
Ext_east_asian_line_breaks :: Extension

-- | Enable literate Haskell conventions
Ext_literate_haskell :: Extension

-- | PHP markdown extra abbreviation definitions
Ext_abbreviations :: Extension

-- | Support emoji like :smile:
Ext_emoji :: Extension

-- | Automatic identifiers for headers
Ext_auto_identifiers :: Extension

-- | ascii-only identifiers for headers
Ext_ascii_identifiers :: Extension

-- | Explicit header attributes {#id .class k=v}
Ext_header_attributes :: Extension

-- | Multimarkdown style header identifiers [myid]
Ext_mmd_header_identifiers :: Extension

-- | Implicit reference links for headers
Ext_implicit_header_references :: Extension

-- | RST style line blocks
Ext_line_blocks :: Extension

-- | Recognise the EPUB extended version of HTML
Ext_epub_html_exts :: Extension

-- | Shortcut reference links
Ext_shortcut_reference_links :: Extension
pandocExtensions :: Set Extension
plainExtensions :: Set Extension
strictExtensions :: Set Extension
phpMarkdownExtraExtensions :: Set Extension
githubMarkdownExtensions :: Set Extension
multimarkdownExtensions :: Set Extension
data ReaderOptions
ReaderOptions :: Set Extension -> Bool -> Bool -> Bool -> Int -> Int -> Bool -> Bool -> [String] -> String -> Bool -> TrackChanges -> Bool -> ReaderOptions

-- | Syntax extensions
[readerExtensions] :: ReaderOptions -> Set Extension

-- | Smart punctuation
[readerSmart] :: ReaderOptions -> Bool

-- | Standalone document with header
[readerStandalone] :: ReaderOptions -> Bool

-- | Parse raw HTML, LaTeX
[readerParseRaw] :: ReaderOptions -> Bool

-- | Number of columns in terminal
[readerColumns] :: ReaderOptions -> Int

-- | Tab stop
[readerTabStop] :: ReaderOptions -> Int

-- | Use pandoc <= 1.8.2.1 behavior in parsing dashes; -- is em-dash; -
--   before numerial is en-dash
[readerOldDashes] :: ReaderOptions -> Bool

-- | Apply macros to TeX math
[readerApplyMacros] :: ReaderOptions -> Bool

-- | Default classes for indented code blocks
[readerIndentedCodeClasses] :: ReaderOptions -> [String]

-- | Default extension for images
[readerDefaultImageExtension] :: ReaderOptions -> String

-- | Print debugging info
[readerTrace] :: ReaderOptions -> Bool
[readerTrackChanges] :: ReaderOptions -> TrackChanges

-- | Parse before combining
[readerFileScope] :: ReaderOptions -> Bool
data HTMLMathMethod
PlainMath :: HTMLMathMethod
LaTeXMathML :: String -> HTMLMathMethod
JsMath :: (Maybe String) -> HTMLMathMethod
GladTeX :: HTMLMathMethod
WebTeX :: String -> HTMLMathMethod
MathML :: (Maybe String) -> HTMLMathMethod
MathJax :: String -> HTMLMathMethod
KaTeX :: String -> 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
RevealJsSlides :: HTMLSlideVariant
NoSlides :: HTMLSlideVariant
data EPUBVersion
EPUB2 :: EPUBVersion
EPUB3 :: EPUBVersion

-- | Options for wrapping text in the output.
data WrapOption

-- | Automatically wrap to width
WrapAuto :: WrapOption

-- | No non-semantic newlines
WrapNone :: WrapOption

-- | Preserve wrapping of input source
WrapPreserve :: WrapOption

-- | Options defining the type of top-level headers.
data TopLevelDivision

-- | Top-level headers become parts
TopLevelPart :: TopLevelDivision

-- | Top-level headers become chapters
TopLevelChapter :: TopLevelDivision

-- | Top-level headers become sections
TopLevelSection :: TopLevelDivision

-- | Top-level type is determined via heuristics
TopLevelDefault :: TopLevelDivision

-- | Options for writers
data WriterOptions
WriterOptions :: Maybe String -> [(String, String)] -> Int -> Bool -> HTMLSlideVariant -> Bool -> HTMLMathMethod -> Bool -> Bool -> [Int] -> Bool -> Set Extension -> Bool -> Int -> WrapOption -> Int -> ObfuscationMethod -> String -> Maybe String -> Maybe FilePath -> CiteMethod -> Bool -> Bool -> Bool -> Bool -> Maybe Int -> TopLevelDivision -> Bool -> Bool -> Style -> Bool -> Bool -> Maybe EPUBVersion -> String -> Maybe String -> [FilePath] -> Int -> Int -> Maybe FilePath -> Maybe FilePath -> MediaBag -> Bool -> [String] -> ReferenceLocation -> WriterOptions

-- | Template to use
[writerTemplate] :: WriterOptions -> Maybe String

-- | Variables to set in template
[writerVariables] :: WriterOptions -> [(String, 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

-- | 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

-- | Starting number for section, subsection, ...
[writerNumberOffset] :: WriterOptions -> [Int]

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

-- | Markdown extensions that can be used
[writerExtensions] :: WriterOptions -> Set Extension

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

-- | Dpi for pixel tofrom inchcm conversions
[writerDpi] :: WriterOptions -> Int

-- | Option for wrapping text
[writerWrapText] :: WriterOptions -> WrapOption

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

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

-- | Prefix for section & note ids in HTML and for footnote marks in
--   markdown
[writerIdentifierPrefix] :: WriterOptions -> String

-- | Absolute URL + directory of 1st source file
[writerSourceURL] :: WriterOptions -> Maybe String

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

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

-- | Produce DocBook5
[writerDocbook5] :: WriterOptions -> Bool

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

-- | Use q tags for quotes in HTML
[writerHtmlQTags] :: WriterOptions -> Bool

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

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

-- | Type of top-level divisions
[writerTopLevelDivision] :: WriterOptions -> TopLevelDivision

-- | 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

-- | Nothing or EPUB version
[writerEpubVersion] :: WriterOptions -> Maybe EPUBVersion

-- | Metadata to include in EPUB
[writerEpubMetadata] :: WriterOptions -> String

-- | EPUB stylesheet specified at command line
[writerEpubStylesheet] :: WriterOptions -> Maybe String

-- | Paths to fonts to embed
[writerEpubFonts] :: WriterOptions -> [FilePath]

-- | Header level for chapters (separate files)
[writerEpubChapterLevel] :: WriterOptions -> Int

-- | Number of levels to include in TOC
[writerTOCDepth] :: WriterOptions -> Int

-- | Path to reference ODT if specified
[writerReferenceODT] :: WriterOptions -> Maybe FilePath

-- | Path to reference DOCX if specified
[writerReferenceDocx] :: WriterOptions -> Maybe FilePath

-- | Media collected by docx or epub reader
[writerMediaBag] :: WriterOptions -> MediaBag

-- | Verbose debugging output
[writerVerbose] :: WriterOptions -> Bool

-- | Flags to pass to latex-engine
[writerLaTeXArgs] :: WriterOptions -> [String]

-- | Location of footnotes and references for writing markdown
[writerReferenceLocation] :: WriterOptions -> ReferenceLocation

-- | Options for accepting or rejecting MS Word track-changes.
data TrackChanges
AcceptChanges :: TrackChanges
RejectChanges :: TrackChanges
AllChanges :: TrackChanges

-- | Locations for footnotes and references in markdown output
data ReferenceLocation

-- | End of block
EndOfBlock :: ReferenceLocation

-- | prior to next section header (or end of document)
EndOfSection :: ReferenceLocation

-- | at end of document
EndOfDocument :: ReferenceLocation
def :: Default a => a

-- | Returns True if the given extension is enabled.
isEnabled :: Extension -> WriterOptions -> Bool
instance GHC.Generics.Generic Text.Pandoc.Options.WriterOptions
instance Data.Data.Data Text.Pandoc.Options.WriterOptions
instance GHC.Show.Show Text.Pandoc.Options.WriterOptions
instance GHC.Generics.Generic Text.Pandoc.Options.ReferenceLocation
instance Data.Data.Data Text.Pandoc.Options.ReferenceLocation
instance GHC.Classes.Eq Text.Pandoc.Options.ReferenceLocation
instance GHC.Read.Read Text.Pandoc.Options.ReferenceLocation
instance GHC.Show.Show Text.Pandoc.Options.ReferenceLocation
instance GHC.Generics.Generic Text.Pandoc.Options.TopLevelDivision
instance Data.Data.Data Text.Pandoc.Options.TopLevelDivision
instance GHC.Classes.Eq Text.Pandoc.Options.TopLevelDivision
instance GHC.Read.Read Text.Pandoc.Options.TopLevelDivision
instance GHC.Show.Show Text.Pandoc.Options.TopLevelDivision
instance GHC.Generics.Generic Text.Pandoc.Options.WrapOption
instance Data.Data.Data Text.Pandoc.Options.WrapOption
instance GHC.Classes.Eq Text.Pandoc.Options.WrapOption
instance GHC.Read.Read Text.Pandoc.Options.WrapOption
instance GHC.Show.Show Text.Pandoc.Options.WrapOption
instance GHC.Generics.Generic Text.Pandoc.Options.ReaderOptions
instance Data.Data.Data Text.Pandoc.Options.ReaderOptions
instance GHC.Read.Read Text.Pandoc.Options.ReaderOptions
instance GHC.Show.Show Text.Pandoc.Options.ReaderOptions
instance GHC.Generics.Generic Text.Pandoc.Options.TrackChanges
instance Data.Data.Data Text.Pandoc.Options.TrackChanges
instance GHC.Classes.Eq Text.Pandoc.Options.TrackChanges
instance GHC.Read.Read Text.Pandoc.Options.TrackChanges
instance GHC.Show.Show Text.Pandoc.Options.TrackChanges
instance GHC.Generics.Generic Text.Pandoc.Options.HTMLSlideVariant
instance Data.Data.Data Text.Pandoc.Options.HTMLSlideVariant
instance GHC.Classes.Eq Text.Pandoc.Options.HTMLSlideVariant
instance GHC.Read.Read Text.Pandoc.Options.HTMLSlideVariant
instance GHC.Show.Show Text.Pandoc.Options.HTMLSlideVariant
instance GHC.Generics.Generic Text.Pandoc.Options.ObfuscationMethod
instance Data.Data.Data Text.Pandoc.Options.ObfuscationMethod
instance GHC.Classes.Eq Text.Pandoc.Options.ObfuscationMethod
instance GHC.Read.Read Text.Pandoc.Options.ObfuscationMethod
instance GHC.Show.Show Text.Pandoc.Options.ObfuscationMethod
instance GHC.Generics.Generic Text.Pandoc.Options.CiteMethod
instance Data.Data.Data Text.Pandoc.Options.CiteMethod
instance GHC.Classes.Eq Text.Pandoc.Options.CiteMethod
instance GHC.Read.Read Text.Pandoc.Options.CiteMethod
instance GHC.Show.Show Text.Pandoc.Options.CiteMethod
instance GHC.Generics.Generic Text.Pandoc.Options.HTMLMathMethod
instance Data.Data.Data Text.Pandoc.Options.HTMLMathMethod
instance GHC.Classes.Eq Text.Pandoc.Options.HTMLMathMethod
instance GHC.Read.Read Text.Pandoc.Options.HTMLMathMethod
instance GHC.Show.Show Text.Pandoc.Options.HTMLMathMethod
instance GHC.Generics.Generic Text.Pandoc.Options.EPUBVersion
instance Data.Data.Data Text.Pandoc.Options.EPUBVersion
instance GHC.Read.Read Text.Pandoc.Options.EPUBVersion
instance GHC.Show.Show Text.Pandoc.Options.EPUBVersion
instance GHC.Classes.Eq Text.Pandoc.Options.EPUBVersion
instance GHC.Generics.Generic Text.Pandoc.Options.Extension
instance Data.Data.Data Text.Pandoc.Options.Extension
instance GHC.Enum.Bounded Text.Pandoc.Options.Extension
instance GHC.Classes.Ord Text.Pandoc.Options.Extension
instance GHC.Classes.Eq Text.Pandoc.Options.Extension
instance GHC.Enum.Enum Text.Pandoc.Options.Extension
instance GHC.Read.Read Text.Pandoc.Options.Extension
instance GHC.Show.Show Text.Pandoc.Options.Extension
instance Data.Default.Class.Default Text.Pandoc.Options.ReaderOptions
instance Data.Default.Class.Default Text.Pandoc.Options.WriterOptions

-- | Conversion of CommonMark-formatted plain text to Pandoc
--   document.
--   
--   CommonMark is a strongly specified variant of Markdown:
--   http://commonmark.org.
module Text.Pandoc.Readers.CommonMark

-- | Parse a CommonMark formatted string into a Pandoc structure.
readCommonMark :: ReaderOptions -> String -> Either PandocError Pandoc

-- | Conversion of a Pandoc document to a string representation.
module Text.Pandoc.Writers.Native

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

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

module Text.Pandoc.Readers.DocBook
readDocBook :: ReaderOptions -> String -> Either PandocError Pandoc
instance GHC.Show.Show Text.Pandoc.Readers.DocBook.DBState
instance Data.Default.Class.Default Text.Pandoc.Readers.DocBook.DBState
instance Text.Pandoc.Builder.HasMeta Text.Pandoc.Readers.DocBook.DBState

-- | Conversion of Docx type (defined in Text.Pandoc.Readers.Docx.Parse) to
--   Pandoc document.
module Text.Pandoc.Readers.Docx
readDocxWithWarnings :: ReaderOptions -> ByteString -> Either PandocError (Pandoc, MediaBag, [String])
readDocx :: ReaderOptions -> ByteString -> Either PandocError (Pandoc, MediaBag)
instance Data.Default.Class.Default Text.Pandoc.Readers.Docx.DState
instance Data.Default.Class.Default Text.Pandoc.Readers.Docx.DEnv

-- | Conversion of HTML to Pandoc document.
module Text.Pandoc.Readers.HTML

-- | Convert HTML-formatted string to Pandoc document.
readHtml :: ReaderOptions -> String -> Either PandocError Pandoc

-- | Matches a tag meeting a certain condition.
htmlTag :: Monad m => (Tag String -> Bool) -> ParserT [Char] st m (Tag String, String)

-- | Matches a stretch of HTML in balanced tags.
htmlInBalanced :: (Monad m) => (Tag String -> Bool) -> ParserT String st m String
isInlineTag :: Tag String -> Bool
isBlockTag :: Tag String -> Bool
isTextTag :: Tag String -> Bool
isCommentTag :: Tag String -> Bool
instance Text.Pandoc.Parsing.HasIdentifierList Text.Pandoc.Readers.HTML.HTMLState
instance Text.Pandoc.Parsing.HasHeaderMap Text.Pandoc.Readers.HTML.HTMLState
instance Text.Pandoc.Parsing.HasQuoteContext st (Control.Monad.Trans.Reader.Reader Text.Pandoc.Readers.HTML.HTMLLocal)
instance Text.Pandoc.Parsing.HasReaderOptions Text.Pandoc.Readers.HTML.HTMLState
instance Text.Pandoc.Builder.HasMeta Text.Pandoc.Readers.HTML.HTMLState
instance Data.Default.Class.Default Text.Pandoc.Readers.HTML.HTMLLocal
instance Text.Pandoc.Parsing.HasLastStrPosition Text.Pandoc.Readers.HTML.HTMLState

module Text.Pandoc.Readers.EPUB
readEPUB :: ReaderOptions -> ByteString -> Either PandocError (Pandoc, MediaBag)

-- | Conversion of twiki text to Pandoc document.
module Text.Pandoc.Readers.TWiki

-- | Read twiki from an input string and return a Pandoc document.
readTWiki :: ReaderOptions -> String -> Either PandocError Pandoc
readTWikiWithWarnings :: ReaderOptions -> String -> Either PandocError (Pandoc, [String])

-- | Conversion of Haddock markup to Pandoc document.
module Text.Pandoc.Readers.Haddock

-- | Parse Haddock markup and return a Pandoc document.
readHaddock :: ReaderOptions -> String -> Either PandocError Pandoc

-- | Conversion of LaTeX to Pandoc document.
module Text.Pandoc.Readers.LaTeX

-- | Parse LaTeX from string and return Pandoc document.
readLaTeX :: ReaderOptions -> String -> Either PandocError Pandoc
rawLaTeXInline :: LP Inline
rawLaTeXBlock :: LP String
inlineCommand :: LP Inlines

-- | Replace "include" commands with file contents.
handleIncludes :: String -> IO (Either PandocError String)

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

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

-- | Read markdown from an input string and return a pair of a Pandoc
--   document and a list of warnings.
readMarkdownWithWarnings :: ReaderOptions -> String -> Either PandocError (Pandoc, [String])

module Text.Pandoc.Readers.OPML
readOPML :: ReaderOptions -> String -> Either PandocError Pandoc
instance GHC.Show.Show Text.Pandoc.Readers.OPML.OPMLState
instance Data.Default.Class.Default Text.Pandoc.Readers.OPML.OPMLState

-- | Conversion of mediawiki text to Pandoc document.
module Text.Pandoc.Readers.MediaWiki

-- | Read mediawiki from an input string and return a Pandoc document.
readMediaWiki :: ReaderOptions -> String -> Either PandocError Pandoc
instance Text.Pandoc.Parsing.HasReaderOptions Text.Pandoc.Readers.MediaWiki.MWState
instance Text.Pandoc.Parsing.HasHeaderMap Text.Pandoc.Readers.MediaWiki.MWState
instance Text.Pandoc.Parsing.HasIdentifierList Text.Pandoc.Readers.MediaWiki.MWState

-- | Conversion of a string representation of a pandoc type
--   (Pandoc, [Block], Block, [Inline],
--   or Inline) to a Pandoc 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,
--   
--   
--   Str "hi"
--   
--   
--   will be treated as if it were
--   
--   
--   Pandoc nullMeta [Plain [Str "hi"]]
--   
readNative :: String -> Either PandocError Pandoc

-- | Entry point to the odt reader.
module Text.Pandoc.Readers.Odt
readOdt :: ReaderOptions -> ByteString -> Either PandocError (Pandoc, MediaBag)

-- | Conversion of org-mode formatted plain text to Pandoc document.
module Text.Pandoc.Readers.Org

-- | Parse org-mode string and return a Pandoc document.
readOrg :: ReaderOptions -> String -> Either PandocError Pandoc

-- | Conversion from reStructuredText to Pandoc document.
module Text.Pandoc.Readers.RST

-- | Parse reStructuredText string and return Pandoc document.
readRST :: ReaderOptions -> String -> Either PandocError Pandoc
readRSTWithWarnings :: ReaderOptions -> String -> Either PandocError (Pandoc, [String])

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

-- | Parse a Textile text and return a Pandoc document.
readTextile :: ReaderOptions -> String -> Either PandocError Pandoc

-- | Conversion of txt2tags formatted plain text to Pandoc document.
module Text.Pandoc.Readers.Txt2Tags

-- | Read Txt2Tags from an input string returning a Pandoc document
readTxt2Tags :: T2TMeta -> ReaderOptions -> String -> Either PandocError Pandoc

-- | Get the meta information required by Txt2Tags macros
getT2TMeta :: [FilePath] -> FilePath -> IO T2TMeta

-- | An object for the T2T macros meta information the contents of each
--   field is simply substituted verbatim into the file
data T2TMeta
T2TMeta :: String -> String -> FilePath -> FilePath -> T2TMeta

-- | Current date
[date] :: T2TMeta -> String

-- | Last modification time of infile
[mtime] :: T2TMeta -> String

-- | Input file
[infile] :: T2TMeta -> FilePath

-- | Output file
[outfile] :: T2TMeta -> FilePath

-- | Read Txt2Tags (ignoring all macros) from an input string returning a
--   Pandoc document
readTxt2TagsNoMacros :: ReaderOptions -> String -> Either PandocError Pandoc
instance GHC.Show.Show Text.Pandoc.Readers.Txt2Tags.T2TMeta
instance Data.Default.Class.Default Text.Pandoc.Readers.Txt2Tags.T2TMeta

-- | 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.
makeSelfContained :: WriterOptions -> String -> IO String

-- | A simple templating system with variable substitution and
--   conditionals.
module Text.Pandoc.Templates
renderTemplate :: (ToJSON a, TemplateTarget b) => Template -> a -> b

-- | Like applyTemplate, but raising an error if compilation fails.
renderTemplate' :: (ToJSON a, TemplateTarget b) => String -> a -> b
class TemplateTarget a
varListToJSON :: [(String, String)] -> Value
compileTemplate :: Text -> Either String Template
data Template :: *

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

-- | Conversion of Pandoc documents to custom markup using a lua
--   writer.
module Text.Pandoc.Writers.Custom

-- | Convert Pandoc to custom markup.
writeCustom :: FilePath -> WriterOptions -> Pandoc -> IO String
instance GHC.Show.Show Text.Pandoc.Writers.Custom.PandocLuaException
instance Scripting.Lua.StackValue [GHC.Types.Char]
instance Scripting.Lua.StackValue Text.Pandoc.Definition.Format
instance (Scripting.Lua.StackValue a, Scripting.Lua.StackValue b) => Scripting.Lua.StackValue (Data.Map.Base.Map a b)
instance (Scripting.Lua.StackValue a, Scripting.Lua.StackValue b) => Scripting.Lua.StackValue (a, b)
instance Scripting.Lua.StackValue [Text.Pandoc.Definition.Inline]
instance Scripting.Lua.StackValue [Text.Pandoc.Definition.Block]
instance Scripting.Lua.StackValue Text.Pandoc.Definition.MetaValue
instance Scripting.Lua.StackValue Text.Pandoc.Definition.Citation
instance GHC.Exception.Exception Text.Pandoc.Writers.Custom.PandocLuaException

-- | Conversion of Pandoc 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: http://www.methods.co.nz/asciidoc/
module Text.Pandoc.Writers.AsciiDoc

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

-- | Conversion of Pandoc format into ConTeXt.
module Text.Pandoc.Writers.ConTeXt

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

-- | Conversion of Pandoc documents to Docbook XML.
module Text.Pandoc.Writers.Docbook

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

-- | Conversion of Pandoc documents to docx.
module Text.Pandoc.Writers.Docx

-- | Produce an Docx file from a Pandoc document.
writeDocx :: WriterOptions -> Pandoc -> IO ByteString
instance GHC.Classes.Ord Text.Pandoc.Writers.Docx.ListMarker
instance GHC.Classes.Eq Text.Pandoc.Writers.Docx.ListMarker
instance GHC.Read.Read Text.Pandoc.Writers.Docx.ListMarker
instance GHC.Show.Show Text.Pandoc.Writers.Docx.ListMarker

-- | Conversion of Pandoc documents to DokuWiki markup.
--   
--   DokuWiki: https://www.dokuwiki.org/dokuwiki
module Text.Pandoc.Writers.DokuWiki

-- | Convert Pandoc to DokuWiki.
writeDokuWiki :: WriterOptions -> Pandoc -> String
instance Data.Default.Class.Default Text.Pandoc.Writers.DokuWiki.WriterState
instance Data.Default.Class.Default Text.Pandoc.Writers.DokuWiki.WriterEnvironment

-- | Conversion of Pandoc documents to FB2 (FictionBook2) format.
--   
--   FictionBook is an XML-based e-book format. For more information see:
--   http://www.fictionbook.org/index.php/Eng:XML_Schema_Fictionbook_2.1
module Text.Pandoc.Writers.FB2

-- | Produce an FB2 document from a Pandoc document.
writeFB2 :: WriterOptions -> Pandoc -> IO String
instance GHC.Classes.Eq Text.Pandoc.Writers.FB2.ImageMode
instance GHC.Show.Show Text.Pandoc.Writers.FB2.FbRenderState
instance GHC.Show.Show Text.Pandoc.Writers.FB2.ImageMode

-- | Conversion of Pandoc 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 Pandoc documents to CommonMark.
--   
--   CommonMark: http://commonmark.org
module Text.Pandoc.Writers.CommonMark

-- | Convert Pandoc to CommonMark.
writeCommonMark :: WriterOptions -> Pandoc -> String

-- | Conversion of Pandoc documents to EPUB.
module Text.Pandoc.Writers.EPUB

-- | Produce an EPUB file from a Pandoc document.
writeEPUB :: WriterOptions -> Pandoc -> IO ByteString
instance GHC.Show.Show Text.Pandoc.Writers.EPUB.EPUBMetadata
instance GHC.Show.Show Text.Pandoc.Writers.EPUB.ProgressionDirection
instance GHC.Show.Show Text.Pandoc.Writers.EPUB.Title
instance GHC.Show.Show Text.Pandoc.Writers.EPUB.Identifier
instance GHC.Show.Show Text.Pandoc.Writers.EPUB.Creator
instance GHC.Show.Show Text.Pandoc.Writers.EPUB.Date
instance GHC.Show.Show Text.Pandoc.Writers.EPUB.Stylesheet

-- | Conversion of Pandoc documents to haddock markup.
--   
--   Haddock: http://www.haskell.org/haddock/doc/html/
module Text.Pandoc.Writers.Haddock

-- | Convert Pandoc to Haddock.
writeHaddock :: WriterOptions -> Pandoc -> String
instance Data.Default.Class.Default Text.Pandoc.Writers.Haddock.WriterState

-- | Conversion of Pandoc documents to Adobe InCopy ICML, a
--   stand-alone XML format which is a subset of the zipped IDML format for
--   which the documentation is available here:
--   http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/indesign/sdk/cs6/idml/idml-specification.pdf
--   InCopy is the companion word-processor to Adobe InDesign and ICML
--   documents can be integrated into InDesign with File -> Place.
module Text.Pandoc.Writers.ICML

-- | Convert Pandoc document to string in ICML format.
writeICML :: WriterOptions -> Pandoc -> IO String

-- | Conversion of Pandoc format into LaTeX.
module Text.Pandoc.Writers.LaTeX

-- | Convert Pandoc to LaTeX.
writeLaTeX :: WriterOptions -> Pandoc -> String
instance GHC.Classes.Eq Text.Pandoc.Writers.LaTeX.StringContext

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

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

-- | Conversion of Pandoc documents to markdown-formatted plain
--   text.
--   
--   Markdown: http://daringfireball.net/projects/markdown/
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
instance Data.Default.Class.Default Text.Pandoc.Writers.Markdown.WriterEnv
instance Data.Default.Class.Default Text.Pandoc.Writers.Markdown.WriterState

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

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

-- | Conversion of Pandoc documents to OPML XML.
module Text.Pandoc.Writers.OPML

-- | Convert Pandoc document to string in OPML format.
writeOPML :: WriterOptions -> Pandoc -> String

-- | Conversion of Pandoc documents to OpenDocument XML.
module Text.Pandoc.Writers.OpenDocument

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

-- | Conversion of Pandoc documents to ODT.
module Text.Pandoc.Writers.ODT

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

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

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

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

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

-- | Conversion of Pandoc 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 Pandoc to a string in rich text format, with images embedded
--   as encoded binary data.
writeRTFWithEmbeddedImages :: WriterOptions -> Pandoc -> IO String

-- | Conversion of Pandoc documents to Docbook XML.
module Text.Pandoc.Writers.TEI

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

-- | Conversion of Pandoc format into Texinfo.
module Text.Pandoc.Writers.Texinfo

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

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

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

-- | Conversion of Pandoc documents to ZimWiki markup.
--   
--   http://zim-wiki.org/manual/Help/Wiki_Syntax.html
module Text.Pandoc.Writers.ZimWiki

-- | Convert Pandoc to ZimWiki.
writeZimWiki :: WriterOptions -> Pandoc -> String
instance Data.Default.Class.Default Text.Pandoc.Writers.ZimWiki.WriterState

-- | 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:
--   
--   
--   module Main where
--   import Text.Pandoc
--   
--   markdownToRST :: String -> String
--   markdownToRST =
--     writeRST def {writerReferenceLinks = True} .
--     handleError . readMarkdown def
--   
--   main = getContents >>= putStrLn . markdownToRST
--   
--   
--   Note: all of the readers assume that the input text has '\n'
--   line endings. So if you get your input text from a web form, you
--   should remove '\r' characters using filter (/='\r').
module Text.Pandoc

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

-- | Association list of formats and writers.
writers :: [(String, Writer)]
data Reader
StringReader :: (ReaderOptions -> String -> IO (Either PandocError Pandoc)) -> Reader
ByteStringReader :: (ReaderOptions -> ByteString -> IO (Either PandocError (Pandoc, MediaBag))) -> Reader
mkStringReader :: (ReaderOptions -> String -> Either PandocError Pandoc) -> Reader
readDocx :: ReaderOptions -> ByteString -> Either PandocError (Pandoc, MediaBag)
readOdt :: ReaderOptions -> ByteString -> Either PandocError (Pandoc, MediaBag)

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

-- | Parse a CommonMark formatted string into a Pandoc structure.
readCommonMark :: ReaderOptions -> String -> Either PandocError Pandoc

-- | Read mediawiki from an input string and return a Pandoc document.
readMediaWiki :: ReaderOptions -> String -> Either PandocError Pandoc

-- | Parse reStructuredText string and return Pandoc document.
readRST :: ReaderOptions -> String -> Either PandocError Pandoc

-- | Parse org-mode string and return a Pandoc document.
readOrg :: ReaderOptions -> String -> Either PandocError Pandoc

-- | Parse LaTeX from string and return Pandoc document.
readLaTeX :: ReaderOptions -> String -> Either PandocError Pandoc

-- | Convert HTML-formatted string to Pandoc document.
readHtml :: ReaderOptions -> String -> Either PandocError Pandoc

-- | Parse a Textile text and return a Pandoc document.
readTextile :: ReaderOptions -> String -> Either PandocError Pandoc
readDocBook :: ReaderOptions -> String -> Either PandocError Pandoc
readOPML :: ReaderOptions -> String -> Either PandocError Pandoc

-- | Parse Haddock markup and return a Pandoc document.
readHaddock :: ReaderOptions -> String -> Either PandocError 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,
--   
--   
--   Str "hi"
--   
--   
--   will be treated as if it were
--   
--   
--   Pandoc nullMeta [Plain [Str "hi"]]
--   
readNative :: String -> Either PandocError Pandoc
readJSON :: ReaderOptions -> String -> Either PandocError Pandoc

-- | Read twiki from an input string and return a Pandoc document.
readTWiki :: ReaderOptions -> String -> Either PandocError Pandoc

-- | Read Txt2Tags from an input string returning a Pandoc document
readTxt2Tags :: T2TMeta -> ReaderOptions -> String -> Either PandocError Pandoc

-- | Read Txt2Tags (ignoring all macros) from an input string returning a
--   Pandoc document
readTxt2TagsNoMacros :: ReaderOptions -> String -> Either PandocError Pandoc
readEPUB :: ReaderOptions -> ByteString -> Either PandocError (Pandoc, MediaBag)
data Writer
PureStringWriter :: (WriterOptions -> Pandoc -> String) -> Writer
IOStringWriter :: (WriterOptions -> Pandoc -> IO String) -> Writer
IOByteStringWriter :: (WriterOptions -> Pandoc -> IO ByteString) -> Writer

-- | Prettyprint Pandoc document.
writeNative :: WriterOptions -> Pandoc -> String
writeJSON :: 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 ICML format.
writeICML :: WriterOptions -> Pandoc -> IO String

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

-- | Convert Pandoc document to string in OPML format.
writeOPML :: 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 DokuWiki.
writeDokuWiki :: WriterOptions -> Pandoc -> String

-- | Convert Pandoc to ZimWiki.
writeZimWiki :: 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 :: WriterOptions -> Pandoc -> IO ByteString

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

-- | Produce an EPUB file from a Pandoc document.
writeEPUB :: WriterOptions -> Pandoc -> IO ByteString

-- | Produce an FB2 document from a Pandoc document.
writeFB2 :: WriterOptions -> Pandoc -> IO String

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

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

-- | Convert Pandoc to Haddock.
writeHaddock :: WriterOptions -> Pandoc -> String

-- | Convert Pandoc to CommonMark.
writeCommonMark :: WriterOptions -> Pandoc -> String

-- | Convert Pandoc to custom markup.
writeCustom :: FilePath -> WriterOptions -> Pandoc -> IO String

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

-- | Retrieve reader based on formatSpec (format+extensions).
getReader :: String -> Either String Reader

-- | Retrieve writer based on formatSpec (format+extensions).
getWriter :: String -> Either String Writer
getDefaultExtensions :: String -> Set Extension

-- | Deprecated. Use toJSONFilter from Text.Pandoc.JSON
--   instead.
class ToJSONFilter a => ToJsonFilter a where toJsonFilter = toJSONFilter

-- | Deprecated: Use toJSONFilter from JSON instead
toJsonFilter :: ToJsonFilter a => a -> IO ()

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