- From: Kornel Lesiński <kornel@geekhood.net>
- Date: Thu, 18 Jul 2013 14:57:08 +0100
- To: public-webapps@w3.org
I'd like to propose using HTML as basis of manifest format, similar in spirit to Web Components imports, e.g. <link rel="manifest import" href="/my-app-definition.html"> and then my-app-definition.html could contain <link>, <meta> or other elements. Rationale: * while JSON is wonderful for automatic serialization, it's an annoying format when maintained by hand (and manifest seems static and simple enough to be maintained by hand). - JSON syntax is pedantic about trailing comma. Authors have to be careful when adding new element to end of a list. - JSON does not support comments. Manifest is a central place of an application, so may end up being modified by many team members, and it's useful to comment why certain properties are the way they are, warn which changes will cause breakage (again…), etc. * We already have <link rel=icon sizes>, <meta name="description">, <meta name="application-name"> that can be reused. Authors already know these and it may be easier to define and understand how <meta> and manifest properties interact. * We already have lang & hreflang attributes, so there's no need to invent locales dictionaries. * It can be inlined naturally, saving a RTT. * It can be mixed with Web Components allowing applications to define everything in one place if they wish to. * Simple websites can reuse homepage as their manifest file: <link rel=manifest href=/> Here's HTMLized example from the spec: http://www.w3.org/2012/sysapps/manifest/#example-manifest <html lang="en" manifest="/cache.manifest"> <meta name="name" content="The Example App"> <meta name="description" content="Exciting Open Web development action!"> <meta lang="es" name="description" content="¡Acción abierta emocionante del desarrollo del Web!"> <meta name="launch-path" content="/"> <meta name="version" content="1.0"> <link rel="icon" sizes="16" href="/img/icon_16.png"> <link rel="icon" sizes="48" href="/img/icon_48.png"> <link rel="icon" sizes="128" href="/img/icon_128.png"> <meta name="author" content="Foo Corp."> <link rel="author" href="http://example.org/dev"> <link rel="author" hreflang="es" href="https://example.org/dev/es-ES"> <style> @viewport { min-width: 300px; max-width: 600px; } </style> <meta name="required-features" content="touch geolocation webgl"> <meta name="permissions:contacts:description" content="Required for auto-completion in the share screen"> <meta name="permissions:contacts:access" content="read"> <meta name="fullscreen" content="true"> <meta name="release_notes:1.0" content="Bugs fixed. New exciting effects. Ready for an official release!"> <meta name="release_notes:0.5" content="First alpha version with still some bugs but already fun!"> When writing this I was surprised how well existing functionality fits (and thus how much "NIH" can be avoided). The only bit that didn't seem natural fit was <meta> for permissions, so maybe a better element needs to be invented for it: <permission for="contacts" access="read"> <meta name="description" content="Required for…"> <meta name="description" lang="pl" content="Wymagane do…"> </permission> or perhaps made generic: <metagroup name="permissions"> <metagroup name="contacts"> <meta name="access" content="read"> <meta name="description" content="Required for…"> <meta name="description" lang="pl" content="Wymagane do…"> </metagroup> </metagroup> -- regards, Kornel
Received on Thursday, 18 July 2013 13:57:41 UTC