ChatGPTでMarkdownをきれいに出力させる「魔法の言葉」
みなさん、こんな経験はありませんか?
ChatGPTにMarkdownでコードブロックを含む文章を出力してもらいたいのに、
コードブロックの中のコードブロックが壊れて表示されてしまう……!
そう、ChatGPTは通常のコードブロック(```)にはとても素直に対応してくれるのですが、
その中にさらにコードブロックが登場すると、もう大混乱。
まるでマトリョーシカ状態のコード地獄。
魔法の言葉で一発解決
でも安心してください。
そんなときには、とっておきの魔法の呪文を唱えるのです。
出力する際はバッククォートを4つ用いて Markdown を表現してください
この一文をプロンプトに加えるだけで、ChatGPTは中にコードブロックを含んだMarkdownを、
とてもきれいに、しかもコピペしやすく整えてくれます!
コードブロックとは
たとえば、Markdownでコードブロックを含むコードを書く場合、以下のように書くことができます!
```bash
$ echo コードブロックサンプル
コードブロックサンプル
```
このように書くと、最終的な表示はこうなります。
$ echo コードブロックサンプル
コードブロックサンプル
実際にChatGPTで試してみた
ある日、GitHubのPRにコメントするMarkdownを整形してもらおうと、こんなプロンプトを投げてみました。
下記の内容をGithubのPRにコメントしたいです
丁寧な表現に変更してください
出力形式はそのままコピーできるように Markdown にしてください
=====
echo には -n オプションがある。これを使うと最後の改行が消える
e.g.
```bash
$ echo a; echo b; echo c
a
b
c
```
```bash
$ echo -n a; echo -n b; echo -n c
abc
```
すると……
うまくいかず、コードブロックが崩れてしまいました
魔法の言葉を添えてみた
そこで、先ほどの魔法の一文をそっと添えてみたのです。
下記の内容をGithubのPRにコメントしたいです
丁寧な表現に変更してください
出力形式はそのままコピーできるように Markdown にしてください
出力する際はバッククォートを4つ用いて Markdown を表現してください ← 追加した一行
=====
echo には -n オプションがある。これを使うと最後の改行が消える
e.g.
```bash
$ echo a; echo b; echo c
a
b
c
```
```bash
$ echo -n a; echo -n b; echo -n c
abc
```
結果は…見事!Markdownが崩れることなく美しく出力されました
このQiita記事も魔法の力で
ちなみにこの記事も、ChatGPTに書いてもらっています。
当然ながら、この記事の中にも複数のコードブロックが登場しています。
そこで、今回使った魔法の言葉はこうです:
出力する際はバッククォートを5つ用いて Markdown を表現してください
そう、 魔法の強さはコードブロックの入れ子の深さに応じて進化するのです!
まとめ
- Markdown出力で困ったら「バッククォートの数」を増やしてみる
- ChatGPTには 「出力時に使うバッククォートの数」を伝えると正確に出力してくれる
- 今回の魔法の言葉:
- コードブロック内にコードブロック →
バッククォート4つ
- さらにその中に…… →
バッククォート5つ
- コードブロック内にコードブロック →
- 最後に:コピペしやすい出力が一番大事!
おまけ:実践あるのみ!
もし今、ChatGPTに複雑なMarkdownを書かせたいと思っていたなら、
ぜひこの魔法の一文を加えて試してみてください。
そして、その美しい出力結果に感動したら、
このQiita記事にも「いいね」していただけると嬉しいです!
Happy Prompting 🧙♂️✨