带有 markdown 的剧透中的代码块

Code block in spoiler with markdown

markdown 中是否有任何方法可以将代码(在 ``` 内)与剧透(在 !> 之后)语法结合起来以获得剧透中的一些代码?

我正在使用 GitLab 中实现的降价。

正如@Chris 在评论中提到的那样,GitLab Flavored Markdown 似乎没有提及任何关于支持 "spoiler" 语法的内容(在 !> 之后)。此外, "spoiler" 语法不是 "official" 语法(正如@Chris 指出的那样,也不是围栏代码块)并且不是很常见。就个人而言,我不知道有任何支持它的特定 Markdown 实现。也就是说,据我了解语法,它基本上是 blockquote 语法的扩展。因此,如果您使用的实现支持剧透,那么任何适用于块引用的内容都应该适用于剧透。

另一个需要注意的问题是,并非所有 Markdown 实现都支持 Fenced 代码块,而且并非所有实现都同等支持它们。例如,一些最早的实现不支持嵌套的 fenced 代码块。因此,根据您使用的 Markdown 实现,您可能会得到不同的结果(我不知道 GitLab 使用的是哪种实现)。这是您使用非标准功能所付出的代价。

无论如何,假设您正在使用的实现得到完全支持,以下可能会起作用:

!> ```javascript
!> alert("42");
!> ```

请注意,我像往常一样编写代码块。然后我简单地在每行的开头插入三个字符(感叹号、大于符号和一个 space)。如果这不起作用,那么一个安全的假设是该实现不支持所需的一个或多个非标准功能。

以下应该可以解决问题:

<details>
  <summary>Click to expand</summary>
  Whatever
</details>

https://docs.gitlab.com/ee/user/markdown.html#details-and-summary

您可以使用原始 HTML

<p>
<details>
<summary>Click this to collapse/fold.</summary>

These details <em>remain</em> <strong>hidden</strong> until expanded.

<pre><code>PASTE LOGS HERE</code></pre>

</details>
</p>

或者现在 GitLab 在 <details> 块内支持 Markdown

<details>
<summary>Click this to collapse/fold.</summary>

These details _remain_ **hidden** until expanded.

```
PASTE LOGS HERE
```

</details>

对于包含在剧透中的代码块内的语法高亮显示,这两种方法适用于 GitLab 企业版 14.3.4-ee:

HTML-仅

code 标签内使用 lang(如@Denis Chevalier 所述

<details>
<summary>Initial draft</summary>

<pre><code lang="python">
YOUR CODE
</code></pre>
</details>

Markdown 代码围栏

注意代码围栏前的空格(三重反引号)(如@validname 所述)

<details>
<summary>Initial draft</summary>

```python
YOUR CODE
\```  <- remove backslash: Whosebug markdown parsing is broken 
</details>