๐Ÿ› /Blog

[tistory] code block, inline code block ๊พธ๋ฏธ๊ธฐ w/highlight.js & Google Fonts

ํ•œ๋‚˜ 2021. 4. 27. 22:49

๊ธฐ์กด์—๋„ ๋„ˆ๋ฌด๋„ˆ๋ฌด ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ์ฝ”๋“œ ์‹ ํƒ์Šค ํ•˜์ด๋ผ์ดํ„ฐ๊ฐ€ ๋„ˆ๋ฌด ๋ชป์ƒ๊ฒจ์„œ ํ”Œ๋Ÿฌ๊ทธ์ธ๋„ ๊น”์•„๋ดค์ง€๋งŒ, ๋ณ„ ์†Œ์šฉ์ด ์—†์—ˆ๋‹ค. ํ•œ๋™์•ˆ์€ Github Gist์˜ ์—๋””ํ„ฐ๊ฐ€ ์˜ˆ๋ป์„œ ์ผ์ง€๋งŒ, ์ผ์ผ์ด ์Šคํฌ๋ฆฝํŠธ ํƒœ๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ์–ด์•ผ ํ•ด์„œ ํšจ์œจ์ด ๋–จ์–ด์กŒ๋‹ค.

 

uiyoji-journal.tistory.com/48

 

[GitHub Gist] ๋ธ”๋กœ๊ทธ์— ๊ฐ„๋‹จํ•œ Code Snippet ๊ณต์œ ํ•˜๊ธฐ

๋ธ”๋กœ๊ทธ์— ๊ธ€์„ ๋ฐœํ–‰ํ•˜๊ธฐ ์ „ ํฌ์ŠคํŠธ์˜ ์ดˆ์•ˆ์„ ์ž‘์„ฑํ•˜๊ฑฐ๋‚˜, ๊ฐ•์˜๋ฅผ ๋“ฃ๋Š” ๊ณผ์ •์—์„œ ๋…ธํŠธ ํ•„๊ธฐ๋ฅผ ํ•˜๊ฑฐ๋‚˜ ํ•  ๋•Œ๋Š” ๋…ธ์…˜์„ ์ž์ฃผ ์‚ฌ์šฉํ•œ๋‹ค. ์“ด ๋…ธํŠธ๊ฐ€ ๋งŽ์•„์งˆ์ˆ˜๋ก ์—„์ฒญ ๋ฌด๊ฑฐ์›Œ์ง€์ง€๋งŒ ๋ฌด๊ฒ๊ณ  ๋Š๋ฆฐ ๋ฐ˜์‘

uiyoji-journal.tistory.com

 

์‹œ๊ฐ„ ๋‚ด์„œ ์˜ค๋Š˜์—์•ผ ๋“œ๋””์–ด highlight.js๋ฅผ ์ ์šฉํ•ด์คฌ๋‹ค. ํ•˜๋Š” ๊น€์— inline code block์—๋„ CSS๋ฅผ ์ ์šฉํ•ด์คฌ๋‹ค. ๋…ธ์…˜์œผ๋กœ ๊ธ€ ์“ฐ๊ณ , ๋‹ค๋“ฌ์€ ๋‹ค์Œ์— ๋ธ”๋กœ๊ทธ์— ํผ๋ธ”๋ฆฌ์‹ฑ์„ ํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์น˜๋Š”๋ฐ, ๋…ธ์…˜๊ณผ ์ตœ๋Œ€ํ•œ ํ™˜๊ฒฝ์ด ๋น„์Šทํ–ˆ์œผ๋ฉด ์‹ถ์—ˆ๋‹ค.

์‹œ์ž‘ํ•˜๊ธฐ ์•ž์„œ์„œ ๋ฏธ๋ฆฌ ์„ค์น˜ํ•ด๋‘” ์ฝ”๋“œ ์‹ ํƒ์Šค ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ์ง€์›Œ์คฌ๋‹ค. ์•ˆ ์ง€์šฐ๋ฉด ์ œ๋Œ€๋กœ ์ ์šฉ์ด ์•ˆ ๋œ๋‹ค๋Š” ๋ฆฌํฌํŠธ๋ฅผ ์—ฌ๋Ÿฌ ๋ธ”๋กœ๊ทธ์—์„œ ๋ดค๋‹ค.

Code Syntax Highlight w/highlight.js

highlightjs.org/static/demo/

 

highlight.js demo

 

highlightjs.org

 

 

๋งˆ์Œ์— ๋“œ๋Š” ํ…Œ๋งˆ๋Š” ์œ„์—์„œ ๋จผ์ € ๊ณ ๋ฅธ๋‹ค.

Tomorrow Night์˜ ๊ฒฝ์šฐ๋Š” ์ดํ›„์— ์ฝ”๋“œ์— ์ถ”๊ฐ€ํ•ด์ค„ ๋•Œ tomorrow-night์™€ ๊ฐ™์ด ์†Œ๋ฌธ์ž, ํ•˜์ดํ”ˆ์œผ๋กœ ๊ณ ์ณ ์จ์ฃผ์–ด์•ผ ํ•œ๋‹ค.

highlightjs.org/download/

 

Getting highlight.js

Hosted A prebuilt version of highlight.js with 39 commonly used languages is hosted by following CDNs: cdnjs jsdelivr unpkg You can find the list of commonly used languages below in the custom download form. For other available styles look into the highlig

highlightjs.org

 

 

cdnjs์˜ ์•„๋ž˜ ํƒœ๊ทธ๋ฅผ ๋ณต์‚ฌํ•œ๋‹ค.

