Přejít k navigační liště

Zdroják » Zprávičky » Deset entitových hříchů HTML kodérů

Deset entitových hříchů HTML kodérů

Zprávičky Různé

Nálepky:

Entity v HTML nabízejí mnoho možností vložení znaků, a je škoda je nevyužít. Na nejčastější situace, kdy by se měla objevit entita, ale kodér místo toho použije nějakou opisnou konstrukci, ukazuje článek 10 Entity Crimes You Really Shouldn’t Commit. A jaké že to jsou zločiny? Například psaní copyrightu jako ( C ), znaku trademark pomocí <sup>TM</sup>, trojtečky (výpustky) pomocí tří teček, nesprávné použití mdash a ndash (resp. jejich nahrazování spojovníkem „-“) atd.

Komentáře

Subscribe
Upozornit na
guest
15 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
View all comments
Jakub Vrána

Já za hřích považuji použití jiných entit než &lt;, &amp; a případně ještě &quot; uvnitř hodnot atributů. Přimhouřím oko ještě nad &gt;, ale se vším ostatním jsou akorát problémy při exportu do XML. Používání entit pro znaky bez speciálního významu je samoúčelné, pokud je znaková sada podporuje přímo. A vytvářením stránek v čemkoliv jiném než v Unicode si člověk akorát zadělává na problémy.

Opravdový odborník :-)

„Používání entit pro znaky bez speciálního významu je samoúčelné, pokud je znaková sada podporuje přímo.“

+1

prakticky všechno dnes píšeme v UTF-8 a používání (HTML) entit ztrácí smysl — je hloupost opisovat znak pomocí &blabla; když ho můžu napsat rovnou v daném kódování. Diakritiku taky přece nepíšeme stylem: &#268;e&#353;tina

Opravdový odborník :-)

Hodně těch znaků na klávesnici je a ty zvývající můžou být… Nebo se o ně má postarat editor či redakční systém – viz třeba ta konverze (c) na ©. Každopádně zapisovat znaky formou entit do dokumentu, jehož kódování umožňuje přímý zápis těch znaků, je zvěrstvo.

Byť se to někdy používá – stejně tak jsem jednou vidět PHP/MySQL „aplikaci“, která si nerozuměla s češtinou, a tak se do databáze všechny české znaky ukládany jako &#XXX; No tak, fungovalo to, ale žádná krása to nebyla…

Navíc motivace pro entity je zdá se jiná: A given character encoding may not be able to express all characters of the document character set (HTML specifikace).

Ukládání do databáze by fungovalo jen do té doby, dokud bychom se nepokusili uložit delší řetězec do sloupce typu varchar.

Opravdový odborník :-)

Ještě abych odpověděl na otázku:

© je Alt+Shift+C, ® Alt+Shift+R, to je standardní QWERTZ. Pomlčku píši Alt+- to už standard není, ale není problém si to nastavit, pokusím se zařídit, aby to bylo ve základu v distribucích, trojtečku … mám Alt+Shift+- atd. Nedělitelná mezera je Alt+mezera, to je ve standardním rozložení – na to pozor ve skriptech…

Opravdový odborník :-)

No vidíte, mně zase před dvaceti lety na třiosmšestce s DOSem nešla psát písmena s háčky a čárkami. Asi to bude chtít nějaký modernější nástroj. Co se týče standardního a nestandardního rozhložení, tak jsem psal, co standard je a co jsem si doplňoval (ale není to žádná věda, na to ani nemusíte být opravdový odborník).

Opravdový odborník :-)

Tak ono to tehdy šlo třeba v T602 nebo ve Windows 3.1 po nainstalování zvláštního počešťujícího upgradu, ale v základu to v tom systému nebylo. Ale máte pravdu, nechme toho. Nedoukové s Windows asi holt vždycky budou používat polovičatá řešení, tak jim ty entity nechme :-)

Joelp

Nedoukům s Linuxem to taky nefunguje :P

Jirka

tak jak bylo popsáno to funguje v Mac OS (aktuálně tedy OS X)

jezovec

to vam udelal redakcni system, ne? Takhle je to prece spravne… Nemelo tam byt neco jako „(“ c „)“ ?

Mirek

Mně na entitách vždycky dost vadilo, že jinak vypadají než se píšou. Zkuste si v prohlížeči přes ctrl+f vyhledávat něco z textu: …na noze a–b™. Nenajdete tři tečky, tm, a-b, podle prohlížeče možná ani „na noze“. Přitom jasně vidíte, že tu jsou. Někdy to komplikuje i copy&paste.

Entity chápu pro tisk, líp vypadají, ale ne pro web, komplikují jeho použití. Pokud se nepletu, tak to snad neplatí pro uvozovky a ampersandy, ty jsou pro vyhledávání i kopírování bez problému i pro verzi v entitách.

Enum a statická analýza kódu

Mám jednu univerzální radu pro začínající programátorty. V učení sice neexistují rychlé zkratky, ovšem tuhle radu můžete snadno začít používat a zrychlit tak tempo učení. Tou tajemnou ingrediencí je statická analýza kódu. Ukážeme si to na příkladu enum.