在markdown中创建分层表

时间:2017-04-06 12:35:48

标签: markdown github-flavored-markdown

我想构建一个像这样的复杂表:

| some thing | more important | up here |
|------------|----------------|---------|
| a  |a1     | b     |d       | c       |
|------------|----------------|---------|
| 1  |2      | 1     |2       |         |

是否可以使用gf-markdown?

1 个答案:

答案 0 :(得分:2)

不,这对GFM来说是不可能的,但是,可以使用原始HTML。

GitHub Flavored Markdown的规格为here。似乎没有对这种表构造的支持。值得注意的是,陈述如下:

  

标题行必须与单元格数中的分隔符行匹配。如果没有,表格将无法识别......

     

表格行的其余部分可能会有不同的单元格数量。如果有多个单元格小于标题行中的单元格数,则插入空单元格。如果有更多,则忽略超出部分。

在这种情况下,您提供的表格将被解释​​为:

| some thing | more important | up here |
|------------|----------------|---------|
| a          | a1             | b       |
| 1          | 2              | 1       |

也就是说,每行中的最后两个单元格将被忽略。如果可能有助于记住:

  

一列中的单元格不需要匹配长度,但如果它们更容易阅读。同样,使用前导管和尾随管也可能不一致。

因此,仅仅因为人类读者很容易理解您的表格,解析器就不会认识到您的列很好地对齐了。它只计算单元格的数量并忽略它们的实际对齐。

顺便说一句,在转换你的桌子时(我上面的例子),我注意到你包含了一个" deliminator row"在表的每一行之间。 " deliminator row"应该只在标题行和第一个数据行之间。

这并不意味着无法创建这样的表格。作为原始Markdown syntax rules状态:

  

对于Markdown语法未涵盖的任何标记,您只需使用HTML本身。

当然,出于安全原因,GFM disallows various raw HTML标记。但是,tables不在列表中。因此,您应该能够以您想要的任何结构创建原始HTML表。

<table>
  <thead>
    <tr>
      <th colspan="2">some thing</th>
      <th colspan="2">more important</th>
      <th>up here</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>a</td>
      <td>a1</td>
      <td>b</td>
      <td>d</td>
      <td>c</td>
    </tr>
    <tr>
      <td>1</td>
      <td>2</td>
      <td>1</td>
      <td>2</td>
      <td></td>
    </tr>
  </tbody>
</table>

您可以看到该表in this gist的示例(请参阅raw Markdown here)。我甚至将您的非工作原始示例包括在内进行比较。