我可以合并Markdown中的表行吗


82

有没有办法在降价文件(如ReadMe.md文件)的表的列中创建合并的行?

像这样:

表


恐怕不是。Markdown是一个简单的HTML /文本编辑器。你没有很多的功能...😞
H. Pauwelyn

@ H.Pauwelyn您如何寻找替代解决方案?我可以在其中嵌入excel文件吗?
dev-masih

不,就像我说的那样,这很简单。我建议使用代码块。它以三个反勾号开头和结尾,或者每行以空格开头。
H. Pauwelyn'17年

也许尝试在您的markdown文件中使用原始HTML表?
mb21 '10

1
@ dev-masih,回答有关替代解决方案的问题。您可以使用AsciiDoc代替Markdown。GitHub现在支持它。您的表格采用AsciiDoc语法:[cols="^,^,^"] \n|=== \n|Layer1 |Layer2 |Layer3 \n \n.4+.^|L1 Name .2+.^|L2 Name A |L3 Name A \n|L3 Name B \n.2+.^|L2 Name B |L3 Name C \n|L3 Name D \n \n|===\n用行分隔符替换所有内容。
彼得

Answers:


67

不,使用GitHub Flavorred Markdown是不可能的。如规格说明所述(重点已添加):

表的其余行的单元格数量可能有所不同。如果单元格数少于标题行中的单元格数,则插入空单元格。如果大于,则忽略多余

当然,您总是可以退回到原始HTML。实际上,GitHub在其白名单中包含了rowspan(和colspan)属性。

<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>

https://jsfiddle.net/7h89y55r/上尝试一下


这是完美的,结果正是我想要的
dev-masih 17-10-9

1
使用原始HTML是一种折衷。它更加灵活,但是您不能再在HTML标签中使用markdown。<table><tr><td>This is not emphasized text: *the asterisks* will be rendered literally.</td></tr></table>
chharvey'5

完善!这也是可以轻松创建表的HTML表生成器:tablegenerator.com/html_tables
np8

20

标准commonmark不支持表,并且不引用或建议任何特定的表扩展名(自2018-03以来的最新修订永久链接)。您的问题并未特别询问Github风格的Markdown(GFM),但GFM基于带有表扩展名的commonmark,该扩展名不支持此功能。

MultiMarkdown至少V5支持这些类型的表(的文档永久链接),以同样的方式,迈克尔福廷对PHP降价外呢,转弯:

|             |          Grouping           ||
First Header  | Second Header | Third Header |
 ------------ | :-----------: | -----------: |
Content       |          *Long Cell*        ||
Content       |   **Cell**    |         Cell |

New section   |     More      |         Data |
And more      | With an escaped '\|'         ||  
[Prototype table]

进入 表

我通常使用markdown-it(VSCode内置markdown和我的Ghost博客使用它),它仅支持Github风格的表,但有人为此创建了扩展(markdown-it-multimd-table)。最终,您将有选择权。


5

如果您使用Jekyll,以支持表格单元格对齐合并等,我认为下面的内容可以帮助您更轻松地进行操作。

jekyll -spaceship- Je一个Jekyll插件,为表格,mathjax,plantuml,美人鱼,视频,youtube,emoji,vimeo,dailymotion等提供强大的支持。

https://github.com/jeffreytse/jekyll-spaceship

目前,提供了以下扩展功能:

  • 跨多列的单元格
  • 跨多行的单元格
  • 单元格文本分别对齐
  • 表格标题不是必需的
  • 分组表标题行或数据行

降价:

表格代码

上面的代码将解析为:

html表格


不幸的是,它变得非常
难以理解

这是一种扩展方法,请尝试使其保持可读性。当然,您也可以使用html编写表,这取决于您的喜好以及此扩展的优缺点的选择。
JT

3

我在有关替代解决方案的评论中回答了OP的问题,但评论被压缩为一行。在此处添加它作为答案以正确显示格式。

您可以使用AsciiDoc代替Markdown。GitHub现在支持它。只需使用AsciiDoc语法README.adoc而不是README.mdYour Table即可:

[cols="^.^,^.^,^.^"]
|===
|Layer1 |Layer2 |Layer3

.4+|L1 Name .2+|L2 Name A |L3 Name A
|L3 Name B
.2+|L2 Name B |L3 Name C
|L3 Name D
|===

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.