Nadbytočné escapovanie v ôsmich diagramoch
V tomto článku
Istý čas osem príspevkov na tomto blogu zobrazovalo sedem znakov — v diagramoch uprostred vety. Nie pomlčku. Doslovný text. Odvtedy sa to opravilo v každom jazyku.
81 riadkov, 91 výskytov. V súvislom texte tých istých ôsmich príspevkov: ani jeden.
O jedno escapovanie priveľa
Diagramy sú vložené SVG zapísané do tela článku. Označenie, ktoré potrebuje pomlčku, nesie —, pričom ho prehliadač na ňu zmení presne ako v odseku.
Uložené však bolo —. Prehliadač to poslušne zmenil na sedem znakov zapisujúcich entitu a vykreslil ich. Súvislý text zostal nedotknutý, pretože nikdy neprešiel tým, čo pridalo nadbytočné escapovanie; iba označenia a iba v príspevkoch, ktorých označenia vznikali vtedy.
Príčina je malá a nudná. Zapísať sa oplatí to, prečo zostala tak dlho priamo na očiach a čo to ukončilo.
Kontrola to videla a povedala niečo iné
Existuje kontrola merajúca, či sa označenie diagramu zmestí do obrázka. Tieto označenia hlásila celé dni — ako príliš široké.
Čím aj boli. Označenie vykresľujúce sedem znakov namiesto jedného je približne o štyridsaťpäť pixelov širšie než zamýšľané, takže meranie aj hlásenie boli správne. Záver, ktorý by čitateľ hlásenia vyvodil, správny nebol. Číslo hovorilo, že geometria je príliš tesná. Pravdou bolo, že text nebol tým, čím sa zdal.
Takúto podobu to má. Kontrola odpovedá na zadanú otázku a nedokáže hlásiť, že otázka bola nesprávna. Nič sa tu nezmeralo nesprávne; meranie sa jednoducho týkalo iného problému, než ako to vyzeralo.
Čo to odhalilo
Vykreslenie jedného diagramu a pohľad naň. Headless Chromium, jedna snímka obrazovky, desať sekúnd. Entita bola v treťom riadku obrázka vypísaná písmenami rovnakej veľkosti ako všetko ostatné.
Opravou bola migrácia, ktorá nahradila & za & pri pevnom zozname názvov entít a iba v <svg class="dg"> blokoch, aby znak ampersand zamýšľaný ako ampersand takým zostal. Čokoľvek mimo tohto zoznamu sa nahlásilo a ponechalo namiesto hádania. Všetkých 81 riadkov sa opravilo v každom jazyku; jedinými výskytmi zostávajúcimi v blogu sú tie zámerne citované v tomto príspevku.
Čo sa dá zovšeobecniť
Každá automatizovaná kontrola tohto projektu meria niečo číselné, pretože program dokáže porovnávať čísla. Žiadna nedokáže vidieť, že obrázok sa stal nezmyslom, rámček je prázdny alebo že namiesto symbolu je vypísané slovo.
Pravidlo, ktoré z toho vyplynulo, je preto krátke: po každej zmene diagramu jeden vykreslite a pozrite sa naň v jazyku, ktorý potrebuje najviac miesta. Už zachytilo dve veci, ktoré by žiadne meranie nezachytilo — tento prípad a prázdny rámček po presunutí popisu mimo neho.