From e0d234e54d18a82a7c90aa3946f890140e200051 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Mon, 16 Mar 2015 22:20:42 -0700 Subject: Added CommonMark reader using cmark (libcmark bindings). - Added commonmark as an input format. - Added `Text.Pandoc.Readers.CommonMark.readCommonMark`. - For now, we use the markdown writer to generate benchmark text for the CommonMark reader. We can change this when we get a writer. --- benchmark/benchmark-pandoc.hs | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'benchmark') diff --git a/benchmark/benchmark-pandoc.hs b/benchmark/benchmark-pandoc.hs index bf67eaa4d..2a34696b9 100644 --- a/benchmark/benchmark-pandoc.hs +++ b/benchmark/benchmark-pandoc.hs @@ -26,12 +26,18 @@ import Debug.Trace (trace) readerBench :: Pandoc -> (String, ReaderOptions -> String -> IO Pandoc) -> Maybe Benchmark -readerBench doc (name, reader) = case lookup name writers of - Just (PureStringWriter writer) -> - let inp = writer def{ writerWrapText = True} doc - in return $ bench (name ++ " reader") $ nfIO $ - (reader def{ readerSmart = True }) inp - _ -> trace ("\nCould not find writer for " ++ name ++ "\n") Nothing +readerBench doc (name, reader) = + case lookup name writers of + Just (PureStringWriter writer) -> + let inp = writer def{ writerWrapText = True} doc + in return $ bench (name ++ " reader") $ nfIO $ + (reader def{ readerSmart = True }) inp + _ | name == "commonmark" -> + let inp = writeMarkdown def{ writerWrapText = True} doc + in return $ bench (name ++ " reader") $ nfIO $ + (reader def{ readerSmart = True }) inp + | otherwise -> trace ("\nCould not find writer for " ++ name ++ + "\n") Nothing writerBench :: Pandoc -> (String, WriterOptions -> Pandoc -> String) -- cgit v1.2.3