๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

์ฝ”๋”ฉ์†Œ์Šค์— ํ•˜์ด๋ผ์ดํŠธ(์ฝ”๋“œ๋ธ”๋Ÿญ) ๋„ฃ๋Š”๋ฒ• (Highlight.js)

by 5566 2023. 11. 1.

1. Highlight.js๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?

Highlight.js๋Š” ์›น ํŽ˜์ด์ง€์—์„œ ์ฝ”๋“œ๋ฅผ ๊ฐ•์กฐํ•˜๋Š” JavaScript ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. ์ฝ”๋“œ ๋ธ”๋ก์— ์ƒ‰์ƒ๊ณผ ์„œ์‹์„ ์ ์šฉํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ๋ณด๋‹ค ๊ฐ€๋…์„ฑ ์žˆ๊ฒŒ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๊ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์— ๋งž๋Š” ๊ตฌ๋ฌธ ๊ฐ•์กฐ๋ฅผ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ์‹œ๊ฐํ™”ํ•ฉ๋‹ˆ๋‹ค.

Highlight.js๋Š” ๋‹ค์–‘ํ•œ ์–ธ์–ด์™€ ํ…Œ๋งˆ๋ฅผ ์ง€์›ํ•˜๋ฉฐ, ์›น ๊ฐœ๋ฐœ์ž๋“ค์—๊ฒŒ ๋งŽ์€ ์œ ์šฉํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋งŽ์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋ฉฐ, ๋ฌธ์„œํ™”๊ฐ€ ์ž˜ ๋˜์–ด ์žˆ์–ด ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Highlight.js๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์˜จ๋ผ์ธ ํŠœํ† ๋ฆฌ์–ผ, ๋ฌธ์„œ ํŽ˜์ด์ง€, ๊ฐœ๋ฐœ์ž ๋ธ”๋กœ๊ทธ ๋“ฑ์—์„œ ์ฝ”๋“œ๋ฅผ ๋ณด๋‹ค ํ”„๋กœํŽ˜์…”๋„ํ•˜๊ณ  ๊น”๋”ํ•˜๊ฒŒ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋‹ค์Œ ์žฅ์—์„œ ์‹ค์ œ๋กœ Highlight.js๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ ๋ธ”๋ก์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

(๋งˆํฌ๋‹ค์šด ํ˜•์‹์˜ ๋‹จ๋ฝ๋“ค์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.)

2. Highlight.js๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ๋ธ”๋ก ์ถ”๊ฐ€ํ•˜๊ธฐ

Highlight.js๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ ๋ธ”๋ก์„ ์›น ํŽ˜์ด์ง€์— ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜์˜ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ผ๊ฐ€๋ฉด ๋ฉ๋‹ˆ๋‹ค.

  1. Highlight.js ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ถ”๊ฐ€ํ•˜๊ธฐ: ์›น ํŽ˜์ด์ง€์— Highlight.js ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด <script> ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Highlight.js์˜ CDN ๋งํฌ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” ์˜ˆ์‹œ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/highlight.js@10.7.2/styles/default.min.css">
    <script src="https://cdn.jsdelivr.net/npm/highlight.js@10.7.2/lib/highlight.min.js"></script>
  2. ์ฝ”๋“œ ๋ธ”๋ก ๋งˆํฌ์—… ์ž‘์„ฑํ•˜๊ธฐ: ์ฝ”๋“œ ๋ธ”๋ก์„ ํ‘œ์‹œํ•  HTML ๋งˆํฌ์—…์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. <pre> ํƒœ๊ทธ์™€ <code> ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ๊ฐ์‹ธ์ค๋‹ˆ๋‹ค. <code> ํƒœ๊ทธ์˜ class ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๋‹น ์ฝ”๋“œ์˜ ์–ธ์–ด๋ฅผ ์ง€์ •ํ•ด์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด, class="html"๋กœ ์„ค์ •ํ•˜๋ฉด HTML ์ฝ”๋“œ ๋ธ”๋ก์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” ์ฝ”๋“œ ๋ธ”๋ก ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.

    <pre><code class="html">
    &lt;div class="container"&gt;
      &lt;h1&gt;Hello, World!&lt;/h1&gt;
    &lt;/div&gt;
    </code></pre>
  3. Highlight.js ์ดˆ๊ธฐํ™”ํ•˜๊ธฐ: ์›น ํŽ˜์ด์ง€๊ฐ€ ๋กœ๋”ฉ๋˜์—ˆ์„ ๋•Œ Highlight.js๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜์˜ ์ฝ”๋“œ๋Š” <script> ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ดˆ๊ธฐํ™”๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    <script>
      document.addEventListener('DOMContentLoaded', (event) => {
        document.querySelectorAll('pre code').forEach((block) => {
          hljs.highlightBlock(block);
        });
      });
    </script>

์ด์ œ ์œ„์˜ ๋‹จ๊ณ„๋ฅผ ๋ชจ๋‘ ๊ฑฐ์น˜๋ฉด ์ฝ”๋“œ ๋ธ”๋ก์ด ํŽ˜์ด์ง€์— ์ถ”๊ฐ€๋˜๊ณ  ๊ตฌ๋ฌธ ๊ฐ•์กฐ๊ฐ€ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์›น ํŽ˜์ด์ง€๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์ฝ”๋“œ ๋ธ”๋ก์„ ํ™•์ธํ•ด๋ณด์„ธ์š”. ๊ฐ„๋‹จํ•˜๋ฉด์„œ๋„ ๊ฐ•๋ ฅํ•œ ์ฝ”๋“œ ๊ฐ•์กฐ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜๋Š” Highlight.js๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ๋ณด๋‹ค ์‹œ๊ฐ์ ์œผ๋กœ ์œ ์ตํ•˜๊ฒŒ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

