Skip to content

CHICPRO

  • Life Log
  • Cycling Log
  • Photo Log
    • Portrait
    • Landscape
    • Flower
    • Etc
  • Coding Log
  • Information

티스토리 블로그에 SyntaxHighlighter 적용

2013-10-06 by 편리

다른 분들의 블로그를 가끔 방문할 때면 코드가 예쁘게(?) 나오는 걸 볼 때가 있다. ‘나도 저런 거 하고 싶다’ 라는 생각을 했는데.. 그런 기능이 티스토리 블로그에도 적용이 가능하다는 걸을 알고 피곤한 몸뚱이를 이끌고 작업을 시작.. 근 1시간 가량 소비가 된 것 같다. 크롬과 파이어폭스 그리고 IE에서 가능하면 같은 모습으로 보여지길 원해서 잘 하지도 못하는 정규식 붙들고 사투를 벌이다 보니 만족할만한 결과물이 나온 것 같다. 

참고글 : http://sekainonaka.tistory.com/173

작업에 필요한 파일은 http://alexgorbatchev.com/SyntaxHighlighter/download/ 에서 다운로드 했다. 다운로드 한 파일의 압축을 풀어보면 scripts 라는 폴더와 styles 폴더가 있다. 이 두 폴더의 파일을 티스토리 관리자모드에서 업로드 해준다. 그런 다음 아래의 코드를 스킨편집에서 <title></title> 아래에 추가해준다.

<!-- SyntaxHighlighter 추가 코드 시작 -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript" src="./images/shCore.js"></script>
<script type="text/javascript" src="./images/shLegacy.js"></script>
<script type="text/javascript" src="./images/shAutoloader.js"></script>
<script type="text/javascript" src="./images/shBrushAppleScript.js"></script>
<script type="text/javascript" src="./images/shBrushAS3.js"></script>
<script type="text/javascript" src="./images/shBrushBash.js"></script>
<script type="text/javascript" src="./images/shBrushColdFusion.js"></script>
<script type="text/javascript" src="./images/shBrushCpp.js"></script>
<script type="text/javascript" src="./images/shBrushCSharp.js"></script>
<script type="text/javascript" src="./images/shBrushCss.js"></script>
<script type="text/javascript" src="./images/shBrushDelphi.js"></script>
<script type="text/javascript" src="./images/shBrushDiff.js"></script>
<script type="text/javascript" src="./images/shBrushErlang.js"></script>
<script type="text/javascript" src="./images/shBrushGroovy.js"></script>
<script type="text/javascript" src="./images/shBrushJava.js"></script>
<script type="text/javascript" src="./images/shBrushJavaFX.js"></script>
<script type="text/javascript" src="./images/shBrushJScript.js"></script>
<script type="text/javascript" src="./images/shBrushPerl.js"></script>
<script type="text/javascript" src="./images/shBrushPhp.js"></script>
<script type="text/javascript" src="./images/shBrushPlain.js"></script>
<script type="text/javascript" src="./images/shBrushPowerShell.js"></script>
<script type="text/javascript" src="./images/shBrushPython.js"></script>
<script type="text/javascript" src="./images/shBrushRuby.js"></script>
<script type="text/javascript" src="./images/shBrushSass.js"></script>
<script type="text/javascript" src="./images/shBrushScala.js"></script>
<script type="text/javascript" src="./images/shBrushSql.js"></script>
<script type="text/javascript" src="./images/shBrushVb.js"></script>
<script type="text/javascript" src="./images/shBrushXml.js"></script>
<link type="text/css" rel="stylesheet" href="./images/shCore.css"/>
<link type="text/css" rel="stylesheet" href="./images/shThemeDefault.css"/>
<script type="text/javascript">
jQuery.noConflict();
jQuery(document).ready(function(){
    var sh_Pattern = /brushs*:/gi;

    jQuery("blockquote").each( function() {
        if (jQuery(this).attr('class').search(sh_Pattern) > -1) // class brush 체크
        {
            var temp = jQuery(this).html(); //  내용 복사
            temp = temp.replace(/n/gi, "");
            temp = temp.replace(/r/gi, "");
            temp = temp.replace(/<P><BRs?/?></P>/gi, "n");
            temp = temp.replace(/<BRs?/?>/gi, "n");
            temp = temp.replace(/<P>/gi, "");
            temp = temp.replace(/</P>/gi, "n");
            temp = temp.replace(/(&nbsp;){2}/gi, "t");
            temp = '<pre class="'+ jQuery(this).attr('class') + '">'+temp+'</pre>';
            //temp = '<script type="syntaxhighlighter" class="'+ jQuery(this).attr('class') + '"><![CDATA['+temp+']]></script>'
            jQuery(this).after(temp);   // 뒤에 새 작성된 pre 또는 script태그로 붙인다.
            jQuery(this).remove();      //  기존의 인용태그 삭제
        }
    });

    /* SyntaxHighlighter 부분 */
    SyntaxHighlighter.defaults['toolbar'] = false;    // 툴바 안 보기
    SyntaxHighlighter.all();
});
</script>
<!-- SyntaxHighlighter 추가 코드 끝 -->

