This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This is a Jekyll-based blog (blog.forret.com) that was migrated from WordPress. It uses the Beautiful Jekyll remote theme and includes a custom bash workflow script (jkl.sh
) for managing posts and deployments.
_posts/[YEAR]/
- Blog posts organized by year (2000-2025)_drafts/_template.md
- Template for new blog posts_layouts/
- Custom layouts (default, post, page, with_category, with_tag)_includes/
- Reusable components and partialscategory/
- Auto-generated category pages (managed by jekyll_taxonomy)tag/
- Auto-generated tag pages (managed by jekyll_taxonomy)wp-content/uploads/[YEAR]/[MONTH]/
- Images organized by year/monthpublic/
- Static assets (CSS, JS, images)hyde/
- Hyde theme reference (Jekyll theme based on Poole)jkl.sh
- Custom bash workflow script (bashew-based)VERSION.md
- Version tracking for deploymentdaattali/beautiful-jekyll
(remote theme)/:year/:month/:day/:title/
Use the jkl.sh
script to create new posts:
./jkl.sh new
This will:
wp-content/uploads/[YEAR]/[MONTH]/[slug].jpg
splashmark
(with dark/grain effects)_posts/[YEAR]/[DATE]-[slug].md
---
title: Post Title
layout: post
image: /wp-content/uploads/[YEAR]/[MONTH]/[slug].jpg
permalink: /[YEAR]/[DATE]/[slug]/
date: YYYY-MM-DD
categories:
- category-name
tags:
- tag-name
---
./jkl.sh serve
This runs Jekyll in a Docker container:
jekyll-serve-jekyll.forret.com
bretfisher/jekyll-serve
image./jkl.sh deploy
This will:
jekyll_taxonomy -c generate category
jekyll_taxonomy -c generate tag
_includes/version.html
setver autopatch
to increment versionRequired tools for deployment:
jekyll_taxonomy
- Install via: basher install pforret/jekyll_taxonomy
setver
- Install via: basher install pforret/setver
./jkl.sh check # Check script configuration and required dependencies
./jkl.sh env # Generate example .env file
./jkl.sh update # Update jkl.sh to latest version via git pull
category/
or tag/
wp-content/uploads/[YEAR]/[MONTH]/
_posts/
_includes/version.html
The jkl.sh
script is based on bashew framework and includes:
log/
foldertmp/
folder-h|--help
- Show usage-q|--quiet
- No output-v|--verbose
- Show debug messages-f|--force
- No confirmation prompts-l|--log_dir
- Log folder (default: log)-t|--tmp_dir
- Temp folder (default: tmp)-I|--image_dir
- Image folder (default: wp-content/uploads)-P|--post_dir
- Posts folder (default: _posts)-T|--template
- Post template (default: _drafts/_template.md)-W|--WAIT
- Seconds to wait before browser launch (default: 30)