(๋งˆํฌ๋‹ค์šด ํ˜•์‹์˜ ๋‹จ๋ฝ๋“ค์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.)

3. Highlight.js์—์„œ ์ง€์›ํ•˜๋Š” ์–ธ์–ด ๋ฐ ํ…Œ๋งˆ

Highlight.js๋Š” ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์™€ ํ…Œ๋งˆ๋ฅผ ์ง€์›ํ•˜์—ฌ ์›น ํŽ˜์ด์ง€์˜ ์ฝ”๋“œ ๋ธ”๋ก์„ ๋‹ค์–‘ํ•˜๊ฒŒ ์Šคํƒ€์ผ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” Highlight.js์—์„œ ์ง€์›ํ•˜๋Š” ์ผ๋ถ€ ์–ธ์–ด์™€ ํ…Œ๋งˆ์˜ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.

์ง€์›ํ•˜๋Š” ์–ธ์–ด

Highlight.js๋Š” ์ˆ˜๋ฐฑ ๊ฐ€์ง€์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” JavaScript, HTML, CSS, Python, Java, Ruby, C++, C#, Go, Swift, PHP, TypeScript ๋“ฑ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์ตœ์‹  ์–ธ์–ด ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์˜ค๋ž˜๋œ ์–ธ์–ด๊นŒ์ง€๋„ ํฌ๊ด„์ ์œผ๋กœ ์ง€์›ํ•˜๋ฏ€๋กœ ๊ฑฐ์˜ ๋ชจ๋“  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ์ฝ”๋“œ๋ฅผ ๊ฐ•์กฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ง€์›ํ•˜๋Š” ํ…Œ๋งˆ

Highlight.js๋Š” ๋‹ค์–‘ํ•œ ํ…Œ๋งˆ๋ฅผ ์ œ๊ณตํ•˜์—ฌ ์ฝ”๋“œ ๋ธ”๋ก์„ ๋‹ค๋ฅธ ์Šคํƒ€์ผ๋กœ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, default, dark, atom-one-light, monokai, solarized-light, github ๋“ฑ์˜ ํ…Œ๋งˆ๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ…Œ๋งˆ๋Š” ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ๊ณผ ์‹œ๊ฐ์ ์ธ ๋งค๋ ฅ์„ ํ–ฅ์ƒ์‹œ์ผœ์ฃผ๋Š” ๋‹ค์–‘ํ•œ ์ƒ‰์ƒ ๋ฐ ์„œ์‹์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ, ์‚ฌ์šฉ์ž ์ •์˜ ํ…Œ๋งˆ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ Highlight.js์— ์ ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์›น ์‚ฌ์ดํŠธ์˜ ๋””์ž์ธ์— ๋งž์ถฐ ํŠน์ • ์ƒ‰์ƒ ๋ฐ ์„œ์‹์„ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

Highlight.js์˜ ์ง€์›ํ•˜๋Š” ์–ธ์–ด์™€ ํ…Œ๋งˆ ๋ชฉ๋ก์€ ๊ณต์‹ ๋ฌธ์„œ ๋˜๋Š” GitHub ์ €์žฅ์†Œ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ์–ธ์–ด์™€ ํ…Œ๋งˆ๋ฅผ ์ฐพ๊ณ  ์ ์šฉํ•˜์—ฌ ์›น ํŽ˜์ด์ง€์˜ ์ฝ”๋“œ ๋ธ”๋ก์„ ๋”์šฑ ๋ฉ‹์ง€๊ฒŒ ํ‘œ์‹œํ•ด๋ณด์„ธ์š”.

(๋งˆํฌ๋‹ค์šด ํ˜•์‹์˜ ๋‹จ๋ฝ๋“ค์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.)

4. Highlight.js ์‚ฌ์šฉ์˜ ์žฅ์ ๊ณผ ํ•œ๊ณ„

Highlight.js๋Š” ์ฝ”๋“œ ๋ธ”๋ก์— ๊ตฌ๋ฌธ ๊ฐ•์กฐ๋ฅผ ์ ์šฉํ•˜๋Š” ๊ฒƒ์ด๋ผ๋Š” ๊ฐ„๋‹จํ•œ ๋ชฉํ‘œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ์žฅ์ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ช‡ ๊ฐ€์ง€ ํ•œ๊ณ„๋„ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜์—์„œ๋Š” Highlight.js์˜ ์ฃผ์š” ์žฅ์ ๊ณผ ํ•œ๊ณ„๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์žฅ์ 

1. ์‚ฌ์šฉ์ด ๊ฐ„ํŽธํ•˜๊ณ  ์‰ฝ๋‹ค.

Highlight.js์˜ ์‚ฌ์šฉ์€ ๋งค์šฐ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์›น ํŽ˜์ด์ง€์— ์ถ”๊ฐ€ํ•˜๊ณ  ์ฝ”๋“œ ๋ธ”๋ก์„ ํ‘œ์‹œํ•  ๋งˆํฌ์—…์„ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋„ ๊ตฌ๋ฌธ ๊ฐ•์กฐ ๊ธฐ๋Šฅ์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณต์žกํ•œ ์„ค์ •์ด๋‚˜ ์ดˆ๊ธฐํ™” ๊ณผ์ •์ด ํ•„์š”ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๊ฐœ๋ฐœ์ž๋“ค์ด ๋น ๋ฅด๊ฒŒ ์ฝ”๋“œ ๋ธ”๋ก์„ ์Šคํƒ€์ผ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. ๋‹ค์–‘ํ•œ ์–ธ์–ด์™€ ํ…Œ๋งˆ๋ฅผ ์ง€์›ํ•œ๋‹ค.

