ENGuideConfig
Site Configuration
HopLog splits configuration across three focused YAML files.
config.yml — Site Metadata
site:
title: "HopLog"
description: "A developer-friendly blog"
titleTemplate: "%s | HopLog" # Browser tab title format
faq:
enabled: true # Show FAQ page in header & command palette
performance:
postsCacheTtlSeconds: 60 # Posts cache TTL (production only)
theme:
default: "dracula" # Default color theme ID (must match a theme file in content/themes/)
hero:
title: 'A simple blog<br />for <span class="text-primary">developers</span>'
description: "Write technical posts in Markdown."
background:
image: "/api/images/hero-bg.webp"
opacity: 0.12
typography:
lineHeight: 1.75
fontFamily: "" # Global font (empty = system default Geist)
fontUrl: "" # Google Fonts URL
sharing:
- twitter
- facebook
- linkedin
- copyLink
theme.default sets the color theme for first-time visitors. It must match the id field of a YAML file in content/themes/. Once a user picks a different theme from the Command Palette, their choice is stored in localStorage and takes priority on subsequent visits.
sharing controls the icon-only buttons rendered below each post. Buttons are shown in the listed order. Supported values are twitter, facebook, linkedin, and copyLink.
profile.yml — Profile and About Page
profile:
name: "Your Name"
role: "Software Engineer"
email: "your@email.com"
github: "https://github.com/yourgithub"
githubUsername: "yourgithub" # Powers the GitHub Activity Grid
bio: "A short introduction."
social:
- platform: "LinkedIn"
url: "https://linkedin.com/in/yourprofile"
- platform: "Github"
url: "https://github.com/yourgithub"
experience:
- company: "Company Name"
position: "Backend Engineer"
period: "2024.01 - Present"
description: "Working on distributed systems."
skills:
- "TypeScript"
- "Go"
- "Docker"
- Setting
githubUsernamedisplays a GitHub contribution Activity Grid on the About page. - Each
socialentry renders as a badge on the About page.
seo.yml — Search Engine Optimization
siteUrl: "https://yourblog.com"
host: "https://yourblog.com" # optional (if different from siteUrl)
language: "ko-KR"
keywords:
- "blog"
- "developer"
robots:
policy: "index, follow"
rules: # Per-crawler access control
- userAgent: "GPTBot"
allow: "/"
- userAgent: "ClaudeBot"
allow: "/"
- userAgent: "Googlebot"
allow: "/"
openGraph:
type: "website"
siteName: "HopLog"
title: "HopLog"
description: "A developer blog"
image: "/og-image.png"
imageWidth: 1200
imageHeight: 630
twitter:
card: "summary_large_image"
site: "@yourhandle"
creator: "@yourhandle"
image: "/og-image.png"
You can control access per AI crawler (GPTBot, ClaudeBot, PerplexityBot, etc.) with allow, disallow, and crawlDelay.
Next: Themes & Typography | Comments & Search