코드를 추가했으면 스킨 파일을 저장한다. 그런 다음 포스트를 작성할 때 “인용구” 기능을 이용해서 코드를 추가해 주면 된다. 인용구는 글쓰기 에디터 화면의 상단에 쌍따옴표(단축키는 Ctrl + Q) 를 클릭해서 blockquote 태그를 추가 한다. 에디터 오른쪽 상단의 HTML 체크박스를 클릭해 html 모드로 접속 후 blockquote 태그를 찾아 class에 brush:php 와 같이 입력해주면 된다. http://alexgorbatchev.com/SyntaxHighlighter/manual/brushes/ 페이지를 참고해 해당되는 언어를 brush:html 과 같이 지정해 주면된다.

이제 포스트에 코드를 넣을 때 좀 더 에쁘게 보여줄 수 있게 돼서 좋다. ^________^

 

22:48추가 => <blockquote class=”brush:html tx-quote-tistory”> 와 같은 순서로 class를 추가해줘야  하는군요. brush가 처음에 오지 않으면 적용이 안되는 듯 한데.. 이것도 수정을 해보고 싶지만.. 그러면 왠지 일이 너무 커질 듯..

 

00:07추가 => 심각한 오류가 있어 다시 코드 수정.. brush 클래스를 체크하는 부분에 오류가 있어 test() 대신 search() 사용.

Post navigation

Previous Post:

[PHP] 휴대폰번호 체크 정규식

Next Post:

SyntaxHighlighter 때문에 잠을 못자는구나

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Recent Posts

  • php 배열 연산에서 + 와 array_merge 의 차이
  • pcntl_fork 를 이용한 다중 프로세스 실행
  • 아이폰 단축어를 이용하여 주중 공휴일엔 알람 울리지 않게 하기
  • 구글 캘린더 전체일정 재동기화
  • OpenLiteSpeed 웹서버에 HTTP 인증 적용
  • OpenLiteSpeed 웹어드민 도메인 연결
  • WireGuard를 이용한 VPN 환경 구축
  • Ubuntu 22.04 서버에 OpenLiteSpeed 웹서버 세팅
  • 맥 vim 세팅
  • 우분투 시스템 터미널쉘 zsh 로 변경

Recent Comments

  • 편리 on 업무관리용 그누보드 게시판 스킨
  • 임종섭 on 업무관리용 그누보드 게시판 스킨
  • 캐논 5D 펌웨어 | Dslr 펌웨어 업그레이드 방법 82 개의 베스트 답변 on 캐논 EOS 30D 펌웨어 Ver 1.0.6 , EOS 5D 펌웨어 Ver 1.1.1
  • Top 5 캐논 5D 펌웨어 Top 89 Best Answers on 캐논 EOS 30D 펌웨어 Ver 1.0.6 , EOS 5D 펌웨어 Ver 1.1.1
  • 편리 on 워드프레스 애니메이션 gif 파일을 mp4로 변환하여 출력하기
  • 임팀장 on 워드프레스 애니메이션 gif 파일을 mp4로 변환하여 출력하기
  • 편리 on Notepad++ NppFTP 플러그인 수동 설치
  • paul-j on Notepad++ NppFTP 플러그인 수동 설치
  • YS on Windows 10 iCloud 사진 저장 폴더 변경
  • 편리 on Docker를 이용한 Centos7 + httpd + php 5.4 개발환경 구축

Meta

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org
© 2025 CHICPRO | Built using WordPress and SuperbThemes