Highlight.js๋Š” ์ˆ˜๋ฐฑ ๊ฐ€์ง€์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์™€ ๋‹ค์–‘ํ•œ ํ…Œ๋งˆ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ์–ธ์–ด๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ณผ์ •์€ ๋น„๊ต์  ๊ฐ„๋‹จํ•˜๋ฉฐ, ์‚ฌ์šฉ์ž ์ •์˜ ํ…Œ๋งˆ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์ฝ”๋“œ ๋ธ”๋ก์„ ์›ํ•˜๋Š” ์Šคํƒ€์ผ๋กœ ๋””์ž์ธํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค๊ณผ์˜ ์ฝ”๋“œ ๊ต๋ฅ˜๋‚˜ ์›น ์‚ฌ์ดํŠธ์˜ ๋””์ž์ธ ์ผ๊ด€์„ฑ์— ๋„์›€์„ ์ค๋‹ˆ๋‹ค.

3. ๊ฒฝ๋Ÿ‰ํ™”๋˜์–ด ๋น ๋ฅด๋‹ค.

Highlight.js๋Š” ๊ฒฝ๋Ÿ‰ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ, ์›น ํŽ˜์ด์ง€์˜ ๋กœ๋”ฉ ์†๋„์— ํฐ ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ํ•˜์ด๋ผ์ดํŠธ๋œ ์ฝ”๋“œ ๋ธ”๋ก์€ ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ์ฒ˜๋ฆฌ๋˜๋ฏ€๋กœ ์„œ๋ฒ„์˜ ๋ถ€๋‹ด์„ ์ค„์—ฌ์ค๋‹ˆ๋‹ค. ์ด๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ๋” ๋น ๋ฅธ ์›น ํŽ˜์ด์ง€ ๊ฒฝํ—˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

ํ•œ๊ณ„

1. ํ…์ŠคํŠธ ํ˜•์‹์˜ ์ฝ”๋“œ๋งŒ ์ง€์›ํ•œ๋‹ค.

Highlight.js๋Š” ํ…์ŠคํŠธ ํ˜•์‹์˜ ์ฝ”๋“œ์— ๋Œ€ํ•ด์„œ๋งŒ ๊ตฌ๋ฌธ ๊ฐ•์กฐ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ธ๋ผ์ธ ์ฝ”๋“œ, ์ฃผ์„ ์—†๋Š” ์ฝ”๋“œ, ์ฝ”๋“œ์— ํฌํ•จ๋œ ๊ทธ๋ž˜ํ”ฝ ์š”์†Œ ๋“ฑ์€ ๊ตฌ๋ฌธ ๊ฐ•์กฐ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ์—๋Š” ๋‹ค๋ฅธ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. ์™„๋ฒฝํ•œ ๊ตฌ๋ฌธ ๋ถ„์„์„ ๋ณด์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค.

Highlight.js๋Š” ๊ตฌ๋ฌธ ๊ฐ•์กฐ ๊ธฐ๋Šฅ์„ ์œ„ํ•ด ์ •๊ทœ ํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ์ด๋Š” ์–ธ์–ด์˜ ์™„๋ฒฝํ•œ ๊ตฌ๋ฌธ ๋ถ„์„์„ ๋ณด์žฅํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ผ๋ถ€ ํŠน์ˆ˜ํ•œ ๊ฒฝ์šฐ์—๋Š” ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ตฌ๋ฌธ ๊ฐ•์กฐ๋˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์–ธ์–ด์˜ ๋ฌธ๋ฒ• ๋ณ€ํ™”๋‚˜ ๋Œ€์ฒด๋œ ํ‘œํ˜„ ๋ฐฉ์‹์„ ๊ณ ๋ คํ•ด์•ผ ํ•  ๋•Œ ์ฃผ์˜ํ•ด์•ผ ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

3. ์ถ”๊ฐ€ ๊ตฌ์„ฑ์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ๋‹ค.

Highlight.js๋Š” ์ผ๋ฐ˜์ ์ธ ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ์œ„ํ•ด ์ ์ ˆํ•œ ๊ธฐ๋ณธ ์„ค์ •์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ์ง€๋งŒ, ํŠน์ • ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ถ”๊ฐ€์ ์ธ ๊ตฌ์„ฑ์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํŠน์ • ์–ธ์–ด์˜ ์‚ฌ์šฉ์ž ์ •์˜ ํ‚ค์›Œ๋“œ๋ฅผ ์ง€์›ํ•˜๊ฑฐ๋‚˜, ์ฝ”๋“œ ๋ธ”๋ก์— ๋งž์ถคํ˜• ์Šคํƒ€์ผ์„ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๊ตฌ์„ฑ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Highlight.js์˜ ์žฅ์ ์€ ๋งŽ๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ ๊ฐ„ํŽธํ•˜์ง€๋งŒ, ์ด๋Ÿฌํ•œ ํ•œ๊ณ„์ ๋“ค์„ ์ธ์ง€ํ•˜๊ณ  ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ์—๋Š” Highlight.js๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ ๋ธ”๋ก์„ ๊ฐ•์กฐํ•˜๊ณ  ์Šคํƒ€์ผ๋งํ•˜๋Š” ๋ฐ์— ํฐ ์–ด๋ ค์›€์€ ์—†์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

(๋งˆํฌ๋‹ค์šด ํ˜•์‹์˜ ๋‹จ๋ฝ๋“ค์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.)

