브랜드 확장

브랜드 확장은 brand.yml 파일과 관련 자산을 제공하는 Quarto 확장입니다.

Important

현재 브랜드 확장은 프로젝트 수준 메타데이터를 병합하므로, 설치된 위치에 _quarto.yml 프로젝트가 있어야만 사용할 수 있습니다. 이 제한은 향후 해제될 수 있습니다.

빠른 시작

여기서는 간단한 브랜드 확장을 만드는 방법을 설명합니다. 이를 위해 quarto create 명령을 사용합니다. VS Code, Positron, RStudio를 사용 중이라면 각 통합 터미널에서 quarto create를 실행하세요.

시작하려면 브랜드 확장을 만들 상위 디렉터리에서 quarto create extension brand를 실행하세요:

Terminal
$ quarto create extension brand
 ? Extension Name › my-brand

위와 같이 확장 이름을 묻게 됩니다. my-brand를 입력하고 Enter를 누르면 브랜드 확장이 생성됩니다:

? Extension Name › my-brand
Creating extension at /{...}/my-brand:
  - Created _quarto.yml
  - Created README.md
  - Created _extensions/my-brand/brand.yml
  - Created _extensions/my-brand/_extension.yml
  - Created .gitignore
  - Created example.qmd
? Open With
 positron
  vscode
  rstudio
  (don't open)

VS Code, Positron, RStudio에서 실행 중이라면 새 창이 열리며 브랜드 프로젝트가 표시됩니다.

브랜드 확장의 구성

_extensions/my-brand/의 파일 구성은 다음과 같습니다:

_extensions/my-brand/_extension.yml
title: My-brand
author: Gordon Woodhull
version: 1.0.0
quarto-required: ">=99.9.0"
contributes:
  metadata:
    project:
      brand: brand.yml
_extensions/mybrand/brand.yml
# 다크 모드를 활성화하는 최소한의 brand.yml
# 브랜드 색상, 로고, 타이포그래피로 교체하세요!
color:
  background:
    light: "#fff"
    dark: "#000"
  foreground:
    light: "#000"
    dark: "#fff"

이는 다크 모드를 활성화하기에 충분한 최소한의 brand.yml입니다. 브랜드 확장 루트에 있는 example.qmd를 미리보기하면

quarto preview example.qmd

오른쪽 상단에 다크 모드 토글이 보이고, 클릭하면 검은 배경에 흰 글자가 표시되는 것을 확인할 수 있습니다.

이 예시와 일반적인 브랜드 확장은 설치 위치에 _quarto.yml 프로젝트가 필요합니다. 이는 메타데이터가 project 키를 통해 병합되기 때문입니다.

이 예시를 위해 가장 기본적인 Quarto 프로젝트를 제공했습니다:

"_quarto.yml`
project:
  type: default
Note

예시 brand.yml은 라이트/다크 통합 브랜드 기능을 사용합니다. 이 기능에 대한 문서는 준비 중입니다.

brand.yml의 색상/타이포그래피 섹션에 있는 모든 색상은 light/dark 구성으로 지정하거나 문자열로 지정할 수 있습니다. 문자열이면 라이트/다크 모드에 동일하게 사용됩니다.

이는 색상에만 적용됩니다.

브랜드 확장의 동작 방식

브랜드 파일 경로는 _quarto.yml 프로젝트를 기준으로 해석됩니다.

또한 로고나 폰트 같은 자산은 브랜드 파일을 기준으로 해석됩니다.

따라서 확장이 Quarto 프로젝트에 설치되면 모든 경로가 결국 프로젝트 기준으로 해석됩니다.

브랜드는 project.brand 키로 해석되기 때문에, 브랜드 확장은 설치 위치에 _quarto.yml 프로젝트가 필요합니다. 프로젝트 유형은 무엇이든 가능합니다. 이 제한은 향후 해제될 수 있습니다.