本文へ移動
Markdown → HTML
プレビューは無害化 · コピー用 HTML は生のソース。
ブログ

改行の違いを比べる

Markdownの同じ日本語2文で、改行一つ・空行・行末のバックスラッシュを比較。コピー用HTMLのpとbrを確認し、プレビューや公開先の見た目との違いを見分けます。

訂正 — 2026年10月14日: ~~打ち消し~~ の変換結果は <del>打ち消し</del> です。以前の本文にある old は誤記でした。実際の画面ではない「ブラウザ内で安全に変換」「1秒」の図を含むカード一式も、この記事から取り下げました。変換時間や公開先の安全性を保証するものではありません。

入力では2行なのに、表示ではつながった。空行を足すと、今度は間が空きすぎる。 まず、同じ段落の折り返し・別の段落・強制改行を分けて確認します。3つの改行例は同じ日本語の2文を使うので、変えた記号とHTMLを見比べられます。実際の機密文書を貼る必要はありません。

コピー先の見た目は、このツールのプレビューと同じとは限りません。以下では改行の実例に加え、画像・リンク・生HTMLがコピーには残る点も確認します。

Markdown はどう HTML になるのか

基本文法は # が見出し、* が強調になるのは慣れています。やっかいなのは表や打ち消し線のような拡張文法です。

PiPi Worlds の Markdown 変換ツールは GitHub 風 Markdown(GFM)に従います。表を入れると <table>・<thead>・<td> に展開され、~~打ち消し~~ は <del>打ち消し</del> になります。自動リンクにも対応します。ただし GFM の構文対応と GitHub と同じ見た目は別です。コピー先の CSS・許可タグ・メールの表示環境で結果は変わります。

画像が見えなくても、コピーから消えたわけではありません

Markdown 変換ツールには「プレビュー」と「HTML ソース」があります。プレビューは書式確認用で、完成ページの再現や安全性の検査ではありません。次の公開用のテスト文字だけで違いを確かめられます。

