[블로그] 티스토리 코드 블록 바꾸기

반응형

 

티스토리 블로그에는 코드블럭이라는 기능이 있습니다. 하지만, 티스토리에서 제공하는 코드블럭이 마음에 들지 않아 직접 Custom 해 봤습니다. 

위와 같은 코드블럭 디자인을  Highlight.js를 이용해서 직접 만들어 보겠습니다.

 

Highlight.js

Highlight.js(https://highlightjs.org/) 는 189개의 프로그래밍 언어와 91가지 스타일을 지원합니다. (version 10.0.3 기준) 

 

sunburst 테마 적용 (HTML)

<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.0.0/highlight.min.js"></script>
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.0.0/styles/sunburst.min.css">
<script>hljs.initHighlightingOnLoad();</script>

모두 소문자로 써서 티스토리 블로그 관리 페이지로 가셔서 좌측메뉴 > 꾸미기 > 스킨편집 을 클릭합니다. 그 후, html 편집을 누른 뒤, <head> ... </head> 사이 어디에나 위의 코드를 붙여넣어주시면 됩니다.

sunburst 부분에 원하는 테마의 영어 이름을 '소문자'로 작성하시면 적용 가능합니다. 테마는 여기의 Styles에서 볼 수 있습니다. 

 

CSS

폰트와 블럭 설정

/* Code block style */
code {
    padding: 0.25rem;
    background-color: #F1F1F1;
    border-radius: 5px;
    font-family: "Consolas", "Sans Mono", "Courier", "monospace";
    font-size: 0.9rem;
}

Scroll 설정

pre > code {
    margin: 1rem auto;
    white-space: pre;
    max-width:850px; 
    max-height:500px; 
    overflow:auto !important; /* scroll setting */
}

 

Line number 설정

HTML

<script src="//cdnjs.cloudflare.com/ajax/libs/highlightjs-line-numbers.js/2.7.0/highlightjs-line-numbers.min.js"></script>
<script>hljs.initLineNumbersOnLoad();</script>

CSS

코드 블럭

.hljs-ln {
	margin: 0px;
}

라인넘버와 코드

/* for block of numbers */
.hljs-ln-numbers {
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    text-align: center;
    color: #ccc;
    /* border-right: 1px solid #CCC; */
    vertical-align: top;
 
    /* your custom style here */
}
 
/* for block of code */
.hljs-ln-code {
    padding-left: 10px;
    text-indent: 0.75rem; /* indent added */
}

라인넘버 경계선

.hljs-ln-line .hljs-ln-n {
  padding-right: 5px;
  border-right: 1px solid #CCC;
}

 

 

전체 요약

아래의 코드를 블로그 관리 - 스킨 편집 - html 편집에 들어가서 복사 붙여넣기 하면 적용됩니다.

html 편집

HTML

<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.0.0/highlight.min.js"></script>
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.0.0/styles/sunburst.min.css">
<script>hljs.initHighlightingOnLoad();</script>
<script src="//cdnjs.cloudflare.com/ajax/libs/highlightjs-line-numbers.js/2.7.0/highlightjs-line-numbers.min.js"></script>
<script>hljs.initLineNumbersOnLoad();</script>

 

HTML의 <head> .. </head> 사이에 위의 코드를 복사하시면 됩니다.

 

CSS

code {
    padding: 0.25rem;
    background-color: #F1F1F1;
    border-radius: 5px;
    font-family: "Consolas", "Sans Mono", "Courier", "monospace";
    font-size: 0.9rem;
}
pre > code {
    margin: 1rem auto;
    white-space: pre;
    max-width:850px; 
    max-height:500px; 
    overflow:auto !important; /* scroll setting */
}

.hljs-ln {
	margin: 0px;
}

/* for block of numbers */
.hljs-ln-numbers {
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    text-align: center;
    color: #ccc;
    /* border-right: 1px solid #CCC; */
    vertical-align: top;
 
    /* your custom style here */
}
 
/* for block of code */
.hljs-ln-code {
    padding-left: 10px;
    text-indent: 0.75rem; /* indent added */
}

.hljs-ln-line .hljs-ln-n {
  padding-right: 5px;
  border-right: 1px solid #CCC;
}

CSS 맨 위에 위의 코드를 복사하시면 됩니다.

 

https://wordbe.tistory.com/entry/Tistory-%EC%BD%94%EB%93%9C%EB%B8%94%EB%A1%9D-%EC%83%9D%EC%84%B1-%ED%85%8C%EB%A7%88-%EC%BB%A4%EC%8A%A4%ED%84%B0%EB%A7%88%EC%9D%B4%EC%A7%95
반응형

댓글

Designed by JB FACTORY