| pandoc | Source code | Contents | Index

Text.Pandoc

Portability | portable
Stability | alpha
Maintainer | John 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]
stateNextExample :: Int
stateExamples :: Map String Int
stateHasChapters :: Bool

}

defaultParserState :: ParserState

data ParserContext

= ListItemState
| NullState

data QuoteContext

= InSingleQuote
| InDoubleQuote
| NoQuote

type KeyTable = Map Key Target
type NoteTable = [(String, String)]

data HeaderType

= SingleHeader Char
| DoubleHeader Char

writeNative :: WriterOptions -> Pandoc -> String
writeMarkdown :: WriterOptions -> Pandoc -> String
writePlain :: 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
writeDocbook :: WriterOptions -> Pandoc -> String
writeOpenDocument :: WriterOptions -> Pandoc -> String
writeMan :: WriterOptions -> Pandoc -> String
writeMediaWiki :: WriterOptions -> Pandoc -> String
writeRTF :: WriterOptions -> Pandoc -> String
writeODT :: Maybe FilePath -> WriterOptions -> Pandoc -> IO ByteString
writeEPUB :: Maybe String -> WriterOptions -> Pandoc -> IO ByteString

data WriterOptions = WriterOptions {

writerStandalone :: Bool
writerTemplate :: String
writerVariables :: [(String, String)]
writerEPUBMetadata :: String
writerTabStop :: Int
writerTableOfContents :: Bool
writerSlideVariant :: HTMLSlideVariant
writerIncremental :: Bool
writerXeTeX :: Bool
writerHTMLMathMethod :: HTMLMathMethod
writerIgnoreNotes :: Bool
writerNumberSections :: Bool
writerSectionDivs :: Bool
writerStrictMarkdown :: Bool
writerReferenceLinks :: Bool
writerWrapText :: Bool
writerLiterateHaskell :: Bool
writerEmailObfuscation :: ObfuscationMethod
writerIdentifierPrefix :: String
writerSourceDirectory :: FilePath
writerUserDataDir :: Maybe FilePath

}

data HTMLSlideVariant

= S5Slides
| SlidySlides
| NoSlides

data HTMLMathMethod

= PlainMath
| LaTeXMathML (Maybe String)
| JsMath (Maybe String)
| GladTeX
| WebTeX String
| MathML (Maybe String)

defaultWriterOptions :: WriterOptions
module Text.Pandoc.Templates
pandocVersion :: String

Definitions
module Text.Pandoc.Definition
Readers: converting to Pandoc format

readMarkdown | Source

:: ParserState | Parser state, including options for parser
-> String | String to parse (assuming `'\n'` line endings)
-> Pandoc |
Read markdown from an input string and return a Pandoc document.

readRST | Source

:: ParserState | Parser state, including options for parser
-> String | String to parse (assuming `'\n'` line endings)
-> Pandoc |
Parse reStructuredText string and return Pandoc document.

readLaTeX | Source

:: ParserState | Parser state, including options for parser
-> String | String to parse (assumes `'\n'` line endings)
-> Pandoc |
Parse LaTeX from string and return `Pandoc` document.

readHtml | Source

:: ParserState | Parser state
-> String | String 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 :: Bool | Parse raw HTML and LaTeX?
stateParserContext :: ParserContext | Inside list?
stateQuoteContext :: QuoteContext | Inside quoted environment?
stateSanitizeHTML :: Bool | Sanitize HTML?
stateKeys :: KeyTable | List of reference keys
stateNotes :: NoteTable | List of notes
stateTabStop :: Int | Tab stop
stateStandalone :: Bool | Parse bibliographic info?
stateTitle :: [Inline] | Title of document
stateAuthors :: [[Inline]] | Authors of document
stateDate :: [Inline] | Date of document
stateStrict :: Bool | Use strict markdown syntax?
stateSmart :: Bool | Use smart typography?
stateLiterateHaskell :: Bool | Treat input as literate haskell
stateColumns :: Int | Number of columns in terminal
stateHeaderTable :: [HeaderType] | Ordered list of header types used
stateIndentedCodeClasses :: [String] | Classes to use for indented code blocks
stateNextExample :: Int | Number of next example
stateExamples :: Map String Int | Map from example labels to numbers
stateHasChapters :: Bool | True if chapter encountered

Instances

Show ParserState

defaultParserState :: ParserState | Source

data ParserContext | Source

Constructors

ListItemState | Used when running parser on list item contents
NullState | Default state

Instances

Eq ParserContext
Show ParserContext

data QuoteContext | Source

Constructors

InSingleQuote | Used when parsing inside single quotes
InDoubleQuote | Used when parsing inside double quotes
NoQuote | Used when not parsing inside quotes

Instances

