elegantapp / pwa-asset-generator

Automates PWA asset generation and image declaration. Automatically generates icon and splash screen images, favicons and mstile images. Updates manifest.json and index.html files with the generated images according to Web App Manifest specs and Apple Human Interface guidelines.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

html/head/body tags should not be added automatically to an existing file/partial

jarmo opened this issue · comments

Describe the bug
I used pwa-asset-generator with --index flag to automatically add all splash image html tags for iOS. It added these tags as expected. However, it also added html, head and body tags which was unexpected:

<html>
  <head>
    <link rel="apple-touch-startup-image" ..>
     ...
  </head>
  <body>
  </body>
</html>

Since my "index" file is not an actual index, but is a separate partial html file, which is included by the html templating language I'm using into an actual "index.html" head tag then this broke my html and PWA (iOS actually doesn't work properly like this).

To Reproduce
Steps to reproduce the behavior:

  1. npx pwa-asset-generator pwa-icon.jpg -i partial-head.html
  2. Open partial-head.html
  3. See additional tags

Expected behavior

pwa-asset-generator should not automatically add/modify any html, head and body tags when it is modifying a file instead of creating a new one. Or there should be a way to disable this behavior with an extra flag.

Anyway, this behavior was unexpected and unnoticed at first and it broke PWA.

System (please complete the following information):

  • cli version 6.0.8

Hi @jarmo, thanks for reporting this use case and sharing your feedback.

pwa-asset-generator was not designed to make edits to partial html files. I will mark it as a feature request and consider this improvement as part of the roadmap.

@onderceylan thank you for your reply.

I would like to argue (in a friendly way, of course) that pwa-asset-generator's job is to create all the necessary images/icons/manifest.json and HTML tags, but it should not change the hierarchy of the html document like this, because this is totally unexpected.

When you think about it then index.html would be 99% of times a valid HTML already when it is an existing file and there's no need to add parent nodes nor create head tag. If it is not valid then it's definitely not pwa-asset-generator's job to fix that. If that file does not exist and pwa-asset-generator creates it then I can understand it trying to be a little more helpful by adding all these extra tags to create a valid html document.

I would either expect it to throw an error when it can't find head tag - then I as a developer would probably add temporarily these tags into partial to trick pwa-asset-generator into thinking that this is actually an index.html file and not some partial. In this way when I added these tags explicitly there's a less chance of creating an invalid html because I would remember to remove these tags. Or I would expect pwa-asset-generator to only add tags related to PWA-s and not add any other tags.

Since partials are not something esoteric in web application frameworks and current behavior of pwa-asset-generator breaks PWA completely when these are used then I would still consider this as a bug and not a feature.

All in all, thanks for this nice tool, which has helped me to spare some time developing PWAs.

This feature would simplify everyone's life a lot. Thanks!