100% プライベート — すべてブラウザ内で処理
マークダウン アンダーライン — できる環境と代替手段
アンダーラインが機能するかは、ファイルがどこでレンダリングされるかで決まります。uタグをライブで試し、互換性の表を確認して、適切な代替手段を選びましょう。
MD Viewer チーム
Works where HTML is allowed:
underlined text
マークダウン アンダーラインは構文の話ではなく、互換性の話です。言語自体は下線を定義しません。しかしMarkdown文書は旅をします。今日GitHubでレンダリングされるファイルが、明日は静的サイトジェネレーターを通り、来週は厳格なwikiへ渡るかもしれません。あなたのマークダウン アンダーラインが各ジャンプを生き延びるかは、たった1つの質問で決まります。レンダラーはインラインHTMLを許すか?上のプレイグラウンドは、HTMLの下線と純粋Markdownの代替という2つの結末を同じ場所で試せます。
互換性の亀裂は、多くの人が想像するより広いです。GitHub、GitLab、Bitbucket、VuePress、Docusaurus、MkDocs、ほとんどの現代のドキュメントプラットフォームは<u>テキスト</u>を本物の下線として表示します。厳格なCommonMarkのデモ、一部のフォーラムエンジン、セキュリティを強化したwikiはすべてのHTMLを剥がし、マークダウン アンダーラインを見える山括弧か無に変えます。下の表が名前を挙げるので、文書を出荷する前に挙動を予測できます。
このページは、構文の実践デモであるマークダウン 下線のページと対になっています。ここでの焦点は決断です。どのレンダラーがマークダウン アンダーラインに対応し、HTMLが剥がされたときに何が意味を保ち、まだ会ったことのないパイプラインを優雅に生き延びるマークアップをどう書くか。
マークダウン アンダーラインのレンダラー互換性
| レンダラー | uタグの結果 |
|---|---|
| GitHub(GFM) | 表示される。READMEとissueでマークダウン アンダーラインが機能 |
| GitLab(GFM) | 表示される。GitHubと同じGFMの挙動 |
| CommonMark厳格 | 非表示。仕様に下線はなく、HTMLはテキストとして扱われる |
| HTML除去型wiki | 非表示。タグが除去されるか文字で表示される |
| Docusaurus / VuePress | 表示される。React/MDXパイプラインはu要素を許可 |
| Pandoc(HTMLへ) | 表示される。マークダウン アンダーラインはHTMLへ通過 |
マークダウン アンダーラインをどこでも生かす方法
- 1
まず対象レンダラーで試す
uタグの例を、文書が実際に暮らす場所に貼ります。マークダウン アンダーラインが表示されれば、互換性のある多数派にいるので心配は終わりです。
- 2
HTMLが剥がされるなら強調を変える
マークダウン アンダーラインが使えない場所では、太字が互換性リスクゼロで強調を運び、斜体がより軽い声で同じ役割を果たします。両方とも今までに出荷されたすべてのMarkdownレンダラーで機能します。
- 3
下線は下線を意味するときだけ使う
中国語文書の固有名詞、印刷フォーム、法務スタイルはマークダウン アンダーラインを正当化します。日常の強調は違います。利用を絞れば、互換性の面積が無料で小さくなります。
- 4
どちらに転んでも読めるソースを保つ
ページ全長の下線ではなく<u>短いスパン</u>を書きます。パイプラインがタグを剥がしても、短いスパンは綺麗にプレーンテキストへ格下げされます。マークダウン アンダーラインは消えても、文は生き残ります。
マークダウン アンダーラインが失敗するときの代替戦略
レンダラーがHTMLを剥がすとき、4つの代替がほぼすべてのニーズをカバーします。太字は普遍的な強調で、どのレンダラーも落としません。斜体はその軽い兄弟です。コードスパンは、線の代わりに色付き背景で用語を際立たせます。そして、下線のグリフを本当に必要とする文書——印刷される契約書、中国語の固有名詞——のために、マークダウン PDF 変換のページで完成した文書をPDFにエクスポートし、タイポグラフィがあなたの管理下にある出力先でスタイルを適用します。
より繊細な戦略は構造的なものです。パイプラインを自分で管理できるなら、uをホワイトリストに入れるレンダラーを選びます。セキュリティポリシーは通常、スクリプトを運ぶタグをブラックリストにし、無害な提示タグを許可するため、マークダウン アンダーラインはデフォルトで機能します。このサイトのエンジンはまさにそのアプローチです。すべてをサニタイズし、uをホワイトリストに入れ、ここでレンダリングされるすべての文書について互換性の質問を消します。
唯一の非戦略は、構文の即興です。アンダースコアで下線を引く、強調マーカーを流用する、見出しスタイルを乱用する——どれも、1つのレンダラーで下線に見え、3つの場所で壊れるマークアップを作ります。マークダウン アンダーラインはuタグであるか、無いかです。それ以外は全部、意図的に植え付ける互換性バグです。
マークダウン アンダーラインの互換ある代替
__下線のふりをした太字__
**太字**を意図的に選ぶ
二重アンダースコアはどこでも太字になります。本当の代替が太字なら、太字として書きましょう。決して現れない線の模倣をやめることです。
===下線付き見出しスタイル===
## 本物の見出し
一部のフレーバーは下線付きの行を見出しにします。それは見出しであってマークダウン アンダーラインではなく、下流のアウトラインとPDFのしおりを壊します。
<span style='text-decoration:underline'>
<u>テキスト</u>
インラインのstyle属性は、このサイトのものを含めほとんどのサニタイザーに除去されます。裸のuタグだけが、ホワイトリストを生き延びるマークダウン アンダーラインの形式です。
1行の意思決定ルール
マークダウン アンダーラインが必要で、対象がHTMLを表示するなら<u>テキスト</u>を使う。しないなら太字を使って先へ進む。マークダウン アンダーラインの互換性問題は、3つ目の選択肢があると思い込むことから生まれます。ありません。
よくある質問
出典と仕様引用
“The <u> HTML element represents a span of inline text which should be rendered in such a way as to indicate that it has a non-textual annotation.”
“The <ins> HTML element represents a range of text that has been added to a document.”