diazo заменяет теги ‹esi:include› на ‹include›

У меня проблемы с диазо для plone.

У меня есть теги ‹esi:include> в моих шаблонах страниц, но когда я использую диазо, все эти теги заменяются на ‹include>, даже если я использую mode="raw" или нет.

Я нашел уродливое обходное решение:

<xsl:template css:match="include">
    <xsl:text disable-output-escaping="yes">&lt;esi:include src="</xsl:text>
    <xsl:value-of select="@src" />
    <xsl:text disable-output-escaping="yes">">&lt;/esi:include></xsl:text>
</xsl:template>

Но теги ‹include> не заменяются на ‹esi:include, когда html помещается с режимом = "raw".

Любая идея?

Большое Вам спасибо.


person martronic    schedule 08.08.2013    source источник
comment
mode=raw предотвращает дальнейшую обработку содержимого, полученного другими правилами, в частности, правилами удаления и замены содержимого. Если mode=raw решает проблему, вы должны проверить свой набор правил, чтобы увидеть, не является ли он здесь злодеем.   -  person SteveM    schedule 08.08.2013
comment
На самом деле, когда я использую стандартное правило (добавлять перед и т. д.), теги esi:include всегда заменяются на ‹include›, даже если я использую mode=raw или нет. Я нашел обходной путь, о котором упоминал в своем посте, но он не работает, когда я хочу переместить контент с помощью ‹drop› и ‹replace mode=raw›. В этом случае мой тег ‹esi:include› снова заменяется.   -  person martronic    schedule 08.08.2013


Ответы (1)


Если вы хотите, чтобы голый XSL обрабатывался в необработанном режиме, вам нужно добавить method="raw" в тег xsl:template. Вам может понадобиться две версии тега шаблона: одна для метода = "raw" и одна для значения по умолчанию (без атрибута метода).

Шаблоны в XSL совпадают только в том случае, если совпадает их метод. Если в теге применения шаблона применения не указан метод, тогда используется метод «по умолчанию».

Когда вы указываете 'mode="raw"' в Diazo, он помещает method="raw" в вызов шаблона применения, что пропускает большую часть постобработки, включая любые шаблоны XSL, для которых вы не указываете method="raw".

person SteveM    schedule 08.08.2013