diff options
| -rw-r--r-- | src/Text/Pandoc/Readers/Markdown.hs | 13 | ||||
| -rw-r--r-- | test/command/7919.md | 59 |
2 files changed, 66 insertions, 6 deletions
diff --git a/src/Text/Pandoc/Readers/Markdown.hs b/src/Text/Pandoc/Readers/Markdown.hs index ac6be7729..25318f0f4 100644 --- a/src/Text/Pandoc/Readers/Markdown.hs +++ b/src/Text/Pandoc/Readers/Markdown.hs @@ -1364,9 +1364,9 @@ pipeBreak = try $ do openPipe <- (True <$ char '|') <|> return False first <- pipeTableHeaderPart rest <- many $ sepPipe *> pipeTableHeaderPart - -- surrounding pipes needed for a one-column table: - guard $ not (null rest && not openPipe) - optional (char '|') + closePipe <- (True <$ char '|') <|> return False + -- at least one pipe needed for a one-column table: + guard $ not (null rest && not (openPipe || closePipe)) blankline return $ unzip (first:rest) @@ -1406,9 +1406,10 @@ pipeTableRow = try $ do -- split into cells let chunk = void (code <|> math <|> rawHtmlInline <|> escapedChar <|> rawLaTeXInline') <|> void (noneOf "|\n\r") - cells <- (snd <$> withRaw (many chunk)) `sepEndBy1` char '|' - -- surrounding pipes needed for a one-column table: - guard $ not (length cells == 1 && not openPipe) + cells <- (snd <$> withRaw (many chunk)) `sepBy1` char '|' + closePipe <- (True <$ char '|') <|> return False + -- at least one pipe needed for a one-column table: + guard $ not (length cells == 1 && not (openPipe || closePipe)) blankline return cells diff --git a/test/command/7919.md b/test/command/7919.md new file mode 100644 index 000000000..f7ff9853b --- /dev/null +++ b/test/command/7919.md @@ -0,0 +1,59 @@ +``` +% pandoc -f markdown +single column table | +------------------- | +item 1 | +item 2 | +^D +<table> +<thead> +<tr class="header"> +<th>single column table</th> +</tr> +</thead> +<tbody> +<tr class="odd"> +<td>item 1</td> +</tr> +<tr class="even"> +<td>item 2</td> +</tr> +</tbody> +</table> +``` + +``` +% pandoc -f markdown +| single column table +| ------------------- +| item 1 +| item 2 +^D +<table> +<thead> +<tr class="header"> +<th>single column table</th> +</tr> +</thead> +<tbody> +<tr class="odd"> +<td>item 1</td> +</tr> +<tr class="even"> +<td>item 2</td> +</tr> +</tbody> +</table> +``` + +``` +% pandoc -f markdown +single column table +------------------- +item 1 +item 2 +^D +<h2 id="single-column-table">single column table</h2> +<p>item 1 item 2</p> +``` + |
