Hakyll erzeugt seltsam HTML - kann jemand Grund erklären?
-
28-09-2019 - |
Frage
Ich verwende Hakyll eine Dokumentation zu erzeugen, und ich bemerkte, dass es eine seltsame Art und Weise hat in dem Code die HTML-Tags zu schließen, es erzeugt.
Es gab eine Seite, wo sie sagten, dass Sie das Markup generieren müssen, wie sie tun, oder das Layout Ihrer Seite wird unter bestimmten Bedingungen gebrochen werden, aber ich kann es jetzt nicht finden.
Ich habe eine kleine Testseite (Code unten), die eine rote Schicht mit dem „normalen“ hat HTML-Markup, und eine gelbe Schicht mit Markup ähnlich dem, was hakyll erzeugt.
Ich kann keine diference in Firefox zwischen den beiden divs sehen.
Kann jemand erklären, ob das, was sie sagen, ist wahr?
<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>
Lösung
Es ist eigentlich pandoc , die den HTML-Code erzeugen, beitragen. Es gibt eine gute Erklärung in der Pandoc issue tracker:
http://code.google.com/p/pandoc/ Fragen / detail? id = 134
Der Grund ist, weil jeder Leerzeichen (einschließlich Newline und Tabs) zwischen HTML-Tags wird das dazu führen, Browser ein Leerzeichen zwischen diesen Elementen einzufügen. Es ist viel einfacher auf dem Maschinenlogik diese Räume aus, zu verlassen, weil dann müssen Sie nicht zu denken brauchen die Möglichkeiten, dass der HTML-Text mit dem Browser wurden Unordnung Formatierung könnten das Hinzufügen zusätzliche Leerzeichen.
Andere Tipps
Es gibt Zeiten, in denen der Leerraum zwischen zwei Tags Strippen wird einen Unterschied machen, vor allem, wenn sie mit Inline-Elemente handelt.
Ich lief ordentlich drüber und es fixiert die ungewöhnlichen Zeilenumbrüchen.