채택완료
[code][/code] 즉 highlight에 관한 질문..
sir 처럼 [ code]와[ /code]로 감싼 부분을 하이라이팅처리 해주고 싶어서
여기서 검색해서 길호넷에서 만드신걸 가져다 적용해봤는데요..
이것입니다.
근데 보이는건

이런식으로 보입니다.
전 그냥 검은색 바탕에 기본 글씨체로 예쁘게 나오길 바랬는데 흠..
어떻게 해야 될까요?
나랴이 빌더 쓰는데 혹시 나리야 빌더에서 간섭이 일어난걸까요?
답변 7개 / 댓글 21개
채택된 답변
+20 포인트
<?php echo get_view_thumbnail($view['content']); ?>을
Copy
<?php $str = preg_replace("/(<br>|<br\/>|<p>)/i", "\n", get_view_thumbnail($view['content']));echo preg_replace(['#\[code\]|\[code-(.+?)\]#', '#\[/code\]#'], ['<pre class="language-php"><code class="language-$1">', '</code></pre>'], $str); ?>
이렇게 넣고 사용하세요.
사용할 때에는
'['code']' ~ '['/code']' 또는 '['code-html']' ~ '['/code']'이런식으로 하시면 됩니다.('은 제외)
답변에 대한 댓글 5개
http://minyho.iptime.org/download/prism.js
http://minyho.iptime.org/download/prism.css
이것은 적용을 하셨나요? 다른 것으로 하면 안됩니다.
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]
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]
답변에 대한 댓글 2개
답변에 대한 댓글 5개
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로 인식하는지 어흥..
이렇게도 해보고 모든 언어 다 체크해서 해보고 했는데 안되서요 ..
왜 글씨에 색상이 안입혀지는지 왜 언어는 PlainText로 인식하는지 어흥..
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)); ?>
<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)); ?>
답변에 대한 댓글 2개
이제야 발견된 사실인데..
보드 스킨에 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(" ", " ", $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';
//$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로 인식되는지 모르겠습니다 ㅜㅜ
보드 스킨에 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(" ", " ", $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';
//$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로 인식되는지 모르겠습니다 ㅜㅜ
답변에 대한 댓글 6개
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'])) 적용 하세요.
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'])) 적용 하세요.
좀 고쳐야 할 부분이 발견되긴 했는데... 그럭저럭...
답변을 작성하려면 로그인이 필요합니다.

알려주신대로 적용해봤는데 여전히 글씨 색이 안나오고
언어감지도 none네요 ㅠㅠ
[ code]만 인식되고 [ code-c++]은 인식이 안되고 ㅠㅠ