반응형

최근 디스토리 블로그의 에디터가 신버전으로 바뀌었습니다. 메뉴를 보던 도중 코드블럭 기능이 생겨서 한번 사용해 봤는데요. 소스코드는 입력이 되긴 하지만 그냥 밋밋하더군요. 그래서 이번에 다시 syntax highlight 기능이 되도록 설정을 해 봤습니다.

 

예전에 syntaxhighlighter 라는 스크립트를 설치한 적이 있었지만 이번에는 다른 스크립트를 찾아 봤습니다.

 

highlight.js 입니다. https://highlightjs.org/ 에서 다운 받을 수 있습니다.

 

이 스크립트를 추가하는 방법은 CDN 을 이용하는 방법과 직접 소스를 다운받아 자신의 블로그에 업로드하고 설정하는 방법이 있습니다.

자신의 블로그에 직접 파일을 업로드 할 수 없다면 CDN 을 이용한 설치만 가능합니다. 그리고 블로그의 HTML 직접 수정도 가능해야 이 스크립트를 설치할 수 있습니다.

 

위 스크린샷 화면의 "Get version XXXX" 라고 되어 있는 부분을 클릭하면 다음과 같은 화면이 나옵니다.

 

>

 

페이지의 상단부분에는 CDN 설정방법이 나와있습니다. 저는 아래쪽 jsdelivr 거를 썼는데 작동만 잘 되면 어느걸 써도 상관없습니다.

스크린샷 맨 아래 "style directory" 라는 곳을 클릭하면 style css 가 여러개 있는데 이중 자신의 맘에드는 css 를 선택해서 설치할 수 있습니다. 단 CDN 설치의 경우엔 .css 앞에 .min 을 붙여야 합니다.

예를 들어 내가 vs.css 라는 스타일을 쓰고 싶다면 첫째 줄 뒷부분에 있는 default.min.css 부분에  vs.min.css 라고 입력해 주면 됩니다. 메인페이지에서 여러 스타일을 직접 확인해 볼 수 있으니 참고하세요.

 

>

 

CDN 링크도 알았겠다. 이젠 블로그 스킨에서 HTML 만 수정해 주면 됩니다.

관리자 페이지에서 스킨편집 --> HTML 편집으로 들어 갑니다.

 

제가 추가한 소스코드 입니다.  CDN 부분은 그대로 복사해 넣은거고 마지막 줄만 추가 해 넣었습니다.

 

티스토리 에디터에서 '코드블럭' 을 선택해서 소스코드를 넣어준 경우 설치가 완료되면 바로 적용됩니다.

 

만일 CDN 을 이용하지 않고 직접 파일을 다운받아 설정해 준다면 위 스크린샷에서 보이는 '파일 업로드' 를 통해 파일을 업로드 하고 아래 처럼 설정 해 주면 됩니다.

<link rel="stylesheet" href="./images/atom-one-dark.css">
<script src="./images/highlight.pack.js"></script>
<script>hljs.initHighlightingOnLoad();</script>

(바로 위의 html 이 바로 highlight 가 적용된겁니다. 참고삼아 보세요.)

 

업로드할 파일은 highlight.pack.js 파일과 자신이 사용할 스타일 파일만 업로드 하면 됩니다.

위 예의 atom-one-dark.css 는 제 블로그에서 쓰는 스타일입니다. 다운받은 파일의 styles 디렉토리에서 자신이 사용할 스타일 파일을 업로드 하면 됩니다.

 

CDN 을 사용하지 않고 직접 파일을 블로그에 업로드해서 쓰는것의 장점은 좀 더 다양한 언어의 syntax highlight 가 가능하다는 것입니다.

CDN 으로 사용시 지원하는 프로그램언어는 24가지라고 합니다.

 

다운로드 페이지에서 사용할 언어를 선택해 다운로드 합니다

위 스크린샷이 다운로드 페이지 하단 부분입니다. 자신이 사용할 언어를 체크하고 아래의 다운로드 버튼을 누르면 프로그램을 다운 받을 수 있습니다. 상당히 많은 언어를 지원합니다.

 

많이 쓰이는 프로그램언어를 사용한다면 CDN 을 사용하는 방법으로 충분합니다만....직접 파일을 업로드 해서 설정한다고 해도 설정이 무척 간단해서 어렵지 않게 사용할 수 있을 겁니다.

 

반응형
SyntaxHighlighter는 블로그에 프로그램 소스코드를 보기좋게 해주는 프로그램입니다. 프로그래머분이고 블로그에 소스코드를 표시하려고 했던 분이라면 왠만하면 설치해 주는게 좋은 프로그램이지요. 실제로 보신분도 많으실 겁니다.

우선 이 프로그램은 자바스크립트와 css, 몇몇의 이미지로 구성되어 있습니다. 따라서 자신의 블로그에 이 프로그램을 설치하려면 최소한 블로그 사이트에 파일 업로드가 가능해야 합니다. 직접 사이트를 운영하신 분이야 당연히 가능할거고 이 글에서는 현재 이 블로그가 티스토리에 있는 관계로 티스토리를 기준으로 설치를 설명하겠습니다.

