Markdown変換でのHTMLエンティティのデコード
HTML-to-Markdown変換中にHTMLエンティティ(&、<、>、 、©)がどのようにデコードされるかを解説。名前付きエンティティ、数値エンティティ、特殊文字をカバーします。
Real-World HTML
詳細な説明
HTMLエンティティからMarkdownへの変換
HTMLエンティティはHTMLで特別な意味を持つ文字や簡単に入力できない文字を表す特殊な文字シーケンスです。Markdown変換時には、ほとんどのエンティティをリテラル文字にデコードする必要があります。
一般的な名前付きエンティティ
主要なデコードルール:
&→&<→<>→>"→"'→' → 通常のスペース©→(c)またはUnicode文字©
数値エンティティ
HTMLは数値文字参照も使用します:&#NNN; は10進数、&#xHHH; は16進数です。両方とも対応するUnicode文字にデコードされます。
コード内のエンティティ
Markdownのコードスパンとコードブロック内では、エンティティをリテラル文字にデコードする必要があります。Markdownコードは処理されずにそのまま表示されるためです。
属性内のエンティティ
属性値にもエンティティが現れることがあります。URL内の & は正しいリンクを生成するために & にデコードする必要があります。
Markdownでエスケープが必要な文字
エンティティデコード後、一部の文字はMarkdown構文として解釈されないようにエスケープが必要な場合があります。例えば、*、_、[、]、行頭の # などです。
ユースケース
エンティティデコードはあらゆるHTML-to-Markdownコンバーターの基本的なステップです。古いWebサイト、XMLベースのCMSシステム、またはエンティティエンコーディングが多用されるプログラム的に生成されたHTMLのコンテンツ処理時に特に重要です。