github markdown拆分源表行

时间:2018-12-22 14:53:29

标签: github markdown

我有一个非常复杂的markdown表,其中包含很多列。 我想保持linter(在我的情况下,它是makdownlint),并保持线条美观,并且限制80个字符。但是标头数据很复杂,所以我的表看起来像这样

| fooooooooooooo | baaaaaaaaar | foooooooooooo | baaaaaaaaar | fooooooooooo |
|----------------|-------------|---------------|-------------|--------------|
|1|2|3|4|5|

该表的结果是我需要它,并且在GitHub上看起来还不错
我不确定这是个好主意,但是有什么方法可以在源代码行之间拆分表单元格,但保持渲染的数据不变?

类似这样的东西:

| fooooooooooooo |\
| baaaaaaaaar \
| foooooooooooo \
| baaaaaaaaar \
| fooooooooooo |

1 个答案:

答案 0 :(得分:3)

简而言之:

GitHub的spec不提供跨行中断。值得注意的是行的描述:

  

每行由包含任意文本的单元格组成,其中内联   由管道(|)分隔。前后管是   还建议您阅读清晰,否则   解析歧义。管道之间的空间和单元格内容被修剪。   块级元素不能插入表中。

当然,尽管它不特别支持它,但它也没有明确排除在多行中破坏一行。但是,请注意,语法没有提供任何方式(在换行符之外)来定义一行何时结束而另一行何时开始(与标题行不同,标题行需要用“分隔符行”将其与表主体分开) )。由于无法定义行之间的分隔,因此解析器确定行何时结束和另一行开始的唯一方法是换行。

然后我们遇到这个问题:

  

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

换句话说,解析器无法对列进行计数以确定下一行是上一行还是新行的延续。

最后,该规范在其他地方指出:

  

该行末的反斜杠是硬断行:

某些特定类型的内容有一些例外,但是规范的backslash escapes部分根本没有提到表格,因此这些例外都不适用。因此,在行的末尾使用反斜杠转义仅能增强行在行尾结束的事实,这与您想要的效果相反。

所以,不行,无法将表行跨多行包装。

为进行比较,考虑使用MultiMarkdown,它早在GitHub提供该语法之前就已经支持相同的表语法。 MultiMarkdown的文档明确指出:

  

单元格内容只能在一行上

此行为与首先引入语法的PHP Markdown Extra相匹配。实际上,我不知道这种特定表语法的任何实现方式,该方式支持以任何方式在多行中定义一行。