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


-- | Pandoc is a Haskell library for converting from one markup format to
--   another. The formats it can handle include
--   
--   <ul>
--   <li>light markup formats (many variants of Markdown, reStructuredText,
--   AsciiDoc, Org-mode, Muse, Textile, txt2tags, djot)</li>
--   <li>HTML formats (HTML 4 and 5)</li>
--   <li>Ebook formats (EPUB v2 and v3, FB2)</li>
--   <li>Documentation formats (GNU TexInfo, Haddock, Vimdoc)</li>
--   <li>Roff formats (man, ms)</li>
--   <li>TeX formats (LaTeX, ConTeXt)</li>
--   <li>Typst</li>
--   <li>XML formats (DocBook 4 and 5, JATS, TEI Simple, OpenDocument)</li>
--   <li>Outline formats (OPML)</li>
--   <li>Bibliography formats (BibTeX, BibLaTeX, CSL JSON, CSL YAML,
--   RIS)</li>
--   <li>Word processor formats (Docx, RTF, ODT)</li>
--   <li>Interactive notebook formats (Jupyter notebook ipynb)</li>
--   <li>Page layout formats (InDesign ICML)</li>
--   <li>Wiki markup formats (MediaWiki, DokuWiki, TikiWiki, TWiki,
--   Vimwiki, XWiki, ZimWiki, Jira wiki, Creole)</li>
--   <li>Slide show formats (LaTeX Beamer, PowerPoint, Slidy, reveal.js,
--   Slideous, S5, DZSlides)</li>
--   <li>Data formats (CSV and TSV tables)</li>
--   <li>PDF (via external programs such as pdflatex or wkhtmltopdf)</li>
--   </ul>
--   
--   Pandoc can convert mathematical content in documents between TeX,
--   MathML, Word equations, roff eqn, typst, and plain text. It includes a
--   powerful system for automatic citations and bibliographies, and it can
--   be customized extensively using templates, filters, and custom readers
--   and writers written in Lua.
--   
--   For the pandoc command-line program, see the <tt>pandoc-cli</tt>
--   package.
@package pandoc
@version 3.8.3


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


-- | Emoji symbol lookup from canonical string identifier.
module Text.Pandoc.Emoji
emojis :: Map Text Text
emojiToInline :: Text -> Maybe Inline


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

-- | Special block quotes become alerts
Ext_alerts :: 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; presupposes Ext_auto_identifiers
Ext_ascii_identifiers :: Extension

-- | Generic attribute syntax
Ext_attributes :: 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 as in pandoc, mmd, php
Ext_definition_lists :: Extension

-- | Newlines in paragraphs are ignored between East Asian wide characters.
--   Note: this extension does not affect readers/writers directly; it
--   causes the eastAsianLineBreakFilter to be applied after parsing, in
--   Text.Pandoc.App.convertWithOpts.
Ext_east_asian_line_breaks :: Extension

-- | Use element-citation elements for JATS citations
Ext_element_citations :: 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/PHP/MMD style footnotes
Ext_footnotes :: Extension

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

-- | Use GitHub's method for generating header identifiers; presupposes
--   Ext_auto_identifiers
Ext_gfm_auto_identifiers :: Extension

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

-- | Use Project Gutenberg conventions for plain
Ext_gutenberg :: Extension

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

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

-- | Explicit table attributes after caption
Ext_table_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

-- | Enable ==mark== syntax to highlight text
Ext_mark :: 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

-- | Use output format's native numbering for figures and tables
Ext_native_numbering :: 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

-- | Parse markdown in ipynb as raw markdown
Ext_raw_markdown :: Extension

-- | Rebase relative image and link paths, relative to directory of
--   containing file
Ext_rebase_relative_paths :: Extension

-- | sub-&amp;superscripts w/o closing char (v~i)
Ext_short_subsuperscripts :: 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

-- | <a>Smart</a> quotes
Ext_smart_quotes :: Extension

-- | Treat certain strings like special characters
Ext_special_strings :: Extension

-- | Include source position attributes
Ext_sourcepos :: 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

-- | Output optimized for PDF tagging
Ext_tagging :: Extension

-- | Parse certain list items as task list items
Ext_task_lists :: Extension

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

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

-- | Additional TeX math style used in GFM
Ext_tex_math_gfm :: 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

-- | Support wikilinks of style [[target|title]]
Ext_wikilinks_title_after_pipe :: Extension

-- | Support wikilinks of style [[title|target]]
Ext_wikilinks_title_before_pipe :: Extension

-- | Use xrefs with names
Ext_xrefs_name :: Extension

-- | Use xrefs with numbers
Ext_xrefs_number :: Extension

-- | YAML metadata block
Ext_yaml_metadata_block :: Extension

-- | Custom extension
CustomExtension :: Text -> Extension

-- | Reads a single extension from a string.
readExtension :: String -> Extension

-- | Show an extension in human-readable form.
showExtension :: Extension -> Text
data Extensions
emptyExtensions :: Extensions
extensionsFromList :: [Extension] -> Extensions
extensionsToList :: Extensions -> [Extension]
extensionEnabled :: Extension -> Extensions -> Bool
enableExtension :: Extension -> Extensions -> Extensions
disableExtension :: Extension -> Extensions -> Extensions

-- | Removes the extensions in the second set from those in the first.
disableExtensions :: Extensions -> Extensions -> Extensions

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

-- | Get all valid extensions for a format. This is used mainly in checking
--   format specifications for validity.
getAllExtensions :: Text -> 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 PHP Markdown Extra.
phpMarkdownExtraExtensions :: Extensions

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

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


-- | Mime type lookup.
module Text.Pandoc.MIME
type MimeType = Text

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

-- | Get the charset from a mime type, if one is present.
getCharset :: MimeType -> Maybe Text
extensionFromMimeType :: MimeType -> Maybe Text

-- | Determine general media category for file path, e.g.
--   
--   <pre>
--   mediaCategory "foo.jpg" = Just "image"
--   </pre>
mediaCategory :: FilePath -> Maybe Text


-- | Definition of a MediaBag object to hold binary resources, and an
--   interface for interacting with it.
module Text.Pandoc.MediaBag
data MediaItem
MediaItem :: MimeType -> FilePath -> ByteString -> MediaItem
[mediaMimeType] :: MediaItem -> MimeType
[mediaPath] :: MediaItem -> FilePath
[mediaContents] :: MediaItem -> ByteString

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

-- | Delete a media item from a <a>MediaBag</a>, or do nothing if no item
--   corresponds to the given path.
deleteMedia :: FilePath -> MediaBag -> MediaBag

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

-- | 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 -> [(FilePath, MimeType, Int)]
mediaItems :: MediaBag -> [(FilePath, MimeType, ByteString)]
instance GHC.Internal.Data.Data.Data Text.Pandoc.MediaBag.MediaBag
instance GHC.Internal.Data.Data.Data Text.Pandoc.MediaBag.MediaItem
instance GHC.Classes.Eq Text.Pandoc.MediaBag.MediaItem
instance GHC.Internal.Base.Monoid Text.Pandoc.MediaBag.MediaBag
instance GHC.Classes.Ord Text.Pandoc.MediaBag.MediaItem
instance GHC.Internal.Base.Semigroup Text.Pandoc.MediaBag.MediaBag
instance GHC.Internal.Show.Show Text.Pandoc.MediaBag.MediaBag
instance GHC.Internal.Show.Show Text.Pandoc.MediaBag.MediaItem


-- | 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.
--   
--   This function was adapted from <tt>readProcessWithExitCode</tt> of
--   module System.Process, package process-1.6.3.0. The original code is
--   BSD licensed and © University of Glasgow 2004-2008.
pipeProcess :: Maybe [(String, String)] -> FilePath -> [String] -> ByteString -> IO (ExitCode, ByteString)


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

-- | Split text by groups of one or more separator.
splitTextBy :: (Char -> Bool) -> Text -> [Text]

-- | Split text at the given widths. Note that the break points are
--   <i>not</i> indices but text widths, which will be different for East
--   Asian characters, emojis, etc.
splitTextByIndices :: [Int] -> Text -> [Text]

-- | Wrap double quotes around a Text
inquotes :: Text -> Text

-- | Like <tt><a>show</a></tt>, but returns a <a>Text</a> instead of a
--   <a>String</a>.
tshow :: Show a => a -> Text

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

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

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

-- | Remove trailing space (including newlines) from string.
trimr :: Text -> Text

-- | Trim leading space and trailing space unless after .
trimMath :: Text -> Text

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

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

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

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

-- | Add key-value attributes to a pandoc element. If the element does not
--   have a slot for attributes, create an enclosing Span (for Inlines) or
--   Div (for Blocks). Note that both 'Cm () Inlines' and 'Cm () Blocks'
--   are instances of <a>HasAttributes</a>.
addPandocAttributes :: HasAttributes (Cm () b) => [(Text, Text)] -> b -> b

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

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

-- | Replaces <a>Note</a> elements with empty strings.
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 -> Text