์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ๋ณต์‚ฌํ•ด ๋ถ™์ด๋Š” ์œ„์น˜๋Š” <head> .. </head> ์‚ฌ์ด ์•„๋ฌด ๊ณณ์ด๋‚˜ ์ข‹๋‹ค.

default ๋‹จ์–ด๋ฅผ ์œ„์—์„œ ์ด์•ผ๊ธฐํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ํ•˜์ดํ”ˆ๊ณผ ์†Œ๋ฌธ์ž์˜ ์กฐํ•ฉ์œผ๋กœ ์ •์ œํ•œ ํ…Œ๋งˆ ์ด๋ฆ„์œผ๋กœ ๋„ฃ์–ด์ฃผ๋ฉด ๋œ๋‹ค.

<link rel="stylesheet"
      href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.7.2/styles/default.min.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.7.2/highlight.min.js"></script>


<!-- ์‹คํ–‰์„ ์œ„ํ•ด ์•„๋ž˜ ํƒœ๊ทธ๋ฅผ ํ•˜๋‚˜ ๋” ์‚ฝ์ž…ํ•ด์ค€๋‹ค. -->
<script>hljs.initHighlightingOnLoad();</script>

 

Google Fonts

ํฐํŠธ๊ฐ€ ๋ถ€์กฑํ•œ ๋“ฏ์‹ถ์–ด์„œ ๊ตฌ๊ธ€ ํฐํŠธ๋กœ ์ƒˆ ํฐํŠธ๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ์—ˆ๋‹ค.

Inconsolata ํฐํŠธ๋ฅผ ์„ ํƒํ•ด์คฌ๋‹ค. ํƒœ๊ทธ ์ „๋ถ€ ๋ณต์‚ฌํ•ด์„œ ์•„๊นŒ์ฒ˜๋Ÿผ ํƒœ๊ทธ ์‚ฌ์ด์— ๋„ฃ์–ด์ค€๋‹ค. ์—ฌ๊ธฐ์„œ CSS๋„ ์ˆ˜์ •ํ•ด์คฌ๋‹ค.

CSS Styling

๋…ธ์…˜์—์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ธ๋ผ์ธ ์ฝ”๋“œ์— ๋Œ€ํ•ด์„œ๋Š” ์œ„์ฒ˜๋Ÿผ ํ•˜์ด๋ผ์ดํŠธ๊ฐ€ ๋“ค์–ด๊ฐ„๋‹ค. Inspect๋ฅผ ํ†ตํ•ด CSS ์ •๋ณด๋ฅผ ๋ฐ›์•„์˜ค๊ณ  ๊ทธ๋Œ€๋กœ ์ ์šฉํ•ด์ฃผ์—ˆ๋‹ค.

 

์•„๊นŒ์ฒ˜๋Ÿผ ์Šคํ‚จ ํŽธ์ง‘ > HTML ํŽธ์ง‘์œผ๋กœ ์ด๋™ํ•ด์„œ head ํƒœ๊ทธ ์‚ฌ์ด style ํƒœ๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค.

 

ํฐํŠธ๋งŒ ์ถ”๊ฐ€ํ•ด์ค„ ๊ฒฝ์šฐ์—๋Š” font-family ์†์„ฑ๋งŒ์œผ๋กœ ์ถฉ๋ถ„ํ•˜๋‹ค. ๊ธด ์ฝ”๋“œ ๋ธ”๋Ÿญ์˜ ๊ฒฝ์šฐ์—๋Š” pre > code ๋‚ด์˜ ์Šคํƒ€์ผ ์†์„ฑ์œผ๋กœ ํ•ด๊ฒฐํ•˜๊ณ , ์ฝ”๋“œ ๋ธ”๋Ÿญ ์ „์ฒด๋ฅผ ๊ฐ์‹ธ๋Š” ๋ฒ ์ด์ง€์ƒ‰ ๋ธ”๋Ÿญ์„ ์—†์• ๊ณ , ๋‹ค๋ฅธ ์ƒ‰์œผ๋กœ ์ฑ„์›Œ ์ปค์Šคํ…€ํ•ด์ฃผ์—ˆ๋‹ค.

inline์—๋งŒ ํ•ด๋‹น๋˜๋Š” ์Šคํƒ€์ผ์€ code ํƒœ๊ทธ ์ „์ฒด์— ์ ์šฉ์‹œ์ผฐ๋‹ค.

 

์ด๋ฏธ์ง€ ํƒœ๊ทธ๋„ border-radius๋ฅผ ๋งž์ถฐ์„œ ํ†ต์ผ๊ฐ์„ ์คฌ๋‹ค.

pre > code {
    font-family: 'Inconsolata', monospace !important;
    line-height: 1.5;
    font-size: 14px;
}
pre {
    background: #282c34 !important;
    border-radius: 10px;
}
code {
    font-family: 'Inconsolata', monospace !important;
    line-height: normal;
    background: rgba(135,131,120,0.15);
    color: #EB5757;
    border-radius: 3px;
    font-size: 85%;
    padding: 0.2em 0.4em;
}
img {
    border-radius: '10px'
}

 

JavaScript

const isPretty = true

HTML

<h1>HTML looks nice too</h1>

 

๊ทธ ์™ธ ์–ธ์–ด๋ฅผ ์ง€์›ํ•˜๋‹ˆ, ๋‹ค๋ฅธ ์–ธ์–ด ํ•˜์ด๋ผ์ดํŠธ๋ฅผ ์ด์šฉํ•  ๋•Œ๋Š” ๋งˆํฌ๋‹ค์šด์„ ์ด์šฉํ•˜๋ฉด ๋  ๋“ฏ์‹ถ๋‹ค.