git.iko.soy/typeable/pandoc
on master help sign in
Add class option for code block in RST reader
490c2b5Sidharth Kapur
src/Text/Pandoc/Readers/RST.hs+8−6
@@ -586,8 +586,9 @@ directive' = do
586 case trim top of
586 case trim top of
587 "" -> stateRstDefaultRole def
587 "" -> stateRstDefaultRole def
588 role -> role })
588 role -> role })
589− "code" -> codeblock (lookup "number-lines" fields) (trim top) body
589+ x | x == "code" || x == "code-block" ->
590+ codeblock (words $ fromMaybe [] $ lookup "class" fields)
590− "code-block" -> codeblock (lookup "number-lines" fields) (trim top) body
591+ (lookup "number-lines" fields) (trim top) body
591 "aafig" -> do
592 "aafig" -> do
592 let attribs = ("", ["aafig"], map (\(k,v) -> (k, trimr v)) fields)
593 let attribs = ("", ["aafig"], map (\(k,v) -> (k, trimr v)) fields)
593 return $ B.codeBlockWith attribs $ stripTrailingNewlines body
594 return $ B.codeBlockWith attribs $ stripTrailingNewlines body
@@ -713,12 +714,13 @@ toChunks = dropWhile null
713 . map (trim . unlines)
714 . map (trim . unlines)
714 . splitBy (all (`elem` (" \t" :: String))) . lines
715 . splitBy (all (`elem` (" \t" :: String))) . lines
715
716
716−codeblock :: Maybe String -> String -> String -> RSTParser Blocks
717+codeblock :: [String] -> Maybe String -> String -> String -> RSTParser Blocks
717−codeblock numberLines lang body =
718+codeblock classes numberLines lang body =
718 return $ B.codeBlockWith attribs $ stripTrailingNewlines body
719 return $ B.codeBlockWith attribs $ stripTrailingNewlines body
719− where attribs = ("", classes, kvs)
720+ where attribs = ("", classes', kvs)
720− classes = "sourceCode" : lang
721+ classes' = "sourceCode" : lang
721 : maybe [] (\_ -> ["numberLines"]) numberLines
722 : maybe [] (\_ -> ["numberLines"]) numberLines
723+ ++ classes
722 kvs = case numberLines of
724 kvs = case numberLines of
723 Just "" -> []
725 Just "" -> []
724 Nothing -> []
726 Nothing -> []