-- | 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. Otherwise (if the list
--   items contain <tt>Para</tt> blocks besides possibly at the end), turn
--   any <tt>Plain</tt>s into <tt>Para</tt>s (#5285).
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

-- | Creates a Div block from figure components. The intended use is in
--   writers of formats that do not have markup support for figures.
--   
--   The resulting div is given the class <tt>figure</tt> and contains the
--   figure body and the figure caption. The latter is wrapped in a
--   <a>Div</a> of class <tt>caption</tt>, with the stringified
--   <tt>short-caption</tt> as attribute.
figureDiv :: Attr -> Caption -> [Block] -> Block

-- | Put a list of Pandoc blocks into a hierarchical structure: a list of
--   sections (each a Div with class "section" and first element a Header).
--   If the <tt>numbering</tt> parameter is True, Header numbers are added
--   via the number attribute on the header. If the baseLevel parameter is
--   Just n, Header levels are adjusted so that the lowest header level is
--   n. (There may still be gaps in header level if the author leaves
--   them.)
makeSections :: Bool -> Maybe Int -> [Block] -> [Block]

-- | Like <a>makeSections</a>, but with a parameter for number offsets (a
--   list of <a>Int</a>s, the first of which is added to the level 1
--   section number, the second to the level 2, and so on).
makeSectionsWithOffsets :: [Int] -> Bool -> Maybe Int -> [Block] -> [Block]

-- | Combine two <a>Attr</a>. Classes are concatenated. For the id and
--   key-value attributes, the first one takes precedence in case of
--   duplicates.
combineAttr :: Attr -> Attr -> Attr

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

-- | Convert Pandoc inline list to plain text identifier.
inlineListToIdentifier :: Extensions -> [Inline] -> Text

-- | Convert string to plain text identifier.
textToIdentifier :: Extensions -> Text -> Text

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

-- | Detect if table rows contain only cells consisting of a single
--   paragraph that has no <tt>LineBreak</tt>.
onlySimpleTableCells :: [[[Block]]] -> Bool

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

-- | Convert a list item containing tasklist syntax (e.g. <tt>[x]</tt>) to
--   using <tt>U+2610 BALLOT BOX</tt> or <tt>U+2612 BALLOT BOX WITH X</tt>.
taskListItemFromAscii :: Extensions -> [Block] -> [Block]

-- | Convert a list item containing text starting with <tt>U+2610 BALLOT
--   BOX</tt> or <tt>U+2612 BALLOT BOX WITH X</tt> to tasklist syntax (e.g.
--   <tt>[x]</tt>).
taskListItemToAscii :: Extensions -> [Block] -> [Block]
handleTaskListItem :: ([Inline] -> [Inline]) -> Extensions -> [Block] -> [Block]

-- | 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 => Text -> a -> Meta -> Meta

-- | Set of HTML elements that are represented as Span with a class equal
--   as the element tag itself.
htmlSpanLikeElements :: Set Text

-- | Reformat <a>Inlines</a> as code, putting the stringlike parts in
--   <a>Code</a> elements while bringing other inline formatting outside.
--   The idea is that e.g. `[Str "a",Space,Strong [Str "b"]]` should turn
--   into `[Code ("",[],[]) "a ", Strong [Code ("",[],[]) "b"]]`. This
--   helps work around the limitation that pandoc's Code element can only
--   contain string content (see issue #7525).
formatCode :: Attr -> Inlines -> Inlines

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

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

-- | Canonicalizes a file path by removing redundant <tt>.</tt> and
--   <tt>..</tt>.
makeCanonical :: FilePath -> FilePath

-- | 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
filteredFilesFromArchive :: Archive -> (FilePath -> Bool) -> [(FilePath, ByteString)]
blocksToInlines :: [Block] -> [Inline]
blocksToInlines' :: [Block] -> Inlines
blocksToInlinesWithSep :: Inlines -> [Block] -> Inlines

-- | Inline elements used to separate blocks when squashing blocks into
--   inlines.
defaultBlocksSeparator :: Inlines
safeRead :: (MonadPlus m, Read a) => Text -> m a
safeStrRead :: (MonadPlus m, Read a) => String -> m a


-- | 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 :: Text -> SourcePos -> LogMessage
IgnoredElement :: Text -> LogMessage
DuplicateLinkReference :: Text -> SourcePos -> LogMessage
DuplicateNoteReference :: Text -> SourcePos -> LogMessage
NoteDefinedButNotUsed :: Text -> SourcePos -> LogMessage
DuplicateIdentifier :: Text -> SourcePos -> LogMessage
ReferenceNotFound :: Text -> SourcePos -> LogMessage
CircularReference :: Text -> SourcePos -> LogMessage
UndefinedToggle :: Text -> SourcePos -> LogMessage
ParsingUnescaped :: Text -> SourcePos -> LogMessage
CouldNotLoadIncludeFile :: Text -> SourcePos -> LogMessage
CouldNotParseIncludeFile :: Text -> SourcePos -> LogMessage
MacroAlreadyDefined :: Text -> SourcePos -> LogMessage
InlineNotRendered :: Inline -> LogMessage
BlockNotRendered :: Block -> LogMessage
DocxParserWarning :: Text -> LogMessage
PowerpointTemplateWarning :: Text -> LogMessage
IgnoredIOError :: Text -> LogMessage
CouldNotFetchResource :: Text -> Text -> LogMessage
CouldNotDetermineImageSize :: Text -> Text -> LogMessage
CouldNotConvertImage :: Text -> Text -> LogMessage
CouldNotDetermineMimeType :: Text -> LogMessage
CouldNotConvertTeXMath :: Text -> Text -> LogMessage
CouldNotParseCSS :: Text -> LogMessage
Fetching :: Text -> LogMessage
Extracting :: Text -> LogMessage
LoadedResource :: FilePath -> FilePath -> LogMessage
ScriptingInfo :: Text -> Maybe SourcePos -> LogMessage
ScriptingWarning :: Text -> Maybe SourcePos -> LogMessage
NoTitleElement :: Text -> LogMessage
NoLangSpecified :: LogMessage
InvalidLang :: Text -> LogMessage
CouldNotHighlight :: Text -> LogMessage
MissingCharacter :: Text -> LogMessage
Deprecated :: Text -> Text -> LogMessage
NoTranslation :: Text -> LogMessage
CouldNotLoadTranslations :: Text -> Text -> LogMessage
UnusualConversion :: Text -> LogMessage
UnexpectedXmlElement :: Text -> Text -> LogMessage
UnknownOrgExportOption :: Text -> LogMessage
CouldNotDeduceFormat :: [Text] -> Text -> LogMessage
RunningFilter :: FilePath -> LogMessage
FilterCompleted :: FilePath -> Integer -> LogMessage
CiteprocWarning :: Text -> LogMessage
ATXHeadingInLHS :: Int -> Text -> LogMessage
EnvironmentVariableUndefined :: Text -> LogMessage
DuplicateAttribute :: Text -> Text -> LogMessage
NotUTF8Encoded :: FilePath -> LogMessage
MakePDFInfo :: Text -> Text -> LogMessage
MakePDFWarning :: Text -> LogMessage
UnclosedDiv :: SourcePos -> SourcePos -> LogMessage
UnsupportedCodePage :: Int -> LogMessage
YamlWarning :: SourcePos -> Text -> LogMessage
encodeLogMessages :: [LogMessage] -> ByteString
showLogMessage :: LogMessage -> Text
messageVerbosity :: LogMessage -> Verbosity
instance GHC.Internal.Enum.Bounded Text.Pandoc.Logging.Verbosity
instance GHC.Internal.Data.Data.Data Text.Pandoc.Logging.LogMessage
instance GHC.Internal.Data.Data.Data Text.Pandoc.Logging.Verbosity
instance GHC.Internal.Enum.Enum Text.Pandoc.Logging.Verbosity
instance GHC.Classes.Eq Text.Pandoc.Logging.LogMessage
instance GHC.Classes.Eq Text.Pandoc.Logging.Verbosity
instance Data.Aeson.Types.FromJSON.FromJSON Text.Pandoc.Logging.Verbosity
instance GHC.Internal.Generics.Generic Text.Pandoc.Logging.LogMessage
instance GHC.Internal.Generics.Generic Text.Pandoc.Logging.Verbosity
instance GHC.Classes.Ord Text.Pandoc.Logging.LogMessage
instance GHC.Classes.Ord Text.Pandoc.Logging.Verbosity
instance GHC.Internal.Read.Read Text.Pandoc.Logging.Verbosity
instance GHC.Internal.Show.Show Text.Pandoc.Logging.LogMessage
instance GHC.Internal.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


-- | Functions and types for splitting a Pandoc into subdocuments, e.g. for
--   conversion into a set of HTML pages.
module Text.Pandoc.Chunks

-- | A part of a document (typically a chapter or section, or the part of a
--   section before its subsections).
data Chunk
Chunk :: [Inline] -> Text -> Int -> Int -> Maybe Text -> FilePath -> Maybe Chunk -> Maybe Chunk -> Maybe Chunk -> Bool -> [Block] -> Chunk
[chunkHeading] :: Chunk -> [Inline]
[chunkId] :: Chunk -> Text
[chunkLevel] :: Chunk -> Int
[chunkNumber] :: Chunk -> Int
[chunkSectionNumber] :: Chunk -> Maybe Text
[chunkPath] :: Chunk -> FilePath
[chunkUp] :: Chunk -> Maybe Chunk
[chunkPrev] :: Chunk -> Maybe Chunk
[chunkNext] :: Chunk -> Maybe Chunk
[chunkUnlisted] :: Chunk -> Bool
[chunkContents] :: Chunk -> [Block]

-- | A <a>Pandoc</a> broken into <a>Chunk</a>s for writing to separate
--   files.
data ChunkedDoc
ChunkedDoc :: Meta -> Tree SecInfo -> [Chunk] -> ChunkedDoc
[chunkedMeta] :: ChunkedDoc -> Meta
[chunkedTOC] :: ChunkedDoc -> Tree SecInfo
[chunkedChunks] :: ChunkedDoc -> [Chunk]

-- | A <a>PathTemplate</a> is a FilePath in which certain codes will be
--   substituted with information from a <a>Chunk</a>. <tt>%n</tt> will be
--   replaced with the chunk number (padded with leading 0s to 3 digits),
--   <tt>%s</tt> with the section number of the heading, <tt>%h</tt> with
--   the (stringified) heading text, <tt>%i</tt> with the section
--   identifier. For example, <tt>"section-%s-%i.html"</tt> might be
--   resolved to <tt>"section-1.2-introduction.html"</tt>.
newtype PathTemplate
PathTemplate :: Text -> PathTemplate
[unPathTemplate] :: PathTemplate -> Text

-- | Split <a>Pandoc</a> into <a>Chunk</a>s, e.g. for conversion into a set
--   of HTML pages or EPUB chapters.
splitIntoChunks :: PathTemplate -> Bool -> Maybe Int -> Int -> Pandoc -> ChunkedDoc

-- | Create tree of sections with titles, links, and numbers, in a form
--   that can be turned into a table of contents. Presupposes that the
--   '[Block]' is the output of <a>makeSections</a>.
toTOCTree :: [Block] -> Tree SecInfo

-- | Generate a table of contents of the given depth.
tocToList :: Bool -> Int -> Tree SecInfo -> Block

-- | Data for a section in a hierarchical document.
data SecInfo
SecInfo :: [Inline] -> Maybe Text -> Text -> Text -> Int -> SecInfo
[secTitle] :: SecInfo -> [Inline]
[secNumber] :: SecInfo -> Maybe Text
[secId] :: SecInfo -> Text
[secPath] :: SecInfo -> Text
[secLevel] :: SecInfo -> Int
instance GHC.Internal.Data.Data.Data Text.Pandoc.Chunks.PathTemplate
instance GHC.Classes.Eq Text.Pandoc.Chunks.Chunk
instance GHC.Classes.Eq Text.Pandoc.Chunks.ChunkedDoc
instance GHC.Classes.Eq Text.Pandoc.Chunks.SecInfo
instance Data.Aeson.Types.FromJSON.FromJSON Text.Pandoc.Chunks.PathTemplate
instance GHC.Internal.Generics.Generic Text.Pandoc.Chunks.Chunk
instance GHC.Internal.Generics.Generic Text.Pandoc.Chunks.ChunkedDoc
instance GHC.Internal.Generics.Generic Text.Pandoc.Chunks.PathTemplate
instance GHC.Internal.Generics.Generic Text.Pandoc.Chunks.SecInfo
instance GHC.Internal.Data.String.IsString Text.Pandoc.Chunks.PathTemplate
instance GHC.Internal.Show.Show Text.Pandoc.Chunks.Chunk
instance GHC.Internal.Show.Show Text.Pandoc.Chunks.ChunkedDoc
instance GHC.Internal.Show.Show Text.Pandoc.Chunks.PathTemplate
instance GHC.Internal.Show.Show Text.Pandoc.Chunks.SecInfo
instance Data.Aeson.Types.ToJSON.ToJSON Text.Pandoc.Chunks.PathTemplate
instance Text.Pandoc.Walk.Walkable Text.Pandoc.Definition.Block Text.Pandoc.Chunks.Chunk
instance Text.Pandoc.Walk.Walkable Text.Pandoc.Definition.Block Text.Pandoc.Chunks.ChunkedDoc
instance Text.Pandoc.Walk.Walkable Text.Pandoc.Definition.Inline Text.Pandoc.Chunks.Chunk
instance Text.Pandoc.Walk.Walkable Text.Pandoc.Definition.Inline Text.Pandoc.Chunks.ChunkedDoc
instance Text.Pandoc.Walk.Walkable Text.Pandoc.Definition.Inline Text.Pandoc.Chunks.SecInfo


-- | Utility functions for splitting documents into slides for slide show
--   formats (dzslides, revealjs, s5, slidy, slideous, beamer).
module Text.Pandoc.Slides

-- | Find level of header that starts slides (defined as the least header
--   level that occurs before a non-header/non-hrule in the blocks).
getSlideLevel :: [Block] -> Int

-- | Prepare a block list to be passed to makeSections.
prepSlides :: Int -> [Block] -> [Block]


-- | Defines Sources object to be used as input to pandoc parsers and
--   redefines Char parsers so they get source position information from
--   it.
module Text.Pandoc.Sources

-- | A list of inputs labeled with source positions. It is assumed that the
--   <a>Text</a>s have <tt>n</tt> line endings.
newtype Sources
Sources :: [(SourcePos, Text)] -> Sources
[unSources] :: Sources -> [(SourcePos, Text)]
class ToSources a
toSources :: ToSources a => a -> Sources
class UpdateSourcePos s c
updateSourcePos :: UpdateSourcePos s c => SourcePos -> c -> s -> SourcePos
sourcesToText :: Sources -> Text

-- | Get name of first source in <a>Sources</a>.
initialSourceName :: Sources -> FilePath
addToSources :: forall (m :: Type -> Type) u. Monad m => SourcePos -> Text -> ParsecT Sources u m ()
ensureFinalNewlines :: Int -> Sources -> Sources

-- | Add some text to the beginning of the input sources. This simplifies
--   code that expands macros.
addToInput :: forall (m :: Type -> Type) u. Monad m => Text -> ParsecT Sources u m ()
satisfy :: forall (m :: Type -> Type) s u. (Monad m, Stream s m Char, UpdateSourcePos s Char) => (Char -> Bool) -> ParsecT s u m Char
oneOf :: forall (m :: Type -> Type) s u. (Monad m, Stream s m Char, UpdateSourcePos s Char) => [Char] -> ParsecT s u m Char
noneOf :: forall (m :: Type -> Type) s u. (Monad m, Stream s m Char, UpdateSourcePos s Char) => [Char] -> ParsecT s u m Char
anyChar :: forall (m :: Type -> Type) s u. (Monad m, Stream s m Char, UpdateSourcePos s Char) => ParsecT s u m Char
char :: forall (m :: Type -> Type) s u. (Monad m, Stream s m Char, UpdateSourcePos s Char) => Char -> ParsecT s u m Char
string :: forall (m :: Type -> Type) s u. (Monad m, Stream s m Char, UpdateSourcePos s Char) => [Char] -> ParsecT s u m [Char]
newline :: forall (m :: Type -> Type) s u. (Monad m, Stream s m Char, UpdateSourcePos s Char) => ParsecT s u m Char
space :: forall (m :: Type -> Type) s u. (Monad m, Stream s m Char, UpdateSourcePos s Char) => ParsecT s u m Char
spaces :: forall (m :: Type -> Type) s u. (Monad m, Stream s m Char, UpdateSourcePos s Char) => ParsecT s u m ()
letter :: forall (m :: Type -> Type) s u. (Monad m, Stream s m Char, UpdateSourcePos s Char) => ParsecT s u m Char
digit :: forall (m :: Type -> Type) s u. (Monad m, Stream s m Char, UpdateSourcePos s Char) => ParsecT s u m Char
hexDigit :: forall (m :: Type -> Type) s u. (Monad m, Stream s m Char, UpdateSourcePos s Char) => ParsecT s u m Char
alphaNum :: forall (m :: Type -> Type) s u. (Monad m, Stream s m Char, UpdateSourcePos s Char) => ParsecT s u m Char
instance GHC.Internal.Data.String.IsString Text.Pandoc.Sources.Sources
instance GHC.Internal.Base.Monoid Text.Pandoc.Sources.Sources
instance GHC.Internal.Base.Semigroup Text.Pandoc.Sources.Sources
instance GHC.Internal.Show.Show Text.Pandoc.Sources.Sources
instance GHC.Internal.Base.Monad m => Text.Parsec.Prim.Stream Text.Pandoc.Sources.Sources m GHC.Types.Char
instance Text.Pandoc.Sources.ToSources [(GHC.Internal.IO.FilePath, Data.Text.Internal.Text)]
instance Text.Pandoc.Sources.ToSources Text.Pandoc.Sources.Sources
instance Text.Pandoc.Sources.ToSources Data.Text.Internal.Text
instance Text.Pandoc.Sources.UpdateSourcePos Data.ByteString.Lazy.Internal.ByteString GHC.Types.Char
instance Text.Pandoc.Sources.UpdateSourcePos Data.ByteString.Internal.Type.ByteString GHC.Types.Char
instance Text.Pandoc.Sources.UpdateSourcePos [GHC.Types.Char] GHC.Types.Char
instance Text.Pandoc.Sources.UpdateSourcePos Text.Pandoc.Sources.Sources GHC.Types.Char
instance Text.Pandoc.Sources.UpdateSourcePos Data.Text.Internal.Text GHC.Types.Char


-- | Data types for localization.
--   
--   Translations are stored in
--   <tt>data<i>translations</i>langname.trans</tt>, where langname can be
--   the full BCP47 language specifier, or just the language part. File
--   format is:
--   
--   <pre>
--   # A comment, ignored
--   Figure: Figura
--   Index: Indeksi
--   </pre>
module Text.Pandoc.Translations.Types
data Term
Abstract :: Term
Appendix :: Term
Bibliography :: Term
Cc :: Term
Chapter :: Term
Contents :: Term
Encl :: Term
Figure :: Term
Glossary :: Term
Index :: Term
Listing :: Term
ListOfFigures :: Term
ListOfTables :: Term
Page :: Term
Part :: Term
Preface :: Term
Proof :: Term
References :: Term
See :: Term
SeeAlso :: Term
Table :: Term
To :: Term
data Translations

-- | Lookup a term in a <a>Translations</a>.
lookupTerm :: Term -> Translations -> Maybe Text
instance GHC.Internal.Enum.Enum Text.Pandoc.Translations.Types.Term
instance GHC.Classes.Eq Text.Pandoc.Translations.Types.Term
instance Data.Aeson.Types.FromJSON.FromJSON Text.Pandoc.Translations.Types.Term
instance Data.Aeson.Types.FromJSON.FromJSON Text.Pandoc.Translations.Types.Translations
instance GHC.Internal.Generics.Generic Text.Pandoc.Translations.Types.Term
instance GHC.Internal.Generics.Generic Text.Pandoc.Translations.Types.Translations
instance GHC.Internal.Base.Monoid Text.Pandoc.Translations.Types.Translations
instance GHC.Classes.Ord Text.Pandoc.Translations.Types.Term
instance GHC.Internal.Read.Read Text.Pandoc.Translations.Types.Term
instance GHC.Internal.Base.Semigroup Text.Pandoc.Translations.Types.Translations
instance GHC.Internal.Show.Show Text.Pandoc.Translations.Types.Term
instance GHC.Internal.Show.Show Text.Pandoc.Translations.Types.Translations


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

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

-- | <i>Deprecated: decodeArg is now a no-op</i>
decodeArg :: String -> String


-- | This module provides a standard way to deal with possible errors
--   encountered during parsing.
module Text.Pandoc.Error
data PandocError
PandocIOError :: Text -> IOError -> PandocError
PandocHttpError :: Text -> HttpException -> PandocError
PandocShouldNeverHappenError :: Text -> PandocError
PandocSomeError :: Text -> PandocError
PandocParseError :: Text -> PandocError
PandocMakePDFError :: Text -> PandocError
PandocOptionError :: Text -> PandocError
PandocSyntaxMapError :: Text -> PandocError
PandocFailOnWarningError :: PandocError
PandocPDFProgramNotFoundError :: Text -> PandocError
PandocPDFError :: Text -> PandocError
PandocXMLError :: Text -> Text -> PandocError
PandocFilterError :: Text -> Text -> PandocError
PandocLuaError :: Text -> PandocError
PandocNoScriptingEngine :: PandocError
PandocCouldNotFindDataFileError :: Text -> PandocError
PandocCouldNotFindMetadataFileError :: Text -> PandocError
PandocResourceNotFound :: Text -> PandocError
PandocTemplateError :: Text -> PandocError
PandocNoTemplateError :: Text -> PandocError
PandocAppError :: Text -> PandocError
PandocEpubSubdirectoryError :: Text -> PandocError
PandocMacroLoop :: Text -> PandocError
PandocUTF8DecodingError :: Text -> Int -> Word8 -> PandocError
PandocIpynbDecodingError :: Text -> PandocError
PandocUnsupportedCharsetError :: Text -> PandocError
PandocFormatError :: Text -> Text -> PandocError
PandocUnknownReaderError :: Text -> PandocError
PandocUnknownWriterError :: Text -> PandocError
PandocUnsupportedExtensionError :: Text -> Text -> PandocError
PandocCiteprocError :: CiteprocError -> PandocError
PandocBibliographyError :: Text -> Text -> PandocError
PandocInputNotTextError :: Text -> PandocError
renderError :: PandocError -> Text

-- | Handle PandocError by exiting with an error message.
handleError :: Either PandocError a -> IO a
instance GHC.Internal.Exception.Type.Exception Text.Pandoc.Error.PandocError
instance GHC.Internal.Generics.Generic Text.Pandoc.Error.PandocError
instance GHC.Internal.Show.Show Text.Pandoc.Error.PandocError


-- | Default ways to perform <tt><a>PandocMonad</a></tt> actions in a
--   <tt><a>MonadIO</a></tt> type.
--   
--   These functions are used to make the <tt><tt>PandocIO</tt></tt> type
--   an instance of <tt><a>PandocMonad</a></tt>, but can be reused for any
--   other MonadIO-conforming types.
module Text.Pandoc.Class.IO

-- | Returns True if file exists.
fileExists :: (PandocMonad m, MonadIO m) => FilePath -> m Bool

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

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

-- | Returns the path of data file.
getDataFileName :: (PandocMonad m, MonadIO m) => FilePath -> m FilePath

-- | Return the modification time of a file.
getModificationTime :: (PandocMonad m, MonadIO m) => FilePath -> m UTCTime

-- | Return a list of paths that match a glob, relative to the working
--   directory. See <a>Glob</a> for the glob syntax.
glob :: (PandocMonad m, MonadIO m) => String -> m [FilePath]

-- | Output a log message.
logOutput :: (PandocMonad m, MonadIO m) => LogMessage -> m ()

-- | Show potential IO errors to the user continuing execution anyway
logIOError :: (PandocMonad m, MonadIO m) => IO () -> m ()

-- | Lookup an environment variable in the programs environment.
lookupEnv :: MonadIO m => Text -> m (Maybe Text)

-- | Return a new generator for random numbers.
newStdGen :: MonadIO m => m StdGen

-- | Return a new unique integer.
newUniqueHash :: MonadIO m => m Int
openURL :: (PandocMonad m, MonadIO m) => Text -> m (ByteString, Maybe MimeType)

-- | Read the lazy ByteString contents from a file path, raising an error
--   on failure.
readFileLazy :: (PandocMonad m, MonadIO m) => FilePath -> m ByteString

-- | Read the strict ByteString contents from a file path, raising an error
--   on failure.
readFileStrict :: (PandocMonad m, MonadIO m) => FilePath -> m ByteString

-- | Read the strict ByteString contents from stdin, raising an error on
--   failure.
readStdinStrict :: (PandocMonad m, MonadIO m) => m ByteString

-- | Extract media from the mediabag into a directory.
extractMedia :: (PandocMonad m, MonadIO m) => FilePath -> Pandoc -> m Pandoc

-- | Write the contents of a media bag to a path. If the path contains URI
--   escape sequences (percent-encoding), these are resolved.
writeMedia :: (PandocMonad m, MonadIO m) => FilePath -> (FilePath, MimeType, ByteString) -> m ()


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

-- | <a>CommonState</a> represents state that is used by all instances of
--   <tt>PandocMonad</tt>. Normally users should not need to interact with
--   it directly; instead, auxiliary functions like <tt>setVerbosity</tt>
--   and <tt>withMediaBag</tt> should be used.
data CommonState

-- | Extract media from the mediabag into a directory.
extractMedia :: (PandocMonad m, MonadIO m) => FilePath -> Pandoc -> m Pandoc

-- | Evaluate a <a>PandocIO</a> operation.
runIO :: PandocIO a -> IO (Either PandocError a)

-- | Evaluate a <a>PandocIO</a> operation, handling any errors by exiting
--   with an appropriate message and error status.
runIOorExplode :: PandocIO a -> IO a
newtype PandocIO a
PandocIO :: ExceptT PandocError (StateT CommonState IO) a -> PandocIO a
[unPandocIO] :: PandocIO a -> ExceptT PandocError (StateT CommonState IO) a

-- | Returns possible user data directory if the file path refers to a file
--   or subdirectory within it.
checkUserDataDir :: PandocMonad m => FilePath -> m (Maybe FilePath)
extractURIData :: String -> (ByteString, Maybe MimeType)

-- | Fetch an image or other item from the local filesystem or the net.
--   Returns raw content and maybe mime type.
fetchItem :: PandocMonad m => Text -> m (ByteString, Maybe MimeType)

-- | Traverse tree, filling media bag for any images that aren't already in
--   the media bag.
fillMediaBag :: PandocMonad m => Pandoc -> m Pandoc

-- | Returns <tt>fp</tt> if the file exists in the current directory;
--   otherwise searches for the data file relative to
--   <tt><i>subdir</i></tt>. Returns <tt>Nothing</tt> if neither file
--   exists.
findFileWithDataFallback :: PandocMonad m => FilePath -> FilePath -> m (Maybe FilePath)

-- | Retrieve the input filenames.
getInputFiles :: PandocMonad m => m [FilePath]

-- | Get the accumulated log messages (in temporal order).
getLog :: PandocMonad m => m [LogMessage]

-- | Retrieve the media bag.
getMediaBag :: PandocMonad m => m MediaBag

-- | Retrieve the output filename.
getOutputFile :: PandocMonad m => m (Maybe FilePath)

-- | Get the POSIX time. If <tt>SOURCE_DATE_EPOCH</tt> is set to a unix
--   time, it is used instead of the current time.
getPOSIXTime :: PandocMonad m => m POSIXTime

-- | Retrieve the request headers to add for HTTP requests.
getRequestHeaders :: PandocMonad m => m [(Text, Text)]

-- | Retrieve the resource path searched by <a>fetchItem</a>.
getResourcePath :: PandocMonad m => m [FilePath]

-- | Get the absolute UL or directory of first source file.
getSourceURL :: PandocMonad m => m (Maybe Text)

-- | Get the current UTC time. If the <tt>SOURCE_DATE_EPOCH</tt>
--   environment variable is set to a unix time (number of seconds since
--   midnight Jan 01 1970 UTC), it is used instead of the current time, to
--   support reproducible builds.
getTimestamp :: PandocMonad m => m UTCTime

-- | Get tracing status.
getTrace :: PandocMonad m => m Bool

-- | Get the user data directory from common state.
getUserDataDir :: PandocMonad m => m (Maybe FilePath)

-- | Get the verbosity level.
getVerbosity :: PandocMonad m => m Verbosity

-- | Get the zoned time. If <tt>SOURCE_DATE_EPOCH</tt> is set to a unix
--   time, value (POSIX time), it is used instead of the current time.
getZonedTime :: PandocMonad m => m ZonedTime

-- | Insert an item into the media bag.
insertMedia :: PandocMonad m => FilePath -> Maybe MimeType -> ByteString -> m ()

-- | Read file, checking in any number of directories.
readFileFromDirs :: PandocMonad m => [FilePath] -> FilePath -> m (Maybe Text)

-- | Read metadata file from the working directory or, if not found there,
--   from the metadata subdirectory of the user data directory.
readMetadataFile :: PandocMonad m => FilePath -> m ByteString

-- | Log a message using <a>logOutput</a>. Note that <a>logOutput</a> is
--   called only if the verbosity level exceeds the level of the message,
--   but the message is added to the list of log messages that will be
--   retrieved by <a>getLog</a> regardless of its verbosity level.
report :: PandocMonad m => LogMessage -> m ()

-- | Run an action, but suppress the output of any log messages; instead,
--   all messages reported by <tt>action</tt> are returned separately and
--   not added to the main log.
runSilently :: PandocMonad m => m a -> m (a, [LogMessage])

-- | Set the input filenames.
setInputFiles :: PandocMonad m => [FilePath] -> m ()

-- | Initialize the media bag.
setMediaBag :: PandocMonad m => MediaBag -> m ()

-- | Determine whether certificate validation is disabled
setNoCheckCertificate :: PandocMonad m => Bool -> m ()

-- | Set the output filename.
setOutputFile :: PandocMonad m => Maybe FilePath -> m ()

-- | Set request header to use in HTTP requests.
setRequestHeader :: PandocMonad m => Text -> Text -> m ()

-- | Set the request headers to add for HTTP requests.
setRequestHeaders :: PandocMonad m => [(Text, Text)] -> m ()

-- | Set the resource path searched by <a>fetchItem</a>.
setResourcePath :: PandocMonad m => [FilePath] -> m ()

-- | Set tracing. This affects the behavior of <a>trace</a>. If tracing is
--   not enabled, <a>trace</a> does nothing.
setTrace :: PandocMonad m => Bool -> m ()

-- | Set the user data directory in common state.
setUserDataDir :: PandocMonad m => Maybe FilePath -> m ()

-- | Set the verbosity level.
setVerbosity :: PandocMonad m => Verbosity -> m ()

-- | Convert BCP47 string to a Lang, issuing warning if there are problems.
toLang :: PandocMonad m => Maybe Text -> m (Maybe Lang)

-- | A variant of Text.Pandoc.UTF8.toText that takes a FilePath as well as
--   the file's contents as parameter, and traps UTF8 decoding errors so it
--   can issue a more informative PandocUTF8DecodingError with source
--   position.
toTextM :: PandocMonad m => FilePath -> ByteString -> m Text

-- | Canonicalizes a file path by removing redundant <tt>.</tt> and
--   <tt>..</tt>.
makeCanonical :: FilePath -> FilePath

-- | 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
--   <tt>PandocIO</tt>) or using an internal state that represents a file
--   system, time, and so on (as in <tt>PandocPure</tt>).
class (Functor m, Applicative m, Monad m, MonadError PandocError m) => PandocMonad (m :: Type -> Type)

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

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

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

-- | Return a new generator for random numbers.
newStdGen :: PandocMonad m => m StdGen

-- | Return a new unique integer.
newUniqueHash :: PandocMonad m => m Int

-- | Retrieve contents and mime type from a URL, raising an error on
--   failure.
openURL :: PandocMonad m => Text -> m (ByteString, Maybe MimeType)

-- | Read the lazy ByteString contents from a file path, raising an error
--   on failure.
readFileLazy :: PandocMonad m => FilePath -> m ByteString

-- | Read the strict ByteString contents from a file path, raising an error
--   on failure.
readFileStrict :: PandocMonad m => FilePath -> m ByteString

-- | Read the contents of stdin as a strict ByteString, raising an error on
--   failure.
readStdinStrict :: PandocMonad m => m ByteString

-- | Return a list of paths that match a glob, relative to the working
--   directory. See <a>Glob</a> for the glob syntax.
glob :: PandocMonad m => String -> m [FilePath]

-- | Returns True if file exists.
fileExists :: PandocMonad m => FilePath -> m Bool

-- | Returns the path of data file.
getDataFileName :: PandocMonad m => FilePath -> m FilePath

-- | Return the modification time of a file.
getModificationTime :: PandocMonad m => FilePath -> m UTCTime

-- | Get the value of the <a>CommonState</a> used by all instances of
--   <a>PandocMonad</a>.
getCommonState :: PandocMonad m => m CommonState

-- | Set the value of the <a>CommonState</a> used by all instances of
--   <a>PandocMonad</a>. | Get the value of a specific field of
--   <a>CommonState</a>.
putCommonState :: PandocMonad m => CommonState -> m ()

-- | Get the value of a specific field of <a>CommonState</a>.
getsCommonState :: PandocMonad m => (CommonState -> a) -> m a

-- | Modify the <a>CommonState</a>.
modifyCommonState :: PandocMonad m => (CommonState -> CommonState) -> m ()

-- | Output a log message.
logOutput :: PandocMonad m => LogMessage -> m ()

-- | Output a debug message to sterr, using <a>trace</a>, if tracing is
--   enabled. Note: this writes to stderr even in pure instances.
trace :: PandocMonad m => Text -> m ()

-- | Add the specified file to the FileTree. If file is a directory, add
--   its contents recursively.
addToFileTree :: FileTree -> FilePath -> IO FileTree

-- | Retrieve the underlying state of the <tt><a>PandocPure</a></tt> type.
getPureState :: PandocPure PureState

-- | Retrieve a value from the underlying state of the
--   <tt><a>PandocPure</a></tt> type.
getsPureState :: (PureState -> a) -> PandocPure a

-- | Insert an ersatz file into the <a>FileTree</a>.
insertInFileTree :: FilePath -> FileInfo -> FileTree -> FileTree

-- | Modify the underlying state of the <tt><a>PandocPure</a></tt> type.
modifyPureState :: (PureState -> PureState) -> PandocPure ()

-- | Set a new state for the <tt><a>PandocPure</a></tt> type.
putPureState :: PureState -> PandocPure ()

-- | Run a <a>PandocPure</a> operation.
runPure :: PandocPure a -> Either PandocError a

-- | Captures all file-level information necessary for a
--   <tt><a>PandocMonad</a></tt> conforming mock file system.
data FileInfo
FileInfo :: UTCTime -> ByteString -> FileInfo
[infoFileMTime] :: FileInfo -> UTCTime
[infoFileContents] :: FileInfo -> ByteString

-- | Basis of the mock file system used by <tt><a>PandocPure</a></tt>.
data FileTree
newtype PandocPure a
PandocPure :: ExceptT PandocError (StateT CommonState (State PureState)) a -> PandocPure a
[unPandocPure] :: PandocPure a -> ExceptT PandocError (StateT CommonState (State PureState)) a

-- | The <a>PureState</a> contains ersatz representations of things that
--   would normally be obtained through IO.
data PureState
PureState :: StdGen -> [Word8] -> [Int] -> [(Text, Text)] -> UTCTime -> TimeZone -> Archive -> Archive -> Archive -> FileTree -> ByteString -> FileTree -> FileTree -> PureState
[stStdGen] :: PureState -> StdGen

-- | should be infinite, i.e. [1..]
[stWord8Store] :: PureState -> [Word8]

-- | should be infinite and contain every element at most once, e.g. [1..]
[stUniqStore] :: PureState -> [Int]
[stEnv] :: PureState -> [(Text, Text)]
[stTime] :: PureState -> UTCTime
[stTimeZone] :: PureState -> TimeZone
[stReferenceDocx] :: PureState -> Archive
[stReferencePptx] :: PureState -> Archive
[stReferenceODT] :: PureState -> Archive
[stFiles] :: PureState -> FileTree
[stStdin] :: PureState -> ByteString
[stUserDataFiles] :: PureState -> FileTree
[stCabalDataFiles] :: PureState -> FileTree

-- | Lift a PandocPure action into any instance of PandocMonad. The main
--   computation is done purely, but CommonState is preserved continuously,
--   and warnings are emitted after the action completes. The parameter is
--   a list of FilePaths which will be added to the ersatz file system and
--   be available for reading.
sandbox :: (PandocMonad m, MonadIO m) => [FilePath] -> PandocPure a -> m a

-- | Lift a PandocPure action into any instance of PandocMonad. The main
--   computation is done purely, but CommonState is preserved continuously,
--   and warnings are emitted after the action completes. The parameter is
--   an ersatz file system which will be available for reading.
sandboxWithFileTree :: (PandocMonad m, MonadIO m) => FileTree -> PandocPure a -> m a
data Translations


-- | Exports functions for syntax highlighting.
module Text.Pandoc.Highlighting
highlightingStyles :: [(Text, Style)]
languages :: SyntaxMap -> [Text]
languagesByExtension :: SyntaxMap -> Text -> [Text]
highlight :: SyntaxMap -> (FormatOptions -> [SourceLine] -> a) -> Attr -> Text -> Either Text a
formatLaTeXInline :: FormatOptions -> [SourceLine] -> Text
formatLaTeXBlock :: FormatOptions -> [SourceLine] -> Text
styleToLaTeX :: Style -> Text
formatHtmlInline :: FormatOptions -> [SourceLine] -> Html
formatHtmlBlock :: FormatOptions -> [SourceLine] -> Html
formatHtml4Block :: FormatOptions -> [SourceLine] -> Html
styleToCss :: Style -> String
formatConTeXtInline :: FormatOptions -> [SourceLine] -> Text
formatConTeXtBlock :: FormatOptions -> [SourceLine] -> Text
styleToConTeXt :: Style -> Text
formatANSI :: FormatOptions -> Style -> [SourceLine] -> Text
formatTypstBlock :: FormatOptions -> [SourceLine] -> Text
formatTypstInline :: FormatOptions -> [SourceLine] -> Text
styleToTypst :: Style -> Text

-- | The default highlighting style used by pandoc (pygments).
defaultStyle :: Style
pygments :: Style
espresso :: Style
zenburn :: Style
tango :: Style
kate :: Style
monochrome :: Style
breezeDark :: Style
haddock :: Style
data Style

-- | Lookup style from a name. If the name is a standard style, load it; if
--   it ends in ".theme", attempt to load a KDE theme from the file path
--   specified.
lookupHighlightingStyle :: PandocMonad m => String -> m Style

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

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


-- | Data structures and functions for representing parser and writer
--   options.
module Text.Pandoc.Options
data ReaderOptions
ReaderOptions :: Extensions -> Bool -> Int -> Int -> [Text] -> Set Text -> Text -> 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 -> [Text]

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

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

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

-- | Strip HTML comments instead of parsing as raw HTML (only implemented
--   in commonmark)
[readerStripComments] :: ReaderOptions -> Bool
data HTMLMathMethod
PlainMath :: HTMLMathMethod
WebTeX :: Text -> HTMLMathMethod
GladTeX :: HTMLMathMethod
MathML :: HTMLMathMethod
MathJax :: Text -> HTMLMathMethod
KaTeX :: Text -> HTMLMathMethod
data CiteMethod
Citeproc :: CiteMethod
Natbib :: CiteMethod
Biblatex :: CiteMethod

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

-- | Method to provide code highlighting.
data HighlightMethod
Skylighting :: Style -> HighlightMethod
IdiomaticHighlighting :: HighlightMethod
DefaultHighlighting :: HighlightMethod
NoHighlighting :: HighlightMethod

-- | String representation of the no highlighting option
pattern NoHighlightingString :: Text

-- | String representation of the default highlighting option.
pattern DefaultHighlightingString :: Text

-- | String representation of the idiomatic highlighting option.
pattern IdiomaticHighlightingString :: Text

-- | 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 (Template Text) -> Context Text -> Int -> Bool -> Bool -> Bool -> Bool -> HTMLMathMethod -> Bool -> [Int] -> Bool -> Extensions -> Bool -> Int -> WrapOption -> Int -> ObfuscationMethod -> Text -> CiteMethod -> Bool -> Maybe Int -> TopLevelDivision -> HighlightMethod -> Bool -> Bool -> Text -> Maybe Text -> [FilePath] -> Bool -> Int -> PathTemplate -> Int -> Maybe FilePath -> ReferenceLocation -> CaptionPosition -> CaptionPosition -> SyntaxMap -> Bool -> Bool -> WriterOptions

-- | Template to use
[writerTemplate] :: WriterOptions -> Maybe (Template Text)

-- | Variables to set in template
[writerVariables] :: WriterOptions -> Context Text

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

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

-- | Include list of figures
[writerListOfFigures] :: WriterOptions -> Bool

-- | Include list of tables
[writerListOfTables] :: 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/from inch/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 -> Text

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

-- | Style to use for highlighting
[writerHighlightMethod] :: WriterOptions -> HighlightMethod

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

-- | Use list tables for RST tables
[writerListTables] :: WriterOptions -> Bool

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

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

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

-- | Include title page in epub
[writerEpubTitlePage] :: WriterOptions -> Bool

-- | Header level at which to split EPUB or chunked HTML into separate
--   files
[writerSplitLevel] :: WriterOptions -> Int

-- | Template for filenames in chunked HTML
[writerChunkTemplate] :: WriterOptions -> PathTemplate

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

-- | Position of figure caption
[writerFigureCaptionPosition] :: WriterOptions -> CaptionPosition

-- | Position of table caption
[writerTableCaptionPosition] :: WriterOptions -> CaptionPosition
[writerSyntaxMap] :: WriterOptions -> SyntaxMap

-- | Prefer ASCII representations of characters when possible
[writerPreferAscii] :: WriterOptions -> Bool

-- | Use links rather than embedding ODT images
[writerLinkImages] :: WriterOptions -> Bool

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

-- | Positions for figure and table captions
data CaptionPosition

-- | above figure or table
CaptionAbove :: CaptionPosition

-- | below figure or table
CaptionBelow :: CaptionPosition
def :: Default a => a

-- | Returns True if the given extension is enabled.
isEnabled :: HasSyntaxExtensions a => Extension -> a -> Bool
defaultMathJaxURL :: Text
defaultWebTeXURL :: Text
defaultKaTeXURL :: Text
instance GHC.Internal.Data.Data.Data Text.Pandoc.Options.CaptionPosition
instance GHC.Internal.Data.Data.Data Text.Pandoc.Options.CiteMethod
instance GHC.Internal.Data.Data.Data Text.Pandoc.Options.EPUBVersion
instance GHC.Internal.Data.Data.Data Text.Pandoc.Options.HTMLMathMethod
instance GHC.Internal.Data.Data.Data Text.Pandoc.Options.HTMLSlideVariant
instance GHC.Internal.Data.Data.Data Text.Pandoc.Options.HighlightMethod
instance GHC.Internal.Data.Data.Data Text.Pandoc.Options.ObfuscationMethod
instance GHC.Internal.Data.Data.Data Text.Pandoc.Options.ReaderOptions
instance GHC.Internal.Data.Data.Data Text.Pandoc.Options.ReferenceLocation
instance GHC.Internal.Data.Data.Data Text.Pandoc.Options.TopLevelDivision
instance GHC.Internal.Data.Data.Data Text.Pandoc.Options.TrackChanges
instance GHC.Internal.Data.Data.Data Text.Pandoc.Options.WrapOption
instance GHC.Internal.Data.Data.Data Text.Pandoc.Options.WriterOptions
instance Data.Default.Internal.Default Text.Pandoc.Options.ReaderOptions
instance Data.Default.Internal.Default Text.Pandoc.Options.WriterOptions
instance GHC.Classes.Eq Text.Pandoc.Options.CaptionPosition
instance GHC.Classes.Eq Text.Pandoc.Options.CiteMethod
instance GHC.Classes.Eq Text.Pandoc.Options.EPUBVersion
instance GHC.Classes.Eq Text.Pandoc.Options.HTMLMathMethod
instance GHC.Classes.Eq Text.Pandoc.Options.HTMLSlideVariant
instance GHC.Classes.Eq Text.Pandoc.Options.HighlightMethod
instance GHC.Classes.Eq Text.Pandoc.Options.ObfuscationMethod
instance GHC.Classes.Eq Text.Pandoc.Options.ReferenceLocation
instance GHC.Classes.Eq Text.Pandoc.Options.TopLevelDivision
instance GHC.Classes.Eq Text.Pandoc.Options.TrackChanges
instance GHC.Classes.Eq Text.Pandoc.Options.WrapOption
instance Data.Aeson.Types.FromJSON.FromJSON Text.Pandoc.Options.CaptionPosition
instance Data.Aeson.Types.FromJSON.FromJSON Text.Pandoc.Options.CiteMethod
instance Data.Aeson.Types.FromJSON.FromJSON Text.Pandoc.Options.HTMLMathMethod
instance Data.Aeson.Types.FromJSON.FromJSON Text.Pandoc.Options.HTMLSlideVariant
instance Data.Aeson.Types.FromJSON.FromJSON Text.Pandoc.Options.HighlightMethod
instance Data.Aeson.Types.FromJSON.FromJSON Text.Pandoc.Options.ObfuscationMethod
instance Data.Aeson.Types.FromJSON.FromJSON Text.Pandoc.Options.ReaderOptions
instance Data.Aeson.Types.FromJSON.FromJSON Text.Pandoc.Options.ReferenceLocation
instance Data.Aeson.Types.FromJSON.FromJSON Text.Pandoc.Options.TopLevelDivision
instance Data.Aeson.Types.FromJSON.FromJSON Text.Pandoc.Options.TrackChanges
instance Data.Aeson.Types.FromJSON.FromJSON Text.Pandoc.Options.WrapOption
instance GHC.Internal.Generics.Generic Text.Pandoc.Options.CaptionPosition
instance GHC.Internal.Generics.Generic Text.Pandoc.Options.CiteMethod
instance GHC.Internal.Generics.Generic Text.Pandoc.Options.EPUBVersion
instance GHC.Internal.Generics.Generic Text.Pandoc.Options.HTMLMathMethod
instance GHC.Internal.Generics.Generic Text.Pandoc.Options.HTMLSlideVariant
instance GHC.Internal.Generics.Generic Text.Pandoc.Options.HighlightMethod
instance GHC.Internal.Generics.Generic Text.Pandoc.Options.ObfuscationMethod
instance GHC.Internal.Generics.Generic Text.Pandoc.Options.ReaderOptions
instance GHC.Internal.Generics.Generic Text.Pandoc.Options.ReferenceLocation
instance GHC.Internal.Generics.Generic Text.Pandoc.Options.TopLevelDivision
instance GHC.Internal.Generics.Generic Text.Pandoc.Options.TrackChanges
instance GHC.Internal.Generics.Generic Text.Pandoc.Options.WrapOption
instance GHC.Internal.Generics.Generic Text.Pandoc.Options.WriterOptions
instance Text.Pandoc.Options.HasSyntaxExtensions Text.Pandoc.Options.ReaderOptions
instance Text.Pandoc.Options.HasSyntaxExtensions Text.Pandoc.Options.WriterOptions
instance GHC.Internal.Read.Read Text.Pandoc.Options.CaptionPosition
instance GHC.Internal.Read.Read Text.Pandoc.Options.CiteMethod
instance GHC.Internal.Read.Read Text.Pandoc.Options.EPUBVersion
instance GHC.Internal.Read.Read Text.Pandoc.Options.HTMLMathMethod
instance GHC.Internal.Read.Read Text.Pandoc.Options.HTMLSlideVariant
instance GHC.Internal.Read.Read Text.Pandoc.Options.HighlightMethod
instance GHC.Internal.Read.Read Text.Pandoc.Options.ObfuscationMethod
instance GHC.Internal.Read.Read Text.Pandoc.Options.ReaderOptions
instance GHC.Internal.Read.Read Text.Pandoc.Options.ReferenceLocation
instance GHC.Internal.Read.Read Text.Pandoc.Options.TopLevelDivision
instance GHC.Internal.Read.Read Text.Pandoc.Options.TrackChanges
instance GHC.Internal.Read.Read Text.Pandoc.Options.WrapOption
instance GHC.Internal.Show.Show Text.Pandoc.Options.CaptionPosition
instance GHC.Internal.Show.Show Text.Pandoc.Options.CiteMethod
instance GHC.Internal.Show.Show Text.Pandoc.Options.EPUBVersion
instance GHC.Internal.Show.Show Text.Pandoc.Options.HTMLMathMethod
instance GHC.Internal.Show.Show Text.Pandoc.Options.HTMLSlideVariant
instance GHC.Internal.Show.Show Text.Pandoc.Options.HighlightMethod
instance GHC.Internal.Show.Show Text.Pandoc.Options.ObfuscationMethod
instance GHC.Internal.Show.Show Text.Pandoc.Options.ReaderOptions
instance GHC.Internal.Show.Show Text.Pandoc.Options.ReferenceLocation
instance GHC.Internal.Show.Show Text.Pandoc.Options.TopLevelDivision
instance GHC.Internal.Show.Show Text.Pandoc.Options.TrackChanges
instance GHC.Internal.Show.Show Text.Pandoc.Options.WrapOption
instance GHC.Internal.Show.Show Text.Pandoc.Options.WriterOptions
instance Data.Aeson.Types.ToJSON.ToJSON Text.Pandoc.Options.CaptionPosition
instance Data.Aeson.Types.ToJSON.ToJSON Text.Pandoc.Options.CiteMethod
instance Data.Aeson.Types.ToJSON.ToJSON Text.Pandoc.Options.HTMLMathMethod
instance Data.Aeson.Types.ToJSON.ToJSON Text.Pandoc.Options.HTMLSlideVariant
instance Data.Aeson.Types.ToJSON.ToJSON Text.Pandoc.Options.HighlightMethod
instance Data.Aeson.Types.ToJSON.ToJSON Text.Pandoc.Options.ObfuscationMethod
instance Data.Aeson.Types.ToJSON.ToJSON Text.Pandoc.Options.ReaderOptions
instance Data.Aeson.Types.ToJSON.ToJSON Text.Pandoc.Options.ReferenceLocation
instance Data.Aeson.Types.ToJSON.ToJSON Text.Pandoc.Options.TopLevelDivision
instance Data.Aeson.Types.ToJSON.ToJSON Text.Pandoc.Options.TrackChanges
instance Data.Aeson.Types.ToJSON.ToJSON Text.Pandoc.Options.WrapOption


-- | Transformation of a Pandoc document post-parsing
module Text.Pandoc.Transforms

-- | Transformation of a Pandoc document post-parsing
type Transform = Pandoc -> Pandoc

-- | Apply a list of transforms to a document, in order.
applyTransforms :: Monad m => [Transform] -> Pandoc -> m Pandoc

-- | Prefixes identifiers with a string derived from the filepath of
--   <tt>thisfile</tt>; fixes links to targets in <tt>allfiles</tt>
--   accordingly.
adjustLinksAndIds :: Extensions -> Text -> [Text] -> Transform

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

-- | Process ipynb output cells. If mode is Nothing, remove all output. If
--   mode is Just format, select best output for the format. If format is
--   not ipynb, strip out ANSI escape sequences from CodeBlocks (see
--   #5633).
filterIpynbOutput :: Maybe Format -> Pandoc -> Pandoc

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


-- | Conversion of XLSX (Excel spreadsheet) documents to <a>Pandoc</a>
--   document.
module Text.Pandoc.Readers.Xlsx

-- | Read XLSX file into Pandoc AST
readXlsx :: PandocMonad m => ReaderOptions -> ByteString -> m Pandoc


-- | Conversion of PPTX (PowerPoint) documents to <a>Pandoc</a> document.
module Text.Pandoc.Readers.Pptx

-- | Read PPTX file into Pandoc AST
readPptx :: PandocMonad m => ReaderOptions -> ByteString -> m Pandoc


-- | Entry point to the odt reader.
module Text.Pandoc.Readers.ODT
readODT :: PandocMonad m => ReaderOptions -> ByteString -> m Pandoc


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

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


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

-- | Parse Haddock markup and return a <a>Pandoc</a> document.
readHaddock :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc


-- | Parses EndNote XML bibliographies into a Pandoc document with empty
--   body and <tt>references</tt> and <tt>nocite</tt> fields in the
--   metadata. A wildcard <tt>nocite</tt> is used so that if the document
--   is rendered in another format, the entire bibliography will be
--   printed.
module Text.Pandoc.Readers.EndNote

-- | Read EndNote XML from an input string and return a Pandoc document.
--   The document will have only metadata, with an empty body. The metadata
--   will contain a <tt>references</tt> field with the bibliography
--   entries, and a <tt>nocite</tt> field with the wildcard `[@*]`.
readEndNoteXML :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc
readEndNoteXMLCitation :: PandocMonad m => Text -> m (Citation Text)


-- | Reads and evaluates a Djot document as a Pandoc AST.
module Text.Pandoc.Readers.Djot

-- | Read Djot from an input string and return a Pandoc document.
readDjot :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc
instance GHC.Classes.Eq Text.Pandoc.Readers.Djot.Env
instance GHC.Classes.Ord Text.Pandoc.Readers.Djot.Env
instance GHC.Internal.Show.Show Text.Pandoc.Readers.Djot.Env


-- | Parses CSL JSON bibliographies into a Pandoc document with empty body
--   and <tt>references</tt> and <tt>nocite</tt> fields in the metadata. A
--   wildcard <tt>nocite</tt> is used so that if the document is rendered
--   in another format, the entire bibliography will be printed.
--   
--   
--   <a>https://citeproc-js.readthedocs.io/en/latest/csl-json/markup.html</a>.
module Text.Pandoc.Readers.CslJson

-- | Read CSL JSON from an input string and return a Pandoc document. The
--   document will have only metadata, with an empty body. The metadata
--   will contain a <tt>references</tt> field with the bibliography
--   entries, and a <tt>nocite</tt> field with the wildcard `[@*]`.
readCslJson :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc


-- | 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
Tiff :: ImageType
Webp :: ImageType
Avif :: ImageType
data ImageSize
ImageSize :: Integer -> Integer -> Integer -> Integer -> ImageSize
[pxX] :: ImageSize -> Integer
[pxY] :: ImageSize -> Integer
[dpiX] :: ImageSize -> Integer
[dpiY] :: ImageSize -> Integer
imageType :: ByteString -> Maybe ImageType
imageSize :: WriterOptions -> ByteString -> Either Text 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
Point :: Double -> Dimension
Pica :: 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 :: Text -> 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 :: Text -> Maybe (Double, Text)

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

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


-- | Access to pandoc's data files.
module Text.Pandoc.Data

-- | Read file from the default data files.
readDefaultDataFile :: PandocMonad m => FilePath -> m ByteString
readDataFile :: PandocMonad m => FilePath -> m ByteString
getDataFileNames :: IO [FilePath]

-- | Return appropriate user data directory for platform. We use
--   XDG_DATA_HOME (or its default value), but for backwards compatibility,
--   we fall back to the legacy user data directory ($HOME/.pandoc on *nix)
--   if the XDG_DATA_HOME is missing and this exists. If neither directory
--   is present, we return the XDG data directory. If the XDG data
--   directory is not defined (e.g. because we are in an environment where
--   $HOME is not defined), we return the empty string.
defaultUserDataDir :: IO FilePath


-- | Functions for getting localized translations of terms.
module Text.Pandoc.Translations

-- | Parse YAML translations.
readTranslations :: Text -> Either Text Translations

-- | Load term map.
getTranslations :: PandocMonad m => m Translations

-- | Select the language to use with <a>translateTerm</a>. Note that this
--   does not read a translation file; that is only done the first time
--   <a>translateTerm</a> is used.
setTranslations :: PandocMonad m => Lang -> m ()

-- | Get a translation from the current term map. Issue a warning if the
--   term is not defined.
translateTerm :: PandocMonad m => Term -> m Text


-- | Utility functions for working with pandoc templates.
--   
--   <a>WithDefaultPartials</a> and <a>WithPartials</a> are Monad wrappers.
--   Wrapping these around an instance of <a>PandocMonad</a> gives
--   different instances of <a>TemplateMonad</a>, with different search
--   behaviors when retrieving partials.
--   
--   To compile a template and limit partial search to pandoc’s data files,
--   use <tt>runWithDefaultPartials (compileTemplate ...)</tt>.
--   
--   To compile a template and allow partials to be found locally (either
--   on the file system or via HTTP, in the event that the main template
--   has an absolute URL), ue <tt>runWithPartials (compileTemplate
--   ...)</tt>.
--   
--   <a>getTemplate</a> seeks a template locally, or via HTTP if the
--   template has an absolute URL, falling back to the data files if not
--   found.
module Text.Pandoc.Templates
data Template a

-- | Wrap a Monad in this if you want partials to be taken only from the
--   default data files.
newtype WithDefaultPartials (m :: Type -> Type) a
WithDefaultPartials :: m a -> WithDefaultPartials (m :: Type -> Type) a
[runWithDefaultPartials] :: WithDefaultPartials (m :: Type -> Type) a -> m a

-- | Wrap a Monad in this if you want partials to be looked for locally
--   (or, when the main template is at a URL, via HTTP), falling back to
--   default data files.
newtype WithPartials (m :: Type -> Type) a
WithPartials :: m a -> WithPartials (m :: Type -> Type) a
[runWithPartials] :: WithPartials (m :: Type -> Type) a -> m a
compileTemplate :: (TemplateMonad m, TemplateTarget a) => FilePath -> Text -> m (Either String (Template a))
renderTemplate :: (TemplateTarget a, ToContext a b) => Template a -> b -> Doc a

-- | Retrieve text for a template.
getTemplate :: PandocMonad m => FilePath -> m Text

-- | Get default template for the specified writer.
getDefaultTemplate :: PandocMonad m => Text -> m Text

-- | Get and compile default template for the specified writer. Raise an
--   error on compilation failure.
compileDefaultTemplate :: PandocMonad m => Text -> m (Template Text)
instance GHC.Internal.Base.Applicative m => GHC.Internal.Base.Applicative (Text.Pandoc.Templates.WithDefaultPartials m)
instance GHC.Internal.Base.Applicative m => GHC.Internal.Base.Applicative (Text.Pandoc.Templates.WithPartials m)
instance GHC.Internal.Base.Functor m => GHC.Internal.Base.Functor (Text.Pandoc.Templates.WithDefaultPartials m)
instance GHC.Internal.Base.Functor m => GHC.Internal.Base.Functor (Text.Pandoc.Templates.WithPartials m)
instance GHC.Internal.Base.Monad m => GHC.Internal.Base.Monad (Text.Pandoc.Templates.WithDefaultPartials m)
instance GHC.Internal.Base.Monad m => GHC.Internal.Base.Monad (Text.Pandoc.Templates.WithPartials m)
instance Text.Pandoc.Class.PandocMonad.PandocMonad m => Text.DocTemplates.Internal.TemplateMonad (Text.Pandoc.Templates.WithDefaultPartials m)
instance Text.Pandoc.Class.PandocMonad.PandocMonad m => Text.DocTemplates.Internal.TemplateMonad (Text.Pandoc.Templates.WithPartials m)


-- | Version information.
module Text.Pandoc.Version

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

-- | Text representation of the library's version number.
pandocVersionText :: Text


-- | Definitions and conversion functions for an intermediate <a>Table</a>
--   and related types, which annotates the existing Pandoc <a>Table</a>
--   types with additional inferred information. For use in writers that
--   need to know the details of columns that cells span, row numbers, and
--   the cells that are in the row head.
module Text.Pandoc.Writers.AnnotatedTable

-- | Convert a Pandoc <a>Table</a> to an annotated <a>Table</a>. This
--   function also performs the same normalization that the <a>table</a>
--   builder does (fixing overlapping cells, cells that protrude out of
--   their table section, and so on). If the input table happens to satisfy
--   the conditions that <a>table</a> guarantees, then the resulting
--   <a>Table</a> will be identical, save for the addition of the inferred
--   table information.
toTable :: Attr -> Caption -> [ColSpec] -> TableHead -> [TableBody] -> TableFoot -> Table

-- | Convert an annotated <a>Table</a> to a Pandoc <a>Table</a>. This is
--   the inverse of <a>toTable</a> on well-formed tables (i.e. tables
--   satisfying the guarantees of <a>table</a>).
fromTable :: Table -> (Attr, Caption, [ColSpec], TableHead, [TableBody], TableFoot)

-- | An annotated table type, corresponding to the Pandoc <a>Table</a>
--   constructor and the HTML <tt>&lt;table&gt;</tt> element. It records
--   the data of the columns that cells span, the cells in the row head,
--   the row numbers of rows, and the column numbers of cells, in addition
--   to the data in a <a>Table</a>. The type itself does not enforce any
--   guarantees about the consistency of this data. Use <a>toTable</a> to
--   produce a <a>Table</a> from a Pandoc <a>Table</a>.
data Table
Table :: Attr -> Caption -> [ColSpec] -> TableHead -> [TableBody] -> TableFoot -> Table

-- | An annotated table head, corresponding to a Pandoc <a>TableHead</a>
--   and the HTML <tt>&lt;thead&gt;</tt> element.
data TableHead
TableHead :: Attr -> [HeaderRow] -> TableHead

-- | An annotated table body, with an intermediate head and body,
--   corresponding to a Pandoc <a>TableBody</a> and the HTML
--   <tt>&lt;tbody&gt;</tt> element.
data TableBody
TableBody :: Attr -> RowHeadColumns -> [HeaderRow] -> [BodyRow] -> TableBody

-- | An annotated table foot, corresponding to a Pandoc <a>TableFoot</a>
--   and the HTML <tt>&lt;tfoot&gt;</tt> element.
data TableFoot
TableFoot :: Attr -> [HeaderRow] -> TableFoot

-- | An annotated header row, corresponding to a Pandoc <a>Row</a> and the
--   HTML <tt>&lt;tr&gt;</tt> element, and also recording the row number of
--   the row. All the cells in a <a>HeaderRow</a> are header
--   (<tt>&lt;th&gt;</tt>) cells.
data HeaderRow
HeaderRow :: Attr -> RowNumber -> [Cell] -> HeaderRow

-- | An annotated body row, corresponding to a Pandoc <a>Row</a> and the
--   HTML <tt>&lt;tr&gt;</tt> element, and also recording its row number
--   and separating the row head cells from the row body cells.
data BodyRow
BodyRow :: Attr -> RowNumber -> RowHead -> RowBody -> BodyRow

-- | The row number of a row. Note that rows are numbered continuously from
--   zero from the start of the table, so the first row in a table body,
--   for instance, may have a large <a>RowNumber</a>.
newtype RowNumber
RowNumber :: Int -> RowNumber

-- | The head of a body row; the portion of the row lying in the stub of
--   the <a>TableBody</a>. Its cells correspond to HTML <tt>&lt;th&gt;</tt>
--   cells.
type RowHead = [Cell]

-- | The body of a body row; the portion of the row lying after the stub of
--   the <a>TableBody</a>. Its cells correspond to HTML <tt>&lt;td&gt;</tt>
--   cells.
type RowBody = [Cell]

-- | An annotated table cell, wrapping a Pandoc <a>Cell</a> with its
--   <a>ColNumber</a> and the <a>ColSpec</a> data for the columns that the
--   cell spans.
data Cell
Cell :: NonEmpty ColSpec -> ColNumber -> Cell -> Cell

-- | The column number of a cell, meaning the column number of the first
--   column that the cell spans, if the table were laid on a grid. Columns
--   are numbered starting from zero.
newtype ColNumber
ColNumber :: Int -> ColNumber
instance GHC.Internal.Data.Data.Data Text.Pandoc.Writers.AnnotatedTable.BodyRow
instance GHC.Internal.Data.Data.Data Text.Pandoc.Writers.AnnotatedTable.Cell
instance GHC.Internal.Data.Data.Data Text.Pandoc.Writers.AnnotatedTable.ColNumber
instance GHC.Internal.Data.Data.Data Text.Pandoc.Writers.AnnotatedTable.HeaderRow
instance GHC.Internal.Data.Data.Data Text.Pandoc.Writers.AnnotatedTable.RowNumber
instance GHC.Internal.Data.Data.Data Text.Pandoc.Writers.AnnotatedTable.Table
instance GHC.Internal.Data.Data.Data Text.Pandoc.Writers.AnnotatedTable.TableBody
instance GHC.Internal.Data.Data.Data Text.Pandoc.Writers.AnnotatedTable.TableFoot
instance GHC.Internal.Data.Data.Data Text.Pandoc.Writers.AnnotatedTable.TableHead
instance GHC.Internal.Enum.Enum Text.Pandoc.Writers.AnnotatedTable.ColNumber
instance GHC.Internal.Enum.Enum Text.Pandoc.Writers.AnnotatedTable.RowNumber
instance GHC.Classes.Eq Text.Pandoc.Writers.AnnotatedTable.BodyRow
instance GHC.Classes.Eq Text.Pandoc.Writers.AnnotatedTable.Cell
instance GHC.Classes.Eq Text.Pandoc.Writers.AnnotatedTable.ColNumber
instance GHC.Classes.Eq Text.Pandoc.Writers.AnnotatedTable.HeaderRow
instance GHC.Classes.Eq Text.Pandoc.Writers.AnnotatedTable.RowNumber
instance GHC.Classes.Eq Text.Pandoc.Writers.AnnotatedTable.Table
instance GHC.Classes.Eq Text.Pandoc.Writers.AnnotatedTable.TableBody
instance GHC.Classes.Eq Text.Pandoc.Writers.AnnotatedTable.TableFoot
instance GHC.Classes.Eq Text.Pandoc.Writers.AnnotatedTable.TableHead
instance GHC.Internal.Generics.Generic Text.Pandoc.Writers.AnnotatedTable.BodyRow
instance GHC.Internal.Generics.Generic Text.Pandoc.Writers.AnnotatedTable.Cell
instance GHC.Internal.Generics.Generic Text.Pandoc.Writers.AnnotatedTable.ColNumber
instance GHC.Internal.Generics.Generic Text.Pandoc.Writers.AnnotatedTable.HeaderRow
instance GHC.Internal.Generics.Generic Text.Pandoc.Writers.AnnotatedTable.RowNumber
instance GHC.Internal.Generics.Generic Text.Pandoc.Writers.AnnotatedTable.Table
instance GHC.Internal.Generics.Generic Text.Pandoc.Writers.AnnotatedTable.TableBody
instance GHC.Internal.Generics.Generic Text.Pandoc.Writers.AnnotatedTable.TableFoot
instance GHC.Internal.Generics.Generic Text.Pandoc.Writers.AnnotatedTable.TableHead
instance GHC.Internal.Num.Num Text.Pandoc.Writers.AnnotatedTable.ColNumber
instance GHC.Internal.Num.Num Text.Pandoc.Writers.AnnotatedTable.RowNumber
instance GHC.Classes.Ord Text.Pandoc.Writers.AnnotatedTable.BodyRow
instance GHC.Classes.Ord Text.Pandoc.Writers.AnnotatedTable.Cell
instance GHC.Classes.Ord Text.Pandoc.Writers.AnnotatedTable.ColNumber
instance GHC.Classes.Ord Text.Pandoc.Writers.AnnotatedTable.HeaderRow
instance GHC.Classes.Ord Text.Pandoc.Writers.AnnotatedTable.RowNumber
instance GHC.Classes.Ord Text.Pandoc.Writers.AnnotatedTable.Table
instance GHC.Classes.Ord Text.Pandoc.Writers.AnnotatedTable.TableBody
instance GHC.Classes.Ord Text.Pandoc.Writers.AnnotatedTable.TableFoot
instance GHC.Classes.Ord Text.Pandoc.Writers.AnnotatedTable.TableHead
instance GHC.Internal.Read.Read Text.Pandoc.Writers.AnnotatedTable.BodyRow
instance GHC.Internal.Read.Read Text.Pandoc.Writers.AnnotatedTable.Cell
instance GHC.Internal.Read.Read Text.Pandoc.Writers.AnnotatedTable.ColNumber
instance GHC.Internal.Read.Read Text.Pandoc.Writers.AnnotatedTable.HeaderRow
instance GHC.Internal.Read.Read Text.Pandoc.Writers.AnnotatedTable.RowNumber
instance GHC.Internal.Read.Read Text.Pandoc.Writers.AnnotatedTable.Table
instance GHC.Internal.Read.Read Text.Pandoc.Writers.AnnotatedTable.TableBody
instance GHC.Internal.Read.Read Text.Pandoc.Writers.AnnotatedTable.TableFoot
instance GHC.Internal.Read.Read Text.Pandoc.Writers.AnnotatedTable.TableHead
instance GHC.Internal.Show.Show Text.Pandoc.Writers.AnnotatedTable.BodyRow
instance GHC.Internal.Show.Show Text.Pandoc.Writers.AnnotatedTable.Cell
instance GHC.Internal.Show.Show Text.Pandoc.Writers.AnnotatedTable.ColNumber
instance GHC.Internal.Show.Show Text.Pandoc.Writers.AnnotatedTable.HeaderRow
instance GHC.Internal.Show.Show Text.Pandoc.Writers.AnnotatedTable.RowNumber
instance GHC.Internal.Show.Show Text.Pandoc.Writers.AnnotatedTable.Table
instance GHC.Internal.Show.Show Text.Pandoc.Writers.AnnotatedTable.TableBody
instance GHC.Internal.Show.Show Text.Pandoc.Writers.AnnotatedTable.TableFoot
instance GHC.Internal.Show.Show Text.Pandoc.Writers.AnnotatedTable.TableHead
instance Text.Pandoc.Walk.Walkable a Text.Pandoc.Definition.Cell => Text.Pandoc.Walk.Walkable a Text.Pandoc.Writers.AnnotatedTable.Cell
instance Text.Pandoc.Walk.Walkable a Text.Pandoc.Definition.Cell => Text.Pandoc.Walk.Walkable a Text.Pandoc.Writers.AnnotatedTable.HeaderRow
instance Text.Pandoc.Walk.Walkable a Text.Pandoc.Definition.Cell => Text.Pandoc.Walk.Walkable a Text.Pandoc.Writers.AnnotatedTable.TableHead


-- | Conversion of references from <a>Pandoc</a> metadata to CSL JSON:
--   <a>https://citeproc-js.readthedocs.io/en/latest/csl-json/markup.html</a>.
--   
--   Note that this writer ignores everything in the body of the document
--   and everything in the metadata except <tt>references</tt>. It assumes
--   that the <tt>references</tt> field is a list with the structure of a
--   CSL JSON bibliography.
module Text.Pandoc.Writers.CslJson
writeCslJson :: PandocMonad m => WriterOptions -> Pandoc -> m Text

module Text.Pandoc.Writers.Math

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

-- | Converts a raw TeX math formula using a writer function, issuing a
--   warning and producing a fallback (a raw string) on failure.
convertMath :: PandocMonad m => (DisplayType -> [Exp] -> a) -> MathType -> Text -> m (Either Inline a)
defaultMathJaxURL :: Text
defaultKaTeXURL :: Text


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

-- | Prettyprint Pandoc document.
writeNative :: PandocMonad m => WriterOptions -> Pandoc -> m Text


-- | Functions common to OOXML writers (Docx and Powerpoint)
module Text.Pandoc.Writers.OOXML
mknode :: Node t => Text -> [(Text, Text)] -> t -> Element
mktnode :: Text -> [(Text, Text)] -> Text -> Element
nodename :: Text -> QName
toLazy :: ByteString -> ByteString
renderXml :: Element -> ByteString
parseXml :: PandocMonad m => Archive -> Archive -> String -> m Element
elemToNameSpaces :: Element -> NameSpaces
elemName :: NameSpaces -> Text -> Text -> QName
isElem :: NameSpaces -> Text -> Text -> Element -> Bool
type NameSpaces = [(Text, Text)]

-- | Scales the image to fit the page sizes are passed in emu
fitToPage :: (Double, Double) -> Integer -> (Integer, Integer)


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

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

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

-- | Converts a string into an NCName, i.e., an XML name without colons.
--   Disallowed characters are escaped using <tt>ux%x</tt>, where
--   <tt>%x</tt> is the hexadecimal unicode identifier of the escaped
--   character.
escapeNCName :: Text -> Text

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

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

-- | Put the supplied contents between start and end tags of tagType.
inTagsSimple :: (HasChars a, IsString a) => Text -> Doc a -> Doc a

-- | Put the supplied contents in indented block btw start and end tags.
inTagsIndented :: (HasChars a, IsString a) => Text -> Doc a -> Doc a

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

-- | Escape all non-ascii characters using HTML5 entities, falling back to
--   numerical entities.
toHtml5Entities :: Text -> Text

-- | Unescapes XML entities
fromEntities :: Text -> Text
lookupEntity :: Text -> Maybe Text
html4Attributes :: Set Text
html5Attributes :: Set Text
rdfaAttributes :: Set Text


-- | Conversion of jira wiki formatted plain text to <a>Pandoc</a>
--   document.
module Text.Pandoc.Readers.Jira

-- | Read Jira wiki markup.
readJira :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc


-- | Conversion of JATS XML to <a>Pandoc</a> document.
module Text.Pandoc.Readers.JATS
readJATS :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc
instance Data.Default.Internal.Default Text.Pandoc.Readers.JATS.JATSState
instance Text.Pandoc.Builder.HasMeta Text.Pandoc.Readers.JATS.JATSState
instance GHC.Internal.Show.Show Text.Pandoc.Readers.JATS.JATSState


-- | Conversion of FB2 to <a>Pandoc</a> document.
module Text.Pandoc.Readers.FB2
readFB2 :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc
instance Data.Default.Internal.Default Text.Pandoc.Readers.FB2.FB2State
instance Text.Pandoc.Builder.HasMeta Text.Pandoc.Readers.FB2.FB2State
instance GHC.Internal.Show.Show Text.Pandoc.Readers.FB2.FB2State


-- | Conversion of DocBook XML to <a>Pandoc</a> document.
module Text.Pandoc.Readers.DocBook
readDocBook :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc
instance Data.Default.Internal.Default Text.Pandoc.Readers.DocBook.DBState
instance Text.Pandoc.Builder.HasMeta Text.Pandoc.Readers.DocBook.DBState
instance GHC.Internal.Show.Show Text.Pandoc.Readers.DocBook.DBState


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

-- | Like <tt>count</tt>, but packs its result
countChar :: forall s (m :: Type -> Type) st. (Stream s m Char, UpdateSourcePos s Char, Monad m) => Int -> ParsecT s st m Char -> ParsecT s st m Text

-- | Like <tt>string</tt>, but uses <tt>Text</tt>.
textStr :: forall s (m :: Type -> Type) u. (Stream s m Char, UpdateSourcePos s Char) => Text -> ParsecT s u m Text

-- | Parse any line of text, returning the contents without the final
--   newline.
anyLine :: forall (m :: Type -> Type) st. Monad m => ParsecT Sources st m Text

-- | Parse any line, include the final newline in the output
anyLineNewline :: forall (m :: Type -> Type) st. Monad m => ParsecT Sources st m Text

-- | Parse indent by specified number of spaces (or equiv. tabs)
indentWith :: forall s (m :: Type -> Type) st. (Stream s m Char, UpdateSourcePos s Char, HasReaderOptions st) => Int -> ParsecT s st m Text

-- | Like <tt>many</tt>, but packs its result.
manyChar :: forall s (m :: Type -> Type) t st. Stream s m t => ParsecT s st m Char -> ParsecT s st m Text

-- | Like <tt>many1</tt>, but packs its result.
many1Char :: forall s (m :: Type -> Type) t st. Stream s m t => ParsecT s st m Char -> ParsecT s st m Text

-- | Like <tt>manyTill</tt>, but packs its result.
manyTillChar :: forall s (m :: Type -> Type) t st a. Stream s m t => ParsecT s st m Char -> ParsecT s st m a -> ParsecT s st m Text

-- | Like <tt>many1Till</tt>, but packs its result
many1TillChar :: forall end s (m :: Type -> Type) t st. (Show end, Stream s m t) => ParsecT s st m Char -> ParsecT s st m end -> ParsecT s st m Text

-- | Like <tt>manyTill</tt>, but reads at least one item.
many1Till :: forall end s (m :: Type -> Type) t st a. (Show end, Stream s m t) => ParsecT s st m a -> ParsecT s st m end -> ParsecT s st m [a]

-- | Like <tt>manyTill</tt>, but also returns the result of end parser.
manyUntil :: forall s u (m :: Type -> Type) a b. ParsecT s u m a -> ParsecT s u m b -> ParsecT s u m ([a], b)

-- | Like <tt>manyUntil</tt>, but also packs its result.
manyUntilChar :: forall s u (m :: Type -> Type) b. ParsecT s u m Char -> ParsecT s u m b -> ParsecT s u m (Text, b)

-- | Like <tt>sepBy1</tt> from Parsec, but does not fail if it <tt>sep</tt>
--   succeeds and <tt>p</tt> fails.
sepBy1' :: forall s u (m :: Type -> Type) a sep. ParsecT s u m a -> ParsecT s u m sep -> ParsecT s u m [a]

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

-- | Parses one of a list of strings. If the list contains two strings one
--   of which is a prefix of the other, the longer string will be matched
--   if possible.
oneOfStrings :: forall s (m :: Type -> Type) st. (Stream s m Char, UpdateSourcePos s Char) => [Text] -> ParsecT s st m Text

-- | Parses one of a list of strings (tried in order), case insensitive.
oneOfStringsCI :: forall s (m :: Type -> Type) st. (Stream s m Char, UpdateSourcePos s Char) => [Text] -> ParsecT s st m Text

-- | Parses a space or tab.
spaceChar :: forall s (m :: Type -> Type) st. (Stream s m Char, UpdateSourcePos s Char) => ParsecT s st m Char

-- | Parses a nonspace, nonnewline character.
nonspaceChar :: forall s (m :: Type -> Type) st. (Stream s m Char, UpdateSourcePos s Char) => ParsecT s st m Char

-- | Skips zero or more spaces or tabs.
skipSpaces :: forall s (m :: Type -> Type) st. (Stream s m Char, UpdateSourcePos s Char) => ParsecT s st m ()

-- | Skips zero or more spaces or tabs, then reads a newline.
blankline :: forall s (m :: Type -> Type) st. (Stream s m Char, UpdateSourcePos s Char) => ParsecT s st m Char

-- | Parses one or more blank lines and returns a string of newlines.
blanklines :: forall s (m :: Type -> Type) st. (Stream s m Char, UpdateSourcePos s Char) => ParsecT s st m Text

-- | Gobble n spaces; if tabs are encountered, expand them and gobble some
--   or all of their spaces, leaving the rest.
gobbleSpaces :: forall st (m :: Type -> Type). (HasReaderOptions st, Monad m) => Int -> ParsecT Sources st m ()

-- | Gobble up to n spaces; if tabs are encountered, expand them and gobble
--   some or all of their spaces, leaving the rest.
gobbleAtMostSpaces :: forall st (m :: Type -> Type). (HasReaderOptions st, Monad m) => Int -> ParsecT Sources st m Int

-- | Parses material enclosed between start and end parsers.
enclosed :: forall end s (m :: Type -> Type) st t a. (Show end, Stream s m Char, UpdateSourcePos s Char) => ParsecT s st m t -> ParsecT s st m end -> ParsecT s st m a -> ParsecT s st m [a]

-- | Parse string, case insensitive.
stringAnyCase :: forall s (m :: Type -> Type) st. (Stream s m Char, UpdateSourcePos s Char) => Text -> ParsecT s st m Text

-- | Parse contents of <tt>str</tt> using <tt>parser</tt> and return
--   result.
parseFromString :: forall (m :: Type -> Type) st r. Monad m => ParsecT Sources st m r -> Text -> ParsecT Sources st m r

-- | Like <a>parseFromString</a> but specialized for <a>ParserState</a>.
--   This resets <a>stateLastStrPos</a>, which is almost always what we
--   want.
parseFromString' :: forall (m :: Type -> Type) u a. (Monad m, HasLastStrPosition u) => ParsecT Sources u m a -> Text -> ParsecT Sources u m a

-- | Parse raw line block up to and including blank lines.
lineClump :: forall (m :: Type -> Type) st. Monad m => ParsecT Sources st m Text

-- | Parse a string of characters between an open character and a close
--   character, including text between balanced pairs of open and close,
--   which must be different. For example, <tt>charsInBalanced '(' ')'
--   (Data.Text.singleton <a>$</a> anyChar)</tt> will parse "(hello
--   (there))" and return "hello (there)".
charsInBalanced :: forall s (m :: Type -> Type) st. (Stream s m Char, UpdateSourcePos s Char) => Char -> Char -> ParsecT s st m Text -> ParsecT s st m Text

-- | Parses a roman numeral (uppercase or lowercase), returns number.
romanNumeral :: forall s (m :: Type -> Type) st. (Stream s m Char, UpdateSourcePos s Char) => Bool -> ParsecT s st m Int

-- | Parses an email address; returns original and corresponding escaped
--   mailto: URI.
emailAddress :: forall s (m :: Type -> Type) st. (Stream s m Char, UpdateSourcePos s Char) => ParsecT s st m (Text, Text)

-- | Parses a URI. Returns pair of original and URI-escaped version.
uri :: forall s (m :: Type -> Type) st. (Stream s m Char, UpdateSourcePos s Char) => ParsecT s st m (Text, Text)
mathInline :: forall st s (m :: Type -> Type). (HasReaderOptions st, Stream s m Char, UpdateSourcePos s Char) => ParsecT s st m Text
mathDisplay :: forall st s (m :: Type -> Type). (HasReaderOptions st, Stream s m Char, UpdateSourcePos s Char) => ParsecT s st m Text

-- | Applies a parser, returns tuple of its results and its horizontal
--   displacement (the difference between the source column at the end and
--   the source column at the beginning). Vertical displacement (source
--   row) is ignored.
withHorizDisplacement :: forall s (m :: Type -> Type) st a. (Stream s m Char, UpdateSourcePos s Char) => ParsecT s st m a -> ParsecT s st m (a, Int)

-- | Applies a parser and returns the raw string that was parsed, along
--   with the value produced by the parser.
withRaw :: forall (m :: Type -> Type) st a. Monad m => ParsecT Sources st m a -> ParsecT Sources st m (a, Text)
fromParsecError :: Sources -> ParseError -> PandocError

-- | Parses backslash, then applies character parser.
escaped :: forall s (m :: Type -> Type) st. (Stream s m Char, UpdateSourcePos s Char) => ParsecT s st m Char -> ParsecT s st m Char

-- | Parse character entity.
characterReference :: forall s (m :: Type -> Type) st. (Stream s m Char, UpdateSourcePos s Char) => ParsecT s st m Text

-- | Parses an uppercase roman numeral and returns (UpperRoman, number).
upperRoman :: forall s (m :: Type -> Type) st. (Stream s m Char, UpdateSourcePos s Char) => ParsecT s st m (ListNumberStyle, Int)

-- | Parses a lowercase roman numeral and returns (LowerRoman, number).
lowerRoman :: forall s (m :: Type -> Type) st. (Stream s m Char, UpdateSourcePos s Char) => ParsecT s st m (ListNumberStyle, Int)

-- | Parses a decimal numeral and returns (Decimal, number).
decimal :: forall s (m :: Type -> Type) st. (Stream s m Char, UpdateSourcePos s Char) => ParsecT s st m (ListNumberStyle, Int)

-- | Parses a lowercase letter and returns (LowerAlpha, number).
lowerAlpha :: forall s (m :: Type -> Type) st. (Stream s m Char, UpdateSourcePos s Char) => ParsecT s st m (ListNumberStyle, Int)

-- | Parses an uppercase letter and returns (UpperAlpha, number).
upperAlpha :: forall s (m :: Type -> Type) st. (Stream s m Char, UpdateSourcePos s Char) => ParsecT s st m (ListNumberStyle, Int)

-- | Parses an ordered list marker and returns list attributes.
anyOrderedListMarker :: forall s (m :: Type -> Type). (Stream s m Char, UpdateSourcePos s Char) => ParsecT s ParserState m ListAttributes

-- | Parses an ordered list marker with a given style and delimiter,
--   returns number.
orderedListMarker :: forall s (m :: Type -> Type). (Stream s m Char, UpdateSourcePos s Char) => ListNumberStyle -> ListNumberDelim -> ParsecT s ParserState m Int

-- | Parses a character reference and returns a Str element.
charRef :: forall s (m :: Type -> Type) st. (Stream s m Char, UpdateSourcePos s Char) => ParsecT s st m Inline

-- | Parses an RST-style line block and returns a list of strings.
lineBlockLines :: forall (m :: Type -> Type) st. Monad m => ParsecT Sources st m [Text]

-- | Parse a table using <tt>headerParser</tt>, <tt>rowParser</tt>,
--   <tt>lineParser</tt>, and <tt>footerParser</tt>.
tableWith :: forall s (m :: Type -> Type) st mf sep end. (Stream s m Char, UpdateSourcePos s Char, HasReaderOptions st, Monad mf) => ParsecT s st m (mf [[Blocks]], [Alignment], [Int]) -> ([Int] -> ParsecT s st m (mf [Blocks])) -> ParsecT s st m sep -> ParsecT s st m end -> ParsecT s st m (mf Blocks)
tableWith' :: forall s (m :: Type -> Type) st mf sep end. (Stream s m Char, UpdateSourcePos s Char, HasReaderOptions st, Monad mf) => TableNormalization -> ParsecT s st m (mf [[Blocks]], [Alignment], [Int]) -> ([Int] -> ParsecT s st m (mf [Blocks])) -> ParsecT s st m sep -> ParsecT s st m end -> ParsecT s st m (mf TableComponents)
tableWithSpans :: forall s (m :: Type -> Type) st mf sep end. (Stream s m Char, UpdateSourcePos s Char, HasReaderOptions st, Monad mf) => ParsecT s st m (mf [[(Blocks, RowSpan, ColSpan)]], [Alignment], [Int]) -> ([Int] -> ParsecT s st m (mf [(Blocks, RowSpan, ColSpan)])) -> ParsecT s st m sep -> ParsecT s st m end -> ParsecT s st m (mf Blocks)
tableWithSpans' :: forall s (m :: Type -> Type) st mf sep end. (Stream s m Char, UpdateSourcePos s Char, HasReaderOptions st, Monad mf) => TableNormalization -> ParsecT s st m (mf [[(Blocks, RowSpan, ColSpan)]], [Alignment], [Int]) -> ([Int] -> ParsecT s st m (mf [(Blocks, RowSpan, ColSpan)])) -> ParsecT s st m sep -> ParsecT s st m end -> ParsecT s st m (mf TableComponents)

-- | Calculate relative widths of table columns, based on indices
widthsFromIndices :: Int -> [Int] -> [Double]

-- | Parse a grid table: starts with row of <a>-</a> on top, then header
--   (which may be grid), then the rows, which may be grid, separated by
--   blank lines, and ending with a footer (dashed line followed by blank
--   line).
gridTableWith :: forall (m :: Type -> Type) mf st. (Monad m, Monad mf, HasLastStrPosition st, HasReaderOptions st) => ParsecT Sources st m (mf Blocks) -> ParsecT Sources st m (mf Blocks)

-- | Like <tt><a>gridTableWith</a></tt>, but returns <a>TableComponents</a>
--   instead of a Table.
gridTableWith' :: forall (m :: Type -> Type) mf st. (Monad m, Monad mf, HasReaderOptions st, HasLastStrPosition st) => TableNormalization -> ParsecT Sources st m (mf Blocks) -> ParsecT Sources st m (mf TableComponents)

-- | Collection of components making up a Table block.
data TableComponents
TableComponents :: Attr -> Caption -> [ColSpec] -> TableHead -> [TableBody] -> TableFoot -> TableComponents
[tableAttr] :: TableComponents -> Attr
[tableCaption] :: TableComponents -> Caption
[tableColSpecs] :: TableComponents -> [ColSpec]
[tableHead] :: TableComponents -> TableHead
[tableBodies] :: TableComponents -> [TableBody]
[tableFoot] :: TableComponents -> TableFoot

-- | Whether the table header should be normalized, i.e., whether an header
--   row with only empty cells should be omitted.
data TableNormalization
NoNormalization :: TableNormalization
NormalizeHeader :: TableNormalization

-- | Bundles basic table components into a single value.
toTableComponents :: [Alignment] -> [Double] -> [[Blocks]] -> [[Blocks]] -> TableComponents

-- | Bundles basic table components into a single value, performing
--   normalizations as necessary.
toTableComponents' :: TableNormalization -> [Alignment] -> [Double] -> [[Blocks]] -> [[Blocks]] -> TableComponents

-- | Bundles basic table components with span information into a single
--   value.
toTableComponentsWithSpans :: [Alignment] -> [Double] -> [[(Blocks, RowSpan, ColSpan)]] -> [[(Blocks, RowSpan, ColSpan)]] -> TableComponents

-- | Bundles basic table components with span information into a single
--   value, performing normalizations as necessary.
toTableComponentsWithSpans' :: TableNormalization -> [Alignment] -> [Double] -> [[(Blocks, RowSpan, ColSpan)]] -> [[(Blocks, RowSpan, ColSpan)]] -> TableComponents

-- | List of lists of <a>RowSpan</a> of 1.
singleRowSpans :: [[RowSpan]]

-- | List of lists of <tt>ColsSpan</tt> of 1.
singleColumnSpans :: [[ColSpan]]

-- | Parse a string with a given parser and state
readWith :: ToSources t => Parsec Sources st a -> st -> t -> Either PandocError a

-- | Removes the ParsecT layer from the monad transformer stack
readWithM :: (Monad m, ToSources t) => ParsecT Sources st m a -> st -> t -> m (Either PandocError a)

-- | Parse a string with <tt>parser</tt> (for testing).
testStringWith :: Show a => ParsecT Sources ParserState Identity a -> Text -> IO ()

-- | Succeed only if the extension is enabled.
guardEnabled :: forall s (m :: Type -> Type) a st. (Stream s m a, HasReaderOptions st) => Extension -> ParsecT s st m ()

-- | Succeed only if the extension is disabled.
guardDisabled :: forall s (m :: Type -> Type) a st. (Stream s m a, HasReaderOptions st) => Extension -> ParsecT s st m ()

-- | Update the position on which the last string ended.
updateLastStrPos :: forall s (m :: Type -> Type) a st. (Stream s m a, HasLastStrPosition st) => ParsecT s st m ()

-- | Whether we are right after the end of a string.
notAfterString :: forall s (m :: Type -> Type) a st. (Stream s m a, HasLastStrPosition st) => ParsecT s st m Bool

-- | Add a log message.
logMessage :: forall s (m :: Type -> Type) a st. (Stream s m a, HasLogMessages st) => LogMessage -> ParsecT s st m ()

-- | Report all the accumulated log messages, according to verbosity level.
reportLogMessages :: forall (m :: Type -> Type) st s. (PandocMonad m, HasLogMessages st) => ParsecT s st m ()

-- | Parsing options.
data ParserState
ParserState :: ReaderOptions -> ParserContext -> QuoteContext -> Bool -> Bool -> Maybe SourcePos -> KeyTable -> KeyTable -> SubstTable -> NoteTable -> NoteTable' -> Set Text -> Bool -> Int -> Meta -> Future ParserState Meta -> Map Text Text -> [HeaderType] -> Set Text -> Int -> Map Text Int -> Map Text Macro -> Text -> Maybe Text -> Map Text (Text, Maybe Text, Attr) -> Maybe Inlines -> Maybe Text -> Int -> [Text] -> [LogMessage] -> Bool -> ParserState

-- | User options
[stateOptions] :: ParserState -> ReaderOptions

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

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

-- | Allow parsing of links
[stateAllowLinks] :: ParserState -> Bool

-- | Allow parsing of line breaks
[stateAllowLineBreaks] :: ParserState -> Bool

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

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

-- | List of implicit header ref keys
[stateHeaderKeys] :: ParserState -> KeyTable

-- | List of substitution references
[stateSubstitutions] :: ParserState -> SubstTable

-- | List of notes (raw bodies)
[stateNotes] :: ParserState -> NoteTable

-- | List of notes (parsed bodies)
[stateNotes'] :: ParserState -> NoteTable'

-- | List of note references used
[stateNoteRefs] :: ParserState -> Set Text

-- | True if parsing note contents
[stateInNote] :: ParserState -> Bool

-- | Last note number for citations
[stateNoteNumber] :: ParserState -> Int

-- | Document metadata
[stateMeta] :: ParserState -> Meta

-- | Document metadata
[stateMeta'] :: ParserState -> Future ParserState Meta

-- | RST-style citations
[stateCitations] :: ParserState -> Map Text Text

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

-- | Header identifiers used
[stateIdentifiers] :: ParserState -> Set Text

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

-- | Map from example labels to numbers
[stateExamples] :: ParserState -> Map Text Int

-- | Table of macros defined so far
[stateMacros] :: ParserState -> Map Text Macro

-- | Current rST default interpreted text role
[stateRstDefaultRole] :: ParserState -> Text

-- | Current rST literal block language
[stateRstHighlight] :: ParserState -> Maybe Text

-- | Current rST cust text roles; Triple represents:) Base role 2) Optional
--   format (only for :raw: roles) 3) Addition classes (rest of Attr is
--   unused)).
[stateRstCustomRoles] :: ParserState -> Map Text (Text, Maybe Text, Attr)

