git.iko.soy/typeable/pandoc
on master help sign in
Options: Added phpMarkdownExtraExtensions.

And added markdown_phpextra input/output format.

commitf8db21fa16e8f8e3244f4d3fc85ea1df17aae86f authorJohn MacFarlane <fiddlosopher@gmail.com> dateThu 10 Jan 2013, 22:38 (14 years ago) parent23ab5ff
4 files changed+28−15
README+3−1 pandoc.hs−5 src/Text/Pandoc.hs+11−9 src/Text/Pandoc/Options.hs+14
README+3−1
@@ -140,6 +140,7 @@ General options
140140: Specify input format. *FORMAT* can be `native` (native Haskell),
141141 `json` (JSON version of native AST), `markdown` (pandoc's
142142 extended markdown), `markdown_strict` (original unextended markdown),
143+ `markdown_phpextra` (PHP Markdown Extra extended markdown),
143144 `textile` (Textile), `rst` (reStructuredText), `html` (HTML),
144145 `docbook` (DocBook XML), `mediawiki` (MediaWiki markup),
145146 or `latex` (LaTeX). If `+lhs` is appended to `markdown`, `rst`,
@@ -158,7 +159,8 @@ General options
158159: Specify output format. *FORMAT* can be `native` (native Haskell),
159160 `json` (JSON version of native AST), `plain` (plain text),
160161 `markdown` (pandoc's extended markdown), `markdown_strict` (original
161− unextended markdown), `rst` (reStructuredText), `html` (XHTML
162+ unextended markdown), `markdown_phpextra` (PHP Markdown extra
163+ extended markdown), `rst` (reStructuredText), `html` (XHTML
162164 1), `html5` (HTML 5), `latex` (LaTeX), `beamer` (LaTeX beamer slide show),
163165 `context` (ConTeXt), `man` (groff man), `mediawiki` (MediaWiki markup),
164166 `textile` (Textile), `org` (Emacs Org-Mode), `texinfo` (GNU Texinfo),
pandoc.hs−5
@@ -703,11 +703,6 @@ options =
703703
704704 ]
705705
706−readExtension :: String -> IO Extension
707−readExtension s = case safeRead ('E':'x':'t':'_':map toLower s) of
708− Just ext -> return ext
709− Nothing -> err 59 $ "Unknown extension: " ++ s
710−
711706-- Returns usage message
712707usageMessage :: String -> [OptDescr (Opt -> IO Opt)] -> String
713708usageMessage programName = usageInfo
src/Text/Pandoc.hs+11−9
@@ -174,19 +174,20 @@ parseFormatSpec = parse formatSpec ""
174174 '-' -> Set.delete ext
175175 _ -> Set.insert ext
176176
177+-- auxiliary function for readers:
178+markdown :: ReaderOptions -> String -> IO Pandoc
179+markdown o s = do
180+ let (doc, warnings) = readMarkdownWithWarnings o s
181+ mapM_ warn warnings
182+ return doc
183+
177184-- | Association list of formats and readers.
178185readers :: [(String, ReaderOptions -> String -> IO Pandoc)]
179186readers = [("native" , \_ s -> return $ readNative s)
180187 ,("json" , \_ s -> return $ decodeJSON s)
181− ,("markdown_strict" , \o s -> do
182− let (doc, warnings) = readMarkdownWithWarnings
183− o{ readerExtensions = strictExtensions } s
184− mapM_ warn warnings
185− return doc)
186− ,("markdown" , \o s -> do
187− let (doc, warnings) = readMarkdownWithWarnings o s
188− mapM_ warn warnings
189− return doc)
188+ ,("markdown" , markdown)
189+ ,("markdown_strict" , markdown)
190+ ,("markdown_phpextra" , markdown)
190191 ,("rst" , \o s -> return $ readRST o s)
191192 ,("mediawiki" , \o s -> return $ readMediaWiki o s)
192193 ,("docbook" , \o s -> return $ readDocBook o s)
@@ -245,6 +246,7 @@ writers = [
245246
246247getDefaultExtensions :: String -> Set Extension
247248getDefaultExtensions "markdown_strict" = strictExtensions
249+getDefaultExtensions "markdown_phpextra" = phpMarkdownExtraExtensions
248250getDefaultExtensions _ = pandocExtensions
249251
250252-- | Retrieve reader based on formatSpec (format+extensions).
src/Text/Pandoc/Options.hs+14
@@ -31,6 +31,7 @@ options.
3131module Text.Pandoc.Options ( Extension(..)
3232 , pandocExtensions
3333 , strictExtensions
34+ , phpMarkdownExtraExtensions
3435 , ReaderOptions(..)
3536 , HTMLMathMethod (..)
3637 , CiteMethod (..)
@@ -134,6 +135,19 @@ pandocExtensions = Set.fromList
134135 , Ext_implicit_header_references
135136 ]
136137
138+phpMarkdownExtraExtensions :: Set Extension
139+phpMarkdownExtraExtensions = Set.fromList
140+ [ Ext_footnotes
141+ , Ext_pipe_tables
142+ , Ext_raw_html
143+ , Ext_markdown_attribute
144+ , Ext_fenced_code_blocks
145+ , Ext_definition_lists
146+ , Ext_intraword_underscores
147+ , Ext_header_attributes
148+ , Ext_abbreviations
149+ ]
150+
137151strictExtensions :: Set Extension
138152strictExtensions = Set.fromList
139153 [ Ext_raw_html ]