summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Pancake/Reading.hs8
-rw-r--r--Pancake/Rendering.hs10
2 files changed, 9 insertions, 9 deletions
diff --git a/Pancake/Reading.hs b/Pancake/Reading.hs
index d54d7b3..686e3cf 100644
--- a/Pancake/Reading.hs
+++ b/Pancake/Reading.hs
@@ -121,7 +121,7 @@ readDoc :: BS.ByteString
-- ^ A parsed document.
readDoc out dt uri = do
term <- setupTermFromEnv
- let reader = either (const plain) id $
+ let (reader, exts) = either (const plain) id $
maybe (Left "no type suggestions") (byExtension . ('.':)) dt
<|> case (uriScheme uri, map toLower $ takeExtension $ uriPath uri) of
-- some exceptions and special cases (might be better to make
@@ -141,14 +141,14 @@ readDoc out dt uri = do
_ -> byExtension ext <|> gopher
(_, ext) -> byExtension ext
cols = fromMaybe 80 $ getCapability term termColumns
- opts = def { P.readerColumns = cols }
+ opts = def { P.readerColumns = cols, P.readerExtensions = exts }
case reader of
- (P.TextReader f, _) -> case decodeUtf8' out of
+ P.TextReader f -> case decodeUtf8' out of
Left err -> do
putErrLn $ show err
P.runIO $ f opts $ decodeLatin1 out
Right r -> P.runIO $ f opts r
- (P.ByteStringReader f, _) -> P.runIO $ f opts $ BL.fromStrict out
+ P.ByteStringReader f -> P.runIO $ f opts $ BL.fromStrict out
where
http ext = byExtension ext <|> html
html = P.getReader "html"
diff --git a/Pancake/Rendering.hs b/Pancake/Rendering.hs
index d7742ab..04f3f57 100644
--- a/Pancake/Rendering.hs
+++ b/Pancake/Rendering.hs
@@ -449,13 +449,13 @@ renderBlock (P.Div attr b) = do
renderBlocks b
renderBlock P.Null = pure ()
--- | Renders a block element followed by an empy line.
-renderBlockLn :: P.Block -> Renderer ()
-renderBlockLn b = renderBlock b >> storeLines [[]]
+-- | Renders block elements with empy lines between them.
+spacedBlocks :: [P.Block] -> Renderer ()
+spacedBlocks b = sequence_ (intersperse (storeLines [[]]) $ map renderBlock b)
-- | Renders multiple block elements.
renderBlocks :: [P.Block] -> Renderer ()
-renderBlocks b = withIndent $ mapM_ renderBlockLn b
+renderBlocks b = withIndent $ spacedBlocks b
-- | Renders a document.
renderDoc :: Int
@@ -467,4 +467,4 @@ renderDoc :: Int
-> [RendererOutput]
-- ^ Rendered document.
renderDoc cols ds (P.Pandoc _ blocks) =
- runRenderer cols 0 0 1 ds $ mapM_ renderBlockLn blocks
+ runRenderer cols 0 0 1 ds $ spacedBlocks blocks