定義リスト
定義リストは、Markdownの拡張機能で、用語とその対応する定義のリストを作成するために使用されます。用語集、用語説明、またはパラメータ説明によく使用されます。
基本的な構文
基本的な形式
定義リストの基本的な形式は、1行に用語を、次の行にコロンで始まる定義を配置します:
用語
: 定義の内容
レンダリングされた出力:
用語 : 定義の内容
複数の用語と定義
Markdown
: 軽量マークアップ言語
: 2004年にJohn Gruberによって作成
HTML
: Webページを作成するための標準マークアップ言語
: Webページを作成するために使用
レンダリングされた出力:
Markdown : 軽量マークアップ言語 : 2004年にJohn Gruberによって作成
HTML : Webページを作成するための標準マークアップ言語 : Webページを作成するために使用
高度な使用法
複数行の定義
定義の内容は複数行にわたることができ、後続の行は1つ以上のスペースでインデントする必要があります:
用語
: これは定義の最初の行です
これは2行目で、少なくとも1つのスペースのインデントが必要です
これは新しい段落で、少なくとも1つのスペースのインデントと先行する空白行が必要です
レンダリングされた出力:
用語 : これは定義の最初の行です これは2行目で、少なくとも1つのスペースのインデントが必要です
これは新しい段落で、少なくとも1つのスペースのインデントと先行する空白行が必要です
定義内での他のMarkdown要素の使用
定義には、リンク、強調、コードなど、他のMarkdown要素を含めることができます:
Markdown構文
: **Markdown**は複数のテキスト書式をサポートします:
- *斜体*と**太字**
- [リンク](https://www.markdownlang.com)
- `インラインコード`
- > ブロック引用
- リストとその他の要素
レンダリングされた出力:
Markdown構文 : Markdownは複数のテキスト書式をサポートします:
- 斜体と太字
- リンク
インラインコード
ブロック引用
- リストとその他の要素
ネストされた定義リスト
一部のMarkdown実装では、ネストされた定義リストを作成できます:
外部用語
: 外部の定義
内部用語
: 内部の定義
: もう1つの内部の定義
レンダリングされた出力(サポートされているプラットフォーム):
外部用語 : 外部の定義
内部用語 : 内部の定義 : もう1つの内部の定義
互換性と実装の違い
異なるプラットフォームのサポート
プラットフォーム/ツール | 定義リストのサポート | 特殊な構文 | ネストのサポート |
---|---|---|---|
GitHub Markdown | ❌ | - | - |
GitLab Markdown | ✅ | 標準 | ✅ |
Jekyll (kramdown) | ✅ | 標準 | ✅ |
Hugo | ✅ | 標準 | ✅ |
CommonMark | ❌ | - | - |
VitePress | ✅ | 標準 | ✅ |
Pandoc | ✅ | 標準 | ✅ |
HTML出力形式
ほとんどのMarkdownプロセッサは、定義リストをHTML <dl>
、<dt>
、<dd>
要素に変換します:
<dl>
<dt>用語</dt>
<dd>定義の内容</dd>
<dt>別の用語</dt>
<dd>別の定義</dd>
</dl>
異なる構文のバリエーション
一部のプロセッサでは、異なる構文のバリエーションが必要な場合があります:
<!-- 標準の構文 -->
用語
: 定義
<!-- コンパクト構文(一部のプロセッサ) -->
用語: 定義
<!-- 追加のスペース構文(一部のプロセッサ) -->
用語
: 定義
ユースケース
用語集
定義リストは、用語集や語彙を作成するのに最適です:
## プログラミング用語集
API
: アプリケーションプログラミングインターフェース、異なるソフトウェアアプリケーション間の通信を可能にする一連のルール。
フレームワーク
: アプリケーション開発のための標準化された構造を提供するソフトウェアライブラリ。
Git
: プロジェクト開発プロセスの変更を追跡するために使用される分散型バージョン管理システム。
IDE
: 統合開発環境、コードエディターと各種開発ツールを含むソフトウェアアプリケーション。
レンダリングされた出力:
プログラミング用語集
API : アプリケーションプログラミングインターフェース、異なるソフトウェアアプリケーション間の通信を可能にする一連のルール。
フレームワーク : アプリケーション開発のための標準化された構造を提供するソフトウェアライブラリ。
Git : プロジェクト開発プロセスの変更を追跡するために使用される分散型バージョン管理システム。
IDE : 統合開発環境、コードエディターと各種開発ツールを含むソフトウェアアプリケーション。
APIドキュメント
定義リストは、パラメータやオプションを説明するAPIドキュメントで使用されます:
## リクエストパラメータ
user_id
: **必須** - ユーザーの一意の識別子。
: 型: `integer`
name
: **オプション** - ユーザーの表示名。
: 型: `string`
: デフォルト: `null`
status
: **オプション** - ユーザーのステータス。
: 型: `string`
: 許可される値: `active`、`inactive`、`suspended`
: デフォルト: `active`
レンダリングされた出力:
リクエストパラメータ
user_id : 必須 - ユーザーの一意の識別子。 : 型: integer
name : オプション - ユーザーの表示名。 : 型: string
: デフォルト: null
status : オプション - ユーザーのステータス。 : 型: string
: 許可される値: active
、inactive
、suspended
: デフォルト: active
設定ノート
定義リストは、設定オプションを説明するのにも適しています:
## 設定オプション
debug
: デバッグモードを有効または無効にします。
: 型: `boolean`
ベストプラクティス
一貫性
✅ 推奨される練習:
1. **用語と定義のスタイルを一貫させる**:
- 用語は簡潔な名詞または句を使用
- 定義は文の形式で、最初の文字を大文字にし、句点で終わる
- 複数行の定義では、インデントを一貫させる
2. **合理的なグループ化**:
- 関連する用語をまとめる
- 異なる定義リストを見出しで区切る
3. **技術用語の場合**:
- 型情報を含める
- 例を追加
- 必須またはオプションを示す
❌ 避けるべき練習:
1. 用語が1行を超える長さ
2. 用語で大きな書式付きテキストを使用
3. 明確な分類の欠如
4. 定義に関連のない情報を含める
代替ソリューション
定義リストをサポートしないプラットフォームでは、他の形式を使用してシミュレートできます:
<!-- 太字とインデントを使用 -->
**用語**
定義の内容
**別の用語**
別の定義の内容
<!-- テーブルを使用 -->
| 用語 | 定義 |
|------|------|
| API | アプリケーションプログラミングインターフェース |
| IDE | 統合開発環境 |
<!-- 見出しと段落を使用 -->
### 用語
定義の内容
### 別の用語
別の定義の内容
実用的なアプリケーション例
ソフトウェアドキュメント
## システム要件
オペレーティングシステム
: **Windows**: Windows 10以上
: **macOS**: macOS 10.14 (Mojave)以上
: **Linux**: Ubuntu 18.04+、Debian 10+、CentOS 7+
ハードウェア
: **プロセッサ**: クアッドコア2.0 GHz以上
: **メモリ**: 少なくとも8GB RAM、推奨16GB
: **ストレージ**: 少なくとも10GBの空き容量、SSDストレージ
ネットワーク
: ブロードバンドインターネット接続(少なくとも10 Mbps)
: ポート80、443、22でのアウトバウンド接続を許可
学術ドキュメント
## 研究用語
データセット
: 分析または評価のために使用されるデータのコレクション。
: この研究では、公開リポジトリからのサンプルを使用しました(n=1000)。
変数
: **独立変数**: 研究者が操作する入力要因。
この研究では、独立変数は環境温度でした。
: **従属変数**: 研究で測定された出力要因。
この研究では、従属変数は処理速度でした。
: **制御変数**: 実験で一定に保たれる要因。
この研究では、湿度とプロセッサ負荷が含まれていました。
有意水準
: 統計分析において結果が有意義であるかどうかを判断するために使用される確率閾値。
: この研究では、p < 0.05を有意水準として使用しました。
共通の問題と解決策
定義リストが表示されない
定義リストが正しく表示されない場合:
- プラットフォームが定義リスト構文をサポートしているか確認
- 用語と定義の間に空白行がないか確認
- コロンの前に適切なスペースがあるか(一部のプロセッサには特定の要件があります)
- インデントを増やすか、構文のバリエーションを変更する
ネストリストの問題
一部のプロセッサでは、ネストされた定義リストに問題が発生する可能性があります:
- インデントレベルを増やす(例:内部用語は4または8スペースを使用)
- 層間に適切な空白行を確保
- 問題が続く場合は、他の構造(例:通常のリスト)を使用する
フォーマットの問題
定義のフォーマットが正しくない場合:
- すべての段落と要素のインデントが正しいか確認
- 定義内のブロックレベル要素(コードブロック、リストなど)が正しい空白行分離を持っているか確認
- インデント量を増やす
関連構文
- リスト - 基本的なリスト構文
- テーブル - 構造化データの表示
- フェンスコードブロック - コードブロック構文
ツールとプラグイン
- markdown-it-deflist: markdown-itに定義リストサポートを追加
- kramdown: ネイティブなMarkdownパーサー
- remark-definition-list: remarkパーサー用の定義リストプラグイン
定義リストは、特に用語、パラメータ、設定オプションの説明を作成するために最適なMarkdownの拡張機能です。すべてのMarkdownプロセッサがこの構文をサポートしているわけではありませんが、サポートされているプラットフォームでは、技術ドキュメントの複雑な情報を理解し、参照しやすくするための明確で構造化された形式を提供します。