【VSCode】Markdownでnoteやinfoを使う方法

## 1．はじめに
Qiitaでは、`:::note`と書くことで特定の情報を付与したブロックを作ることができます。

:::note
テキスト
:::

これらは「**Note記法**」と呼ばれ、重要な情報を視覚的に強調するときに大変便利ですが、Markdown独自の仕様ではないため一部のツールで使うことができません。特に **Visual Studio Code** で使えないことに不便さを感じていました。

そこで、Qiitaと同じような`:::note`ブロックを作成可能にする「**Markdown Info**」というVScode拡張機能を作りました。

## 2．Markdown Info
Markdown Info はVScodeの拡張機能です。
検索窓で「Markdown Info」と入力すると、下記のような拡張機能が見つかると思います。

![setup.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395294/46ce2a5d-fa9c-a6ab-2f82-fafc75459798.png)

### 使用例
使用法は単純です。ブロックを作りたい箇所で`:::note タイプ タイトル`と書き始め`:::`で閉じるだけです。
タイプは「info」「warn」「alert」「question」を用意しています。

![markdown-info-jp.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395294/91016cda-f0f0-c992-59e8-43b31c57b1a1.png)



### 使い方
| 形式      | Markdown                     | 
| ------------- | ---------------------------- | 
| Qiita形式 | `:::note タイプ タイトル`    | 
| Zenn形式  | `:::message タイプ タイトル` | 


Qiita形式:

![qiita-snippet-jp.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395294/bd0a1e7b-a29a-40cc-14d2-f35eed874f8f.gif)



Zenn形式:


![zenn-snippet-jp.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395294/fc08ecb0-3c0d-ad9d-e927-cc460574aa16.gif)


### 解説
VSCode上でQiitaやZenn形式の「Infoボックス」を作成できる拡張機能です。

Qiita形式では以下のように作成します。

```markdown
:::note タイプ タイトル
内容
:::
```

Zenn形式でも作成できます。

```markdown
:::message タイプ タイトル
内容
:::
```

Infoボックスには4種類のタイプがあります。

1. info（デフォルト）：一般的な情報
2. warn：警告
3. alert：強い警告
4. question：質問や疑問

![type.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395294/875091f5-1c91-089d-547d-71ab6e2909d3.png)


### 設定

#### Default Title
タイトルを省略した場合に反映されるデフォルト値を設定できます。初期状態では「**ここにタイトルを記述してください**」という値が設定されています。

![default-title-jp.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395294/eee3773d-eaa6-22ec-3ef6-f308c7c8495b.png)





#### Preview Styles
Markdownのプレビュー画面に反映されるCSSのスタイルシートを選択できます。利用可能なオプションは以下の通りです:

default: デフォルトのスタイルシートを使用します。

![default-style-jp.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395294/63178ee6-bf09-5540-d164-3422e265cd97.png)


qiita: Qiita風のスタイルシートを適用します。

![qiita-style-jp.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395294/59b54bc2-02af-a655-06a0-2182e64224cb.png)


zenn: Zenn風のスタイルシートを適用します。

![zenn-style-jp.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395294/ca25d392-1c1f-69be-b77c-4367f9658827.png)


## 3．markdown-it-info
上記の「Markdown Info」は「**markdown-it-info**」というmarkdown-it-pluginを使用しています。

ご自身のエディタなどに使用する際はこちらをご利用ください。
```bash:bash
npm install markdown-it-info
```

読み込みはJavascriptで行います。
```javascript:javascript
const 
    md = require('markdown-it')(),
    plugin = require("markdown-it-info");

md.use(plugin,{
    admonitionStyle: "default",
    defaultType: "info",
    defaultTitle: "ここにタイトルを記述してください"
});
```

- **admonitionStyle**: CSSスタイルシートを変更するための値。デフォルトは「default」で、他に「qiita」と「zenn」があります
- **defaultType**: ボックスのデフォルトタイプを変更するための値。デフォルトは「info」で、他に「warn」、「warning」、「alert」、「question」があります
- **defaultTitle**: ボックスのデフォルトタイトルを変更するための値。デフォルトは「ここにタイトルを記述してください」です


## 4．GitHub
- [yusu79/vscode-markdown-info](https://github.com/yusu79/vscode-markdown-info)
- [yusu79/markdown-it-info](https://github.com/yusu79/markdown-it-info)

## 5．謝辞
このプロジェクトの開発にあたり、以下のオープンソースソフトウェアを参考にさせていただきました。この場を借りて感謝の意を表します。

- [qjebbs/vscode-markdown-extended](https://github.com/qjebbs/vscode-markdown-extended)