2010-08-24 5 views
3

구문 강조 표시 HTML에 http://softwaremaniacs.org/soft/highlight/en/을 사용하고 있습니다. WordPress에서 코드를 가져 오는 PHP 루프가 있습니다. 내 코드와 다음 루프에서 pre/code 태그를 사용하여 Wordpress에서 코드를 가져옵니다. 내가 가져 오기있어 내 PHP 페이지의 상단에 웹 페이지에 구문 강조 표시 추가 (HTML/PHP)

<?php while (have_posts()) : the_post(); ?> 
<p><i><?php the_date(); echo "<br />"; ?> </p></i> 
<h2><?php the_title(); ?></h2>  
<p><?php the_content(); ?></p> 
<?php endwhile;?> 

...

<script type="text/javascript" src="highlight.pack.js"></script> 
<script type="text/javascript"> 
hljs.initHighlightingOnLoad(); 
</script> 

페이지에 test.html를 잘 작동하지만 내 페이지 나던 내 웹 서버에 보인다. 동적으로 콘텐츠를 가져 오는 방식과 관련이 있습니까? 이 일을 어떻게하면 좋을까요?

+0

실제 상황을 보지 않고 귀하의 웹 사이트와 어떤 관련이 있는지 말할 수 없습니다. 링크를 게시 할 수 있습니까? – s4y

답변

8

소스 코드

function initHighlightingOnLoad() { 
    var original_arguments = arguments; 
    var handler = function(){initHighlighting.apply(null, original_arguments)}; 
    if (window.addEventListener) { 
     window.addEventListener('DOMContentLoaded', handler, false); 
     window.addEventListener('load', handler, false); 
    } else if (window.attachEvent) 
     window.attachEvent('onload', handler); 
    else 
     window.onload = handler; 
} 

에서 그래서이 플러그인

hljs.initHighlighting.called = false; 
hljs.initHighlighting(); 
를 속여 다시 한 번 하지만

당신 호출 방법을 작동합니다

데모 페이지에서 테스트 해 보았습니다. 꽤 잘 작동하는 것 같습니다.

페이지에 새 요소를 삽입 한 후이 두 줄을 호출해야 할 수도 있습니다.

3

가능한 다른 방법은 : PHP에서 구문 강조를 할 기 GeSHi를 사용합니다. their documentation에서

예 :

// 
// Include the GeSHi library// 
include_once 'geshi.php'; 
//// Define some source to highlight, a language to use 
// and the path to the language files// 
$source = '$foo = 45; 
for ($i = 1; $i < $foo; $i++){ 
    echo "$foo\n"; --$foo; 
}';$language = 'php'; 
// 
// Create a GeSHi object// 
$geshi = new GeSHi($source, $language); 
// 
// And echo the result!// 
echo $geshi->parse_code(); 
0

당신은 FSHL (Fast Syntax Highlighter)을 사용할 수 있습니다, 그것은 PHP로 작성, 그것이 잘 구성, 스타일 및 확장 할 수 있습니다, 일반적인 언어를 지원합니다. 시도 해봐.

동적으로로드 된 콘텐츠는 자바 스크립트를 사용할 필요가없는 것보다 서버에 의해 이미 강조 표시되어 있어야합니다.

클라이언트 쪽 강조 사용을 주장하는 경우 Alex Gorbatchev의 SyntaxHighlighter을 사용하는 것이 좋습니다. 전체 기능이며 매우 인기가 있으며 추가 PHP 코드가 필요하지 않습니다.