diff options
author | John MacFarlane <fiddlosopher@gmail.com> | 2013-03-06 10:13:12 -0800 |
---|---|---|
committer | John MacFarlane <fiddlosopher@gmail.com> | 2013-03-06 10:13:12 -0800 |
commit | 48be39ae2a023b566ee26ebde5eb1ab743d1269e (patch) | |
tree | 340ae37853fd0d10c3d2a262ae0a194dee9bf8c0 /src/Text/Pandoc | |
parent | f7d37c97bbaf79109198a12e247bff68eb1f71b1 (diff) | |
download | pandoc-48be39ae2a023b566ee26ebde5eb1ab743d1269e.tar.gz |
Support :number-lines: in RST code output.
Diffstat (limited to 'src/Text/Pandoc')
-rw-r--r-- | src/Text/Pandoc/Readers/LaTeX.hs | 3 | ||||
-rw-r--r-- | src/Text/Pandoc/Writers/RST.hs | 8 |
2 files changed, 7 insertions, 4 deletions
diff --git a/src/Text/Pandoc/Readers/LaTeX.hs b/src/Text/Pandoc/Readers/LaTeX.hs index b6f09bbb1..5a2ab599b 100644 --- a/src/Text/Pandoc/Readers/LaTeX.hs +++ b/src/Text/Pandoc/Readers/LaTeX.hs @@ -772,8 +772,7 @@ verbCmd = do keyval :: LP (String, String) keyval = try $ do key <- many1 alphaNum - char '=' - val <- many1 alphaNum + val <- option "" $ char '=' >> many1 alphaNum skipMany spaceChar optional (char ',') skipMany spaceChar diff --git a/src/Text/Pandoc/Writers/RST.hs b/src/Text/Pandoc/Writers/RST.hs index 78b8fcd73..302f843ca 100644 --- a/src/Text/Pandoc/Writers/RST.hs +++ b/src/Text/Pandoc/Writers/RST.hs @@ -171,9 +171,13 @@ blockToRST (Header level _ inlines) = do let headerChar = if level > 5 then ' ' else "=-~^'" !! (level - 1) let border = text $ replicate (offset contents) headerChar return $ nowrap $ contents $$ border $$ blankline -blockToRST (CodeBlock (_,classes,_) str) = do +blockToRST (CodeBlock (_,classes,kvs) str) = do opts <- stOptions <$> get let tabstop = writerTabStop opts + let startnum = maybe "" (\x -> " " <> text x) $ lookup "startFrom" kvs + let numberlines = if "numberLines" `elem` classes + then " :number-lines:" <> startnum + else empty if "haskell" `elem` classes && "literate" `elem` classes && isEnabled Ext_literate_haskell opts then return $ prefixed "> " (text str) $$ blankline @@ -181,7 +185,7 @@ blockToRST (CodeBlock (_,classes,_) str) = do (case [c | c <- classes, c `notElem` ["sourceCode","literate","numberLines"]] of [] -> "::" - (lang:_) -> ".. code:: " <> text lang) + (lang:_) -> (".. code:: " <> text lang) $$ numberlines) $+$ nest tabstop (text str) $$ blankline blockToRST (BlockQuote blocks) = do tabstop <- get >>= (return . writerTabStop . stOptions) |