git.iko.soy/typeable/pandoc
on master help sign in
hlint some writers
c5572fcAlexander Krotov
src/Text/Pandoc/Writers/AsciiDoc.hs+2−2
@@ -285,7 +285,7 @@ blockToAsciiDoc opts (DefinitionList items) = do
285 contents <- mapM (definitionListItemToAsciiDoc opts) items
285 contents <- mapM (definitionListItemToAsciiDoc opts) items
286 return $ cat contents <> blankline
286 return $ cat contents <> blankline
287blockToAsciiDoc opts (Div (ident,_,_) bs) = do
287blockToAsciiDoc opts (Div (ident,_,_) bs) = do
288− let identifier = if null ident then empty else ("[[" <> text ident <> "]]")
288+ let identifier = if null ident then empty else "[[" <> text ident <> "]]"
289 contents <- blockListToAsciiDoc opts bs
289 contents <- blockListToAsciiDoc opts bs
290 return $ identifier $$ contents
290 return $ identifier $$ contents
291
291
@@ -492,6 +492,6 @@ inlineToAsciiDoc opts (Note [Plain inlines]) = do
492-- asciidoc can't handle blank lines in notes
492-- asciidoc can't handle blank lines in notes
493inlineToAsciiDoc _ (Note _) = return "[multiblock footnote omitted]"
493inlineToAsciiDoc _ (Note _) = return "[multiblock footnote omitted]"
494inlineToAsciiDoc opts (Span (ident,_,_) ils) = do
494inlineToAsciiDoc opts (Span (ident,_,_) ils) = do
495− let identifier = if null ident then empty else ("[[" <> text ident <> "]]")
495+ let identifier = if null ident then empty else "[[" <> text ident <> "]]"
496 contents <- inlineListToAsciiDoc opts ils
496 contents <- inlineListToAsciiDoc opts ils
497 return $ identifier <> contents
497 return $ identifier <> contents
src/Text/Pandoc/Writers/ConTeXt.hs+1−2
@@ -329,8 +329,7 @@ alignToConTeXt align = case align of
329 AlignDefault -> empty
329 AlignDefault -> empty
330
330
331listItemToConTeXt :: PandocMonad m => [Block] -> WM m Doc
331listItemToConTeXt :: PandocMonad m => [Block] -> WM m Doc
332−listItemToConTeXt list = blockListToConTeXt list >>=
332+listItemToConTeXt list = (("\\item" $$) . nest 2) <$> blockListToConTeXt list
333− return . ("\\item" $$) . nest 2
334
333
335defListItemToConTeXt :: PandocMonad m => ([Inline], [[Block]]) -> WM m Doc
334defListItemToConTeXt :: PandocMonad m => ([Inline], [[Block]]) -> WM m Doc
336defListItemToConTeXt (term, defs) = do
335defListItemToConTeXt (term, defs) = do
src/Text/Pandoc/Writers/EPUB.hs+1−1
@@ -801,7 +801,7 @@ pandocToEPUB version opts doc@(Pandoc meta _) = do
801 [ unode "a" ! [("href", "text/cover.xhtml")
801 [ unode "a" ! [("href", "text/cover.xhtml")
802 ,("epub:type", "cover")] $
802 ,("epub:type", "cover")] $
803 "Cover"] |
803 "Cover"] |
804− epubCoverImage metadata /= Nothing
804+ isJust (epubCoverImage metadata)
805 ] ++
805 ] ++
806 [ unode "li"
806 [ unode "li"
807 [ unode "a" ! [("href", "#toc")
807 [ unode "a" ! [("href", "#toc")
src/Text/Pandoc/Writers/FB2.hs+1−1
@@ -119,7 +119,7 @@ description meta' = do
119 let as = authors meta'
119 let as = authors meta'
120 dd <- docdate meta'
120 dd <- docdate meta'
121 annotation <- case lookupMeta "abstract" meta' of
121 annotation <- case lookupMeta "abstract" meta' of
122− Just (MetaBlocks bs) -> (list . el "annotation") <$> (cMapM blockToXml $ map unPlain bs)
122+ Just (MetaBlocks bs) -> (list . el "annotation") <$> cMapM blockToXml (map unPlain bs)
123 _ -> pure mempty
123 _ -> pure mempty
124 let lang = case lookupMeta "lang" meta' of
124 let lang = case lookupMeta "lang" meta' of
125 Just (MetaInlines [Str s]) -> [el "lang" $ iso639 s]
125 Just (MetaInlines [Str s]) -> [el "lang" $ iso639 s]
src/Text/Pandoc/Writers/Haddock.hs+2−2
@@ -207,13 +207,13 @@ blockListToHaddock :: PandocMonad m
207 -> [Block] -- ^ List of block elements
207 -> [Block] -- ^ List of block elements
208 -> StateT WriterState m Doc
208 -> StateT WriterState m Doc
209blockListToHaddock opts blocks =
209blockListToHaddock opts blocks =
210− mapM (blockToHaddock opts) blocks >>= return . cat
210+ cat <$> mapM (blockToHaddock opts) blocks
211
211
212-- | Convert list of Pandoc inline elements to haddock.
212-- | Convert list of Pandoc inline elements to haddock.
213inlineListToHaddock :: PandocMonad m
213inlineListToHaddock :: PandocMonad m
214 => WriterOptions -> [Inline] -> StateT WriterState m Doc
214 => WriterOptions -> [Inline] -> StateT WriterState m Doc
215inlineListToHaddock opts lst =
215inlineListToHaddock opts lst =
216− mapM (inlineToHaddock opts) lst >>= return . cat
216+ cat <$> mapM (inlineToHaddock opts) lst
217
217
218-- | Convert Pandoc inline element to haddock.
218-- | Convert Pandoc inline element to haddock.
219inlineToHaddock :: PandocMonad m
219inlineToHaddock :: PandocMonad m
src/Text/Pandoc/Writers/Man.hs+2−2
@@ -325,11 +325,11 @@ blockListToMan :: PandocMonad m
325 -> [Block] -- ^ List of block elements
325 -> [Block] -- ^ List of block elements
326 -> StateT WriterState m Doc
326 -> StateT WriterState m Doc
327blockListToMan opts blocks =
327blockListToMan opts blocks =
328− mapM (blockToMan opts) blocks >>= (return . vcat)
328+ vcat <$> mapM (blockToMan opts) blocks
329
329
330-- | Convert list of Pandoc inline elements to man.
330-- | Convert list of Pandoc inline elements to man.
331inlineListToMan :: PandocMonad m => WriterOptions -> [Inline] -> StateT WriterState m Doc
331inlineListToMan :: PandocMonad m => WriterOptions -> [Inline] -> StateT WriterState m Doc
332−inlineListToMan opts lst = mapM (inlineToMan opts) lst >>= (return . hcat)
332+inlineListToMan opts lst = hcat <$> mapM (inlineToMan opts) lst
333
333
334-- | Convert Pandoc inline element to man.
334-- | Convert Pandoc inline element to man.
335inlineToMan :: PandocMonad m => WriterOptions -> Inline -> StateT WriterState m Doc
335inlineToMan :: PandocMonad m => WriterOptions -> Inline -> StateT WriterState m Doc
src/Text/Pandoc/Writers/Ms.hs+1−1
@@ -434,7 +434,7 @@ blockListToMs :: PandocMonad m
434 -> [Block] -- ^ List of block elements
434 -> [Block] -- ^ List of block elements
435 -> MS m Doc
435 -> MS m Doc
436blockListToMs opts blocks =
436blockListToMs opts blocks =
437− mapM (blockToMs opts) blocks >>= (return . vcat)
437+ vcat <$> mapM (blockToMs opts) blocks
438
438
439-- | Convert list of Pandoc inline elements to ms.
439-- | Convert list of Pandoc inline elements to ms.
440inlineListToMs :: PandocMonad m => WriterOptions -> [Inline] -> MS m Doc
440inlineListToMs :: PandocMonad m => WriterOptions -> [Inline] -> MS m Doc
src/Text/Pandoc/Writers/Texinfo.hs+7−10
@@ -346,12 +346,9 @@ collectNodes :: Int -> [Block] -> [Block]
346collectNodes _ [] = []
346collectNodes _ [] = []
347collectNodes level (x:xs) =
347collectNodes level (x:xs) =
348 case x of
348 case x of
349− (Header hl _ _) ->
349+ (Header hl _ _) | hl < level -> []
350− if hl < level
351− then []
352− else if hl == level
353− then x : collectNodes level xs
350+ | hl == level -> x : collectNodes level xs
354− else collectNodes level xs
351+ | otherwise -> collectNodes level xs
355 _ ->
352 _ ->
356 collectNodes level xs
353 collectNodes level xs
357
354
@@ -389,7 +386,7 @@ defListItemToTexinfo (term, defs) = do
389inlineListToTexinfo :: PandocMonad m
386inlineListToTexinfo :: PandocMonad m
390 => [Inline] -- ^ Inlines to convert
387 => [Inline] -- ^ Inlines to convert
391 -> TI m Doc
388 -> TI m Doc
392−inlineListToTexinfo lst = mapM inlineToTexinfo lst >>= return . hcat
389+inlineListToTexinfo lst = hcat <$> mapM inlineToTexinfo lst
393
390
394-- | Convert list of inline elements to Texinfo acceptable for a node name.
391-- | Convert list of inline elements to Texinfo acceptable for a node name.
395inlineListForNode :: PandocMonad m
392inlineListForNode :: PandocMonad m
@@ -411,10 +408,10 @@ inlineToTexinfo (Span _ lst) =
411 inlineListToTexinfo lst
408 inlineListToTexinfo lst
412
409
413inlineToTexinfo (Emph lst) =
410inlineToTexinfo (Emph lst) =
414− inlineListToTexinfo lst >>= return . inCmd "emph"
411+ inCmd "emph" <$> inlineListToTexinfo lst
415
412
416inlineToTexinfo (Strong lst) =
413inlineToTexinfo (Strong lst) =
417− inlineListToTexinfo lst >>= return . inCmd "strong"
414+ inCmd "strong" <$> inlineListToTexinfo lst
418
415
419inlineToTexinfo (Strikeout lst) = do
416inlineToTexinfo (Strikeout lst) = do
420 modify $ \st -> st{ stStrikeout = True }
417 modify $ \st -> st{ stStrikeout = True }
@@ -430,7 +427,7 @@ inlineToTexinfo (Subscript lst) = do
430 return $ text "@sub{" <> contents <> char '}'
427 return $ text "@sub{" <> contents <> char '}'
431
428
432inlineToTexinfo (SmallCaps lst) =
429inlineToTexinfo (SmallCaps lst) =
433− inlineListToTexinfo lst >>= return . inCmd "sc"
430+ inCmd "sc" <$> inlineListToTexinfo lst
434
431
435inlineToTexinfo (Code _ str) =
432inlineToTexinfo (Code _ str) =
436 return $ text $ "@code{" ++ stringToTexinfo str ++ "}"
433 return $ text $ "@code{" ++ stringToTexinfo str ++ "}"
src/Text/Pandoc/Writers/Textile.hs+4−4
@@ -73,7 +73,7 @@ pandocToTextile opts (Pandoc meta blocks) = do
73 (inlineListToTextile opts) meta
73 (inlineListToTextile opts) meta
74 body <- blockListToTextile opts blocks
74 body <- blockListToTextile opts blocks
75 notes <- gets $ unlines . reverse . stNotes
75 notes <- gets $ unlines . reverse . stNotes
76− let main = pack $ body ++ if null notes then "" else ("\n\n" ++ notes)
76+ let main = pack $ body ++ if null notes then "" else "\n\n" ++ notes
77 let context = defField "body" main metadata
77 let context = defField "body" main metadata
78 case writerTemplate opts of
78 case writerTemplate opts of
79 Nothing -> return main
79 Nothing -> return main
@@ -154,7 +154,7 @@ blockToTextile _ HorizontalRule = return "<hr />\n"
154
154
155blockToTextile opts (Header level (ident,classes,keyvals) inlines) = do
155blockToTextile opts (Header level (ident,classes,keyvals) inlines) = do
156 contents <- inlineListToTextile opts inlines
156 contents <- inlineListToTextile opts inlines
157− let identAttr = if null ident then "" else ('#':ident)
157+ let identAttr = if null ident then "" else '#':ident
158 let attribs = if null identAttr && null classes
158 let attribs = if null identAttr && null classes
159 then ""
159 then ""
160 else "(" ++ unwords classes ++ identAttr ++ ")"
160 else "(" ++ unwords classes ++ identAttr ++ ")"
@@ -382,13 +382,13 @@ blockListToTextile :: PandocMonad m
382 -> [Block] -- ^ List of block elements
382 -> [Block] -- ^ List of block elements
383 -> TW m String
383 -> TW m String
384blockListToTextile opts blocks =
384blockListToTextile opts blocks =
385− mapM (blockToTextile opts) blocks >>= return . vcat
385+ vcat <$> mapM (blockToTextile opts) blocks
386
386
387-- | Convert list of Pandoc inline elements to Textile.
387-- | Convert list of Pandoc inline elements to Textile.
388inlineListToTextile :: PandocMonad m
388inlineListToTextile :: PandocMonad m
389 => WriterOptions -> [Inline] -> TW m String
389 => WriterOptions -> [Inline] -> TW m String
390inlineListToTextile opts lst =
390inlineListToTextile opts lst =
391− mapM (inlineToTextile opts) lst >>= return . concat
391+ concat <$> mapM (inlineToTextile opts) lst
392
392
393-- | Convert Pandoc inline element to Textile.
393-- | Convert Pandoc inline element to Textile.
394inlineToTextile :: PandocMonad m => WriterOptions -> Inline -> TW m String
394inlineToTextile :: PandocMonad m => WriterOptions -> Inline -> TW m String