4.3 템플릿

Pandoc은 Markdown을 다른 출력 형식으로 변환할 때 내부적으로 템플릿을 사용합니다. 템플릿은$variable$형식의 일부 변수를 포함하는 일반 텍스트 파일입니다. 이러한 변수는 Pandoc에서 생성한 값으로 대체됩니다. 다음은 HTML 출력을 위한 매우 간단한 템플릿입니다.

<html>
  <head>
    <title>$title$</title>
  </head>
  
  <body>
  $body$
  </body>
</html>

두 개의 변수 titlebody가 있습니다. title의 값은 YAML 메타 데이터의title 필드에서 가져오고body는 Markdown 입력 문서의 본문에서 생성된 HTML 코드입니다. 예를 들어 Markdown 문서가 있다고 가정합니다.

---
title: A Nice Book
---

# Introduction

This is a **nice** book!

위 템플릿을 사용하여 HTML 문서를 생성하면 소스 코드는 다음과 같습니다.

<html>
  <head>
    <title>A Nice Book</title>
  </head>
  
  <body>
  
  <h1>Introduction</h1>
  
  <p>This is a <strong>nice</strong> book!</p>
  
  </body>
</html>

실제 HTML, LaTeX 및 EPUB 템플릿은 더 복잡하지만 아이디어는 동일합니다. 사용 가능한 변수를 알아야 합니다. 일부 변수는 내장 Pandoc 변수이고 일부는 YAML 메타 데이터에서 사용자가 정의하거나 명령 줄 옵션-V 또는--variable에서 전달될 수 있습니다. 일부 변수는 특정 출력 형식에서만 의미가 있습니다. 예를 들어documentclass 변수는 LaTeX 출력에서만 사용됩니다. 이러한 변수에 대한 자세한 내용은 Pandoc 설명서를 참조하십시오. 모든 기본 Pandoc 템플릿은 GitHub 저장소 https://github.com/jgm/pandoc-templates에서 찾을 수 있습니다.

HTML 출력의 경우 bookdown에는 템플릿에 추가 주석 토큰이 필요하며 섹션 3.1.2에서 설명했습니다.