Personal blog site built with Hugo and deployed to GitHub Pages.
This is a static site built with Hugo v0.155.1 using the custom coreydaley-dev theme. The site features:
- 📝 Blog posts with categories and tags
- 🔍 Client-side search powered by Pagefind
- 🎨 Clean, responsive design with a fun cartoony aesthetic
- 🤖 AI-generated content (clearly disclosed)
- 📊 Google Analytics integration
Before working on this project, ensure you have the following installed:
- Hugo Extended v0.155.1 (installation guide)
- Node.js (for Prettier and Pagefind)
- npm (comes with Node.js)
- Git (for version control)
- pre-commit (installation guide) - for git hooks
git clone https://github.com/coreydaley/coreydaley.github.io.git
cd coreydaley.github.ionpm installInstall pre-commit to automatically check image sizing before commits:
# Install pre-commit (choose one method)
pip install pre-commit
# or
brew install pre-commit
# Install the git hook scripts
pre-commit installThis sets up a pre-commit hook that runs make resize-images before each commit. If images need resizing, the commit will be blocked until you stage the changes.
hugo server -DThe site will be available at http://localhost:1313. The -D flag includes draft posts.
hugo new posts/my-post-title.mdThis creates a new post using the archetype template with proper frontmatter. Posts are created as drafts by default.
+++
author = 'AI Agent Name (Model Version)'
title = 'Post Title'
date = '2026-02-08T14:30:00-05:00'
draft = true
description = 'Brief description for SEO and previews (approximately 75 words)'
summary = 'Engaging 150-word summary for LinkedIn posts that prompts interaction'
tags = ['tag1', 'tag2', 'tag3']
categories = ['Category 1', 'Category 2']
+++Required Fields:
author: Attribution for AI or human authortitle: Post titledate: ISO 8601 timestamp with timezonedraft: Boolean (set tofalseto publish)description: Brief description for SEO and previews (approximately 75 words)summary: Engaging summary for LinkedIn posts (approximately 150 words) - should be conversational, highlight key points, and end with a question or call-to-actiontags: Specific keywords (lowercase, hyphenated)categories: Broad topic groupings (Title Case, 1-3 per post)
hugo server -Dhugo --minifyThe built site will be in the public/ directory.
npx prettier --write "themes/coreydaley-dev/layouts/**/*.html"npx prettier --check "themes/coreydaley-dev/layouts/**/*.html"# JavaScript
npx prettier --write "themes/coreydaley-dev/static/js/**/*.js"
# CSS
npx prettier --write "themes/coreydaley-dev/static/css/**/*.css"
# Markdown
npx prettier --write "content/**/*.md"hugo --minify && echo "Build successful!"hugo --minify
cd public
python3 -m http.server 8000Visit http://localhost:8000 to preview the production build.
.
├── .editorconfig # Editor configuration
├── .github/
│ └── workflows/
│ └── hugo.yml # GitHub Actions CI/CD
├── .pre-commit-config.yaml # Pre-commit hooks configuration
├── .prettierrc # Prettier configuration
├── AGENTS.md # Instructions for AI agents
├── CLAUDE.md # Claude-specific instructions
├── Makefile # Build automation tasks
├── README.md # This file
├── archetypes/
│ └── default.md # Template for new posts
├── content/
│ ├── posts/ # Blog posts
│ └── search.md # Search page
├── hugo.toml # Hugo configuration
├── package.json # npm dependencies
├── public/ # Built site (gitignored)
├── scripts/
│ └── check-image-resize.sh # Pre-commit hook script
└── themes/
└── coreydaley-dev/ # Custom theme
├── layouts/ # Hugo templates
├── static/ # CSS, JS, images
└── archetypes/ # Theme archetypes
Main site settings including:
- Base URL and site title
- Author information
- Social media links
- Google Analytics tracking
- Pagination settings
- Taxonomy configuration
Prettier is configured to format Hugo templates using the prettier-plugin-go-template plugin. Configuration includes:
- HTML template formatting with Go template syntax support
- Consistent indentation and line wrapping
- Automatic formatting on save (if editor supports it)
EditorConfig maintains consistent coding styles:
- UTF-8 encoding
- LF line endings
- 2-space indentation for HTML, JS, YAML, TOML
- 4-space indentation for CSS
- Trim trailing whitespace
The site is automatically deployed to GitHub Pages via GitHub Actions when changes are pushed to the main branch.
- Push changes to
mainbranch - GitHub Actions workflow triggers (
.github/workflows/hugo.yml) - Workflow:
- Checks out code with submodules
- Installs Hugo v0.155.1, Dart Sass, Node.js, and Pagefind
- Builds site with
hugo --minify - Indexes content with Pagefind for search
- Deploys to GitHub Pages
- Site is live at
https://coreydaley.github.io
If you need to deploy manually:
# Build the site
hugo --minify
# Index for search
npx pagefind --source "public"
# Push to gh-pages branch (if configured)
# Or commit public/ directory (if using different setup)This project welcomes AI-assisted development. When working as an AI agent:
- Read AGENTS.md first - Contains detailed instructions for AI agents
- Set proper author attribution - Use format:
'Agent Name (Model Version)' - Add file headers - Include creation/modification metadata in HTML, CSS, JS files
- Follow conventions - TOML frontmatter, proper categories, tag cloud sizing
- Test builds - Always run
hugo --quietto verify changes don't break the build
See AGENTS.md for complete AI agent instructions.
- Read through AGENTS.md for project conventions
- Ensure Hugo v0.155.1 extended is installed
- Run
npm installto install formatting tools - Install pre-commit hooks:
pre-commit install - Start dev server:
hugo server -D
- Create a new branch for your changes
- Make your modifications
- Format code:
npx prettier --write "**/*.html" - Test build:
hugo --minify - Commit with descriptive messages
- Push and create a pull request
- Follow the EditorConfig settings
- Run Prettier before committing
- Use semantic HTML
- Keep CSS organized by section
- Comment complex logic
If builds fail, ensure you're using Hugo v0.155.1 extended:
hugo versionIf Prettier can't find the Go template parser:
# Reinstall dependencies
npm install
# Verify plugin is installed
npm list prettier-plugin-go-templatePagefind indexes are built during CI/CD. To test search locally:
hugo --minify
npx pagefind --source "public"
hugo server --disableFastRenderIf CSS/JS changes don't appear:
- Hard refresh:
Cmd+Shift+R(Mac) orCtrl+Shift+R(Windows/Linux) - Clear browser cache
- Restart Hugo dev server
The code in this repository (themes, templates, scripts, configuration files, build tools) is open source and available under the MIT License.
The blog content (posts, articles, images in /content/ and /static/images/) is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License (CC BY-NC-ND 4.0).
This means you can share the content with attribution, but not for commercial purposes or with modifications.
- Built with Hugo
- Search powered by Pagefind
- Hosted on GitHub Pages
- Formatted with Prettier
- Git hooks managed by pre-commit
- AI-assisted development with Claude Code
