在 Markdown 中创建没有表头的表格
Posted
技术标签:
【中文标题】在 Markdown 中创建没有表头的表格【英文标题】:Create a table without a header in Markdown 【发布时间】:2013-07-06 08:25:09 【问题描述】:是否可以?
html 看起来像这样:
<table>
<tr>
<td>Key 1</td>
<td>Value 1</td>
</tr>
<tr>
<td>Key 2</td>
<td>Value 2</td>
</tr>
</table>
【问题讨论】:
【参考方案1】:大多数 Markdown 解析器不支持没有标题的表格。这意味着标题的分隔线是强制性的。
不的解析器支持没有标题的表
multimarkdown Maruku:Ruby 中流行的实现 byword: “所有表格必须以一行或多行标题开头”php Markdown Extra “第二行包含标题和内容之间的强制分隔线”
RDiscount 使用 PHP Markdown Extra 语法。
GitHub Flavoured Markdown Parsedown:PHP 中的解析器(例如在 Laravel 电子邮件中使用)做的解析器支持没有标题的表。
Kramdown: Ruby 中的解析器 Text::MultiMarkdown:Perl CPAN 模块。 MultiMarkdown:Windows 应用程序。 ParseDown Extra: PHP 中的解析器。 Pandoc:用 Haskell 编写的命令行文档转换器(通过其simple_tables
和 multiline_tables
扩展支持无标题表)
Flexmark:Java 中的解析器。
CSS 解决方案
如果您能够更改 HTML 输出的 CSS,那么您可以利用 :empty
伪类来隐藏一个空标题并使其看起来像根本没有标题。
【讨论】:
更多关于 CSS 解决方案:***.com/questions/12023771/hide-empty-cells-in-table:empty
没有帮助,因为如果您只隐藏 <th>
它看起来不正确;您必须隐藏整个 <tr>
甚至整个 <thead>
。【参考方案2】:
如果您不介意将其留空而浪费一行,请考虑以下技巧(这是一种技巧,仅当您不喜欢添加任何其他插件时才使用此技巧)。
| | |
|---|---|
|__Bold Key__| Value1 |
| Normal Key | Value2 |
要查看上面的样子,请复制上面的内容并访问https://stackedit.io/app
它适用于 GitLab/GitHub 的 Markdown 实现。
【讨论】:
这适用于什么实现?它不适用于 Perl 的 Text::MultiMarkdown,但我认为它可能适用于一些 PHP MultiMarkdown 实现。 它与 gitlab/github 的 markdown 实现一起工作。我不确定 perl 的 Text::MultiMarkdown 这将创建一个空表头和一个空行。 这实际上适用于pandoc
markdown to pdf。
谢谢!这也适用于 Laravel 5.8 (multi) markdown。没有标题可见 - 只有一行。看起来像一个分隔线,可以在主题中使用一些 CSS 将其移除。【参考方案3】:
通用解决方案
不幸的是,许多建议不适用于所有 Markdown 查看器/编辑器,例如流行的 Markdown Viewer Chrome 扩展程序,但它们确实适用于 iA Writer。
似乎在这两个流行程序中都有效(并且可能适用于您的特定应用程序)是使用HTML comment blocks ('<!-- -->')
:
| <!-- --> | <!-- --> |
|-------------|-------------|
| Foo | Bar |
就像前面提到的一些建议一样,这确实会在您的 Markdown 查看器/编辑器中添加一个空的标题行。在 iA Writer 中,它在美学上足够小,不会妨碍我太多。
【讨论】:
这完全否定了使用 Markdown 的意义,因为当仅查看文本时,cmets 将被剥离,列甚至不再对齐。 我认为@hackel 误解了。这不会使用固定宽度对齐列。相反,它提供了一个很好的解决方法,即拥有有效但为空的列标题。在我的情况下,这是一个很好的解决方法。该表仍按预期/预期呈现;它根本没有标题行。 不错,不过this really isn't a universal solution 这将创建一个空表头和一个空行。 @Tony 将标题单元格留空不是更好吗?【参考方案4】:我通过使用空链接来使用 Bitbucket 的 Markdown:
[]() |
------|------
Row 1 | row 2
【讨论】:
还会提示一个空的标题行。至少它只有正常线高度的一半。也为我在 github 中作为 Hack 工作 在 Insomnia 中编写文档时,这个 hack 对我有用。仍然会创建一个标题行,但它比我在其中放置文本要短得多。谢谢! 太棒了!我仍然看到 Github Markdown 有一点垂直空间,但比以前好多了。【参考方案5】:至少对于GitHub Flavoured Markdown,您可以给人一种错觉,方法是使用常规__
或**
使所有非标题行条目粗体格式:
|Regular | text | in header | turns bold |
|-|-|-|-|
| __So__ | __bold__ | __all__ | __table entries__ |
| __and__ | __it looks__ | __like a__ | __"headerless table"__ |
【讨论】:
我一直在寻找可以在 GFM 中使用的东西,而这个 hack 很有创意! 呈现表格的标题行颜色不同时会出现问题(例如 StackExchange)。【参考方案6】:省略分隔线上方的标题会在至少 Perl Text::MultiMarkdown 和 FletcherPenney MultiMarkdown 中生成一个无标题表
|-------------|--------|
|**Name:** |John Doe|
|**Position:**|CEO |
见PHP Markdown feature request
PHP Parsedown 中的空标题生成带有空标题的表格,这些表格通常不可见(取决于您的 CSS),因此看起来像无标题表格。
| | |
|-----|-----|
|Foo |37 |
|Bar |101 |
【讨论】:
关于Parsedown的使用,其实header还在,查看HTML即可。如果您在单元格上有 CSS 填充,您将看到标题单元格。但我猜table th:empty padding: 0;
会解决这个问题。【参考方案7】:
以下内容在 GitHub 中对我很有效。第一行不再是粗体,因为它不是标题:
<table align="center">
<tr>
<td align="center"><img src="docs/img1.png?raw=true" ></td>
<td align="center">Some other text</td>
<td align="center">More text</td>
</tr>
<tr>
<td align="center"><img src="docs/img2.png?raw=true" ></td>
<td align="center">Some other text 2</td>
<td align="center">More text 2</td>
</tr>
</table>
检查没有标题here 的示例 HTML 表格。
【讨论】:
这正是提问者说他们不想要的。 HTML 表格在 Bitbucket (community.atlassian.com/t5/Bitbucket-questions/…) 中似乎不起作用 - 它显示 HTML 本身而不是呈现表格。【参考方案8】:如果您可以添加以下 CSS,则可以隐藏标题:
<style>
th
display: none;
</style>
这有点笨拙,不区分表格,但它可能适用于简单的任务。
【讨论】:
唯一对我有用的 CSS 技巧(我正在使用带有 Markdown-it 渲染器的 VNote)。这里给出的解决方案都没有:***.com/questions/12023771/hide-empty-cells-in-table 工作。【参考方案9】:$ cat foo.md
Key 1 | Value 1
Key 2 | Value 2
$ kramdown foo.md
<table>
<tbody>
<tr>
<td>Key 1</td>
<td>Value 1</td>
</tr>
<tr>
<td>Key 2</td>
<td>Value 2</td>
</tr>
</tbody>
</table>
【讨论】:
这似乎不适用于 github.com/chjj/marked 。是否有参考,如果这甚至是预期的行为,我可以在其中查找?【参考方案10】:我在第一列标题中使用<span>
:
<span> |
--- | ---
Value | Value
Value | Value
它创建一个带边框的空标题,但大小为 1/2。
【讨论】:
【参考方案11】:在 GitHub 问题编辑器中起作用的是
|
------ | ---
Foo | Bar
但它确实显示了一个空标题
【讨论】:
以上是关于在 Markdown 中创建没有表头的表格的主要内容,如果未能解决你的问题,请参考以下文章
使用 KnitR 以编程方式在 R 中创建 Markdown 表