This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This is the PyTexas Conference 2026 website built with MkDocs Material. It's a static documentation site that provides information about the PyTexas Conference, including attendance details, sponsorship opportunities, and community resources.
- Static Site Generator: MkDocs with Material theme
- Content Structure: Markdown-based documentation pages
- Dependency Management: Uses
uvfor modern Python package management - Deployment: GitHub Actions with automated CI/CD to GitHub Pages
- Content Types:
- Main documentation pages (
docs/*.md) - Asset management (
docs/assets/images/anddocs/assets/docs/) - Theme customizations (
overrides/)
- Main documentation pages (
This project includes a justfile for common development tasks:
just install: Install all dependencies using uvjust serve: Start development server with hot reload on port 8000just serve-port 8001: Start development server on specific portjust build: Build the static site tosite/directoryjust validate: Build with strict validation enabledjust link-check: Check all links using lychee with cachingjust check: Run all quality checks (build + link check)just deploy: Deploy to GitHub Pages (production only)just clean: Clean generated files and cachejust help: Show all available commands
uv sync: Install all dependencies from lockfileuv run mkdocs serve: Start local development server with hot reloaduv run mkdocs build: Build static site tosite/directoryuv run mkdocs build --strict: Build with strict validationuv run mkdocs gh-deploy: Deploy to GitHub Pages (production only)
uv add <package>: Add new dependencyuv remove <package>: Remove dependencyuv lock: Update lockfile after dependency changes
- Create new markdown files in appropriate directories under
docs/ - Update navigation in
mkdocs.ymlnav section - Use Material for MkDocs features like admonitions, tabs, etc.
- Add speaker/sponsor images to
docs/assets/images/ - Add downloadable documents to
docs/assets/docs/
To add announcement banners, edit overrides/main.html:
{% block announce %}
<p>Your announcement text here</p>
{% endblock %}- Main site config:
mkdocs.yml - Theme customizations:
overrides/main.htmlandoverrides/home.html - Custom CSS:
docs/stylesheets/extra.css - Navigation structure defined in
mkdocs.ymlnav section
The repository uses a three-stage GitHub Actions workflow:
- Link Check (
link-check.yml): Validates all links in markdown/HTML files - Dependency Review (
check.yml): Security scanning on PRs - Deploy (
ci.yml): Builds and deploys to GitHub Pages after successful link check
docs/ # Main content directory
├── index.md # Homepage
├── about.md # About page
├── attend/ # Attendance information
│ ├── grants.md # Opportunity grants
│ ├── in-person.md # In-person attendance
│ └── virtual.md # Virtual attendance
├── sponsors/ # Sponsorship information
│ ├── index.md # Sponsors page
│ └── sponsor-us.md # Sponsorship opportunities
├── schedule/ # Conference schedule
│ └── index.md # Generated from data/schedule.yaml
├── faq.md # Frequently asked questions
├── assets/ # Static assets
│ ├── images/ # Images and logos
│ └── docs/ # Downloadable documents
└── stylesheets/ # Custom CSS
hooks/ # MkDocs build hooks
└── schedule.py # Auto-generates schedule during build
data/ # Source data files
└── schedule.yaml # Conference schedule data
overrides/ # Theme customizations
mkdocs.yml # Site configuration
pyproject.toml # Python project configuration
uv.lock # Dependency lockfile
justfile # Task automation with just command runner
.python-version # Python version specification
The conference schedule is automatically generated from data/schedule.yaml during the build process. To update the schedule:
- Edit
data/schedule.yamlwith your changes - Run
just serveorjust build- the schedule regenerates automatically via theon_pre_buildhook inhooks/schedule.py - The generated markdown appears in
docs/schedule/index.md(do not edit directly)
- Python version is set to 3.8 minimum for broad compatibility (actual version in
.python-versionmay be higher) - The site uses Material for MkDocs with imaging support for social cards
- Custom theme overrides allow for announcement banners
- Dependencies include imaging support for automatic social card generation
- The site URL structure includes year (e.g., /2026/) for multi-year support
- Cairo library is required for social card generation (install via
brew install cairoon macOS)
The site uses a multi-layered theme customization approach:
- Base Override Structure:
overrides/main.htmlextends the base Material theme with minimal changes - Home Page Customization:
overrides/home.htmlextendsmain.htmland provides:- Custom hero section with construction logo
- Hidden navigation sidebars for landing page experience
- Centered content layout
- Ticket purchase integration (currently commented out)
- Color Scheme System: Two custom schemes defined in
docs/stylesheets/extra.css:pytx2026_light: Light mode with custom PyTexas branding colorspytx2026: Dark mode variant- CSS variables allow theme-aware component styling
- Conditional display classes (
hide-if-light,hide-if-dark) for theme-specific content
The mkdocs.yml file uses a structured approach:
- Multi-brand Identity: Site configured as "PyTexas Conference" with Foundation branding
- Navigation Structure: Hierarchical navigation with conditional sections (some commented for future activation)
- Plugin Integration:
- Search functionality enabled
- Social card generation with custom background/color scheme
- Redirects plugin available but currently disabled
- Social Integration: Comprehensive social media links across multiple platforms (Twitter, Mastodon, Bluesky, Discord, LinkedIn, YouTube, Meetup, GitHub)
The site is automatically deployed to GitHub Pages when changes are pushed to the main branch. The deployment workflow:
- Runs link checking first
- If links pass, triggers deployment
- Builds the site with uv and MkDocs
- Deploys to GitHub Pages using
mkdocs gh-deploy
- Starting development:
just install && just serve - Before committing:
just check - Full validation:
just validate && just link-check - Clean rebuild:
just clean && just build
- To view the rendered output of the site, run
uv run mkdocs buildand analyze the files in the @site/ directory