노트북 필터

개요

Quarto를 염두에 두지 않고 만든 기존 Jupyter 노트북을 렌더링하는 경우, 마크다운으로 변환하기 전에 노트북을 전처리하고 싶을 수 있습니다. 이는 하나 이상의 ipynb-filters를 지정해 수행할 수 있습니다. 이 필터들은 노트북의 JSON 표현stdin으로 받고, 변환된 JSON을 stdout으로 출력해야 합니다.

Note

노트북 필터의 목적은 기존 .ipynb 파일을 Quarto에서 사용할 수 있게 변환하는 것입니다. 따라서 노트북 필터는 원본 입력이 .ipynb일 때만 실행되며(.qmd에는 실행되지 않습니다).

예제

예를 들어, 다음 노트북 필터는 nbformat 패키지로 노트북을 읽고 각 코드 셀의 소스 앞에 주석을 추가한 뒤 stdout으로 다시 출력합니다:

import sys
import nbformat

# stdin에서 노트북 읽기
nb = nbformat.reads(sys.stdin.read(), as_version = 4)

# 각 셀의 소스에 주석 추가
for index, cell in enumerate(nb.cells):
  if cell.cell_type == 'code':
     cell.source = "# comment\n" + cell.source
  
# stdout으로 노트북 출력
nbformat.write(nb, sys.stdout)

이 필터는 ipynb-filters 옵션(문서 또는 프로젝트 수준에서 지정)으로 실행되도록 구성할 수 있습니다:

---
ipynb-filters:
  - filter.py
---

필터의 현재 작업 디렉터리는 입력 노트북의 위치로 설정됩니다.