更多Markdown使用技巧,可参考《Markdown使用方法、常用技巧汇总》
CommonMark
并未定义表格
市面上大部分markdown
的扩展已经支持表格定义、且遵循一套事实标准。
下面分享下markdown
表格的实现。
基本语法
| 列1 | 列2 |
|:--------:| -------------:|
| 文本居中 | 文本居右 |
效果如下:
列1 | 列2 |
---|---|
文本居中 | 文本居右 |
语法非常简单,但也牺牲了很多细节的支持。下面介绍复杂的场景。
复杂实现
以单元格合并为例。
markdown
表格语法不支持单元格合并,虽然它是HTML的子集,但没有实现相关属性。
需要我们自行使用HTML标签实现(其他复杂场景也采用该思路,如锚链接)。
HTML合并单元格,依赖
colspan
和rowspan
属性,分别表示跨几列、跨几行
例:
<table>
<tr>
<th>no</th>
<th>c1</th>
<th>c2</th>
<th>c3</th>
</tr>
<tr>
<td>1</td>
<td colspan="2">r1-c12</td>
<td rowspan="2">r12-c3</td>
</tr>
<tr>
<td>2</td>
<td></td>
<td></td>
</tr>
<tr>
<td>3</td>
<td colspan="2" rowspan="2">r34-c12</td>
<td></td>
</tr>
<tr>
<td>4</td>
<td></td>
</tr>
</table>
如果遇到代码中的行被转义,可以将代码两端加上
<escape></escape>
效果如下:
no | c1 | c2 | c3 |
---|---|---|---|
1 | r1-c12 | r12-c3 | |
2 | |||
3 | r34-c12 | ||
4 |
注意:模拟的表格中不再支持markdown语法,需要自行使用HTML来处理,如自定义锚链接等
总结
markdown
可以支持表格,但要实现优美的、灵活的表格,即便可以通过HTML实现,写作成本太高,这不符合markdown
的初衷:“ 专注写作而不是排版 ”。
实在要用,建议用编辑器生成表格,推荐一个工具:http://www.tablesgenerator.com/markdown_tables。
效果如下图,支持多种语法:
以上。感谢您的阅读。