[javascript] Marked의 특정 부분만 선택적으로 변환하는 방법은?

마크다운으로 작성된 텍스트를 HTML로 변환하려면 marked() 함수를 사용하면 됩니다. 이 함수에 마크다운 텍스트를 전달하면 변환된 HTML을 반환합니다. 하지만 이 경우에는 전체 텍스트가 변환되므로 특정 부분만 선택적으로 변환하는 기능이 없습니다.

하지만 Marked는 Renderer라는 객체를 사용하여 변환된 HTML의 각 요소에 대한 제어를 제공합니다. Renderer를 사용하면 특정 요소의 변환을 커스터마이징할 수 있습니다.

예를 들어, 특정 헤더 요소만 변환하려면 다음과 같이 할 수 있습니다.

const marked = require('marked');

const renderer = new marked.Renderer();
renderer.heading = function (text, level) {
  // 1 이상의 레벨에서만 헤더를 변환
  if (level >= 1) {
    return `<h${level}>${text}</h${level}>`;
  }
  // 그 외의 레벨에서는 변환하지 않고 빈 문자열 반환
  return '';
};

const markdownText = '# 제목 1\n## 제목 2\n### 제목 3';
const html = marked(markdownText, { renderer });

console.log(html);

위의 코드는 Renderer 객체를 생성하고 heading 함수를 오버라이딩하여 헤더 요소를 변환하는 방법을 보여줍니다. 이 예제에서는 레벨 1 이상의 헤더만 변환하고 나머지 헤더는 변환하지 않고 빈 문자열을 반환하도록 설정되어 있습니다.

이렇게 하면 선택적으로 특정 부분만 변환할 수 있습니다. 다른 요소에 대해서도 마찬가지로 유사한 방식으로 커스터마이징할 수 있습니다.

더 자세한 내용은 Marked 공식 문서를 참조하시기 바랍니다.