사용자 정의 AST 노드

개요

Quarto는 이제 Pandoc 필터에서 사용자 정의 AST 노드를 지원합니다. 이를 통해 Lua 필터를 정의하고 사용하는 데 더 큰 유연성이 생깁니다.

AST에 대한 더 큰 변화는 천천히 적용할 예정이지만, 현재는 다음 객체들이 사용자 정의 AST 노드입니다:

예시: Callouts

이전 Quarto 버전에서는 callout이 callout으로 시작하는 클래스를 가진 div로 직접 표현되었고, 콘텐츠는 특정 방식으로 배치되었습니다.

문서를 작성할 때 이 문법은 변하지 않습니다. 하지만 문서를 처리할 때 callout div는 이제 사용자 정의 AST 노드로 표현되며, Lua 필터에서 직접 처리할 수 있습니다. Quarto 1.3에서는 callout을 Lua 필터에서 더 직접적으로 포착할 수 있습니다. 예를 들어 다음은 모든 callout을 “caution” 유형으로 강제하는 필터입니다:

function Callout(callout)
  -- do something with the callout
  callout.type = "caution"

  -- note that custom AST nodes are passed by reference. You can
  -- return the value if you choose, but you do not need to.
end

마지막으로 사용자 정의 AST 노드 생성자는 quarto 객체에서 사용할 수 있습니다: quarto.Callout, quarto.Tabset 등. 자세한 내용은 위 페이지를 참고하세요.