pandoc-1.4: Conversion between markup formatsSource codeContentsIndex
Text.Pandoc
Portabilityportable
Stabilityalpha
MaintainerJohn MacFarlane <jgm@berkeley.edu>
Contents
Definitions
Readers: converting to Pandoc format
Parser state used in readers
Writers: converting from Pandoc format
Writer options used in writers
Rendering templates and default templates
Version
Description

This helper module exports the main writers, readers, and data structure definitions from the Pandoc libraries.

A typical application will chain together a reader and a writer to convert strings from one format to another. For example, the following simple program will act as a filter converting markdown fragments to reStructuredText, using reference-style links instead of inline links:

 module Main where
 import Text.Pandoc
 -- include the following two lines only if you're using ghc < 6.12:
 import Prelude hiding (getContents, putStrLn)
 import System.IO.UTF8

 markdownToRST :: String -> String
 markdownToRST =
   (writeRST defaultWriterOptions {writerReferenceLinks = True}) .
   readMarkdown defaultParserState
 
 main = getContents >>= putStrLn . markdownToRST

Note: all of the readers assume that the input text has '\n' line endings. So if you get your input text from a web form, you should remove '\r' characters using filter (/='\r').

Synopsis
module Text.Pandoc.Definition
readMarkdown :: ParserState -> String -> Pandoc
readRST :: ParserState -> String -> Pandoc
readLaTeX :: ParserState -> String -> Pandoc
readHtml :: ParserState -> String -> Pandoc
data ParserState = ParserState {
stateParseRaw :: Bool
stateParserContext :: ParserContext
stateQuoteContext :: QuoteContext
stateSanitizeHTML :: Bool
stateKeys :: KeyTable
stateNotes :: NoteTable
stateTabStop :: Int
stateStandalone :: Bool
stateTitle :: [Inline]
stateAuthors :: [[Inline]]
stateDate :: [Inline]
stateStrict :: Bool
stateSmart :: Bool
stateLiterateHaskell :: Bool
stateColumns :: Int
stateHeaderTable :: [HeaderType]
stateIndentedCodeClasses :: [String]
}
defaultParserState :: ParserState
data ParserContext
= ListItemState
| NullState
data QuoteContext
= InSingleQuote
| InDoubleQuote
| NoQuote
type KeyTable = [([Inline], Target)]
type NoteTable = [(String, String)]
data HeaderType
= SingleHeader Char
| DoubleHeader Char
writeMarkdown :: WriterOptions -> Pandoc -> String
writeRST :: WriterOptions -> Pandoc -> String
writeLaTeX :: WriterOptions -> Pandoc -> String
writeConTeXt :: WriterOptions -> Pandoc -> String
writeTexinfo :: WriterOptions -> Pandoc -> String
writeHtml :: WriterOptions -> Pandoc -> Html
writeHtmlString :: WriterOptions -> Pandoc -> String
writeS5 :: WriterOptions -> Pandoc -> Html
writeS5String :: WriterOptions -> Pandoc -> String
writeDocbook :: WriterOptions -> Pandoc -> String
writeOpenDocument :: WriterOptions -> Pandoc -> String
writeMan :: WriterOptions -> Pandoc -> String
writeMediaWiki :: WriterOptions -> Pandoc -> String
writeRTF :: WriterOptions -> Pandoc -> String
prettyPandoc :: Pandoc -> String
data WriterOptions = WriterOptions {
writerStandalone :: Bool
writerTemplate :: String
writerVariables :: [(String, String)]
writerIncludeBefore :: String
writerIncludeAfter :: String
writerTabStop :: Int
writerTableOfContents :: Bool
writerS5 :: Bool
writerXeTeX :: Bool
writerHTMLMathMethod :: HTMLMathMethod
writerIgnoreNotes :: Bool
writerIncremental :: Bool
writerNumberSections :: Bool
writerStrictMarkdown :: Bool
writerReferenceLinks :: Bool
writerWrapText :: Bool
writerLiterateHaskell :: Bool
writerEmailObfuscation :: ObfuscationMethod
writerIdentifierPrefix :: String
}
data HTMLMathMethod
= PlainMath
| LaTeXMathML (Maybe String)
| JsMath (Maybe String)
| GladTeX
| MimeTeX String
defaultWriterOptions :: WriterOptions
module Text.Pandoc.Templates
pandocVersion :: String
Definitions
module Text.Pandoc.Definition
Readers: converting to Pandoc format
readMarkdownSource
:: ParserStateParser state, including options for parser
-> StringString to parse (assuming '\n' line endings)
-> Pandoc
Read markdown from an input string and return a Pandoc document.
readRSTSource
:: ParserStateParser state, including options for parser
-> StringString to parse (assuming '\n' line endings)
-> Pandoc
Parse reStructuredText string and return Pandoc document.
readLaTeXSource
:: ParserStateParser state, including options for parser
-> StringString to parse (assumes '\n' line endings)
-> Pandoc
Parse LaTeX from string and return Pandoc document.
readHtmlSource
:: ParserStateParser state
-> StringString to parse (assumes '\n' line endings)
-> Pandoc
Convert HTML-formatted string to Pandoc document.
Parser state used in readers
data ParserState Source
Parsing options.
Constructors
ParserState
stateParseRaw :: BoolParse raw HTML and LaTeX?
stateParserContext :: ParserContextInside list?
stateQuoteContext :: QuoteContextInside quoted environment?
stateSanitizeHTML :: BoolSanitize HTML?
stateKeys :: KeyTableList of reference keys
stateNotes :: NoteTableList of notes
stateTabStop :: IntTab stop
stateStandalone :: BoolParse bibliographic info?
stateTitle :: [Inline]Title of document
stateAuthors :: [[Inline]]Authors of document
stateDate :: [Inline]Date of document
stateStrict :: BoolUse strict markdown syntax?
stateSmart :: BoolUse smart typography?
stateLiterateHaskell :: BoolTreat input as literate haskell
stateColumns :: IntNumber of columns in terminal
stateHeaderTable :: [HeaderType]Ordered list of header types used
stateIndentedCodeClasses :: [String]Classes to use for indented code blocks
show/hide Instances
defaultParserState :: ParserStateSource
data ParserContext Source
Constructors
ListItemStateUsed when running parser on list item contents
NullStateDefault state
show/hide Instances
data QuoteContext Source
Constructors
InSingleQuoteUsed when parsing inside single quotes
InDoubleQuoteUsed when parsing inside double quotes
NoQuoteUsed when not parsing inside quotes
show/hide Instances
type KeyTable = [([Inline], Target)]Source
type NoteTable = [(String, String)]Source
data HeaderType Source
Constructors
SingleHeader CharSingle line of characters underneath
DoubleHeader CharLines of characters above and below
show/hide Instances
Writers: converting from Pandoc format
writeMarkdown :: WriterOptions -> Pandoc -> StringSource
Convert Pandoc to Markdown.
writeRST :: WriterOptions -> Pandoc -> StringSource
Convert Pandoc to RST.
writeLaTeX :: WriterOptions -> Pandoc -> StringSource
Convert Pandoc to LaTeX.
writeConTeXt :: WriterOptions -> Pandoc -> StringSource
Convert Pandoc to ConTeXt.
writeTexinfo :: WriterOptions -> Pandoc -> StringSource
Convert Pandoc to Texinfo.
writeHtml :: WriterOptions -> Pandoc -> HtmlSource
Convert Pandoc document to Html structure.
writeHtmlString :: WriterOptions -> Pandoc -> StringSource
Convert Pandoc document to Html string.
writeS5 :: WriterOptions -> Pandoc -> HtmlSource
Converts Pandoc document to an S5 HTML presentation (Html structure).
writeS5String :: WriterOptions -> Pandoc -> StringSource
Converts Pandoc document to an S5 HTML presentation (string).
writeDocbook :: WriterOptions -> Pandoc -> StringSource
Convert Pandoc document to string in Docbook format.
writeOpenDocument :: WriterOptions -> Pandoc -> StringSource
Convert Pandoc document to string in OpenDocument format.
writeMan :: WriterOptions -> Pandoc -> StringSource
Convert Pandoc to Man.
writeMediaWiki :: WriterOptions -> Pandoc -> StringSource
Convert Pandoc to MediaWiki.
writeRTF :: WriterOptions -> Pandoc -> StringSource
Convert Pandoc to a string in rich text format.
prettyPandoc :: Pandoc -> StringSource
Prettyprint Pandoc document.
Writer options used in writers
data WriterOptions Source
Options for writers
Constructors
WriterOptions
writerStandalone :: BoolInclude header and footer
writerTemplate :: StringTemplate to use in standalone mode
writerVariables :: [(String, String)]Variables to set in template
writerIncludeBefore :: StringText to include before the body
writerIncludeAfter :: StringText to include after the body
writerTabStop :: IntTabstop for conversion btw spaces and tabs
writerTableOfContents :: BoolInclude table of contents
writerS5 :: BoolWe're writing S5
writerXeTeX :: BoolCreate latex suitable for use by xetex
writerHTMLMathMethod :: HTMLMathMethodHow to print math in HTML
writerIgnoreNotes :: BoolIgnore footnotes (used in making toc)
writerIncremental :: BoolIncremental S5 lists
writerNumberSections :: BoolNumber sections in LaTeX
writerStrictMarkdown :: BoolUse strict markdown syntax
writerReferenceLinks :: BoolUse reference links in writing markdown, rst
writerWrapText :: BoolWrap text to line length
writerLiterateHaskell :: BoolWrite as literate haskell
writerEmailObfuscation :: ObfuscationMethodHow to obfuscate emails
writerIdentifierPrefix :: StringPrefix for section & note ids in HTML
show/hide Instances
data HTMLMathMethod Source
Constructors
PlainMath
LaTeXMathML (Maybe String)
JsMath (Maybe String)
GladTeX
MimeTeX String
show/hide Instances
defaultWriterOptions :: WriterOptionsSource
Default writer options.
Rendering templates and default templates
module Text.Pandoc.Templates
Version
pandocVersion :: StringSource
Version number of pandoc library.
Produced by Haddock version 2.4.2