Syntax Hightlight 적용하기
그누보드 5.4버전에서 추가된 기능 중 하나인 훅을 이용하였습니다. 따라서 훅을 지원하지 않는 버전에서는 작동되지 않습니다.
extend 폴더에 아무이름.php 로 아래 내용을 입력하시면 됩니다.
글 작성시 [ code] 와 [ /code] 사이의 텍스트에 적용됩니다.
( [ code 에서 중간 공백은 지워주세요.)
[code]
<?
function kh_tail_sub()
{
global $wr_id;
// 게시판에서 view.php 호출할때 적용하도록
if($_SERVER['SCRIPT_NAME'] != '/bbs/board.php' || !$wr_id) return;
?>
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.6/styles/a11y-dark.min.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.6/highlight.min.js"></script>
<script>
function sh(id) {
var $id = $("#" + id);
if ($id.length > 0) {
var html = $id.html();
html = html.split("[ code]").join("<pre><code>");
html = html.split("[ /code]").join("</pre></code>");
$id.html(html);
$id.find("pre>code").each(function() {
var text = $.trim($(this).text());
$(this).text(text);
});
}
}
$(function() {
sh("bo_v_con");
hljs.initHighlighting();
});
</script>
<?
}
add_event('tail_sub', 'kh_tail_sub', G5_HOOK_DEFAULT_PRIORITY);
?>
[/code]
* 참고
- https://highlightjs.org/
- https://sir.kr/g5_tip/4897
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기
댓글 15개
5.4버전에서 짧은 주소 사용하는 경우는 아래 부분을 수정해야 되겠군요.
if($_SERVER['SCRIPT_NAME'] != '/bbs/board.php' || !$wr_id) return;
하긴.. rewriterule 로 변경하는거니..;; 제가 생각이 짧았네요ㅠ
줄바꿈이 안되고 한줄로 나오는데 해결책이 있을런지요?
[ code]......[ /code] 이렇게 감쏴 줬는데 소스가 그대로 나오네요.
음...뭐가 문제 일까요?