Markdownのコードブロック・インラインコードの書き方

プログラムのコードやコマンド、設定ファイルをそのままの形で見せたいときに使うのがコードブロック(```インラインコード(`です。このページでは基本の書き方から、シンタックスハイライトの言語指定、「バッククォート自体を表示したい」ときのエスケープまでまとめました。動作は無料のMarkdownビューアーでその場で確認できます。

コード記法の早見表
やりたいこと書き方
文中にコードを埋める`code`(バッククォート1つで挟む)
複数行のコードを載せる``` の行でコードを上下から挟む
色分け(ハイライト)を付ける開始の ``` の直後に言語名(例:```python
コード内に ``` を表示する外側を ````(4つ)にする
文中に ` を表示する``(2つ)で挟む

インラインコード:文中にコードを埋める

文章の中に変数名・コマンド・ファイル名などを埋め込むときは、バッククォート(`)1つで挟みます。挟んだ部分は等幅フォント+背景色付きで表示され、本文と明確に区別できます。

書き方
設定は `config.json` の `debug` を `true` に変更します。
表示結果

設定は config.jsondebugtrue に変更します。

バッククォートの入力方法:JIS配列(日本語キーボード)は Shift + @、US配列は数字の 1 の左のキーです。シングルクォート ' と間違えやすいので注意してください。

コードブロック:複数行のコードを載せる

複数行のコードは、バッククォート3つ(```)だけの行で上下から挟みます。ブロック内では改行・スペース・記号がすべて書いたまま表示され、#* などのMarkdown記法も無効になります。

書き方
```
function greet(name) {
  console.log(`Hello, ${name}!`);
}
```
表示結果
function greet(name) {
  console.log(`Hello, ${name}!`);
}

コードブロックは、プログラムに限らず「そのままの形で見せたいテキスト全般」に便利です。ターミナルのコマンド、エラーメッセージ、設定ファイル、フォルダ構成図(ツリー)などにも広く使われます。

言語指定でシンタックスハイライトを付ける

開始側の ``` の直後に言語名を書くと、GitHubやQiita・Zennなど対応環境ではコードが色分け(シンタックスハイライト)されます。

書き方
```python
def greet(name):
    print(f"Hello, {name}!")
```
表示結果(対応環境では色分けされる)
def greet(name):
    print(f"Hello, {name}!")

よく使う言語名の指定は次のとおりです。

言語・形式指定名言語・形式指定名
PythonpythonJavaScriptjs / javascript
TypeScriptts / typescriptHTMLhtml
CSScssJSONjson
シェル・ターミナルbash / shSQLsql
JavajavaC / C++c / cpp
RubyrubyPHPphp
YAMLyamlMarkdownmd / markdown
言語名を指定しない(または対応していない名前を書いた)場合は、ハイライトなしの単色で表示されるだけで、エラーにはなりません。迷ったらとりあえず書いておいて損はありません。

バッククォート自体を表示したいとき(エスケープ)

「Markdownの解説記事を書く」など、記号そのものを見せたい場合の書き方です。

文中に ` を表示したい

バッククォート2つ(``)で挟むと、中の ` をそのまま表示できます。

書き方
`` ` `` で挟むとインラインコードになります。
表示結果

` で挟むとインラインコードになります。

コードブロックの中に ``` を表示したい

外側の囲いをバッククォート4つ(````にすると、内側に ``` を含むコードブロックを書けます。

書き方
````
```python
print("Hello")
```
````
表示結果
```python
print("Hello")
```

コードブロックが崩れる原因と対処法

症状原因対処法
```がそのまま文字として表示される全角の「`」を使っている/```の前後に余計な文字がある半角のバッククォートで、```だけの行にする
ブロックが閉じずに以降が全部コード表示になる終了側の```を書き忘れている/数が揃っていない開始と終了のバッククォートの数を揃える
リストの中のコードブロックがリストの外に出るリストの字下げに合わせたインデントがない```ごと半角スペース4つで字下げする
ハイライトが付かない表示先が言語指定に非対応/言語名の綴りが違う表示先の対応言語名を確認する(例:nodeではなくjs
コードの中の<タグ>が消えるコードブロックの外に書いたためHTMLとして解釈されたタグを含むテキストは必ずコードブロックか`の中に入れる

コードブロックの表示、その場で確認しませんか?
バッククォートの数や言語指定を変えたときの挙動を、コピペするだけで試せます。

無料のMarkdownビューアーを開く

よくある質問

チルダ(~~~)でもコードブロックになると聞きました

はい、多くのパーサーで ~~~ 3つでも同じコードブロックになります。「コードブロックの中に```を書きたい」場面で、外側を~~~にするという使い分けも可能です。

行頭を4スペース空けたらコードブロックになりました

それは「インデント式コードブロック」という古い記法です。意図せず発動して驚くことが多い(箇条書きのつもりの字下げがコード表示になる等)ため、現在は```で囲む方式(フェンス式)が推奨です。

コードブロックに行番号やファイル名を表示したい

標準記法にはありませんが、Qiita・Zennなどは ```python:app.py のようにコロン区切りでファイル名を表示できる独自拡張があります。表示先のサービスの仕様を確認してください。

ChatGPTの回答のコードをブログに貼りたい

回答をそのままコピーすると```付きのMarkdownが取れます。Markdown Viewerに貼り付ければ整形済みHTMLに変換されるので、「HTMLコピー」ボタンでブログ用のコードとして持ち出せます。

関連ガイド