slideshare/public/manifest.json
Michael Mainguy 7bd25e1a7a Add Progressive Web App support and content formatting standards
## PWA Implementation
• Add comprehensive service worker for offline caching and app installation
• Implement PWA manifest with app shortcuts and file handling
• Create offline indicator component with update notifications
• Add service worker utilities for cache management and updates
• Update HTML with PWA meta tags and SEO optimization

## Content Standards Enhancement
• Update presentation JSON generator prompt with strict Unicode prohibition
• Add comprehensive content quality checklist for ASCII-only formatting
• Create two example presentations demonstrating proper formatting
• Fix build errors in OfflineIndicator component styling
• Enforce consistent markdown formatting with plain dash bullets

## Features Added
• Install as native app capability on all platforms
• Complete offline functionality after first load
• Automatic background updates with user notifications
• Export/import JSON presentations with proper formatting
• Real-time online/offline status indicators

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-12 09:34:40 -05:00

169 lines
3.7 KiB
JSON

{
"name": "SlideShare - Presentation Authoring Tool",
"short_name": "SlideShare",
"description": "Create, edit, and present slides offline with a modern web-based presentation tool",
"start_url": "/",
"display": "standalone",
"background_color": "#001112",
"theme_color": "#9563eb",
"orientation": "any",
"scope": "/",
"lang": "en-US",
"categories": ["productivity", "business", "education"],
"screenshots": [
{
"src": "/screenshots/desktop-editor.png",
"sizes": "1280x720",
"type": "image/png",
"form_factor": "wide",
"label": "Slide editor with live preview"
},
{
"src": "/screenshots/mobile-presentations.png",
"sizes": "540x720",
"type": "image/png",
"form_factor": "narrow",
"label": "Presentations library"
}
],
"icons": [
{
"src": "/icons/icon-72.png",
"sizes": "72x72",
"type": "image/png",
"purpose": "any"
},
{
"src": "/icons/icon-96.png",
"sizes": "96x96",
"type": "image/png",
"purpose": "any"
},
{
"src": "/icons/icon-128.png",
"sizes": "128x128",
"type": "image/png",
"purpose": "any"
},
{
"src": "/icons/icon-144.png",
"sizes": "144x144",
"type": "image/png",
"purpose": "any"
},
{
"src": "/icons/icon-152.png",
"sizes": "152x152",
"type": "image/png",
"purpose": "any"
},
{
"src": "/icons/icon-192.png",
"sizes": "192x192",
"type": "image/png",
"purpose": "any"
},
{
"src": "/icons/icon-384.png",
"sizes": "384x384",
"type": "image/png",
"purpose": "any"
},
{
"src": "/icons/icon-512.png",
"sizes": "512x512",
"type": "image/png",
"purpose": "any"
},
{
"src": "/icons/maskable-192.png",
"sizes": "192x192",
"type": "image/png",
"purpose": "maskable"
},
{
"src": "/icons/maskable-512.png",
"sizes": "512x512",
"type": "image/png",
"purpose": "maskable"
}
],
"shortcuts": [
{
"name": "New Presentation",
"short_name": "New",
"description": "Create a new presentation",
"url": "/presentations/new",
"icons": [
{
"src": "/icons/shortcut-new.png",
"sizes": "96x96"
}
]
},
{
"name": "My Presentations",
"short_name": "Library",
"description": "View all presentations",
"url": "/presentations",
"icons": [
{
"src": "/icons/shortcut-library.png",
"sizes": "96x96"
}
]
},
{
"name": "Themes",
"short_name": "Themes",
"description": "Browse available themes",
"url": "/themes",
"icons": [
{
"src": "/icons/shortcut-themes.png",
"sizes": "96x96"
}
]
}
],
"related_applications": [],
"prefer_related_applications": false,
"edge_side_panel": {
"preferred_width": 400
},
"handle_links": "preferred",
"launch_handler": {
"client_mode": "focus-existing"
},
"protocol_handlers": [
{
"protocol": "web+slideshare",
"url": "/presentations/import?url=%s"
}
],
"file_handlers": [
{
"action": "/presentations/import",
"accept": {
"application/json": [".json"]
},
"launch_type": "single-client"
}
],
"share_target": {
"action": "/presentations/import",
"method": "POST",
"enctype": "multipart/form-data",
"params": {
"title": "title",
"text": "text",
"url": "url",
"files": [
{
"name": "presentation",
"accept": ["application/json", ".json"]
}
]
}
}
}