mirror of
https://github.com/alexandrev/xslt-lab.git
synced 2026-09-13 08:43:16 +00:00
362ff2b89b
- Add visually hidden H1 for search engines and screen readers - Add JSON-LD structured data (WebApplication schema) - Add subtle footer tagline with keywords - Use semantic H1 in loading shell - Add CLAUDE.md for Claude Code guidance Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2.3 KiB
2.3 KiB
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Project Overview
XSLT Lab is an online XSLT editor and tester that uses Saxon for XSLT 2.0/3.0 transformations. The application consists of a React frontend and a Go backend that orchestrates Java/Saxon for XSLT processing.
Build Commands
# Full stack with Docker Compose (lightweight, no database)
make compose-up
make compose-down
# Backend (Go)
cd backend/src && go build -o ../server
cd backend && ./server
# Frontend (React/Vite)
cd frontend && npm install
VITE_BACKEND_URL=http://localhost:8000 npm run dev
# Testing
make backend-test # Go tests: go test ./...
make frontend-test # npm tests: vitest
# Docker images
make backend-image
make frontend-image
Architecture
Frontend (/frontend)
- React 18 + Vite SPA
- App.jsx is the monolithic state container managing all workspace state, tabs, transformations
- Monaco Editor for code editing (lazy-loaded)
- LocalStorage persistence for workspace data (up to 3 workspaces)
/lib/workspaceUtils.jscontains utility functions for parameter extraction, error parsing, XSLT manipulation
Backend (/backend)
- Go/Gin HTTP server on port 8000
- Executes Saxon via
javacommand with generated args file - POST /transform - Main endpoint accepting
{xslt, version, parameters, trace} - 10-second timeout per transformation
/ext/contains Java custom extension functions (uuid, date, base64, etc.)
Data Flow
Frontend (POST /transform) → Go Backend → java/Saxon → Parse trace/result → JSON response
Pro Features (when VITE_GO_PRO=true)
- Firebase authentication
- PostgreSQL history storage
/historyendpoint
Key Environment Variables
Frontend (build-time):
VITE_BACKEND_URL- Backend API endpointVITE_GO_PRO- Enable Pro featuresVITE_FIREBASE_CONFIG- Firebase configuration
Backend:
DATABASE_URL- PostgreSQL connection (Pro mode)SAXON_CLASSPATH- Path to Saxon JARs (default in app.config)
Configuration Files
/backend/app.config- Backend port and Saxon classpath/docker-compose.local.yml- Lightweight dev stack (no DB)/docker-compose.yml- Full stack with PostgreSQL/charts/xslt-playground/- Helm chart for Kubernetes deployment