-- 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, 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.17.1


-- | ByteString variant of <a>readProcessWithExitCode</a>.
module Text.Pandoc.Process

-- | Version of <a>readProcessWithExitCode</a> that uses lazy bytestrings
--   instead of strings and allows setting environment variables.
--   
--   <tt>readProcessWithExitCode</tt> creates an external process, reads
--   its standard output and standard error strictly, waits until the
--   process terminates, and then returns the <a>ExitCode</a> of the
--   process, the standard output, and the standard error.
--   
--   If an asynchronous exception is thrown to the thread executing
--   <tt>readProcessWithExitCode</tt>, the forked process will be
--   terminated and <tt>readProcessWithExitCode</tt> will wait (block)
--   until the process has been terminated.
pipeProcess :: Maybe [(String, String)] -> FilePath -> [String] -> ByteString -> IO (ExitCode, ByteString, ByteString)


-- | 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> or <tt>$$</tt> characters
--   if entire formula can't be converted.
texMathToInlines :: MathType -> String -> [Inline]


-- | 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
--   &lt;&gt; blankline</tt> has the same effect as <tt>blankline</tt>.
blankline :: Doc

-- | Inserts a blank lines unless they exists already. (<tt>blanklines m
--   &lt;&gt; blanklines n</tt> has the same effect as <tt>blankline (max m
--   n)</tt>.
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 <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
infixr 6 <>

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

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

-- | <tt>a $+$ b</tt> puts <tt>a</tt> above <tt>b</tt>, 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 <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

-- | Removes leading blank lines from a <a>Doc</a>.
nestle :: 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 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


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


-- | 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 <a>PandocError</a>s.
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
instance Text.Pandoc.Compat.Except.Error Text.Pandoc.Error.PandocError


-- | 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 <a>MediaBag</a> is a Monoid, so <a>mempty</a> can
--   be used for an empty <a>MediaBag</a>, and <tt>&lt;&gt;</tt> can be
--   used to append two <a>MediaBag</a>s.
data MediaBag

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

-- | Insert a media item into a <a>MediaBag</a>, 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 <a>MediaBag</a>, 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 <tt>verbose</tt> 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


-- | 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 &lt; 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 <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]

-- | 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 <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 :: 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 <tt>Para</tt> to <tt>Plain</tt> if the
--   list contains no other <tt>Para</tt> blocks.
compactify :: [[Block]] -> [[Block]]

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

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

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

-- | 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 <a>Meta</a> 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 <a>Meta</a> 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 <a>readDataFile</a> 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 <a>fetchItem</a>, but also looks for items in a <a>MediaBag</a>.
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.
--   
--   <pre>
--   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"
--   </pre>
collapseFilePath :: FilePath -> FilePath
err :: Int -> String -> IO a
warn :: String -> IO ()
mapLeft :: (a -> b) -> Either a c -> Either b c
hush :: Either a b -> Maybe b
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)]


-- | 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 nullMeta [Plain [Str "hi"]]
--   </pre>
readNative :: String -> Either PandocError Pandoc


-- | A simple templating system with variable substitution and
--   conditionals. The following program illustrates its use:
--   
--   <pre>
--   import Data.Text
--   import Data.Aeson
--   import Text.Pandoc.Templates
--   
--   data Employee = Employee { firstName :: String
--                            , lastName  :: String
--                            , salary    :: Maybe Int }
--   instance ToJSON Employee where
--     toJSON e = object [ "name" .= object [ "first" .= firstName e
--                                          , "last"  .= lastName e ]
--                       , "salary" .= salary e ]
--   
--   employees :: [Employee]
--   employees = [ Employee "John" "Doe" Nothing
--               , Employee "Omar" "Smith" (Just 30000)
--               , Employee "Sara" "Chen" (Just 60000) ]
--   
--   template :: Template
--   template = either error id $ compileTemplate
--     "$for(employee)$Hi, $employee.name.first$. $if(employee.salary)$You make $employee.salary$.$else$No salary data.$endif$$sep$\n$endfor$"
--   
--   main = putStrLn $ renderTemplate template $ object ["employee" .= employees ]
--   </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>, <tt>-</tt>, and <tt>.</tt>.
--   
--   The values of variables are determined by a JSON object that is passed
--   as a parameter to <tt>renderTemplate</tt>. So, for example,
--   <tt>title</tt> will return the value of the <tt>title</tt> field, and
--   <tt>employee.salary</tt> will return the value of the <tt>salary</tt>
--   field of the object that is the value of the <tt>employee</tt> field.
--   
--   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.
--   
--   The <tt>$for$</tt> keyword can be used to iterate over an array. If
--   the value of the associated variable is not an array, a single
--   iteration will be performed on its value.
--   
--   You may optionally specify separators using <tt>$sep$</tt>, as in the
--   example above.
module Text.Pandoc.Templates
renderTemplate :: (ToJSON a, TemplateTarget b) => Template -> a -> b

