diff --git a/src/Text/Pandoc/Readers/RST.hs b/src/Text/Pandoc/Readers/RST.hs index 566f9b959..1577908a3 100644 --- a/src/Text/Pandoc/Readers/RST.hs +++ b/src/Text/Pandoc/Readers/RST.hs @@ -651,11 +651,15 @@ directive' = do skipMany spaceChar top <- many $ satisfy (/='\n') <|> try (char '\n' <* - notFollowedBy' (rawFieldListItem 3) <* - count 3 (char ' ') <* + notFollowedBy' (rawFieldListItem 1) <* + many1 (char ' ') <* notFollowedBy blankline) newline - fields <- many $ rawFieldListItem 3 + fields <- do + fieldIndent <- length <$> lookAhead (many (char ' ')) + if fieldIndent == 0 + then return [] + else many $ rawFieldListItem fieldIndent body <- option "" $ try $ blanklines >> indentedBlock optional blanklines let body' = body ++ "\n\n" diff --git a/test/command/4579.md b/test/command/4579.md new file mode 100644 index 000000000..80f0f58c2 --- /dev/null +++ b/test/command/4579.md @@ -0,0 +1,16 @@ +``` +% pandoc -f rst -t native +.. list-table:: + :header-rows: 1 + + * - Foo + - Bar + * - spam + - ham +^D +[Table [] [AlignDefault,AlignDefault] [0.0,0.0] + [[Plain [Str "Foo"]] + ,[Plain [Str "Bar"]]] + [[[Plain [Str "spam"]] + ,[Plain [Str "ham"]]]]] +```