그누보드 코드블럭 Prism.JS적용(HOOK)
내용변환(conv_content -> html_purifier)시 hook을 사용해서 prismjs를 적용
[참고] https://prismjs.com/index.html#examples
1. 그누보드 extend폴더 안에 아래 파일 생성
prism.extend.php
[code]
add_event('tail_sub', 'prism_tail_sub', G5_HOOK_DEFAULT_PRIORITY);
add_replace('html_purifier_result', 'prism_html_purifier_result', 10, 3);
function prism_script(){
add_stylesheet('<link rel="stylesheet" href="'.G5_PLUGIN_URL.'/prism/prism.css">', -2);
$sh = '<script src="'.G5_PLUGIN_URL.'/prism/prism.js"></script>'.PHP_EOL;
$sh .= '<script>var is_SyntaxHighlighter = true;</script>';
add_javascript($sh, 0);
}
function prism_tail_sub(){
global $wr_id;
if($_SERVER['SCRIPT_NAME'] != '/bbs/board.php' || !$wr_id) return;
prism_script();
}
function PrismJS($m) {
$str = isset($m[3]) ? $m[3] : '';
if(!$str)
return;
$str = stripslashes($str);
$str = preg_replace("/(<br>|<br \/>|<br\/>|<p>)/i", "\n", $str);
$str = preg_replace("/(<div>|<\/div>|<\/p>)/i", "", $str);
$str = str_replace(" ", " ", $str);
$str = str_replace("/</", "<", $str);
$str = str_replace("/[/", "[", $str);
$str = str_replace("/{/", "{", $str);
if(!$str)
return;
$brush = isset($m[2]) ? strtolower(trim($m[2])) : 'html';
//prism_script();
return '<div class="line-numbers"><pre><code class="language-'.$brush.'">'.$str.'</code></pre></div>'.PHP_EOL;
}
function prism_html_purifier_result($str){
$content = preg_replace_callback("/(\[code\]|\[code=(.*)\])(.*)\[\/code\]/iUs", "PrismJS", $str); // PrismJS
return $content;
}
[/code]
2. https://prismjs.com/download.html 접속해서 테마, 언어, 기능 다운로드(prism.js, prism.css)

3. 다운로드한 파일(prism.js, prism.css)을 플러그인 폴더에 업로드

4. Prism 의 Okaidia 테마적용

댓글 2개
와우 멋지네요
바로 적용해보러 가겠습니다.
나중에 한번^^
게시판 목록
그누보드5 팁자료실
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 공지 | 3년 전 | 4417 | ||
| 2244 |
|
2년 전 | 2217 | |
| 2243 | 2년 전 | 2139 | ||
| 2242 | 2년 전 | 2710 | ||
| 2241 | 2년 전 | 1921 | ||
| 2240 | 2년 전 | 3401 | ||
| 2239 | 2년 전 | 2819 | ||
| 2238 |
welcome
|
2년 전 | 1801 | |
| 2237 | 2년 전 | 1485 | ||
| 2236 | 2년 전 | 1820 | ||
| 2235 |
teradesign
|
2년 전 | 2252 | |
| 2234 | 2년 전 | 1781 | ||
| 2233 | 2년 전 | 2006 | ||
| 2232 | 2년 전 | 2524 | ||
| 2231 | 2년 전 | 1971 | ||
| 2230 | 2년 전 | 2432 | ||
| 2229 | 2년 전 | 2350 | ||
| 2228 |
|
2년 전 | 3481 | |
| 2227 | 2년 전 | 3015 | ||
| 2226 | 2년 전 | 1475 | ||
| 2225 | 2년 전 | 1774 | ||
| 2224 | 2년 전 | 1986 | ||
| 2223 | 2년 전 | 2157 | ||
| 2222 | 2년 전 | 1943 | ||
| 2221 | 2년 전 | 2315 | ||
| 2220 | 2년 전 | 3402 | ||
| 2219 | 2년 전 | 2501 | ||
| 2218 | 2년 전 | 2557 | ||
| 2217 |
|
2년 전 | 2089 | |
| 2216 | 2년 전 | 2705 | ||
| 2215 | 2년 전 | 2526 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기