@@ -599,15 +599,15 @@ parseBlock (Elem e) =
599599 case qName (elName e) of
600600 "toc" -> return mempty -- skip TOC, since in pandoc it's autogenerated
601601 "index" -> return mempty -- skip index, since page numbers meaningless
602− "para" -> parsePara (elContent e)
602+ "para" -> parseMixed para (elContent e)
603603 "formalpara" -> do
604604 tit <- case filterChild (named "title") e of
605605 Just t -> (<> str "." <> linebreak) <$> emph
606606 <$> getInlines t
607607 Nothing -> return mempty
608− addToStart tit <$> parsePara (elContent e)
609− "simpara" -> parsePara (elContent e)
610− "ackno" -> parsePara (elContent e)
608+ addToStart tit <$> parseMixed para (elContent e)
609+ "simpara" -> parseMixed para (elContent e)
610+ "ackno" -> parseMixed para (elContent e)
611611 "epigraph" -> parseBlockquote
612612 "blockquote" -> parseBlockquote
613613 "attribution" -> return mempty
@@ -616,8 +616,8 @@ parseBlock (Elem e) =
616616 "title" -> return mempty -- handled by getTitle or sect
617617 "bibliography" -> sect 0
618618 "bibliodiv" -> sect 1
619− "biblioentry" -> parsePara (elContent e)
620− "bibliomixed" -> parsePara (elContent e)
619+ "biblioentry" -> parseMixed para (elContent e)
620+ "bibliomixed" -> parseMixed para (elContent e)
621621 "glosssee" -> para . (\ils -> text "See " <> ils <> str ".")
622622 <$> getInlines e
623623 "glossseealso" -> para . (\ils -> text "See also " <> ils <> str ".")
@@ -702,15 +702,15 @@ parseBlock (Elem e) =
702702 "?xml" -> return mempty
703703 _ -> getBlocks e
704704 where getBlocks e' = mconcat <$> (mapM parseBlock $ elContent e')
705− parsePara conts = do
705+ parseMixed container conts = do
706706 let (ils,rest) = break isBlockElement conts
707707 ils' <- (trimInlines . mconcat) <$> mapM parseInline ils
708− let p = if ils' == mempty then mempty else para ils'
708+ let p = if ils' == mempty then mempty else container ils'
709709 case rest of
710710 [] -> return p
711711 (r:rs) -> do
712712 b <- parseBlock r
713− x <- parsePara rs
713+ x <- parseMixed container rs
714714 return $ p <> b <> x
715715 codeBlockWithLang classes = do
716716 let classes' = case attrValue "language" e of
@@ -806,7 +806,7 @@ parseBlock (Elem e) =
806806 return $ table caption (zip aligns widths)
807807 headrows' bodyrows
808808 isEntry x = named "entry" x || named "td" x || named "th" x
809− parseRow = mapM getBlocks . filterChildren isEntry
809+ parseRow = mapM (parseMixed plain . elContent) . filterChildren isEntry
810810 sect n = do isbook <- gets dbBook
811811 let n' = if isbook then n + 1 else n
812812 headerText <- case filterChild (named "title") e of