-- | Caption in current environment
[stateCaption] :: ParserState -> Maybe Inlines

-- | Tag type of HTML block being parsed
[stateInHtmlBlock] :: ParserState -> Maybe Text

-- | Depth of fenced div
[stateFencedDivLevel] :: ParserState -> Int

-- | parent include files
[stateContainers] :: ParserState -> [Text]

-- | log messages
[stateLogMessages] :: ParserState -> [LogMessage]

-- | True if in markdown=1 context
[stateMarkdownAttribute] :: ParserState -> Bool
class HasReaderOptions st
extractReaderOptions :: HasReaderOptions st => st -> ReaderOptions
getOption :: forall s (m :: Type -> Type) t b. (HasReaderOptions st, Stream s m t) => (ReaderOptions -> b) -> ParsecT s st m b
class HasIdentifierList st
extractIdentifierList :: HasIdentifierList st => st -> Set Text
updateIdentifierList :: HasIdentifierList st => (Set Text -> Set Text) -> st -> st
class HasMacros st
extractMacros :: HasMacros st => st -> Map Text Macro
updateMacros :: HasMacros st => (Map Text Macro -> Map Text Macro) -> st -> st
class HasLogMessages st
addLogMessage :: HasLogMessages st => LogMessage -> st -> st
getLogMessages :: HasLogMessages st => st -> [LogMessage]
class HasLastStrPosition st
setLastStrPos :: HasLastStrPosition st => Maybe SourcePos -> st -> st
getLastStrPos :: HasLastStrPosition st => st -> Maybe SourcePos
class HasIncludeFiles st
getIncludeFiles :: HasIncludeFiles st => st -> [Text]
addIncludeFile :: HasIncludeFiles st => Text -> st -> st
dropLatestIncludeFile :: HasIncludeFiles st => st -> st
defaultParserState :: ParserState
data HeaderType

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

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

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

