diff options
-rw-r--r-- | README | 5 | ||||
-rw-r--r-- | src/Text/Pandoc/Parsing.hs | 5 | ||||
-rw-r--r-- | src/Text/Pandoc/Readers/Markdown.hs | 2 | ||||
-rw-r--r-- | src/Text/Pandoc/Writers/Markdown.hs | 2 | ||||
-rw-r--r-- | tests/tables.markdown | 6 | ||||
-rw-r--r-- | tests/tables.plain | 6 | ||||
-rw-r--r-- | tests/tables.txt | 8 |
7 files changed, 19 insertions, 15 deletions
@@ -824,7 +824,8 @@ to the dashed line below it:[^4] The table must end with a blank line, or a line of dashes followed by a blank line. A caption may optionally be provided (as illustrated in the example above). A caption is a paragraph beginning with the string -`Table:`, which will be stripped off. +`Table:` (or just `:`), which will be stripped off. It may appear either +before or after the table. The column headers may be omitted, provided a dashed line is used to end the table. For example: @@ -880,7 +881,7 @@ Headers may be omitted in multiline tables as well as simple tables: rows. ------------------------------------------------------------- - Table: Here's a multiline table without headers. + : Here's a multiline table without headers. It is possible for a multiline table to have just one row, but the row should be followed by a blank line (and then the row of dashes that ends diff --git a/src/Text/Pandoc/Parsing.hs b/src/Text/Pandoc/Parsing.hs index 2709a1b0f..cf46bf216 100644 --- a/src/Text/Pandoc/Parsing.hs +++ b/src/Text/Pandoc/Parsing.hs @@ -415,10 +415,13 @@ tableWith :: GenParser Char ParserState ([[Block]], [Alignment], [Int]) -> GenParser Char ParserState [Inline] -> GenParser Char ParserState Block tableWith headerParser rowParser lineParser footerParser captionParser = try $ do + caption' <- option [] captionParser (heads, aligns, indices) <- headerParser lines' <- rowParser indices `sepEndBy` lineParser footerParser - caption <- option [] captionParser + caption <- if null caption' + then option [] captionParser + else return caption' state <- getState let numColumns = stateColumns state let widths = widthsFromIndices numColumns indices diff --git a/src/Text/Pandoc/Readers/Markdown.hs b/src/Text/Pandoc/Readers/Markdown.hs index 96e0f597f..6895de06b 100644 --- a/src/Text/Pandoc/Readers/Markdown.hs +++ b/src/Text/Pandoc/Readers/Markdown.hs @@ -775,7 +775,7 @@ multilineRow indices = do tableCaption :: GenParser Char ParserState [Inline] tableCaption = try $ do skipNonindentSpaces - string "Table:" + string ":" <|> string "Table:" result <- many1 inline blanklines return $ normalizeSpaces result diff --git a/src/Text/Pandoc/Writers/Markdown.hs b/src/Text/Pandoc/Writers/Markdown.hs index 238405337..d72fb5eb5 100644 --- a/src/Text/Pandoc/Writers/Markdown.hs +++ b/src/Text/Pandoc/Writers/Markdown.hs @@ -239,7 +239,7 @@ blockToMarkdown opts (Table caption aligns widths headers rows) = do caption' <- inlineListToMarkdown opts caption let caption'' = if null caption then empty - else text "" $+$ (text "Table: " <> caption') + else text "" $+$ (text ": " <> caption') headers' <- mapM (blockListToMarkdown opts) headers let alignHeader alignment = case alignment of AlignLeft -> leftAlignBlock diff --git a/tests/tables.markdown b/tests/tables.markdown index a605137d1..ab20e76c9 100644 --- a/tests/tables.markdown +++ b/tests/tables.markdown @@ -6,7 +6,7 @@ Simple table with caption: 123 123 123 123 1 1 1 1 - Table: Demonstration of simple table syntax. + : Demonstration of simple table syntax. Simple table without caption: @@ -24,7 +24,7 @@ Simple table indented two spaces: 123 123 123 123 1 1 1 1 - Table: Demonstration of simple table syntax. + : Demonstration of simple table syntax. Multiline table with caption: @@ -40,7 +40,7 @@ Multiline table with caption: rows. -------------------------------------------------------------- - Table: Here's the caption. It may span multiple lines. + : Here's the caption. It may span multiple lines. Multiline table without caption: diff --git a/tests/tables.plain b/tests/tables.plain index a605137d1..ab20e76c9 100644 --- a/tests/tables.plain +++ b/tests/tables.plain @@ -6,7 +6,7 @@ Simple table with caption: 123 123 123 123 1 1 1 1 - Table: Demonstration of simple table syntax. + : Demonstration of simple table syntax. Simple table without caption: @@ -24,7 +24,7 @@ Simple table indented two spaces: 123 123 123 123 1 1 1 1 - Table: Demonstration of simple table syntax. + : Demonstration of simple table syntax. Multiline table with caption: @@ -40,7 +40,7 @@ Multiline table with caption: rows. -------------------------------------------------------------- - Table: Here's the caption. It may span multiple lines. + : Here's the caption. It may span multiple lines. Multiline table without caption: diff --git a/tests/tables.txt b/tests/tables.txt index 62d431597..d70492262 100644 --- a/tests/tables.txt +++ b/tests/tables.txt @@ -24,10 +24,13 @@ Simple table indented two spaces: 123 123 123 123 1 1 1 1 - Table: Demonstration of simple table syntax. + : Demonstration of simple table syntax. Multiline table with caption: +: Here's the caption. +It may span multiple lines. + --------------------------------------------------------------- Centered Left Right Header Aligned Aligned Default aligned @@ -39,9 +42,6 @@ Multiline table with caption: the blank line between rows. --------------------------------------------------------------- -Table: Here's the caption. -It may span multiple lines. - Multiline table without caption: --------------------------------------------------------------- |