тл; д-р
Деякі широко використовувані програми, що генерують html, створюватимуть лише теги абзацу, що відкриваються, а не закривають, якщо браузер належним чином закриє абзаци.
З огляду на це, мені здається, що припущення про те, що браузери належним чином закриють абзаци, не є правильним. Чи правильно моє тлумачення? Загалом, які компроміси пов'язані з таким рішенням?
Переглядаючи вихідний код moinmoin, наступний рядок коду потрапив на мене:
# We only open those tags and let the browser auto-close them:
_auto_closing_tags = set(['p'])
( джерело )
Ознайомившись із рештою реалізації, я переконав себе, що так, дійсно, коли moinmoin генерує html-код для однієї зі своїх сторінок, він буде правильно генерувати теги, відкриті для абзаців, де це доречно, в той же час цілеспрямовано уникаючи будь-якого з абзац закриває теги (незважаючи на те, що це можливо тривіально).
Для мого конкретного, досить незвичного випадку використання, така поведінка є невірною. Мені спокуса подати звіт про помилку та / або змінити поведінку. Однак, схоже, таке дизайнерське рішення було продумано. Я недостатньо добре розбираюся в тонкощах стандарту html або різних реалізаціях браузера, щоб можна було сказати, чи правильно це поведінка в цілому, і я маю відчуття, що мій інстинкт виправити / змінити цю поведінку може бути неправильно керуватися.
Чи робить цей код обґрунтованим припущення про реалізацію браузера? Чи згенерований html дійсний? Загалом, які компроміси я можу тут пропустити?