csvtk icon indicating copy to clipboard operation
csvtk copied to clipboard

feature request: csv2html

Open tseemann opened this issue 4 years ago • 2 comments

Prerequisites

  • [x] make sure you're are using the latest version by csvtk version
  • [x] read the usage

Describe your issue

  • [x] describe the problem
  • [x] provide a reproducible example

csvtk csv2html

This subcommand would make an HTML table to modern spec.

<TABLE>
<THEAD>
<TR> <TH> ID <TH> value <TH> meta </TR>
</THEAD>
<TBODY>
<TR><TD> covid <TD> 2020<TD> bad </TR>
<TR><TD> sars <TD> 2021<TD> worse </TR>
<TR><TD> flu <TD> 2022<TD> ok </TR>
</TBODY>
</TABKE>

Maybe options to set the HTML CSS Class <TABLE CLASS="xxxxx">

And the caption <CAPTION> xxxxxxxxxxx </CAPTION>

tseemann avatar Feb 18 '21 01:02 tseemann

It's not complicated but existed tools like pandoc can easily convert markdown to HTML, though there are no options to set table class and caption.

$ cat names.csv | csvtk csv2md | pandoc 
<table>
<thead>
<tr class="header">
<th style="text-align: left;">id</th>
<th style="text-align: left;">first_name</th>
<th style="text-align: left;">last_name</th>
<th style="text-align: left;">username</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: left;">11</td>
<td style="text-align: left;">Rob</td>
<td style="text-align: left;">Pike</td>
<td style="text-align: left;">rob</td>
</tr>
<tr class="even">
<td style="text-align: left;">2</td>
<td style="text-align: left;">Ken</td>
<td style="text-align: left;">Thompson</td>
<td style="text-align: left;">ken</td>
</tr>
<tr class="odd">
<td style="text-align: left;">4</td>
<td style="text-align: left;">Robert</td>
<td style="text-align: left;">Griesemer</td>
<td style="text-align: left;">gri</td>
</tr>
<tr class="even">
<td style="text-align: left;">1</td>
<td style="text-align: left;">Robert</td>
<td style="text-align: left;">Thompson</td>
<td style="text-align: left;">abc</td>
</tr>
<tr class="odd">
<td style="text-align: left;">NA</td>
<td style="text-align: left;">Robert</td>
<td style="text-align: left;">Abel</td>
<td style="text-align: left;">123</td>
</tr>
</tbody>
</table>

id first_name last_name username
11 Rob Pike rob
2 Ken Thompson ken
4 Robert Griesemer gri
1 Robert Thompson abc
NA Robert Abel 123

shenwei356 avatar Feb 18 '21 02:02 shenwei356

There are existing tools to do CSV to MD and JSON too, but you implemented those :-)

tseemann avatar Apr 28 '21 21:04 tseemann