ToolDeck

HTML Formatter

Formátujte a zkrášlete HTML se správným odsazením

Zkusit příklad

HTML vstup

Formátovaný HTML

Běží lokálně · Bezpečné pro vkládání tajných údajů
Formátovaný HTML se zobrazí zde…

Co je formátování HTML?

HTML formátovač je nástroj, který provádí formátování HTML (nazývané také zkrášlování nebo odsazování): přidává konzistentní odsazení, zalomení řádků a mezery do HTML kódu tak, aby byla viditelná jeho struktura zanoření. Prohlížeče při vykreslování HTML ignorují mezery, takže dokument napsaný na jediném řádku produkuje stejný výsledek jako dokument s pečlivým odsazením. Rozdíl je čistě pro lidi: naformátované HTML se snáze čte, ladí a udržuje.

Specifikace HTML (udržovaná skupinou WHATWG jako HTML Living Standard) definuje přes 110 elementů, každý s vlastním obsahovým modelem. Blokové elementy jako <div>, <section> a <article> obvykle začínají na novém řádku a odsazují své potomky. Void elementy jako <br>, <img> a <input> nemají uzavírací značku ani potomky k odsazení. Dobrý formátovač tyto rozdíly chápe a aplikuje pravidla odsazení odpovídajícím způsobem, místo aby slepě přidával mezery za každou značkou.

Formátování je nejdůležitější během vývoje. Minifikované nebo strojově generované HTML, výstup z CMS platforem a kód zkopírovaný z prohlížečových DevTools přichází často jako jeden hustý řádek. Bez správného odsazení trvá nalezení chybějící uzavírací značky nebo sledování hluboko zanořené struktury výrazně déle. HTML formátovač přemění tuto zeď textu na správně odsazenou, čitelnou stromovou strukturu jediným krokem.

Proč použít tento HTML formátovač?

Vložte libovolné HTML a okamžitě získejte správně odsazený výstup. Žádné pluginy k instalaci, žádné konfigurační soubory k psaní, žádné účty k vytváření.

Okamžité formátování
Výstup se aktualizuje při psaní. Vložte minifikované HTML z libovolného zdroje a okamžitě uvidíte odsazený výsledek bez čekání na build krok nebo CLI příkaz.
🔒
Zpracování zaměřené na soukromí
Veškeré formátování běží ve vašem prohlížeči pomocí JavaScriptu. Vaše HTML nikdy neopustí vaše zařízení, takže je bezpečné vkládat kód obsahující API klíče, tokeny nebo interní URL.
🎯
Konfigurovatelné odsazení
Přepínejte mezi odsazením 2 mezerami a 4 mezerami jedním kliknutím. Formátovač vaši volbu konzistentně aplikuje na každou úroveň zanoření.
📋
Kopírování jedním kliknutím
Zkopírujte naformátovaný výstup do schránky jediným tlačítkem. Vložte ho přímo do editoru, revize PR nebo dokumentace.

Případy použití HTML formátovače

Vývoj frontendu
Naformátujte HTML šablony před odevzdáním do správy verzí. Konzistentní odsazení snižuje šum v diffech pull requestů a zrychluje revize kódu.
Ladění backendových šablon
HTML vykreslované na serveru z frameworků jako Django, Rails nebo PHP často produkuje neodsazený kód. Vložte vykreslený výstup sem a ověřte zanoření a odhalte neuzavřené značky.
DevOps a CI pipeline
Ověřte, že build nástroje produkují správně strukturované HTML. Naformátujte výstup generátorů statických stránek nebo nástrojů pro HTML emaily před vizuální kontrolou.
QA a testování
Porovnávejte naformátované snímky HTML výstupu mezi testovacími běhy. Správné odsazení odhalí strukturální rozdíly při porovnávání dvou verzí stránky.
Datové inženýrství
Pipeline pro web scraping produkují surové HTML, které je třeba zkontrolovat. Naformátujte stažené stránky, abyste pochopili strukturu DOM ještě před psaním selektorů pro extrakci dat.
Výuka HTML
Studenti mohou vložit zdrojový kód libovolné webové stránky a vidět, jak se elementy zanořují. Naformátovaný stromový pohled jasně znázorní vztahy rodiče a potomka mezi značkami.

