| name | hugo-builder |
| description | Build, serve, and deploy the Hugo static site. Use when building the site, testing locally, checking for errors, or deploying to GitHub Pages. |
Hugo Builder
Manage the Hugo static site build process, local development server, and deployment.
Hugo Configuration
The site uses:
- Theme: PaperMod
- Language: Korean (ko-KR)
- Title: Novemberde's Blog
- Description: Logs for troubleshooting, dev-experience
- Author: BYUN Kyuhyun (AWS Serverless Hero)
- Deployment: GitHub Pages at https://novemberde.github.io/
- Branch: hugo
- Analytics: Google Analytics enabled (G-9SF4VDQ4N0)
- Comments: Disqus enabled (novemberde-github-io)
Common Commands
Build the Site
hugo
Builds the site to the public/ directory. This compiles all markdown files, applies the theme, and generates static HTML.
When to use:
- Before deploying
- To check for build errors
- To verify the final output
Serve Locally (Development)
hugo server -D
Starts a local development server with:
- Live reload on file changes
- Draft posts visible (-D flag)
- Usually available at http://localhost:1313
When to use:
- During content creation
- Testing theme changes
- Previewing before publishing
Serve Without Drafts
hugo server
Serves only published content (excludes drafts).
When to use:
- Final preview before deployment
- Testing the production build locally
Check Hugo Version
hugo version
Clean Build
rm -rf public && hugo
Removes the public directory and rebuilds from scratch.
When to use:
- Troubleshooting build issues
- After theme updates
- When files seem out of sync
Build Process
- Content Processing: Markdown files in
content/are converted to HTML - Theme Application: PaperMod theme templates are applied
- Asset Processing: Images, CSS, JS are copied from
static/and theme - Output: Final site generated in
public/directory
Deployment to GitHub Pages
This site uses GitHub Pages with the hugo branch. The deployment process:
- Build the site:
hugo - The
public/directory contains the built site - Commit and push changes to the
hugobranch - GitHub Pages automatically deploys from the configured branch/directory
Troubleshooting
Build Errors
Problem: Hugo can't find theme
Error: Unable to locate theme directory
Solution: Check if theme submodule is initialized:
git submodule update --init --recursive
Problem: Date parsing errors
Error: failed to parse date
Solution: Ensure dates are in ISO 8601 format: YYYY-MM-DDTHH:MM:SS+00:00
Problem: Content not showing Solution:
- Check if the date is in the future (Hugo skips future posts by default)
- Verify frontmatter is correct
- Ensure file is in correct directory structure
Server Issues
Problem: Port already in use
Error: listen tcp :1313: bind: address already in use
Solution:
# Kill existing Hugo server
pkill hugo
# Or use a different port
hugo server -p 1314
File Structure
novemberde.github.io/
├── config.yml # Hugo configuration
├── content/ # All content (posts, pages)
│ ├── post/ # Blog posts (YYYY/MM/DD structure)
│ └── about.md # About page
├── static/ # Static assets (images, files)
├── themes/
│ └── PaperMod/ # Current theme
└── public/ # Built site (generated, not in git)
Best Practices
Always test locally before deploying:
hugo serverCheck build output for warnings:
hugo --verboseClean builds when in doubt:
rm -rf public && hugoVerify links after building:
- Check internal links work
- Verify images load correctly
- Test navigation menu
Configuration Reference
Key settings in config.yml:
baseURL: Site URL (must match deployment URL: https://novemberde.github.io/)languageCode: Site language (ko-KR)theme: Theme name (PaperMod)buildDrafts: Include draft posts (false in production)buildFuture: Include future-dated posts (false in production)buildExpired: Include expired posts (false)minify: Minification settings for productiondisableXML: trueminifyOutput: true
enableRobotsTXT: Enable robots.txt generation (true)googleAnalytics: Analytics tracking IDdisqusShortname: Disqus integration for comments
Menu Configuration
The site has three main menu items:
- Search (
/search) - Weight: 1 - Post (
/post/) - Weight: 2 - About (
/about) - Weight: 3
Markup Configuration
goldmark.renderer.unsafe: true (allows raw HTML in markdown)enableInlineShortcodes: truedisablePathToLower: true (preserves URL case)
Common Workflows
Creating and Testing a New Post
# 1. Create the post (manually or with blog-post-creator skill)
# 2. Start development server
hugo server -D
# 3. Edit and preview in browser
# 4. When ready, remove draft status and rebuild
hugo
Deploying Updates
# 1. Clean build
rm -rf public && hugo
# 2. Commit changes
git add .
git commit -m "Your commit message"
# 3. Push to hugo branch
git push origin hugo
Theme Updates
# Update theme submodule
cd themes/PaperMod
git pull origin master
cd ../..
git add themes/PaperMod
git commit -m "Update PaperMod theme"