VSCodeでMarkdownの環境を整える
はじめに
zennで記事をVSCodeで記述するにあたって、Markdownの環境を整備する機会が出てきたため、まとめてみます。
環境
- VSCode (v1.96)
- Markdown All in One (v3.6.2)
- markdownlint (v0.57.0)
基本機能
Markdownプレビュー
.mdファイルを編集している際に右上に表示される虫メガネアイコンをクリックすることでプレビュー表示できます。
(または、Ctrl + K, V)
プレビュー表示されたもの
スニペット
スニペットを使うことで、Markdownでよく使う文法をすぐ呼び出せます。
Ctrl + Space
で使えます。
画像の挿入、貼り付け
エクスプローラータブから画像をShift
を押しながらドラッグアンドドロップすることで、直接画像を挿入することができます。
また、スクリーンショットで撮影した画像をクリップボードから貼り付けることも可能です。
拡張機能
Markdown All in One
Markdownのショートカット、自動補完などをしてくれる拡張機能です。
ショートカット
太字、斜体、取り消し線などのテキストの編集、見出しの切り替えなどのショートカットが扱えます。
コマンド
目次の挿入、見出しへのセクション番号の追加などができます。
- F1(or Ctrl + Shift + P)を入力してコマンドパレットを開く
- 「Markdown」と入力
- 該当項目を選択する
markdownlint
Markdownが既定のルールに違反している場合に、警告を表示してくれるリンターです。
また、フォーマッターとしても扱えます。
設定
settings.jsonファイルで、defaultFormatter
にmarkdownlintを指定します。
"[markdown]": {
"editor.defaultFormatter": "DavidAnson.vscode-markdownlint"
},
違反の解決
ルール違反の文が見つかると、このように警告の波線が付きます。
このときに、警告が出ている行の上あたりに表示される電球アイコンをクリックすると、このようなものが表示されます。
一番上のをクリックして、違反を解決することができます。
ルールの除外
デフォルトの場合、結構厳しめにルールが設定されているので、許容する箇所は警告を無視するように設定できます。
-
Ctrl + ,
で設定を開く -
markdownlint
と入力 -
Config の
settings.jsonで編集
をクリック
-
対象のルールコードを入力して、falseを指定することで無効化できます
settings.json"markdownlint.config": { // 複数行の改行を許可 "MD012": false, }
設定
プレビューでの複数行改行表示
markdown.preview.breaks
デフォルトの場合、プレビューにて複数行の段落が改行されずに表示されます。
個人的にはこの挙動が気に入らないので、trueに指定してMarkdownと同様の表示になるようにしています。
ああああ
ああああ
falseの場合
trueの場合
プレビューでのフォント指定など
- フォントファミリー
- フォントサイズ
- 行の高さ
などを指定することができます。
.mdファイルを開いたときに、自動的にプレビュータブを開く
markdown.extension.preview.autoShowPreviewToSide
こちらは、Markdown All in Oneの設定です。
.mdファイルを開いたときに自動でプレビューを開けます。
D&D時、ペースト時の画像の配置パスを指定する
markdown.copyFiles.destination
.mdファイル内に画像をペーストなどをしたときに、画像ファイルをプロジェクトのどのフォルダ内に格納するかを指定できます。
zennの記事用プロジェクトでは、このように設定することでいい感じに画像ファイルを管理できます。
"markdown.copyFiles.destination": {
"/articles/**/*": "/images/articles/${documentBaseName}/${documentBaseName}.${fileExtName}"
},
上記の設定をしたうえで画像を挿入すると、自動でパスが入力されて、そこのパスに画像が格納されます。
![alt text](/images/articles/vscode-markdown-kkp/vscode-markdown-kkp-9.png)
以下の設定が有効になっている必要があります。
-
markdown.editor.drop.copyIntoWorkspace
:D&D時のメディアファイル作成 -
markdown.editor.filePaste.copyIntoWorkspace
:ペースト時のメディアファイル作成
自作スニペットの追加
スニペットを自分で作成することもできます。
- コマンドパレットを開く
- snippetと入力する
-
スニペット: スニペットの構成
を選択
-
markdown
を選択して、markdown.json
ファイルを開く
- 編集する
使用例
"CodeBlock": {
"prefix": "codeblock",
"body": [
"```$1: $2.$1",
"$3",
"```"]
},
記法
スニペットの記法については、公式ドキュメントが用意されています。
変数や列挙体などを扱ったりすることができます。
プロジェクトのみに適用できるスニペット
対象のプロジェクトにのみ適用するスニペットを作成することも可能です。
-
スニペット: スニペットの構成
を選択 -
(プロジェクト名)の新しいスニペットファイル
を選択
- .code-snippetsファイルが作成される
これを用いて、zenn用のリポジトリにzenn独自のMarkdown記法を導入しています。
"Message": {
"prefix": "message",
"body": [":::message", "$1", ":::"]
},
"Toggle": {
"prefix": "toggle",
"body": [":::details $1", "$2", ":::"]
}
さいごに
拡張性の高いVSCodeでMarkdownを利用して、いい感じにメモをしたりいい感じにドキュメントを作成しましょう~
参考
Discussion