40 lines
1.6 KiB
Markdown
40 lines
1.6 KiB
Markdown
# TRMNL Plugin Development Guidelines
|
|
|
|
## Project Overview
|
|
This is a TRMNL platform plugin for displaying room data from Google Sheets on connected devices. The plugin uses Liquid templating for the frontend and YAML for configuration.
|
|
|
|
## File Structure
|
|
- `full.liquid` - Main Liquid template file for rendering room data
|
|
- `settings.yml` - Plugin configuration including API endpoints and custom fields
|
|
- `MeetingRooms-sample-data.json` - Sample data structure reference
|
|
|
|
## Code Style Guidelines
|
|
|
|
### Liquid Templating
|
|
- Use Liquid syntax for data binding and conditional logic
|
|
- Follow existing naming conventions: use snake_case for variables
|
|
- Keep HTML structure clean and semantic
|
|
- Use TRMNL-specific classes for styling (layout, columns, grid, etc.)
|
|
|
|
### YAML Configuration
|
|
- Use YAML format for all configuration files
|
|
- Follow existing key naming conventions (snake_case)
|
|
- Include proper descriptions for custom fields
|
|
- Use string quotes for all string values
|
|
|
|
### General Development
|
|
- No build/test commands - this is a static plugin
|
|
- Validate Liquid syntax by testing in TRMNL platform
|
|
- Ensure Google Sheets API URLs are correct and accessible
|
|
- Test with various device IDs using TRMNL_ID matching
|
|
|
|
### Testing
|
|
- Test by deploying to TRMNL platform with different device IDs
|
|
- Verify data loads from Google Sheets correctly
|
|
- Check responsive behavior on TRMNL devices
|
|
- Validate fallback logo displays when no data is available
|
|
|
|
## Key Components
|
|
- Device ID matching via `trmnl.plugin_settings.custom_fields_values.device_id`
|
|
- Data filtering using `where` filter in Liquid
|
|
- Google Sheets integration via opensheet.elk.sh API |