5. Highlight.js์˜ ๋‹ค๋ฅธ ๋Œ€์ฒด ๋„๊ตฌ ๋น„๊ต

Highlight.js๋Š” ์ฝ”๋“œ ๋ธ”๋ก์— ๊ตฌ๋ฌธ ๊ฐ•์กฐ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Highlight.js ์™ธ์—๋„ ๋‹ค๋ฅธ ๋Œ€์ฒด ๋„๊ตฌ๋“ค์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜์—์„œ๋Š” Highlight.js์™€ ๋‹ค๋ฅธ ๋Œ€์ฒด ๋„๊ตฌ๋“ค์„ ๋น„๊ตํ•˜์—ฌ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

1. Prism.js

Prism.js๋Š” ๊ตฌ๋ฌธ ๊ฐ•์กฐ ๋ฐ ์ฝ”๋“œ ํ•˜์ด๋ผ์ดํŒ…์— ํŠนํ™”๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ์จ, ์ฃผ์š”ํ•œ ๊ฒฝ์Ÿ ์ƒ๋Œ€์ž…๋‹ˆ๋‹ค. Highlight.js์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋‹ค์–‘ํ•œ ์–ธ์–ด์™€ ํ…Œ๋งˆ๋ฅผ ์ง€์›ํ•˜๋ฉฐ, ์‚ฌ์šฉ์ด ์‰ฝ๊ณ  ๊ฐ„ํŽธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Highlight.js์™€ ๋‹ฌ๋ฆฌ Prism.js๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด, ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, Highlight.js๋ณด๋‹ค ๋ณต์žกํ•œ ์„ค์ •๊ณผ ์ดˆ๊ธฐํ™” ๊ณผ์ •์„ ์š”๊ตฌํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์œผ๋ฏ€๋กœ ๊ฐœ๋ฐœ์ž์˜ ์š”๊ตฌ ์‚ฌํ•ญ์— ๋งž์ถฐ ์„ ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

2. CodeMirror

CodeMirror์€ ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ์จ, ๊ตฌ๋ฌธ ๊ฐ•์กฐ ๊ธฐ๋Šฅ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํŽธ์ง‘ ๊ธฐ๋Šฅ๊นŒ์ง€ ํฌํ•จํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Highlight.js์™€ ๋‹ฌ๋ฆฌ ์ „์ฒด ํŽธ์ง‘๊ธฐ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. CodeMirror์€ ๋ฒ”์šฉ์ ์ธ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜์ง€๋งŒ, ์›น ํŽธ์ง‘๊ธฐ ๋˜๋Š” ๊ฐœ๋ฐœ์ž ๋„๊ตฌ์™€ ๊ฐ™์ด ์ฝ”๋“œ ํŽธ์ง‘ ํ™˜๊ฒฝ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ถ”์ฒœ๋ฉ๋‹ˆ๋‹ค.

3. Google Prettify

Google Prettify๋Š” ๊ตฌ๋ฌธ ๊ฐ•์กฐ ๊ธฐ๋Šฅ์— ์ค‘์ ์„ ๋‘” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. ํŠนํžˆ, ์ฝ”๋“œ ๋ธ”๋ก์„ ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•ด <pre> ๋ฐ <code> ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. Highlight.js๋‚˜ Prism.js์™€ ๋น„๊ตํ–ˆ์„ ๋•Œ ๊ตฌ๋ฌธ ๊ฐ•์กฐ์˜ ์ •ํ™•์„ฑ์ด ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ์ง€๋งŒ, ์†๋„๊ฐ€ ๋น ๋ฅด๊ณ  ๊ฒฝ๋Ÿ‰ํ™”๋˜์–ด ์žˆ์–ด ์›น ํŽ˜์ด์ง€์˜ ๋กœ๋”ฉ ์†๋„์— ์˜ํ–ฅ์„ ๋œ ์ค๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์–ธ์–ด ๋ฐ ํ…Œ๋งˆ์˜ ์„ ํƒ์ด ์ œํ•œ์ ์ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

4. Rouge

Rouge๋Š” Ruby๋กœ ์ž‘์„ฑ๋œ ๊ตฌ๋ฌธ ๊ฐ•์กฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ, Jekyll๊ณผ ๊ฐ™์€ ์ •์  ์‚ฌ์ดํŠธ ์ƒ์„ฑ๊ธฐ์™€ ํ†ตํ•ฉํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. Rouge๋Š” ๊ธฐ๋ณธ์ ์ธ ๊ตฌ๋ฌธ ๊ฐ•์กฐ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋ฉด์„œ๋„ ํ”Œ๋Ÿฌ๊ทธ์ธ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด ํ™•์žฅํ•˜๊ธฐ ์šฉ์ดํ•ฉ๋‹ˆ๋‹ค. Ruby ๊ธฐ๋ฐ˜์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๊ธฐ ๋•Œ๋ฌธ์— Ruby ๊ฐœ๋ฐœ ํ™˜๊ฒฝ๊ณผ์˜ ์‹œ๋„ˆ์ง€๊ฐ€ ์ข‹์œผ๋ฉฐ, Jekyll ํ…Œ๋งˆ ๋˜๋Š” Ruby on Rails ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๊ธฐ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

