Implement #181 - web app manifest support
This feature will allow sites built with Perun to be installed as an app on systems that support it. When paired with #180, this will be a slick offline experience.
This was a bit more work to implement properly than I thought at first, primarily because I wanted to support automatically handling image files for the icons that are referenced in manifest.json. This required a refactor for images-resize, which is backwards-compatible. This in turn caused another small backwards-compatible addition to content-task to allow a boot tmp directory to be passed. This was necessary to accommodate tasks that want to write directly to tmp directories from within their pod, rather than passing data back to the main pod, as is the case for the image-handling tasks.
Other changes here are small improvements like pruning unused requires, and consistently handling the out-dir parameter to tasks. These should be self-explanatory, but if you have questions let me know.
I've also added tests for manifest.
I should also mention my sources for how to work with a manifest. The spec is here: https://w3c.github.io/manifest/, and this was useful for seeing how it's actually supported in browsers: https://developer.mozilla.org/en-US/Add-ons/WebExtensions/manifest.json. I paid the most attention to the output from http://realfavicongenerator.net/, which does a nice job of exposing the most relevant parts of a manifest. It seems to focus primarily on Android, preferring a different approach for other operating systems, hence the docstring for manifest. I plan on exploring this further, but this PR is a good base to build from.
I've split this PR into a few more parts (#203 and #205) so that they can be considered individually. I will also be updating this PR soon to improve functionality, and address the comments.
@podviaznikov I've made a few improvements, and I believe I've addressed your comment on the docstring (you were right). Let me know if you'd like to see other changes.
This is a great feature!
Hi, @bhagany
Thanks again for your hard work! Are you still working on this?