@@ -155,7 +155,7 @@ inlinesInBalancedBrackets = do
155155 (_, raw) <- withRaw $ charsInBalancedBrackets 1
156156 guard $ not $ null raw
157157 parseFromString' (setPosition pos >>
158− trimInlinesF . mconcat <$> many inline) (init raw)
158+ trimInlinesF <$> inlines) (init raw)
159159
160160charsInBalancedBrackets :: PandocMonad m => Int -> MarkdownParser m ()
161161charsInBalancedBrackets 0 = return ()
@@ -187,8 +187,8 @@ rawTitleBlockLine = do
187187titleLine :: PandocMonad m => MarkdownParser m (F Inlines)
188188titleLine = try $ do
189189 raw <- rawTitleBlockLine
190− res <- parseFromString' (many inline) raw
191− return $ trimInlinesF $ mconcat res
190+ res <- parseFromString' inlines raw
191+ return $ trimInlinesF res
192192
193193authorsLine :: PandocMonad m => MarkdownParser m (F [Inlines])
194194authorsLine = try $ do
@@ -203,8 +203,8 @@ authorsLine = try $ do
203203dateLine :: PandocMonad m => MarkdownParser m (F Inlines)
204204dateLine = try $ do
205205 raw <- rawTitleBlockLine
206− res <- parseFromString' (many inline) raw
207− return $ trimInlinesF $ mconcat res
206+ res <- parseFromString' inlines raw
207+ return $ trimInlinesF res
208208
209209titleBlock :: PandocMonad m => MarkdownParser m ()
210210titleBlock = pandocTitleBlock <|> mmdTitleBlock
@@ -954,7 +954,7 @@ definitionListItem :: PandocMonad m => Bool -> MarkdownParser m (F (Inlines, [Bl
954954definitionListItem compact = try $ do
955955 rawLine' <- anyLine
956956 raw <- many1 $ defRawBlock compact
957− term <- parseFromString' (trimInlinesF . mconcat <$> many inline) rawLine'
957+ term <- parseFromString' (trimInlinesF <$> inlines) rawLine'
958958 contents <- mapM (parseFromString' parseBlocks . (++"\n")) raw
959959 optional blanklines
960960 return $ liftM2 (,) term (sequence contents)
@@ -1008,7 +1008,7 @@ normalDefinitionList = do
10081008para :: PandocMonad m => MarkdownParser m (F Blocks)
10091009para = try $ do
10101010 exts <- getOption readerExtensions
1011− result <- trimInlinesF . mconcat <$> many1 inline
1011+ result <- trimInlinesF <$> inlines1
10121012 option (B.plain <$> result)
10131013 $ try $ do
10141014 newline
@@ -1038,7 +1038,7 @@ para = try $ do
10381038 _ -> return $ B.para result'
10391039
10401040plain :: PandocMonad m => MarkdownParser m (F Blocks)
1041−plain = fmap B.plain . trimInlinesF . mconcat <$> many1 inline
1041+plain = fmap B.plain . trimInlinesF <$> inlines1
10421042
10431043--
10441044-- raw html
@@ -1142,7 +1142,7 @@ lineBlock :: PandocMonad m => MarkdownParser m (F Blocks)
11421142lineBlock = try $ do
11431143 guardEnabled Ext_line_blocks
11441144 lines' <- lineBlockLines >>=
1145− mapM (parseFromString' (trimInlinesF . mconcat <$> many inline))
1145+ mapM (parseFromString' (trimInlinesF <$> inlines))
11461146 return $ B.lineBlock <$> sequence lines'
11471147
11481148--
@@ -1249,7 +1249,7 @@ tableCaption = try $ do
12491249 guardEnabled Ext_table_captions
12501250 skipNonindentSpaces
12511251 string ":" <|> string "Table:"
1252− trimInlinesF . mconcat <$> many1 inline <* blanklines
1252+ trimInlinesF <$> inlines1 <* blanklines
12531253
12541254-- Parse a simple table with '---' header and one line per row.
12551255simpleTable :: PandocMonad m
@@ -1363,11 +1363,10 @@ pipeTableRow = try $ do
13631363 return $ sequence cells
13641364
13651365pipeTableCell :: PandocMonad m => MarkdownParser m (F Blocks)
1366−pipeTableCell = do
1367− result <- many inline
1368− if null result
1369− then return mempty
1370− else return $ B.plain . mconcat <$> sequence result
1366+pipeTableCell =
1367+ (do result <- inlines1
1368+ return $ B.plain <$> result)
1369+ <|> return mempty
13711370
13721371pipeTableHeaderPart :: PandocMonad m => ParserT [Char] st m (Alignment, Int)
13731372pipeTableHeaderPart = try $ do
@@ -1443,6 +1442,12 @@ table = try $ do
14431442-- inline
14441443--
14451444
1445+inlines :: PandocMonad m => MarkdownParser m (F Inlines)
1446+inlines = mconcat <$> many inline
1447+
1448+inlines1 :: PandocMonad m => MarkdownParser m (F Inlines)
1449+inlines1 = mconcat <$> many1 inline
1450+
14461451inline :: PandocMonad m => MarkdownParser m (F Inlines)
14471452inline = choice [ whitespace
14481453 , bareURL
@@ -1779,8 +1784,8 @@ referenceLink constructor (lab, raw) = do
17791784 when (raw' == "") $ guardEnabled Ext_shortcut_reference_links
17801785 let labIsRef = raw' == "" || raw' == "[]"
17811786 let key = toKey $ if labIsRef then raw else raw'
1782− parsedRaw <- parseFromString' (mconcat <$> many inline) raw'
1783− fallback <- parseFromString' (mconcat <$> many inline) $ dropBrackets raw
1787+ parsedRaw <- parseFromString' inlines raw'
1788+ fallback <- parseFromString' inlines $ dropBrackets raw
17841789 implicitHeaderRefs <- option False $
17851790 True <$ guardEnabled Ext_implicit_header_references
17861791 let makeFallback = do
@@ -1988,7 +1993,7 @@ textualCite = try $ do
19881993 let (spaces',raw') = span isSpace raw
19891994 spc | null spaces' = mempty
19901995 | otherwise = B.space
1991− lab <- parseFromString' (mconcat <$> many inline) $ dropBrackets raw'
1996+ lab <- parseFromString' inlines $ dropBrackets raw'
19921997 fallback <- referenceLink B.linkWith (lab,raw')
19931998 return $ do
19941999 fallback' <- fallback