-- | Default state
NullState :: ParserContext
data QuoteContext

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

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

-- | Used when not parsing inside quotes
NoQuote :: QuoteContext
class HasQuoteContext st (m :: Type -> Type)
getQuoteContext :: (HasQuoteContext st m, Stream s m t) => ParsecT s st m QuoteContext
withQuoteContext :: HasQuoteContext st m => QuoteContext -> ParsecT s st m a -> ParsecT s st m a
type NoteTable = [(Text, Text)]
type NoteTable' = Map Text (SourcePos, Future ParserState Blocks)
type KeyTable = Map Key (Target, Attr)
type SubstTable = Map Key Blocks
newtype Key
Key :: Text -> Key
toKey :: Text -> Key

-- | Add header to the list of headers in state, together with its
--   associated identifier. If the identifier is null and the
--   auto_identifiers extension is set, generate a new unique identifier,
--   and update the list of identifiers in state. Issue a warning if an
--   explicit identifier is encountered that duplicates an earlier
--   identifier (explicit or automatically generated).
registerHeader :: forall s (m :: Type -> Type) a st. (Stream s m a, HasReaderOptions st, HasLogMessages st, HasIdentifierList st) => Attr -> Inlines -> ParsecT s st m Attr

-- | Parses various ASCII punctuation, quotes, and apostrophe in a smart
--   way, inferring their semantic meaning.
--   
--   Fails unless the <a>Ext_smart</a> extension has been enabled.
smartPunctuation :: forall st (m :: Type -> Type) s. (HasReaderOptions st, HasLastStrPosition st, HasQuoteContext st m, Stream s m Char, UpdateSourcePos s Char) => ParsecT s st m Inlines -> ParsecT s st m Inlines

