Haddock Writer: Support Haddock tables

See this PR on Haddock for details on the table format:
https://github.com/haskell/haddock/pull/718
This commit is contained in:
Joe Hermaszewski 2018-04-21 12:36:44 +08:00
parent aff2500d46
commit fd5994cc5e
2 changed files with 71 additions and 71 deletions

View file

@ -124,7 +124,7 @@ blockToHaddock opts (Table _ blkCapt specs thead tbody tfoot) = do
tbl <- gridTable opts blockListToHaddock
(all null headers) (map (const AlignDefault) aligns)
widths headers rows
return $ prefixed "> " (tbl $$ blankline $$ caption'') $$ blankline
return $ (tbl $$ blankline $$ caption'') $$ blankline
blockToHaddock opts (BulletList items) = do
contents <- mapM (bulletListItemToHaddock opts) items
return $ (if isTightList items then vcat else vsep) contents <> blankline

View file

@ -1,90 +1,90 @@
Simple table with caption:
> +-------+------+--------+---------+
> | Right | Left | Center | Default |
> +=======+======+========+=========+
> | 12 | 12 | 12 | 12 |
> +-------+------+--------+---------+
> | 123 | 123 | 123 | 123 |
> +-------+------+--------+---------+
> | 1 | 1 | 1 | 1 |
> +-------+------+--------+---------+
>
> Demonstration of simple table syntax.
+-------+------+--------+---------+
| Right | Left | Center | Default |
+=======+======+========+=========+
| 12 | 12 | 12 | 12 |
+-------+------+--------+---------+
| 123 | 123 | 123 | 123 |
+-------+------+--------+---------+
| 1 | 1 | 1 | 1 |
+-------+------+--------+---------+
Demonstration of simple table syntax.
Simple table without caption:
> +-------+------+--------+---------+
> | Right | Left | Center | Default |
> +=======+======+========+=========+
> | 12 | 12 | 12 | 12 |
> +-------+------+--------+---------+
> | 123 | 123 | 123 | 123 |
> +-------+------+--------+---------+
> | 1 | 1 | 1 | 1 |
> +-------+------+--------+---------+
+-------+------+--------+---------+
| Right | Left | Center | Default |
+=======+======+========+=========+
| 12 | 12 | 12 | 12 |
+-------+------+--------+---------+
| 123 | 123 | 123 | 123 |
+-------+------+--------+---------+
| 1 | 1 | 1 | 1 |
+-------+------+--------+---------+
Simple table indented two spaces:
> +-------+------+--------+---------+
> | Right | Left | Center | Default |
> +=======+======+========+=========+
> | 12 | 12 | 12 | 12 |
> +-------+------+--------+---------+
> | 123 | 123 | 123 | 123 |
> +-------+------+--------+---------+
> | 1 | 1 | 1 | 1 |
> +-------+------+--------+---------+
>
> Demonstration of simple table syntax.
+-------+------+--------+---------+
| Right | Left | Center | Default |
+=======+======+========+=========+
| 12 | 12 | 12 | 12 |
+-------+------+--------+---------+
| 123 | 123 | 123 | 123 |
+-------+------+--------+---------+
| 1 | 1 | 1 | 1 |
+-------+------+--------+---------+
Demonstration of simple table syntax.
Multiline table with caption:
> +----------+---------+-----------+--------------------------+
> | Centered | Left | Right | Default aligned |
> | Header | Aligned | Aligned | |
> +==========+=========+===========+==========================+
> | First | row | 12.0 | Example of a row that |
> | | | | spans multiple lines. |
> +----------+---------+-----------+--------------------------+
> | Second | row | 5.0 | Heres another one. Note |
> | | | | the blank line between |
> | | | | rows. |
> +----------+---------+-----------+--------------------------+
>
> Heres the caption. It may span multiple lines.
+----------+---------+-----------+--------------------------+
| Centered | Left | Right | Default aligned |
| Header | Aligned | Aligned | |
+==========+=========+===========+==========================+
| First | row | 12.0 | Example of a row that |
| | | | spans multiple lines. |
+----------+---------+-----------+--------------------------+
| Second | row | 5.0 | Heres another one. Note |
| | | | the blank line between |
| | | | rows. |
+----------+---------+-----------+--------------------------+
Heres the caption. It may span multiple lines.
Multiline table without caption:
> +----------+---------+-----------+--------------------------+
> | Centered | Left | Right | Default aligned |
> | Header | Aligned | Aligned | |
> +==========+=========+===========+==========================+
> | First | row | 12.0 | Example of a row that |
> | | | | spans multiple lines. |
> +----------+---------+-----------+--------------------------+
> | Second | row | 5.0 | Heres another one. Note |
> | | | | the blank line between |
> | | | | rows. |
> +----------+---------+-----------+--------------------------+
+----------+---------+-----------+--------------------------+
| Centered | Left | Right | Default aligned |
| Header | Aligned | Aligned | |
+==========+=========+===========+==========================+
| First | row | 12.0 | Example of a row that |
| | | | spans multiple lines. |
+----------+---------+-----------+--------------------------+
| Second | row | 5.0 | Heres another one. Note |
| | | | the blank line between |
| | | | rows. |
+----------+---------+-----------+--------------------------+
Table without column headers:
> +-----+-----+-----+-----+
> | 12 | 12 | 12 | 12 |
> +-----+-----+-----+-----+
> | 123 | 123 | 123 | 123 |
> +-----+-----+-----+-----+
> | 1 | 1 | 1 | 1 |
> +-----+-----+-----+-----+
+-----+-----+-----+-----+
| 12 | 12 | 12 | 12 |
+-----+-----+-----+-----+
| 123 | 123 | 123 | 123 |
+-----+-----+-----+-----+
| 1 | 1 | 1 | 1 |
+-----+-----+-----+-----+
Multiline table without column headers:
> +----------+---------+-----------+--------------------------+
> | First | row | 12.0 | Example of a row that |
> | | | | spans multiple lines. |
> +----------+---------+-----------+--------------------------+
> | Second | row | 5.0 | Heres another one. Note |
> | | | | the blank line between |
> | | | | rows. |
> +----------+---------+-----------+--------------------------+
+----------+---------+-----------+--------------------------+
| First | row | 12.0 | Example of a row that |
| | | | spans multiple lines. |
+----------+---------+-----------+--------------------------+
| Second | row | 5.0 | Heres another one. Note |
| | | | the blank line between |
| | | | rows. |
+----------+---------+-----------+--------------------------+