-- 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, JATS, MediaWiki markup, TWiki markup, TikiWiki markup,
--   Creole 1.0, Haddock markup, OPML, Emacs Org-Mode, Emacs Muse,
--   txt2tags, Vimwiki, Word Docx, ODT, EPUB, FictionBook2, and Textile,
--   and it can write Markdown, reStructuredText, XHTML, HTML 5, LaTeX,
--   ConTeXt, DocBook, JATS, OPML, TEI, OpenDocument, ODT, Word docx, RTF,
--   MediaWiki, DokuWiki, ZimWiki, Textile, groff man, groff ms, plain
--   text, Emacs Org-Mode, AsciiDoc, Haddock markup, EPUB (v2 and v3),
--   FictionBook2, InDesign ICML, Muse, LaTeX beamer slides, PowerPoint,
--   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 2.2.1


-- | Function to convert accented latin letters to their unaccented ascii
--   equivalents (used in constructing HTML identifiers).
module Text.Pandoc.Asciify
toAsciiChar :: Char -> Maybe Char


-- | Emoji symbol lookup from canonical string identifier.
module Text.Pandoc.Emoji
emojis :: Map String String


-- | This module provides data types and functions for warnings and info
--   messages.
module Text.Pandoc.Logging

-- | Verbosity level.
data Verbosity
ERROR :: Verbosity
WARNING :: Verbosity
INFO :: Verbosity
data LogMessage
SkippedContent :: String -> SourcePos -> LogMessage
CouldNotParseYamlMetadata :: String -> SourcePos -> LogMessage
DuplicateLinkReference :: String -> SourcePos -> LogMessage
DuplicateNoteReference :: String -> SourcePos -> LogMessage
NoteDefinedButNotUsed :: String -> SourcePos -> LogMessage
DuplicateIdentifier :: String -> SourcePos -> LogMessage
ReferenceNotFound :: String -> SourcePos -> LogMessage
CircularReference :: String -> SourcePos -> LogMessage
UndefinedToggle :: String -> SourcePos -> LogMessage
ParsingUnescaped :: String -> SourcePos -> LogMessage
CouldNotLoadIncludeFile :: String -> SourcePos -> LogMessage
MacroAlreadyDefined :: String -> SourcePos -> LogMessage
InlineNotRendered :: Inline -> LogMessage
BlockNotRendered :: Block -> LogMessage
DocxParserWarning :: String -> LogMessage
IgnoredIOError :: String -> LogMessage
CouldNotFetchResource :: String -> String -> LogMessage
CouldNotDetermineImageSize :: String -> String -> LogMessage
CouldNotConvertImage :: String -> String -> LogMessage
CouldNotDetermineMimeType :: String -> LogMessage
CouldNotConvertTeXMath :: String -> String -> LogMessage
CouldNotParseCSS :: String -> LogMessage
Fetching :: String -> LogMessage
Extracting :: String -> LogMessage
NoTitleElement :: String -> LogMessage
NoLangSpecified :: LogMessage
InvalidLang :: String -> LogMessage
CouldNotHighlight :: String -> LogMessage
MissingCharacter :: String -> LogMessage
Deprecated :: String -> String -> LogMessage
NoTranslation :: String -> LogMessage
CouldNotLoadTranslations :: String -> String -> LogMessage
UnexpectedXmlElement :: String -> String -> LogMessage
encodeLogMessages :: [LogMessage] -> ByteString
showLogMessage :: LogMessage -> String
messageVerbosity :: LogMessage -> Verbosity
instance GHC.Generics.Generic Text.Pandoc.Logging.LogMessage
instance GHC.Classes.Ord Text.Pandoc.Logging.LogMessage
instance Data.Data.Data Text.Pandoc.Logging.LogMessage
instance GHC.Classes.Eq Text.Pandoc.Logging.LogMessage
instance GHC.Show.Show Text.Pandoc.Logging.LogMessage
instance GHC.Generics.Generic Text.Pandoc.Logging.Verbosity
instance GHC.Enum.Bounded Text.Pandoc.Logging.Verbosity
instance GHC.Classes.Ord Text.Pandoc.Logging.Verbosity
instance GHC.Enum.Enum Text.Pandoc.Logging.Verbosity
instance Data.Data.Data Text.Pandoc.Logging.Verbosity
instance GHC.Classes.Eq Text.Pandoc.Logging.Verbosity
instance GHC.Read.Read Text.Pandoc.Logging.Verbosity
instance GHC.Show.Show Text.Pandoc.Logging.Verbosity
instance Data.Aeson.Types.ToJSON.ToJSON Text.Pandoc.Logging.LogMessage
instance Data.Aeson.Types.ToJSON.ToJSON Text.Pandoc.Logging.Verbosity
instance Data.Aeson.Types.FromJSON.FromJSON Text.Pandoc.Logging.Verbosity


