[javascript] Marked를 사용하여 마크다운 파일의 메타데이터를 추출하는 방법은?

먼저, Marked를 프로젝트에 설치해야 합니다. npm을 사용한다면 다음 명령어를 실행하여 Marked를 설치하세요:

npm install marked

Marked를 설치했다면, 다음과 같이 사용하여 마크다운 파일의 메타데이터를 추출할 수 있습니다:

const fs = require('fs');
const marked = require('marked');

const markdownContent = fs.readFileSync('example.md', 'utf-8'); // 추출할 마크다운 파일
const tokens = marked.lexer(markdownContent); // 마크다운 파일을 토큰으로 변환

let metadata = {};
if (tokens.length > 0 && tokens[0].type === 'heading' && tokens[0].depth === 1) {
  // 첫 번째 토큰이 1단계 제목인 경우에만 메타데이터 추출
  const heading = tokens.shift();
  metadata.title = heading.text;
}

// 토큰을 순회하며 메타데이터 추출
for (let i = 0; i < tokens.length; i++) {
  const token = tokens[i];
  if (token.type === 'paragraph' && token.text.startsWith('**')) { // 메타데이터는 볼드로 표시됨
    const parts = token.text.split(': ').map(part => part.trim());
    if (parts.length === 2) {
      const key = parts[0].substring(2).toLowerCase();
      metadata[key] = parts[1];
    }
  }
}

console.log(metadata); // 추출한 메타데이터 출력

위의 코드는 example.md 파일에서 메타데이터를 추출합니다. 메타데이터는 다음과 같은 형식으로 작성되어야 합니다:

# 제목

**키: 값**

본문...

위의 예제는 첫 번째 토큰이 1단계 제목인 경우와, 키: 값 형식으로 작성된 메타데이터를 추출합니다. 필요에 따라 코드를 수정하여 다른 형식의 메타데이터를 추출할 수도 있습니다.

마크다운 파일의 메타데이터를 추출하는 방법에 대해 설명했습니다. Marked를 사용하면 더 다양한 기능을 활용할 수 있으니, 공식 문서와 예제 코드를 참고하시면 도움이 될 것입니다.