-- | Succeeds if the parser is
--   
--   <ul>
--   <li>not within single quoted text;</li>
--   <li>not directly after a word; and</li>
--   <li>looking at an opening single quote char that's not followed by a
--   space.</li>
--   </ul>
--   
--   Gobbles the quote character on success.
singleQuoteStart :: forall st (m :: Type -> Type) s. (HasLastStrPosition st, HasQuoteContext st m, Stream s m Char, UpdateSourcePos s Char) => ParsecT s st m ()
singleQuoteEnd :: forall s (m :: Type -> Type) st. (Stream s m Char, UpdateSourcePos s Char) => ParsecT s st m ()

-- | Succeeds if the parser is
--   
--   <ul>
--   <li>not within a double quoted text;</li>
--   <li>not directly after a word; and</li>
--   <li>looking at an opening double quote char that's not followed by a
--   space.</li>
--   </ul>
--   
--   Gobbles the quote character on success.
doubleQuoteStart :: forall st (m :: Type -> Type) s. (HasLastStrPosition st, HasQuoteContext st m, Stream s m Char, UpdateSourcePos s Char) => ParsecT s st m ()

-- | Parses a closing quote character.
doubleQuoteEnd :: forall s (m :: Type -> Type) st. (Stream s m Char, UpdateSourcePos s Char) => ParsecT s st m ()

