Hakyll генерирует странный HTML - кто-нибудь может объяснить причину? - PullRequest
5 голосов
/ 08 октября 2010

Я использую Hakyll для генерации некоторой документации, и я заметил, что у него есть странный способ закрытия тегов HTML в генерируемом коде.

Была страница, где они сказали, что вы должны сгенерировать разметку, как они, или макет вашей страницы будет нарушен при некоторых условиях, но я не могу найти его сейчас.

Я создал небольшую тестовую страницу (код ниже), которая имеет один красный слой с «нормальной» разметкой HTML и желтый слой с разметкой, аналогичной той, которую генерирует hakyll.

Я не вижу никакой разницы в Firefox между двумя divами.

Кто-нибудь может объяснить, правда ли то, что они говорят?

<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>

Ответы [ 3 ]

5 голосов
/ 08 октября 2010

На самом деле pandoc генерирует HTML-код.В системе отслеживания проблем Pandoc есть хорошее объяснение:

http://code.google.com/p/pandoc/issues/detail?id=134

Причина в том, что любые пробелы (включая символы новой строки и табуляции) между тегами HTML приводят к тому, что браузер вставляетпробел между этими элементами.В машинной логике гораздо легче оставить эти пробелы, потому что тогда вам не нужно думать о возможных путях форматирования текста HTML, которые могут испортить браузер, добавляя дополнительные пробелы.

0 голосов
/ 03 января 2012

Я пробежался по нему, и он исправил необычные разрывы строк.

0 голосов
/ 08 октября 2010

Бывают случаи, когда удаление пустого пространства между двумя тегами будет иметь значение, особенно при работе со встроенными элементами.

...