Table with row and column spans
```
% pandoc -f html -t asciidoc
| Header 1 |
Header 2 |
Header 3 |
Header 4 |
| body row 1 |
column 2 |
column 3 |
column 4 |
| body row 2 |
Cells may span columns. |
fff |
| body row 3 |
Cells may span rows. |
- Cells
- can
- contain
- blocks.
|
- This is a very long line of text
- Python
- b
- c
|
| body row 4 |
^D
[width="100%",cols="17%,16%,15%,52%",options="header",]
|===
|Header 1 |Header 2 |Header 3 |Header 4
|body row 1 |column 2 |column 3 |column 4
|body row 2 2+|Cells may span columns. |fff
|body row 3 .2+|Cells may span rows. .2+a|
* Cells
* can
* contain
* blocks.
.2+a|
* This is a very long line of text
* http://www.python.org/[Python]
* b
* c
|body row 4
|===
```
Header and footer.
AsciiDoc only supports 1 header and 1 footer row.
So for multiple header and/or footer rows all the extra rows become part of the table body.
```
% pandoc -f html -t asciidoc
| Inputs |
Output |
| A |
B |
A or B |
| False |
False |
False |
| True |
False |
True |
| False |
True |
True |
| True |
True |
True |
| A |
B |
A or B |
| Inputs |
Output |
| Header |
| Body 1-1 |
Body 2-1 |
| Footer |
^D
[cols=",,",options="header,footer",]
|===
2+|Inputs |Output
|A |B |A or B
|False |False |False
|True |False |True
|False |True |True
|True |True |True
|A |B |A or B
2+|Inputs |Output
|===
[cols=",",options="header,footer",]
|===
2+|Header
|Body 1-1 |Body 2-1
2+|Footer
|===
```
Table without header but with footer rows
```
% pandoc -f html -t asciidoc
| False |
False |
False |
| True |
False |
True |
| False |
True |
True |
| True |
True |
True |
| A |
B |
A or B |
| Inputs |
Output |
^D
[width="100%",cols="37%,37%,26%",options="footer",]
|===
|False |False |False
|True |False |True
|False |True |True
|True |True |True
|A |B |A or B
2+|Inputs |Output
|===
```
Adjust row span for multiple header rows
```
% pandoc -f html -t asciidoc
| Location |
Temperature 1961-1990 in degree Celsius |
| min |
mean |
max |
| Antarctica |
-89.2 |
N/A |
19.8 |
| Earth |
-89.2 |
14 |
56.7 |
| Temperature 1961-1990 in degree Celsius |
Location |
| min |
mean |
max |
| -89.2 |
N/A |
19.8 |
Antarctica |
| -89.2 |
14 |
56.7 |
Earth |
| Temperature 1961-1990 in degree Celsius |
Location |
Extra |
| min |
mean |
max |
Extra 2 |
| -89.2 |
N/A |
19.8 |
Antarctica |
Extra 3 |
| -89.2 |
14 |
56.7 |
Earth |
Extra 4 |
| Header 1-1 |
Header 1-2 |
| Header 2-1 |
| Header 3-1 |
Header 3-2 |
Header 3-3 |
| Body 1-1 |
Body 1-2 |
| Body 2-1 |
Body 2-2 |
| Header 1-1 |
Header 1-2 |
Header 1-3 |
| Header 2-1 |
| Header 3-1 |
Header 3-2 |
Header 3-3 |
^D
[width="63%",cols="49%,17%,17%,17%",options="header",]
|===
|Location 3+|Temperature 1961-1990 in degree Celsius
| |min |mean |max
|Antarctica |-89.2 |N/A |19.8
|Earth |-89.2 |14 |56.7
|===
[width="63%",cols="19%,17%,17%,47%",options="header",]
|===
3+|Temperature 1961-1990 in degree Celsius |Location
|min |mean |max |
|-89.2 |N/A |19.8 |Antarctica
|-89.2 |14 |56.7 |Earth
|===
[width="65%",cols="20%,16%,16%,27%,21%",options="header",]
|===
3+|Temperature 1961-1990 in degree Celsius |Location |Extra
|min |mean |max | |Extra 2
|-89.2 |N/A |19.8 |Antarctica |Extra 3
|-89.2 |14 |56.7 |Earth |Extra 4
|===
[cols=",,",options="header",]
|===
|Header 1-1 2+|Header 1-2
|Header 2-1 2+|
|Header 3-1 |Header 3-2 |Header 3-3
.2+|Body 1-1 2+|Body 1-2
|Body 2-1 |Body 2-2
|===
[cols=",,",options="header",]
|===
|Header 1-1 |Header 1-2 |Header 1-3
| |Header 2-1 |
|Header 3-1 |Header 3-2 |Header 3-3
|===
```
Adjust row span in multiple footer rows.
```
% pandoc -f html -t asciidoc
| Body 1-1 |
Body 1-2 |
Body 1-3 |
| Footer 1-1/2 |
Footer 1-3 |
| Footer 2-1 |
Span 3 |
Footer 2-3 |
| Span 2 |
Footer 3-3 |
| Footer 4-3 |
| Body 1-1 |
Body 1-2 |
Body 1-3 |
Body 1-4 |
Body 1-5 |
| Body 2-1 |
Body 2-2 |
Body 2-3 |
Body 2-4 |
Body 2-5 |
| Footer 1-1/2/3 |
Footer 1-4 |
Footer 1-5 |
| Footer 2-1 |
Span 3 |
Footer 2-3 |
Footer 2-4/5 |
| Span 2 |
Footer 3-3/4 |
Span 2 |
| Span 3 |
Footer 4-4 |
| Footer 5-1 |
Footer 5-2 |
Footer 5-4 |
Span 2 |
| Footer 6-1/2 |
Footer 6-4 |
| Body 1 |
Body 2 |
Body 3 |
Body 4 |
| Footer 1-1 |
Span 3 |
Span 2 |
| Footer 2-1 |
| Footer 3-1 |
Footer 3-4 |
| Body 1-1 |
Body 1-2 |
Body 1-3 |
Body 1-4 |
| Footer 1-1/2 |
Span 6 |
Footer 1-4 |
| Span 3 |
Footer 2-2 |
Footer 2-4 |
| Footer 3-2 |
Footer 3-4 |
| Footer 4-2 |
Footer 4-4 |
| Footer 5-1 |
Footer 5-2 |
Span 2 |
| Footer 6-1/2 |
^D
[width="100%",cols="40%,40%,20%",options="footer",]
|===
|Body 1-1 |Body 1-2 |Body 1-3
2+|Footer 1-1/2 |Footer 1-3
|Footer 2-1 .2+|Span 3 |Footer 2-3
|Span 2 |Footer 3-3
| | |Footer 4-3
|===
[cols=",,,,",options="footer",]
|===
|Body 1-1 |Body 1-2 |Body 1-3 |Body 1-4 |Body 1-5
|Body 2-1 |Body 2-2 |Body 2-3 |Body 2-4 |Body 2-5
3+|Footer 1-1/2/3 |Footer 1-4 |Footer 1-5
|Footer 2-1 .3+|Span 3 |Footer 2-3 2+|Footer 2-4/5
.2+|Span 2 2+|Footer 3-3/4 .2+|Span 2
.2+|Span 3 |Footer 4-4
|Footer 5-1 |Footer 5-2 |Footer 5-4 |Span 2
2+|Footer 6-1/2 | |Footer 6-4 |
|===
[cols=",,,",options="footer",]
|===
|Body 1 |Body 2 |Body 3 |Body 4
|Footer 1-1 2.2+|Span 3 .2+|Span 2
|Footer 2-1
|Footer 3-1 2+| |Footer 3-4
|===
[cols=",,,",options="footer",]
|===
|Body 1-1 |Body 1-2 |Body 1-3 |Body 1-4
2+|Footer 1-1/2 .5+|Span 6 |Footer 1-4
.3+|Span 3 |Footer 2-2 |Footer 2-4
|Footer 3-2 |Footer 3-4
|Footer 4-2 |Footer 4-4
|Footer 5-1 |Footer 5-2 |Span 2
2+|Footer 6-1/2 | |
|===
```
Individual cell alignments
```
% pandoc -f native -t asciidoc
[ Table
( "" , [] , [] )
(Caption Nothing [])
[ ( AlignDefault , ColWidthDefault )
, ( AlignDefault , ColWidthDefault )
, ( AlignDefault , ColWidthDefault )
]
(TableHead
( "" , [] , [] )
[ Row
( "" , [] , [] )
[ Cell
( "" , [] , [] )
AlignLeft
(RowSpan 1)
(ColSpan 1)
[ Plain [ Str "Left" , Space , Str "Header" ] ]
, Cell
( "" , [] , [] )
AlignCenter
(RowSpan 2)
(ColSpan 2)
[ Plain [ Str "Center" , Space , Str "Headers" ] ]
]
, Row
( "" , [] , [] )
[ Cell
( "" , [] , [] )
AlignRight
(RowSpan 1)
(ColSpan 1)
[ Plain [ Str "Right" , Space , Str "Header" ] ]
]
, Row
( "" , [] , [] )
[ Cell
( "" , [] , [] )
AlignCenter
(RowSpan 1)
(ColSpan 1)
[ Plain [ Str "Center" , Space , Str "Header" ] ]
, Cell
( "" , [] , [] )
AlignRight
(RowSpan 1)
(ColSpan 1)
[ Plain [ Str "Right" , Space , Str "Header" ] ]
, Cell
( "" , [] , [] )
AlignLeft
(RowSpan 1)
(ColSpan 1)
[ Plain [ Str "Left" , Space , Str "Header" ] ]
]
])
[ TableBody
( "" , [] , [] )
(RowHeadColumns 0)
[]
[ Row
( "" , [] , [] )
[ Cell
( "" , [] , [] )
AlignRight
(RowSpan 2)
(ColSpan 1)
[ Plain [ Str "Right" , Space , Str "Body" ] ]
, Cell
( "" , [] , [] )
AlignLeft
(RowSpan 1)
(ColSpan 2)
[ Plain [ Str "Left" , Space , Str "Body" ] ]
]
, Row
( "" , [] , [] )
[ Cell
( "" , [] , [] )
AlignCenter
(RowSpan 1)
(ColSpan 1)
[ Plain [ Str "Center" , Space , Str "Body" ] ]
, Cell
( "" , [] , [] )
AlignRight
(RowSpan 1)
(ColSpan 1)
[ Plain [ Str "Right" , Space , Str "Body" ] ]
]
]
]
(TableFoot
( "" , [] , [] )
[ Row
( "" , [] , [] )
[ Cell
( "" , [] , [] )
AlignCenter
(RowSpan 1)
(ColSpan 3)
[ Plain [ Str "Center" , Space , Str "Footer" ] ]
]
, Row
( "" , [] , [] )
[ Cell
( "" , [] , [] )
AlignLeft
(RowSpan 1)
(ColSpan 2)
[ Plain [ Str "Left" , Space , Str "Footer" ] ]
, Cell
( "" , [] , [] )
AlignCenter
(RowSpan 3)
(ColSpan 1)
[ Plain [ Str "Center" , Space , Str "Footer" ] ]
]
, Row
( "" , [] , [] )
[ Cell
( "" , [] , [] )
AlignRight
(RowSpan 1)
(ColSpan 2)
[ Plain [ Str "Right" , Space , Str "Footer" ] ]
]
, Row
( "" , [] , [] )
[ Cell
( "" , [] , [] )
AlignCenter
(RowSpan 1)
(ColSpan 2)
[ Plain [ Str "Center" , Space , Str "Footer" ] ]
]
])
]
^D
[cols=",,",options="header,footer",]
|===
<|Left Header 2+^|Center Headers
>|Right Header 2+|
^|Center Header >|Right Header <|Left Header
.2+>|Right Body 2+<|Left Body
^|Center Body >|Right Body
3+^|Center Footer
2+<|Left Footer .2+^|Center Footer
2+>|Right Footer
2+^|Center Footer |
|===
```
Adjust row span for empty rows and handle empty rows in general
```
% pandoc -f native -t asciidoc
[ Table
( "" , [] , [] )
(Caption Nothing [])
[ ( AlignDefault , ColWidthDefault )
, ( AlignDefault , ColWidthDefault )
, ( AlignDefault , ColWidthDefault )
]
(TableHead
( "" , [] , [] )
[ Row
( "" , [] , [] )
[ Cell
( "" , [] , [] )
AlignDefault
(RowSpan 2)
(ColSpan 1)
[ Plain [ Str "Header" , Space , Str "1-1" ] ]
, Cell
( "" , [] , [] )
AlignDefault
(RowSpan 3)
(ColSpan 1)
[ Plain [ Str "Span" , Space , Str "3" ] ]
, Cell
( "" , [] , [] )
AlignDefault
(RowSpan 2)
(ColSpan 1)
[ Plain [ Str "Header" , Space , Str "1-3" ] ]
]
, Row ( "" , [] , [] ) []
, Row
( "" , [] , [] )
[ Cell
( "" , [] , [] )
AlignDefault
(RowSpan 1)
(ColSpan 1)
[ Plain [ Str "Header" , Space , Str "2-1" ] ]
, Cell
( "" , [] , [] )
AlignDefault
(RowSpan 1)
(ColSpan 1)
[ Plain [ Str "Header" , Space , Str "2-3" ] ]
]
])
[ TableBody
( "" , [] , [] )
(RowHeadColumns 0)
[]
[ Row
( "" , [] , [] )
[ Cell
( "" , [] , [] )
AlignDefault
(RowSpan 3)
(ColSpan 2)
[ Plain [ Str "Body" , Space , Str "1-1/2" ] ]
, Cell
( "" , [] , [] )
AlignDefault
(RowSpan 5)
(ColSpan 1)
[ Plain [ Str "Span" , Space , Str "5" ] ]
]
, Row ( "" , [] , [] ) []
, Row ( "" , [] , [] ) []
, Row
( "" , [] , [] )
[ Cell
( "" , [] , [] )
AlignDefault
(RowSpan 1)
(ColSpan 1)
[ Plain [ Str "Body" , Space , Str "2-1" ] ]
, Cell
( "" , [] , [] )
AlignDefault
(RowSpan 1)
(ColSpan 1)
[ Plain [ Str "Body" , Space , Str "2-2" ] ]
]
, Row
( "" , [] , [] )
[ Cell
( "" , [] , [] )
AlignDefault
(RowSpan 1)
(ColSpan 1)
[ Plain [ Str "Body" , Space , Str "3-1" ] ]
, Cell
( "" , [] , [] )
AlignDefault
(RowSpan 1)
(ColSpan 1)
[ Plain [ Str "Body" , Space , Str "3-2" ] ]
]
, Row ( "" , [] , [] ) []
]
]
(TableFoot
( "" , [] , [] )
[ Row
( "" , [] , [] )
[ Cell
( "" , [] , [] )
AlignDefault
(RowSpan 5)
(ColSpan 1)
[ Plain
[ Str "Span" , Space , Str "5" ]
]
, Cell
( "" , [] , [] )
AlignDefault
(RowSpan 1)
(ColSpan 2)
[ Plain [ Str "Footer" , Space , Str "1-2" ] ]
]
, Row
( "" , [] , [] )
[ Cell
( "" , [] , [] )
AlignDefault
(RowSpan 2)
(ColSpan 2)
[ Plain
[ Str "Span" , Space , Str "2" ]
]
]
, Row ( "" , [] , [] ) []
, Row
( "" , [] , [] )
[ Cell
( "" , [] , [] )
AlignDefault
(RowSpan 1)
(ColSpan 2)
[ Plain [ Str "Footer" , Space , Str "3-2/3" ] ]
]
, Row
( "" , [] , [] )
[ Cell
( "" , [] , [] )
AlignDefault
(RowSpan 1)
(ColSpan 2)
[ Plain [ Str "Footer" , Space , Str "4-2/3" ] ]
]
])
, Table
( "" , [] , [] )
(Caption Nothing [])
[ ( AlignDefault , ColWidthDefault )
, ( AlignDefault , ColWidthDefault )
, ( AlignDefault , ColWidthDefault )
]
(TableHead ( "" , [] , [] ) [])
[ TableBody
( "" , [] , [] )
(RowHeadColumns 0)
[]
[ Row
( "" , [] , [] )
[ Cell
( "" , [] , [] )
AlignDefault
(RowSpan 1)
(ColSpan 1)
[ Plain [ Str "Body" , Space , Str "1-1" ] ]
, Cell
( "" , [] , [] )
AlignDefault
(RowSpan 1)
(ColSpan 1)
[ Plain [ Str "Body" , Space , Str "1-2" ] ]
, Cell
( "" , [] , [] )
AlignDefault
(RowSpan 3)
(ColSpan 1)
[ Plain [ Str "Span" , Space , Str "4" ] ]
]
, Row
( "" , [] , [] )
[ Cell
( "" , [] , [] )
AlignDefault
(RowSpan 5)
(ColSpan 1)
[ Plain [ Str "Span" , Space , Str "5" ] ]
, Cell
( "" , [] , [] )
AlignDefault
(RowSpan 1)
(ColSpan 1)
[ Plain [ Str "Body" , Space , Str "2-2" ] ]
]
, Row
( "" , [] , [] ) []
, Row
( "" , [] , [] )
[ Cell
( "" , [] , [] )
AlignDefault
(RowSpan 1)
(ColSpan 1)
[ Plain [ Str "Body" , Space , Str "3-2" ] ]
, Cell
( "" , [] , [] )
AlignDefault
(RowSpan 1)
(ColSpan 1)
[ Plain [ Str "Body" , Space , Str "3-3" ] ]
]
, Row
( "" , [] , [] )
[ Cell
( "" , [] , [] )
AlignDefault
(RowSpan 1)
(ColSpan 1)
[ Plain [ Str "Body" , Space , Str "4-2" ] ]
, Cell
( "" , [] , [] )
AlignDefault
(RowSpan 1)
(ColSpan 1)
[ Plain [ Str "Body" , Space , Str "4-3" ] ]
]
, Row
( "" , [] , [] ) []
, Row
( "" , [] , [] ) []
, Row
( "" , [] , [] )
[ Cell
( "" , [] , [] )
AlignDefault
(RowSpan 1)
(ColSpan 1)
[ Plain [ Str "Body" , Space , Str "6-1" ] ]
, Cell
( "" , [] , [] )
AlignDefault
(RowSpan 1)
(ColSpan 1)
[ Plain [ Str "Body" , Space , Str "6-2" ] ]
, Cell
( "" , [] , [] )
AlignDefault
(RowSpan 1)
(ColSpan 1)
[ Plain [ Str "Span" , Space , Str "6-3" ] ]
]
]
]
(TableFoot
( "" , [] , [] )
[ Row
( "" , [] , [] )
[ Cell
( "" , [] , [] )
AlignDefault
(RowSpan 1)
(ColSpan 1)
[ Plain [ Str "Footer" , Space , Str "1-1" ] ]
, Cell
( "" , [] , [] )
AlignDefault
(RowSpan 8)
(ColSpan 1)
[ Plain [ Str "Span" , Space , Str "8" ] ]
, Cell
( "" , [] , [] )
AlignDefault
(RowSpan 1)
(ColSpan 1)
[ Plain [ Str "Footer" , Space , Str "1-3" ] ]
]
, Row
( "" , [] , [] )
[ Cell
( "" , [] , [] )
AlignDefault
(RowSpan 3)
(ColSpan 1)
[ Plain [ Str "Span" , Space , Str "3" ] ]
, Cell
( "" , [] , [] )
AlignDefault
(RowSpan 1)
(ColSpan 1)
[ Plain [ Str "Footer" , Space , Str "2-3" ] ]
]
, Row
( "" , [] , [] )
[ Cell
( "" , [] , [] )
AlignDefault
(RowSpan 2)
(ColSpan 1)
[ Plain [ Str "Span" , Space , Str "2" ] ]
]
, Row ( "" , [] , [] ) []
, Row
( "" , [] , [] )
[ Cell
( "" , [] , [] )
AlignDefault
(RowSpan 1)
(ColSpan 1)
[ Plain [ Str "Footer" , Space , Str "4-1" ] ]
, Cell
( "" , [] , [] )
AlignDefault
(RowSpan 1)
(ColSpan 1)
[ Plain [ Str "Footer" , Space , Str "4-3" ] ]
]
, Row
( "" , [] , [] )
[ Cell
( "" , [] , [] )
AlignDefault
(RowSpan 1)
(ColSpan 1)
[ Plain [ Str "Footer" , Space , Str "5-1" ] ]
, Cell
( "" , [] , [] )
AlignDefault
(RowSpan 3)
(ColSpan 1)
[ Plain [ Str "Span" , Space , Str "3" ] ]
]
, Row
( "" , [] , [] )
[ Cell
( "" , [] , [] )
AlignDefault
(RowSpan 2)
(ColSpan 1)
[ Plain [ Str "Span" , Space , Str "2" ] ]
]
, Row ( "" , [] , [] ) []
])
, Table
( "" , [] , [] )
(Caption Nothing [])
[ ( AlignDefault , ColWidthDefault )
, ( AlignDefault , ColWidthDefault )
, ( AlignDefault , ColWidthDefault )
]
(TableHead ( "" , [] , [] ) [])
[ TableBody
( "" , [] , [] )
(RowHeadColumns 0)
[]
[ Row
( "" , [] , [] )
[ Cell
( "" , [ "rowspan-cell" ] , [] )
AlignDefault
(RowSpan 6)
(ColSpan 1)
[ Plain [ Str "Span" , Space , Str "6" ] ]
, Cell
( "" , [] , [] )
AlignDefault
(RowSpan 1)
(ColSpan 1)
[ Plain [ Str "Body" , Space , Str "1-2" ] ]
, Cell
( "" , [ "rowspan-cell" ] , [] )
AlignDefault
(RowSpan 2)
(ColSpan 1)
[ Plain [ Str "Span" , Space , Str "2" ] ]
]
, Row
( "" , [] , [] )
[ Cell
( "" , [ "rowspan-cell" ] , [] )
AlignDefault
(RowSpan 3)
(ColSpan 1)
[ Plain [ Str "Span" , Space , Str "3" ] ]
]
, Row
( "" , [] , [] )
[ Cell
( "" , [ "rowspan-cell" ] , [] )
AlignDefault
(RowSpan 4)
(ColSpan 1)
[ Plain [ Str "Span" , Space , Str "4" ] ]
]
, Row ( "" , [] , [] ) []
, Row
( "" , [] , [] )
[ Cell
( "" , [] , [] )
AlignDefault
(RowSpan 1)
(ColSpan 1)
[ Plain [ Str "Body" , Space , Str "3-2" ] ]
]
, Row
( "" , [] , [] )
[ Cell
( "" , [] , [] )
AlignDefault
(RowSpan 1)
(ColSpan 1)
[ Plain [ Str "Body" , Space , Str "4-2" ] ]
]
, Row ( "" , [] , [] ) []
, Row ( "" , [] , [] ) []
]
]
(TableFoot ( "" , [] , [] ) [])
]
^D
[cols=",,",options="header,footer",]
|===
|Header 1-1 |Span 3 |Header 1-3
|Header 2-1 | |Header 2-3
2+|Body 1-1/2 .3+|Span 5
|Body 2-1 |Body 2-2
|Body 3-1 |Body 3-2
| | |
.3+|Span 5 2+|Footer 1-2
2+|Span 2
2+|Footer 3-2/3
| 2+|Footer 4-2/3
|===
[cols=",,",options="footer",]
|===
|Body 1-1 |Body 1-2 .2+|Span 4
.3+|Span 5 |Body 2-2
|Body 3-2 |Body 3-3
|Body 4-2 |Body 4-3
| | |
|Body 6-1 |Body 6-2 |Span 6-3
|Footer 1-1 .5+|Span 8 |Footer 1-3
.2+|Span 3 |Footer 2-3
|Span 2
|Footer 4-1 |Footer 4-3
|Footer 5-1 |Span 3
|Span 2 | |
|===
[cols=",,",]
|===
.5+|Span 6 |Body 1-2 .2+|Span 2
.2+|Span 3
.3+|Span 4
|Body 3-2
|Body 4-2
| | |
| | |
|===
```