Highlight.js์™€ ๋น„๊ตํ–ˆ์„ ๋•Œ, ์ด๋Ÿฌํ•œ ๋Œ€์ฒด ๋„๊ตฌ๋“ค์€ ๊ฐ๊ฐ์˜ ์žฅ์ ๊ณผ ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐœ๋ฐœ์ž๋Š” ํ”„๋กœ์ ํŠธ์˜ ์š”๊ตฌ ์‚ฌํ•ญ์„ ๊ณ ๋ คํ•˜์—ฌ ์ ์ ˆํ•œ ๋„๊ตฌ๋ฅผ ์„ ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Highlight.js๋Š” ์ผ๋ฐ˜์ ์ธ ์‚ฌ์šฉ ์‚ฌ๋ก€์—์„œ ํ™œ์šฉ์„ฑ์ด ํฌ์ง€๋งŒ, ๋‹ค๋ฅธ ๋„๊ตฌ๋“ค์€ ํŠน์ •ํ•œ ์ƒํ™ฉ์—์„œ ๋” ์ ํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

(๋งˆํฌ๋‹ค์šด ํ˜•์‹์˜ ๋‹จ๋ฝ๋“ค์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.)

Highlight.js์˜ ๋‹ค๋ฅธ ๋Œ€์ฒด ๋„๊ตฌ ๋น„๊ต

Highlight.js๋Š” ์ฝ”๋“œ ๋ธ”๋ก์— ๊ตฌ๋ฌธ ๊ฐ•์กฐ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Highlight.js ์™ธ์—๋„ ๋‹ค๋ฅธ ๋Œ€์ฒด ๋„๊ตฌ๋“ค์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜์—์„œ๋Š” Highlight.js์™€ ๋‹ค๋ฅธ ๋Œ€์ฒด ๋„๊ตฌ๋“ค์„ ๋น„๊ตํ•˜์—ฌ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

Prism.js

Prism.js๋Š” ๊ตฌ๋ฌธ ๊ฐ•์กฐ ๋ฐ ์ฝ”๋“œ ํ•˜์ด๋ผ์ดํŒ…์— ํŠนํ™”๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. Highlight.js์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋‹ค์–‘ํ•œ ์–ธ์–ด์™€ ํ…Œ๋งˆ๋ฅผ ์ง€์›ํ•˜๋ฉฐ, ์‚ฌ์šฉ์ด ์‰ฝ๊ณ  ๊ฐ„ํŽธํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, Prism.js๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด, ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Highlight.js์™€ ๋‹ฌ๋ฆฌ ์ดˆ๊ธฐ ์„ค์ •๊ณผ ์ดˆ๊ธฐํ™” ๊ณผ์ •์ด ์กฐ๊ธˆ ๋” ๋ณต์žกํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž์˜ ์š”๊ตฌ ์‚ฌํ•ญ์— ๋งž์ถฐ ์ ์ ˆํ•œ ๋„๊ตฌ๋ฅผ ์„ ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

CodeMirror

CodeMirror์€ ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ์จ, ๊ตฌ๋ฌธ ๊ฐ•์กฐ ๊ธฐ๋Šฅ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํŽธ์ง‘ ๊ธฐ๋Šฅ๊นŒ์ง€ ํฌํ•จํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Highlight.js์™€ ๋‹ฌ๋ฆฌ CodeMirror์€ ์ „์ฒด์ ์ธ ํŽธ์ง‘๊ธฐ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ, ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ๊ธฐ๋Šฅ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํŽธ์ง‘๊ธฐ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ์ข‹์€ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์ฝ”๋“œ ํŽธ์ง‘๊ธฐ๋ฅผ ์›น ํŽ˜์ด์ง€์— ํ†ตํ•ฉํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒฝ์šฐ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

Google Prettify

Google Prettify๋Š” ๊ตฌ๋ฌธ ๊ฐ•์กฐ ๊ธฐ๋Šฅ์— ์ค‘์ ์„ ๋‘” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. ํŠนํžˆ, ์ฝ”๋“œ ๋ธ”๋ก์„ ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•ด <pre> ๋ฐ <code> ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๋น„๊ตํ–ˆ์„ ๋•Œ ๊ตฌ๋ฌธ ๊ฐ•์กฐ์˜ ์ •ํ™•์„ฑ์ด ์กฐ๊ธˆ ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ์ง€๋งŒ, ์†๋„๊ฐ€ ๋น ๋ฅด๊ณ  ๊ฒฝ๋Ÿ‰ํ™”๋˜์–ด ์žˆ์–ด ๋กœ๋”ฉ ์†๋„์— ์˜ํ–ฅ์„ ๋œ ์ค๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์–ธ์–ด ๋ฐ ํ…Œ๋งˆ์˜ ์„ ํƒ์ด ์ œํ•œ์ ์ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ฃผ์˜ํ•  ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

Rouge

Rouge๋Š” Ruby๋กœ ์ž‘์„ฑ๋œ ๊ตฌ๋ฌธ ๊ฐ•์กฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ, Jekyll๊ณผ ๊ฐ™์€ ์ •์  ์‚ฌ์ดํŠธ ์ƒ์„ฑ๊ธฐ์™€ ํ†ตํ•ฉํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. Rouge๋Š” ๊ธฐ๋ณธ์ ์ธ ๊ตฌ๋ฌธ ๊ฐ•์กฐ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋ฉด์„œ๋„ ํ”Œ๋Ÿฌ๊ทธ์ธ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด ํ™•์žฅํ•˜๊ธฐ ์šฉ์ดํ•ฉ๋‹ˆ๋‹ค. Ruby ๊ธฐ๋ฐ˜์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๊ธฐ ๋•Œ๋ฌธ์— Ruby ๊ฐœ๋ฐœ ํ™˜๊ฒฝ๊ณผ์˜ ์‹œ๋„ˆ์ง€๊ฐ€ ์ข‹์œผ๋ฉฐ, Jekyll ํ…Œ๋งˆ ๋˜๋Š” Ruby on Rails ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๊ธฐ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

