<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Github-Pages on kastori</title><link>http://blog.kastori.dev/tags/github-pages/</link><description>Recent content in Github-Pages on kastori</description><generator>Hugo -- gohugo.io</generator><language>ko-kr</language><lastBuildDate>Wed, 20 May 2026 00:00:00 +0900</lastBuildDate><atom:link href="http://blog.kastori.dev/tags/github-pages/index.xml" rel="self" type="application/rss+xml"/><item><title>Hugo + Stack 테마로 기술 블로그 만들기</title><link>http://blog.kastori.dev/log/2026-05-20-hugo-blog-setup/</link><pubDate>Wed, 20 May 2026 00:00:00 +0900</pubDate><guid>http://blog.kastori.dev/log/2026-05-20-hugo-blog-setup/</guid><description>&lt;h2 id="왜-hugo인가"&gt;&lt;a href="#%ec%99%9c-hugo%ec%9d%b8%ea%b0%80" class="header-anchor"&gt;&lt;/a&gt;왜 Hugo인가
&lt;/h2&gt;&lt;p&gt;정적 사이트 생성기(SSG) 중에서 Hugo를 선택한 이유는 단순하다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;빠르다&lt;/strong&gt;: Go 언어 기반으로 수백 개의 글도 수십 ms 안에 빌드된다&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;배포가 쉽다&lt;/strong&gt;: GitHub Pages + GitHub Actions로 &lt;code&gt;git push&lt;/code&gt; 한 번에 자동 배포&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;서버가 없다&lt;/strong&gt;: DB도, Node.js 서버도 없다. 정적 파일만 호스팅하면 된다&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;무료다&lt;/strong&gt;: GitHub Pages 무료 플랜으로 충분하다&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="스택-구성"&gt;&lt;a href="#%ec%8a%a4%ed%83%9d-%ea%b5%ac%ec%84%b1" class="header-anchor"&gt;&lt;/a&gt;스택 구성
&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;Hugo (v0.161.1 extended)
└── Stack 테마 (git submodule)
GitHub Pages (호스팅)
GitHub Actions (CI/CD)
Cloudflare (DNS, 커스텀 도메인)
Giscus (댓글, GitHub Discussions 기반)
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="초기-세팅"&gt;&lt;a href="#%ec%b4%88%ea%b8%b0-%ec%84%b8%ed%8c%85" class="header-anchor"&gt;&lt;/a&gt;초기 세팅
&lt;/h2&gt;&lt;h3 id="1-hugo-설치-macos"&gt;&lt;a href="#1-hugo-%ec%84%a4%ec%b9%98-macos" class="header-anchor"&gt;&lt;/a&gt;1. Hugo 설치 (macOS)
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;brew install hugo
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;hugo version
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# hugo v0.161.1+extended darwin/arm64&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;extended&lt;/code&gt; 버전이 필수다. SCSS 컴파일에 필요하다.&lt;/p&gt;
&lt;h3 id="2-새-사이트-생성--stack-테마-적용"&gt;&lt;a href="#2-%ec%83%88-%ec%82%ac%ec%9d%b4%ed%8a%b8-%ec%83%9d%ec%84%b1--stack-%ed%85%8c%eb%a7%88-%ec%a0%81%ec%9a%a9" class="header-anchor"&gt;&lt;/a&gt;2. 새 사이트 생성 + Stack 테마 적용
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;hugo new site my-blog
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cd my-blog
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git init
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git submodule add https://github.com/CaiJimmy/hugo-theme-stack themes/stack
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;hugo.toml&lt;/code&gt;에 테마 등록:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-toml" data-lang="toml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;theme&lt;/span&gt; = &lt;span style="color:#e6db74"&gt;&amp;#34;stack&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="3-github-레포-생성-및-배포-설정"&gt;&lt;a href="#3-github-%eb%a0%88%ed%8f%ac-%ec%83%9d%ec%84%b1-%eb%b0%8f-%eb%b0%b0%ed%8f%ac-%ec%84%a4%ec%a0%95" class="header-anchor"&gt;&lt;/a&gt;3. GitHub 레포 생성 및 배포 설정
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;&amp;lt;username&amp;gt;.github.io&lt;/code&gt; 이름으로 GitHub 레포를 만들고, Settings → Pages에서 &lt;strong&gt;GitHub Actions&lt;/strong&gt;를 소스로 선택한다.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;.github/workflows/hugo.yml&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;name&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;Deploy Hugo site to Pages&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;on&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;push&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;branches&lt;/span&gt;: [&lt;span style="color:#e6db74"&gt;&amp;#34;main&amp;#34;&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;workflow_dispatch&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;permissions&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;contents&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;read&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;pages&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;write&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;id-token&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;write&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;concurrency&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;group&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;pages&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;cancel-in-progress&lt;/span&gt;: &lt;span style="color:#66d9ef"&gt;false&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;jobs&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;build&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;runs-on&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;ubuntu-latest&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;env&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;HUGO_VERSION&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;0.161.1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;steps&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#f92672"&gt;name&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;Install Hugo CLI&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;run&lt;/span&gt;: |&lt;span style="color:#e6db74"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; wget -O hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; sudo dpkg -i hugo.deb&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#f92672"&gt;name&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;Checkout&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;uses&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;actions/checkout@v4&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;with&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;submodules&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;recursive&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#f92672"&gt;name&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;Setup Pages&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;id&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;pages&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;uses&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;actions/configure-pages@v5&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#f92672"&gt;name&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;Build with Hugo&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;run&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;hugo --minify --baseURL &amp;#34;${{ steps.pages.outputs.base_url }}/&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#f92672"&gt;name&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;Upload artifact&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;uses&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;actions/upload-pages-artifact@v3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;with&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;path&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;./public&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;deploy&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;environment&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;name&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;github-pages&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;url&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;${{ steps.deployment.outputs.page_url }}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;runs-on&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;ubuntu-latest&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;needs&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;build&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;steps&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#f92672"&gt;name&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;Deploy to GitHub Pages&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;id&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;deployment&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;uses&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;actions/deploy-pages@v4&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;git push&lt;/code&gt;하면 자동으로 빌드되고 배포된다.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="커스텀-도메인-연결-cloudflare"&gt;&lt;a href="#%ec%bb%a4%ec%8a%a4%ed%85%80-%eb%8f%84%eb%a9%94%ec%9d%b8-%ec%97%b0%ea%b2%b0-cloudflare" class="header-anchor"&gt;&lt;/a&gt;커스텀 도메인 연결 (Cloudflare)
&lt;/h2&gt;&lt;p&gt;Cloudflare를 DNS로 사용하는 경우 설정은 간단하다.&lt;/p&gt;
&lt;h3 id="1-cname-레코드-추가"&gt;&lt;a href="#1-cname-%eb%a0%88%ec%bd%94%eb%93%9c-%ec%b6%94%ea%b0%80" class="header-anchor"&gt;&lt;/a&gt;1. CNAME 레코드 추가
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Name&lt;/th&gt;
 &lt;th&gt;Content&lt;/th&gt;
 &lt;th&gt;Proxy&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;CNAME&lt;/td&gt;
 &lt;td&gt;blog&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;&amp;lt;username&amp;gt;.github.io&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;DNS only (회색)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;주의&lt;/strong&gt;: Proxy 상태(주황 구름)로 두면 GitHub Pages의 HTTPS 인증서 발급이 실패한다. 반드시 DNS only로 설정해야 한다.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h3 id="2-staticcname-파일-생성"&gt;&lt;a href="#2-staticcname-%ed%8c%8c%ec%9d%bc-%ec%83%9d%ec%84%b1" class="header-anchor"&gt;&lt;/a&gt;2. static/CNAME 파일 생성
&lt;/h3&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;blog.yourdomain.com
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Hugo 빌드 시 이 파일이 &lt;code&gt;public/&lt;/code&gt; 에 복사되어 GitHub Pages에 전달된다.&lt;/p&gt;
&lt;h3 id="3-github-레포-설정"&gt;&lt;a href="#3-github-%eb%a0%88%ed%8f%ac-%ec%84%a4%ec%a0%95" class="header-anchor"&gt;&lt;/a&gt;3. GitHub 레포 설정
&lt;/h3&gt;&lt;p&gt;Settings → Pages → Custom domain에 도메인을 입력하면 &lt;code&gt;Enforce HTTPS&lt;/code&gt;가 활성화된다.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="hugotoml-주요-설정"&gt;&lt;a href="#hugotoml-%ec%a3%bc%ec%9a%94-%ec%84%a4%ec%a0%95" class="header-anchor"&gt;&lt;/a&gt;hugo.toml 주요 설정
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-toml" data-lang="toml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;baseURL&lt;/span&gt; = &lt;span style="color:#e6db74"&gt;&amp;#34;https://blog.yourdomain.com/&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;locale&lt;/span&gt; = &lt;span style="color:#e6db74"&gt;&amp;#34;ko-kr&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;title&lt;/span&gt; = &lt;span style="color:#e6db74"&gt;&amp;#34;블로그 제목&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;theme&lt;/span&gt; = &lt;span style="color:#e6db74"&gt;&amp;#34;stack&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;paginate&lt;/span&gt; = &lt;span style="color:#ae81ff"&gt;10&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;hasCJKLanguage&lt;/span&gt; = &lt;span style="color:#66d9ef"&gt;true&lt;/span&gt; &lt;span style="color:#75715e"&gt;# 한국어 단어 수 계산에 필수&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[&lt;span style="color:#a6e22e"&gt;params&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;mainSections&lt;/span&gt; = [&lt;span style="color:#e6db74"&gt;&amp;#34;tech&amp;#34;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#34;til&amp;#34;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#34;log&amp;#34;&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#a6e22e"&gt;params&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;sidebar&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;subtitle&lt;/span&gt; = &lt;span style="color:#e6db74"&gt;&amp;#34;블로그 소개 문구&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;avatar&lt;/span&gt; = &lt;span style="color:#e6db74"&gt;&amp;#34;https://github.com/&amp;lt;username&amp;gt;.png&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#a6e22e"&gt;params&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;article&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;toc&lt;/span&gt; = &lt;span style="color:#66d9ef"&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;readingTime&lt;/span&gt; = &lt;span style="color:#66d9ef"&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#a6e22e"&gt;params&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;colorScheme&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;toggle&lt;/span&gt; = &lt;span style="color:#66d9ef"&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;default&lt;/span&gt; = &lt;span style="color:#e6db74"&gt;&amp;#34;auto&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#a6e22e"&gt;params&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;homepage&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;grid&lt;/span&gt; = &lt;span style="color:#66d9ef"&gt;true&lt;/span&gt; &lt;span style="color:#75715e"&gt;# 2컬럼 그리드 홈&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#a6e22e"&gt;params&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;comments&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;enabled&lt;/span&gt; = &lt;span style="color:#66d9ef"&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;provider&lt;/span&gt; = &lt;span style="color:#e6db74"&gt;&amp;#34;giscus&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="콘텐츠-구조"&gt;&lt;a href="#%ec%bd%98%ed%85%90%ec%b8%a0-%ea%b5%ac%ec%a1%b0" class="header-anchor"&gt;&lt;/a&gt;콘텐츠 구조
&lt;/h2&gt;&lt;p&gt;Stack 테마는 &lt;code&gt;content/&lt;/code&gt; 아래 디렉터리가 곧 섹션이 된다.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;content/
├── tech/ # 기술 포스트
│ ├── _index.md # 섹션 제목/설명
│ └── 글.md
├── til/ # Today I Learned
├── log/ # 일상 기록
├── archives/ # 아카이브 페이지
└── search.md # 검색 페이지
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;_index.md&lt;/code&gt; frontmatter:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;title&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;Tech&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;description&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;기술 포스트 모음&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="커스터마이징"&gt;&lt;a href="#%ec%bb%a4%ec%8a%a4%ed%84%b0%eb%a7%88%ec%9d%b4%ec%a7%95" class="header-anchor"&gt;&lt;/a&gt;커스터마이징
&lt;/h2&gt;&lt;p&gt;Stack 테마의 파일을 직접 수정하면 테마 업데이트 시 덮어씌워진다. 올바른 방법은 &lt;strong&gt;프로젝트 루트의 &lt;code&gt;layouts/&lt;/code&gt;에 같은 경로로 복사&lt;/strong&gt;하는 것이다. Hugo는 프로젝트 &lt;code&gt;layouts/&lt;/code&gt;를 테마보다 우선시한다.&lt;/p&gt;
&lt;h3 id="예시-홈-레이아웃-수정"&gt;&lt;a href="#%ec%98%88%ec%8b%9c-%ed%99%88-%eb%a0%88%ec%9d%b4%ec%95%84%ec%9b%83-%ec%88%98%ec%a0%95" class="header-anchor"&gt;&lt;/a&gt;예시: 홈 레이아웃 수정
&lt;/h3&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;themes/stack/layouts/home.html ← 원본 (건드리지 않는다)
layouts/home.html ← 오버라이드 (여기에 수정)
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="커스텀-css"&gt;&lt;a href="#%ec%bb%a4%ec%8a%a4%ed%85%80-css" class="header-anchor"&gt;&lt;/a&gt;커스텀 CSS
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;assets/scss/custom.scss&lt;/code&gt;를 생성하면 Stack이 자동으로 포함시켜준다.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-scss" data-lang="scss"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;/* 색상 테마 오버라이드 */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;:root&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;--accent-color&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;#1B365D&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;--body-background&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;#f8f7f2&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="macos-스타일-코드-블록"&gt;&lt;a href="#macos-%ec%8a%a4%ed%83%80%ec%9d%bc-%ec%bd%94%eb%93%9c-%eb%b8%94%eb%a1%9d" class="header-anchor"&gt;&lt;/a&gt;macOS 스타일 코드 블록
&lt;/h3&gt;&lt;p&gt;코드 블록 상단에 macOS 신호등 버튼(빨/노/초)을 추가하는 CSS:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-scss" data-lang="scss"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;.article-content&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;.highlight&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;border-radius&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;10&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;px&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;overflow&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; hidden;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;.article-content&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;.highlight&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;:before&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;content&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;display&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; block;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;height&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;35&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;px&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;background&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;url(&amp;#34;data:image/svg+xml;base64,...&amp;#34;)&lt;/span&gt; no-repeat &lt;span style="color:#ae81ff"&gt;12&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;px&lt;/span&gt; center;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;background-size&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;52&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;px&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="giscus-댓글-설정"&gt;&lt;a href="#giscus-%eb%8c%93%ea%b8%80-%ec%84%a4%ec%a0%95" class="header-anchor"&gt;&lt;/a&gt;Giscus 댓글 설정
&lt;/h2&gt;&lt;p&gt;&lt;a class="link" href="https://docs.github.com/en/discussions" target="_blank" rel="noopener"
 &gt;GitHub Discussions&lt;/a&gt; 기반 댓글 시스템이다. 서버가 필요 없다.&lt;/p&gt;
&lt;h3 id="1-준비"&gt;&lt;a href="#1-%ec%a4%80%eb%b9%84" class="header-anchor"&gt;&lt;/a&gt;1. 준비
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;GitHub 레포에서 Discussions 활성화 (Settings → General → Discussions)&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/apps/giscus" target="_blank" rel="noopener"
 &gt;Giscus 앱&lt;/a&gt; 설치&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="2-repoid와-categoryid-조회"&gt;&lt;a href="#2-repoid%ec%99%80-categoryid-%ec%a1%b0%ed%9a%8c" class="header-anchor"&gt;&lt;/a&gt;2. repoID와 categoryID 조회
&lt;/h3&gt;&lt;p&gt;GitHub GraphQL API로 ID를 가져온다:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-graphql" data-lang="graphql"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;query&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;repository&lt;/span&gt;(owner: &lt;span style="color:#e6db74"&gt;&amp;#34;username&amp;#34;&lt;/span&gt;, &lt;span style="color:#a6e22e"&gt;name&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;repo-name&amp;#34;&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;id&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; discussionCategories(first: &lt;span style="color:#a6e22e"&gt;10&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; nodes { id name }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="3-hugotoml-설정"&gt;&lt;a href="#3-hugotoml-%ec%84%a4%ec%a0%95" class="header-anchor"&gt;&lt;/a&gt;3. hugo.toml 설정
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-toml" data-lang="toml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[&lt;span style="color:#a6e22e"&gt;params&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;comments&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;enabled&lt;/span&gt; = &lt;span style="color:#66d9ef"&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;provider&lt;/span&gt; = &lt;span style="color:#e6db74"&gt;&amp;#34;giscus&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[&lt;span style="color:#a6e22e"&gt;params&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;comments&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;giscus&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;repo&lt;/span&gt; = &lt;span style="color:#e6db74"&gt;&amp;#34;username/repo-name&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;repoID&lt;/span&gt; = &lt;span style="color:#e6db74"&gt;&amp;#34;R_...&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;category&lt;/span&gt; = &lt;span style="color:#e6db74"&gt;&amp;#34;Announcements&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;categoryID&lt;/span&gt; = &lt;span style="color:#e6db74"&gt;&amp;#34;DIC_...&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;mapping&lt;/span&gt; = &lt;span style="color:#e6db74"&gt;&amp;#34;title&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;lightTheme&lt;/span&gt; = &lt;span style="color:#e6db74"&gt;&amp;#34;light&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;darkTheme&lt;/span&gt; = &lt;span style="color:#e6db74"&gt;&amp;#34;dark_dimmed&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="삽질-모음"&gt;&lt;a href="#%ec%82%bd%ec%a7%88-%eb%aa%a8%ec%9d%8c" class="header-anchor"&gt;&lt;/a&gt;삽질 모음
&lt;/h2&gt;&lt;p&gt;세팅하면서 겪은 문제들을 정리했다.&lt;/p&gt;
&lt;h3 id="toml-위젯-형식-오류"&gt;&lt;a href="#toml-%ec%9c%84%ec%a0%af-%ed%98%95%ec%8b%9d-%ec%98%a4%eb%a5%98" class="header-anchor"&gt;&lt;/a&gt;TOML 위젯 형식 오류
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-toml" data-lang="toml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 잘못된 방법 (문자열 배열)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;widgets&lt;/span&gt; = [&lt;span style="color:#e6db74"&gt;&amp;#34;search&amp;#34;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#34;archives&amp;#34;&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 올바른 방법 (객체 배열)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[[&lt;span style="color:#a6e22e"&gt;params&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;widgets&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;homepage&lt;/span&gt;]]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;type&lt;/span&gt; = &lt;span style="color:#e6db74"&gt;&amp;#34;search&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[[&lt;span style="color:#a6e22e"&gt;params&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;widgets&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;homepage&lt;/span&gt;]]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;type&lt;/span&gt; = &lt;span style="color:#e6db74"&gt;&amp;#34;archives&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="stack-아이콘-이름"&gt;&lt;a href="#stack-%ec%95%84%ec%9d%b4%ec%bd%98-%ec%9d%b4%eb%a6%84" class="header-anchor"&gt;&lt;/a&gt;Stack 아이콘 이름
&lt;/h3&gt;&lt;p&gt;Stack 테마에서 사용할 수 있는 아이콘은 &lt;code&gt;themes/stack/assets/icons/&lt;/code&gt;에 있는 SVG 파일명이다. &lt;code&gt;code&lt;/code&gt;, &lt;code&gt;pencil&lt;/code&gt; 같은 이름은 없다.&lt;/p&gt;
&lt;p&gt;사용 가능한 예시: &lt;code&gt;home&lt;/code&gt;, &lt;code&gt;archives&lt;/code&gt;, &lt;code&gt;tag&lt;/code&gt;, &lt;code&gt;hash&lt;/code&gt;, &lt;code&gt;search&lt;/code&gt;, &lt;code&gt;infinity&lt;/code&gt;, &lt;code&gt;brand-github&lt;/code&gt;&lt;/p&gt;
&lt;h3 id="github-pages-빌드-실패"&gt;&lt;a href="#github-pages-%eb%b9%8c%eb%93%9c-%ec%8b%a4%ed%8c%a8" class="header-anchor"&gt;&lt;/a&gt;GitHub Pages 빌드 실패
&lt;/h3&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;Error: Unable to locate config file or config directory
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;git submodule update --init --recursive&lt;/code&gt;가 워크플로우에 빠졌을 때 발생한다. &lt;code&gt;actions/checkout@v4&lt;/code&gt;의 &lt;code&gt;submodules: recursive&lt;/code&gt; 옵션을 꼭 확인하자.&lt;/p&gt;
&lt;h3 id="hascjklanguage-설정"&gt;&lt;a href="#hascjklanguage-%ec%84%a4%ec%a0%95" class="header-anchor"&gt;&lt;/a&gt;hasCJKLanguage 설정
&lt;/h3&gt;&lt;p&gt;이 설정이 없으면 한국어 글의 읽기 시간 계산이 정확하지 않다.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-toml" data-lang="toml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;hasCJKLanguage&lt;/span&gt; = &lt;span style="color:#66d9ef"&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="완성된-기능"&gt;&lt;a href="#%ec%99%84%ec%84%b1%eb%90%9c-%ea%b8%b0%eb%8a%a5" class="header-anchor"&gt;&lt;/a&gt;완성된 기능
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Hugo + Stack 테마 세팅&lt;/li&gt;
&lt;li&gt;GitHub Actions 자동 배포&lt;/li&gt;
&lt;li&gt;커스텀 도메인 (Cloudflare DNS)&lt;/li&gt;
&lt;li&gt;Tech / TIL / Log 섹션 구조&lt;/li&gt;
&lt;li&gt;2컬럼 그리드 홈 레이아웃&lt;/li&gt;
&lt;li&gt;macOS 스타일 코드 블록&lt;/li&gt;
&lt;li&gt;Giscus 댓글&lt;/li&gt;
&lt;li&gt;좌측 사이드바 검색창&lt;/li&gt;
&lt;li&gt;Archives 페이지 섹션 카드&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="참고"&gt;&lt;a href="#%ec%b0%b8%ea%b3%a0" class="header-anchor"&gt;&lt;/a&gt;참고
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://gohugo.io/documentation/" target="_blank" rel="noopener"
 &gt;Hugo 공식 문서&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/CaiJimmy/hugo-theme-stack" target="_blank" rel="noopener"
 &gt;Stack 테마 GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://giscus.app/" target="_blank" rel="noopener"
 &gt;Giscus&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>