--- name: odoo-app-landing-page description: Create or update index.html landing pages for Odoo modules following App Store restrictions and best practices allowed-tools: Read, Write, Edit, Grep, Glob --- # Odoo App Store Landing Page Creator When the user asks to create or update an `index.html` file for an Odoo module's landing page, follow these instructions to ensure compliance with Odoo App Store sanitization rules. ## Overview Odoo App Store has strict HTML/CSS sanitization that strips many common patterns. This skill helps you create landing pages that survive sanitization and look professional. ## Key Resources 1. **Reference Guide**: `ODOO_APP_STORE_HTML_GUIDE.md` - Complete documentation of safe/unsafe patterns 2. **Working Example**: `llm_mcp_server/static/description/index.html` - Production-ready example ## CRITICAL Rules (Must Follow) ### ❌ NEVER USE (Will Be Stripped) 1. **NO DOCTYPE or full HTML structure** - Don't include ``, ``, `
`, `` tags - Start directly with `github.com/yourorg/repo
Contact
```
8. **NO unicode special characters**
```html
Preferences → API Keys
Preferences → API Keys
```
### ✅ ALWAYS USE (Safe Patterns)
1. **Bootstrap 5 grid system**
- `container`, `row`, `col-md-*`, `col-lg-*`, `col-12`
2. **Bootstrap utility classes**
- `d-flex`, `align-items-center`, `justify-content-center`
- `p-4`, `mb-5`, `mt-3`, `mx-auto`
- `text-center`, `shadow-sm`, `h-100`
3. **Hex colors only**
- `#875A7B` (Odoo purple), `#f8f9fa`, `#333`, `#fff`
4. **Inline styles for**
- `color`, `background-color`, `font-size`, `font-weight`
- `padding`, `margin`, `border-radius`, `border`
- `line-height`, `text-align`, `width`, `height`
5. **Icon centering alternatives**
```html
Feature description text
# Your code here
def example():
pass
```
### 8. Validation Checklist
Before completing, verify:
- [ ] No DOCTYPE, html, head, body tags
- [ ] All colors are hex format, no rgba()
- [ ] No CSS transitions, transforms, or animations
- [ ] No inline JavaScript handlers
- [ ] No inline flexbox alignment properties (use Bootstrap classes)
- [ ] Using Bootstrap 5 grid (container, row, col-\*)
- [ ] All sections have responsive columns
- [ ] Icon centering uses text-center + line-height OR Bootstrap flex classes
- [ ] Special characters use HTML entities (→ not →)
- [ ] External links are mailto: or plain text
- [ ] All images use Odoo CDN format: `//apps.odoocdn.com/apps/assets/18.0/MODULE_NAME/image.png`
### 9. File Location
Landing pages go in:
```
MODULE_NAME/static/description/index.html
```
### 10. Image References
If the module has images:
```html
```
## Common Patterns Library
### Hero Section
```html
Brief compelling description
Supporting text
` tags
## When to Use This Skill
- User asks to "create landing page for [module]"
- User asks to "update index.html for [module]"
- User asks to "improve module description page"
- User mentions "Odoo App Store" and "HTML"
- User asks about "module marketing page"
## What NOT to Do
- Don't create generic landing pages - always customize for the specific module
- Don't copy-paste without adapting to the module's purpose
- Don't skip the validation checklist
- Don't use patterns not documented in the guide
- Don't assume features - ask the user if unclear
## Final Notes
The Odoo App Store sanitizer is aggressive. When in doubt:
1. Check the guide (`ODOO_APP_STORE_HTML_GUIDE.md`)
2. Look at the working example (`llm_mcp_server/static/description/index.html`)
3. Use Bootstrap classes instead of inline styles for layout
4. Keep it simple and semantic
Remember: **Bootstrap classes are safer than inline styles** for flexbox and layout properties!