[説明](https://example.com/)

![花](https://example.com/flower.png)

<div>生 HTML の例</div>

この入力のコピー用 HTML は次のとおりです。非表示になる生 HTML もソースには残ります。

<p><a href="https://example.com/">説明</a></p>
<p><img src="https://example.com/flower.png" alt="花"></p>
<div>生 HTML の例</div>
  1. 上の例を入力欄に貼り、「プレビュー」を選びます。リンクは移動しない「説明」、画像は代替テキストの「花」になります。最後の生 HTML ブロックは表示しません。
  2. 「HTML ソース」に切り替えます。リンクの href、画像の src、<div>生 HTML の例</div> が残っていることを確認します。
  3. コピーが必要ならこのソース表示でコピーします。プレビューに画像がなくても、コピー先で HTML として表示すると画像 URL が読み込まれる可能性があります。 この例の URL は説明用で、実際の画像を取得する試験ではありません。

これは同じ HTML の見た目だけを切り替える仕組みではありません。書式プレビュー専用の変換で生 HTML を除外し、リンクと画像を文字にした後、DOMPurify の許可リストで処理します。処理できない場合は生 HTML を代わりに表示しません。一方、コピー用の変換結果にはこの処理を適用しません。Marked の公式説明も出力 HTML を自動で無害化しないことを明記しています。

公開前に確認する三つのこと

「自分で書いたから、そのまま公開してよい」とは限りません。引用した断片や画像・リンクの URL、公開先のルールも確認します。

  • 表示か文字列か:コード例として見せるなら、公開先のコードブロックなどを使い、HTML として実行・解釈させないようにします。
  • 許可する内容:HTML として表示するなら、公開先で許可するタグ・属性・URL に沿って無害化します。他人の入力を扱うサービスは、このツールのプレビューを安全性判定の代わりにしないでください。
  • 処理後の変化:無害化後に別の処理が HTML を書き換えると、その処理も確認が必要です。DOMPurify の公式 READMEは、処理後の変更が無害化の効果を損なう場合があると注意しています。

CMS やメールへの貼り付けでは、まず非公開の下書きで表・改行・リンク先・画像の取得先を確認します。ここでの例は変換の違いを確かめるもので、公開先のセキュリティ監査ではありません。

3つの改行例

使う文章は「集合は10時です。」「入口で会いましょう。」の2文です。架空の案内文で、日時や個人情報を入力する例ではありません。各例を一つずつ日本語の変換ツールに入れ、「HTML ソース」と「プレビュー」を切り替えます。コード枠の外側にある説明や、囲みのバッククォートは入力しません。

A:通常

2文の間でエンターを一度押します。行末に空白や記号は付けません。

集合は10時です。
入口で会いましょう。

コピー用HTMLは次の一つの段落です。ソース内には改行が残りますが、<br>はありません。

<p>集合は10時です。
入口で会いましょう。</p>

このツールはbreaks: falseのため、普通の改行一つを<br>へ変えません。表示が何行になるかは画面幅や表示側のCSSにも左右されます。2行に見えたことだけでは、強制改行が入った証拠になりません。

B:段落

2文の間に空の行を一つ入れます。

集合は10時です。

入口で会いましょう。
<p>集合は10時です。</p>
<p>入口で会いましょう。</p>

今度は<p>が二つです。話題を分ける段落になり、同じ段落の途中で改行するA・Cとは構造が違います。段落の間隔は公開先のCSSで変わるため、このプレビューと同じ余白になる保証はありません。

C:強制

同じ段落の中で強制改行したいときの例です。1文目の直後に半角バックスラッシュ \ を一つ置き、その直後で改行します。下の1行目の最後にある記号も入力に含めてください。

集合は10時です。\
入口で会いましょう。
<p>集合は10時です。<br>入口で会いましょう。</p>

段落は一つのままで、途中に<br>が入ります。入力のバックスラッシュ自体を本文に表示する例ではありません。行末の半角スペース2つでも強制改行にできますが、この例は見えない空白のコピー漏れを避けるため、記号が見える方法を使いました。行末の記号の後に空白を追加する手順ではありません。

選び直す目安: 同じ話を続けるならA、段落を分けたいならB、同じ段落で改行位置を明示したいならCです。CommonMarkの改行仕様とMarkedの設定にも、通常の改行と強制改行の違いが説明されています。他のMarkdownサービスが同じ設定とは限りません。

コピー先で意図と違うときは、まずソースの<p>の数と<br>の有無を比べます。意図したタグがあっても表示が違うなら、貼り付け先がタグを残すか、CSSやメール環境でどう表示するかを非公開の下書きで確認してください。この比較は変換結果の確認であり、公開先の見た目や安全性の保証ではありません。

確認範囲 — 2026年10月16日: 上の3例を現在の変換関数と日本語の公開ツールで照合しました。以前の図の訂正や無害化経路の確認日、外部出典の確認日はそれぞれ保持しています。メールの送受信や外部CMSへの公開を試した結果ではありません。

その Markdown、どこで変換していますか

最後は変換する場所の話です。下書き、議事録、非公開の仕様を HTML に変えるとき、そのテキストがどこかへ送信されるツールなら、公開前の内容が外部サーバーを経由します。

PiPi Worlds の Markdown 変換ツールは、この変換機能の入力をブラウザー内で処理し、変換のために当サイトのサーバーへ送信しません。ただし、ブラウザー拡張機能やコピーした HTML の貼り付け先の処理までは管理できません。実際の認証情報や機密文書を試験入力に使わず、ライブプレビューと生のコピー用ソースの違いを確かめてください。HTML の中に base64 データが見えれば Base64 ツールへ、JSON の断片が混ざっていれば JSON フォーマッターへ続けて確認できます。

よくある質問

Markdown の表や打ち消し線も HTML に変換されますか?
はい。GitHub 風 Markdown(GFM)に従うため、表は `<table>` に、`~~打ち消し~~` は `<del>` に変換されます。自動リンクにも対応します。コピー用 HTML ソースは無害化されていません。信頼できない入力は公開前に再度無害化してください。
プレビューが安全とはどういう意味ですか?
書式だけを確認する表示です。Markdown の画像は代替テキスト、リンクは移動しない文字になり、生 HTML とメディアは表示しません。その別の変換結果を DOMPurify の許可リストで処理します。コピー用 HTML は未無害化であり、この表示は公開先での安全性の証明ではありません。
1回の改行でなぜ行が変わらないのですか?
このツールは改行一つを自動でbrにしません。空行は段落を二つに分けます。同じ段落で強制改行したい場合は、行末に半角スペース2つ、またはバックスラッシュを置いてから改行します。ソース中の改行と画面の折り返しは別なので、HTMLソースのpとbrも確認してください。
Markdown の中に生の HTML を入れてもよいですか?
コピー用ソースには生 HTML が残りますが、書式プレビューの経路では生 HTML を除外します。表示されないことは、コピーから削除されたことを意味しません。公開先の許可タグ・属性・URL の方針に合わせて処理してください。
入力した Markdown はサーバーに送信されますか?
この変換機能は入力をブラウザー内で処理し、変換のために当サイトのサーバーへ送信しません。ただし、ブラウザー拡張機能やコピーした HTML の貼り付け先までは管理できません。実際の認証情報や機密文書を試験入力に使わないでください。

出典

確認記録: Codex によるコード・文章確認 · 人間のセキュリティ監査ではありません

今回の確認範囲 — 2026-10-16は改行の3例・FAQとCommonMark/Markedの改行仕様を確認した範囲です。既存の無害化経路・公開先の安全性を改めて監査した日ではなく、以前の確認と出典日は下に保持します。

確認内容と限界を開く

2026-10-16: CommonMark 0.31.2のsoft/hard line breakとMarkedのbreaks設定を確認し、このサイトのbreaks:falseの変換関数と日本語の公開ツールで3例を照合しました。各入力のp/br構造とコピー用HTML全文を比較し、空行による段落分けを強制改行と混同するFAQ、一般のCMSやメールでの原因を断定する文を置き換えました。外部CMSやメール送信・受信環境の動作試験ではありません。 2026-10-14 に日本語の公開本文と4枚の図を確認し、打ち消し線の文字が old に変わる誤記と、架空の画面による安全性・1秒の表示を訂正しました。既存の日本語入力例に対応する HTML 全文を変換関数と照合しました。出典の確認日は以前のままです。前回の確認範囲: MarkdownHtml.jsx と markdown.js の markdownToHtml、markdownToPreviewHtml、sanitizeMarkdownPreview を照合しました。原 HTML をそのまま無害化して表示する経路ではありません。本文例の変換テストは公開先の安全性や全ブラウザーを保証する監査ではありません。

この記事で加えたこと — 同じ日本語2文を使い、改行一つ・空行・行末のバックスラッシュという3通りの入力とコピー用HTMLを対にしました。段落と強制改行、ソース中の改行と画面の折り返しを区別し、読者が現在のツールで再現できる確認手順を示します。既存の画像・リンク・生HTMLのプレビューとコピーの違いも保持します。

確認記録は記載された確認内容であり、独立した正確性の保証ではありません。

ツールに戻る →