우선 파일을 다운 받습니다. 이 글을 쓰는 현재 최신버전은 2.0.320로서 이곳 에서 다운받을 수 있습니다.

다운받은 후 압축을 푼후에 디렉토리에 있는 모든 파일을 티스토리에 업로드 해야 합니다. 압축을 풀면 scripts, src, styles 디렉토리가 나오는데 티스토리의 관리페이지에서는 디렉토리째 업로드는 불가능하므로 직접 디렉토리들로 이동해서 거기 있는 모든 파일을 업로드 하세야 합니다. 또한 티스토리의 경우는 업로드하는 모든파일은 images 디렉토리로 업로드가 되는듯 합니다.


업로드페이지는 관리자 페이지의 스킨을 선택해서 들어 가면 됩니다.


파일업로드 버튼을 누르고 압축을 풀어놓은 디렉토리들을 이동해 가면서 모든 파일을 업로드 합시다.(압축해제 루트의 test.html 과 LGPLv3.txt 파일은 업로드 할 필요가 없습니다)

그런 다음 아래 내용을 HTML/CSS 편집의 skin.html 부분에 삽입합니다. 아래 그림처럼 </head> 위에 넣으면 됩니다. 다른 분의 블로그에서는 </body>윗부분에 넣으라는 분도 있는데 어디에 넣던 작동 자체에는 큰 상관이 없습니다.

<script type="text/javascript" src="./images/shCore.js"></script>
<script type="text/javascript" src="./images/shBrushBash.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/shBrushGroovy.js"></script>
<script type="text/javascript" src="./images/shBrushJava.js"></script>
<script type="text/javascript" src="./images/shBrushJScript.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/shBrushPython.js"></script>
<script type="text/javascript" src="./images/shBrushRuby.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">
    SyntaxHighlighter.config.clipboardSwf = './images/clipboard.swf';
    SyntaxHighlighter.all();
</script>



위 그림에서 처럼 </head>태그 위에 복사해 넣습니다.

skin.html 수정이 끝났으면 이제 저장을 합니다.


저장버튼을 눌러주면 끝~~~

그러면 이제 설정이 다 되었습니다.

실제 사용할때는

<pre class="brush:ruby;">
소스코드
</pre>

이런식으로 사용하면 됩니다. 'brush: ' 뒷부분에 언어 이름을 적어주면 되죠.

class="brush:ruby;"
class="brush:python;"
class="brush:csharp;"

이런식으로 말이죠.

<사용예>

    class User
        def initialize(uid, name, ip)
            @uid = uid
            @name = name
            @ip = ip
        end
    end  

여기까지가 표준적인 사용방법입니다.

하지만 티스토리에선 약간의 문제가 있습니다. 문제는 이 프로그램에선 <pre> 태그를 씁니다. 그리고 이 태그를 고쳐주기 위해선 html 편집모드로 변경해야 하는데 문제는 html 편집모드와 위지윅 편집모드를 왔다갔다 하면 소스코드에 <br/> 태그가 가득 붙는다는 것입니다. 심지어는 변경을 할때마다 <br/> 태그가 계속 추가로 붙습니다. --; 물론 한번에 편집을 끝내고 편집모드를 변경하지 않으면 되지만 편집하다 보면 그렇지가 않을때가 많죠.

결론적으로 말하자면, 추가 설정을 해 줘야 합니다. 해결방법은 여기 에 있습니다.

만일 저 해결 방법을 적용했다면 다음과 같이 글을 작성하면 됩니다.

<사용예>

class User
    def initialize(uid, name, ip)
        @uid = uid
        @name = name
        @ip = ip
    end
end  

처음의 사용예와 보기엔 똑같아 보이지만 이번 예는 <pre>태그가 아닌 <blockquote> 태그를 이용한 것입니다.

<blockquote class="brush:ruby;">
소스코드
</blockquote>

이런식으로 작성하면 됩니다.

장황하게 적었지만 파일업로드와 스킨수정 두가지만 해주면 되는 간단한 작업입니다. 나중에 발견한 티스토리의 <br/> 무한붙기 때문에 다소 수정작업이 있어야 하긴 합니다만...

마지막으로 테마 변경방법에 대해 적어 볼까 합니다. 설명은 syntaxhightlighter 사이트에 잘 되어있고 각 테마를 사용시 색상이 어떻게 바뀌는 지도 볼 수 있습니다. 링크는 이곳 입니다.

<link type="text/css" rel="stylesheet" href="./images/shThemeDefault.css"/>

skin.html 에 복사해 넣는 부분에 위 라인이 있는데 이걸 원하는 테마 파일명으로 바꿔주면 됩니다. 위는 기본 테마입니다.

<link type="text/css" rel="stylesheet" href="./images/shThemeRDark.css"/>

이와 같이 맘에드는 테마 파일명으로 바꿔주면 됩니다. 링크된 곳을 보시고 맘에드는 테마가 있으시다면 바꿔서 사용하세요.

+ Recent posts