在Markdown中创建一个没有表头的表



是否可以在Markdown中创建一个没有表头的表?

HTML看起来像这样:

<table>
<tr>
    <td>Key 1</td>
    <td>Value 1</td>
</tr>
<tr>
    <td>Key 2</td>
    <td>Value 2</td>
</tr>
</table>

大多数Markdown解析器不支持没有表头的表。这意味着标题的分隔线是强制性的。

执行而不执行的分析器支持没有标头的表

  • 多标记
  • Maruku:Ruby中的一个流行实现
  • byword:"所有表都必须以一行或多行标题开头"
  • PHP Markdown Extra"第二行包含标题和内容之间的强制分隔线"

  • RDiscount使用PHP Markdown Extra语法

  • GitHub风格的降价
  • Parsedown:PHP中的解析器(例如在Laravel电子邮件中使用)

的解析器支持没有表头的表

  • Kramdown:Ruby中的解析器
  • 文本::MultiMarkdown:Perl CPAN模块
  • MultiMarkdown:Windows应用程序
  • ParseDown Extra:PHP中的一个解析器
  • Pandoc:用Haskell编写的命令行文档转换器(通过其simple_tablesmultiline_tables扩展支持无头表)
  • Flexmark:Java中的一个解析器

CSS解决方案

如果您能够更改HTML输出的CSS,那么您可以利用:empty伪类来隐藏一个空标头,并使其看起来根本没有标头。

如果你不介意空着浪费一行,可以考虑下面的破解(这是一个破解,只有当你不喜欢添加任何额外的插件时才使用它)。

|   |   |
|---|---|
|__Bold Key__| Value1 |
| Normal Key | Value2 |
粗体键价值1
Normal Key价值2

通用解决方案

不幸的是,许多建议并不适用于所有的Markdown查看器/编辑器,例如流行的Markdown Viewer Chrome扩展,但它们确实适用于iA Writer。

似乎在这两个流行程序中都有效(并且可能适用于您的特定应用程序)的是使用HTML comment blocks ('<!-- -->'):

| <!-- -->    | <!-- -->    |
|-------------|-------------|
| Foo         | Bar         |
Foo酒吧

我通过使用一个空链接使用Bitbucket的Markdown实现了这一点:

[]()  | 
------|------
Row 1 | row 2

至少对于GitHub Flavored Markdown,您可以通过使用常规__**格式将所有非标题行条目设置为粗体来产生幻觉

|Regular | text | in header | turns bold |
|-|-|-|-|
| __So__ | __bold__ | __all__ | __table entries__ |
| __and__ | __it looks__ | __like a__ | __"headerless table"__ |
标头中的
常规文本变为粗体
所以粗体全部表条目
看起来";无头表"

省略分隔符上方的标头至少在Perl Text::MultiMarkdown和FletcherPenney MultiMarkdown 中生成无头表

|-------------|--------|
|**Name:**    |John Doe|
|**Position:**|CEO     |

请参阅PHP降价功能请求


PHP Parsedown中的空头生成具有空头的表,这些空头通常是不可见的(取决于CSS),因此看起来像无头表。

|     |     |
|-----|-----|
|Foo  |37   |
|Bar  |101  |

如果您可以添加以下CSS,则可以隐藏标题:

<style>
    th {
        display: none;
    }
</style>

这是一个有点重的手段,不区分表,但它可能适用于一个简单的任务。

更新

HTML输出在Markdown编辑器之间有所不同,但如果表中包含thead元素,则可以使用更具体地针对空标题单元格

thead th:empty {
    border: thin solid red !important;
    display: none;
}

如果标题行不包含可见内容,则此操作有效。小节之间的空格还可以。

以下内容在GitHub中对我来说很好。第一行不再加粗,因为它不是标题:

<table align="center">
    <tr>
        <td align="center"><img src="docs/img1.png?raw=true" alt="some text"></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" alt="some text"></td>
        <td align="center">Some other text 2</td>
        <td align="center">More text 2</td>
    </tr>
</table>

请在此处检查不带标题的示例HTML表。

$ 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>

我在第一列标题中使用<span>

 <span> |
---     |    ---
Value   |  Value
Value   |  Value

它创建了一个带有边框的空标头,但大小为1/2。

价值
价值
<style>
    .headerless th {
        display: none;
    }
</style>
<div class="headerless">
| | |
|---|---|
|Some |table |
| WITHOUT | header |
</div>
|This|is|
|---|---|
|Some |table |
| WITH |header |

在GitHub问题编辑器中工作的是

&nbsp; |&nbsp;
------ | ---
Foo    | Bar

但它确实显示了一个空标题

Foo酒吧

最新更新