Overview
Poway Auto is built as a Jekyll static site with a modular architecture. The project follows Jekyll conventions with custom JavaScript for API integration and interactive features.Directory Structure
Core Directories
Jekyll Directories
_includes/
Reusable HTML components that can be included in layouts and pages.
Key files:
base.html- Base HTML structurecustom-head.html- Custom head tags, scripts, and stylessubmenu.html- Dynamic submenu generationtoc.html- Table of contents generatornav/- Navigation components (login, home, etc.)
_layouts/
Page templates that define the structure of different page types.
Main layouts:
base.html- Primary layout with Tailwind CSS, navigation, and footerpost.html- Blog post template with metadatablogs.html- Blog listing pageschedule.html- Schedule and calendar views
- Tailwind CSS configuration
- Dark mode toggle
- Responsive navigation
- User authentication status
- Alpine.js for interactivity
_posts/
Markdown or HTML files for blog posts and content pages. Posts follow the naming convention:
2024-09-19-bathroom_pass.md2024-11-05-GenresChatroom.md2025-04-08-planning.md
_notebooks/
Jupyter notebooks that are automatically converted to Markdown posts during the build process. The conversion is handled by scripts/convert_notebooks.py.
_data/
YAML files containing structured data accessible via site.data in templates.
Available data files:
submenu.yml- Submenu configurationcsa.yml,csp.yml,csse.yml- Course-specific datamario_metadata.yml- Game metadataalienWorld.yml- Feature configuration
Asset Directories
assets/js/
JavaScript modules for client-side functionality.
Structure:
_sass/
Sass/SCSS stylesheets organized by theme.
Theme structure:
Navigation Directory
Thenavigation/ directory contains feature pages organized by functionality:
Build System
Makefile
The project uses a Makefile (Makefile:1-143) for development and build automation. Key targets:PORT- Server port (default: 4887)REPO_NAME- Repository name (default: flocker_frontend)LOG_FILE- Jekyll log location (/tmp/jekyll.log)
Scripts
scripts/convert_notebooks.py
Converts Jupyter notebooks to Jekyll-compatible Markdown with front matter extraction. Automatically triggered when notebooks change during development.
Conversion process:
- Extracts YAML front matter from notebook cells
- Converts notebook to Markdown using nbconvert
- Saves to
_posts/with_IPYNB_2_.mdsuffix - Preserves directory structure
Configuration Files
.gitignore
Excludes build artifacts, dependencies, and sensitive files:
_site/- Jekyll build output.sass-cache/- Sass compilation cachenode_modules/- npm dependencies.env- Environment variables
Gemfile
Ruby dependencies for Jekyll:
requirements.txt
Python dependencies for notebook conversion and utilities.
Development Workflow
Starting Development
-
Install dependencies:
-
Start the server:
-
Access the site:
Adding New Pages
Static page:File Naming Conventions
- Posts:
YYYY-MM-DD-title.md - Notebooks:
*.ipynb(converted to*_IPYNB_2_.md) - Pages:
descriptive-name.mdor.html - Layouts:
lowercase.html - Includes:
lowercase-hyphenated.html - Data:
lowercase.yml
Next Steps
API Integration
Learn about backend API setup and fetch patterns
Configuration
Explore configuration options and environment setup