Limetime's TimeLine
article thumbnail
반응형

SyntaxHighlighter 본격 적용 

우선 우리들은 이전 글에서 간단히 소스코드로만 이루어진 javascript만 하이라이팅 해주는 것만 했었습니다.

하지만! 저희는 만능 프로그래머로 거듭날 사람들!!!!

이대로 자바스크립트만 사용하다 썩을순(?) 없죠.

그래서! 다양한 프로그래밍 언어(C,C++,C#,PHP etc...)들을 본격 하이라이팅 해봅시다.

우선 여러분이 하셔야 할 건 음...

블로그는 다있죠? ㅋㅋㅋㅋㅋㅋ 농담입니다.. 하..

먼저 SyntaxHighlighter 사이트로 가셔서 다운 받아 줍시다.

http://alexgorbatchev.com/SyntaxHighlighter/download/

여기서 "Click here to download" 라는 글씨를 클릭하셔서 다운받아줍니다.

그거아세요? 저도 차근차근 이 글 쓰면서 같이 하고 있답니다.ㅋㅋ~


<Direct Download!!>

현재 다운로드 사이트에 문제가 있는 관계로 바로 다운로드 할 수 있게 해드리겠습니다.

syntaxhighlighter_3.0.83.zip


다 다운 받으셨다면, 압축풀고 폴더안에 들어가보세요.

저 같은 경우에는 폴더 이름이 'syntaxhighlighter_3.0.83' 이네요.

이렇게 두개의 폴더가 나오는데, scripts 폴더와 style 폴더. 이렇게 두개의 폴더만 있으면 됩니다.


1. 티스토리의 HTML/CSS 편집기에 들어가줍니다.

그리고 나서 파일업로드 탭에 들어가줍니다.

그러면 업로드 할 수 있는 버튼이 생길텐데 클릭 합니다.  (추가)

이 스크립트에는 하이라이팅 해주는 언어들을 선택할 수 있습니다. 

우리는 만능 프로그래머이니까 모두 넣어줍시다. 

모두! 업로드(추가) 시켜 주십시오!

※ 참고. 용량이 꽤 됩니다.


2. 테마(스킨) 스타일 정하기

앞서서 테마종류는 몇가지 보셨죠? 못보신 분들을 위해 사이트 남깁니다.

2017/02/22 - [Web/Tistory(blog)] - 개발자들을 위한 소스코드 하이라이터~

가보시면 몇가지 코드들이 예시로 있을겁니다.

이번엔 styles 폴더로 들어가 봅니다.

다양한 테마가 있는데 이들 중 낯익은 스킨들이 몇몇 보이네요?

네. 저는 낯익은 스킨들만 선택했습니다. 

저기 빨간 부분의 shCore.css 파일은 반드시 업로드 해야 합니다.

그리고, 나머지 라임색들은 선택사항입니다. 

주의 할 점이 있습니다.

짝을 지어줘야 합니다.

★shCore.css - shCoreDefault.css - shThemeDefault.css

이렇게 Core는 기본이고 코어와 테마 둘다 짝지어줘야합니다.

저는 Default와 Emacs, Eclips 테마를 정했습니다. 낯익잖아요?

그리고 참고로 반드시! 필요한 테마만 넣으세요. 아까도 말했다시피 용량이 꽤 됩니다.

나중을 위해서 공간 많이 남겨두세요. (티스토리 업로드 용량이 20MB로 한정 되어있습니다.)



자! 이렇게 업로드는 모두 끝났습니다. 

본격적으로 티스토리의 코드를 수정해줘야 완벽해집니다!

우리는 이제 시작입니다~~

우선 이전에 우리는 소스코드로 간단히 업로드 하지않고 소스코드를 사용했었죠?

이걸 지워줘야 할겁니다. (충돌되지 않게 하기위해... 충돌 너무 무서워요.)

이 부분을 지워 줍니다. (또는 주석처리... 주석처리는 <!--    -->)

그 후에 head부분에 아래 소스 코드를 붙여 넣어 줍니다.

<script type="text/javascript" src="./images/shCore.js"></script>

<script type="text/javascript" src="./images/shLegacy.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.all();

</script>

하.. 무지 힘드네요. 다 썻다니... (혹여 틀린 부분 지적 해주세요. 이게 틀리면 저도 틀려서 블로그에 오류나거든요 ㅋㅋ)

여기서 간단히 코드를 해석해보면 위의 script코드들은 지원할 언어를 구현하는 코드이구요.

밑의 

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

이 코드가 사실상 제일 중요합니다.

<link type="text/css" rel="stylesheet" href="./images/당신이 진정 원하는 스킨테마">

이곳을 아까 업로드한 스킨중 하나를 적습니다. 저는 아까 보자...

shThemeDefault.css, shThemeEclipse.css, shThemeEmacs.css 이 세가지를 업로드 했으니까 이 세가지중 하나를 쓸껀데...

저는 Emacs를 사용하겠습니다.


이제 거의 다왔습니다. 

Ctrl+F를 사용하여 body부분을 찾아줍니다. 참고로 body는  대부분 </head> 바로 뒤에 있습니다.

찾으셨다면 .. <body>를 아래 코드 처럼 변경합니다.

<body Onload="dp.SyntaxHighlighter.HighlightAll('code');">

body에 소스코드를 조금 추가했을 뿐입니다.;;

만약 저의 경우 처럼 body부분에 이미 무언가 추가 되어있다면... 어떻게 해야할까여?

이럴 경우에는 그냥 아래처럼 해줍니다. 그냥 추가만 하면 됩니다. (저의 경우 치환자가 붙어있네요 ㅋㅋㅋ)

<body id="tt-body-page" Onload="dp.SyntaxHighlighter.HighlightAll('code');">

해결 되셨나요?


자!!! 이제 다끝났습니다.  하하하하핳ㅎ핳ㅎ!!

이제 직접 게시글을 작성 해볼텐데... 

우리는 모든 티스토리 자체HTML을 변경했습니다.

이제 글을 작성하면 하이라이팅이 뜨면 완벽하겠죠?

하이라이팅을 위해서 작성팁!(꼭 이래야만 하는듯...)

2017/02/22 - [Web/Tistory(blog)] - 개발자들을 위한 소스코드 하이라이터~

여기 가서 보셔도 되지만 제가 다시한번 설명드릴게요.(여러분들을 위해서라면... ;;)

자! 하이라이팅을 하기위해선 HTML을 체크하고

하이라이팅할 코드를 적습니다.

예를들어 <a style="color:black;"> limeㅠ </a>를 적고 싶다.... (이 코드가 맞나싶네..) 하시면

그러면 HTML을 체크하고, 아래와 같이 입력해줍니다.

<Case 1>

<pre class="brush: js;">

<a style="color:black;"> limeㅠ </a>

</pre>

<Case 2>

<textarea name="code" class="brush:js;">

<a style="color:black;"> limeㅠ </a>

</textarea>

이렇게 표현 될 수 있습니다.

brush: 이부분은 뭐냐고요? 바로 하이라이팅을 적용시킬 언어종류를 식별하는 겁니다.

내가 쓰는 언어가 C언어이면 c,cpp를 입력하면 되고 js는 자바스크립트인데...

자세한건 2017/02/22 - [Web/Tistory(blog)] - 개발자들을 위한 소스코드 하이라이터~ 여기를 참고 해주세요~


이제 전에 다하지못한 오류가 나고, 하이라이팅이 안되던 C언어를 프로그래밍 해 볼게요.

<textarea name="code" class="brush:cpp;">

#include <stdio.h>

int main(void){

   printf("Hello World!\n");

   

   return 0;

</textarea>

과연 HelloWorld! 예제의 하이라이팅이 될까여? (이번건 textarea라는 걸 사용 했습니다.)

textarea는 창의 크기를 내맘대로 조절할 수 있는 점이 pre랑 다른거 같습니다.

이번에는 pre를 사용해서 해볼까요?

<pre class="brush: cpp;">

#include <stdio.h>

int main(void){

printf("Hello World! \n");

return 0;

}

</pre>




#include 

int main(void){

printf("Hello World! \n");

return 0;

}

아... 드디어 다썻다~~~

전 독자분들을 위해서라면 뭐든(?) 할 수 있습니다.ㅇㅇㅇㅇㅇ;;

여러분도 같이 하신다고 욕보셨고.. 참고로 저도 이글 쓰면서 같이 했아여~

처음 했던거라 힘들었고 불안한점이 많아서 두려웠는데 잘끝내고 구동 잘되서 정말 다행이네요~

예쁜 소스코드 많이 쓰세요^^









반응형
profile

Limetime's TimeLine

@Limetime

포스팅이 좋았다면 "공감❤️" 또는 "구독👍🏻" 해주세요!