2026, 새로운 도약을 시작합니다.

[code][/code] 즉 highlight에 관한 질문.. 채택완료

sir 처럼 [ code]와[ /code]로 감싼 부분을 하이라이팅처리 해주고 싶어서

여기서 검색해서 길호넷에서 만드신걸 가져다 적용해봤는데요..

https://sir.kr/so_54forum/130

이것입니다.

근데 보이는건 

3732069401_1677913369.5584.png

이런식으로 보입니다.

전 그냥 검은색 바탕에 기본 글씨체로 예쁘게 나오길 바랬는데 흠..

어떻게 해야 될까요?
나랴이 빌더 쓰는데 혹시 나리야 빌더에서 간섭이 일어난걸까요?

답변 7개

채택된 답변
+20 포인트

<?php echo get_view_thumbnail($view['content']); ?>을

Copy

이렇게 넣고 사용하세요.

사용할 때에는

'['code']' ~ '['/code']' 또는 '['code-html']' ~ '['/code']'이런식으로 하시면 됩니다.('은 제외)

로그인 후 평가할 수 있습니다

답변에 대한 댓글 5개

답변 감사합니다..
알려주신대로 적용해봤는데 여전히 글씨 색이 안나오고
언어감지도 none네요 ㅠㅠ
[ code]만 인식되고 [ code-c++]은 인식이 안되고 ㅠㅠ
http://minyho.iptime.org/download/prism.js
http://minyho.iptime.org/download/prism.css
이것은 적용을 하셨나요? 다른 것으로 하면 안됩니다.
http://minyho.iptime.org/download/prism.js
http://minyho.iptime.org/download/prism.css
/js/에 넣고

view.skin.php
<?php
~
?>
아래에 추가 하세요.
[code]
<link rel="stylesheet" href="<?php echo G5_JS_URL; ?>/prism.css">
<script src="<?php echo G5_JS_URL; ?>/prism.js"></script>
[/code]
나리야 빌더인지 테마를 쓰고 있어서 nariya/app/prism/에다 주신 파일 넣었어요.. 올려주신 소스도 적용해볼게용
채택 감사 합니다.

댓글을 작성하려면 로그인이 필요합니다.

thumb-1954383429_1678405633.5924_730x362.png

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

정말 정성스런 답변 감사합니다 ^^
많은 도움 되었어요
아무래도 언어감지는 [code=c]이런식으로 해서 하는거 같은데
C언어라고 인식하면서도 코드 색상이 입혀지지 않는 건 나리야에서 물어보든지
prism을 다시 구성해보든지 해야 될거 같아요..
다시 한번 감사합니다 ^^
색상과 언어는([code-html])아래 코드를 넣어야 됩니다.
<?php echo preg_replace(['#\[code\]|\[code-(.+?)\]#', '#\[/code\]#'], ['<pre class="language-php"><code class="language-$1">', '</code></pre>'], na_view($view)); ?>

댓글을 작성하려면 로그인이 필요합니다.

skin/board/basic에서 일단 해 보세요.

thumb-1954383429_1678235858.3986_730x450.png

thumb-1954383429_1678235873.2995_730x529.png

로그인 후 평가할 수 있습니다

답변에 대한 댓글 5개

주신 소스로 강제적으로 view.skin.php에서 작업하고 보면 일단 php로 언어인식이 되버리긴 해도 되거든요..
근데 같은 prism인데도 나리야꺼 그대로 위 올려드린 소스로 쓰면 글짜 색상이 표현이 안되고 텍스트로 인식하더라구요 그래서 재문의 한거긴 합니다 ㅠㅠ
prism홈에서 css, js 컴파일 할 때 항목 선택을 어떻게 하느냐에 따라서 많이 달라집니다.
https://prismjs.com/download.html#themes=prism-okaidia&languages=markup+css+clike+javascript+basic+c+csharp+cpp+cilkc+cilkcpp+cmake+cobol+css-extras+csv+diff+excel-formula+fsharp+fortran+git+ini+java+javadoc+javadoclike+json+json5+jsonp+lua+makefile+markup-templating+nasm+nginx+pascal+perl+php+phpdoc+php-extras+python+qsharp+regex+ruby+vbnet+visual-basic+xml-doc+xquery+yaml&plugins=line-highlight+line-numbers+wpd+file-highlight+show-language+jsonp-highlight+highlight-keywords+inline-color+data-uri-highlight+toolbar+copy-to-clipboard+download-button+diff-highlight+filter-highlight-all

이렇게도 해보고 모든 언어 다 체크해서 해보고 했는데 안되서요 ..
왜 글씨에 색상이 안입혀지는지 왜 언어는 PlainText로 인식하는지 어흥..
알아 내긴 했어요..
나리야 테마 라이브러리에 처리 하는 부분에 기본값이 안들어가서 그렇더라구요..
그래서 기본값으로 php로 정해쥬니 나오긴 하는데
c언어인데 php로 나오네요 ㅋㅋ 그래서 [code=c++] 하니 c로 나오긴 하는데 글씨 색은 또 안나오더라구요 그래서 그냥 나두긴 했는데 ㅠㅠ
NB-Basic/view.skin.php
<script src="<?php echo G5_JS_URL; ?>/viewimageresize.js"></script>
<link rel="stylesheet" href="<?php echo G5_JS_URL; ?>/prism.css">
<script src="<?php echo G5_JS_URL; ?>/prism.js"></script>

<!--?php echo get_view_thumbnail(na_view($view)); // 글내용 출력 ?-->
<?php echo preg_replace(['#\[code\]|\[code-(.+?)\]#', '#\[/code\]#'], ['<pre class="language-php"><code class="language-$1">', '</code></pre>'], na_view($view)); ?>

댓글을 작성하려면 로그인이 필요합니다.

thumb-1954383429_1678162970.4963_730x404.png

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

그래도 안되네요 none로 나와요 희안하네요 ㅎㅎ
나리야 테마인지가 강력한가 ㅜㅜ
이제야 발견된 사실인데..
보드 스킨에 view.skin.php에는 echo get_view_thumbnail(na_view($view)); 이게 있는데요
na_view 함수를 보니 na_content 함수를 부르는게 있고 여기보니

[code]
//Show Contents
function na_content($str) {
$str = na_url_auto_link($str);
$str = preg_replace_callback("/{(첨부|attach)\:([^}]*)}/is", "na_callback_attach", $str); // Attach
$str = preg_replace_callback("/{(지도|map)\:([^}]*)}/is", "na_callback_map", $str); // Map
$str = preg_replace_callback("/{(동영상|video)\:([^}]*)}/is", "na_callback_video", $str); // Video
$str = preg_replace_callback("/{(아이콘|icon)\:([^}]*)}/is", "na_callback_icon", $str); // FA Icon
$str = preg_replace_callback("/{(이모티콘|emo)\:([^}]*)}/is", "na_callback_emo", $str); // Emoticon
$str = preg_replace_callback("/\[soundcloud([^\]]*)\]/is", "na_callback_soundcloud", $str); // SoundCloud
$str = preg_replace_callback("/(\[code\]|\[code=(.*)\])(.*)\[\/code\]/iUs", "na_syntaxhighlighter", $str); // SyntaxHighlighter

return $str;
}

[/code]
이렇게 되어있는데 여기서 가르키는 na_syntaxhighlighter 함수는 이렇네요
[code]
//Syntaxhighlighter
function na_syntaxhighlighter($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("&nbsp;", " ", $str);
$str = str_replace("/</", "&lt;", $str);
$str = str_replace("/[/", "&lsqb;", $str);
$str = str_replace("/{/", "&lcub;", $str);

if(!$str)
return;

$brush = isset($m[2]) ? strtolower(trim($m[2])) : 'html';
//$brush_arr = array('css', 'js', 'jscript', 'javascript', 'php', 'xml', 'xhtml', 'xslt', 'html');
//$brush = ($brush && in_array($brush, $brush_arr)) ? $brush : 'html';

na_script('code');

//return '<pre class="brush: '.$brush.';">'.$str.'</pre>'.PHP_EOL;
return '<div class="line-numbers"><pre><code class="language-'.$brush.'">'.$str.'</code></pre></div>'.PHP_EOL;
}
[/code]

여기서 또 na_script를 부르는게 있는데 그곳의 'code' 부분을 보니 이렇네요
[code]
} else if($id == 'code') {
if(!defined('NA_CODE')) {
define('NA_CODE', true);
/*
add_stylesheet('<link rel="stylesheet" href="'.NA_URL.'/app/syntaxhighlighter/styles/shCoreDefault.css">', -2);
$sh = '<script src="'.NA_URL.'/app/syntaxhighlighter/scripts/shCore.js"></script>'.PHP_EOL;
$sh .= '<script src="'.NA_URL.'/app/syntaxhighlighter/scripts/shBrushJScript.js"></script>'.PHP_EOL;
$sh .= '<script src="'.NA_URL.'/app/syntaxhighlighter/scripts/shBrushPhp.js"></script>'.PHP_EOL;
$sh .= '<script src="'.NA_URL.'/app/syntaxhighlighter/scripts/shBrushCss.js"></script>'.PHP_EOL;
$sh .= '<script src="'.NA_URL.'/app/syntaxhighlighter/scripts/shBrushXml.js"></script>'.PHP_EOL;
$sh .= '<script>var is_SyntaxHighlighter = true; SyntaxHighlighter.all(); </script>';
add_javascript($sh, 99);
*/
add_stylesheet('<link rel="stylesheet" href="'.NA_URL.'/app/prism/prism.css">', -2);
$sh = '<script src="'.NA_URL.'/app/prism/prism.js"></script>'.PHP_EOL;
$sh .= '<script>var is_SyntaxHighlighter = true;</script>';
add_javascript($sh, 0);
}
} else if($id == 'bgvideo') {

[/code]

prism을 쓰긴 하는거 같은데 왜 어째서 언어 감지를 못하고 Plain text로 인식되는지 모르겠습니다 ㅜㅜ

댓글을 작성하려면 로그인이 필요합니다.

33282748_1678003914.69.png

prism 사용하세요. 좋아요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 6개

지금 사용중인 테마가 나리야인데 prism을 넣어두시긴 했더라구요
그래서 테마를 받아서 적용도 해봤는데 올려주신 스샷처럼 글씨 색이 입혀지진 않네요..
어떻게 해야 언어를 감지하는지 모르겠어요 ㅠㅠ
http://minyho.iptime.org/download/prism.js
http://minyho.iptime.org/download/prism.css
이것 다운해서 사용해 보세요. prism사이트에서 선택해서 받은 것입니다
그리고 view의 bo_v_con에 preg_replace(['#\[code\]|\[code-(.+?)\]#', '#\[/code\]#'], ['<pre class="language-php"><code class="language-$1">', '</code></pre>'], get_view_thumbnail($view['content'])) 적용 하세요.
들레아빠님 감사합니다
근데 view의 bo_v_con이 어디인가요
view.skin.php 말씀인건가요?
정확히 모르겠네요 ^^;;
네 view.skin.php에만 있어요.
view.skin.php에 bo_v_con 이라는 php 변수가 없는거 같은데 조금 더 자세히 알수 있을까요 ^^;;
view.skin.php에 bo_v_con 이라는 php 변수가 아니고,
<!-- 본문 내용 시작 { -->
<div id="bo_v_con"><?php echo get_view_thumbnail($view['content']); ?></div>
<?php //echo $view['rich_content']; // {이미지:0} 과 같은 코드를 사용할 경우 ?>
<!-- } 본문 내용 끝 -->
이 부분을 말합니다.

댓글을 작성하려면 로그인이 필요합니다.

https://sir.kr/g5_plugin/9655

좀 고쳐야 할 부분이 발견되긴 했는데... 그럭저럭...

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

답변 감사합니다^^
사용중인 테마가 prism을 사용중이라 간섭현상이 생기는지 전혀 적용안되네요
이궁 ㅜㅜ

댓글을 작성하려면 로그인이 필요합니다.

html 부분만 따로 떼어내 샘플파일을 만들고 동일한 코드를 적용해보면

기본적으로 적용이 안되는지

솔루션에 이식했을때 적용이 안되는지 확인할수 있습니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고