我有一个非常复杂的markdown表,其中包含很多列。
我想保持linter(在我的情况下,它是makdownlint
),并保持线条美观,并且限制80个字符。但是标头数据很复杂,所以我的表看起来像这样
| fooooooooooooo | baaaaaaaaar | foooooooooooo | baaaaaaaaar | fooooooooooo |
|----------------|-------------|---------------|-------------|--------------|
|1|2|3|4|5|
该表的结果是我需要它,并且在GitHub上看起来还不错
我不确定这是个好主意,但是有什么方法可以在源代码行之间拆分表单元格,但保持渲染的数据不变?
类似这样的东西:
| fooooooooooooo |\
| baaaaaaaaar \
| foooooooooooo \
| baaaaaaaaar \
| fooooooooooo |
答案 0 :(得分:3)
简而言之:否。
GitHub的spec不提供跨行中断。值得注意的是行的描述:
每行由包含任意文本的单元格组成,其中内联 由管道(
|
)分隔。前后管是 还建议您阅读清晰,否则 解析歧义。管道之间的空间和单元格内容被修剪。 块级元素不能插入表中。
当然,尽管它不特别支持它,但它也没有明确排除在多行中破坏一行。但是,请注意,语法没有提供任何方式(在换行符之外)来定义一行何时结束而另一行何时开始(与标题行不同,标题行需要用“分隔符行”将其与表主体分开) )。由于无法定义行之间的分隔,因此解析器确定行何时结束和另一行开始的唯一方法是换行。
然后我们遇到这个问题:
表格其余部分的单元格数量可能有所不同。如果 单元格的数量少于 标题行,将插入空单元格。如果更大,则多余 被忽略:
换句话说,解析器无法对列进行计数以确定下一行是上一行还是新行的延续。
最后,该规范在其他地方指出:
该行末的反斜杠是硬断行:
某些特定类型的内容有一些例外,但是规范的backslash escapes部分根本没有提到表格,因此这些例外都不适用。因此,在行的末尾使用反斜杠转义仅能增强行在行尾结束的事实,这与您想要的效果相反。
所以,不行,无法将表行跨多行包装。
为进行比较,考虑使用MultiMarkdown,它早在GitHub提供该语法之前就已经支持相同的表语法。 MultiMarkdown的文档明确指出:
单元格内容只能在一行上
此行为与首先引入语法的PHP Markdown Extra相匹配。实际上,我不知道这种特定表语法的任何实现方式,该方式支持以任何方式在多行中定义一行。