2013-04-02 2 views
2

dust.js 템플릿 엔진을 사용하고 있습니다. 기본 템플릿에는 부분 템플릿이 포함되어 있으며 문제는 dust.js가 포함 된 템플릿 파일의 모든 행을 다듬는 것입니다.dust.js 트리밍없이 partitial 포함

예를 들어, 기본 템플릿은 다음과 같습니다

<h1>{header}</h1> 
{>dust_cnt /} 

dust_cnt.dust은 다음과 같습니다

<div> 
    This is 
    the content 
</div> 

그리고 난으로 응답 렌더링 : res.render ('dust_template.dust를' {header : 'TEST OK'});

출력에 This isthe content 사이에 공백이 없다는 문제점. 같은 출력이 보인다 : 내가 넣어 모든 내용을 변경할 수 없습니다

TEST OK 

This isthe content 

{~ N} 또는 다른 구분 내가 그렇게 할 이유가 있다고 생각하지 않습니다.

http://linkedin.github.com/dustjs/에서 나는 GH- 166 - Added trimming of white spaces in dust templates configuration in the dust.compile (default option is still true)을 발견했습니다. 그러나 트리밍을 피하기 위해 옵션을 설정하는 방법을 찾을 수 없습니까?

dust.js를 (공간과 함께) 예상대로 렌더링하려면 어떻게해야합니까?

미리 감사드립니다.

+0

다음은 166 문제입니다 : https://github.com/linkedin/dustjs/pull/166 'compile'의 새로운 세 번째 매개 변수는'strip'이고'false'를 거기에 전달할 수 있습니다. – Kos

답변

3

좋아, 해결책을 찾았습니다. :)

dust.optimizers.format = function(ctx, node) { return node }; 

(또한 https://github.com/linkedin/dustjs/wiki/Dust-Tutorial#controlling-whitespace-suppression에)

이 기본 동작은 매우입니다 : 소스 코드에 파고 + 먼지의 GitHub의에서 문제를 확인 후 나는 템플릿의 노드의 서식을 방지하기 위해 다음과 같은 사용하기로 결정 위험 -는 GitHub의에서 언급 한 바와 같이이 예를 들어 심각한 문제가 발생할 수 있습니다

:

<script> 
//this will alert "test" 
alert("this is test"); 
</script> 

는 다음과 같이 표현 될 것인가

+0

와우, 믿을 수없는 기본 동작. 형사님께 감사드립니다. 이것이 많은 사람들을 공격하지 않으면 놀란다. – jarmod

0

이상한 점은 템플릿 파일을 수정하고 싶지 않다는 것입니다. 그러나 줄의 끝에 공백을 추가하여 덜 추한 방법으로이 문제를 해결할 수 있습니다 :

<div> 
    This is < add space here 
    the content 
</div> 

그냥 경우에 당신은 이것에 대한 진정한 해결책을 찾을 수 없습니다.

+0

마찬가지로 모든 콘텐츠 템플릿의 모든 행을 바꿀 수는 없지만 귀하의 노력에 감사드립니다. – Alexander

+0

해결 방안으로 추가 공간을 추가 할 때주의해야 할 점 중 하나는 편집자 중 일부가 옵션을 사용하여 저장시 후행 공백을 모두 없애고 후행 공백에 의존하는 파일을 파괴 할 수 있다는 것입니다. –