diff options
author | Oleg Grenrus <oleg.grenrus@iki.fi> | 2017-12-26 17:13:14 +0200 |
---|---|---|
committer | Alexander Biehl <alexbiehl@gmail.com> | 2018-02-01 14:58:18 +0100 |
commit | 088b1993fb6c6ed014a95e93d7c07f68218c7777 (patch) | |
tree | 47d7c1c85657bf7670ff154ad9a9bc1d1538b0d0 /html-test | |
parent | 2e0d7aef60fbb17f29ffa1f363ffc423f31185fc (diff) |
Grid Tables (#718)
* Add table examples
* Add table types and adopt simple parser
Simple parser is done by Giovanni Cappellotto (@potomak)
in https://github.com/haskell/haddock/pull/577
It seems to support single fine full tables, so far from full
RST-grid tables, but it's good start.
Table type support row- and colspans, but obviously parser is lacking.
Still TODO:
- Latex backend. Should we use multirow package
https://ctan.org/pkg/multirow?lang=en?
- Hoogle backend: ?
* Implement grid-tables
* Refactor table parser
* Add two ill-examples
* Update CHANGES.md
* Basic documentation for tables
* Fix documentation example
Diffstat (limited to 'html-test')
-rw-r--r-- | html-test/ref/Table.html | 238 | ||||
-rw-r--r-- | html-test/src/Table.hs | 47 |
2 files changed, 285 insertions, 0 deletions
diff --git a/html-test/ref/Table.html b/html-test/ref/Table.html new file mode 100644 index 00000000..959f18b2 --- /dev/null +++ b/html-test/ref/Table.html @@ -0,0 +1,238 @@ +<html xmlns="http://www.w3.org/1999/xhtml" +><head + ><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" + /><title + >Table</title + ><link href="#" rel="stylesheet" type="text/css" title="Ocean" + /><link rel="stylesheet" type="text/css" href="#" + /><script src="haddock-bundle.min.js" async="async" type="text/javascript" + ></script + ><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript" + ></script + ></head + ><body + ><div id="package-header" + ><ul class="links" id="page-menu" + ><li + ><a href="#" + >Contents</a + ></li + ><li + ><a href="#" + >Index</a + ></li + ></ul + ><p class="caption empty" + ></p + ></div + ><div id="content" + ><div id="module-header" + ><table class="info" + ><tr + ><th + >Safe Haskell</th + ><td + >Safe</td + ></tr + ></table + ><p class="caption" + >Table</p + ></div + ><div id="description" + ><p class="caption" + >Description</p + ><div class="doc" + ><p + >This tests the table markup</p + ></div + ></div + ><div id="synopsis" + ><details id="syn" + ><summary + >Synopsis</summary + ><ul class="details-toggle" data-details-id="syn" + ><li class="src short" + ><a href="#" + >tableWithHeader</a + > :: a -> a</li + ><li class="src short" + ><a href="#" + >tableWithoutHeader</a + > :: a -> a</li + ><li class="src short" + ><a href="#" + >fancyTable</a + > :: a -> a</li + ></ul + ></details + ></div + ><div id="interface" + ><h1 + >Documentation</h1 + ><div class="top" + ><p class="src" + ><a id="v:tableWithHeader" class="def" + >tableWithHeader</a + > :: a -> a <a href="#" class="selflink" + >#</a + ></p + ><div class="doc" + ><p + >Table with header.</p + ><table + ><thead + ><tr + ><th + > code </th + ><th + > message </th + ><th + > description </th + ></tr + ></thead + ><tbody + ><tr + ><td + > 200 </td + ><td + > <code + >OK</code + > </td + ><td + > operation successful </td + ></tr + ><tr + ><td + > 204 </td + ><td + > <code + >No Content</code + > </td + ><td + > operation successful, no body returned </td + ></tr + ></tbody + ></table + ></div + ></div + ><div class="top" + ><p class="src" + ><a id="v:tableWithoutHeader" class="def" + >tableWithoutHeader</a + > :: a -> a <a href="#" class="selflink" + >#</a + ></p + ><div class="doc" + ><p + >Table without header.</p + ><table + ><tbody + ><tr + ><td + > 200 </td + ><td + > <code + >OK</code + > </td + ><td + > operation successful </td + ></tr + ><tr + ><td + > 204 </td + ><td + > <code + >No Content</code + > </td + ><td + > operation successful, no body returned </td + ></tr + ><tr + ><td + > 404 </td + ><td + > <code + >Not Found</code + > </td + ><td + > resource not found </td + ></tr + ></tbody + ></table + ></div + ></div + ><div class="top" + ><p class="src" + ><a id="v:fancyTable" class="def" + >fancyTable</a + > :: a -> a <a href="#" class="selflink" + >#</a + ></p + ><div class="doc" + ><p + >Fancy table.</p + ><table + ><thead + ><tr + ><th + > Header row, column 1 + (header rows optional) </th + ><th + > Header 2 + </th + ><th + > Header 3 + </th + ><th + > Header 4 + </th + ></tr + ></thead + ><tbody + ><tr + ><td + > body row 1, column 1 </td + ><td + > column 2 </td + ><td + > column 3 </td + ><td + > column 4 </td + ></tr + ><tr + ><td + > <code + ><a href="#" + >tableWithHeader</a + ></code + > </td + ><td colspan="3" + > Cells may span columns. </td + ></tr + ><tr + ><td + > body row 3 </td + ><td rowspan="2" + > Cells may + span rows. + </td + ><td colspan="2" rowspan="2" + > \[ + f(n) = \sum_{i=1} + \] </td + ></tr + ><tr + ><td + > body row 4 </td + ></tr + ></tbody + ></table + ></div + ></div + ></div + ></div + ><div id="footer" + ></div + ></body + ></html +>
\ No newline at end of file diff --git a/html-test/src/Table.hs b/html-test/src/Table.hs new file mode 100644 index 00000000..2cf0c662 --- /dev/null +++ b/html-test/src/Table.hs @@ -0,0 +1,47 @@ +-- | This tests the table markup +module Table + ( tableWithHeader + , tableWithoutHeader + , fancyTable + ) where + +-- | Table with header. +-- +-- +------+--------------+------------------------------------------+ +-- | code | message | description | +-- +======+==============+==========================================+ +-- | 200 | @OK@ | operation successful | +-- +------+--------------+------------------------------------------+ +-- | 204 | @No Content@ | operation successful, no body returned | +-- +------+--------------+------------------------------------------+ +tableWithHeader :: a -> a +tableWithHeader a = a + +-- | Table without header. +-- +-- +------+--------------+------------------------------------------+ +-- | 200 | @OK@ | operation successful | +-- +------+--------------+------------------------------------------+ +-- | 204 | @No Content@ | operation successful, no body returned | +-- +------+--------------+------------------------------------------+ +-- | 404 | @Not Found@ | resource not found | +-- +------+--------------+------------------------------------------+ +tableWithoutHeader :: a -> a +tableWithoutHeader a = a + +-- | Fancy table. +-- +-- +------------------------+------------+----------+----------+ +-- | Header row, column 1 | Header 2 | Header 3 | Header 4 | +-- | (header rows optional) | | | | +-- +========================+============+==========+==========+ +-- | body row 1, column 1 | column 2 | column 3 | column 4 | +-- +------------------------+------------+----------+----------+ +-- | 'tableWithHeader' | Cells may span columns. | +-- +------------------------+------------+---------------------+ +-- | body row 3 | Cells may | \[ | +-- +------------------------+ span rows. | f(n) = \sum_{i=1} | +-- | body row 4 | | \] | +-- +------------------------+------------+---------------------+ +fancyTable :: a -> a +fancyTable x = x |