Pravidla odsazení HTML

Způsob, jakým formátovač zpracovává každý typ elementu, závisí na jeho obsahovém modelu. Tabulka níže ukazuje běžné elementy a jejich odsazení při nastavení 2 mezer a 4 mezer. Obě varianty produkují identické vykreslení v prohlížeči; rozdíl je v čitelnosti.

ZnačkaTyp elementuOdsazení 2 mezeramiOdsazení 4 mezerami
<div>Block elementNew line, indent childrenNew line, indent children
<span>Inline elementNew line, indent childrenInline with parent text
<br>Void elementNew line, same levelNew line, same level
<img>Void elementNew line, same levelNew line, same level
<!-- -->CommentNew line, same levelNew line, same level
<!DOCTYPE>Document typeFirst line, no indentFirst line, no indent
<script>Script blockNew line, preserve innerNew line, preserve inner
<pre>PreformattedNew line, preserve innerNew line, preserve inner

Formátovač vs. minifikátor vs. linter

Tyto tři nástroje pracují s HTML, ale slouží různým účelům. Formátování a minifikace jsou opačné transformace; linting kontroluje chyby bez změny mezer.

Formátovač (tento nástroj)
Přidává odsazení a zalomení řádků, aby bylo HTML čitelné. Nemění strukturu DOM ani neodstraňuje žádný obsah. Výstup se v prohlížeči vykreslí identicky jako vstup.
Minifikátor
Odstraňuje mezery, komentáře a volitelné uzavírací značky za účelem zmenšení velikosti souboru. Opak formátování. Používejte pro produkční buildy, ne pro čtení nebo úpravy.
Linter (HTMLHint / W3C)
Kontroluje HTML na chyby jako chybějící atributy alt, duplicitní ID nebo zastaralé značky. Hlásí problémy, ale nemění odsazení ani formátování.

Ukázky kódu

Jak formátovat HTML programově v populárních jazycích a nástrojích:

JavaScript (js-beautify)
import { html as beautify } from 'js-beautify'

const ugly = '<div><p>Hello</p><ul><li>One</li><li>Two</li></ul></div>'

const formatted = beautify(ugly, {
  indent_size: 2,
  indent_char: ' ',
  wrap_line_length: 80,
  preserve_newlines: false,
})
// → <div>
// →   <p>Hello</p>
// →   <ul>
// →     <li>One</li>
// →     <li>Two</li>
// →   </ul>
// → </div>
Python (BeautifulSoup)
from bs4 import BeautifulSoup

ugly = '<div><p>Hello</p><ul><li>One</li><li>Two</li></ul></div>'

soup = BeautifulSoup(ugly, 'html.parser')
print(soup.prettify(formatter='minimal'))
# → <div>
# →  <p>
# →   Hello
# →  </p>
# →  <ul>
# →   <li>One</li>
# →   <li>Two</li>
# →  </ul>
# → </div>
Go (goquery + x/net/html)
package main

import (
    "bytes"
    "fmt"
    "golang.org/x/net/html"
    "strings"
)

func main() {
    ugly := "<div><p>Hello</p></div>"
    doc, _ := html.Parse(strings.NewReader(ugly))

    var buf bytes.Buffer
    html.Render(&buf, doc)
    fmt.Println(buf.String())
    // renders normalized HTML — pair with indent logic for pretty output
}
CLI (Prettier)
# Format a single file in place
npx prettier --write index.html

# Format and print to stdout (pipe-friendly)
npx prettier --parser html index.html

