Markdown 中 table 行内的代码块

code block inside table row in Markdown

我正在用 Github 风格的 Markdown 整理一些文档,我想整理一个有两行的 table。一个只有文本,一个带有 json 代码块。这是一个例子。

| Status | Response  |
|---|---|
| 200 |  |
| 400 |   |

我想在响应行中获取此代码,但每当我尝试时它就会完全中断。

json
  {
    "id": 10,
    "username": "alanpartridge",
    "email": "alan@alan.com",
    "password_hash": "a$uhUIUmVWVnrBWx9rrDWhS.CPCWCZsyqqa8./whhfzBZydX7yvahHS",
    "password_salt": "a$uhUIUmVWVnrBWx9rrDWhS.",
    "created_at": "2015-02-14T20:45:26.433Z",
    "updated_at": "2015-02-14T20:45:26.540Z"
}

我是 Markdown 的新手,如果有人能指出正确的方向,我将不胜感激。

github 降价文档声明您可以在 table 单元格中包含 inline/span 降价标签。这对于大多数 markdown 风格都是一样的,除了少数一直在尝试建立对 table 布局的更多控制之外。

您可以接近内联代码元素,但不会使用语法着色或行缩进进行格式化。

| Status | Response  |
| ------ | --------- |
| 200    | `json`                          |
|        | `   {`                          |
|        | ` "id": 10,`                    |
|        | ` "username": "alanpartridge",` |
|        | ` more code...`                 |
|        | `}`                             |
| 400    |                                 |

或者,使用 html 以老式方式创建 table,这样可以 rowspan 更好地控制布局。

Github 风味 Markdown 支持 HTML 标签

<table>
<tr>
<th>
Status
</th>
<th>
Response
</th>
</tr>

<tr>

<td>
<pre>
<br/><br/><br/>200<br/><br/><br/><br/><br/>400<br/>
</pre>
</td>

<td>
<pre>
json
  {
    "id": 10,
    "username": "alanpartridge",
    "email": "alan@alan.com",
    "password_hash": "a$uhUIUmVWVnrBWx9rrDWhS.CPCWCZsyqqa8./whhfzBZydX7yvahHS",
    "password_salt": "a$uhUIUmVWVnrBWx9rrDWhS.",
    "created_at": "2015-02-14T20:45:26.433Z",
    "updated_at": "2015-02-14T20:45:26.540Z"
}
</pre>
</td>

</tr>
</table>

Markdown Editor 确实有助于在您编写时可视化输出。

