I’d like help with writing a plugin to wrap all first level <table>
elements generated from markdown with a <div class="customClass">
Below is my markdown
|---
| Default aligned | Left aligned | Center aligned | Right aligned
|-|:-|:-:|-:
| 1st body: row 1, column 1 | row 1, column 2 | row 1, column 3 | row 1, column 4
| row 2, column 1 | row 2, column 2 | **row 2, column 3** | row 2, column 4
| row 3, column 1 | row 3, column 2 | row 3, column 3 | row 3, column 4
|---
| 2nd body: row 1, column 1
| row 2, column 1
|===
| Footer row
In my template/layout (article.liquid), I’d like to wrap the table generated from the markdown with a div that has a class
{{ page.content | wrap_first_level_table: '<div class="customClass">' }}
The final HTML should look exactly like this
<div class="customClass">
<table>
<thead>
<tr>
<th>Default aligned</th>
<th style="text-align: left">Left aligned</th>
<th style="text-align: center">Center aligned</th>
<th style="text-align: right">Right aligned</th>
</tr>
</thead>
<tbody>
<tr>
<td>1st body: row 1, column 1</td>
<td style="text-align: left">row 1, column 2</td>
<td style="text-align: center">row 1, column 3</td>
<td style="text-align: right">row 1, column 4</td>
</tr>
<tr>
<td>row 2, column 1</td>
<td style="text-align: left">row 2, column 2</td>
<td style="text-align: center"><strong>row 2, column 3</strong></td>
<td style="text-align: right">row 2, column 4</td>
</tr>
<tr>
<td>row 3, column 1</td>
<td style="text-align: left">row 3, column 2</td>
<td style="text-align: center">row 3, column 3</td>
<td style="text-align: right">row 3, column 4</td>
</tr>
</tbody>
<tbody>
<tr>
<td>2nd body: row 1, column 1</td>
<td style="text-align: left"> </td>
<td style="text-align: center"> </td>
<td style="text-align: right"> </td>
</tr>
<tr>
<td>row 2, column 1</td>
<td style="text-align: left"> </td>
<td style="text-align: center"> </td>
<td style="text-align: right"> </td>
</tr>
</tbody>
<tfoot>
<tr>
<td>Footer row</td>
<td style="text-align: left"> </td>
<td style="text-align: center"> </td>
<td style="text-align: right"> </td>
</tr>
</tfoot>
</table>
</div>
Does anyone know a plugin that can do something like this? I don’t have a need for more robust plugin and would prefer a very simple; focused execution. Thanks for your help in advance.
Note: When I say first level <table>
, I look to avoid wrapping <table>
's embedded in other tables as I don’t need a <div>
around those.