Eq QuoteContext
Show QuoteContext

type KeyTable = Map Key Target | Source

type NoteTable = [(String, String)] | Source

data HeaderType | Source

Constructors

SingleHeader Char | Single line of characters underneath
DoubleHeader Char | Lines of characters above and below

Instances

Eq HeaderType
Show HeaderType

Writers: converting from Pandoc format

writeNative :: WriterOptions -> Pandoc -> String | Source

Prettyprint Pandoc document.

writeMarkdown :: WriterOptions -> Pandoc -> String | Source

Convert Pandoc to Markdown.

writePlain :: WriterOptions -> Pandoc -> String | Source

Convert Pandoc to plain text (like markdown, but without links, pictures, or inline formatting).

writeRST :: WriterOptions -> Pandoc -> String | Source

Convert Pandoc to RST.

writeLaTeX :: WriterOptions -> Pandoc -> String | Source

Convert Pandoc to LaTeX.

writeConTeXt :: WriterOptions -> Pandoc -> String | Source

Convert Pandoc to ConTeXt.

writeTexinfo :: WriterOptions -> Pandoc -> String | Source

Convert Pandoc to Texinfo.

writeHtml :: WriterOptions -> Pandoc -> Html | Source

Convert Pandoc document to Html structure.

writeHtmlString :: WriterOptions -> Pandoc -> String | Source

Convert Pandoc document to Html string.

writeDocbook :: WriterOptions -> Pandoc -> String | Source

Convert Pandoc document to string in Docbook format.

writeOpenDocument :: WriterOptions -> Pandoc -> String | Source

Convert Pandoc document to string in OpenDocument format.

writeMan :: WriterOptions -> Pandoc -> String | Source

Convert Pandoc to Man.

writeMediaWiki :: WriterOptions -> Pandoc -> String | Source

Convert Pandoc to MediaWiki.

writeRTF :: WriterOptions -> Pandoc -> String | Source

Convert Pandoc to a string in rich text format.

writeODT | Source

:: Maybe FilePath | Path specified by --reference-odt
-> WriterOptions | Writer options
-> Pandoc | Document to convert
-> IO ByteString |
Produce an ODT file from a Pandoc document.

writeEPUB | Source

:: Maybe String | EPUB stylesheet specified at command line
-> WriterOptions | Writer options
-> Pandoc | Document to convert
-> IO ByteString |
Produce an EPUB file from a Pandoc document.

Writer options used in writers

data WriterOptions | Source

Options for writers
Constructors

WriterOptions |

writerStandalone :: Bool | Include header and footer
writerTemplate :: String | Template to use in standalone mode
writerVariables :: [(String, String)] | Variables to set in template
writerEPUBMetadata :: String | Metadata to include in EPUB
writerTabStop :: Int | Tabstop for conversion btw spaces and tabs
writerTableOfContents :: Bool | Include table of contents
writerSlideVariant :: HTMLSlideVariant | Are we writing S5 or Slidy?
writerIncremental :: Bool | True if lists should be incremental
writerXeTeX :: Bool | Create latex suitable for use by xetex
writerHTMLMathMethod :: HTMLMathMethod | How to print math in HTML
writerIgnoreNotes :: Bool | Ignore footnotes (used in making toc)
writerNumberSections :: Bool | Number sections in LaTeX
writerSectionDivs :: Bool | Put sections in div tags in HTML
writerStrictMarkdown :: Bool | Use strict markdown syntax
writerReferenceLinks :: Bool | Use reference links in writing markdown, rst
writerWrapText :: Bool | Wrap text to line length
writerLiterateHaskell :: Bool | Write as literate haskell
writerEmailObfuscation :: ObfuscationMethod | How to obfuscate emails
writerIdentifierPrefix :: String | Prefix for section & note ids in HTML
writerSourceDirectory :: FilePath | Directory path of 1st source file
writerUserDataDir :: Maybe FilePath | Path of user data directory

Instances

Show WriterOptions

data HTMLSlideVariant | Source

Varieties of HTML slide shows.
Constructors

S5Slides |
SlidySlides |
NoSlides |

Instances

Eq HTMLSlideVariant
Read HTMLSlideVariant
Show HTMLSlideVariant

data HTMLMathMethod | Source

Constructors

PlainMath |
LaTeXMathML (Maybe String) |
JsMath (Maybe String) |
GladTeX |
WebTeX String |
MathML (Maybe String) |

Instances

Eq HTMLMathMethod
Read HTMLMathMethod
Show HTMLMathMethod

defaultWriterOptions :: WriterOptions | Source

Default writer options.
Rendering templates and default templates
module Text.Pandoc.Templates
Version

pandocVersion :: String | Source

Version number of pandoc library.
Produced by Haddock version 2.4.2