# ブロック型プラグイン
**最終更新**: 2026年7月10日
この文書では、UMD で実装済みのブロック型プラグイン構文をまとめます。
## 主要な構文
### 通常のブロック型
- `@function(args){{ ... }}`
- 複数行のコンテンツを持つブロックプラグインです。
- `@function(args){ ... }`
- 1 行程度の短いコンテンツに対応する書式です。
- `@function(args)`
- 引数のみを持つブロック型です。
- `@function()`
- 引数なしのブロック型です。
### `::: 記法`
- `:::function args`
- 開始行にプラグイン名と引数を置く代替構文です。
- `:::`
- 終了行として使用します。
```umd
:::alert warning
Something went wrong
:::
```
## 解析・出力の扱い
ブロック型プラグインは、構文としては認識したうえで、その情報を次のように保持します。
- プラグイン名
- 引数
- コンテンツ
出力時は、通常のプラグインは次の形式で保持されます。
```html
<template class="umd-plugin umd-plugin-{name}">
<data value="0">arg</data>
content
</template>
```
標準プラグイン(`@detail` / `@clear` など)は、このテンプレート経由ではなく、直接 HTML を出力する場合があります。
## 例
### 複数行のブロックプラグイン
```umd
@card(info){{
**Markdown** content
}}
```
### 引数のみのブロックプラグイン
```umd
@toc(2)
```
### `::: 記法`
```umd
:::note info
This is a note.
:::
```
## 制約
- `::: 記法` は入れ子をサポートしません。
- 最初に現れる `:::` のみの行で閉じるため、内部に別の `:::` ブロックや `@` / `&` プラグインを書いても、通常はプラグインとして解釈されず、テキストとして扱われます。
- 実際のプラグイン実行は、ライブラリを利用するホスト側の責務です。