## 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>
169 lines
3.7 KiB
JSON
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"]
|
|
}
|
|
]
|
|
}
|
|
}
|
|
} |