带有减价的扰流板中的代码块

Ell*_*one 2 markdown gitlab

markdown中有什么方法可以将代码(在```内部)与扰流器(在!>之后)组合起来,以便在扰流器中获取一些代码?

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

leb*_*b4r 8

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

常规Markdown不能在details块内工作,但HTML可以。

<details>
    <summary>Click me to collapse/fold.</summary>
    These details will remain hidden until expanded.
    <pre>
        <code>PASTE LOGS HERE</code>
    </pre>
</details>
Run Code Online (Sandbox Code Playgroud)

注意:不幸的是,如markdown规范所述,这些标记内不支持Markdown。您可以通过使用HTML解决此问题,例如,可以使用标签代替代码围栏。

  • 请注意,最新版本的Gitlab的&lt;details&gt;块现在完全支持markdown (5认同)
  • 不确定现在如何支持它,但我必须在打开 &lt;details&gt; 标签后添加空行才能使降价工作。仅供参考,这可能很棘手。 (3认同)

小智 7

以下应该可以解决问题:

<details>
  <summary>Click to expand</summary>
  Whatever
</details>
Run Code Online (Sandbox Code Playgroud)


Ste*_*EOX 5

对于包含在扰流板中的代码块内的语法突出显示,这两种方法适用于 GitLab Enterprise Edition 14.3.4-ee:

仅 HTML

在标签lang内code(如@Denis Chevalier此处所述)

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

<pre><code lang="python">
YOUR CODE
</code></pre>
</details>
Run Code Online (Sandbox Code Playgroud)

Markdown 代码围栏

注意代码栅栏之前的空格(三个反引号)(如@validname此处所述)

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

```python
YOUR CODE
\```  <- remove backslash: StackOverflow markdown parsing is broken 
</details>
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,在 CE 中也有效,那个空行实际上至关重要 ^^ (3认同)

Way*_*lan 3

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

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

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

!> ```javascript
!> alert("42");
!> ```
Run Code Online (Sandbox Code Playgroud)

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