HTML / XML Formatlayıcı ve Doğrulayıcı

HTML veya XML yapıştırın, düzgün girintili hâlini alın — XML'de eksiksizlik hataları, HTML'de kapanmayan etiket uyarıları işaretlenir.

1.241 görüntülenme

Nasıl Çalışır

Formatlayıcı işaretlemenizi tarayıp iç içe geçme derinliğini takip eder: her açılış etiketi derinlik sayacını bir seviye yukarı iter, her eşleşen kapanış etiketi bir seviye aşağı çeker. Her çıktı satırı, o andaki derinliğiyle orantılı sayıda girinti birimi alır — bir seviye derindeki etiket bir birim girinti alır, dört seviye derindeki dört birim alır. Metin düğümleri, yorumlar ve öznitelikler kendilerini içeren elemanın derinliğini devralır, böylece sonuç, tek bir kesintisiz metin yığını yerine belgenin gerçek ağaç yapısını görsel olarak yansıtır.

Örneğin <ul><li>A</li><li>B</li></ul> gibi sıkışık tek satırlık bir girdi; en üst seviyede <ul>, bir seviye içeride <li>A</li> ve <li>B</li>, tekrar en üst seviyeye dönen kapanış </ul> ile geri döner — tek satır yerine üç satır, her birinin derinliği yalnızca girintisinden anlaşılır. <br> veya <img> gibi boş elemanlar derinlik sayacını asla artırmaz, çünkü içlerine hiçbir şey iç içe yerleştirilemez.

Bilinmesi Gerekenler

XML modunu seçtiğinizde ayrıştırıcı katıdır: herhangi bir eksiksizlik ihlali — kapanmayan etiket, uyumsuz iç içe geçme, geçersiz bir karakter — sessizce yamanmak yerine belirli bir hata mesajıyla bildirilir. HTML modunu seçtiğinizde araç bunun yerine elinden gelenin en iyisini yapan bir etiket-dengesi kontrolü çalıştırır, çünkü tarayıcıların kendisi HTML'i hoşgörülü ayrıştırır ve tespit edilecek eşdeğer bir sert "geçersiz" durum yoktur. Bu ayrım iki format arasındaki gerçek bir farkı yansıtır: XML'in şartnamesi bir belgenin ya eksiksiz biçimlendirilmiş olmasını ya da tamamen reddedilmesini şart koşar, arada bir orta yol yoktur; HTML5 ise kapatılmayı unutulan bir etiket gibi küçük yazım hatalarının sayfayı bozmaması için bilerek böyle tasarlanmıştır. Bu hoşgörülü gelenek, <br/>'nin XML'de zorunlu olmasının ama <br> ile <br/>'nin HTML'de her ikisinin de geçerli ve birbirinin yerine kullanılabilir olmasının da nedenidir.

Bunun faydası elle yazılmış işaretlemeyi düzenlemenin çok ötesine geçer. Canlı bir sayfadan alınan küçültülmüş HTML, tek satır olarak dönen bir XML API yanıtı veya hiç biçimlendirme yapılmadan dışa aktarılmış bir ayar dosyası — derinlik tabanlı girinti uygulandığında hepsi çok daha okunabilir hâle gelir ve yanlış yerleştirilmiş bir etiketi fark etmek çok daha kolaylaşır. Girinti, girdiden kopyalanmak yerine ayrıştırılmış yapıdan yeniden hesaplandığından, orijinal boşluklandırma ne kadar tutarsız olursa olsun çıktı her zaman tutarlıdır.

Sıkça Sorulan Sorular

XML modu neden HTML modunun kaçırdığı hataları yakalıyor?

XML'in katı bir eksiksizlik şartnamesi vardır — tarayıcının XML ayrıştırıcısı bunu bozan her şeyi reddeder. HTML ayrıştırma bilerek hoşgörülüdür (web'in küçük hatalarda bozulmaması için temel bir tasarım hedefi), bu yüzden buna denk sert bir hata yoktur — bu araç HTML için bunun yerine elinden gelenin en iyisini yapan bir etiket-dengesi kontrolü uygular.

Araç her satırın ne kadar girinti alacağına nasıl karar veriyor?

Ayrıştırırken iç içe geçme derinliğini takip eder: bir etiket açmak derinliği bir artırır, bir etiket kapatmak bir azaltır, her satır o andaki derinliğiyle orantılı miktarda girintilenir. Ağaçta üç seviye derindeki bir eleman, çevresindeki etiketlerin uzunluğundan bağımsız olarak üç girinti birimi alır.

<br/> neden XML'de zorunlu ama HTML'de opsiyonel?

XML'de yerleşik bir "boş" eleman kavramı yoktur — her etiket ya ayrı bir kapanış etiketiyle ya da kendi kendini kapatan eğik çizgiyle açıkça kapatılmalıdır, aksi halde belge eksiksiz biçimlendirilmiş sayılmaz. HTML5 ise tarayıcıların zaten çocuk almadığını bildiği sabit bir boş-eleman listesi tanımlar (br, img, input, hr ve diğerleri), bu yüzden hem <code>&lt;br&gt;</code> hem <code>&lt;br/&gt;</code> aynı şekilde ayrıştırılır.

Biçimlendirme içeriğimi değiştirir mi?

Hayır — yalnızca boşluk ve girinti değişir. Etiketler, öznitelikler, metin ve yorumlar aynen korunur (öznitelik değerleri güvenlik için yeniden kaçışlanır, bu yalnızca tırnak karakterlerini değiştirebilir, değerin kendisini asla).

Çok derin iç içe geçmiş veya küçültülmüş (minified) bir belgede çalışır mı?

Evet — derinlik takibine dayalı yaklaşım, girdinin özgün olarak nasıl biçimlendirildiğini veya ne kadar derin iç içe geçtiğini önemsemez; tek satıra sıkıştırılmış küçültülmüş bir dosya ile dağınık şekilde elle girintilenmiş bir dosya aynı temiz çıktıyı üretir, çünkü girinti girdiden korunmak yerine etiket yapısının kendisinden yeniden hesaplanır.

Yorumlar

Henüz yorum yok — ilk yorumu siz yazın!

Benzer Araçlar