aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README5
-rw-r--r--src/Text/Pandoc/Parsing.hs5
-rw-r--r--src/Text/Pandoc/Readers/Markdown.hs2
-rw-r--r--src/Text/Pandoc/Writers/Markdown.hs2
-rw-r--r--tests/tables.markdown6
-rw-r--r--tests/tables.plain6
-rw-r--r--tests/tables.txt8
7 files changed, 19 insertions, 15 deletions
diff --git a/README b/README
index 5fe93b504..1519c8113 100644
--- a/README
+++ b/README
@@ -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:
---------------------------------------------------------------