이 문서는 이 저장소를 처음 여는 다른 에이전트가 빠르게 구조를 이해하고 안전하게 수정할 수 있도록 정리한 운영 메모다.
Minimal Mistakes Jekyll 테마 원본 위에 실제 블로그 콘텐츠를 얹은 구조다.docs/, test/, .github/ 같은 upstream 보조 자산은 이제 Git 추적 대상에서 제외되어 있을 수 있다. 로컬에 남아 있어도 배포용 저장소 기준으로는 없는 것으로 생각하고 작업하는 편이 맞다._config.ymlindex.html_layouts/home.html_data/navigation.yml_includes/language-switcher.html_posts/*.md_pages/security.md_pages/development.md_pages/life.md_pages/en-home.md_pages/en-security.md_pages/en-development.md_pages/en-life.md_pages/en-category-archive.md_pages/en-tag-archive.md_pages/en-search.md_pages/category-archive.md_pages/tag-archive.md_pages/search.md_layouts/section-archive.html_includes/nav_listassets/css/main.scss_includes/head/custom.htmlimages/...assets/images/...현재 블로그는 상단 기준으로 아래 3개 메뉴를 사용한다.
Security -> /security/Development -> /development/Life -> /life/영어 페이지에서는 /en/... 경로를 사용하는 미러 메뉴를 쓴다.
상단 메뉴는 _data/navigation.yml의 아래 키에서 관리한다.
main: 기본(KOR) 경로용main_en: ENG 경로용사이드바의 POSTS 메뉴도 _data/navigation.yml에서 관리한다.
sections: 기본(KOR) 경로용sections_en: ENG 경로용라벨은 현재 전체/보안/개발/일상/카테고리/태그/검색의 한국어 표기를 유지하지만, ENG 페이지에서는 링크만 /en/...로 바뀐다.
새 글은 반드시 _posts 바로 아래에 둔다.
_posts/2026-04-07-my-post.md_posts/security/2026-04-07-my-post.md이유:
_posts 하위 폴더명을 category/permalink에 반영할 수 있다.새 글 front matter 최소 권장 예시는 아래와 같다.
---
layout: single
title: "글 제목"
date: 2026-04-07
lang: ko
translation_key: example-post
section: development
categories: Dev
tags: [example]
---
영문 글을 같이 운영할 때는 같은 translation_key를 공유하는 영어 포스트를 별도로 만든다.
---
layout: single
title: "Post title"
date: 2026-04-07
lang: en
translation_key: example-post
section: development
categories: Dev
tags: [example]
permalink: /en/dev/example-post/
---
section 값은 아래 셋 중 하나만 사용한다.
securitydevelopmentlife섹션 페이지는 site.posts | where: "section", ... 방식으로 필터링한다.
즉, 탭에 글이 보이게 하려면 폴더 이동이 아니라 front matter의 section을 맞춰야 한다.
추가로 현재는 언어도 함께 필터링한다.
lang: ko 글만 노출lang: en 글만 노출따라서 새 영어 글을 만들 때 section만 맞추고 lang을 빼먹으면 ENG 섹션에서 보이지 않는다.
tag:가 아니라 tags:를 사용한다.site.tags 기준으로 동작한다.tag를 쓰면 /tags/ 페이지에 반영되지 않을 수 있다.POSTS 사이드바를 계속 보이게 하려면 페이지 front matter에 아래가 있어야 한다.
sidebar:
nav: "sections"
현재 아래 페이지들은 이미 그렇게 설정되어 있다.
index.html_pages/security.md, _pages/development.md, _pages/life.md_pages/category-archive.md_pages/tag-archive.md_pages/search.md_config.yml만약 새 아카이브/소개 페이지를 만들었는데 왼쪽 POSTS 메뉴가 사라지면, 먼저 이 설정이 있는지 확인할 것.
영어 미러 페이지를 만들 때도 동일하게 sidebar.nav: "sections"를 유지한다.
영어용 링크 전환은 _includes/nav_list 내부에서 page.lang == "en"일 때 sections_en을 선택하는 방식으로 처리한다.
lang: kolang: entranslation_key로 연결KOR / ENG 버튼은 _includes/language-switcher.html에서 현재 페이지와 같은 translation_key를 가진 페이지/포스트를 찾아 이동document.documentElement.lang 기준으로 현재 언어 결과만 보이도록 조정된 상태_includes/head/custom.html 안의 inline <style>로 처리 중KOR / ENG 언어 버튼 스타일도 _includes/head/custom.html에 들어 있다아래 경로와 파일은 현재 블로그 운영보다 upstream 테마 성격이 더 강하다.
docs/test/.github/.travis.ymlCHANGELOG.mdscreenshot.pngscreenshot-layouts.png이들은 배포용 저장소에서 Git 추적 제외 대상으로 정리된 상태일 수 있다.
반면 아래는 여전히 현재 블로그 동작에 직접 영향을 주는 핵심 소스다.
블로그 운영 작업이라면 먼저 _posts, _pages, _data, index.html, images, assets/images, _includes/head/custom.html 쪽을 우선 확인할 것.
_config.yml에서 minimal_mistakes_skin: "dark" 사용 중10개씩 홈 전용 페이지네이션을 사용Security/Development/Life전체/보안/개발/일상/카테고리/태그/검색lang: ko, section: development로 존재jekyll-paginate는 제거된 상태다._layouts/home.html에서 현재 언어의 글만 모두 렌더링한 뒤, assets/js/home-pagination.js가 10개씩 잘라서 보여준다./ 또는 /en/에 ?page=2 같은 쿼리스트링을 붙이는 방식이다._config.yml의 home_posts_per_page에서 관리한다.이 프로젝트는 Jekyll 기반이라 일반적으로 아래로 테스트한다.
bundle install
bundle exec jekyll serve
확인할 주요 URL:
//?page=2/en//en/?page=2/security//en/security//development//en/development//life//en/life//categories//en/categories//tags//en/tags//search//en/search/이 Codex 세션에서는 bundle 명령이 잡히지 않아 런타임 검증이 항상 가능한 것은 아니다.
가능한 환경이라면 UI/사이드바/탭 색상까지 직접 확인하는 것이 안전하다.