# Format with 4-space indentation
npx prettier --tab-width 4 --parser html index.html

# Format HTML from stdin
echo '<div><p>Hello</p></div>' | npx prettier --parser html

Často kladené otázky

Jaký je rozdíl mezi formátováním HTML a validací HTML?
Formátování přidává odsazení a zalomení řádků, aby byl kód čitelný. Validace kontroluje, zda kód odpovídá specifikaci HTML, a hlásí chyby jako chybějící povinné atributy nebo nesprávně zanořené elementy. Formátovač chyby neopravuje; validátor nemění mezery.
Změní formátování HTML způsob vykreslení stránky?
Ve většině případů ne. Prohlížeče při vykreslování slučují sekvence mezer do jedné mezery. Výjimkou jsou elementy s vlastností white-space: pre nebo podobnými CSS pravidly a elementy <pre> a <textarea>, kde jsou mezery významné. Dobře postavený formátovač zachovává obsah těchto elementů přesně tak, jak je.
Kolik mezer mám používat pro odsazení HTML?
Obvyklé jsou 2 nebo 4 mezery. HTML/CSS Style Guide od Googlu doporučuje 2 mezery. Formátovač Prettier má také výchozí nastavení 2 mezery. Čtyři mezery odpovídají konvenci PEP 8 jazyka Python a některé týmy je preferují pro konzistenci napříč jazyky. Zvolte jedno a vynuťte ho formátovačem nebo konfigurací editoru.
Mohu formátovat HTML obsahující vložený JavaScript nebo CSS?
Tento nástroj formátuje strukturu HTML (značky a atributy). Vložené bloky <script> a <style> jsou zachovány beze změny. Pro formátování vloženého JavaScriptu a CSS použijte specializovaný formátovač jako Prettier, který dokáže analyzovat a formátovat všechny tři jazyky v jediném průchodu.
Je stále aktuální debata o tabulátorech vs. mezerách v HTML?
Většina style guides pro HTML a formátovačů používá mezery jako výchozí nastavení. Průzkum Stack Overflow Developer Survey z roku 2023 ukazuje, že mezery pro vývoj webu používá přibližně 55 % respondentů. Tabulátory mají výhodu přístupnosti: každý vývojář si může nastavit preferovanou vizuální šířku ve svém editoru. Obě varianty fungují; konzistentnost v rámci projektu je důležitější než samotná volba.
Proč mé HTML vypadá po formátování jinak?
Formátovač přidává znaky mezer (mezery a nové řádky), které v původním kódu nebyly. To mění vzhled zdrojového kódu, ale ne vykreslený výstup. Pokud vidíte vizuální rozdíl v prohlížeči, pravděpodobně ho způsobují inline elementy, kde přidané mezery vytvoří extra mezeru mezi značkami — to lze vyřešit pomocí CSS (font-size: 0 na rodičovském elementu nebo rozložením flexbox).
Jak zajistit konzistentní formátování HTML v celém týmu?
Použijte automatizovaný formátovač ve svém CI pipeline. Prettier podporuje HTML a lze ho spustit jako pre-commit hook přes Husky nebo lint-staged. Do repozitáře přidejte konfigurační soubor .prettierrc s nastavením tabWidth, printWidth a htmlWhitespaceSensitivity. Každý commit pak bude dodržovat stejná pravidla formátování bez ohledu na nastavení editoru jednotlivých vývojářů.
Jaký je rozdíl mezi HTML formátovačem a HTML zkrášlovačem?
Jde o stejnou operaci. Pojmy 'formátovač' a 'zkrášlovač' (beautifier) oba označují přidávání odsazení a zalomení řádků do HTML kódu. Některé nástroje používají 'beautify' (js-beautify), jiné 'format' (Prettier). Výstup je identický: správně odsazené, lidsky čitelné HTML. 'Pretty-print' je dalším synonymem běžně používaným v dokumentaci a vyhledávacích dotazech.