是否可以在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_tables
和multiline_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问题编辑器中工作的是
|
------ | ---
Foo | Bar
但它确实显示了一个空标题
Foo | 酒吧 |