diff options
| author | John MacFarlane <jgm@berkeley.edu> | 2015-07-08 22:45:06 -0700 | 
|---|---|---|
| committer | John MacFarlane <jgm@berkeley.edu> | 2015-07-08 22:45:06 -0700 | 
| commit | b587acb2247c5af49142542dec2a509d8aa6862f (patch) | |
| tree | 6ebc40ca0044287cb44c1ef01ca5b6fb7306d487 /src/Text | |
| parent | ac79429a128bf7efeb0ad3896968c29392af7b1a (diff) | |
| parent | d9e17cb3f76f324bad8bbbb931456f5b152adca9 (diff) | |
| download | pandoc-b587acb2247c5af49142542dec2a509d8aa6862f.tar.gz | |
Merge pull request #2266 from PromyLOPh/fieldinline
RST: Support inline markup for field list names
Diffstat (limited to 'src/Text')
| -rw-r--r-- | src/Text/Pandoc/Readers/RST.hs | 26 | 
1 files changed, 11 insertions, 15 deletions
| diff --git a/src/Text/Pandoc/Readers/RST.hs b/src/Text/Pandoc/Readers/RST.hs index 38de77f9f..678eecc52 100644 --- a/src/Text/Pandoc/Readers/RST.hs +++ b/src/Text/Pandoc/Readers/RST.hs @@ -209,7 +209,7 @@ rawFieldListItem minIndent = try $ do  fieldListItem :: Int -> RSTParser (Inlines, [Blocks])  fieldListItem minIndent = try $ do    (name, raw) <- rawFieldListItem minIndent -  let term = B.str name +  term <- parseInlineFromString name    contents <- parseFromString parseBlocks raw    optional blanklines    return (term, [contents]) @@ -229,8 +229,7 @@ fieldList = try $ do  lineBlock :: RSTParser Blocks  lineBlock = try $ do    lines' <- lineBlockLines -  lines'' <- mapM (parseFromString -                   (trimInlines . mconcat <$> many inline)) lines' +  lines'' <- mapM parseInlineFromString lines'    return $ B.para (mconcat $ intersperse B.linebreak lines'')  -- @@ -549,39 +548,33 @@ directive' = do          "role" -> addNewRole top $ map (\(k,v) -> (k, trim v)) fields          "container" -> parseFromString parseBlocks body'          "replace" -> B.para <$>  -- consumed by substKey -                   parseFromString (trimInlines . mconcat <$> many inline) -                   (trim top) +                   parseInlineFromString (trim top)          "unicode" -> B.para <$>  -- consumed by substKey -                   parseFromString (trimInlines . mconcat <$> many inline) -                   (trim $ unicodeTransform top) +                   parseInlineFromString (trim $ unicodeTransform top)          "compound" -> parseFromString parseBlocks body'          "pull-quote" -> B.blockQuote <$> parseFromString parseBlocks body'          "epigraph" -> B.blockQuote <$> parseFromString parseBlocks body'          "highlights" -> B.blockQuote <$> parseFromString parseBlocks body' -        "rubric" -> B.para . B.strong <$> parseFromString -                          (trimInlines . mconcat <$> many inline) top +        "rubric" -> B.para . B.strong <$> parseInlineFromString top          _ | label `elem` ["attention","caution","danger","error","hint",                            "important","note","tip","warning"] ->             do let tit = B.para $ B.strong $ B.str label                bod <- parseFromString parseBlocks $ top ++ "\n\n" ++ body'                return $ B.blockQuote $ tit <> bod          "admonition" -> -           do tit <- B.para . B.strong <$> parseFromString -                          (trimInlines . mconcat <$> many inline) top +           do tit <- B.para . B.strong <$> parseInlineFromString top                bod <- parseFromString parseBlocks body'                return $ B.blockQuote $ tit <> bod          "sidebar" ->             do let subtit = maybe "" trim $ lookup "subtitle" fields -              tit <- B.para . B.strong <$> parseFromString -                          (trimInlines . mconcat <$> many inline) +              tit <- B.para . B.strong <$> parseInlineFromString                            (trim top ++ if null subtit                                            then ""                                            else (":  " ++ subtit))                bod <- parseFromString parseBlocks body'                return $ B.blockQuote $ tit <> bod          "topic" -> -           do tit <- B.para . B.strong <$> parseFromString -                          (trimInlines . mconcat <$> many inline) top +           do tit <- B.para . B.strong <$> parseInlineFromString top                bod <- parseFromString parseBlocks body'                return $ tit <> bod          "default-role" -> mempty <$ updateState (\s -> @@ -962,6 +955,9 @@ inline = choice [ whitespace                  , escapedChar                  , symbol ] <?> "inline" +parseInlineFromString :: String -> RSTParser Inlines +parseInlineFromString = parseFromString (trimInlines . mconcat <$> many inline) +  hyphens :: RSTParser Inlines  hyphens = do    result <- many1 (char '-') | 