Highlight.js์™€ ๋น„๊ตํ–ˆ์„ ๋•Œ, ์ด๋Ÿฌํ•œ ๋Œ€์ฒด ๋„๊ตฌ๋“ค์€ ๊ฐ๊ฐ์˜ ์žฅ์ ๊ณผ ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์˜ ์š”๊ตฌ ์‚ฌํ•ญ์— ๋งž์ถฐ ์ ์ ˆํ•œ ๋„๊ตฌ๋ฅผ ์„ ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Highlight.js๋Š” ์ผ๋ฐ˜์ ์ธ ์‚ฌ์šฉ ์‚ฌ๋ก€์—์„œ ํ™œ์šฉ์„ฑ์ด ํฌ์ง€๋งŒ, ๋‹ค๋ฅธ ๋„๊ตฌ๋“ค์€ ํŠน์ •ํ•œ ์ƒํ™ฉ์—์„œ ๋” ์ ํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ ์ž๋ฃŒ:

Highlight.js ๊ณต์‹ ๋ฌธ์„œ

Highlight.js์˜ ๊ณต์‹ ๋ฌธ์„œ๋Š” ๋‹ค์–‘ํ•œ ์–ธ์–ด์™€ ํ…Œ๋งˆ, ์„ค์ • ์˜ต์…˜ ๋“ฑ์— ๋Œ€ํ•œ ์ƒ์„ธํ•œ ์„ค๋ช…์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, ์‚ฌ์šฉ๋ฒ•๊ณผ ์ดˆ๊ธฐํ™” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์˜ˆ์ œ ์ฝ”๋“œ๋„ ์ œ๊ณต๋˜์–ด ์žˆ์–ด ์‰ฝ๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Highlight.js๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์žˆ์–ด์„œ ํ•„์š”ํ•œ ๋ชจ๋“  ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์ „์ฒด์ ์ธ ๊ฐ€์ด๋“œ๋กœ์„œ ์œ ์šฉํ•˜๊ฒŒ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งํฌ: Highlight.js ๊ณต์‹ ๋ฌธ์„œ

Prism.js ๊ณต์‹ ๋ฌธ์„œ

Prism.js์˜ ๊ณต์‹ ๋ฌธ์„œ๋Š” ๊ตฌ๋ฌธ ๊ฐ•์กฐ ๊ธฐ๋Šฅ์— ํŠนํ™”๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•œ ์ƒ์„ธํ•œ ๋‚ด์šฉ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ์–ธ์–ด์™€ ํ…Œ๋งˆ, ํ”Œ๋Ÿฌ๊ทธ์ธ ๋“ฑ์— ๋Œ€ํ•œ ์ƒ์„ธํ•œ ์„ค๋ช…๊ณผ ์˜ˆ์ œ ์ฝ”๋“œ๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Prism.js๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ฐพ๊ณ  ์žˆ๋‹ค๋ฉด ์ด ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•˜๋ฉด ์ข‹์Šต๋‹ˆ๋‹ค.

๋งํฌ: Prism.js ๊ณต์‹ ๋ฌธ์„œ

CodeMirror ๊ณต์‹ ๋ฌธ์„œ

CodeMirror์˜ ๊ณต์‹ ๋ฌธ์„œ๋Š” ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ์™€ ๊ตฌ๋ฌธ ๊ฐ•์กฐ ๊ธฐ๋Šฅ์„ ํฌํ•จํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์„ค๋ช…์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, ๋‹ค์–‘ํ•œ ํŽธ์ง‘๊ธฐ ๊ธฐ๋Šฅ๊ณผ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์˜ˆ์ œ ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์–ด, ์›น ํŽ˜์ด์ง€์— ํŽธ์ง‘๊ธฐ๋ฅผ ํ†ตํ•ฉํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒฝ์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. CodeMirror๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํŽธ์ง‘ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ณ ์ž ํ•  ๋•Œ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค.

๋งํฌ: CodeMirror ๊ณต์‹ ๋ฌธ์„œ

Google Prettify ๊ณต์‹ GitHub ํŽ˜์ด์ง€

Google Prettify์˜ ๊ณต์‹ GitHub ํŽ˜์ด์ง€์—๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•œ ์ƒ์„ธํ•œ ์„ค๋ช…๊ณผ ์˜ˆ์ œ ์ฝ”๋“œ, ์„ค์ • ๋ฐฉ๋ฒ• ๋“ฑ์˜ ๋‚ด์šฉ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. Google Prettify๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ ๋ธ”๋ก์„ ๊ฐ•์กฐํ•˜๊ณ ์ž ํ•  ๋•Œ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ณต์‹ ๋ฌธ์„œ๋กœ์„œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งํฌ: Google Prettify GitHub ํŽ˜์ด์ง€

Rouge ๊ณต์‹ ๋ฌธ์„œ

Rouge์˜ ๊ณต์‹ ๋ฌธ์„œ๋Š” Ruby๋กœ ์ž‘์„ฑ๋œ ๊ตฌ๋ฌธ ๊ฐ•์กฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•œ ์ƒ์„ธํ•œ ๋‚ด์šฉ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Rouge๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ ๋ธ”๋ก์„ ๊ฐ•์กฐํ•˜๊ณ ์ž ํ•  ๋•Œ ํ•„์š”ํ•œ ์„ค์ • ๋ฐ ์‚ฌ์šฉ๋ฒ•์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Jekyll๊ณผ์˜ ํ†ตํ•ฉ ๋“ฑ์— ๋Œ€ํ•œ ์ •๋ณด๋„ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ, Jekyll ๋˜๋Š” Ruby on Rails์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์œ ์šฉํ•˜๊ฒŒ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งํฌ: Rouge ๊ณต์‹ ๋ฌธ์„œ

