Ⓜ️

VSCodeでMarkdownの環境を整える

2024/12/13に公開

はじめに

zennで記事をVSCodeで記述するにあたって、Markdownの環境を整備する機会が出てきたため、まとめてみます。

環境

基本機能

Markdownプレビュー

.mdファイルを編集している際に右上に表示される虫メガネアイコンをクリックすることでプレビュー表示できます。
(または、Ctrl + K, V)
alt text

alt text
プレビュー表示されたもの

スニペット

スニペットを使うことで、Markdownでよく使う文法をすぐ呼び出せます。
Ctrl + Spaceで使えます。

alt text

画像の挿入、貼り付け

エクスプローラータブから画像をShiftを押しながらドラッグアンドドロップすることで、直接画像を挿入することができます。

また、スクリーンショットで撮影した画像をクリップボードから貼り付けることも可能です。

https://code.visualstudio.com/updates/v1_79#_copy-external-media-files-into-workspace-on-drop-or-paste-for-markdown

拡張機能

Markdown All in One

https://marketplace.visualstudio.com/items?itemName=yzhang.markdown-all-in-one

Markdownのショートカット、自動補完などをしてくれる拡張機能です。

ショートカット

太字、斜体、取り消し線などのテキストの編集、見出しの切り替えなどのショートカットが扱えます。

コマンド

目次の挿入、見出しへのセクション番号の追加などができます。

  1. F1(or Ctrl + Shift + P)を入力してコマンドパレットを開く
  2. 「Markdown」と入力
  3. 該当項目を選択する
    alt text

markdownlint

https://marketplace.visualstudio.com/items?itemName=DavidAnson.vscode-markdownlint

Markdownが既定のルールに違反している場合に、警告を表示してくれるリンターです。
また、フォーマッターとしても扱えます。

設定

settings.jsonファイルで、defaultFormatterにmarkdownlintを指定します。

settings.json
  "[markdown]": {
    "editor.defaultFormatter": "DavidAnson.vscode-markdownlint"
  },

違反の解決

ルール違反の文が見つかると、このように警告の波線が付きます。

alt text

このときに、警告が出ている行の上あたりに表示される電球アイコンをクリックすると、このようなものが表示されます。

alt text

一番上のをクリックして、違反を解決することができます。

ルールの除外

デフォルトの場合、結構厳しめにルールが設定されているので、許容する箇所は警告を無視するように設定できます。

  1. Ctrl + ,で設定を開く

  2. markdownlintと入力

  3. Config の settings.jsonで編集 をクリック
    alt text

  4. 対象のルールコードを入力して、falseを指定することで無効化できます

    settings.json
      "markdownlint.config": {
        // 複数行の改行を許可
        "MD012": false,
      }
    

設定

プレビューでの複数行改行表示

markdown.preview.breaks

デフォルトの場合、プレビューにて複数行の段落が改行されずに表示されます。
個人的にはこの挙動が気に入らないので、trueに指定してMarkdownと同様の表示になるようにしています。

markdown.md
ああああ
ああああ

alt text
falseの場合

alt text
trueの場合

プレビューでのフォント指定など

  • フォントファミリー
  • フォントサイズ
  • 行の高さ

などを指定することができます。

.mdファイルを開いたときに、自動的にプレビュータブを開く

markdown.extension.preview.autoShowPreviewToSide

こちらは、Markdown All in Oneの設定です。
.mdファイルを開いたときに自動でプレビューを開けます。

D&D時、ペースト時の画像の配置パスを指定する

markdown.copyFiles.destination

.mdファイル内に画像をペーストなどをしたときに、画像ファイルをプロジェクトのどのフォルダ内に格納するかを指定できます。

zennの記事用プロジェクトでは、このように設定することでいい感じに画像ファイルを管理できます。

settings.json
  "markdown.copyFiles.destination": {
    "/articles/**/*": "/images/articles/${documentBaseName}/${documentBaseName}.${fileExtName}"
  },

上記の設定をしたうえで画像を挿入すると、自動でパスが入力されて、そこのパスに画像が格納されます。

article.md
![alt text](/images/articles/vscode-markdown-kkp/vscode-markdown-kkp-9.png)

alt text

以下の設定が有効になっている必要があります。

  • markdown.editor.drop.copyIntoWorkspace:D&D時のメディアファイル作成
  • markdown.editor.filePaste.copyIntoWorkspace:ペースト時のメディアファイル作成

自作スニペットの追加

スニペットを自分で作成することもできます。

  1. コマンドパレットを開く
  2. snippetと入力する
  3. スニペット: スニペットの構成 を選択
    alt text
  4. markdownを選択して、markdown.jsonファイルを開く
    alt text
  5. 編集する

使用例

markdown.js
  "CodeBlock": {
    "prefix": "codeblock",
    "body": [
   "```$1: $2.$1",
   "$3",
   "```"]
  },

alt text

記法

スニペットの記法については、公式ドキュメントが用意されています。
変数や列挙体などを扱ったりすることができます。

https://code.visualstudio.com/docs/editor/userdefinedsnippets

プロジェクトのみに適用できるスニペット

対象のプロジェクトにのみ適用するスニペットを作成することも可能です。

  1. スニペット: スニペットの構成 を選択
  2. (プロジェクト名)の新しいスニペットファイルを選択
    alt text
  3. .code-snippetsファイルが作成される

これを用いて、zenn用のリポジトリにzenn独自のMarkdown記法を導入しています。

zenn.code-snippets
  "Message": {
    "prefix": "message",
    "body": [":::message", "$1", ":::"]
  },

  "Toggle": {
    "prefix": "toggle",
    "body": [":::details $1", "$2", ":::"]
  }

さいごに

拡張性の高いVSCodeでMarkdownを利用して、いい感じにメモをしたりいい感じにドキュメントを作成しましょう~

参考

https://www.1ft-seabass.jp/memo/2024/01/29/vscode-current-markdown-copyfiles-destination-setting/

Discussion