git.iko.soy/typeable/pandoc
on master help sign in
Support :number-lines: in RST code output.
48be39aJohn MacFarlane
src/Text/Pandoc/Readers/LaTeX.hs+1−2
@@ -772,8 +772,7 @@ verbCmd = do
772keyval :: LP (String, String)
772keyval :: LP (String, String)
773keyval = try $ do
773keyval = try $ do
774 key <- many1 alphaNum
774 key <- many1 alphaNum
775− char '='
776− val <- many1 alphaNum
775+ val <- option "" $ char '=' >> many1 alphaNum
777 skipMany spaceChar
776 skipMany spaceChar
778 optional (char ',')
777 optional (char ',')
779 skipMany spaceChar
778 skipMany spaceChar
src/Text/Pandoc/Writers/RST.hs+6−2
@@ -171,9 +171,13 @@ blockToRST (Header level _ inlines) = do
171 let headerChar = if level > 5 then ' ' else "=-~^'" !! (level - 1)
171 let headerChar = if level > 5 then ' ' else "=-~^'" !! (level - 1)
172 let border = text $ replicate (offset contents) headerChar
172 let border = text $ replicate (offset contents) headerChar
173 return $ nowrap $ contents $$ border $$ blankline
173 return $ nowrap $ contents $$ border $$ blankline
174−blockToRST (CodeBlock (_,classes,_) str) = do
174+blockToRST (CodeBlock (_,classes,kvs) str) = do
175 opts <- stOptions <$> get
175 opts <- stOptions <$> get
176 let tabstop = writerTabStop opts
176 let tabstop = writerTabStop opts
177+ let startnum = maybe "" (\x -> " " <> text x) $ lookup "startFrom" kvs
178+ let numberlines = if "numberLines" `elem` classes
179+ then " :number-lines:" <> startnum
180+ else empty
177 if "haskell" `elem` classes && "literate" `elem` classes &&
181 if "haskell" `elem` classes && "literate" `elem` classes &&
178 isEnabled Ext_literate_haskell opts
182 isEnabled Ext_literate_haskell opts
179 then return $ prefixed "> " (text str) $$ blankline
183 then return $ prefixed "> " (text str) $$ blankline
@@ -181,7 +185,7 @@ blockToRST (CodeBlock (_,classes,_) str) = do
181 (case [c | c <- classes,
185 (case [c | c <- classes,
182 c `notElem` ["sourceCode","literate","numberLines"]] of
186 c `notElem` ["sourceCode","literate","numberLines"]] of
183 [] -> "::"
187 [] -> "::"
184− (lang:_) -> ".. code:: " <> text lang)
188+ (lang:_) -> (".. code:: " <> text lang) $$ numberlines)
185 $+$ nest tabstop (text str) $$ blankline
189 $+$ nest tabstop (text str) $$ blankline
186blockToRST (BlockQuote blocks) = do
190blockToRST (BlockQuote blocks) = do
187 tabstop <- get >>= (return . writerTabStop . stOptions)
191 tabstop <- get >>= (return . writerTabStop . stOptions)