์ƒ๊ธฐ ์ฐธ๊ณ  ์ž๋ฃŒ๋Š” ๊ฐ ๋„๊ตฌ์˜ ๊ณต์‹ ๋ฌธ์„œ์™€ ํŽ˜์ด์ง€๋กœ์„œ, ํ•ด๋‹น ๋„๊ตฌ๋“ค์— ๋Œ€ํ•œ ์ „๋ฐ˜์ ์ธ ์ •๋ณด์™€ ์‚ฌ์šฉ๋ฒ•์„ ์ƒ์„ธํžˆ ์•ˆ๋‚ดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด ์ฐธ์กฐํ•  ๋•Œ ์œ ์šฉํ•œ ์ž๋ฃŒ์ž…๋‹ˆ๋‹ค.

Highlight.js ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€ (https://highlightjs.org/)

Highlight.js ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€๋Š” ๊ตฌ๋ฌธ ๊ฐ•์กฐ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ์ธ Highlight.js์— ๋Œ€ํ•œ ์ƒ์„ธํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด ํ™ˆํŽ˜์ด์ง€์—์„œ๋Š” Highlight.js์˜ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ, ์‚ฌ์šฉ ๋ฐฉ๋ฒ•, ์„ค์ • ์˜ต์…˜์— ๋Œ€ํ•œ ์„ค๋ช…์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•Œ๋ฆผ

Highlight.js๋Š” ๊ตฌ๋ฌธ ๊ฐ•์กฐ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜๋Š” ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์™€ ํ…Œ๋งˆ๋ฅผ ์ง€์›ํ•˜๋ฉฐ, Highlight.js์˜ ํŠน์ง• ์ค‘ ํ•˜๋‚˜๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ž‘๋™ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ธฐ๋Šฅ ๋ฐ ์ง€์›ํ•˜๋Š” ์–ธ์–ด

Highlight.js๋Š” ๋‹ค์–‘ํ•œ ์–ธ์–ด๋ฅผ ์ง€์›ํ•˜๋ฉฐ, HTML๊ณผ CSS์—์„œ JavaScript, Java, Python, Ruby ๋“ฑ ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์— ๋Œ€ํ•œ ๊ตฌ๋ฌธ ๊ฐ•์กฐ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Highlight.js๋Š” <pre> ๋ฐ <code> ์š”์†Œ ์•ˆ์— ์žˆ๋Š” ์ฝ”๋“œ ๋ธ”๋ก์„ ์ฐพ์•„์„œ ์ž๋™์œผ๋กœ ๊ตฌ๋ฌธ ๊ฐ•์กฐํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์›น ํŽ˜์ด์ง€์—์„œ ์ฝ”๋“œ ๋ธ”๋ก์„ ์‚ฌ์šฉํ•  ๋•Œ ๊ตฌ๋ฌธ ๊ฐ•์กฐ๋ฅผ ์†์‰ฝ๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ…Œ๋งˆ

Highlight.js์—๋Š” ๋‹ค์–‘ํ•œ ํ…Œ๋งˆ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ…Œ๋งˆ๋ฅผ ์„ ํƒํ•˜๋ฉด ์ฝ”๋“œ ๋ธ”๋ก์˜ ์ƒ‰์ƒ๊ณผ ์Šคํƒ€์ผ์„ ๋ณ€๊ฒฝํ•˜์—ฌ ๋ณด๋‹ค ์‹œ๊ฐ์ ์œผ๋กœ ๋” ์ž˜ ๊ฐ•์กฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ…Œ๋งˆ๋ฅผ ์‰ฝ๊ฒŒ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ถ”๊ฐ€์ ์ธ ๋งž์ถค ์„ค์ •๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ ๋ฐฉ๋ฒ•

Highlight.js๋Š” ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๊ณ  ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ์›น ํŽ˜์ด์ง€์— Highlight.js ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋กœ๋“œํ•˜๊ณ  ์ฝ”๋“œ ๋ธ”๋ก์— ์ ์šฉํ•  ํด๋ž˜์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ ์œผ๋กœ ๊ตฌ๋ฌธ ๊ฐ•์กฐ๋ฅผ ์ ์šฉํ•˜๊ฑฐ๋‚˜ ์„ค์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถ”๊ฐ€ ๊ธฐ๋Šฅ

Highlight.js๋Š” ๋‹ค์–‘ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ๋„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ด๋ผ์ดํŠธ๋œ ์ฝ”๋“œ๋ฅผ ํด๋ฆฝ๋ณด๋“œ์— ๋ณต์‚ฌํ•˜๋Š” ๊ธฐ๋Šฅ, ์ค„ ๋ฒˆํ˜ธ ํ‘œ์‹œ, ์ฝ”๋“œ ํ…์ŠคํŠธ๋ฅผ ๊ฐ์‹ธ๋Š” ํŽธ๋ฆฌํ•œ ๋ฒ„ํŠผ ๋“ฑ์˜ ์ถ”๊ฐ€์ ์ธ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Highlight.js๋Š” ์ฝ”๋“œ ๋ธ”๋ก์— ๊ตฌ๋ฌธ ๊ฐ•์กฐ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๋›ฐ์–ด๋‚œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ์–ธ์–ด์™€ ํ…Œ๋งˆ๋ฅผ ์ง€์›ํ•˜๊ณ , ์‚ฌ์šฉ์ด ์‰ฝ๊ณ  ๊ฐ„ํŽธํ•ฉ๋‹ˆ๋‹ค. ์›น ํŽ˜์ด์ง€์—์„œ ์ฝ”๋“œ๋ฅผ ๊ฐ•์กฐํ•˜๊ณ ์ž ํ•  ๋•Œ ์œ ์šฉํ•˜๊ฒŒ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. Highlight.js ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์—์„œ ๊ด€๋ จ ์ •๋ณด๋ฅผ ํ™•์ธํ•˜๊ณ  ์‚ฌ์šฉํ•ด๋ณด์„ธ์š”.

Highlight.js GitHub ์ €์žฅ์†Œ (https://github.com/highlightjs/highlight.js)

Highlight.js GitHub ์ €์žฅ์†Œ๋Š” Highlight.js ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๊ณต์‹ ์ €์žฅ์†Œ๋กœ, Highlight.js์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด์™€ ์ตœ์‹  ์—…๋ฐ์ดํŠธ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Highlight.js ์†Œ๊ฐœ

Highlight.js๋Š” ์›น ํŽ˜์ด์ง€์—์„œ ๊ตฌ๋ฌธ ๊ฐ•์กฐ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜๋Š” ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์™€ ํ…Œ๋งˆ๋ฅผ ์ง€์›ํ•˜๋ฉฐ, ํŽธ๋ฆฌํ•œ ์‚ฌ์šฉ๋ฒ•๊ณผ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ €์žฅ์†Œ ๊ตฌ์กฐ

Highlight.js GitHub ์ €์žฅ์†Œ์—์„œ๋Š” Highlight.js์˜ ์†Œ์Šค ์ฝ”๋“œ์™€ ๊ด€๋ จ๋œ ํŒŒ์ผ ๋ฐ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • src: Highlight.js์˜ ์ฃผ์š” ์†Œ์Šค ์ฝ”๋“œ๊ฐ€ ์œ„์น˜ํ•œ ๋””๋ ‰ํ† ๋ฆฌ์ž…๋‹ˆ๋‹ค. ์ด๊ณณ์—์„œ Highlight.js๋ฅผ ์ œ์–ดํ•˜๊ณ  ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • styles: Highlight.js์˜ ํ…Œ๋งˆ ํŒŒ์ผ์ด ์žˆ๋Š” ๋””๋ ‰ํ† ๋ฆฌ์ž…๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ํ…Œ๋งˆ ์ค‘์—์„œ ์›ํ•˜๋Š” ํ…Œ๋งˆ๋ฅผ ์„ ํƒํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • languages: ๊ฐ ์–ธ์–ด์— ๋Œ€ํ•œ ๊ตฌ๋ฌธ ๊ฐ•์กฐ ํŒŒ์ผ์ด ์žˆ๋Š” ๋””๋ ‰ํ† ๋ฆฌ์ž…๋‹ˆ๋‹ค. ์–ธ์–ด์— ๋Œ€ํ•œ ๊ตฌ๋ฌธ ๊ฐ•์กฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ด๊ณณ์—์„œ ํ•ด๋‹น ์–ธ์–ด์˜ ํŒŒ์ผ์„ ์ฐพ๊ณ  ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ ๋ฐฉ๋ฒ•

Highlight.js๋Š” ์›น ํŽ˜์ด์ง€์—์„œ ๊ตฌ๋ฌธ ๊ฐ•์กฐ ๊ธฐ๋Šฅ์„ ์‰ฝ๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Highlight.js๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋จผ์ € Highlight.js ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ๊ณผ ํ…Œ๋งˆ ํŒŒ์ผ์„ ์›น ํŽ˜์ด์ง€์— ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ, ๊ตฌ๋ฌธ ๊ฐ•์กฐ๋ฅผ ์›ํ•˜๋Š” ์ฝ”๋“œ ๋ธ”๋ก์— hljs ํด๋ž˜์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๊ธฐ์—ฌํ•˜๊ธฐ

Highlight.js๋Š” ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ๋กœ, ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ๊ธฐ์—ฌ๋ฅผ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์—ฌ ๋ฐฉ๋ฒ•๊ณผ ๊ฐ€์ด๋“œ๋ผ์ธ์€ ์ €์žฅ์†Œ์˜ CONTRIBUTING.md ํŒŒ์ผ์— ์ƒ์„ธํžˆ ์„ค๋ช…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ฝ”๋“œ ์ˆ˜์ •, ๋ฒ„๊ทธ ๋ณด๊ณ  ๋“ฑ์˜ ๊ธฐ์—ฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ผ์ด์„ ์Šค

Highlight.js๋Š” MIT ๋ผ์ด์„ ์Šค๋กœ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐœ์ธ ๋ฐ ์ƒ์—…์ ์ธ ํ”„๋กœ์ ํŠธ์—์„œ ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์†Œ์Šค ์ฝ”๋“œ์˜ ์ˆ˜์ • ๋ฐ ์žฌ๋ฐฐํฌ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

Highlight.js GitHub ์ €์žฅ์†Œ๋Š” Highlight.js์— ๋Œ€ํ•œ ์ตœ์‹  ์ •๋ณด์™€ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ์ค‘์š”ํ•œ ์ž๋ฃŒ์ž…๋‹ˆ๋‹ค. Highlight.js๋ฅผ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•  ๋•Œ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๊ณณ์ด๋‹ˆ, ๊ด€์‹ฌ์ด ์žˆ๋Š” ๋ถ„๋“ค์€ ์ด ์ €์žฅ์†Œ๋ฅผ ์ฐธ๊ณ ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๋Œ“๊ธ€