[javascript] Marked에서 코드 블록 생성과 하이라이팅을 위해 외부 라이브러리를 사용할 수 있나요?

다음은 Marked와 함께 사용할 수 있는 Prism을 예로 들어 보겠습니다. 먼저, Prism 라이브러리를 다운로드하고 HTML 문서에 추가합니다. 그런 다음, Marked의 renderer 옵션을 사용하여 코드 블록을 Prism으로 하이라이팅할 수 있습니다.

아래는 사용 예시입니다:

// Prism 라이브러리 다운로드 후 HTML 문서에 추가

const marked = require('marked');
const prism = require('prismjs');

// 마크다운 텍스트
const markdownText = `
\`\`\`javascript
const hello = '안녕하세요!';
console.log(hello);
\`\`\`
`;

// 하이라이트 된 HTML 가져오기
const highlight = (code, lang) => {
  const grammar = prism.languages[lang];
  if (!grammar) {
    return code;
  }
  return prism.highlight(code, grammar, lang);
};

// Marked 설정
const renderer = new marked.Renderer();
renderer.code = (code, lang) => {
  const highlightedCode = highlight(code, lang);
  return `<pre><code class="language-${lang}">${highlightedCode}</code></pre>`;
};

marked.setOptions({
  renderer: renderer
});

// 마크다운을 HTML로 변환
const html = marked(markdownText);

// 결과 출력
console.log(html);

위의 예제에서 marked 모듈을 사용하여 마크다운 텍스트를 HTML로 변환할 수 있습니다. renderer 객체를 사용하여 코드 블록을 하이라이팅하고, Prism의 highlight 함수를 사용하여 코드를 하이라이팅합니다. 이렇게 하면 마크다운 문서에서 코드 블록을 적절하게 하이라이팅된 HTML로 표시할 수 있습니다.

자세한 내용은 Marked와 함께 사용할 수 있는 다른 하이라이팅 라이브러리의 공식 문서를 참조하시기 바랍니다.