Как я могу сохранить пробелы между тегами с Diazo?
Я создаю простую тему Диазо.
rules.xml
это что-то вроде этого:
<?xml version="1.0" encoding="UTF-8"?>
<rules
xmlns="http://namespaces.plone.org/diazo"
xmlns:css="http://namespaces.plone.org/diazo/css"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<theme href="index.html"/>
<replace css:content="#form-1" css:theme="#form-1" />
</rules>
И в файле содержимого есть следующие строки:
...
<div id="form-1">
<form action="...">
<input type="text" id="name" />
<input type="submit" value="ok" />
</form>
</div>
....
Я ожидал, что эти строки были точно так же реплицированы в выходной HTML. Однако они стали такими:
<div id="form-1">
<form action="...">
<input type="text" id="name" /><input type="submit" value="ok" /></form>
</div>
То есть каждый раз, когда у меня есть пустой тег HTML, как <input ... />
или же <br />
, пробел между ним и следующим тегом удаляется.
Я пытался изменить это поведение, используя <xsl:output>
а также <xsl:preserve-space>
варианты, без успеха.
Что я могу сделать?
2 ответа
Альтернативным решением для редактирования вашей CSS может быть повторное введение пробелов в вашем файле правил.
<replace css:content="#form-1 input">
<xsl:copy-of select="." /><xsl:value-of select="' '"/>
</replace>
Это немного взломать, но у меня работает.
Я сталкиваюсь с этой же проблемой. Это ошибка.
Diazo использует lxml, библиотеку Python XML. lxml использует 2 библиотеки C, libxml2 и libxslt. Скорее всего, это ошибка в одной из этих двух библиотек.
Вполне возможно, что это ошибка:
https://bugzilla.gnome.org/show_bug.cgi?id=642191
Наиболее очевидным решением является добавление некоторого поля для входных данных в вашем CSS.