Одне зайве екранування у восьми діаграмах
Певний час вісім дописів цього блогу показували посеред фрази сім знаків —, і то всередині діаграм. Не тире. Сам текст. Відтоді це виправлено всіма мовами.
81 рядок, 91 входження. У прозі тих самих восьми дописів — жодного.
Одне екранування зайве
Діаграми — це вбудований SVG, записаний у тіло статті. Підпис, якому потрібне тире, несе —, і браузер робить із цього тире, точнісінько як в абзаці.
Зберігалося ж —. Браузер слухняно зробив із цього знаки, що по літерах пишуть сутність, і намалював їх. Проза лишилася недоторканою, бо ніколи не проходила через те, що додавало зайве екранування; проходили тільки підписи, і тільки в тих дописах, чиї підписи створювалися тоді.
Причина дрібна й нудна. Записати варто інше: чому вона так довго стояла у всіх на очах і що її припинило.
Перевірка її бачила й казала інше
Є перевірка, яка міряє, чи вміщається підпис діаграми у свою картинку. Вона повідомляла про ці підписи вже кілька днів — як про надто широкі.
Якими вони й були. Підпис, що малює сім знаків замість одного, приблизно на сорок п’ять пікселів ширший, ніж задумано, тож вимірювання було правильним і повідомлення було правильним. Неправильним був висновок, який робить читач такого повідомлення. Число казало, що геометрія тісна. Правда була в тому, що текст виявився не тим, чим здавався.
Така форма цієї справи. Перевірка відповідає на питання, яке їй дали, і не може повідомити, що питання було не те. Тут нічого не виміряли хибно; вимірювання просто було про іншу задачу, ніж та, на яку скидалося.
Що її знайшло
Відмалювати одну діаграму й подивитися на неї. Chromium без вікна, один знімок, десять секунд. Сутність стояла в третьому рядку картинки, літерами того самого розміру, що й усе інше.
Лагодженням стала міграція, що замінює & на & для сталого списку імен сутностей і лише всередині блоків <svg class="dg">, щоб амперсанд, задуманий як амперсанд, ним і лишився. Усе, чого в списку не було, повідомлялося й лишалося в спокої, а не вгадувалося. Усі 81 рядок виправлено кожною мовою; у блозі лишилися тільки ті входження, які цей допис цитує навмисне.
Що тут узагальнюється
Кожна автоматична перевірка в цьому проєкті міряє щось числове, бо числа — це те, що програма вміє порівнювати. Жодна не бачить, що картинка стала безглуздям, що рамка порожня або що слово написане по літерах там, де потрібен знак.
Правило, яке з цього вийшло, коротке: після будь-якої зміни діаграми відмалювати одну й подивитися на неї — тією мовою, якій потрібно найбільше місця. Воно вже спіймало дві речі, яких не могло спіймати жодне вимірювання: цю і порожню рамку, що лишилася, коли з неї витягли підпис.