如何在Microsoft VSTS中将具有多行单元格的表添加到markdown?
我以前在github上使用asciidoc作为自述文件,因为它更丰富,更不含糊。该公司现在有VSTS项目,不支持asciidoc,所以我需要使用markdown。 但是,目前还不清楚实际支持哪种降价方式
此页面说明可以使用github风味的降价
https://docs.microsoft.com/en-us/vsts/collaborate/markdown-guidance
我通过they use commonmark库找到了另一个页面markdown-it。
问:VS Code是否支持GitHub Flavored Markdown?
答:不,VS Code使用的是针对CommonMark Markdown规范的 降价 - 它库。 GitHub正朝着CommonMark迈进 您可以在此更新中阅读的规范。
我一直在使用asciidoctor和pandoc的组合来转换文件,但没有任何东西能让它变得非常正确。 (Asciidoctor转换为docand,然后pandoc可以解析)
asciidoctor -b docbook -v -o "$OUTPUT".xml "$INPUT" &&
pandoc -f docbook -t markdown_github -i "$OUTPUT".xml -o "$OUTPUT"
我必须手动重新添加标题。 我目前的绊脚石是多排细胞。 Github支持网格表, 见Newline in markdown table?:
+---------------+---------------+--------------------+
| Fruit | Price | Advantages |
+===============+===============+====================+
| Bananas | first line\ | first line\ |
| | next line | next line |
+---------------+---------------+--------------------+
| Bananas | first line\ | first line\ |
| | next line | next line |
+---------------+---------------+--------------------+
但是这个和嵌入式html似乎都不适用于VSTS。 如果允许的话,我很乐意使用html自述文件。
2017年11月17日更新:
我找到了markdown-it的链接并在上面添加了它。我在那里提出an issue进行澄清(或增强)。目前尚不清楚VSTS在引擎盖下实际使用的版本。
我想问一下微软自己的问题,但他们问一个问题链接直接堆栈溢出。
markdown-it库确实支持@Waylan建议的用法:
| Fruit | Price | Advantages |
| ------------- | ----------------------- | ----------------------- |
| Bananas | first line<br>next line | first line<br>next line |
| Bananas | first line<br>next line | first line<br>next line |
见https://github.com/markdown-it/markdown-it/issues/406。 问题很可能是微软禁用了HTML。 因此,解决方案等待回复@ starian的建议:https://visualstudio.uservoice.com/forums/330519-visual-studio-team-services/suggestions/32312290-multi-line-in-the-cell-of-a-table-in-markdown-in-v
答案 0 :(得分:3)
简而言之,每行必须在一行上,并且应使用<br>
来表示换行符。像这样:
| Fruit | Price | Advantages |
| ------------- | ----------------------- | ----------------------- |
| Bananas | first line<br>next line | first line<br>next line |
| Bananas | first line<br>next line | first line<br>next line |
以下是对每个工具的解释,并分析该工具的文档:
CommonMark是具有严格spec的Markdown变体。 GitHub-Flavored Markdown(GFM)是CommonMark(它向CommonMark添加功能,如表格)的扩展,具有自己的spec。因此,假设一个实现支持GFM就是说它支持带有扩展的CommonMark。请注意2017年3月14日的GitHub adopted the current spec,因此任何较旧的信息可能与当前实施无关。
VSTS是否实际使用CommonMark / GFM实现或近似近似文档尚不清楚。但是,由于文档明确指出支持“GitHub风格的扩展”,这将向我表明GFM规范将是一个很好的参考。无论如何,GFM Spec是github.com上呈现的任何Markdown的控制规范。
GFM Spec的Tables section明确指出:
无法在表格中插入块级元素。
并给出了这个简单的例子:
| foo | bar | | --- | --- | | baz | bim |
虽然规范没有特别提及多个行单元格,但没有任何包含多行的单元格的示例。据我所知,GFM不支持这一点。因此,在GFM表单元格中包含换行符的唯一方法是使用<br>
标记,该标记不是块级元素。
Pandoc supports多种不同风格的表语法。如果你将Markdown传递给Pandoc和GFM,那么你需要使用Pandoc的桌面风格,它最接近GFM的风格。例如,GFM表不包括对角落的+
的支持。该语法特定于Pandoc的Grid Tables。幸运的是,Pandoc的文档告诉我们哪种风格与GFM最匹配。
Pandoc支持各种“Markdown Variants”,其中一个是gfm
。文档保留了这个变体:
我们还支持
gfm
(GitHub-Flavored Markdown)作为一组commonmark
上的扩展程序::
pipe_tables
,raw_html
,fenced_code_blocks
,auto_identifiers
,ascii_identifiers
,backtick_code_blocks
,autolink_bare_uris
,intraword_underscores
,strikeout
,hard_line_breaks
,emoji
,shortcut_reference_links
,angle_brackets_escapable
。
请注意,Pandoc的gfm
变体使用Pipe Tables。值得注意的是,自GitHub采用Commonmark以来,Pandoc的markdown_github
变体已被弃用。但即使markdown_github
变体也使用管道表。
管道表的Pandocs文档说明(重点补充):
管道表的单元格不能包含段落和列表等块元素,不能跨越多行。
并给出了这个例子:
| Right | Left | Default | Center | |------:|:-----|---------|:------:| | 12 | 12 | 12 | 12 | | 123 | 123 | 123 | 123 | | 1 | 1 | 1 | 1 |
这显然与GFM表相同,不包括对块级元素或多行单元格的任何支持。
VSTS Documentation for Tables与此示例紧密匹配GFM和Pandoc管道表:
| Heading 1 | Heading 2 | Heading 3 | |-----------|:---------:|----------:| | Cell A1 | Cell A2 | Cell A3 | | Cell B1 | Cell B2 | Cell B3 |
虽然VSTS文档没有特别提及块级元素或多行,但似乎可以肯定它实际上是相同的样式。
我们可以做出这样的假设,因为在所有三个实例(VSTS,GFM和Pandoc管道表)中,语法不提供表的各个行之间的分隔符(与支持行分隔符的Pandoc网格表进行比较)。虽然在标题行和数据行之间存在分隔符,但在各个数据行之间没有分隔符,但无法指示每行有多少行文本。因此,每行只能用一行文字表示。
鉴于上述情况,要由VSTS,GFM和Pandoc(gfm
变体)正确解析,您的表应格式如下:
| Fruit | Price | Advantages |
| ------------- | ----------------------- | ----------------------- |
| Bananas | first line<br>next line | first line<br>next line |
| Bananas | first line<br>next line | first line<br>next line |
使用Pandoc时,请务必使用gfm
格式(pandoc -f gfm ...
)。
答案 1 :(得分:0)
VSTS降价不支持,我在此处提交用户语音:multi-line in the cell of a table in markdown in VSTS,您可以投票并关注它。