🧰 UtlKit

HTML → テキストの使い方: コメントとスクリプトが消え, テーブルはスペース区切りの行にフラットになり, 画像は alt ごと消え, pre ブロックだけ元の空白をそのまま保つ. 段落保持と単一行の 2 モードまで具体例で説明

HTML → テキスト変換の正確な挙動を具体例で説明します. スクリプト, スタイル, コメントの削除, エンティティのデコード, テーブルのスペース区切り化, 画像の削除と alt の未読み取り, pre ブロックの逐字保持, 段落保持と単一行の出力.

HTML → テキストのツールは 1 つのことをだけやって, しかもすべてブラウザ内で完結します. HTML ドキュメントを貼り付け, 変換ボタンを押すと, マークアップを剥いだ人が読むテキストが手に入ります. 何も保存され, アップロードもされず, パーサーはブラウザがもともと持つ DOMParser で, あなたのマシン上で動きます.

HTML を貼り付けて変換を押す

ライブ変換はありません. 変換ボタンを押すまで入力はそのまま放置され, そのときだけ出力パネルに内容が入ります. 1 つのチェックボックス, フォーマットを保持, が出力のレイアウトを決め, 既定ではオンになっています. オンのままで, テキストはブロックの改行を保ちます. オフにすると, すべてが 1 本の連続した言葉の行になります. 入力が空かスペースだけのとき, ボタンは何もしないですし, エラーも表示されません. 誤って空白を貼り付けても, それは失敗状態ではありません.

出力は 2 つの形: 段落または 1 行

チェックボックスがオンだと, コンバーターはドキュメントをブロック単位でたどります. ブラウザが独立した行として表示する要素, 段落, 見出し, リスト項目, テーブル行など, はそれぞれ新しい行から始まり, 前の内容と 1 行の空白で区切られます. オフだと, これらの改行はすべて 1 つのスペースになります. 同じドキュメントが, 語順は同じで, 改行なしの平坦な 1 つの語列として返ってきます. テキスト内の空白はどちらのモードでも正規化され, 連続するスペースや漂っているタブは 1 つのスペースに収まります.

消えるもの: スクリプト, スタイル, コメント

3 種類のコンテンツは出力に絶対に届きません. コンバーターは何を読むよりも先に, すべての script, style, noscript 要素を削除します. したがってインライン JavaScript, CSS ルール, フォールバックブロックは完全に消えます. HTML コメントも同じ方法でスキップされます. 2 つの段落間のコメントは痕跡を残さず, 空白行すら残りません. 生き残るのは表示されるテキストとその中のエンティティで, パーサーが通過する際にデコードします. & は普通の & に戻り, <tag> は角括弧に包まれた単語そのものになります.

テーブル, リスト, 画像

テーブルはプレーンな行として返ってきます. 各行が自分の 1 行になり, 各セルは次と 1 つのスペースで区切られ, 出力にはタブもパイプ文字もどこにもありません. リストはブロックの組のように動き, それぞれの項目が 1 行に, 項目間の 1 行の空白を伴って置かれます. 画像は, 出力が意外に見えるところです. img タグは何も寄与せず, その alt 属性も決して読み取られません. したがって画像を挟む段落は, 画像の前後のテキストを直接つなげて返し, 単語の真ん中に置いた img は 2 つの断片がくっつく原因になります.

br と hr: 改行はあるが空白行ではない

すべての改行がブロックの改行というわけではありません. 段落の中の br や hr は単一の改行を挿入します. 次の語が次の行から始まりますが, 間に空白行はなく, これにより詩や住所は 1 つの視覚ブロックのまま一緒にいられます. これは段落タグが閉じるときと違い, 閉じは完全な空白行の区切りを追加します. 単一行モードでは, どちらの改行も結局同じ 1 つのスペースになるので, この違いは段落構造を保持するときだけ意味があります.

唯一の例外: pre ブロックは空白を保つ

コンバーターの中ですべてが同じ空白ルールを通りますが, 例外は 1 つのタグだけです. pre ブロックはそのままコピーされます. そのテキスト内容は書いたとおりに, インデントも空行もそのまま取り出され, その他のブロックと同じく後ろに 1 行の空白が続きます. コードサンプルを pre タグに置けば, あなたが打ち込んだままの形で返ってきます. ドキュメントの残り部分がフラットにされる場面で, コードや列揃いのテキストを保つ標準的な場所が pre である理由がここにあります.

コピー, クリア, 次のステップ

ワークフローは意図的に小さく保たれています. 出力にコピーすべきものがあるときだけ, コピーボタンが表示されます. クリアは 1 回の押しで入力と出力の両方を空にします. スワップ操作はありません. 出力は構造が残らないプレーンテキストで, 戻してやるものがないからです. また, このページは何も保存しません. マークアップが変換前に乱れているなら, まず HTML フォーマッタ でインデントを正規化できます. タグの奥の特殊文字を逆に扱いたいなら, HTMLエンティティ エンコーダ/デコーダ がエンコードとデコードをしてくれます. 内容が Markdown から始まるなら, Markdown プレビュー がエクスポート前にレンダリング結果を見せ, HTML フォーマットの解説記事 がフォーマット側の説明を詳しく扱います.

関連ツール

よくある質問

コンバーターはテーブルをタブやパイプのような構造化した形で保ちますか?

いいえ. 各行が 1 行になり, セル間は 1 つのスペースで区切られるので, テーブルはスペース区切りの値として読めます. 出力にはタブやパイプ文字はありません. ネストされたテーブルも同じ行ベースのレイアウトにフラットになります.

画像の alt テキストは出力に含まれますか?

いいえ. 画像は削除されます. コンバーターはテキスト内容しか読まないため, img タグは何も寄与せず, その alt 属性も抽出されません. 画像の前後のテキストは直接連結され, 画像が単語の真ん中にあるときは 2 つの断片がくっつくことがあります.

入力のたびにページがリアルタイムに変換しますか?

いいえ. 変換ボタンを押したときだけ入力が処理され, その時点で出力が入ります. 入力が空かスペースだけのとき, ボタンは何もしませんし, エラーメッセージも表示されません.

コードブロックの中の空白は保存されますか?

pre ブロックだけそうです. pre ブロックのテキストはインデントと空行込みでそのままコピーされ, それ以外の場所では連続するスペースやタブが 1 つのスペースに収まります. それが, コードサンプルは pre タグの中にあってこそ変換を生き残る理由です.

HTML エンティティは出力でデコードされますか?

はい. パーサーは通過時にエンティティをデコードするので, & は & に戻り, < と > は文字通りの角括弧になります. 出力はマークアップなしの, ブラウザが描画する表示テキストです.

関連記事