代替<pre>标签,我们也可以使用三重反引号```来显示代码块。


编辑: 您也可以像这样尝试基于文本的 table-

+---------------+--------+---------+
|       \       | Rating | Comment |
+---------------+--------+---------+
| One Piece     |  A | B |       ♢ |
+---------------+----+---+---------+
| Naruto        |  A | C |       ♧ |
+---------------+----+---+---------+
| One Punch Man |  A | A |       ♥ |
+---------------+----+---+---------+
| Death Note    |  A | B |       ♠ |
+---------------+----+---+---------+

Text Tables Generator 是用于此目的的绝佳网站。


编辑 2: 以下代码适用于 GitHub 和 Whosebug-

| Name | Signature Code                 |
|------|--------------------------------|
| Minhas Kamal | <pre>main(m,k){<br>  for(<br>    ;<br>    m%k--?:(k=m++);<br>    k^1?:printf("%i\|",m)<br>  );<br>}</pre> |

输出-

Name Signature Code
Minhas Kamal
main(m,k){
for(
;
m%k--?:(k=m++);
k^1?:printf("%i|",m)
);
}
Status | Response
:----- | :-------
200    | <code>json {"id": 10,"username": "alanpartridge", "email": "alan@alan.com",<br>"password_hash": "a$uhUIUmVWVnrBWx9rrDWhS.CPCWCZsyqqa8./whhfzBZydX7yvahHS", "password_salt": "a$uhUIUmVWVnrBWx9rrDWhS.",<br> "created_at": "2015-02-14T20:45:26.433Z", "updated_at": "2015-02-14T20:45:26.540Z" }</code>
400    | <code>json {"id": 10,"username": "alanpartridge", "email": "alan@alan.com",<br>"password_hash": "a$uhUIUmVWVnrBWx9rrDWhS.CPCWCZsyqqa8./whhfzBZydX7yvahHS", "password_salt": "a$uhUIUmVWVnrBWx9rrDWhS.",<br> "created_at": "2015-02-14T20:45:26.433Z", "updated_at": "2015-02-14T20:45:26.540Z" }</code>

这个可能更好:

| Status | Response  |
| ------ | --------- |
| 200    |<pre lang="json">{<br>  "id": 10,<br>  "username": "alanpartridge",<br>  "email": "alan@alan.com",<br>  "password_hash": "a$uhUIUmVWVnrBWx9rrDWhS.CPCWCZsyqqa8./whhfzBZydX7yvahHS",<br>  "password_salt": "a$uhUIUmVWVnrBWx9rrDWhS.",<br>  "created_at": "2015-02-14T20:45:26.433Z",<br>  "updated_at": "2015-02-14T20:45:26.540Z"<br>}</pre>|
| 400    |<code>{<br>  "code": 400,<br>  "msg": balabala"<br>}</code>|

都需要<br>,就看你喜欢<pre>还是<code>了。


在Whosebug中,上面显示为:

Status Response
200 {
"id": 10,
"username": "alanpartridge",
"email": "alan@alan.com",
"password_hash": "a$uhUIUmVWVnrBWx9rrDWhS.CPCWCZsyqqa8./whhfzBZydX7yvahHS",
"password_salt": "a$uhUIUmVWVnrBWx9rrDWhS.",
"created_at": "2015-02-14T20:45:26.433Z",
"updated_at": "2015-02-14T20:45:26.540Z"
}
400 {<br> "code": 400,<br> "msg": balabala"<br>}

不将 <pre lang="json"> 块显示为代码。


但是,在 Whosebug 中,从 <pre> 中删除 lang="json" 确实会将整个 <pre> 块显示为代码块。即:

| Status | Response  |
| ------ | --------- |
| 200    |<pre>{<br>  "id": 10,<br>  "username": "alanpartridge",<br>  "email": "alan@alan.com",<br>  "password_hash": "a$uhUIUmVWVnrBWx9rrDWhS.CPCWCZsyqqa8./whhfzBZydX7yvahHS",<br>  "password_salt": "a$uhUIUmVWVnrBWx9rrDWhS.",<br>  "created_at": "2015-02-14T20:45:26.433Z",<br>  "updated_at": "2015-02-14T20:45:26.540Z"<br>}</pre>|
| 400    |<code>{<br>  "code": 400,<br>  "msg": balabala"<br>}</code>|

显示为:

Status Response
200
{
"id": 10,
"username": "alanpartridge",
"email": "alan@alan.com",
"password_hash": "a$uhUIUmVWVnrBWx9rrDWhS.CPCWCZsyqqa8./whhfzBZydX7yvahHS",
"password_salt": "a$uhUIUmVWVnrBWx9rrDWhS.",
"created_at": "2015-02-14T20:45:26.433Z",
"updated_at": "2015-02-14T20:45:26.540Z"
}
400 {<br> "code": 400,<br> "msg": balabala"<br>}

正如其他人所指出的,您必须使用 HTML <table> 标签来创建 table。但是,可以仅使用 Markdown

来格式化 table 单元格的内容

如果您 在 HTML 标签周围留出额外的空行,HTML 块中的 Markdown 语法就可以工作 <td> 之后一个空行和一个空行在 </td> 之前,否则里面的 Markdown 不会被解析!这将创建一个新的 <p> 段落,其中在 table 单元格内重新启用 Markdown 解析。

<table>
<tr>
<td> Status </td> <td> Response </td>
</tr>
<tr>
<td> 200 </td>
<td>

^ Extra blank line above!
```json
json
{
    "id": 10,
    "username": "alanpartridge",
    "email": "alan@alan.com",
    "password_hash": "a$uhUIUmVWVnrBWx9rrDWhS.CPCWCZsyqqa8./whhfzBZydX7yvahHS",
    "password_salt": "a$uhUIUmVWVnrBWx9rrDWhS.",
    "created_at": "2015-02-14T20:45:26.433Z",
    "updated_at": "2015-02-14T20:45:26.540Z"
}
```
V Extra blank line below!

</td>
</tr>
<tr>
<td> 400 </td>
<td>

**Markdown** _here_. (Blank lines needed before and after!)

</td>
</tr>
</table>

(如果您想修复“400”和 "Markdown here" 之间的错误垂直对齐,请在“400”周围添加空白行,这也会将其包装在 <p> 中。 )