SyntaxHighlighter는 프로그램 소스를 좀 더 예쁘게 보여지도록 꾸며주는 효과가 있는 플러그인과 같습니다.

SyntaxHighlighter는 또한 현재까지 사용되고 있는 버전인 3.x와 현재 새로 만들어진 버전 4.x로 구분되어 있습니다.

여기서는 버전 3과 4의 메뉴얼의 구분이 없기 때문에, 한 번에 작성하였습니다.

단, 버전 4는 smart-tabs, toolbar, collapse가 제대로 동작하지 않습니다.

toolbar는 현재 버전 4에서는 아예 삭제되었습니다.




01. SyntaxHighlighter 명령어 요약

SyntaxHighlighter의 기본 명령어에 대한 설명을 시작으로 각각 하나씩 설명해보려 합니다.

일단 기본 명령어들은 다음과 같습니다.


이름


설명

 auto-links

true

URL을 클릭할 수 있도록 해주는 옵션입니다.

켜고 끌 수 있으며 기본으로 true(클릭시 URL로 이동)이 설정되어있습니다.

 class-name

' '

페이지에 생성될 모든 Highlighter 요소에 사용자 정의 클래스(혹은 여러 클래스)를 추가할 수 있습니다.

 collapse

 false

SyntaxHighlighter로 작성된 부분의 영역을 접었다 펴는 기능입니다.

기본적으로 접혀있지 않은 형태로 제공됩니다.

 first-line

 1

첫 번째 시작 라인 번호를 지정해주는 것입니다.

기본적으로 1로 지정되어있습니다.

 gutter

 true

줄 번호를 켜고 끄는 기능을 사용하는 것입니다.

기본적으로 켜져 있습니다.

 highlight

 null

어떠한 행의 번호를 선택하여 강조해주는 기능입니다.

기본적으로 번호가 지정되지 않아 꺼져있는 상태입니다.

 html-script

 false

HTML / XML 코드와 웹 개발에서 매우 공통적인 스크립트를 혼합하여 강조 표시를 할 수 있습니다.

 smart-tabs

 true

스마트 탭 기능을 켜고 끌 수 있습니다.

 tab-size

 4

탭(tab)의 사이즈를 지정해줍니다.

기본적으로 4로 되어있습니다.

 toolbar

 true

툴바 기능을 On/Off 해주는 기능입니다.


각각의 명령어에 대한 설명은 예제와 함께 작성해보도록 하겠습니다.


여기서 Source는 여러분께서 티스토리 혹은 워드프레스에 HTML로 작성할 소스를 말합니다.

여기서 Result는 여러분께서 티스토리 혹은 워드프레스에 Source를 작성했을 때 보여지는 결과로 나오는 것을 말합니다.




02. SyntaxHighlighter - auto-links

auto-links는 여러분께서 작성한 코드에 URL이 있을 경우, 그 URL에 클릭을 했을 시에 그 링크로 들어가지는 기능을 말합니다.

기본적으로 true 값으로 설정되어있으며, 이는 기본적으로 링크를 클릭했을 때 그 링크로 들어가지게끔 해준다는 의미입니다.

이제 예제를 보도록 하겠습니다.


Source

<pre class="brush: php; auto-links: false">
  /** https://kkamikoon.tistory.com */
  'https://kkamikoon.tistory.com'
</pre>


Result

  /** https://kkamikoon.tistory.com */
  'https://kkamikoon.tistory.com'


해당 예제에서는 auto-links를 false로 지정해주었습니다.

즉, 링크처럼 보이는 주소를 클릭해도 해당 주소로 들어가지지 않습니다.

하지만, Source에 있는 주소는 클릭이 되는 것을 볼 수 있습니다.




03. SyntaxHighlighter - class-name

class-name은 페이지에 생성될 모든 Highlighter 요소에 사용자 정의 클래스(혹은 여러 클래스)를 추가할 수 있습니다.

여러분께서 임의로 만들어낸 클래스를 SyntaxHighlighter 박스에 적용할 수 있다는 의미입니다.

기본으로는 ' ' 라고 되어있는데, 이는 작성된 클래스가 없이 SyntaxHighlighter가 적용된다는 것입니다.

만약 여기에 여러분이 정의할 새로운 클래스를 작성한다면, 모든 박스에 적용됩니다.

이제 예제를 보도록 하겠습니다.


Source

