본문으로 건너뛰기
가이드
이 페이지의 내용
  1. 키
  2. 새 창으로 여는 링크
  3. 헤드와 SEO
  4. 언어
  5. 컴포넌트 레지스트리
  6. 다음
페이지 도구

설정

모두 선택 사항입니다. 다른 플러그인과 겹치지 않도록 설정은 modootoday: 키 하나에 모입니다.

참고

이 페이지는 영어 원문의 번역입니다. 내용이 다르면 영어 문서가 우선합니다.

키

modootoday:
  color_scheme: auto  # auto | auto-dark | auto-light | light | dark
  components: [callout, badge, cta, card, tabs]
  tokens: {primary: "#4f46e5", radius: "0.5rem"}
  nav: main
키 기본값 효과
badges true 상태 코드 스팬을 배지로 바꿈. false면 코드 그대로
color_scheme auto auto는 OS를 따름. auto-dark·auto-light는 다크·라이트로 시작하고 전환 버튼을 유지(독자의 선택은 기억). light·dark는 전환 버튼 없이 고정. 시작 색은 HTML에 들어가므로 깜빡임이 없음
components 전체 내보낼 CSS와 JS를 제한합니다. lists, bleed, terminal은 항상 포함되며, 그 시트는 lists: 또는 hero: {checks: true}, bleed:, chrome: terminal로 켠 페이지에만 연결됩니다
css_layers false 테마 CSS를 @layer mt.*로 감쌈
nav main _data/nav/의 내비게이션 파일. items:가 있는 항목은 그룹이 됨. 이전·다음 링크는 이 파일 순서(그룹 자체 페이지, 그다음 하위 항목)를 따름
sidebar auto auto면 내비게이션에 그룹이 있을 때 doc 페이지에 사이드바를 붙임. true는 항상, false는 끔. 64rem보다 좁으면 본문 위의 접이식 메뉴가 됨. front matter의 sidebar: false로 한 페이지에서만 숨김
page_actions true Markdown 버전이 있는 페이지에 Markdown으로 보기, 페이지 복사, AI용으로 복사(출처 URL 뒤에 Markdown) 메뉴를 표시. 여기나 front matter에서 false면 끔. 아예 빼려면 components에서 page-actions를 제외
tokens, tokens_dark 테마 값 시맨틱 디자인 토큰을 인라인으로 덮어씀
twins 스텁 front matter 없는 Markdown 버전은 source (에이전트 참고)
seo true false면 내장 canonical, hreflang, Open Graph 태그를 뺌
hreflang seo를 따름 true면 seo: false여도 hreflang 대체 링크를 유지 (jekyll-seo-tag를 쓰는 사이트용)
schema url이 있으면 켜짐 schema.org JSON-LD 그래프: publisher, search_url, layouts. false면 끔. 구조화 데이터 참고
languages 없음 hreflang용 언어 코드, 예: [en, ko] 헤더의 사이트 제목은 해당 언어의 홈(/<lang>/)이 있으면 그곳으로 연결됩니다.
full_languages 없음 모든 페이지를 번역하는 languages 안의 코드, 예: [ko, ja] modootoday-check --i18n-pages는 이 언어의 번역이 없는 기본 언어 페이지마다 경고합니다.
lists 없음 {link_chips: true, titled_items: true} 일반 섹션과 페이지에서 링크만 있는 목록은 ul.mt-chips가 되고, **제목**:으로 시작하는 항목은 strong.mt-item-title을 받습니다. 선택 시트 lists가 이것과 hero: {checks: true}를 꾸미며, 사용하는 페이지에만 연결됩니다.
language_switcher 없음 header(지구본 버튼과 드롭다운 메뉴, 언어 수와 상관없이 폭 고정) 또는 footer(언어 이름 목록)로 languages 기반 언어 전환기를 표시. 각 링크는 이 페이지의 번역본, 없으면 그 언어의 첫 페이지로 이동. 언어가 둘 미만이면 렌더하지 않음. 메뉴는 JavaScript 없이 열리고, menu.js가 Esc, 화살표 키, 바깥 클릭 시 닫기를 더함
og_image 없음 기본 Open Graph 이미지. front matter의 image:가 우선
feed false true면 /feed.xml 링크 추가 (plugins에 jekyll-feed 필요)
logo 없음 brand면 사이트 제목 앞에 테마 브랜드 마크를 currentColor(brand 토큰이라 라이트·다크를 따라감)로 표시. 경로를 주면 그 이미지를 표시(장식용, alt=""). 다른 로고는 modootoday/brand/logo.html을 덮어쓰기
favicon 없음 brand면 테마 브랜드 마크를 SVG, 32px PNG, Apple 터치 아이콘으로 연결. 경로를 주면 그 아이콘을 연결
csp 없음 strict면 사전 페인트 스크립트를 인라인 대신 파일로 불러옴
viewport_fit cover auto면 노치 아래까지 그리지 않고 페이지를 안전 영역 안에 둠 (접근성 참고)
theme_color 페이지 배경 브라우저 막대 색: "#hex" 하나, {light: "#hex", dark: "#hex"}, 또는 태그를 빼려면 false
edit_url 없음 “이 페이지 편집” 링크의 앞부분, /로 끝남
archive 없음 아카이브 페이지 URL, 예: {tags: /tags/, categories: /categories/}. 글 하단 링크가 여기로 이어짐(글과 아카이브 참고)
mermaid 꺼짐 {enabled: true, src:, integrity:, theme: auto}면 ```mermaid 펜스가 있는 페이지에서 렌더링합니다. src는 버전을 고정한 https URL과 SRI integrity 해시, 또는 사이트 안의 경로입니다. CDN을 쓰면 script-src에 그 출처가 추가되고 방문자 IP 주소가 CDN에 전달됩니다. 수식과 다이어그램 참고
math 꺼짐 {enabled: true, engine: katex, src:, css:, integrity: {js:, css:}, auto_render_src:, auto_render_integrity:, inline: false}면 ```math 펜스와 $$ 블록이 있는 페이지에서 KaTeX로 렌더링합니다. inline: true면 $…$도 렌더링합니다. CDN을 쓰면 script-src, style-src, font-src에 그 출처가 추가됩니다. 수식과 다이어그램 참고
external_links 없음 new_window: true면 외부 링크(url:로 시작하지 않는 링크)를 모두 새 창에서 엽니다. icon: false면 화살표를 숨깁니다. 새 창으로 여는 링크 참고
blog 없음 블로그 설정(per_page, variant, related, share, reading_time 등). 블로그와 뉴스 참고
news 없음 뉴스 설정(첫 화면의 sections: 등). 블로그와 뉴스 참고
css split split는 작은 핵심 시트와 페이지가 쓰는 컴포넌트 시트만 연결합니다. bundle은 모든 것이 담긴 시트 하나를 연결합니다
banner 없음 {text: "…", url: /path/, link: "더 보기"}는 건너뛰기 링크 아래에 사이트 전체 공지 막대를 표시합니다
back_to_top false true는 모든 페이지 끝에 맨 위로 링크를 추가합니다
loading false true는 직접 작성한 스크립트가 추가하는 자리 표시자를 위해 스피너·스켈레톤 시트를 모든 페이지에서 불러옵니다. Markdown에서 이를 쓰는 페이지는 알아서 불러옵니다
subscribe 없음 {action: https://…}는 c: subscribe 이메일 양식이 전송되는 주소입니다

modootoday-check가 모든 키를 검사합니다. 안정 이름 전체 목록은 공개 API에 있습니다.

새 창으로 여는 링크

새 창으로 여는 건 직접 켤 때만 동작합니다. 링크마다 켜거나, 외부 링크 전체에 켤 수 있습니다.

# _config.yml: 외부 링크 전체
modootoday:
  external_links:
    new_window: true
    icon: true        # false면 화살표를 숨깁니다
# 링크마다: 메뉴, 카드, 버튼, 링크 카드, 디렉터리 항목, 요금제 버튼, 푸터 링크
- {title: "상태 페이지", url: "https://status.example.com", new_window: true}
- {title: "포럼", url: "https://forum.example.com", target: _blank}
[릴리스 노트](https://github.com/modootoday/jekyll-theme-modootoday/releases "new-window")

이런 링크에는 target="_blank", rel="noopener noreferrer", CSS로 그린 작은 화살표, 그리고 스크린 리더가 aria-describedby로 읽는 숨은 안내(“새 창에서 열림”, 페이지 언어로 번역)가 붙습니다. 스크립트를 쓰지 않아서 엄격한 콘텐츠 보안 정책(CSP)에서도 그대로 동작합니다. 사이트 설정을 켰더라도 링크에 new_window: false를 쓰면 그 링크는 같은 창에서 열립니다.

헤드와 SEO

url:을 설정하면 모든 페이지에 canonical 링크와 Open Graph 태그가 들어가며 플러그인이 필요 없습니다. languages:를 설정하면 여러 언어로 있는 페이지끼리 hreflang으로 연결됩니다. 사이트맵과 피드는 GitHub Pages가 허용하는 플러그인으로 직접 켭니다.

url: https://example.github.io
modootoday:
  languages: [en, ko]
  edit_url: https://github.com/OWNER/REPO/edit/main/docs/
plugins: [jekyll-remote-theme, jekyll-sitemap, jekyll-feed]

jekyll-seo-tag를 쓰려면 seo: false로 두고 _includes/head-custom.html에 jekyll-seo-tag의 seo 태그를 넣으세요. front matter의 last_modified_at:으로 수정일을 표시할 수 있습니다. 이동 경로의 첫 항목은 홈 페이지 front matter에 short_title:이 있으면 그것을, 없으면 title을 보여 줍니다. 엄격한 콘텐츠 보안 정책은 CSP를 보세요.

언어

인터페이스 문자열은 _data/i18n/<lang>.yml에, 페이지는 <lang>/에 둡니다.

language: 한국어
site_title: 모두의오늘 테마   # 헤더, <title>, og:site_name, JSON-LD 이름. 없으면 site.title
callout: {note: 참고, tip: 팁, important: 중요, warning: 경고, caution: 주의}
tabs: {label: 설치 방법}
status: {available: 사용 가능, partial: 일부 구현, planned: 계획}
skip: 본문으로 건너뛰기

lang:만 지정하면 테마가 표시하는 문구(본문 바로가기, 내비게이션, 알림 상자, 상태 배지, 목차, 이전/다음 페이지, 코드 복사, 검색, 언어 메뉴)가 23개 언어로 바로 현지화됩니다. 지원 언어는 en, zh-CN, zh-TW, ja, ko, tr, ru, vi, th, de, es, fr, uk, pl, pt-BR, ar, fa, id, it, el, ml, ur-Latn, ro입니다. GitHub Pages에서도, Jekyll 4에서도 아무것도 복사할 필요가 없습니다. 테마에 없는 지역 코드는 기본 언어를 따르고(pt → pt-BR, zh → zh-CN), 그 밖의 언어는 영어로 표시됩니다.

각 문구는 다음 순서로 정해집니다.

  1. 사이트의 _data/i18n/<lang>.yml (키 단위)
  2. 테마에 들어 있는 해당 언어 카탈로그
  3. 영어

그래서 사이트 카탈로그에는 바꾸고 싶은 키와 직접 만든 컴포넌트가 쓰는 키만 넣으면 됩니다. 확장자는 .yml을 쓰세요. 검사기는 .yaml을 오류로 처리합니다. 테마 문구에서 시작하고 싶다면 카탈로그를 복사한 뒤 검사하세요.

modootoday-check . _site --i18n-init=ko   # optional: copy the theme's ko.yml to edit
modootoday-check . _site --i18n           # unknown keys and placeholder mismatches

테마가 제공하지 않는 언어는 영어 카탈로그와 같은 키로 _data/i18n/<code>.yml을 만들고 languages에 코드를 추가하세요. 아랍어, 페르시아어, 히브리어, 우르두어 같은 RTL 언어 페이지에는 dir="rtl"이 붙습니다(ur-Latn은 왼쪽에서 오른쪽). 카탈로그나 front matter의 direction: rtl 또는 ltr로 바꿀 수 있습니다. 페이지 본문은 카탈로그가 아니라 <lang>/ 아래 Markdown으로 번역합니다.

경로가 다른 번역 페이지끼리는 front matter에 같은 ref:를 둡니다. 예를 들어 guides/start.md와 ko/guides/sijak.md에 모두 ref: guide를 씁니다. 그러면 hreflang 링크와 언어 선택기가 그 페이지를 사용합니다. ref:가 있는데 번역이 없는 페이지는 hreflang에서 빠지고, 언어 선택기는 그 언어의 홈으로 보냅니다. include와 레이아웃에서 modootoday/link.html에 ref="guide"를 주면 현재 언어의 ref: guide 페이지 URL을, 없으면 기본 언어 페이지 URL을 얻습니다(대체하지 않으려면 exact=true, 전체 URL은 absolute=true). 어떤 페이지에도 없는 ref=는 modootoday-check가 오류로 알립니다. full_languages를 설정하면 modootoday-check . _site --i18n-pages가 그 언어의 번역(같은 ref:, 또는 <lang>/ 아래 같은 경로)이 없는 기본 언어 페이지를 경고로 보여 줍니다. --strict를 함께 쓰면 실패합니다.

테마가 아니라 사이트가 정하는 문구도 있습니다. tabs.label은 탭을 쓰는 페이지에서 탭 목록의 이름입니다(예: tabs: {label: 설치 방법}). 스크린 리더가 무엇을 고르는 탭인지 읽어 주니, 언어별 카탈로그마다 넣어 주세요.

직접 만든 include에서는 modootoday/t.html에 key="nav.label"을 넘기면 같은 순서를 따르는 문구를 출력할 수 있습니다.

컴포넌트 레지스트리

선택 파일 _data/components.yml이 있으면 검사기가 sections: 매개변수를 검증합니다.

features: {params: {cols: {allowed: [2, 3, 4], required: false}, badge: {allowed: [bottom], required: false}}}
tabs: {i18n: [tabs.label]}
cta: {}

다음

모양 바꾸기 컴포넌트

이 페이지 편집