Hakyll генерирует странный HTML - можно кому-нибудь объяснить причину?
-
28-09-2019 - |
Вопрос
Я использую Hakyll, чтобы создать некоторую документацию, и я заметил, что имеет странный способ закрытия тегов HTML в коде, который он генерирует.
Была страница, в которой они сказали, что вы должны генерировать разметку, поскольку они делают, или расположение вашей страницы будет нарушена в некоторых условиях, но я не могу найти ее сейчас.
Я создал небольшую тестовую страницу (код ниже), которая имеет один красный слой с «нормальной» HTML-разметкой, а желтый слой с разметкой, аналогичным, что генерирует Hakyll.
Я не могу видеть никаких различий в Firefox между двумя делями.
Кто-нибудь может объяснить, если что они говорят, правда?
<html>
<body>
<!-- NORMAL STYLE -->
<div style="background: red">
<p>Make available the code from the library you added to your application. Again, the way to do this varies between languages (from adding import statements in python to adding a jar to the classpath for java)</p>
<p>Create an instance of the client and, in your code, make calls to it through this instance's methods.</p>
</div>
<!-- HAKYLL STYLE -->
<div style="background: yellow"
><p
>Make available the code from the library you added to your application. Again, the way to do this varies between languages (from adding import statements in python to adding a jar to the classpath for java)</p
><p
>Create an instance of the client and, in your code, make calls to it through this instance's methods.</p
></div
>
</body>
<html>
Решение
Это на самом деле Pandoc. Это генерирует код HTML. Там есть хорошее объяснение в The Pandoc Emport Tracker:
http://code.google.com/p/pandoc/issues/detail?id=134.
Причина в том, что любой пробел (включая Newline и Tabs) между тегами HTML приведет к тому, что браузер вставляет пространственный символ между этими элементами. Логику намного легче оставить эти пробелы, потому что тогда вам не нужно думать о возможных способах форматирования текста HTML можно возиться с браузером, добавляющим дополнительные пробелы.
Другие советы
Есть времена, когда разбивающие пробел между двумя тегами, в частности, в частности, при работе с встроенными элементами.
Я побежал над ним, и он исправил необычные линии.