<style>
.class_name_demo { border: 5px solid #000; }
</style>

<pre class="brush: php; class-name: 'class_name_demo'">
  /** https://kkamikoon.tistory.com */
  'https://kkamikoon.tistory.com'
</pre>


Result

    /** https://kkamikoon.tistory.com */
    'https://kkamikoon.tistory.com'


예제의 Result를 확인해보시면 5px의 크기의 선들이 박스를 감싸고 있는 것을 볼 수 있습니다.

이는 우리가 만든 class_name_demo의 기능이 SyntaxHighlighter에 적용된 것을 볼 수 있습니다.

이 기능을 활용하여 여러분께서는 각각의 SyntaxHighlighter가 적용된 곳에 여러분의 임의의 클래스를 적용할 수 있습니다.




04. SyntaxHighlighter - collapse

collapse는 SyntaxHighlighter로 작성된 부분의 영역을 접었다 펴는 기능입니다.

이는 티스토리나 다른 워드프레스 및 블로그에서 자체적으로 접는 기능이 없더라도, 접을 수 있도록 도와주는 역할을 합니다.

기본적으로는 접히지 않은 형태로 출력되도록 false가 적용되어있습니다.

이제 예제를 보도록 합시다.


Source

<pre class="brush: php; collapse: true">
    Hello kkamikoon's world!
    This is collapsed code!!
    If you clicked 'expand source', you can see this.
</pre>


Result

    Hello kkamikoon's world!
    This is collapsed code!!
    If you clicked 'expand source', you can see this.


위의 Result를 살펴보시면 결과가 나타나지 않는 것을 볼 수 있습니다.

원래는 expand source라는 클릭 버튼이 있고, 이를 클릭하면 펼쳐지는 형태이지만, 제대로 동작하지 않는 것 같습니다.

현재 제가 사용하고 있는 버전은 SyntaxHighlighter v4이며, v3과 차이가 있습니다.



05. SyntaxHighlighter - first-line

first-line은 SyntaxHighlighter를 이용하여 작성한 소스소크드 줄번호의 시작번호를 지정해주는 기능입니다.

기본적으로 시작 번호는 1로 지정되어있습니다.

바로 예제를 보도록 합시다.


Source

<pre class="brush: php; first-line: 10">
    this is now tenth line,
    and this is eleventh!
</pre>


Result

  this is now tenth line,
  and this is eleventh!

여기서 Result의 결과를 살펴보면, 첫 번째 줄 번호가 10인 것을 볼 수 있습니다.

즉, 우리가 지정한 first-line에 10을 지정해주었기 때문에, 시작 번호가 10으로 변경되는 것입니다.

여기서 여러분께서는 소스코드의 시작 번호를 따로 지정해줄 수 있습니다.




06. SyntaxHighlighter - gutter

gutter는 줄 번호를 켜고 끄는 기능입니다.

기본적으로는 줄 번호가 표시되도록 설정되어있지만, 사용자가 임의로 설정을 끌 수 있습니다.

예제를 보도록 합시다.


Source

<pre class="brush: php; gutter: false;">
   /** https://kkamikoon.tistory.com *.
   'https://kkamikoon.tistory.com'
</pre>


Result

/** https://kkamikoon.tistory.com *.
'https://kkamikoon.tistory.com'


위의 Result를 확인하시면, 줄 번호가 사라진 것을 확인할 수 있습니다.

이제 기본 소스코드를 수정하여 모든 소스코드의 줄 번호를 삭제해줄 수도 있고, 줄 번호를 SyntaxHighlighter가 적용되는 곳마다 다르게 설정해줄 수도 있게됩니다.




07. SyntaxHighlighter - highlight

highlight는 어떠한 행의 번호를 선택하여 특정한 부분을 강조해주는 기능입니다.

기본적으로는 모든 영역이 강조되지 않은 상태로 설정되어있지만, 이 기능을 이용하면 특정 행의 번호를 강조해줄 수 있습니다.

이제 예제를 보도록 합시다.


Source

<pre class="brush: php; highlight: 2">
   line No.1
   line No.2
   line No.3
</pre>


<pre class="brush: php; highlight: [1, 3]">
   line No.1
   line No.2
   line No.3
</pre>


Result

line No.1
line No.2
line No.3


line No.1
line No.2
line No.3


위의 Result를 볼 때 첫 번째 예제는 줄 번호 2번을 강조하였고, 두 번째 예제는 줄 번호 1, 3번을 강조하였습니다.

즉, 줄을 하나 뿐만 아니라 여러 개의 줄 번호를 강조해줄 수 있다는 것입니다.

이 기능을 통해 설명하고자 하는 영역을 강조해보는 건 어떨까 합니다.




08. SyntaxHighlighter - html-script

html-script는 HTML / XML 코드와 웹 개발에서 매우 공통적인 스크립트를 혼합하여 강조 표시를 할 수 있는 기능입니다.

이는 예제를 통해 설명하도록 하겠습니다.


Source

<pre class="brush: php; html-script: true">
  <html>
  <body>
      <div style="font-weight: bold"><?= str_replace("\n", "<br/>", $var) ?></div>
 
      <?
      /***********************************
       ** Multiline block comments
       **********************************/
 
      $stringWithUrl = "http://alexgorbatchev.com";
      $stringWithUrl = 'http://alexgorbatchev.com';
 
      ob_start("parseOutputBuffer");      // Start Code Buffering
      session_start();
      ?>
  </body>
  </html>
</pre>



Result

html-script: true

  
  <html>
  <body>
      <div style="font-weight: bold"><?= str_replace("\n", "<br/>", $var) ?></div>
 
      <?
      /***********************************
       ** Multiline block comments
       **********************************/
 
      $stringWithUrl = "http://alexgorbatchev.com";
      $stringWithUrl = 'http://alexgorbatchev.com';
 
      ob_start("parseOutputBuffer");      // Start Code Buffering
      session_start();
      ?>
  </body>
  </html>


html-script: false

  
  <html>
  <body>
      <div style="font-weight: bold"><?= str_replace("\n", "<br/>", $var) ?></div>
 
      <?
      /***********************************
       ** Multiline block comments
       **********************************/
 
      $stringWithUrl = "http://alexgorbatchev.com";
      $stringWithUrl = 'http://alexgorbatchev.com';
 
      ob_start("parseOutputBuffer");      // Start Code Buffering
      session_start();
      ?>
  </body>
  </html>

위의 Result는 true일 때와 false일 때를 구분하여 작성해보았습니다.

true일 때와 false일 때의 차이는 눈썰미가 좋으신 분은 바로 보였을 것입니다.

html-script를 true적용을 했을 때 구문이 마치 좀 더 웹 소스코드처럼 보이도록 강조해주는 효과가 있는 것을 볼 수 있습니다.

만약 웹 소스코드를 작성하실 때 php로 작성하더라도 소스코드가 이쁘지 않다면, html-script를 true로 해보면 좋을 것 같습니다.




09. SyntaxHighlighter - smart-tabs

smart-tabs는 스마트 탭을 On/Off를 적용하는 기능입니다.

이는 예제를 통해 설명하도록 하겠습니다.


Source

smart-tabs: true

<pre class="brush: php; smart-tabs: true">
	hello there!	  ya!
	hello	ya!
</pre>

smart-tabs: false

<pre class="brush: php; smart-tabs: false">
	hello there!	  ya!
	hello	ya!
</pre>


Result

smart-tabs: true

	hello there!	  ya!
	hello	ya!

smart-tabs: false

	hello there!	  ya!
	hello	ya!


위의 Result를 보시면 별 차이점을 볼 수 없습니다. 기본적으로 대부분 smart-tabs을 요즘 지원하고 있는 형태이기 때문입니다.

여러분은 아마 SyntaxHighlighter에서 smart-tabs를 false로 끌 일이 없으실 것입니다.

어쩌면 꺼도 효과가 안 나타날 수 있습니다.




10. SyntaxHighlighter - tab-size

tab-size는 탭의 크기를 지정해주는 기능입니다.

tab-size는 기본적으로 띄어쓰기 4개 즉, 4로 지정되어있습니다.

예제를 보도록 합시다.


Source

tab-size: 4

<pre class="brush: js; tab-size: 4">
	123	123	123
	1	2	3
</pre>

tab-size: 8

<pre class="brush: js; tab-size: 8">
	123	123	123
	1	2	3
</pre>

Result

tab-size: 4

	123	123	123
	1	2	3

tab-size: 8

	123	123	123
	1	2	3






11. SyntaxHighlighter - toolbar

toolbar는 툴바 기능을 On/Off해주는 기능입니다.

이 기능은 사실상 사용하지 않은 기능인 것 같습니다.

눈에 띄는 효과가 없어 보입니다.




여기까지 해서 SyntaxHighlighter의 기능을 알아보았습니다.





'UTILITIES > SyntaxHighlighter' 카테고리의 다른 글

SyntaxHighlighter v4 설치 방법 - Ubuntu  (1) 2018.07.19

+ Recent posts