Can I merge table rows in markdown
No, this is not possible with GitHub-Flavored Markdown. As the spec explains (emphasis added):
The remainder of the table’s rows may vary in the number of cells. If there are a number of cells fewer than the number of cells in the header row, empty cells are inserted. If there are greater, the excess is ignored:
Of course, you can always fall back to raw HTML. In fact, GitHub includes the rowspan
(and colspan
) attribute on their whitelist.
<table>
<thead>
<tr>
<th>Layer 1</th>
<th>Layer 2</th>
<th>Layer 3</th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan=4>L1 Name</td>
<td rowspan=2>L2 Name A</td>
<td>L3 Name A</td>
</tr>
<tr>
<td>L3 Name B</td>
</tr>
<tr>
<td rowspan=2>L2 Name B</td>
<td>L3 Name C</td>
</tr>
<tr>
<td>L3 Name D</td>
</tr>
</tbody>
</table>
Try it yourself at https://jsfiddle.net/7h89y55r/
If you're using Jekyll, to support the table cell alignment, merging and so on, I think the below I wrote can help you do it easier.
jekyll-spaceship - ð A Jekyll plugin to provide powerful supports for table, mathjax, plantuml, mermaid, video, youtube, emoji, vimeo, dailymotion, etc.
https://github.com/jeffreytse/jekyll-spaceship
For now, these extended features are provided:
- Cells spanning multiple columns
- Cells spanning multiple rows
- Cells text align separately
- Table header not required
- Grouped table header rows or data rows
Markdown:
Code above would be parsed as:
The standard commonmark does not support tables and does not refer to or recommend any specific table extensions (latest revision permalink as of 2018-03). Your question doesn't specifically ask about Github-flavored Markdown (GFM), but GFM is based on commonmark with a table extension which doesn't support this.
MultiMarkdown from at least v5 supports these types of tables (docs permalink) in the same way that Michael Fortin for PHP Markdown Extra does, turning:
| | Grouping ||
First Header | Second Header | Third Header |
------------ | :-----------: | -----------: |
Content | *Long Cell* ||
Content | **Cell** | Cell |
New section | More | Data |
And more | With an escaped '\|' ||
[Prototype table]
into
I'm commonly using markdown-it (VSCode built-in markdown & my Ghost blog use it) which only supports Github-flavored tables, but someone created an extension (markdown-it-multimd-table) for these tables with it. Ultimately, you've got options.