2013-08-08 1 views
2

plone을 위해 diazo에 문제가 있습니다.diazo가 태그를 대체합니다. <include>

내 페이지 템플릿에 esi : include> 태그가 있지만 diazo를 사용할 때 해당 태그는 모두 < include>로 바뀌 었습니다. mode = "raw"로 설정 한 경우에도 마찬가지입니다.

나는 ungly 해결 방법을 발견했습니다

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

그러나 < 포함을> 태그 < ESI에 의해 대체되지 않습니다 html로이 모드 = "원시"로 넣을 경우 등이 있습니다.

아이디어가 있으십니까?

대단히 감사합니다.

+1

mode = "raw"는 다른 규칙에 의해 끌어온 콘텐츠의 계속 처리를 방지합니다. 특히 콘텐츠 드롭 및 바꾸기 규칙. mode = "raw"로 문제가 해결되면 규칙 세트를 검토하여 악의적 인 존재인지 확인해야합니다. – SteveM

+0

실제로 표준 규칙 (앞에 붙이기 등등)을 사용할 때, 태그는 mode = "raw"를 사용하더라도 항상 으로 바뀝니다. 내 게시물에서 내가 언급 한 해결 방법을 찾았지만 콘텐츠를 로 이동하려고 할 때 작동하지 않습니다. 이 경우 내 태그가 다시 대체됩니다. – martronic

답변

2

원시 모드로 원시 XSL을 처리하려면 xsl : template 태그에 method = "raw"를 추가해야합니다. 템플릿 태그에는 method = "raw"와 default (method 속성 없음)의 두 가지 버전이 필요할 수 있습니다.

XSL의 템플릿은 해당 메소드가 일치하는 경우에만 일치합니다. 적용 템플리트 태그에 지정된 적용에 메소드가 없으면 메소드는 "기본값"입니다.

Diazo에서 'mode = "raw"'를 지정하면 method = "raw"를 지정하지 않은 XSL 템플릿을 포함하여 대부분의 사후 처리를 건너 뛰는 apply template 호출에 method = "raw" 노골적인".

관련 문제