-- | Mime type lookup for ODT writer.
module Text.Pandoc.MIME
type MimeType = String

-- | Determine mime type appropriate for file path.
getMimeType :: FilePath -> Maybe MimeType

-- | Determime mime type appropriate for file path, defaulting to
--   “application/octet-stream” if nothing else fits.
getMimeTypeDef :: FilePath -> MimeType
extensionFromMimeType :: MimeType -> Maybe 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 <a>MediaBag</a> is a Monoid, so <a>mempty</a> can
--   be used for an empty <a>MediaBag</a>, and <a>&lt;&gt;</a> 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)]
instance Data.Data.Data Text.Pandoc.MediaBag.MediaBag
instance GHC.Base.Monoid Text.Pandoc.MediaBag.MediaBag
instance GHC.Base.Semigroup Text.Pandoc.MediaBag.MediaBag
instance GHC.Show.Show Text.Pandoc.MediaBag.MediaBag


-- | 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 :: (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 blank lines unless they exist already. (<tt>blanklines m
--   &lt;&gt; blanklines n</tt> has the same effect as <tt>blanklines (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

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

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

-- | Returns the minimal width of a <a>Doc</a> when reflowed at breakable
--   spaces.
minOffset :: 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 associative operation.
(<>) :: Semigroup a => a -> a -> a
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.Classes.Eq Text.Pandoc.Pretty.D
instance GHC.Show.Show Text.Pandoc.Pretty.D
instance GHC.Classes.Eq Text.Pandoc.Pretty.Doc
instance GHC.Show.Show Text.Pandoc.Pretty.Doc
instance GHC.Base.Monoid Text.Pandoc.Pretty.Doc
instance GHC.Base.Semigroup Text.Pandoc.Pretty.Doc
instance Data.String.IsString Text.Pandoc.Pretty.Doc


-- | 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 strictly, waits until the process terminates, and
--   then returns the <a>ExitCode</a> of the process and the standard
--   output. stderr is inherited from the parent.
--   
--   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)


-- | Types for LaTeX tokens and macros.
module Text.Pandoc.Readers.LaTeX.Types
data Tok
Tok :: SourcePos -> TokType -> Text -> Tok
data TokType
CtrlSeq :: Text -> TokType
Spaces :: TokType
Newline :: TokType
Symbol :: TokType
Word :: TokType
Comment :: TokType
Esc1 :: TokType
Esc2 :: TokType
Arg :: Int -> TokType
data Macro
Macro :: ExpansionPoint -> Int -> (Maybe [Tok]) -> [Tok] -> Macro
data ExpansionPoint
ExpandWhenDefined :: ExpansionPoint
ExpandWhenUsed :: ExpansionPoint

-- | The abstract data type <tt>SourcePos</tt> represents source positions.
--   It contains the name of the source (i.e. file name), a line number and
--   a column number. <tt>SourcePos</tt> is an instance of the <a>Show</a>,
--   <a>Eq</a> and <a>Ord</a> class.
data SourcePos
instance GHC.Show.Show Text.Pandoc.Readers.LaTeX.Types.Macro
instance GHC.Show.Show Text.Pandoc.Readers.LaTeX.Types.ExpansionPoint
instance GHC.Classes.Ord Text.Pandoc.Readers.LaTeX.Types.ExpansionPoint
instance GHC.Classes.Eq Text.Pandoc.Readers.LaTeX.Types.ExpansionPoint
instance GHC.Show.Show Text.Pandoc.Readers.LaTeX.Types.Tok
instance GHC.Classes.Ord Text.Pandoc.Readers.LaTeX.Types.Tok
instance GHC.Classes.Eq Text.Pandoc.Readers.LaTeX.Types.Tok
instance GHC.Show.Show Text.Pandoc.Readers.LaTeX.Types.TokType
instance GHC.Classes.Ord Text.Pandoc.Readers.LaTeX.Types.TokType
instance GHC.Classes.Eq Text.Pandoc.Readers.LaTeX.Types.TokType


-- | 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. Tabs will be preserved if tab stop is set to
--   0.
tabFilter :: Int -> Text -> Text

-- | Strip out DOS line endings.
crFilter :: Text -> Text

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

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

-- | Extract inlines, removing formatting.
removeFormatting :: Walkable Inline a => a -> [Inline]
deNote :: Inline -> 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. 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.
compactifyDL :: [(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

-- | Remove empty paragraphs.
stripEmptyParagraphs :: 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

-- | Remove soft breaks between East Asian characters.
eastAsianLineBreakFilter :: Pandoc -> Pandoc

-- | Builder for underline. This probably belongs in Builder.hs in
--   pandoc-types. Will be replaced once Underline is an element.
underlineSpan :: Inlines -> Inlines

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

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

-- | 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
uriPathToPath :: String -> FilePath
filteredFilesFromArchive :: Archive -> (FilePath -> Bool) -> [(FilePath, ByteString)]

-- | Schemes from <a>http://www.iana.org/assignments/uri-schemes.html</a>
--   plus the unofficial schemes doi, javascript, isbn, pmid.
schemes :: Set String

-- | Check if the string is a valid URL with a IANA or frequently used but
--   unofficial scheme (see <tt>schemes</tt>).
isURI :: String -> Bool
mapLeft :: (a -> b) -> Either a c -> Either b c
blocksToInlines :: [Block] -> [Inline]
blocksToInlines' :: [Block] -> Inlines
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


-- | Exports functions for syntax highlighting.
module Text.Pandoc.Highlighting
highlightingStyles :: [(String, Style)]
languages :: [String]
languagesByExtension :: String -> [String]
highlight :: SyntaxMap -> (FormatOptions -> [SourceLine] -> a) -> Attr -> String -> Either String a
formatLaTeXInline :: FormatOptions -> [SourceLine] -> Text
formatLaTeXBlock :: FormatOptions -> [SourceLine] -> Text
styleToLaTeX :: Style -> Text
formatHtmlInline :: FormatOptions -> [SourceLine] -> Html
formatHtmlBlock :: FormatOptions -> [SourceLine] -> Html
styleToCss :: Style -> String
pygments :: Style
espresso :: Style
zenburn :: Style
tango :: Style
kate :: Style
monochrome :: Style
haddock :: Style
data Style

-- | Determine skylighting language name from listings language name.
fromListingsLanguage :: String -> Maybe String

-- | Determine listings language name from skylighting language name.
toListingsLanguage :: String -> Maybe String


-- | Data structures and functions for representing markup extensions.
module Text.Pandoc.Extensions

-- | Individually selectable syntax extensions.
data Extension

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

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

-- | Enable Text::Amuse extensions to Emacs Muse markup
Ext_amuse :: Extension

-- | Make <a>and</a> escapable
Ext_angle_brackets_escapable :: Extension

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

-- | Automatic identifiers for headers
Ext_auto_identifiers :: Extension

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

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

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

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

-- | Bracketed spans with attributes
Ext_bracketed_spans :: Extension

-- | Pandoc/citeproc citations
Ext_citations :: Extension

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

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

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

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

-- | Allow empty paragraphs
Ext_empty_paragraphs :: Extension

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

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

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

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

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

-- | Parse fenced code blocks
Ext_fenced_code_blocks :: Extension

-- | Allow fenced div syntax :::
Ext_fenced_divs :: Extension

-- | Pandoc<i>PHP</i>MMD style footnotes
Ext_footnotes :: Extension

-- | Require 4-space indent for list contents
Ext_four_space_rule :: Extension

-- | Automatic identifiers for headers, using GitHub's method for
--   generating identifiers
Ext_gfm_auto_identifiers :: Extension

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

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

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

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

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

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

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

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

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

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

-- | RST style line blocks
Ext_line_blocks :: Extension

-- | link and image attributes
Ext_link_attributes :: Extension

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

-- | Enable literate Haskell conventions
Ext_literate_haskell :: Extension

-- | Interpret text inside HTML as markdown iff container has attribute
--   <tt>markdown</tt>
Ext_markdown_attribute :: Extension

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

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

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

-- | Multimarkdown metadata block
Ext_mmd_title_block :: Extension

-- | Pandoc-style multiline tables
Ext_multiline_tables :: 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

-- | ConTeXt Natural Tables
Ext_ntb :: Extension

-- | <ul>
--   <li>- = em, - before number = en</li>
--   </ul>
Ext_old_dashes :: Extension

-- | Pandoc title block
Ext_pandoc_title_block :: Extension

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

-- | Allow explicit raw blocks/inlines
Ext_raw_attribute :: Extension

-- | Allow raw HTML
Ext_raw_html :: Extension

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

-- | Shortcut reference links
Ext_shortcut_reference_links :: Extension

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

-- | <a>Smart</a> quotes, apostrophes, ellipses, dashes
Ext_smart :: Extension

-- | Require space between # and header text
Ext_space_in_atx_header :: Extension

-- | Allow space between two parts of ref link
Ext_spaced_reference_links :: Extension

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

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

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

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

-- | Read styles that pandoc doesn't know
Ext_styles :: Extension

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

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

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

-- | TeX math btw &lt;math&gt; &lt;math&gt;
Ext_tex_math_single_backslash :: Extension

-- | YAML metadata block
Ext_yaml_metadata_block :: Extension
data Extensions
emptyExtensions :: Extensions
extensionsFromList :: [Extension] -> Extensions

-- | Parse a format-specifying string into a markup format and a function
--   that takes Extensions and enables and disables extensions as defined
--   in the format spec.
parseFormatSpec :: String -> Either ParseError (String, Extensions -> Extensions)
extensionEnabled :: Extension -> Extensions -> Bool
enableExtension :: Extension -> Extensions -> Extensions
disableExtension :: Extension -> Extensions -> Extensions

-- | Default extensions from format-describing string.
getDefaultExtensions :: String -> Extensions

-- | Extensions to be used with pandoc-flavored markdown.
pandocExtensions :: Extensions

-- | Extensions to be used with plain text output.
plainExtensions :: Extensions

-- | Language extensions to be used with strict markdown.
strictExtensions :: Extensions

-- | Extensions to be used with github-flavored markdown.
phpMarkdownExtraExtensions :: Extensions

-- | Extensions to be used with github-flavored markdown.
githubMarkdownExtensions :: Extensions

-- | Extensions to be used with multimarkdown.
multimarkdownExtensions :: Extensions
instance Data.Aeson.Types.ToJSON.ToJSON Text.Pandoc.Extensions.Extension
instance Data.Aeson.Types.FromJSON.FromJSON Text.Pandoc.Extensions.Extension
instance GHC.Generics.Generic Text.Pandoc.Extensions.Extension
instance Data.Data.Data Text.Pandoc.Extensions.Extension
instance GHC.Enum.Bounded Text.Pandoc.Extensions.Extension
instance GHC.Classes.Ord Text.Pandoc.Extensions.Extension
instance GHC.Classes.Eq Text.Pandoc.Extensions.Extension
instance GHC.Enum.Enum Text.Pandoc.Extensions.Extension
instance GHC.Read.Read Text.Pandoc.Extensions.Extension
instance GHC.Show.Show Text.Pandoc.Extensions.Extension
instance Data.Aeson.Types.FromJSON.FromJSON Text.Pandoc.Extensions.Extensions
instance Data.Aeson.Types.ToJSON.ToJSON Text.Pandoc.Extensions.Extensions
instance GHC.Generics.Generic Text.Pandoc.Extensions.Extensions
instance Data.Data.Data Text.Pandoc.Extensions.Extensions
instance GHC.Classes.Ord Text.Pandoc.Extensions.Extensions
instance GHC.Classes.Eq Text.Pandoc.Extensions.Extensions
instance GHC.Read.Read Text.Pandoc.Extensions.Extensions
instance GHC.Show.Show Text.Pandoc.Extensions.Extensions
instance GHC.Base.Semigroup Text.Pandoc.Extensions.Extensions
instance GHC.Base.Monoid Text.Pandoc.Extensions.Extensions


-- | Data structures and functions for representing parser and writer
--   options.
module Text.Pandoc.Options
data ReaderOptions
ReaderOptions :: Extensions -> Bool -> Int -> Int -> [String] -> Set String -> String -> TrackChanges -> Bool -> ReaderOptions

-- | Syntax extensions
[readerExtensions] :: ReaderOptions -> Extensions

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

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

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

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

-- | Strings to treat as abbreviations
[readerAbbreviations] :: ReaderOptions -> Set String

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

-- | Track changes setting for docx
[readerTrackChanges] :: ReaderOptions -> TrackChanges

-- | Strip HTML comments instead of parsing as raw HTML
[readerStripComments] :: ReaderOptions -> Bool
data HTMLMathMethod
PlainMath :: HTMLMathMethod
WebTeX :: String -> HTMLMathMethod
GladTeX :: HTMLMathMethod
MathML :: HTMLMathMethod
MathJax :: String -> HTMLMathMethod
KaTeX :: 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 -> Bool -> HTMLMathMethod -> Bool -> [Int] -> Bool -> Extensions -> Bool -> Int -> WrapOption -> Int -> ObfuscationMethod -> String -> CiteMethod -> Bool -> Maybe Int -> TopLevelDivision -> Bool -> Maybe Style -> Bool -> String -> Maybe String -> [FilePath] -> Int -> Int -> Maybe FilePath -> ReferenceLocation -> SyntaxMap -> 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

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

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

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

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

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

-- | Use <tt><a>q</a></tt> tags for quotes in HTML
[writerHtmlQTags] :: 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

-- | Style to use for highlighting (Nothing = no highlighting)
[writerHighlightStyle] :: WriterOptions -> Maybe Style

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

-- | Subdir for epub in OCF
[writerEpubSubdirectory] :: WriterOptions -> String

-- | Metadata to include in EPUB
[writerEpubMetadata] :: 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 document if specified
[writerReferenceDoc] :: WriterOptions -> Maybe FilePath

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

-- | 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 :: HasSyntaxExtensions a => Extension -> a -> Bool
instance Data.Aeson.Types.ToJSON.ToJSON Text.Pandoc.Options.ReferenceLocation
instance Data.Aeson.Types.FromJSON.FromJSON Text.Pandoc.Options.ReferenceLocation
instance Data.Aeson.Types.ToJSON.ToJSON Text.Pandoc.Options.TopLevelDivision
instance Data.Aeson.Types.FromJSON.FromJSON Text.Pandoc.Options.TopLevelDivision
instance Data.Aeson.Types.ToJSON.ToJSON Text.Pandoc.Options.WrapOption
instance Data.Aeson.Types.FromJSON.FromJSON Text.Pandoc.Options.WrapOption
instance Data.Aeson.Types.ToJSON.ToJSON Text.Pandoc.Options.TrackChanges
instance Data.Aeson.Types.FromJSON.FromJSON Text.Pandoc.Options.TrackChanges
instance Data.Aeson.Types.ToJSON.ToJSON Text.Pandoc.Options.HTMLSlideVariant
instance Data.Aeson.Types.FromJSON.FromJSON Text.Pandoc.Options.HTMLSlideVariant
instance Data.Aeson.Types.ToJSON.ToJSON Text.Pandoc.Options.ObfuscationMethod
instance Data.Aeson.Types.FromJSON.FromJSON Text.Pandoc.Options.ObfuscationMethod
instance Data.Aeson.Types.ToJSON.ToJSON Text.Pandoc.Options.CiteMethod
instance Data.Aeson.Types.FromJSON.FromJSON Text.Pandoc.Options.CiteMethod
instance Data.Aeson.Types.ToJSON.ToJSON Text.Pandoc.Options.HTMLMathMethod
instance Data.Aeson.Types.FromJSON.FromJSON Text.Pandoc.Options.HTMLMathMethod
instance Data.Aeson.Types.ToJSON.ToJSON Text.Pandoc.Options.ReaderOptions
instance Data.Aeson.Types.FromJSON.FromJSON Text.Pandoc.Options.ReaderOptions
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 Data.Default.Class.Default Text.Pandoc.Options.WriterOptions
instance Text.Pandoc.Options.HasSyntaxExtensions Text.Pandoc.Options.WriterOptions
instance Text.Pandoc.Options.HasSyntaxExtensions Text.Pandoc.Options.ReaderOptions
instance Data.Default.Class.Default Text.Pandoc.Options.ReaderOptions


-- | Functions for parsing and rendering BCP47 language identifiers.
module Text.Pandoc.BCP47

-- | Get the contents of the <tt>lang</tt> metadata field or variable.
getLang :: WriterOptions -> Meta -> Maybe String

-- | Parse a BCP 47 string as a Lang. Currently we parse extensions and
--   private-use fields as "variants," even though officially they aren't.
parseBCP47 :: String -> Either String Lang

-- | Represents BCP 47 language/country code.
data Lang
Lang :: String -> String -> String -> [String] -> Lang
[langLanguage] :: Lang -> String
[langScript] :: Lang -> String
[langRegion] :: Lang -> String
[langVariants] :: Lang -> [String]

-- | Render a Lang as BCP 47.
renderLang :: Lang -> String
instance GHC.Show.Show Text.Pandoc.BCP47.Lang
instance GHC.Classes.Ord Text.Pandoc.BCP47.Lang
instance GHC.Classes.Eq Text.Pandoc.BCP47.Lang


-- | 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
getContents :: IO String
writeFileWith :: Newline -> FilePath -> String -> IO ()
writeFile :: FilePath -> String -> IO ()
putStrWith :: Newline -> String -> IO ()
putStr :: String -> IO ()
putStrLnWith :: Newline -> String -> IO ()
putStrLn :: String -> IO ()
hPutStrWith :: Newline -> Handle -> String -> IO ()
hPutStr :: Handle -> String -> IO ()
hPutStrLnWith :: Newline -> Handle -> String -> IO ()
hPutStrLn :: Handle -> String -> IO ()
hGetContents :: Handle -> IO String

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

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

-- | Convert UTF8-encoded ByteString to String, also removing '\r'
--   characters.
toStringLazy :: ByteString -> String
fromTextLazy :: Text -> ByteString

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


-- | Functions for determining the size of a PNG, JPEG, or GIF image.
module Text.Pandoc.ImageSize
data ImageType
Png :: ImageType
Gif :: ImageType
Jpeg :: ImageType
Svg :: ImageType
Pdf :: ImageType
Eps :: ImageType
Emf :: ImageType
imageType :: ByteString -> Maybe ImageType
imageSize :: WriterOptions -> ByteString -> Either String ImageSize
sizeInPixels :: ImageSize -> (Integer, Integer)

-- | Calculate (height, width) in points using the image file's dpi
--   metadata, using 72 Points == 1 Inch.
sizeInPoints :: ImageSize -> (Double, Double)

-- | Calculate (height, width) in points, considering the desired
--   dimensions in the attribute, while falling back on the image file's
--   dpi metadata if no dimensions are specified in the attribute (or only
--   dimensions in percentages).
desiredSizeInPoints :: WriterOptions -> Attr -> ImageSize -> (Double, Double)
data Dimension
Pixel :: Integer -> Dimension
Centimeter :: Double -> Dimension
Millimeter :: Double -> Dimension
Inch :: Double -> Dimension
Percent :: Double -> Dimension
Em :: Double -> Dimension
data Direction
Width :: Direction
Height :: Direction

-- | Read a Dimension from an Attr attribute. `dimension Width attr` might
--   return `Just (Pixel 3)` or for example `Just (Centimeter 2.0)`, etc.
dimension :: Direction -> Attr -> Maybe Dimension
lengthToDim :: String -> Maybe Dimension

-- | Scale a dimension by a factor.
scaleDimension :: Double -> Dimension -> Dimension
inInch :: WriterOptions -> Dimension -> Double
inPixel :: WriterOptions -> Dimension -> Integer
inPoints :: WriterOptions -> Dimension -> Double
inEm :: WriterOptions -> Dimension -> Double

-- | Maybe split a string into a leading number and trailing unit, e.g.
--   "3cm" to Just (3.0, "cm")
numUnit :: String -> Maybe (Double, String)

-- | Convert a Dimension to a String denoting its equivalent in inches, for
--   example "2.00000". Note: Dimensions in percentages are converted to
--   the empty string.
showInInch :: WriterOptions -> Dimension -> String

-- | Convert a Dimension to a String denoting its equivalent in pixels, for
--   example "600". Note: Dimensions in percentages are converted to the
--   empty string.
showInPixel :: WriterOptions -> Dimension -> String
showFl :: (RealFloat a) => a -> String
instance GHC.Classes.Ord Text.Pandoc.ImageSize.TagType
instance GHC.Classes.Eq Text.Pandoc.ImageSize.TagType
instance GHC.Show.Show Text.Pandoc.ImageSize.TagType
instance GHC.Show.Show Text.Pandoc.ImageSize.DataFormat
instance GHC.Classes.Eq Text.Pandoc.ImageSize.ImageSize
instance GHC.Show.Show Text.Pandoc.ImageSize.ImageSize
instance GHC.Read.Read Text.Pandoc.ImageSize.ImageSize
instance GHC.Classes.Eq Text.Pandoc.ImageSize.Dimension
instance GHC.Show.Show Text.Pandoc.ImageSize.ImageType
instance Data.Default.Class.Default Text.Pandoc.ImageSize.ImageSize
instance GHC.Show.Show Text.Pandoc.ImageSize.Dimension
instance GHC.Show.Show Text.Pandoc.ImageSize.Direction


-- | This module provides a standard way to deal with possible errors
--   encounted during parsing.
module Text.Pandoc.Error
data PandocError
PandocIOError :: String -> IOError -> PandocError
PandocHttpError :: String -> HttpException -> PandocError
PandocShouldNeverHappenError :: String -> PandocError
PandocSomeError :: String -> PandocError
PandocParseError :: String -> PandocError
PandocParsecError :: Input -> ParseError -> PandocError
PandocMakePDFError :: String -> PandocError
PandocOptionError :: String -> PandocError
PandocSyntaxMapError :: String -> PandocError
PandocFailOnWarningError :: PandocError
PandocPDFProgramNotFoundError :: String -> PandocError
PandocPDFError :: String -> PandocError
PandocFilterError :: String -> String -> PandocError
PandocCouldNotFindDataFileError :: String -> PandocError
PandocResourceNotFound :: String -> PandocError
PandocTemplateError :: String -> PandocError
PandocAppError :: String -> PandocError
PandocEpubSubdirectoryError :: String -> PandocError
PandocMacroLoop :: String -> PandocError

-- | Handle PandocError by exiting with an error message.
handleError :: Either PandocError a -> IO 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


-- | This module defines a type class, <a>PandocMonad</a>, for pandoc
--   readers and writers. A pure instance <a>PandocPure</a> and an impure
--   instance <a>PandocIO</a> are provided. This allows users of the
--   library to choose whether they want conversions to perform IO
--   operations (such as reading include files or images).
module Text.Pandoc.Class

-- | The PandocMonad typeclass contains all the potentially IO-related
--   functions used in pandoc's readers and writers. Instances of this
--   typeclass may implement these functions in IO (as in <a>PandocIO</a>)
--   or using an internal state that represents a file system, time, and so
--   on (as in <a>PandocPure</a>).
class (Functor m, Applicative m, Monad m, MonadError PandocError m) => PandocMonad m

-- | Lookup an environment variable.
lookupEnv :: PandocMonad m => String -> m (Maybe String)

-- | Get the current (UTC) time.
getCurrentTime :: PandocMonad m => m UTCTime

-- | Get the locale's time zone.
getCurrentTimeZone :: PandocMonad m => m TimeZone

-- |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    