-- | Like <a>renderTemplate</a>, but compiles the template first, raising
--   an error if compilation fails.
renderTemplate' :: (ToJSON a, TemplateTarget b) => String -> a -> b
class TemplateTarget a
toTarget :: TemplateTarget a => Text -> 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)
instance GHC.Base.Monoid Text.Pandoc.Templates.Template
instance Text.Pandoc.Templates.TemplateTarget Data.Text.Internal.Text
instance Text.Pandoc.Templates.TemplateTarget GHC.Base.String
instance Text.Pandoc.Templates.TemplateTarget Data.ByteString.Lazy.Internal.ByteString
instance Text.Pandoc.Templates.TemplateTarget Text.Blaze.Html.Html


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

-- | Individually selectable syntax extensions.
data Extension

-- | Pandoc<i>PHP</i>MMD 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 &lt;math&gt; &lt;math&gt;
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 <a>div</a> tags
Ext_native_divs :: Extension

-- | Use Span inlines for contents of <a>span</a>
Ext_native_spans :: Extension

-- | Interpret text inside HTML as markdown iff container has attribute
--   <tt>markdown</tt>
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

-- | 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 &lt;= 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 :: (Maybe 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 for writers
data WriterOptions
WriterOptions :: Bool -> 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 -> Bool -> Bool -> Bool -> Style -> Bool -> Bool -> Maybe EPUBVersion -> String -> Maybe String -> [FilePath] -> Int -> Int -> Maybe FilePath -> Maybe FilePath -> MediaBag -> Bool -> [String] -> 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)]

-- | 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 to<i>from inch</i>cm 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 &amp; 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 <tt><a>q</a></tt> 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

-- | Use "chapter" 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

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

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

-- | The default value for this type.
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.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 <a>Pandoc</a>
--   document.
--   
--   CommonMark is a strongly specified variant of Markdown:
--   <a>http://commonmark.org</a>.
module Text.Pandoc.Readers.CommonMark

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

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 Haddock markup to <a>Pandoc</a> document.
module Text.Pandoc.Readers.Haddock

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


-- | Conversion of Docx type (defined in Text.Pandoc.Readers.Docx.Parse) to
--   <a>Pandoc</a> 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


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


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

-- | Produce an FB2 document from a <a>Pandoc</a> 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 from reStructuredText to <a>Pandoc</a> 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 of HTML to <a>Pandoc</a> document.
module Text.Pandoc.Readers.HTML

-- | Convert HTML-formatted string to <a>Pandoc</a> 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


-- | Conversion of mediawiki text to <a>Pandoc</a> 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

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


-- | Conversion of twiki text to <a>Pandoc</a> 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 txt2tags formatted plain text to <a>Pandoc</a> 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


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

-- | Parse LaTeX from string and return <a>Pandoc</a> 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 <a>Pandoc</a> 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 from Textile to <a>Pandoc</a> document, based on the spec
--   available at <a>http://redcloth.org/textile</a>.
--   
--   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 <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
instance GHC.Classes.Eq Text.Pandoc.Writers.LaTeX.StringContext


-- | 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 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
instance Data.Default.Class.Default Text.Pandoc.Writers.Markdown.WriterState


-- | Conversion of <a>Pandoc</a> 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 <a>Pandoc</a> 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 <a>Pandoc</a> 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:
--   <a>http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/indesign/sdk/cs6/idml/idml-specification.pdf</a>
--   InCopy is the companion word-processor to Adobe InDesign and ICML
--   documents can be integrated into InDesign with File -&gt; Place.
module Text.Pandoc.Writers.ICML

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


-- | 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 OPML XML.
module Text.Pandoc.Writers.OPML

-- | Convert Pandoc document to string in OPML format.
writeOPML :: 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 GHC.Classes.Ord Text.Pandoc.Writers.OpenDocument.TextStyle
instance GHC.Classes.Eq Text.Pandoc.Writers.OpenDocument.TextStyle


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

-- | Produce an ODT file from a Pandoc document.
writeODT :: 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 Pandoc to a string in rich text format, with images embedded
--   as encoded binary data.
writeRTFWithEmbeddedImages :: WriterOptions -> Pandoc -> IO String


-- | 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 DokuWiki markup.
--   
--   DokuWiki: <a>https://www.dokuwiki.org/dokuwiki</a>
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 <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


-- | Conversion of <a>Pandoc</a> documents to haddock markup.
--   
--   Haddock: <a>http://www.haskell.org/haddock/doc/html/</a>
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 <a>Pandoc</a> documents to CommonMark.
--   
--   CommonMark: <a>http://commonmark.org</a>
module Text.Pandoc.Writers.CommonMark

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


-- | Conversion of <a>Pandoc</a> 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 <a>Pandoc</a> documents to Docbook XML.
module Text.Pandoc.Writers.TEI

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


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


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


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

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


-- | 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
--   import Text.Pandoc.Error (handleError)
--   
--   markdownToRST :: String -&gt; String
--   markdownToRST = handleError .
--     writeRST def {writerReferenceLinks = True} .
--     readMarkdown def
--   
--   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, 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 <a>Pandoc</a> 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 <a>Pandoc</a> document.
readLaTeX :: ReaderOptions -> String -> Either PandocError Pandoc

-- | Convert HTML-formatted string to <a>Pandoc</a> 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 <a>Pandoc</a> 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,
--   
--   <pre>
--   Str "hi"
--   </pre>
--   
--   will be treated as if it were
--   
--   <pre>
--   Pandoc nullMeta [Plain [Str "hi"]]
--   </pre>
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 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 <a>Pandoc</a> 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

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

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

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