웹사이트 도구
헤더와 푸터
사이트 페이지에 표준 헤더와 푸터를 제공할 수 있습니다. 이들은 문서 본문 또는 사이드바에 적용될 수 있습니다. 사용 가능한 옵션은 다음과 같습니다:
| Value | Description |
|---|---|
body-header |
각 페이지 본문 시작(제목/작성자 블록 아래)에 삽입할 마크다운. | |
body-footer |
각 페이지 본문 아래에 삽입할 마크다운. | |
margin-header |
오른쪽 여백 콘텐츠(목차 등) 위에 삽입할 마크다운. | |
margin-footer |
오른쪽 여백 콘텐츠 아래에 삽입할 마크다운. | |
예(_quarto.yml에 포함):
body-header: |
This page brought to you by <https://example.com>
margin-header: |
그림 링크는 웹사이트 각 레벨에서 동작하려면 /로 시작해야 합니다.
공지 바

웹사이트 상단에 눈에 띄는 맞춤형 바를 표시하는 공지를 추가할 수 있습니다. 경고, 프로모션, 업데이트 같은 중요한 정보를 강조하는 데 적합합니다. 아이콘을 설정할 수 있고, 닫기 가능 여부도 지정할 수 있으며, 굵게 같은 서식도 포함할 수 있습니다. 공지 바는 사이트 레이아웃에 맞게 below-navbar 또는 above-navbar 같은 위치로 배치할 수 있습니다.
예시 구성은 다음과 같습니다:
_quarto.yml
- 1
-
icon- 공지 바에 표시할 Bootstrap 아이콘. Bootstrap icons 중에서 선택합니다. - 2
-
dismissable- 사용자가 공지 바를 닫을 수 있는지 여부(true또는false). - 3
-
content- 공지 바 내용. 마크다운 서식을 사용할 수 있습니다. - 4
-
type- 공지 바 유형.primary,secondary,success,danger,warning,info,light,dark중 하나. - 5
-
position- 공지 바 위치.below-navbar또는above-navbar중 하나.
소셜 메타데이터
다음과 같은 추가 메타데이터를 포함해 웹사이트와 콘텐츠를 더 풍부하게 만들 수 있습니다:
- Favicon
- Twitter Cards
- Open Graph
웹사이트 도구를 사용할 때 중요한 점은, 이러한 도구를 웹사이트에서는 website 키 아래에 추가하지만 책에서는 동일한 옵션을 book 키 아래에 넣어야 한다는 것입니다. 예를 들어 웹사이트에서는 다음과 같이 파비콘과 트위터 카드를 추가합니다.
website:
favicon: logo.png
twitter-card: true
site-url: https://example.com책에서는 book 키를 사용합니다.
book:
favicon: logo.png
twitter-card: true
site-url: https://example.com아래 문서를 읽을 때 책을 작성 중이라면 website를 book으로 바꿔 생각하세요.
Favicon
사이트 파비콘은 브라우저 탭과 다른 사이트 링크에 표시되는 아이콘입니다. favicon 옵션으로 파비콘 이미지 경로를 지정합니다. 예:
website:
favicon: logo.pngTwitter Cards
Twitter Cards는 Twitter에 링크가 공유될 때 더 풍부한 미리보기를 제공합니다. 트윗에 사이트 링크가 포함되면 Twitter가 사이트를 크롤링해 Twitter Card 메타데이터를 가져옵니다. Twitter Card 메타데이터 자동 생성을 활성화하려면 _quarto.yml에 다음을 추가합니다:
website:
twitter-card: true이 경우 Quarto는 콘텐츠에 대해 제목, 설명, 미리보기 이미지를 자동으로 생성합니다. Quarto가 미리보기 이미지를 찾는 방식은 [Preview Images]를 참고하세요.
Twitter Card 생성에 사용할 추가 메타데이터도 제공할 수 있습니다:
| Key | Description |
|---|---|
title |
페이지 제목. Quarto는 페이지 메타데이터의 title을 자동으로 사용합니다. Twitter Card에만 다른 제목을 쓰고 싶다면 twitter-card 메타데이터에 title을 지정합니다. | |
description |
콘텐츠의 짧은 설명. Quarto는 페이지 메타데이터의 description을 자동으로 사용합니다. Twitter Card에만 다른 설명을 쓰고 싶다면 twitter-card 메타데이터에 description을 지정합니다. | |
image |
콘텐츠 미리보기 이미지 경로. 기본적으로 문서 메타데이터의
|
card-style |
summary 또는 summary_large_image. 지정하지 않으면 다른 메타데이터에 따라 적절한 스타일이 자동 선택됩니다. 자세한 내용은 여기를 참고하세요. | |
creator |
콘텐츠 작성자의 @username. @ 같은 특수 문자가 포함된 문자열은 YAML에서 따옴표로 감싸야 합니다. | |
site |
웹사이트의 @username. @ 같은 특수 문자가 포함된 문자열은 YAML에서 따옴표로 감싸야 합니다. | |
quarto.yml에서 Twitter Card 메타데이터를 지정하는 더 완전한 예시는 다음과 같습니다:
website:
twitter-card:
creator: "@dragonstyle"
site: "@rstudio"Quarto는 website: twitter-card의 전역 메타데이터와 문서 내부의 twitter-card 메타데이터를 자동으로 병합합니다. 이는 site 같은 전역 옵션과 title/image 같은 문서별 옵션을 함께 지정해야 할 때 유용합니다.
Open Graph
Open Graph protocol은 웹에서 링크를 더 풍부하게 공유할 수 있도록 해주는 사양입니다. Slack, Discord, Facebook, Linkedin 등에서 링크 미리보기를 개선합니다. Open Graph 메타데이터 자동 생성을 활성화하려면 _quarto.yml에 다음을 추가합니다:
website:
open-graph: true이 경우 Quarto는 콘텐츠의 제목, 설명, 미리보기 이미지를 자동으로 생성합니다. 미리보기 이미지 선택 방식은 [Preview Images]를 참고하세요.
Open Graph 메타데이터에 사용할 추가 메타데이터도 지정할 수 있습니다:
| Key | Description |
|---|---|
title |
페이지 제목. Quarto는 페이지 메타데이터의 title을 자동으로 사용합니다. Open Graph 메타데이터에만 다른 제목을 쓰고 싶다면 open-graph 메타데이터에 title을 지정합니다. | |
description |
콘텐츠의 짧은 설명. Quarto는 페이지 메타데이터의 description을 자동으로 사용합니다. Open Graph 메타데이터에만 다른 설명을 쓰고 싶다면 open-graph 메타데이터에 description을 지정합니다. | |
image |
콘텐츠 미리보기 이미지 경로. 기본적으로 문서 메타데이터의
|
locale |
Open Graph 메타데이터의 로케일. | |
site-name |
사이트 전체에 표시할 이름. open-graph 메타데이터에 명시하지 않으면 website:title 값을 사용합니다. | |
quarto.yml에서 Open Graph 메타데이터를 지정하는 더 완전한 예시는 다음과 같습니다:
website:
open-graph:
locale: es_ES
site-name: QuartoQuarto는 website: open-graph의 전역 메타데이터와 문서 내부의 open-graph 메타데이터를 자동으로 병합합니다. 이는 site 같은 전역 옵션과 title/image 같은 문서별 옵션을 함께 지정해야 할 때 유용합니다.
미리보기 이미지
미리보기 이미지는 다음과 같은 방법으로 지정할 수 있습니다:
전체 URL: 적절한 메타데이터의
image필드에 미리보기 이미지의 전체 URL을 지정합니다. 예:page.qmd
title: "My Document" image: "https://quarto.org/docs/websites/images/tools.png"상대 경로: 문서 상대 경로(예:
images/preview-code.png) 또는 프로젝트 상대 경로(예:/images/preview-code.png)를 지정할 수 있습니다. 이 경우 사이트 메타데이터에site-url을 제공해야 합니다. 예:_quarto.yml
website: site-url: "https://www.quarto.org"그리고 문서 프론트매터에서:
page.qmd
title: "My Document" image: "/docs/websites/images/tools.png"이미지 클래스: 페이지에 렌더링되는 이미지에
preview-image클래스를 지정하면 미리보기 이미지로 사용할 수 있습니다. Quarto는 해당 클래스를 가진 첫 번째 이미지를 사용합니다. 예:{.preview-image}이 클래스가 있는 이미지를 사용할 때도 사이트 메타데이터에
site-url이 필요합니다.이미지 파일명: 위의 방법으로 미리보기 이미지를 지정하지 않으면, Quarto는 렌더링된 문서 안에서 다음 이름 중 하나를 가진 이미지를 찾아 사용합니다:
preview.png,feature.png,cover.png,thumbnail.png.
어떤 방식으로도 미리보기 이미지가 지정되지 않은 페이지에 대해 기본값을 제공하려면 사이트 수준에서 지정합니다:
_quarto.yml
website:
image: "https://quarto.org/quarto-dark-bg.jpeg"미리보기 이미지 자동 탐색을 막고 싶다면 image를 false로 설정합니다:
page.qmd
---
image: false
---Google Analytics
_quarto.yml에 google-analytics 키를 추가해 Google Analytics를 웹사이트에 추가할 수 있습니다. 가장 간단한 형태는 Google Analytics tracking Id(예: UA-xxxxxxx) 또는 Google Tag measurement Id(예: G-xxxxxxx)를 전달하는 것입니다:
website:
google-analytics: "UA-XXXXXXXX"Quarto는 키 자체를 사용해 적절한 방식(analytics.js 또는 gtag)으로 Google Analytics를 임베드합니다.
더 세밀한 제어를 위해 다음 키를 사용할 수 있습니다.
| Key | Description |
|---|---|
tracking-id |
웹사이트의 Google tracking Id 또는 measurement Id. | |
storage |
cookies - 쿠키를 사용해 사용자/세션 고유 식별 정보를 저장(기본값). | none - 쿠키를 사용하지 않고 사용자/세션 식별 정보를 저장하지 않음. | 스토리지 옵션 선택에 대한 자세한 내용은 [Storage]를 참고하세요. |
anonymize-ip |
사용자 IP 주소 익명화. 자세한 내용은 Google Analytics IP Anonymization 참고. | |
version |
사용할 Google Analytics 버전. 현재 3(analytics.js) 또는 4(gtag) 지원. tracking-id에 따라 자동 감지되지만 직접 지정할 수 있습니다. | |
스토리지
Google Analytics는 쿠키로 고유 사용자/세션을 구분합니다. 쿠키를 저장소로 사용한다면 [Cookie Consent]를 활성화해 사용자가 추적을 제어할 수 있도록 해야 할지 고려하세요.
storage를 none으로 설정하면 다음과 같은 효과가 있습니다:
Google Analytics v3(analytics.js)
추적 쿠키를 사용하지 않습니다. 개별 페이지 조회는 정상적으로 추적되어 어떤 페이지가 얼마나 조회되는지 확인할 수 있습니다. 하지만 고유 사용자/세션 추적은 쿠키가 없으므로 올바르게 보고되지 않습니다.Google Tags(gtag)
광고/애널리틱스 추적 쿠키에 대한 사용자 동의가 보류됩니다. 이 모드에서는 사용자 식별 정보 없이 데이터가 수집되지만, 현재 Google Analytics 보고서에는 표시되지 않습니다.
쿠키 동의
Quarto는 쿠키를 설정하는 스크립트 실행 전에 쿠키 동의를 요청할 수 있는 Cookie Consent 기능을 제공합니다.
사용자의 쿠키 선호도는 Google Analytics를 자동으로 제어하며, 추가한 사용자 정의 스크립트에도 적용할 수 있습니다([Custom Scripts and Cookie Consent] 참고). 기본 쿠키 동의 요청을 활성화하려면 다음을 사용합니다:
website:
cookie-consent: true동의 화면의 모양과 동작을 다음 옵션으로 더 사용자 정의할 수 있습니다:
| Key | Description |
|---|---|
type |
요청할 동의 유형. 다음 중 하나: | implied - (기본값) 쿠키 사용을 알리고 선호도 변경을 허용하지만, 사용자가 변경하지 않는 한 쿠키를 차단하지 않습니다. | express - 사용자가 명시적으로 동의할 때까지 쿠키를 차단합니다(동의하지 않으면 계속 차단). | |
style |
동의 배너 스타일: | simple - (기본값) 웹사이트 오른쪽 하단의 간단한 다이얼로그. | headline - 웹사이트 상단 전체 너비 배너. | interstitial - 웹사이트 전체에 반투명 오버레이. | standalone - 웹사이트 전체를 덮는 불투명 오버레이. | |
palette |
동의 배너의 다크/라이트 모드: | light - 밝은 배너. | dark - 어두운 배너. | |
language |
쿠키 동의 프롬프트에 사용할 언어(IETF 언어 태그). | 지정하지 않으면 문서 언어를 사용합니다. | |
policy-url |
사이트의 쿠키/프라이버시 정책 URL. | |
prefs-text |
웹사이트 푸터에 표시할 쿠키 선호도 링크 텍스트. | |
커스텀 예시는 다음과 같습니다:
website:
cookie-consent:
type: express
style: headline
palette: dark
google-analytics:
tracking-id: "G-XXXXXXX"
anonymize-ip: true쿠키 선호도
새 사용자가 사이트를 방문할 때 동의를 요청하는 것 외에도, Cookie Consent는 웹사이트 푸터에 쿠키 선호도 링크를 추가합니다. prefs-text로 링크 텍스트를 제어할 수 있습니다. 이 링크를 직접 배치하고 싶다면 #open_preferences_center id를 가진 링크를 사이트에 추가하면 Cookie Consent가 푸터에 링크를 추가하지 않습니다. 예:
Change [cookie preferences]{#open_preferences_center}사용자 정의 스크립트와 쿠키 동의
Cookie Consent는 사용자가 동의하기 전에는 스크립트 실행을 막습니다. 사용자 정의 스크립트를 Cookie Consent로 제어하려면:
- 스크립트 태그를
type='text/plain'으로 넣습니다(사용자가 동의하면 type이text/javascript로 바뀌고 스크립트가 실행됨).
스크립트 태그에
cookie-consent속성을 추가하고 다음 4단계 중 하나로 설정합니다:Level Description strictly-necessary반드시 필요한 스크립트로 자동 로드되며 사용자가 비활성화할 수 없습니다. | functionality기본 기능에 필요한 스크립트(예: 사용자 언어 선호도 기억). | tracking사용자 추적에 사용하는 스크립트(예: Google Analytics). | targeting광고 타게팅 목적의 스크립트(예: Google AdSense 리마케팅). |
사용자 추적에 사용하는 스크립트 예시는 다음과 같습니다:
<script type="text/plain" cookie-consent="tracking">
// My tracking JS code here
</script>사이트 리소스
입력/설정 파일 외에도 사이트에는 다양한 리소스(예: 이미지)가 포함될 수 있으며, 이를 사이트와 함께 배포해야 합니다. Quarto는 사이트 내에서 참조된 모든 파일을 자동으로 감지해 출력 디렉터리(예: _site)로 복사합니다.
Quarto는 다음 파일도 인식해 출력 디렉터리로 복사합니다:
404.html- 404 페이지를 제공하는 한 방법robots.txt- Robots Exclusion Protocol에서 정의한 파일로, 검색 엔진 크롤러가 접근할 수 있는/없는 페이지를 지정_redirects- 일부 배포 제공자가 페이지 리디렉션을 제공할 때 사용하는 파일(예: Netlify)CNAME- 일부 배포 제공자가 커스텀 도메인을 지정할 때 사용하는 파일(예: GitHub Pages).nojekyll- GitHub Pages가 Jekyll 빌드를 건너뛰도록 하는 파일(예:docs/에서 배포)
자동 감지가 실패하거나 사이트에서 명시적으로 링크되지 않은 파일을 배포하려면 설정에 resources 항목을 추가할 수 있습니다. 예를 들어 프로젝트 디렉터리 내 모든 Excel 스프레드시트를 포함하려면:
project:
type: website
resources:
- "*.xlsx"YAML은 영숫자가 아닌 문자로 시작하는 문자열을 따옴표로 감싸야 하므로 *.xlsx를 따옴표로 감쌌습니다.
개별 파일에도 resources 메타데이터 값을 추가할 수 있습니다. 예:
title: "My Page"
resources:
- "sheet.xlsx"이미지는 가장 일반적으로 사용되는 리소스 유형입니다. 사이트 여러 페이지에서 참조할 전역 이미지를 가지고 있다면 사이트 절대 경로로 참조하면 배포 시 자동으로 상대 경로로 변환됩니다. 예:
다크 모드
Quarto 웹사이트는 라이트/다크 모드를 모두 지원할 수 있습니다. 예를 들어 flatly와 darkly 테마를(라이트/다크 쌍으로 설계됨) 다음과 같이 사용할 수 있습니다:
theme:
light: flatly
dark: darkly다크/라이트 테마 선택에 대한 자세한 내용은 Dark Mode를 참고하세요.
| Light | Dark |
|---|---|
| | |
|
활성화되면 사용자가 웹사이트 모양을 제어할 수 있는 토글이 표시됩니다. 토글은 다음과 같이 내비게이션에 자동 추가됩니다:
- 내비게이션 바가 있으면 토글이 바 오른쪽 상단에 표시됩니다.
- 내비게이션 바가 없고 사이드바가 있으면, 사이드바 도구가 표시되는 위치(사이드바 제목/로고 옆)에 표시됩니다.
- 내비게이션 바와 사이드바가 모두 없으면 토글이 페이지 오른쪽 상단에 표시됩니다.
|
|