CreaTools LogoCreaTools
HTML Formatter

HTML Formatterの使い方|pre/scriptを壊さず整形・圧縮

2026-02-07

まず、ここに貼ってください

view-source で見たHTMLが1行になっていて読めない、メール用テンプレートを縮めたい、コピペで貰ったマークアップが揃っていない。HTML関連で困ったら考える前に HTML Formatter に貼ってください。

整形はPrettier(HTMLプラグイン)、圧縮は軽量regex方式。<pre> / <textarea> / <script> / <style> の中身は保護されるので、整形・圧縮で壊れません。


即断テーブル

困っていること操作補足
1行HTMLを読みたい「整形」ボタンPrettier準拠でインデント
配信前にサイズを減らしたい「圧縮」ボタンタグ間の空白・コメント削除
インデントを揃えたい「インデント」を選択2/4スペース・タブ

このツールで解決できる3つの問題

1. 「保存したHTMLが1行で読めない」

ブラウザで「ページを保存」したり、CMSが出力したHTMLは改行ゼロのことがあります。

→ 貼り付けて「整形」をクリック

PrettierのHTMLパーサが要素ごとに改行を入れてインデントします。<a> のようなインライン要素は適度に同じ行にまとめられます(htmlWhitespaceSensitivity: "css" 設定)。


2. 「メール用HTMLを最小化したい」

HTMLメール、AMP、SSR出力などサイズが効いてくる場面で。

→ 貼り付けて「圧縮」をクリック

軽量regex方式の圧縮で:

  • <!-- ... --> コメントを削除(IE条件付きコメント <!--[if ...]> は保護)
  • > < のようなタグ間の空白を削除
  • 連続する空白を1個に
  • 行頭・行末の空白を整理

<pre>, <textarea>, <script>, <style> の中身は事前に退避してから処理し、最後に復元します。


3. 「Tailwindのclassが横に長すぎて読めない」

<div class="flex items-center justify-between rounded-lg bg-white p-4 shadow-sm hover:shadow-md transition">

このようなclass山脈も、整形すれば1属性=1行に分割されます(属性が長い場合、Prettierが自動で折り返し)。printWidth: 120 で制御。


圧縮で「保護」されるタグ

タグ理由
<pre>整形済みテキスト。空白・改行が表示に影響
<textarea>初期値の空白がフォーム表示に影響
<script>JS構文を壊す可能性
<style>CSS構文を壊す可能性

これら以外のタグの中身は通常通り圧縮されます。


圧縮の限界

軽量regex方式のため、以下は最適化しません:

  • 属性値内の余分な空白(class=" foo bar "class="foo bar"
  • ブール属性の短縮(disabled="disabled"disabled
  • 不要な閉じタグの省略(<li>...</li><li>...
  • 同一属性の正規化

本番ビルドで厳密なminifyが必要な場合は、html-minifier-terser などをビルドツール経由で利用してください。本ツールは**「だいたい縮めたい」用途**として割り切るのがおすすめです。


ボタンとオプション

項目動作
整形Prettierで整形、120桁折り返し
圧縮regex方式でminify
インデント2スペース / 4スペース / タブ(整形時のみ)

判断フロー

HTMLで困った
    ↓
HTML Formatterに貼る
    ↓
何をしたい?
    ├── 読みたい → 「整形」
    └── 縮めたい → 「圧縮」

関連記事

記事読むタイミング
HTML圧縮で壊れやすいパターン圧縮後に表示崩れが起きたとき
pre / script / style がなぜ保護されるのか圧縮の保護対象を理解したいとき