···11-# CLAUDE.md
22-33-This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
44-55-## Project Overview
66-77-This is Arthur Freitas's personal website/blog at [arthr.me](https://arthr.me). It's a Jekyll 4.4.1 site using a custom gem-based theme called `linus`. The site is deployed to Cloudflare Pages and written primarily in Portuguese (pt-BR).
88-99-The blog was previously hosted on Tumblr (accounts `arthrfrts` and `irrelefante`). Many posts have a `tumblr_url` front matter field from that migration.
1010-1111-## Commands
1212-1313-```sh
1414-# Serve locally with drafts and incremental builds
1515-bundle exec jekyll serve --drafts --incremental
1616-1717-# Clean build artifacts
1818-bundle exec jekyll clean
1919-2020-# Update gems
2121-bundle update
2222-```
2323-2424-## Architecture
2525-2626-### Theme
2727-2828-The site uses a custom gem theme `linus` (~> 1.0). The theme provides layouts, includes, and styles. Local includes override gem stubs:
2929-3030-- `_includes/head.html` — IndieAuth, webmention endpoints, syndication links
3131-- `_includes/below-post.html` — webmention display (`{% webmentions page.url %}`)
3232-- `_includes/end.html` — webmention JS (`{% webmentions_js %}`)
3333-3434-### Content
3535-3636-Posts live in `_posts/YYYY-MM-DD-slug.md`. The standard front matter for a post:
3737-3838-```yaml
3939----
4040-layout: post
4141-title: 'Post title'
4242-date: '2024-01-01T10:00:00-03:00'
4343-category: Notas # One of: Notas, Links, Impressões, Fotos
4444-tags:
4545- - tag-name
4646-tumblr_url: https://arthrfrts.tumblr.com/post/... # optional, migrated posts only
4747-source: https://example.com # optional, for Links category
4848-image: /uploads/image.jpg # optional, cover image
4949-syndicate_to: # optional, POSSE targets
5050- - bluesky
5151- - tumblr
5252- - flickr # Fotos only
5353-syndication_urls: # written back by GitHub Action
5454- bluesky: https://bsky.app/profile/.../post/...
5555- tumblr: https://arthrfrts.tumblr.com/post/...
5656- flickr: https://flickr.com/photos/arthrfrts/...
5757----
5858-```
5959-6060-The four categories have designated colors defined in `_config.yml`:
6161-- **Notas** — yellow (`#F5C842`)
6262-- **Links** — blue (`#6BAED6`)
6363-- **Impressões** — red-orange (`#F06A55`)
6464-- **Fotos** — light blue (`#88C0D0`)
6565-6666-### Redirects
6767-6868-`_redirects` is processed as a Jekyll template and generates Cloudflare Pages redirect rules. It maps old Tumblr post URLs and `/tagged/` URLs to their current equivalents. When adding new redirect rules, add them to this file.
6969-7070-### Static Pages
7171-7272-- `index.html` — uses `blog` layout
7373-- `sobre.md` — About page (`/sobre/`)
7474-- `arquivo.md` — Archive page (`/arquivo/`)
7575-- `404.html` — Error page
7676-7777-### Feeds & IndieWeb
7878-7979-The site exposes RSS at `/feed.xml` and JSON Feed at `/feed.json`. It supports Webmentions via `jekyll-webmention_io` and IndieAuth via the `head.html` include.
8080-8181-### Media
8282-8383-Upload images to `/uploads/`. The `.pages.yml` configures the Nova CMS for content editing.
8484-8585-## Code Style
8686-8787-EditorConfig enforces: 2-space indentation, LF line endings, 80-character max line length, no trailing whitespace (trailing whitespace is preserved in `.md` files).