2014-06-05 2 views
2

나는 온라인 검색을 시도했지만이 주제를 다룬 주제가 매우 부족하고 - PageDown's Google Code page에 관한 정보가 부족하여 주제가 너무 많지 않습니다. 훨씬 덜 포괄적 인)Pagedown의 PreBlockGamut으로 연결하기

preBlockGamut 또는 preSpanGamut 중 하나를 사용하여 PageDown에 사용자 지정 서식을 추가하려고합니다. 어느 쪽도 제가 수행하기를 바라고 있지 않습니다.

내가하려는 것은 간단해야합니다 : 두 개의 물결표 사이에 나타나는 텍스트를 <del> 태그 사이에 서식을 지정하고 싶습니다.

나는 가장 가까운 일을 제공하는이 하나, 지금까지 preBlockGamut 다양한 방법을 시도 내가 무엇을 찾고 있어요 : 예상대로

converter.hooks.chain("preBlockGamut", function (text, rbg) { 
    return text.replace(/~(.*?)~/, function (whole, inner) { 
    return "<del>" + inner +"</del>"; 
    }); 
}); 

이 그것을 둘러싸는 점에서, 단지 약간 작동 먼저 텍스트의 인스턴스는 <del>T{inner text}</del>T입니다. 이것은 첫 번째 인스턴스에서만 발생하며 T의 어디서 왔는지도 모릅니다. 코드에서 알 수있는 한 정규 표현식이나 대체 코드 어디에도 없습니다.

나는 블록 레벨 명령문에 preBlockGamut을 사용해야한다는 것을 알고 있으며, 더 나은 행운이없는 preSpanGamut과 유사한 접근법을 시도했다.

이 문제에 대한 통찰력을 제공 할 수있는 경험이있는 사람이 있습니까? 나는 분명히 잘못된 것을하고있다. 그러나 나는 어디에서 오는지 알 수 없다.

답변

2

PageDown의 파일을 보면서 잠시 머문 후 문제의 출처를 발견했습니다.

// attacklab: Replace ~ with ~T 
// This lets us use tilde as an escape char to avoid md5 hashes 
// The choice of character is arbitray; anything that isn't 
// magic in Markdown will work. 
text = text.replace(/~/g, "~T"); 

preBlockGamut 후크 다음 <del>T{inner text}</del>T로서 해석 ~T{inner text}~T되고 ~{inner text}~의 결과에 영향을 걸릴 것 전에이 실행 :

Markdown.Converter.js는 다음과 같은 라인을 가지고있다.