PmWiki has two types of table markup; the markup described in this page is useful for creating simple tables with lots of small cells, while table directive markups help with larger scale tables. For more possibilities with table formatting see Cookbook:Rowspan in simple tables and Cookbook:Formatting tables.
Tables are created via use of double pipe characters: ||. Lines beginning with this markup denote rows in a table or a formatting line. Within table row lines the double-pipe is used to delimit cells. In the examples below a border is added for illustration (the default is no border).
The first line in the markup contains formatting commands for the table. It only has double pipe characters at the start of the line.
Header cells can be created by placing ! as the first character of a cell. Note that these are table headers, not headings, so it doesn't extend to !!, !!!, etc.
|| border=1 width=100%
||!cell default||!cell left ||
||default-aligned||left-aligned ||
cell default
cell left
default-aligned
left-aligned
Note that header and detail cells have different default alignments.
To get a cell to span multiple columns, follow the cell with empty cells.
(At present there is no markup for spanning rows.)
Column spanning
|| border=1 width=100%
|| |||| right column ||
|| || middle column ||||
|| left column ||||||
|| left column || middle column || right column ||
right column
middle column
left column
left column
middle column
right column
Table attributes
Any line that begins with || but doesn't have a closing || sets the table attributes for any tables that follow. These attributes can control the size and position of the table, borders, background color, and cell spacing. (In fact these are just standard HTML attributes that are placed in the <table> tag.)
Use the width= attribute to set a table's width, using either a percentage value, an absolute size, or *.
Use align=center, align=left, and align=right to center, left, or right align a table. Note that align=left and align=right create a floating table, such that text wraps around the table.
Table alignment: center
|| border=1 align=center width=50%
||!cell 1 ||! cell 2 ||! cell 3||
||left-aligned || centered || right-aligned||
Notice how text does not wrap with a table using "align=center".
cell 1
cell 2
cell 3
left-aligned
centered
right-aligned
Notice how text does not wrap with a table using "align=center".
Table alignment: left
|| border=1 align=left width=50%
||!cell 1 ||! cell 2 ||! cell 3||
||left-aligned || centered || right-aligned||
Notice how text wraps to the right of a table using "align=left".
cell 1
cell 2
cell 3
left-aligned
centered
right-aligned
Notice how text wraps to the right of a table using "align=left".
Table alignment: right
|| border=1 align=right width=50%
||!cell 1 ||! cell 2 ||! cell 3||
||left-aligned || centered || right-aligned||
Notice how text wraps to the left of a table using "align=right".
cell 1
cell 2
cell 3
left-aligned
centered
right-aligned
Notice how text wraps to the left of a table using "align=right".
Note: to get a table to align left (but not "float left") requires CSS, as in
||style="margin-left:0px;"
The bgcolor= attribute sets the background color for a table. At present there is no way to specify the color of individual rows or cells in this type of table (but see Cookbook:FormattingTables).
Tables are created via use of the double pipe character: ||. Lines beginning with this markup denote rows in a table; within such lines the double-pipe is used to delimit cells. In the examples below a border is added for illustration (the default is no border).
Header cells can be created by placing ! as the first character of a cell. Note that these are table headers, not headings, so it doesn't extend to !!, !!!, etc.