Options: Added phpMarkdownExtraExtensions.

And added markdown_phpextra input/output format.
This commit is contained in:
John MacFarlane 2013-01-10 22:38:07 -08:00
parent 23ab5ffcb0
commit f8db21fa16
4 changed files with 28 additions and 15 deletions

4
README
View file

@ -140,6 +140,7 @@ General options
: Specify input format. *FORMAT* can be `native` (native Haskell),
`json` (JSON version of native AST), `markdown` (pandoc's
extended markdown), `markdown_strict` (original unextended markdown),
`markdown_phpextra` (PHP Markdown Extra extended markdown),
`textile` (Textile), `rst` (reStructuredText), `html` (HTML),
`docbook` (DocBook XML), `mediawiki` (MediaWiki markup),
or `latex` (LaTeX). If `+lhs` is appended to `markdown`, `rst`,
@ -158,7 +159,8 @@ General options
: Specify output format. *FORMAT* can be `native` (native Haskell),
`json` (JSON version of native AST), `plain` (plain text),
`markdown` (pandoc's extended markdown), `markdown_strict` (original
unextended markdown), `rst` (reStructuredText), `html` (XHTML
unextended markdown), `markdown_phpextra` (PHP Markdown extra
extended markdown), `rst` (reStructuredText), `html` (XHTML
1), `html5` (HTML 5), `latex` (LaTeX), `beamer` (LaTeX beamer slide show),
`context` (ConTeXt), `man` (groff man), `mediawiki` (MediaWiki markup),
`textile` (Textile), `org` (Emacs Org-Mode), `texinfo` (GNU Texinfo),

View file

@ -703,11 +703,6 @@ options =
]
readExtension :: String -> IO Extension
readExtension s = case safeRead ('E':'x':'t':'_':map toLower s) of
Just ext -> return ext
Nothing -> err 59 $ "Unknown extension: " ++ s
-- Returns usage message
usageMessage :: String -> [OptDescr (Opt -> IO Opt)] -> String
usageMessage programName = usageInfo

View file

@ -174,19 +174,20 @@ parseFormatSpec = parse formatSpec ""
'-' -> Set.delete ext
_ -> Set.insert ext
-- auxiliary function for readers:
markdown :: ReaderOptions -> String -> IO Pandoc
markdown o s = do
let (doc, warnings) = readMarkdownWithWarnings o s
mapM_ warn warnings
return doc
-- | Association list of formats and readers.
readers :: [(String, ReaderOptions -> String -> IO Pandoc)]
readers = [("native" , \_ s -> return $ readNative s)
,("json" , \_ s -> return $ decodeJSON s)
,("markdown_strict" , \o s -> do
let (doc, warnings) = readMarkdownWithWarnings
o{ readerExtensions = strictExtensions } s
mapM_ warn warnings
return doc)
,("markdown" , \o s -> do
let (doc, warnings) = readMarkdownWithWarnings o s
mapM_ warn warnings
return doc)
,("markdown" , markdown)
,("markdown_strict" , markdown)
,("markdown_phpextra" , markdown)
,("rst" , \o s -> return $ readRST o s)
,("mediawiki" , \o s -> return $ readMediaWiki o s)
,("docbook" , \o s -> return $ readDocBook o s)
@ -245,6 +246,7 @@ writers = [
getDefaultExtensions :: String -> Set Extension
getDefaultExtensions "markdown_strict" = strictExtensions
getDefaultExtensions "markdown_phpextra" = phpMarkdownExtraExtensions
getDefaultExtensions _ = pandocExtensions
-- | Retrieve reader based on formatSpec (format+extensions).

View file

@ -31,6 +31,7 @@ options.
module Text.Pandoc.Options ( Extension(..)
, pandocExtensions
, strictExtensions
, phpMarkdownExtraExtensions
, ReaderOptions(..)
, HTMLMathMethod (..)
, CiteMethod (..)
@ -134,6 +135,19 @@ pandocExtensions = Set.fromList
, Ext_implicit_header_references
]
phpMarkdownExtraExtensions :: Set Extension
phpMarkdownExtraExtensions = Set.fromList
[ Ext_footnotes
, Ext_pipe_tables
, Ext_raw_html
, Ext_markdown_attribute
, Ext_fenced_code_blocks
, Ext_definition_lists
, Ext_intraword_underscores
, Ext_header_attributes
, Ext_abbreviations
]
strictExtensions :: Set Extension
strictExtensions = Set.fromList
[ Ext_raw_html ]