2012-07-02 2 views
4

Blogger에서 코드의 구문 강조를 위해 Highlight.js 라이브러리를 사용하고 있으며 Lisp 코드를 올바르게 강조 표시하지 않습니다.highlight.js가 언어 클래스를 무시하는 이유는 무엇입니까?

<pre><code class="lisp"> 
    (coerce (average 1 2 3 4) 'float) 
    > 2.5 
</code></pre> 

디자인 템플릿에서 닫는 </head> 전에 : Blogger의 기사에서

<script src='http://yandex.st/highlightjs/7.0/lisp.min.js' ></script> 
<script src='http://yandex.st/highlightjs/7.0/highlight.min.js' ></script> 
<link href='http://yandex.st/highlightjs/7.0/styles/github.min.css' rel='stylesheet' /> 
<script type='text/javascript'> 
    hljs.initHighlightingOnLoad(); 
</script> 

강조가 파손 된 문서를 열면은 방화범은 HTML 패널이 표시됩니다 :

<pre> 
    <code class="lisp ruby"> // WTF 
    ... stylized RUBY tokens here ... 
    </code> 
</pre> 

일부 코드 단편에서 <code class="lisp undefined"> 그리고 전혀 강조 표시를 거부합니다. Blogger를 사용하고 있기 때문에 특히 이미 게시 된 언어 팩이있는 경우 어디에도 아무 것도 다운로드하지 않으려 고합니다. Lisp이 알아볼 수있게하기 위해 내가해야 할 마술은 무엇인가?

답변

6

일반적인 언어에 대한 많은 정의가 포함 된 호스트 된 버전을 사용하고 있지만 Lisp은 그 중 하나가 아닙니다. 전체 목록은 download page을 참조하십시오. 이 경우 클래스 속성의 "lisp"단어는 highlight.js에 알려지지 않으며 자동으로 언어를 감지하려고 시도합니다.

그러나 패키지에 Lisp가 포함되어 있어도 Lisp가 아닌 출력 (> 2.5)이 포함되어 있으며 highlight.js에있는 Lisp의 정의가 이것을 허용하지 않으므로 조각을 강조 표시하지 않습니다.

+0

그래서, 메인 스크립트가 실행되기 전에'lisp.min.js'를 포함하는 것이 효과가 없을 것이라고 생각하십니까? 그리고 표준 배치 대신 highlight.js의 모든 언어 관련 부분을 포함시켜이 문제를 해결할 수는 없습니까? – hijarian

+0

죄송합니다. lisp.min.js를 첫 줄에 링크 한 것을 완전히 놓쳤습니다 :-). 그러나 여전히 URL은 잘못되어 있습니다 (http : // yandex.st/highlightjs/7.0/languages ​​/ lisp.min.js이어야합니다). highlight.min.js 뒤에 *가 있어야합니다. – isagalaev

+0

남자, 당신은 정말로 당신의 프로젝트 페이지 어딘가에 언급해야합니다. 특히 주 스크립트 인 _ 추가 _ 언어를 포함 할 수 있습니다. 나는 방금 하스켈, 1C 등의 12 개 언어를 포함 시켰고 매력처럼 작동했습니다. 팁 주셔서 감사. 그건 그렇고 : highlight.js는 실제로 선언 된 언어에 대해 예기치 않은 토큰을 만났을 때 구문 분석을 완전히 중단합니다. 선언과 관련이 없습니다. – hijarian

관련 문제