diff --git a/.claude/CLAUDE.md b/.claude/CLAUDE.md new file mode 100644 index 0000000..29a8c52 --- /dev/null +++ b/.claude/CLAUDE.md @@ -0,0 +1,56 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## Overview + +This is a WordPress site for Conseil de la culture de l'Abitibi-Témiscamingue with a hybrid architecture combining WordPress backend with a Nuxt.js frontend application. The site uses GraphQL for data communication between WordPress and Nuxt.js. + +## Development Commands + +### WordPress/PHP +- **Lint PHP code**: `./vendor/bin/phpcs` (uses WordPress coding standards via phpcs.xml) +- **Install PHP dependencies**: `composer install` + +### Nuxt.js Frontend (in wp-content/themes/ccat/) +- **Development server**: `pnpm dev:nuxt` (runs on host with --host flag) +- **Build**: `pnpm build` (runs typecheck then nuxt build sequentially) +- **Type checking**: `pnpm build:typecheck` +- **Lint**: `pnpm lint` (ESLint with auto-fix) +- **Deploy**: `pnpm deploy` (NuxtHub deployment) +- **Preview**: `pnpm preview` (NuxtHub preview) + +## Architecture + +### WordPress Backend +- **Location**: Root directory contains standard WordPress installation +- **Custom Post Types**: membership, contributor, event, location, project, representation, resource, template (wp-content/themes/ccat/includes/cpt/) +- **Custom Taxonomies**: discipline, project-category, resource-category (wp-content/themes/ccat/includes/taxonomies/) +- **GraphQL**: Enabled via WP GraphQL plugin with JWT authentication +- **ACF Integration**: Advanced Custom Fields Pro with Extended Pro for custom fields + +### Nuxt.js Frontend +- **Location**: wp-content/themes/ccat/ (acts as WordPress theme but contains Nuxt app) +- **Framework**: Nuxt 4.x with Vue 3, TypeScript +- **UI**: Nuxt UI 4.0 alpha with TailwindCSS +- **GraphQL**: Connects to WordPress GraphQL endpoint via nuxt-graphql-middleware +- **Deployment**: Cloudflare Workers via NuxtHub +- **Package Manager**: pnpm with specific built dependencies configuration + +### Key Dependencies +- **WordPress Plugins**: WP GraphQL, ACF Pro, iThemes Security Pro, Clean Image Filenames +- **Nuxt Modules**: @nuxt/ui, @nuxthub/core, nuxt-auth-utils, nuxt-graphql-middleware, @nuxtjs/sitemap + +## File Structure +- `/wp-content/themes/ccat/app/` - Nuxt application files +- `/wp-content/themes/ccat/server/` - Server-side GraphQL schema and API routes +- `/wp-content/themes/ccat/includes/` - WordPress theme functions (CPT, taxonomies, ACF) +- `/wp-content/themes/ccat/acf-json/` - ACF field group definitions +- `/wp-content/mu-plugins/` - Must-use plugins (currently only headless-home-url.php) + +## Development Notes +- Site is configured as non-indexable (indexable: false in nuxt.config.ts) +- GraphQL endpoint: https://wp.cultureat.ca/graphql +- Frontend URL: https://cultureat.ca +- Uses Cloudflare Workers for hosting the Nuxt frontend +- WordPress serves as headless CMS with custom post types for cultural content management \ No newline at end of file diff --git a/.gitignore b/.gitignore index 7c27b08..9378220 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,8 @@ /* +!/.claude !/.gitea !/.gitignore !/.vscode/ -!/CLAUDE.md !/composer.* !/phpcs.xml !/wp-content/