以下の内容はhttps://kazuhira-r.hatenablog.com/entry/2025/06/25/000000より取得しました。


Markdownでコードブロックをネストさせる

たまにREADME.mdを引用する時などで、MarkdownMarkdown記法として書こうとすると、コードブロックがネスト
していた場合にうまくいかず困っていました。

が、調べてみるとネストさせる方法がちゃんと書かれていたのでメモしておくことにしました。

どういうことをやりたかったか見せた方が早いので、先に載せておきましょう。

# heading

abcde.

```java
public class Test {
}
```

fghij.

このMarkdownのコードブロックをどう書いているかというと````markdownで始まり````で終わる(backtick quote 4つ)という
ことになっています。
※なお、このコードブロックは先にbacktick quoteをひとつ書き、ひとつスペースを空けた後に4つbacktick quoteを書いています

そして、中にbacktick quote 3つでjavaが挟まっています。

つまり、こう書いています。
※このコードブロックを書くために、1番外側はbacktick quote 5つにしています

````markdown
# heading

abcde.

```java
public class Test {
}
```

fghij.
````

これに関しては、以下あたりがヒントになります。

To include a literal backtick character within a code span, you can use multiple backticks as the opening and closing delimiters:

The backtick delimiters surrounding a code span may include spaces — one after the opening, one before the closing. This allows you to place literal backtick characters at the beginning or end of a code span:

Syntax / Span Elements / Code

CommonMark Spec / Leaf blocks / Fenced code blocks

Creating and highlighting code blocks - GitHub Docs

CommonMarkの仕様を見ると、改行を含むコードブロックだからといってbacktick quote 3つにこだわる必要がないことが
わかります。

たとえば、以下のコードはbacktick quote 3つではなく~~~pythonと書いています。

def say():
  return "Hello"

知らなかったのと、全然違うエスケープ方法を想像していたのでメモということで。

ちゃんと調べるべきですね…。




以上の内容はhttps://kazuhira-r.hatenablog.com/entry/2025/06/25/000000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14