-- | Parses an ASCII apostrophe (<tt>'</tt>) or right single quotation mark
--   and returns a RIGHT SINGLE QUOtatiON MARK character.
apostrophe :: forall s (m :: Type -> Type) st. (Stream s m Char, UpdateSourcePos s Char) => ParsecT s st m Inlines

-- | Parses an ASCII quotation mark character and returns a RIGHT DOUBLE
--   QUOTATION MARK.
doubleCloseQuote :: forall s (m :: Type -> Type) st. (Stream s m Char, UpdateSourcePos s Char) => ParsecT s st m Inlines

-- | Parses three dots as HORIZONTAL ELLIPSIS.
ellipses :: forall s (m :: Type -> Type) st. (Stream s m Char, UpdateSourcePos s Char) => ParsecT s st m Inlines

-- | Parses two hyphens as EN DASH and three as EM DASH.
--   
--   If the extension <tt><a>Ext_old_dashes</a></tt> is enabled, then two
--   hyphens are parsed as EM DASH, and one hyphen is parsed as EN DASH if
--   it is followed by a digit.
dash :: forall st s (m :: Type -> Type). (HasReaderOptions st, Stream s m Char, UpdateSourcePos s Char) => ParsecT s st m Inlines
citeKey :: forall s (m :: Type -> Type) st. (Stream s m Char, UpdateSourcePos s Char, HasLastStrPosition st) => Bool -> ParsecT s st m (Bool, Text)
type Parsec s u = ParsecT s u Identity
data ParsecT s u (m :: Type -> Type) a

-- | Reader monad wrapping the parser state. This is used to possibly delay
--   evaluation until all relevant information has been parsed and made
--   available in the parser state.
newtype Future s a
Future :: Reader s a -> Future s a
[runDelayed] :: Future s a -> Reader s a

-- | Run a delayed action with the given state.
runF :: Future s a -> s -> a
askF :: Future s s
asksF :: (s -> a) -> Future s a
returnF :: Monad m => a -> m (Future s a)

-- | Remove whitespace from start and end; just like
--   <tt><a>trimInlines</a></tt>, but lifted into the <a>Future</a> type.
trimInlinesF :: Future s Inlines -> Future s Inlines
token :: forall s (m :: Type -> Type) t a st. Stream s m t => (t -> Text) -> (t -> SourcePos) -> (t -> Maybe a) -> ParsecT s st m a
(<+?>) :: forall a s st (m :: Type -> Type). Monoid a => ParsecT s st m a -> ParsecT s st m a -> ParsecT s st m a
infixr 5 <+?>
extractIdClass :: Attr -> Attr
insertIncludedFile :: forall (m :: Type -> Type) st a b. (PandocMonad m, HasIncludeFiles st) => ParsecT a st m b -> (Text -> a) -> [FilePath] -> FilePath -> Maybe Int -> Maybe Int -> ParsecT a st m b
class Monad m => Stream s (m :: Type -> Type) t | s -> t
uncons :: Stream s m t => s -> m (Maybe (t, s))
runParser :: Stream s Identity t => Parsec s u a -> u -> SourceName -> s -> Either ParseError a
runParserT :: Stream s m t => ParsecT s u m a -> u -> SourceName -> s -> m (Either ParseError a)
parse :: Stream s Identity t => Parsec s () a -> SourceName -> s -> Either ParseError a
tokenPrim :: forall s (m :: Type -> Type) t a u. Stream s m t => (t -> String) -> (SourcePos -> t -> s -> SourcePos) -> (t -> Maybe a) -> ParsecT s u m a
anyToken :: forall s (m :: Type -> Type) t u. (Stream s m t, Show t) => ParsecT s u m t
getInput :: forall (m :: Type -> Type) s u. Monad m => ParsecT s u m s
setInput :: forall (m :: Type -> Type) s u. Monad m => s -> ParsecT s u m ()
unexpected :: forall s (m :: Type -> Type) t u a. Stream s m t => String -> ParsecT s u m a
skipMany :: forall s u (m :: Type -> Type) a. ParsecT s u m a -> ParsecT s u m ()
skipMany1 :: forall s (m :: Type -> Type) t u a. Stream s m t => ParsecT s u m a -> ParsecT s u m ()
count :: forall s (m :: Type -> Type) t u a. Stream s m t => Int -> ParsecT s u m a -> ParsecT s u m [a]
eof :: forall s (m :: Type -> Type) t u. (Stream s m t, Show t) => ParsecT s u m ()
lookAhead :: forall s (m :: Type -> Type) t u a. Stream s m t => ParsecT s u m a -> ParsecT s u m a
notFollowedBy :: forall s (m :: Type -> Type) t a u. (Stream s m t, Show a) => ParsecT s u m a -> ParsecT s u m ()
many :: forall s u (m :: Type -> Type) a. ParsecT s u m a -> ParsecT s u m [a]
many1 :: forall s u (m :: Type -> Type) a. ParsecT s u m a -> ParsecT s u m [a]
manyTill :: forall s (m :: Type -> Type) t u a end. Stream s m t => ParsecT s u m a -> ParsecT s u m end -> ParsecT s u m [a]
(<|>) :: forall s u (m :: Type -> Type) a. ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
(<?>) :: forall s u (m :: Type -> Type) a. ParsecT s u m a -> String -> ParsecT s u m a
choice :: forall s (m :: Type -> Type) t u a. Stream s m t => [ParsecT s u m a] -> ParsecT s u m a
try :: forall s u (m :: Type -> Type) a. ParsecT s u m a -> ParsecT s u m a
sepBy :: forall s (m :: Type -> Type) t u a sep. Stream s m t => ParsecT s u m a -> ParsecT s u m sep -> ParsecT s u m [a]
sepBy1 :: forall s (m :: Type -> Type) t u a sep. Stream s m t => ParsecT s u m a -> ParsecT s u m sep -> ParsecT s u m [a]
sepEndBy :: forall s (m :: Type -> Type) t u a sep. Stream s m t => ParsecT s u m a -> ParsecT s u m sep -> ParsecT s u m [a]
sepEndBy1 :: forall s (m :: Type -> Type) t u a sep. Stream s m t => ParsecT s u m a -> ParsecT s u m sep -> ParsecT s u m [a]
endBy :: forall s (m :: Type -> Type) t u a sep. Stream s m t => ParsecT s u m a -> ParsecT s u m sep -> ParsecT s u m [a]
endBy1 :: forall s (m :: Type -> Type) t u a sep. Stream s m t => ParsecT s u m a -> ParsecT s u m sep -> ParsecT s u m [a]
option :: forall s (m :: Type -> Type) t a u. Stream s m t => a -> ParsecT s u m a -> ParsecT s u m a
optional :: forall s (m :: Type -> Type) t u a. Stream s m t => ParsecT s u m a -> ParsecT s u m ()
optionMaybe :: forall s (m :: Type -> Type) t u a. Stream s m t => ParsecT s u m a -> ParsecT s u m (Maybe a)
getState :: forall (m :: Type -> Type) s u. Monad m => ParsecT s u m u
setState :: forall (m :: Type -> Type) u s. Monad m => u -> ParsecT s u m ()
updateState :: forall (m :: Type -> Type) u s. Monad m => (u -> u) -> ParsecT s u m ()
data SourcePos
type SourceName = String
updatePosString :: SourcePos -> String -> SourcePos
getPosition :: forall (m :: Type -> Type) s u. Monad m => ParsecT s u m SourcePos
setPosition :: forall (m :: Type -> Type) s u. Monad m => SourcePos -> ParsecT s u m ()
sourceName :: SourcePos -> SourceName
setSourceName :: SourcePos -> SourceName -> SourcePos
sourceColumn :: SourcePos -> Column
sourceLine :: SourcePos -> Line
setSourceColumn :: SourcePos -> Column -> SourcePos
setSourceLine :: SourcePos -> Line -> SourcePos
incSourceColumn :: SourcePos -> Column -> SourcePos
incSourceLine :: SourcePos -> Line -> SourcePos
newPos :: SourceName -> Line -> Column -> SourcePos
initialPos :: SourceName -> SourcePos
type Line = Int
type Column = Int
data ParseError
errorMessages :: ParseError -> [Message]
messageString :: Message -> String


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

-- | Convert HTML into self-contained HTML, incorporating images, scripts,
--   and CSS using data: URIs.
makeSelfContained :: PandocMonad m => Text -> m Text
instance GHC.Internal.Show.Show Text.Pandoc.SelfContained.ConvertState
instance GHC.Internal.Show.Show Text.Pandoc.SelfContained.GetDataResult


-- | Conversion of vimwiki text to <a>Pandoc</a> document.
module Text.Pandoc.Readers.Vimwiki
readVimwiki :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc


-- | Reads and evaluates a Typst document as a Pandoc AST.
module Text.Pandoc.Readers.Typst

-- | Read Typst from an input string and return a Pandoc document.
readTypst :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc
instance GHC.Classes.Eq Text.Pandoc.Readers.Typst.TableSection
instance GHC.Classes.Ord Text.Pandoc.Readers.Typst.TableSection
instance GHC.Internal.Show.Show Text.Pandoc.Readers.Typst.TableData
instance GHC.Internal.Show.Show Text.Pandoc.Readers.Typst.TableSection


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

-- | Read Txt2Tags from an input string returning a Pandoc document
readTxt2Tags :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc

-- | Get the meta information required by Txt2Tags macros
getT2TMeta :: PandocMonad m => m T2TMeta

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

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

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

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

-- | Output file
[outfile] :: T2TMeta -> FilePath
instance Data.Default.Internal.Default Text.Pandoc.Readers.Txt2Tags.T2TMeta
instance GHC.Internal.Show.Show Text.Pandoc.Readers.Txt2Tags.T2TMeta


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

-- | Read TikiWiki from an input string and return a Pandoc document.
readTikiWiki :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc
instance GHC.Classes.Eq Text.Pandoc.Readers.TikiWiki.ListNesting
instance GHC.Classes.Eq Text.Pandoc.Readers.TikiWiki.ListType
instance GHC.Classes.Ord Text.Pandoc.Readers.TikiWiki.ListNesting
instance GHC.Classes.Ord Text.Pandoc.Readers.TikiWiki.ListType
instance GHC.Internal.Show.Show Text.Pandoc.Readers.TikiWiki.ListNesting
instance GHC.Internal.Show.Show Text.Pandoc.Readers.TikiWiki.ListType


-- | Conversion of RTF documents <a>Pandoc</a> document. We target version
--   1.5 of the RTF spec.
module Text.Pandoc.Readers.RTF

-- | Read RTF from an input string and return a Pandoc document.
readRTF :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc
instance Data.Default.Internal.Default Text.Pandoc.Readers.RTF.Pict
instance Data.Default.Internal.Default Text.Pandoc.Readers.RTF.Properties
instance Data.Default.Internal.Default Text.Pandoc.Readers.RTF.RTFState
instance GHC.Classes.Eq Text.Pandoc.Readers.RTF.CharSet
instance GHC.Classes.Eq Text.Pandoc.Readers.RTF.FontFamily
instance GHC.Classes.Eq Text.Pandoc.Readers.RTF.List
instance GHC.Classes.Eq Text.Pandoc.Readers.RTF.ListType
instance GHC.Classes.Eq Text.Pandoc.Readers.RTF.Pict
instance GHC.Classes.Eq Text.Pandoc.Readers.RTF.PictType
instance GHC.Classes.Eq Text.Pandoc.Readers.RTF.Properties
instance GHC.Classes.Eq Text.Pandoc.Readers.RTF.Style
instance GHC.Classes.Eq Text.Pandoc.Readers.RTF.StyleType
instance GHC.Classes.Eq Text.Pandoc.Readers.RTF.TableRow
instance GHC.Classes.Eq Text.Pandoc.Readers.RTF.Tok
instance GHC.Classes.Eq Text.Pandoc.Readers.RTF.TokContents
instance GHC.Internal.Show.Show Text.Pandoc.Readers.RTF.CharSet
instance GHC.Internal.Show.Show Text.Pandoc.Readers.RTF.FontFamily
instance GHC.Internal.Show.Show Text.Pandoc.Readers.RTF.List
instance GHC.Internal.Show.Show Text.Pandoc.Readers.RTF.ListType
instance GHC.Internal.Show.Show Text.Pandoc.Readers.RTF.Pict
instance GHC.Internal.Show.Show Text.Pandoc.Readers.RTF.PictType
instance GHC.Internal.Show.Show Text.Pandoc.Readers.RTF.Properties
instance GHC.Internal.Show.Show Text.Pandoc.Readers.RTF.RTFState
instance GHC.Internal.Show.Show Text.Pandoc.Readers.RTF.Style
instance GHC.Internal.Show.Show Text.Pandoc.Readers.RTF.StyleType
instance GHC.Internal.Show.Show Text.Pandoc.Readers.RTF.TableRow
instance GHC.Internal.Show.Show Text.Pandoc.Readers.RTF.Tok
instance GHC.Internal.Show.Show Text.Pandoc.Readers.RTF.TokContents


-- | Parses RIS bibliographies into a Pandoc document with empty body and
--   <tt>references</tt> and <tt>nocite</tt> fields in the metadata. A
--   wildcard <tt>nocite</tt> is used so that if the document is rendered
--   in another format, the entire bibliography will be printed.
module Text.Pandoc.Readers.RIS

-- | Read RIS from an input string and return a Pandoc document. The
--   document will have only metadata, with an empty body. The metadata
--   will contain a <tt>references</tt> field with the bibliography
--   entries, and a <tt>nocite</tt> field with the wildcard `[@*]`.
readRIS :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc


-- | Conversion of Pod to <a>Pandoc</a> documents
module Text.Pandoc.Readers.Pod
readPod :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc
instance Data.Default.Internal.Default Text.Pandoc.Readers.Pod.PodState
instance Text.Pandoc.Parsing.Capabilities.HasIdentifierList Text.Pandoc.Readers.Pod.PodState
instance Text.Pandoc.Parsing.Capabilities.HasLogMessages Text.Pandoc.Readers.Pod.PodState
instance Text.Pandoc.Parsing.Capabilities.HasReaderOptions Text.Pandoc.Readers.Pod.PodState
instance GHC.Internal.Show.Show Text.Pandoc.Readers.Pod.PodLinkDestination
instance GHC.Internal.Show.Show Text.Pandoc.Readers.Pod.PodState


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

-- | Read Muse from an input string and return a Pandoc document.
readMuse :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc
instance Data.Default.Internal.Default Text.Pandoc.Readers.Muse.MuseEnv
instance Data.Default.Internal.Default Text.Pandoc.Readers.Muse.MuseState
instance Text.Pandoc.Parsing.Capabilities.HasIdentifierList Text.Pandoc.Readers.Muse.MuseState
instance Text.Pandoc.Parsing.Capabilities.HasLastStrPosition Text.Pandoc.Readers.Muse.MuseState
instance Text.Pandoc.Parsing.Capabilities.HasLogMessages Text.Pandoc.Readers.Muse.MuseState
instance Text.Pandoc.Parsing.Capabilities.HasReaderOptions Text.Pandoc.Readers.Muse.MuseState


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

-- | Read mdoc from an input string and return a Pandoc document.
readMdoc :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc
instance Data.Default.Internal.Default Text.Pandoc.Readers.Mdoc.MdocState
instance Data.Default.Internal.Default Text.Pandoc.Readers.Mdoc.SpacifyState
instance GHC.Internal.Enum.Enum Text.Pandoc.Readers.Mdoc.ReferenceField
instance GHC.Classes.Eq Text.Pandoc.Readers.Mdoc.MdocSection
instance GHC.Classes.Eq Text.Pandoc.Readers.Mdoc.ReferenceField
instance Text.Pandoc.Parsing.Capabilities.HasLogMessages Text.Pandoc.Readers.Mdoc.MdocState
instance GHC.Classes.Ord Text.Pandoc.Readers.Mdoc.ReferenceField
instance GHC.Internal.Show.Show Text.Pandoc.Readers.Mdoc.MdocSection
instance GHC.Internal.Show.Show Text.Pandoc.Readers.Mdoc.MdocState
instance GHC.Internal.Show.Show Text.Pandoc.Readers.Mdoc.ReferenceField


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

-- | Read man (troff) from an input string and return a Pandoc document.
readMan :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc
instance Data.Default.Internal.Default Text.Pandoc.Readers.Man.ManState
instance GHC.Internal.Show.Show Text.Pandoc.Readers.Man.ManState


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

-- | Parse LaTeX from string and return <a>Pandoc</a> document.
readLaTeX :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc
applyMacros :: forall (m :: Type -> Type) s. (PandocMonad m, HasMacros s, HasReaderOptions s) => Text -> ParsecT Sources s m Text
rawLaTeXInline :: forall (m :: Type -> Type) s. (PandocMonad m, HasMacros s, HasReaderOptions s) => ParsecT Sources s m Text
rawLaTeXBlock :: forall (m :: Type -> Type) s. (PandocMonad m, HasMacros s, HasReaderOptions s) => ParsecT Sources s m Text
inlineCommand :: forall (m :: Type -> Type). PandocMonad m => ParsecT Sources ParserState m Inlines


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

-- | Parse org-mode string and return a Pandoc document.
readOrg :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc


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

-- | Read DokuWiki from an input string and return a Pandoc document.
readDokuWiki :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc


-- | Conversion of Docx type (defined in Text.Pandoc.Readers.Docx.Parse) to
--   <a>Pandoc</a> document.
module Text.Pandoc.Readers.Docx
readDocx :: PandocMonad m => ReaderOptions -> ByteString -> m Pandoc
instance Data.Default.Internal.Default Text.Pandoc.Readers.Docx.DEnv
instance Data.Default.Internal.Default Text.Pandoc.Readers.Docx.DState


-- | Conversion of creole text to <a>Pandoc</a> document.
module Text.Pandoc.Readers.Creole

-- | Read creole from an input string and return a Pandoc document.
readCreole :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc


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

-- | Parse a CommonMark formatted string into a <a>Pandoc</a> structure.
readCommonMark :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc


-- | Handling of format specifiers for input and output.
module Text.Pandoc.Format

-- | Format specifier with the format's name and the lists of extensions to
--   be enabled or disabled.
data FlavoredFormat
FlavoredFormat :: Text -> ExtensionsDiff -> FlavoredFormat
[formatName] :: FlavoredFormat -> Text
[formatExtsDiff] :: FlavoredFormat -> ExtensionsDiff

-- | Describes the properties of a format.
data ExtensionsConfig
ExtensionsConfig :: Extensions -> Extensions -> ExtensionsConfig

-- | Extensions enabled by default
[extsDefault] :: ExtensionsConfig -> Extensions

-- | Extensions that can be enabled or disabled.
[extsSupported] :: ExtensionsConfig -> Extensions

-- | Changes to a set of extensions, i.e., list of extensions to be enabled
--   or disabled.
data ExtensionsDiff
ExtensionsDiff :: Extensions -> Extensions -> ExtensionsDiff
[extsToEnable] :: ExtensionsDiff -> Extensions
[extsToDisable] :: ExtensionsDiff -> Extensions

-- | Calculate the change set to get from one set of extensions to another.
diffExtensions :: Extensions -> Extensions -> ExtensionsDiff

-- | Parse a format-specifying string into a markup format and the change
--   set to the format's extensions. Throws an error if the spec cannot be
--   parsed or contains an unknown extension.
parseFlavoredFormat :: PandocMonad m => Text -> m FlavoredFormat

-- | Apply the extension changes in the format spec to the extensions given
--   in the format's extensions configuration. Throws an error in case of
--   an unknown or unsupported extension.
applyExtensionsDiff :: PandocMonad m => ExtensionsConfig -> FlavoredFormat -> m Extensions

-- | Returns the extensions configuration of a format.
getExtensionsConfig :: Text -> ExtensionsConfig

-- | Determines default format based on file extensions; uses the format of
--   the first extension that's associated with a format.
--   
--   Examples:
--   
--   <pre>
--   formatFromFilePaths ["text.unknown", "no-extension"]
--   </pre>
--   
--   Nothing
--   
--   <pre>
--   formatFromFilePaths ["my.md", "other.rst"]
--   </pre>
--   
--   Just "markdown"
formatFromFilePaths :: [FilePath] -> Maybe FlavoredFormat
instance GHC.Internal.Base.Monoid Text.Pandoc.Format.ExtensionsConfig
instance GHC.Internal.Base.Monoid Text.Pandoc.Format.ExtensionsDiff
instance GHC.Internal.Base.Semigroup Text.Pandoc.Format.ExtensionsConfig
instance GHC.Internal.Base.Semigroup Text.Pandoc.Format.ExtensionsDiff
instance GHC.Internal.Show.Show Text.Pandoc.Format.ExtensionsConfig
instance GHC.Internal.Show.Show Text.Pandoc.Format.ExtensionsDiff
instance GHC.Internal.Show.Show Text.Pandoc.Format.FlavoredFormat


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

-- | Parse reStructuredText string and return Pandoc document.
readRST :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc
instance GHC.Internal.Show.Show Text.Pandoc.Readers.RST.ParseCiteState


-- | Conversion from CSV or TSV to a <a>Pandoc</a> table.
module Text.Pandoc.Readers.CSV
readCSV :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc
readTSV :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc


-- | Shared utility functions for pandoc writers.
module Text.Pandoc.Writers.Shared

-- | Create template Context from a <a>Meta</a> and an association list of
--   variables, specified at the command line or in the writer. Variables
--   overwrite metadata fields with the same names. If multiple variables
--   are set with the same name, a list is assigned. Does nothing if
--   <a>writerTemplate</a> is Nothing.
metaToContext :: (Monad m, TemplateTarget a) => WriterOptions -> ([Block] -> m (Doc a)) -> ([Inline] -> m (Doc a)) -> Meta -> m (Context a)

-- | Like 'metaToContext, but does not include variables and is not
--   sensitive to <a>writerTemplate</a>.
metaToContext' :: (Monad m, TemplateTarget a) => ([Block] -> m (Doc a)) -> ([Inline] -> m (Doc a)) -> Meta -> m (Context a)

-- | Add variables to a template Context, using monoidal append. Also add
--   `meta-json`. Note that metadata values are used in template contexts
--   only when like-named variables aren't set.
addVariablesToContext :: TemplateTarget a => WriterOptions -> Context a -> Context a

-- | Retrieve a field value from a template context.
getField :: FromContext a b => Text -> Context a -> Maybe b

-- | Set a field of a template context. If the field already has a value,
--   convert it into a list with the new value appended to the old
--   value(s). This is a utility function to be used in preparing template
--   contexts.
setField :: ToContext a b => Text -> b -> Context a -> Context a

-- | Reset a field of a template context. If the field already has a value,
--   the new value replaces it. This is a utility function to be used in
--   preparing template contexts.
resetField :: ToContext a b => Text -> b -> Context a -> Context a

-- | Set a field of a template context if it currently has no value. If it
--   has a value, do nothing. This is a utility function to be used in
--   preparing template contexts.
defField :: ToContext a b => Text -> b -> Context a -> Context a

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

-- | Produce an HTML tag with the given pandoc attributes.
tagWithAttrs :: HasChars a => a -> Attr -> Doc a

-- | Adds a key-value pair to the <tt>style</tt> attribute.
htmlAddStyle :: (Text, Text) -> [(Text, Text)] -> [(Text, Text)]

-- | Get the html representation of an alignment key
htmlAlignmentToString :: Alignment -> Maybe Text

-- | Produce HTML for the given pandoc attributes, to be used in HTML tags
htmlAttrs :: HasChars a => Attr -> Doc a

-- | Returns <a>True</a> iff the argument is an inline <a>Math</a> element
--   of type <a>DisplayMath</a>.
isDisplayMath :: Inline -> Bool

-- | Put display math in its own block (for ODT/DOCX).
fixDisplayMath :: Block -> Block

-- | Converts a Unicode character into the ASCII sequence used to represent
--   the character in "smart" Markdown.
unsmartify :: WriterOptions -> Text -> Text

-- | Writes a grid table.
gridTable :: Monad m => WriterOptions -> (WriterOptions -> [Block] -> m (Doc Text)) -> [ColSpec] -> TableHead -> [TableBody] -> TableFoot -> m (Doc Text)

-- | Retrieve the metadata value for a given <tt>key</tt> and convert to
--   Bool.
lookupMetaBool :: Text -> Meta -> Bool

-- | Retrieve the metadata value for a given <tt>key</tt> and extract
--   blocks.
--   
--   Note that an empty list is returned for maps, lists, and booleans.
lookupMetaBlocks :: Text -> Meta -> [Block]

-- | Retrieve the metadata value for a given <tt>key</tt> and extract
--   inlines.
--   
--   Note that an empty list is returned for maps and lists.
lookupMetaInlines :: Text -> Meta -> [Inline]

-- | Retrieve the metadata value for a given <tt>key</tt> and convert to
--   String.
--   
--   Note that an empty list is returned for maps, lists, and booleans.
lookupMetaString :: Text -> Meta -> Text

-- | Remove leading and trailing <a>Space</a> and <a>SoftBreak</a>
--   elements.
stripLeadingTrailingSpace :: [Inline] -> [Inline]

-- | Tries to convert a character into a unicode subscript version of the
--   character.
toSubscript :: Char -> Maybe Char

-- | Tries to convert a character into a unicode superscript version of the
--   character.
toSuperscript :: Char -> Maybe Char
toSubscriptInline :: Inline -> Maybe Inline
toSuperscriptInline :: Inline -> Maybe Inline

-- | Construct table of contents (as a bullet list) from document body.
toTableOfContents :: WriterOptions -> [Block] -> Block

-- | Returns <a>True</a> iff the list of blocks has a <tt><a>Plain</a></tt>
--   as its last element.
endsWithPlain :: [Block] -> Bool

-- | Convert the relevant components of a new-style table (with block
--   caption, row headers, row and column spans, and so on) to those of an
--   old-style table (inline caption, table head with one row, no foot, and
--   so on). Cells with a <a>RowSpan</a> and <a>ColSpan</a> of <tt>(h,
--   w)</tt> will be cut up into <tt>h * w</tt> cells of dimension <tt>(1,
--   1)</tt>, with the content placed in the upper-left corner.
toLegacyTable :: Caption -> [ColSpec] -> TableHead -> [TableBody] -> TableFoot -> ([Inline], [Alignment], [Double], [[Block]], [[[Block]]])
splitSentences :: Doc Text -> Doc Text

-- | Ensure that all identifiers start with a letter, and modify internal
--   links accordingly. (Yes, XML allows an underscore, but HTML 4 doesn't,
--   so we are more conservative.)
ensureValidXmlIdentifiers :: Pandoc -> Pandoc

-- | Convert links to spans; most useful when writing elements that must
--   not contain links, e.g. to avoid nested links.
removeLinks :: [Inline] -> [Inline]

-- | Set translations based on the <tt>lang</tt> in metadata.
setupTranslations :: PandocMonad m => Meta -> m ()
isOrderedListMarker :: Text -> Bool
toTaskListItem :: MonadPlus m => [Block] -> m (Bool, [Block])

-- | Add an opener and closer to a Doc. If the Doc begins or ends with
--   whitespace, export this outside the opener or closer. This is used for
--   formats, like Markdown, which don't allow spaces after opening or
--   before closing delimiters.
delimited :: Doc Text -> Doc Text -> Doc Text -> Doc Text

-- | Determine whether all rows and their cells are empty.
allRowsEmpty :: [Row] -> Bool

-- | Concatenates the header and body Rows of a List of TableBody into a
--   flat List of Rows.
tableBodiesToRows :: [TableBody] -> [Row]

-- | Insert the current span information of a table cell to keep track of
--   it in subsequent rows.
--   
--   If <a>RowSpan</a> <tt>&gt; 1</tt>, the current span information will
--   be inserted. Otherwise the previous span information will be left
--   unchanged.
--   
--   Use <a>takePreviousSpansAtColumn</a> to take previous span information
--   at subsequent rows. Use <a>decrementTrailingRowSpans</a> to handle
--   previous trailing spans at the end of a row.
--   
--   For writers that need to manually apply the <a>RowSpan</a> of cells
--   over multiple rows or otherwise have to keep track of it.
insertCurrentSpansAtColumn :: Int -> Map Int (RowSpan, ColSpan) -> RowSpan -> ColSpan -> Map Int (RowSpan, ColSpan)

-- | Take previous span information at a column position that was added
--   with <a>insertCurrentSpansAtColumn</a> if available.
--   
--   If the previous <a>RowSpan</a> <tt>&gt;= 1</tt>, this will return
--   <a>Just</a> the previous <a>ColSpan</a> and an adjusted span
--   information where that <a>RowSpan</a> is either decremented or deleted
--   if it would fall to 0. Otherwise this will return <a>Nothing</a>.
takePreviousSpansAtColumn :: Int -> Map Int (RowSpan, ColSpan) -> Maybe (ColSpan, Map Int (RowSpan, ColSpan))

-- | Decrement all previously tracked trailing <a>RowSpan</a> elements at
--   or after a column position.
--   
--   For handling previous row spans that are next to the end of a row's
--   cells that were previously added with
--   <a>insertCurrentSpansAtColumn</a>.
decrementTrailingRowSpans :: Int -> Map Int (RowSpan, ColSpan) -> Map Int (RowSpan, ColSpan)
instance GHC.Classes.Eq Text.Pandoc.Writers.Shared.LineStyle
instance GHC.Classes.Ord Text.Pandoc.Writers.Shared.LineStyle
instance GHC.Internal.Show.Show Text.Pandoc.Writers.Shared.LineStyle
instance GHC.Internal.Show.Show a => GHC.Internal.Show.Show (Text.Pandoc.Writers.Shared.RenderedCell a)


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

-- | Convert Pandoc to ZimWiki.
writeZimWiki :: PandocMonad m => WriterOptions -> Pandoc -> m Text
instance Data.Default.Internal.Default Text.Pandoc.Writers.ZimWiki.WriterState

module Text.Pandoc.Writers.Vimdoc
writeVimdoc :: PandocMonad m => WriterOptions -> Pandoc -> m Text
instance Data.Default.Internal.Default Text.Pandoc.Writers.Vimdoc.WriterState


-- | Conversion of <a>Pandoc</a> format into Typst markup
--   (<a>https://typst.app</a>).
module Text.Pandoc.Writers.Typst

-- | Convert Pandoc to Typst.
writeTypst :: PandocMonad m => WriterOptions -> Pandoc -> m Text
instance GHC.Classes.Eq Text.Pandoc.Writers.Typst.EscapeContext
instance GHC.Classes.Eq Text.Pandoc.Writers.Typst.LabelType
instance GHC.Internal.Show.Show Text.Pandoc.Writers.Typst.EscapeContext
instance GHC.Internal.Show.Show Text.Pandoc.Writers.Typst.LabelType


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

-- | Convert Pandoc to Textile.
writeTextile :: PandocMonad m => WriterOptions -> Pandoc -> m Text


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

-- | Convert Pandoc to Texinfo.
writeTexinfo :: PandocMonad m => WriterOptions -> Pandoc -> m Text
instance GHC.Classes.Eq Text.Pandoc.Writers.Texinfo.Context
instance GHC.Internal.Show.Show Text.Pandoc.Writers.Texinfo.Context


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

-- | Convert Pandoc document to string in TEI XML format.
writeTEI :: PandocMonad m => WriterOptions -> Pandoc -> m Text


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

-- | Convert Pandoc to a string in rich text format.
writeRTF :: PandocMonad m => WriterOptions -> Pandoc -> m Text


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

-- | Convert Pandoc to RST.
writeRST :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Flattens nested inlines. Extracts nested inlines and goes through them
--   either collapsing them in the outer inline container or pulling them
--   out of it
flatten :: Inline -> [Inline]


-- | Conversion of <a>Pandoc</a> documents to powerpoint (pptx).
module Text.Pandoc.Writers.Powerpoint
writePowerpoint :: PandocMonad m => WriterOptions -> Pandoc -> m ByteString


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

-- | Convert Pandoc to Org.
writeOrg :: PandocMonad m => WriterOptions -> Pandoc -> m Text
instance GHC.Internal.Show.Show Text.Pandoc.Writers.Org.DivBlockType


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

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


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

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


-- | Conversion of <a>Pandoc</a> documents to Muse.
--   
--   This module is mostly intended for <a>Amusewiki</a> markup support, as
--   described by <a>Text::Amuse markup manual</a>. Original <a>Emacs
--   Muse</a> markup support is a secondary goal.
--   
--   Where Text::Amuse markup <a>differs</a> from <a>Emacs Muse markup</a>,
--   Text::Amuse markup is supported. For example, native tables are always
--   used instead of Org Mode tables. However, <tt>&lt;literal
--   style="html"&gt;</tt> tag is used for HTML raw blocks even though it
--   is supported only in Emacs Muse.
module Text.Pandoc.Writers.Muse

-- | Convert Pandoc to Muse.
writeMuse :: PandocMonad m => WriterOptions -> Pandoc -> m Text
instance Data.Default.Internal.Default Text.Pandoc.Writers.Muse.WriterState


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

-- | Convert Pandoc to MediaWiki.
writeMediaWiki :: PandocMonad m => WriterOptions -> Pandoc -> m Text
highlightingLangs :: Set Text


-- | Conversion of <a>Pandoc</a> documents to XWiki markup.
--   
--   XWiki: <a>http://www.xwiki.org/</a> XWiki Syntax:
--   <a>http://www.xwiki.org/xwiki/bin/view/Documentation/UserGuide/Features/XWikiSyntax/</a>
module Text.Pandoc.Writers.XWiki

-- | Convert Pandoc to XWiki.
writeXWiki :: PandocMonad m => WriterOptions -> Pandoc -> m Text


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

-- | Convert Pandoc to Man.
writeMan :: PandocMonad m => WriterOptions -> Pandoc -> m Text


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

-- | Convert Pandoc to LaTeX.
writeLaTeX :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert Pandoc to LaTeX Beamer.
writeBeamer :: PandocMonad m => WriterOptions -> Pandoc -> m Text


-- | Parses BibTeX or BibLaTeX bibliographies into a Pandoc document with
--   empty body and <tt>references</tt> and <tt>nocite</tt> fields in the
--   metadata. A wildcard <tt>nocite</tt> is used so that if the document
--   is rendered in another format, the entire bibliography will be
--   printed.
module Text.Pandoc.Readers.BibTeX

-- | Read BibTeX from an input string and return a Pandoc document. The
--   document will have only metadata, with an empty body. The metadata
--   will contain a <tt>references</tt> field with the bibliography
--   entries, and a <tt>nocite</tt> field with the wildcard `[@*]`.
readBibTeX :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc

-- | Read BibLaTeX from an input string and return a Pandoc document. The
--   document will have only metadata, with an empty body. The metadata
--   will contain a <tt>references</tt> field with the bibliography
--   entries, and a <tt>nocite</tt> field with the wildcard `[@*]`.
readBibLaTeX :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc


-- | Conversion of <a>Pandoc</a> documents to Jira markup.
--   
--   JIRA:
--   <a>https://jira.atlassian.com/secure/WikiRendererHelpAction.jspa?section=all</a>
module Text.Pandoc.Writers.Jira

-- | Convert Pandoc to Jira.
writeJira :: PandocMonad m => WriterOptions -> Pandoc -> m Text


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

-- | Convert Pandoc document to string in ICML format.
writeICML :: PandocMonad m => WriterOptions -> Pandoc -> m Text


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

-- | Convert Pandoc to Haddock.
writeHaddock :: PandocMonad m => WriterOptions -> Pandoc -> m Text
instance Data.Default.Internal.Default Text.Pandoc.Writers.Haddock.WriterState


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

-- | Convert Pandoc document to Html 4 structure.
writeHtml4 :: PandocMonad m => WriterOptions -> Pandoc -> m Html

-- | Convert Pandoc document to Html 4 string.
writeHtml4String :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert Pandoc document to Html 5 structure.
writeHtml5 :: PandocMonad m => WriterOptions -> Pandoc -> m Html

-- | Convert Pandoc document to Html 5 string.
writeHtml5String :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert Pandoc document to Html appropriate for an epub version.
writeHtmlStringForEPUB :: PandocMonad m => EPUBVersion -> WriterOptions -> Pandoc -> m Text

-- | Convert Pandoc document to S5 HTML slide show.
writeS5 :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert Pandoc document to Slidy HTML slide show.
writeSlidy :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert Pandoc document to Slideous HTML slide show.
writeSlideous :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert Pandoc document to DZSlides HTML slide show.
writeDZSlides :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert Pandoc document to Reveal JS HTML slide show.
writeRevealJs :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Create HTML tag with attributes.
tagWithAttributes :: WriterOptions -> Bool -> Bool -> Text -> Attr -> Text
instance GHC.Classes.Eq Text.Pandoc.Writers.HTML.TablePart


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

-- | Convert Pandoc to Markdown.
writeMarkdown :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert Pandoc to Commonmark.
writeCommonMark :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert Pandoc to Markua.
writeMarkua :: PandocMonad m => WriterOptions -> Pandoc -> m Text

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


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

-- | Convert Pandoc document to string in OPML format.
writeOPML :: PandocMonad m => WriterOptions -> Pandoc -> m Text


-- | Conversion of <a>Pandoc</a> documents to roff ms format.
--   
--   TODO:
--   
--   <ul>
--   <li><i> </i> use base URL to construct absolute URLs from relative
--   ones for external links</li>
--   <li><i> </i> is there a better way to do strikeout?</li>
--   <li><i> </i> tight/loose list distinction</li>
--   </ul>
module Text.Pandoc.Writers.Ms

-- | Convert Pandoc to Ms.
writeMs :: PandocMonad m => WriterOptions -> Pandoc -> m Text


-- | Ipynb (Jupyter notebook JSON format) writer for pandoc.
module Text.Pandoc.Writers.Ipynb
writeIpynb :: PandocMonad m => WriterOptions -> Pandoc -> m Text


-- | Conversion of <tt>Pandoc</tt> documents to CommonMark.
--   
--   CommonMark: <a>http://commonmark.org</a>
module Text.Pandoc.Writers.CommonMark

-- | Convert Pandoc to Commonmark.
writeCommonMark :: PandocMonad m => WriterOptions -> Pandoc -> m Text


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

-- | Produce an FB2 document from a <a>Pandoc</a> document.
writeFB2 :: PandocMonad m => WriterOptions -> Pandoc -> m Text
instance GHC.Classes.Eq Text.Pandoc.Writers.FB2.ImageMode
instance GHC.Internal.Show.Show Text.Pandoc.Writers.FB2.FbRenderState
instance GHC.Internal.Show.Show Text.Pandoc.Writers.FB2.ImageMode


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

-- | Produce an EPUB2 file from a Pandoc document.
writeEPUB2 :: PandocMonad m => WriterOptions -> Pandoc -> m ByteString

-- | Produce an EPUB3 file from a Pandoc document.
writeEPUB3 :: PandocMonad m => WriterOptions -> Pandoc -> m ByteString
instance GHC.Internal.Show.Show Text.Pandoc.Writers.EPUB.Chapter
instance GHC.Internal.Show.Show Text.Pandoc.Writers.EPUB.Creator
instance GHC.Internal.Show.Show Text.Pandoc.Writers.EPUB.Date
instance GHC.Internal.Show.Show Text.Pandoc.Writers.EPUB.EPUBMetadata
instance GHC.Internal.Show.Show Text.Pandoc.Writers.EPUB.Identifier
instance GHC.Internal.Show.Show Text.Pandoc.Writers.EPUB.ProgressionDirection
instance GHC.Internal.Show.Show Text.Pandoc.Writers.EPUB.Subject
instance GHC.Internal.Show.Show Text.Pandoc.Writers.EPUB.Title


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

-- | Convert Pandoc to DokuWiki.
writeDokuWiki :: PandocMonad m => WriterOptions -> Pandoc -> m Text
instance Data.Default.Internal.Default Text.Pandoc.Writers.DokuWiki.WriterEnvironment
instance Data.Default.Internal.Default Text.Pandoc.Writers.DokuWiki.WriterState


-- | Conversion of <a>Pandoc</a> documents to docx.
module Text.Pandoc.Writers.Docx
writeDocx :: PandocMonad m => WriterOptions -> Pandoc -> m ByteString


-- | Conversion of <a>Pandoc</a> documents to DocBook XML.
module Text.Pandoc.Writers.DocBook
writeDocBook4 :: PandocMonad m => WriterOptions -> Pandoc -> m Text
writeDocBook5 :: PandocMonad m => WriterOptions -> Pandoc -> m Text
instance GHC.Classes.Eq Text.Pandoc.Writers.DocBook.DocBookVersion
instance GHC.Internal.Show.Show Text.Pandoc.Writers.DocBook.DocBookVersion


-- | Conversion of <a>Pandoc</a> format into Djot markup
--   (<a>https://djot.net</a>).
module Text.Pandoc.Writers.Djot

-- | Convert Pandoc to Djot.
writeDjot :: PandocMonad m => WriterOptions -> Pandoc -> m Text


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

-- | Convert Pandoc to ConTeXt.
writeConTeXt :: PandocMonad m => WriterOptions -> Pandoc -> m Text
instance GHC.Classes.Eq Text.Pandoc.Writers.ConTeXt.Tabl
instance GHC.Classes.Eq Text.Pandoc.Writers.ConTeXt.TablePart
instance GHC.Internal.Show.Show Text.Pandoc.Writers.ConTeXt.Tabl


-- | Conversion of <a>Pandoc</a> documents to "chunked" HTML (a folder of
--   linked HTML documents, split by sections.
module Text.Pandoc.Writers.ChunkedHTML

-- | Splits document into HTML chunks, dividing them by section, and
--   returns a zip archive of a folder of files.
writeChunkedHTML :: PandocMonad m => WriterOptions -> Pandoc -> m ByteString


-- | Writes a BibTeX or BibLaTeX bibliographies based on the
--   <tt>references</tt> metadata in a Pandoc document.
module Text.Pandoc.Writers.BibTeX

-- | Write BibTeX based on the references metadata from a Pandoc document.
writeBibTeX :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Write BibLaTeX based on the references metadata from a Pandoc
--   document.
writeBibLaTeX :: PandocMonad m => WriterOptions -> Pandoc -> m Text


-- | Conversion of <a>Pandoc</a> documents to various BBCode flavors.
module Text.Pandoc.Writers.BBCode
writeBBCode :: PandocMonad m => WriterOptions -> Pandoc -> m Text
writeBBCodeOfficial :: PandocMonad m => WriterOptions -> Pandoc -> m Text
writeBBCodeSteam :: PandocMonad m => WriterOptions -> Pandoc -> m Text
writeBBCodePhpBB :: PandocMonad m => WriterOptions -> Pandoc -> m Text
writeBBCodeFluxBB :: PandocMonad m => WriterOptions -> Pandoc -> m Text
writeBBCodeHubzilla :: PandocMonad m => WriterOptions -> Pandoc -> m Text
writeBBCodeXenforo :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Data type that is a collection of renderers for most elements in a
--   Pandoc AST (see <a>Block</a> and <a>Inline</a>)
--   
--   The intention here is to allow inheritance between formats, for
--   instance if format A and format <tt>B</tt> differ only in rendering
--   tables, <tt>B</tt> can be implemented as <tt>A{<a>renderTable</a> =
--   renderTableB}</tt>
data FlavorSpec
FlavorSpec :: (forall (m :: Type -> Type). PandocMonad m => [Block] -> RR m (Doc Text)) -> (forall (m :: Type -> Type). PandocMonad m => [[Block]] -> RR m (Doc Text)) -> (forall (m :: Type -> Type). PandocMonad m => Attr -> Text -> RR m (Doc Text)) -> (forall (m :: Type -> Type). PandocMonad m => [([Inline], [[Block]])] -> RR m (Doc Text)) -> (forall (m :: Type -> Type). PandocMonad m => Int -> Attr -> [Inline] -> RR m (Doc Text)) -> (forall (m :: Type -> Type). PandocMonad m => Attr -> Text -> RR m (Doc Text)) -> (forall (m :: Type -> Type). PandocMonad m => Attr -> [Inline] -> Target -> RR m (Doc Text)) -> (forall (m :: Type -> Type). PandocMonad m => ListAttributes -> [[Block]] -> RR m (Doc Text)) -> (forall (m :: Type -> Type). PandocMonad m => [Inline] -> RR m (Doc Text)) -> (forall (m :: Type -> Type). PandocMonad m => PandocTable -> RR m (Doc Text)) -> (forall (m :: Type -> Type). PandocMonad m => RR m (Doc Text)) -> (forall (m :: Type -> Type). PandocMonad m => [[Inline]] -> RR m (Doc Text)) -> (forall (m :: Type -> Type). PandocMonad m => [Inline] -> RR m (Doc Text)) -> (forall (m :: Type -> Type). PandocMonad m => [Inline] -> RR m (Doc Text)) -> (forall (m :: Type -> Type). PandocMonad m => [Inline] -> RR m (Doc Text)) -> (forall (m :: Type -> Type). PandocMonad m => [Inline] -> RR m (Doc Text)) -> (forall (m :: Type -> Type). PandocMonad m => [Citation] -> [Inline] -> RR m (Doc Text)) -> (forall (m :: Type -> Type). PandocMonad m => [Block] -> RR m (Doc Text)) -> (forall (m :: Type -> Type). PandocMonad m => Attr -> Caption -> [Block] -> RR m (Doc Text)) -> (forall (m :: Type -> Type). PandocMonad m => QuoteType -> [Inline] -> RR m (Doc Text)) -> (forall (m :: Type -> Type). PandocMonad m => MathType -> Text -> RR m (Doc Text)) -> (forall (m :: Type -> Type). PandocMonad m => Attr -> [Inline] -> Target -> RR m (Doc Text)) -> (Bool -> Map Text (Maybe Text) -> Doc Text -> Doc Text) -> FlavorSpec

-- | Render <a>BlockQuote</a>
[renderBlockQuote] :: FlavorSpec -> forall (m :: Type -> Type). PandocMonad m => [Block] -> RR m (Doc Text)

-- | Render <a>BulletList</a>
[renderBulletList] :: FlavorSpec -> forall (m :: Type -> Type). PandocMonad m => [[Block]] -> RR m (Doc Text)

-- | Render <a>CodeBlock</a>
[renderCodeBlock] :: FlavorSpec -> forall (m :: Type -> Type). PandocMonad m => Attr -> Text -> RR m (Doc Text)

-- | Render <a>DefinitionList</a>
[renderDefinitionList] :: FlavorSpec -> forall (m :: Type -> Type). PandocMonad m => [([Inline], [[Block]])] -> RR m (Doc Text)

-- | Render <a>Header</a>
[renderHeader] :: FlavorSpec -> forall (m :: Type -> Type). PandocMonad m => Int -> Attr -> [Inline] -> RR m (Doc Text)

-- | Render <a>Code</a>
[renderInlineCode] :: FlavorSpec -> forall (m :: Type -> Type). PandocMonad m => Attr -> Text -> RR m (Doc Text)

-- | Render <a>Link</a>
[renderLink] :: FlavorSpec -> forall (m :: Type -> Type). PandocMonad m => Attr -> [Inline] -> Target -> RR m (Doc Text)

-- | Render <a>OrderedList</a>
[renderOrderedList] :: FlavorSpec -> forall (m :: Type -> Type). PandocMonad m => ListAttributes -> [[Block]] -> RR m (Doc Text)

-- | Render <a>Strikeout</a>
[renderStrikeout] :: FlavorSpec -> forall (m :: Type -> Type). PandocMonad m => [Inline] -> RR m (Doc Text)

-- | Render <a>Table</a>
[renderTable] :: FlavorSpec -> forall (m :: Type -> Type). PandocMonad m => PandocTable -> RR m (Doc Text)

-- | Render <a>HorizontalRule</a>
[renderHorizontalRule] :: FlavorSpec -> forall (m :: Type -> Type). PandocMonad m => RR m (Doc Text)

-- | Render <a>LineBlock</a>
[renderLineBlock] :: FlavorSpec -> forall (m :: Type -> Type). PandocMonad m => [[Inline]] -> RR m (Doc Text)

-- | Render <a>Para</a>
[renderPara] :: FlavorSpec -> forall (m :: Type -> Type). PandocMonad m => [Inline] -> RR m (Doc Text)

-- | Render <a>Superscript</a>
[renderSuperscript] :: FlavorSpec -> forall (m :: Type -> Type). PandocMonad m => [Inline] -> RR m (Doc Text)

-- | Render <a>Subscript</a>
[renderSubscript] :: FlavorSpec -> forall (m :: Type -> Type). PandocMonad m => [Inline] -> RR m (Doc Text)

-- | Render <a>SmallCaps</a>
[renderSmallCaps] :: FlavorSpec -> forall (m :: Type -> Type). PandocMonad m => [Inline] -> RR m (Doc Text)

-- | Render <a>Cite</a>
[renderCite] :: FlavorSpec -> forall (m :: Type -> Type). PandocMonad m => [Citation] -> [Inline] -> RR m (Doc Text)

-- | Render <a>Note</a>
[renderNote] :: FlavorSpec -> forall (m :: Type -> Type). PandocMonad m => [Block] -> RR m (Doc Text)

-- | Render <a>Figure</a>
[renderFigure] :: FlavorSpec -> forall (m :: Type -> Type). PandocMonad m => Attr -> Caption -> [Block] -> RR m (Doc Text)

-- | Render <a>Quoted</a>
[renderQuoted] :: FlavorSpec -> forall (m :: Type -> Type). PandocMonad m => QuoteType -> [Inline] -> RR m (Doc Text)

-- | Render <a>Math</a>
[renderMath] :: FlavorSpec -> forall (m :: Type -> Type). PandocMonad m => MathType -> Text -> RR m (Doc Text)

-- | Render <a>Image</a>
[renderImage] :: FlavorSpec -> forall (m :: Type -> Type). PandocMonad m => Attr -> [Inline] -> Target -> RR m (Doc Text)

-- | Wrap document in bbcode tags based on attributes/classes. Boolean flag
--   indicates whether passed argument is a Div or a Span (True means Div)
[wrapSpanDiv] :: FlavorSpec -> Bool -> Map Text (Maybe Text) -> Doc Text -> Doc Text
data WriterState
WriterState :: WriterOptions -> FlavorSpec -> Bool -> WriterState
[writerOptions] :: WriterState -> WriterOptions
[flavorSpec] :: WriterState -> FlavorSpec
[inList] :: WriterState -> Bool

-- | The base of a renderer monad.
type RR (m :: Type -> Type) a = StateT Seq Doc Text ReaderT WriterState m a

-- | Convert a <a>Pandoc</a> document to BBCode using the given
--   <a>FlavorSpec</a> and <a>WriterOptions</a>.
writeBBCodeCustom :: PandocMonad m => FlavorSpec -> WriterOptions -> Pandoc -> m Text
inlineToBBCode :: forall (m :: Type -> Type). PandocMonad m => Inline -> RR m (Doc Text)
inlineListToBBCode :: forall (m :: Type -> Type). PandocMonad m => [Inline] -> RR m (Doc Text)
blockToBBCode :: forall (m :: Type -> Type). PandocMonad m => Block -> RR m (Doc Text)
blockListToBBCode :: forall (m :: Type -> Type). PandocMonad m => [Block] -> RR m (Doc Text)

-- | The goal of the transformation is to treat classes and key-value pairs
--   uniformly.
--   
--   Class list becomes Map where all values are Nothing, and list of
--   key-value pairs is converted to Map via <a>toList</a>. Both Maps are
--   then merged.
attrToMap :: Attr -> Map Text (Maybe Text)

-- | Format documentation: <a>https://www.bbcode.org/reference.php</a>
--   
--   There is no such thing as «Official» bbcode format, nonetheless this
--   spec implements what is described on bbcode.org, which is a reasonable
--   base that can be extended/contracted as needed.
officialSpec :: FlavorSpec

-- | Format documentation:
--   <a>https://steamcommunity.com/comment/ForumTopic/formattinghelp</a>
--   
--   Used at: <a>https://steamcommunity.com/discussions/forum</a>
--   
--   Quirks:
--   
--   <ul>
--   <li>There seems to be no way to show external images on steam.
--   <a>https://steamcommunity.com/sharedfiles/filedetails/?id=2807121939</a>
--   shows [img] and [previewimg] can (could?) be used to show images,
--   although it is likely reserved for steam urls only.</li>
--   </ul>
steamSpec :: FlavorSpec

-- | Format documentation:
--   <a>https://www.phpbb.com/community/help/bbcode</a>
--   
--   Used at: <a>https://www.phpbb.com/community</a>
--   
--   Quirks:
--   
--   <ul>
--   <li>PhpBB docs don't mention strikeout support, but their <a>support
--   forum</a> does support it.</li>
--   <li>Same for named code blocks.</li>
--   <li><tt>[email=example@example.com]the email[/url]</tt> is a valid use
--   of [email] tag on the phpBB community forum despite not being in the
--   docs.</li>
--   </ul>
phpbbSpec :: FlavorSpec

-- | Format documentation:
--   <a>https://web.archive.org/web/20210623155046/https://fluxbb.org/forums/help.php#bbcode</a>
--   
--   Used at: <a>https://bbs.archlinux.org</a>
fluxbbSpec :: FlavorSpec

-- | Format documentation: <a>https://hubzilla.org/help/member/bbcode</a>
--   
--   Used at: <a>https://hub.netzgemeinde.eu</a> (see <a>other hubs</a>)
--   
--   Quirks:
--   
--   <ul>
--   <li>If link target is not a URI, it simply points to
--   <a>https://$BASEURL/</a> when rendered by a hub.</li>
--   </ul>
hubzillaSpec :: FlavorSpec

-- | Format documentation:
--   <a>https://www.xenfocus.com/community/help/bb-codes/</a>
--   
--   Used at: see <a>https://xenforo.com/</a>
xenforoSpec :: FlavorSpec
instance Data.Default.Internal.Default Text.Pandoc.Writers.BBCode.WriterState


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

-- | Convert Pandoc to AsciiDoc.
writeAsciiDoc :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert Pandoc to legacy AsciiDoc.
writeAsciiDocLegacy :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Deprecated synonym of <a>writeAsciiDoc</a>.

-- | <i>Deprecated: Use writeAsciiDoc instead</i>
writeAsciiDoctor :: PandocMonad m => WriterOptions -> Pandoc -> m Text
instance GHC.Classes.Eq Text.Pandoc.Writers.AsciiDoc.EscContext
instance GHC.Internal.Show.Show Text.Pandoc.Writers.AsciiDoc.EscContext


-- | Conversion of <a>Pandoc</a> documents to Ansi terminal output.
module Text.Pandoc.Writers.ANSI

-- | Convert Pandoc to ANSI
writeANSI :: PandocMonad m => WriterOptions -> Pandoc -> m Text


-- | Conversion of LaTeX documents to PDF.
module Text.Pandoc.PDF
makePDF :: (PandocMonad m, MonadIO m, MonadMask m) => String -> [String] -> (WriterOptions -> Pandoc -> m Text) -> WriterOptions -> Pandoc -> m (Either ByteString ByteString)


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

-- | Convert HTML-formatted string to <a>Pandoc</a> document.
readHtml :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc

-- | Matches a tag meeting a certain condition.
htmlTag :: forall st (m :: Type -> Type). (HasReaderOptions st, Monad m) => (Tag Text -> Bool) -> ParsecT Sources st m (Tag Text, Text)

-- | Matches a stretch of HTML in balanced tags.
htmlInBalanced :: forall (m :: Type -> Type) st. Monad m => (Tag Text -> Bool) -> ParsecT Sources st m Text
isInlineTag :: Tag Text -> Bool
isBlockTag :: Tag Text -> Bool
isTextTag :: Tag Text -> Bool
isCommentTag :: Tag Text -> Bool
toAttr :: [(Text, Text)] -> Attr


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

-- | Parse a Textile text and return a Pandoc document.
readTextile :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc


-- | Conversion of twiki text to <a>Pandoc</a> document.
module Text.Pandoc.Readers.TWiki

-- | Read twiki from an input string and return a Pandoc document.
readTWiki :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc


-- | Conversion of mediawiki text to <a>Pandoc</a> document.
module Text.Pandoc.Readers.MediaWiki

-- | Read mediawiki from an input string and return a Pandoc document.
readMediaWiki :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc
instance Text.Pandoc.Parsing.Capabilities.HasIdentifierList Text.Pandoc.Readers.MediaWiki.MWState
instance Text.Pandoc.Parsing.Capabilities.HasLogMessages Text.Pandoc.Readers.MediaWiki.MWState
instance Text.Pandoc.Parsing.Capabilities.HasReaderOptions Text.Pandoc.Readers.MediaWiki.MWState


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

-- | Read markdown from an input string and return a Pandoc document.
readMarkdown :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc

-- | Read a YAML string and convert it to pandoc metadata. String scalars
--   in the YAML are parsed as Markdown.
yamlToMeta :: PandocMonad m => ReaderOptions -> Maybe FilePath -> ByteString -> m Meta

-- | Read a YAML string and extract references from the <tt>references</tt>
--   field, filter using an id predicate and parsing fields as Markdown.
yamlToRefs :: PandocMonad m => (Text -> Bool) -> ReaderOptions -> Maybe FilePath -> ByteString -> m [MetaValue]


-- | Conversion of OPML to <a>Pandoc</a> document.
module Text.Pandoc.Readers.OPML
readOPML :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc
instance Data.Default.Internal.Default Text.Pandoc.Readers.OPML.OPMLState
instance GHC.Internal.Show.Show Text.Pandoc.Readers.OPML.OPMLState


-- | Ipynb (Jupyter notebook JSON format) reader for pandoc.
module Text.Pandoc.Readers.Ipynb
readIpynb :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc

module Text.Pandoc.Citeproc
processCitations :: PandocMonad m => Pandoc -> m Pandoc

-- | Get references defined inline in the metadata and via an external
--   bibliography. Only references that are actually cited in the document
--   (either with a genuine citation or with <tt>nocite</tt>) are returned.
--   URL variables are converted to links.
getReferences :: PandocMonad m => Maybe Locale -> Pandoc -> m [Reference Inlines]
instance GHC.Classes.Eq Text.Pandoc.Citeproc.BibFormat
instance GHC.Classes.Ord Text.Pandoc.Citeproc.BibFormat
instance GHC.Internal.Show.Show Text.Pandoc.Citeproc.BibFormat


-- | Conversion of <a>Pandoc</a> documents to JATS XML. Reference:
--   https:/<i>jats.nlm.nih.gov</i>publishing/tag-library
module Text.Pandoc.Writers.JATS

-- | Alias for <tt><a>writeJatsArchiving</a></tt>. This function exists for
--   backwards compatibility, but will be deprecated in the future. Use
--   <tt><a>writeJatsArchiving</a></tt> instead.

-- | <i>Deprecated: Use writeJatsArchiving instead</i>
writeJATS :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert a <tt><a>Pandoc</a></tt> document to JATS (Archiving and
--   Interchange Tag Set.)
writeJatsArchiving :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert a <tt><a>Pandoc</a></tt> document to JATS (Journal Publishing
--   Tag Set.)
writeJatsPublishing :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert a <tt><a>Pandoc</a></tt> document to JATS (Archiving and
--   Interchange Tag Set.)
writeJatsArticleAuthoring :: PandocMonad m => WriterOptions -> Pandoc -> m Text


-- | Conversion of EPUB to <a>Pandoc</a> document.
module Text.Pandoc.Readers.EPUB
readEPUB :: PandocMonad m => ReaderOptions -> ByteString -> m Pandoc


-- | Reads and evaluates a AsciiDoc document as a Pandoc AST.
module Text.Pandoc.Readers.AsciiDoc

-- | Read AsciiDoc from an input string and return a Pandoc document.
readAsciiDoc :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc


-- | Conversion of <a>Pandoc</a> documents to (pandoc specific) xml markup.
module Text.Pandoc.Writers.XML
writeXML :: PandocMonad m => WriterOptions -> Pandoc -> m Text


-- | This helper module exports all writers functions.
module Text.Pandoc.Writers
data Writer (m :: Type -> Type)
TextWriter :: (WriterOptions -> Pandoc -> m Text) -> Writer (m :: Type -> Type)
ByteStringWriter :: (WriterOptions -> Pandoc -> m ByteString) -> Writer (m :: Type -> Type)

-- | Association list of formats and writers.
writers :: forall (m :: Type -> Type). PandocMonad m => [(Text, Writer m)]

-- | Convert Pandoc to ANSI
writeANSI :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert Pandoc to AsciiDoc.
writeAsciiDoc :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert Pandoc to legacy AsciiDoc.
writeAsciiDocLegacy :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Deprecated synonym of <a>writeAsciiDoc</a>.

-- | <i>Deprecated: Use writeAsciiDoc instead</i>
writeAsciiDoctor :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert Pandoc to LaTeX Beamer.
writeBeamer :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Write BibTeX based on the references metadata from a Pandoc document.
writeBibTeX :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Write BibLaTeX based on the references metadata from a Pandoc
--   document.
writeBibLaTeX :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Splits document into HTML chunks, dividing them by section, and
--   returns a zip archive of a folder of files.
writeChunkedHTML :: PandocMonad m => WriterOptions -> Pandoc -> m ByteString

-- | Convert Pandoc to Commonmark.
writeCommonMark :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert Pandoc to ConTeXt.
writeConTeXt :: PandocMonad m => WriterOptions -> Pandoc -> m Text
writeCslJson :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert Pandoc document to DZSlides HTML slide show.
writeDZSlides :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert Pandoc to Djot.
writeDjot :: PandocMonad m => WriterOptions -> Pandoc -> m Text
writeDocBook4 :: PandocMonad m => WriterOptions -> Pandoc -> m Text
writeDocBook5 :: PandocMonad m => WriterOptions -> Pandoc -> m Text
writeDocx :: PandocMonad m => WriterOptions -> Pandoc -> m ByteString

-- | Convert Pandoc to DokuWiki.
writeDokuWiki :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Produce an EPUB2 file from a Pandoc document.
writeEPUB2 :: PandocMonad m => WriterOptions -> Pandoc -> m ByteString

-- | Produce an EPUB3 file from a Pandoc document.
writeEPUB3 :: PandocMonad m => WriterOptions -> Pandoc -> m ByteString

-- | Produce an FB2 document from a <a>Pandoc</a> document.
writeFB2 :: PandocMonad m => WriterOptions -> Pandoc -> m Text
writeIpynb :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert Pandoc to Haddock.
writeHaddock :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert Pandoc document to Html 4 structure.
writeHtml4 :: PandocMonad m => WriterOptions -> Pandoc -> m Html

-- | Convert Pandoc document to Html 4 string.
writeHtml4String :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert Pandoc document to Html 5 structure.
writeHtml5 :: PandocMonad m => WriterOptions -> Pandoc -> m Html

-- | Convert Pandoc document to Html 5 string.
writeHtml5String :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert Pandoc document to string in ICML format.
writeICML :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Alias for <tt><a>writeJatsArchiving</a></tt>. This function exists for
--   backwards compatibility, but will be deprecated in the future. Use
--   <tt><a>writeJatsArchiving</a></tt> instead.

-- | <i>Deprecated: Use writeJatsArchiving instead</i>
writeJATS :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert a <tt><a>Pandoc</a></tt> document to JATS (Archiving and
--   Interchange Tag Set.)
writeJatsArchiving :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert a <tt><a>Pandoc</a></tt> document to JATS (Archiving and
--   Interchange Tag Set.)
writeJatsArticleAuthoring :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert a <tt><a>Pandoc</a></tt> document to JATS (Journal Publishing
--   Tag Set.)
writeJatsPublishing :: PandocMonad m => WriterOptions -> Pandoc -> m Text
writeJSON :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert Pandoc to Jira.
writeJira :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert Pandoc to LaTeX.
writeLaTeX :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert Pandoc to Man.
writeMan :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert Pandoc to Markdown.
writeMarkdown :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert Pandoc to Markua.
writeMarkua :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert Pandoc to MediaWiki.
writeMediaWiki :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert Pandoc to Ms.
writeMs :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert Pandoc to Muse.
writeMuse :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Prettyprint Pandoc document.
writeNative :: PandocMonad m => WriterOptions -> Pandoc -> m Text

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

-- | Convert Pandoc document to string in OPML format.
writeOPML :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert Pandoc document to string in OpenDocument format.
writeOpenDocument :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert Pandoc to Org.
writeOrg :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert Pandoc to plain text (like markdown, but without links,
--   pictures, or inline formatting).
writePlain :: PandocMonad m => WriterOptions -> Pandoc -> m Text
writePowerpoint :: PandocMonad m => WriterOptions -> Pandoc -> m ByteString

-- | Convert Pandoc to RST.
writeRST :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert Pandoc to a string in rich text format.
writeRTF :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert Pandoc document to Reveal JS HTML slide show.
writeRevealJs :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert Pandoc document to S5 HTML slide show.
writeS5 :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert Pandoc document to Slideous HTML slide show.
writeSlideous :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert Pandoc document to Slidy HTML slide show.
writeSlidy :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert Pandoc document to string in TEI XML format.
writeTEI :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert Pandoc to Texinfo.
writeTexinfo :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert Pandoc to Textile.
writeTextile :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert Pandoc to Typst.
writeTypst :: PandocMonad m => WriterOptions -> Pandoc -> m Text
writeXML :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert Pandoc to XWiki.
writeXWiki :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Convert Pandoc to ZimWiki.
writeZimWiki :: PandocMonad m => WriterOptions -> Pandoc -> m Text
writeVimdoc :: PandocMonad m => WriterOptions -> Pandoc -> m Text
writeBBCode :: PandocMonad m => WriterOptions -> Pandoc -> m Text
writeBBCodeSteam :: PandocMonad m => WriterOptions -> Pandoc -> m Text
writeBBCodeFluxBB :: PandocMonad m => WriterOptions -> Pandoc -> m Text
writeBBCodePhpBB :: PandocMonad m => WriterOptions -> Pandoc -> m Text
writeBBCodeHubzilla :: PandocMonad m => WriterOptions -> Pandoc -> m Text
writeBBCodeXenforo :: PandocMonad m => WriterOptions -> Pandoc -> m Text

-- | Retrieve writer, extensions based on formatSpec (format+extensions).
getWriter :: PandocMonad m => FlavoredFormat -> m (Writer m, Extensions)


-- | This helper module exports the readers.
--   
--   Note: all of the readers assume that the input text has <tt>'n'</tt>
--   line endings. So if you get your input text from a web form, you
--   should remove <tt>'r'</tt> characters using <tt>filter (/='r')</tt>.
module Text.Pandoc.Readers
data Reader (m :: Type -> Type)
TextReader :: (forall a. ToSources a => ReaderOptions -> a -> m Pandoc) -> Reader (m :: Type -> Type)
ByteStringReader :: (ReaderOptions -> ByteString -> m Pandoc) -> Reader (m :: Type -> Type)

-- | Association list of formats and readers.
readers :: forall (m :: Type -> Type). PandocMonad m => [(Text, Reader m)]

-- | Read AsciiDoc from an input string and return a Pandoc document.
readAsciiDoc :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc
readDocx :: PandocMonad m => ReaderOptions -> ByteString -> m Pandoc

-- | Read PPTX file into Pandoc AST
readPptx :: PandocMonad m => ReaderOptions -> ByteString -> m Pandoc

-- | Read XLSX file into Pandoc AST
readXlsx :: PandocMonad m => ReaderOptions -> ByteString -> m Pandoc
readODT :: PandocMonad m => ReaderOptions -> ByteString -> m Pandoc

-- | Read markdown from an input string and return a Pandoc document.
readMarkdown :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc

-- | Parse a CommonMark formatted string into a <a>Pandoc</a> structure.
readCommonMark :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc

-- | Read creole from an input string and return a Pandoc document.
readCreole :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc

-- | Read DokuWiki from an input string and return a Pandoc document.
readDokuWiki :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc

-- | Read mediawiki from an input string and return a Pandoc document.
readMediaWiki :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc
readVimwiki :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc

-- | Parse reStructuredText string and return Pandoc document.
readRST :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc

-- | Parse org-mode string and return a Pandoc document.
readOrg :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc

-- | Parse LaTeX from string and return <a>Pandoc</a> document.
readLaTeX :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc

-- | Convert HTML-formatted string to <a>Pandoc</a> document.
readHtml :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc
readJATS :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc

-- | Read Jira wiki markup.
readJira :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc

-- | Parse a Textile text and return a Pandoc document.
readTextile :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc
readDocBook :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc
readOPML :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc

-- | Parse Haddock markup and return a <a>Pandoc</a> document.
readHaddock :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc

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

-- | Read pandoc document from JSON format.
readJSON :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc

-- | Read twiki from an input string and return a Pandoc document.
readTWiki :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc

-- | Read TikiWiki from an input string and return a Pandoc document.
readTikiWiki :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc

-- | Read Txt2Tags from an input string returning a Pandoc document
readTxt2Tags :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc
readEPUB :: PandocMonad m => ReaderOptions -> ByteString -> m Pandoc

-- | Read Muse from an input string and return a Pandoc document.
readMuse :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc

-- | Read man (troff) from an input string and return a Pandoc document.
readMan :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc

-- | Read mdoc from an input string and return a Pandoc document.
readMdoc :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc
readFB2 :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc
readIpynb :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc
readCSV :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc
readTSV :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc

-- | Read CSL JSON from an input string and return a Pandoc document. The
--   document will have only metadata, with an empty body. The metadata
--   will contain a <tt>references</tt> field with the bibliography
--   entries, and a <tt>nocite</tt> field with the wildcard `[@*]`.
readCslJson :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc

-- | Read BibTeX from an input string and return a Pandoc document. The
--   document will have only metadata, with an empty body. The metadata
--   will contain a <tt>references</tt> field with the bibliography
--   entries, and a <tt>nocite</tt> field with the wildcard `[@*]`.
readBibTeX :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc

-- | Read BibLaTeX from an input string and return a Pandoc document. The
--   document will have only metadata, with an empty body. The metadata
--   will contain a <tt>references</tt> field with the bibliography
--   entries, and a <tt>nocite</tt> field with the wildcard `[@*]`.
readBibLaTeX :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc

-- | Read EndNote XML from an input string and return a Pandoc document.
--   The document will have only metadata, with an empty body. The metadata
--   will contain a <tt>references</tt> field with the bibliography
--   entries, and a <tt>nocite</tt> field with the wildcard `[@*]`.
readEndNoteXML :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc

-- | Read RIS from an input string and return a Pandoc document. The
--   document will have only metadata, with an empty body. The metadata
--   will contain a <tt>references</tt> field with the bibliography
--   entries, and a <tt>nocite</tt> field with the wildcard `[@*]`.
readRIS :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc

-- | Read RTF from an input string and return a Pandoc document.
readRTF :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc

-- | Read Typst from an input string and return a Pandoc document.
readTypst :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc

-- | Read Djot from an input string and return a Pandoc document.
readDjot :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc
readPod :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc
readXML :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc

-- | Retrieve reader, extensions based on format spec (format+extensions).
getReader :: PandocMonad m => FlavoredFormat -> m (Reader m, Extensions)

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


-- | Central data structure for scripting engines.
module Text.Pandoc.Scripting

-- | Structure to define a scripting engine.
data ScriptingEngine
ScriptingEngine :: Text -> (forall (m :: Type -> Type). (PandocMonad m, MonadIO m) => Environment -> [String] -> FilePath -> Pandoc -> m Pandoc) -> (forall (m :: Type -> Type). (PandocMonad m, MonadIO m) => FilePath -> m (CustomComponents m)) -> ScriptingEngine

-- | Name of the engine.
[engineName] :: ScriptingEngine -> Text

-- | Use the scripting engine to run a filter.
[engineApplyFilter] :: ScriptingEngine -> forall (m :: Type -> Type). (PandocMonad m, MonadIO m) => Environment -> [String] -> FilePath -> Pandoc -> m Pandoc

-- | Function to load a custom reader/writer from a script.
[engineLoadCustom] :: ScriptingEngine -> forall (m :: Type -> Type). (PandocMonad m, MonadIO m) => FilePath -> m (CustomComponents m)

-- | A component of a custom reader/writer: a custom reader, a custom
--   writer, a template for a custom writer, or a specification of the
--   extensions used by a script and their default values. Note that a
--   single script can contain all of these.
data CustomComponents (m :: Type -> Type)
CustomComponents :: Maybe (Reader m) -> Maybe (Writer m) -> Maybe Text -> Maybe ExtensionsConfig -> CustomComponents (m :: Type -> Type)
[customReader] :: CustomComponents (m :: Type -> Type) -> Maybe (Reader m)
[customWriter] :: CustomComponents (m :: Type -> Type) -> Maybe (Writer m)
[customTemplate] :: CustomComponents (m :: Type -> Type) -> Maybe Text
[customExtensions] :: CustomComponents (m :: Type -> Type) -> Maybe ExtensionsConfig
noEngine :: ScriptingEngine


-- | Programmatically modifications of pandoc documents.
module Text.Pandoc.Filter

-- | Type of filter and path to filter file.
data Filter
LuaFilter :: FilePath -> Filter
JSONFilter :: FilePath -> Filter
CiteprocFilter :: Filter

-- | Environment in which a filter is run. This includes reader and writer
--   options.
data Environment
Environment :: ReaderOptions -> WriterOptions -> Environment
[envReaderOptions] :: Environment -> ReaderOptions
[envWriterOptions] :: Environment -> WriterOptions

-- | Modify the given document using a filter.
applyFilters :: (PandocMonad m, MonadIO m) => ScriptingEngine -> Environment -> [Filter] -> [String] -> Pandoc -> m Pandoc
applyJSONFilter :: MonadIO m => Environment -> [String] -> FilePath -> Pandoc -> m Pandoc
instance GHC.Classes.Eq Text.Pandoc.Filter.Filter
instance Data.Aeson.Types.FromJSON.FromJSON Text.Pandoc.Filter.Filter
instance GHC.Internal.Generics.Generic Text.Pandoc.Filter.Filter
instance GHC.Internal.Show.Show Text.Pandoc.Filter.Filter
instance Data.Aeson.Types.ToJSON.ToJSON Text.Pandoc.Filter.Filter


-- | This helper module exports the main writers, readers, and data
--   structure definitions from the Pandoc libraries.
--   
--   A typical application will chain together a reader and a writer to
--   convert strings from one format to another. For example, the following
--   simple program will act as a filter converting markdown fragments to
--   reStructuredText, using reference-style links instead of inline links:
--   
--   <pre>
--   module Main where
--   import Text.Pandoc
--   import Data.Text (Text)
--   import qualified Data.Text.IO as T
--   
--   mdToRST :: Text -&gt; IO Text
--   mdToRST txt = runIOorExplode $
--     readMarkdown def txt
--     &gt;&gt;= writeRST def{ writerReferenceLinks = True }
--   
--   main :: IO ()
--   main = do
--     T.getContents &gt;&gt;= mdToRST &gt;&gt;= T.putStrLn
--   </pre>
module Text.Pandoc
pattern SimpleFigure :: Attr -> [Inline] -> Target -> Block
docAuthors :: Meta -> [[Inline]]
docDate :: Meta -> [Inline]
docTitle :: Meta -> [Inline]
isNullMeta :: Meta -> Bool
lookupMeta :: Text -> Meta -> Maybe MetaValue
nullAttr :: Attr
nullMeta :: Meta
pandocTypesVersion :: Version
data Alignment
AlignLeft :: Alignment
AlignRight :: Alignment
AlignCenter :: Alignment
AlignDefault :: Alignment
type Attr = (Text, [Text], [(Text, Text)])
data Block
Plain :: [Inline] -> Block
Para :: [Inline] -> Block
LineBlock :: [[Inline]] -> Block
CodeBlock :: Attr -> Text -> Block
RawBlock :: Format -> Text -> Block
BlockQuote :: [Block] -> Block
OrderedList :: ListAttributes -> [[Block]] -> Block
BulletList :: [[Block]] -> Block
DefinitionList :: [([Inline], [[Block]])] -> Block
Header :: Int -> Attr -> [Inline] -> Block
HorizontalRule :: Block
Table :: Attr -> Caption -> [ColSpec] -> TableHead -> [TableBody] -> TableFoot -> Block
Figure :: Attr -> Caption -> [Block] -> Block
Div :: Attr -> [Block] -> Block
data Caption
Caption :: Maybe ShortCaption -> [Block] -> Caption
data Cell
Cell :: Attr -> Alignment -> RowSpan -> ColSpan -> [Block] -> Cell
data Citation
Citation :: Text -> [Inline] -> [Inline] -> CitationMode -> Int -> Int -> Citation
[citationId] :: Citation -> Text
[citationPrefix] :: Citation -> [Inline]
[citationSuffix] :: Citation -> [Inline]
[citationMode] :: Citation -> CitationMode
[citationNoteNum] :: Citation -> Int
[citationHash] :: Citation -> Int
data CitationMode
AuthorInText :: CitationMode
SuppressAuthor :: CitationMode
NormalCitation :: CitationMode
newtype ColSpan
ColSpan :: Int -> ColSpan
type ColSpec = (Alignment, ColWidth)
data ColWidth
ColWidth :: Double -> ColWidth
ColWidthDefault :: ColWidth
newtype Format
Format :: Text -> Format
data Inline
Str :: Text -> Inline
Emph :: [Inline] -> Inline
Underline :: [Inline] -> Inline
Strong :: [Inline] -> Inline
Strikeout :: [Inline] -> Inline
Superscript :: [Inline] -> Inline
Subscript :: [Inline] -> Inline
SmallCaps :: [Inline] -> Inline
Quoted :: QuoteType -> [Inline] -> Inline
Cite :: [Citation] -> [Inline] -> Inline
Code :: Attr -> Text -> Inline
Space :: Inline
SoftBreak :: Inline
LineBreak :: Inline
Math :: MathType -> Text -> Inline
RawInline :: Format -> Text -> Inline
Link :: Attr -> [Inline] -> Target -> Inline
Image :: Attr -> [Inline] -> Target -> Inline
Note :: [Block] -> Inline
Span :: Attr -> [Inline] -> Inline
type ListAttributes = (Int, ListNumberStyle, ListNumberDelim)
data ListNumberDelim
DefaultDelim :: ListNumberDelim
Period :: ListNumberDelim
OneParen :: ListNumberDelim
TwoParens :: ListNumberDelim
data ListNumberStyle
DefaultStyle :: ListNumberStyle
Example :: ListNumberStyle
Decimal :: ListNumberStyle
LowerRoman :: ListNumberStyle
UpperRoman :: ListNumberStyle
LowerAlpha :: ListNumberStyle
UpperAlpha :: ListNumberStyle
data MathType
DisplayMath :: MathType
InlineMath :: MathType
newtype Meta
Meta :: Map Text MetaValue -> Meta
[unMeta] :: Meta -> Map Text MetaValue
data MetaValue
MetaMap :: Map Text MetaValue -> MetaValue
MetaList :: [MetaValue] -> MetaValue
MetaBool :: Bool -> MetaValue
MetaString :: Text -> MetaValue
MetaInlines :: [Inline] -> MetaValue
MetaBlocks :: [Block] -> MetaValue
data Pandoc
Pandoc :: Meta -> [Block] -> Pandoc
data QuoteType
SingleQuote :: QuoteType
DoubleQuote :: QuoteType
data Row
Row :: Attr -> [Cell] -> Row
newtype RowHeadColumns
RowHeadColumns :: Int -> RowHeadColumns
newtype RowSpan
RowSpan :: Int -> RowSpan
type ShortCaption = [Inline]
data TableBody
TableBody :: Attr -> RowHeadColumns -> [Row] -> [Row] -> TableBody
data TableFoot
TableFoot :: Attr -> [Row] -> TableFoot
data TableHead
TableHead :: Attr -> [Row] -> TableHead
type Target = (Text, Text)
bottomUp :: (Data a, Data b) => (a -> a) -> b -> b
bottomUpM :: (Monad m, Data a, Data b) => (a -> m a) -> b -> m b
queryWith :: (Data a, Monoid b, Data c) => (a -> b) -> c -> b
topDown :: (Data a, Data b) => (a -> a) -> b -> b

-- | Select the language to use with <a>translateTerm</a>. Note that this
--   does not read a translation file; that is only done the first time
--   <a>translateTerm</a> is used.
setTranslations :: PandocMonad m => Lang -> m ()

-- | Get a translation from the current term map. Issue a warning if the
--   term is not defined.
translateTerm :: PandocMonad m => Term -> m Text

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

-- | Text representation of the library's version number.
pandocVersionText :: Text


-- | Does a pandoc conversion based on command-line options.
module Text.Pandoc.App
convertWithOpts :: ScriptingEngine -> Opt -> IO ()

-- | React to an <a>OptInfo</a> by printing the requested information and
--   exiting or (if there was a parsing error) raising an error.
handleOptInfo :: ScriptingEngine -> OptInfo -> IO ()

-- | Data structure for command line options.
data Opt
Opt :: Int -> Bool -> Bool -> Maybe Text -> Maybe Text -> Bool -> Bool -> Bool -> Int -> Maybe FilePath -> Context Text -> Meta -> [FilePath] -> Maybe FilePath -> Maybe [FilePath] -> Bool -> [Int] -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> [FilePath] -> Text -> TopLevelDivision -> HTMLMathMethod -> Maybe FilePath -> Maybe FilePath -> Int -> Maybe Text -> String -> Maybe FilePath -> [FilePath] -> Maybe FilePath -> Bool -> Int -> Bool -> Bool -> Verbosity -> Bool -> Maybe FilePath -> Bool -> Bool -> ReferenceLocation -> CaptionPosition -> CaptionPosition -> Int -> WrapOption -> Int -> [Filter] -> ObfuscationMethod -> Text -> [Text] -> Maybe FilePath -> CiteMethod -> Maybe String -> [String] -> Maybe Int -> Bool -> Bool -> Bool -> Text -> Maybe FilePath -> TrackChanges -> Bool -> Maybe Text -> [FilePath] -> IpynbOutput -> [FilePath] -> [FilePath] -> [FilePath] -> [FilePath] -> [(Text, Text)] -> Bool -> LineEnding -> Bool -> Maybe FilePath -> [FilePath] -> Maybe FilePath -> Bool -> Opt

-- | Number of spaces per tab
[optTabStop] :: Opt -> Int

-- | Preserve tabs instead of converting to spaces
[optPreserveTabs] :: Opt -> Bool

-- | Include header, footer
[optStandalone] :: Opt -> Bool

-- | Reader format
[optFrom] :: Opt -> Maybe Text

-- | Writer format
[optTo] :: Opt -> Maybe Text

-- | Include table of contents
[optTableOfContents] :: Opt -> Bool

-- | Include list of figures
[optListOfFigures] :: Opt -> Bool

-- | Include list of tables
[optListOfTables] :: Opt -> Bool

-- | Shift heading level by
[optShiftHeadingLevelBy] :: Opt -> Int

-- | Custom template
[optTemplate] :: Opt -> Maybe FilePath

-- | Template variables to set
[optVariables] :: Opt -> Context Text

-- | Metadata fields to set
[optMetadata] :: Opt -> Meta

-- | Name of YAML metadata files
[optMetadataFiles] :: Opt -> [FilePath]

-- | Name of output file
[optOutputFile] :: Opt -> Maybe FilePath

-- | Names of input files
[optInputFiles] :: Opt -> Maybe [FilePath]

-- | Number sections in LaTeX
[optNumberSections] :: Opt -> Bool

-- | Starting number for sections
[optNumberOffset] :: Opt -> [Int]

-- | Put sections in div tags in HTML
[optSectionDivs] :: Opt -> Bool

-- | Use incremental lists in Slidy<i>Slideous</i>S5
[optIncremental] :: Opt -> Bool

-- | Make HTML accessible offline (deprecated)
[optSelfContained] :: Opt -> Bool

-- | Make HTML accessible offline
[optEmbedResources] :: Opt -> Bool

-- | Link ODT images rather than embedding
[optLinkImages] :: Opt -> Bool

-- | Use <a>q</a> tags in HTML
[optHtmlQTags] :: Opt -> Bool

-- | xml syntax defs to load
[optSyntaxDefinitions] :: Opt -> [FilePath]

-- | Syntax highlighting method for code
[optSyntaxHighlighting] :: Opt -> Text

-- | Type of the top-level divisions
[optTopLevelDivision] :: Opt -> TopLevelDivision

-- | Method to print HTML math
[optHTMLMathMethod] :: Opt -> HTMLMathMethod

-- | Path to abbrevs file
[optAbbreviations] :: Opt -> Maybe FilePath

-- | Path of reference doc
[optReferenceDoc] :: Opt -> Maybe FilePath

-- | Header level at which to split documents in epub and chunkedhtml
[optSplitLevel] :: Opt -> Int

-- | Template to use for chunk filenames
[optChunkTemplate] :: Opt -> Maybe Text

-- | EPUB subdir in OCF container
[optEpubSubdirectory] :: Opt -> String

-- | EPUB metadata
[optEpubMetadata] :: Opt -> Maybe FilePath

-- | EPUB fonts to embed
[optEpubFonts] :: Opt -> [FilePath]

-- | Cover image for epub
[optEpubCoverImage] :: Opt -> Maybe FilePath

-- | INclude title page in EPUB
[optEpubTitlePage] :: Opt -> Bool

-- | Number of levels to include in TOC
[optTOCDepth] :: Opt -> Int

-- | Output command-line arguments
[optDumpArgs] :: Opt -> Bool

-- | Ignore command-line arguments
[optIgnoreArgs] :: Opt -> Bool

-- | Verbosity of diagnostic output
[optVerbosity] :: Opt -> Verbosity

-- | Enable tracing
[optTrace] :: Opt -> Bool

-- | File to write JSON log output
[optLogFile] :: Opt -> Maybe FilePath

-- | Fail on warnings
[optFailIfWarnings] :: Opt -> Bool

-- | Use reference links in writing markdown, rst
[optReferenceLinks] :: Opt -> Bool

-- | location for footnotes and link references in markdown output
[optReferenceLocation] :: Opt -> ReferenceLocation

-- | position for figure caption
[optFigureCaptionPosition] :: Opt -> CaptionPosition

-- | position for table caption
[optTableCaptionPosition] :: Opt -> CaptionPosition

-- | Dpi
[optDpi] :: Opt -> Int

-- | Options for wrapping text
[optWrap] :: Opt -> WrapOption

-- | Line length in characters
[optColumns] :: Opt -> Int

-- | Filters to apply
[optFilters] :: Opt -> [Filter]
[optEmailObfuscation] :: Opt -> ObfuscationMethod
[optIdentifierPrefix] :: Opt -> Text

-- | Default classes for indented code blocks
[optIndentedCodeClasses] :: Opt -> [Text]
[optDataDir] :: Opt -> Maybe FilePath

-- | Method to output cites
[optCiteMethod] :: Opt -> CiteMethod

-- | Program to use for latex/html -&gt; pdf
[optPdfEngine] :: Opt -> Maybe String

-- | Flags to pass to the engine
[optPdfEngineOpts] :: Opt -> [String]

-- | Header level that creates slides
[optSlideLevel] :: Opt -> Maybe Int

-- | Use atx headers for markdown level 1-2
[optSetextHeaders] :: Opt -> Bool

-- | Use list tables for RST
[optListTables] :: Opt -> Bool

-- | Prefer ascii output
[optAscii] :: Opt -> Bool

-- | Default image extension
[optDefaultImageExtension] :: Opt -> Text

-- | Path to extract embedded media
[optExtractMedia] :: Opt -> Maybe FilePath

-- | Accept or reject MS Word track-changes.
[optTrackChanges] :: Opt -> TrackChanges

-- | Parse input files before combining
[optFileScope] :: Opt -> Bool

-- | Prefix for title
[optTitlePrefix] :: Opt -> Maybe Text

-- | CSS files to link to
[optCss] :: Opt -> [FilePath]

-- | How to treat ipynb output blocks
[optIpynbOutput] :: Opt -> IpynbOutput

-- | Files to include before
[optIncludeBeforeBody] :: Opt -> [FilePath]

-- | Files to include after body
[optIncludeAfterBody] :: Opt -> [FilePath]

-- | Files to include in header
[optIncludeInHeader] :: Opt -> [FilePath]

-- | Path to search for images etc
[optResourcePath] :: Opt -> [FilePath]

-- | Headers for HTTP requests
[optRequestHeaders] :: Opt -> [(Text, Text)]

-- | Disable certificate validation
[optNoCheckCertificate] :: Opt -> Bool

-- | Style of line-endings to use
[optEol] :: Opt -> LineEnding

-- | Skip HTML comments
[optStripComments] :: Opt -> Bool

-- | CSL stylesheet
[optCSL] :: Opt -> Maybe FilePath

-- | Bibliography files
[optBibliography] :: Opt -> [FilePath]

-- | Citation abbreviations
[optCitationAbbreviations] :: Opt -> Maybe FilePath
[optSandbox] :: Opt -> Bool

-- | Option parser results requesting informational output.
data OptInfo
BashCompletion :: OptInfo
ListInputFormats :: OptInfo
ListOutputFormats :: OptInfo
ListExtensions :: Maybe Text -> OptInfo
ListHighlightLanguages :: OptInfo
ListHighlightStyles :: OptInfo
PrintDefaultTemplate :: Maybe FilePath -> Text -> OptInfo
PrintDefaultDataFile :: Maybe FilePath -> Text -> OptInfo
PrintHighlightStyle :: Maybe FilePath -> Text -> OptInfo
VersionInfo :: OptInfo
Help :: OptInfo
OptError :: PandocError -> OptInfo

-- | The type of line-endings to be used when writing plain-text.
data LineEnding
LF :: LineEnding
CRLF :: LineEnding
Native :: LineEnding

-- | How to handle output blocks in ipynb.
data IpynbOutput
IpynbOutputAll :: IpynbOutput
IpynbOutputNone :: IpynbOutput
IpynbOutputBest :: IpynbOutput

-- | Type of filter and path to filter file.
data Filter
LuaFilter :: FilePath -> Filter
JSONFilter :: FilePath -> Filter

-- | Defaults for command-line options.
defaultOpts :: Opt
parseOptions :: [OptDescr (Opt -> ExceptT OptInfo IO Opt)] -> Opt -> IO (Either OptInfo Opt)
parseOptionsFromArgs :: [OptDescr (Opt -> ExceptT OptInfo IO Opt)] -> Opt -> String -> [String] -> IO (Either OptInfo Opt)

-- | A list of functions, each transforming the options data structure in
--   response to a command-line option.
options :: [OptDescr (Opt -> ExceptT OptInfo IO Opt)]

-- | Modify the given document using a filter.
applyFilters :: (PandocMonad m, MonadIO m) => ScriptingEngine -> Environment -> [Filter] -> [String] -> Pandoc -> m Pandoc

-- | Print version information with customizable features and scripting
--   engine
versionInfo :: [String] -> Maybe String -> String -> IO ()
instance GHC.Internal.Show.Show Text.Pandoc.App.PandocOutput
