Почему Pug конвертирует div в span, если добавить его внутри ссылки?

Pug - это шаблонизатор, который обычно используется для создания HTML-разметки с помощью простого и понятного синтаксиса. Он предлагает синтаксис, который значительно сокращает количество кода, необходимого для создания HTML-разметки.

Когда вы добавляете элемент <div> внутри ссылки <a> в Pug, он автоматически конвертирует элемент <div> в <span>. Это происходит потому, что Pug имеет некоторые правила преобразования элементов во время компиляции.

Стандарты HTML позволяют вложенность только определенным образом, например, <p> элементы могут содержать только "строчные" элементы, а <div> элементы считаются "блочными" и не могут содержать "строчные" элементы, такие как <a>. Соответственно, если бы Pug оставил <div> внутри <a>, это был бы недопустимый HTML.

Однако, элемент <span>, в отличие от <div>, считается "строчным" и может быть вложен внутри ссылки <a>. Поэтому Pug автоматически конвертирует <div> в <span>, чтобы соответствовать правилам стандарта HTML и создать валидную разметку.

Независимо от изменения элемента <div> на <span>, вы по-прежнему можете применить к этому элементу все классы и атрибуты, которые вы указали в Pug. Конечный результат будет выглядеть так же, как если бы вы использовали элемент <div>, но этот результат будет соответствовать правилам и стандартам HTML.

Таким образом, преобразование элемента <div> в <span> в Pug - это просто механизм, который обеспечивает создание валидной HTML-разметки, соответствующей стандартам и правилам вложенности элементов HTML.