With Asciidoctor we can create tables where the header and rows are in CSV (Comma Separated Values) and DSV (Delimiter Separated Values) format. Normally we use a pipe-symbol (|
) to separate cell values. This is actually PSV (Prefix Separated Values) :-).
In the following Asciidoctor markup we create a very simple table with a header and two rows using CSV:
= Tables == CSV table [format="csv", options="header"] |=== Writing tools, Awesomeness Asciidoctor, Oh yeah! MS Word, No! |===
We generate this into HTML and we get the following result:
Asciidoctor provides also another way to define the above table:
= Tables == CSV table // Define table using CSV syntax. // The start and end of the table is defined // as ,=== instead of |===. // Also the header row is followed by new line, // to indicate it is the header row. ,=== Writing tools, Awesomeness Asciidoctor, Oh yeah! MS Word, No! ,=== // We can also specify a separator. [format="csv", separator=";", options="header"] |=== Name;Description Asciidoctor;Awesome way to write documentation |===
The previous samples used a comma to separate values, but we can also use colon (:
). The next sample contains tables defined with DSV:
== DSV table [format="dsv", options="header"] |=== Writing tools:Awesomeness Asciidoctor:Oh yeah! MS Word:No! |=== // Alternative syntax: :=== Writing tools: Awesomeness Asciidoctor: Oh yeah! MS Word: No! :===
With the include
directive we can also include data from an external CSV of DSV file to create a table (of course also the traditional pipe-symbol separated format can be in an external file):
= Table with external data [format="csv", options="header"] |=== include::tools.csv[] |===
The file tools.cv
has the following contents:
Writing tools, Awesomeness Asciidoctor, Oh yeah! MS Word, No!
Code written with Asciidoctor 1.5.0.