Renders HTML5 application cache manifest.
See also parse-appcache-manifest.
npm install render-appcache-manifest
Generate Manifest from Direct Object
renderManifest = require "render-appcache-manifest" renderManifest(contents)
renderManifest returns the rendered manifest as a string.
contents is an object that can have the following properties, all optional:
cache- an array of entries (urls) you want in the
network- an array of entries (urls or url-patterns, using wildcards) you want in the
fallback- an object with key-value pairs where key is the url or url-pattern to capture, and value is the fallback url. They will appear in the
settings- an array of settings. Currently the only value that appcaches understand is
fastwhich refers to the caching mode enabled. See http://www.whatwg.org/specs/web-apps/current-work/multipage/offline.html#parsing-cache-manifests for full details.
unique- if set to a truthy value, will add result of
Math.random()as a comment, guaranteeing uniqueness.
Dateobject. Will be used to generate a "Last modified at" comment.
comment- a comment string.
comments- an array of comment strings, each comment will take up one line.
There's no way to control layout of the generated manifest. The output will be generally neat.
render-appcache-manifest will not validate the correctness of input. You are responsible for providing corrent urls or url-patterns, where appropriate. Also, adding a multi-line string as a comment will break the manifest.
Generate Manifest from Tokens
If you need fine grained control over the rendering process, you may pass in a list of ordered tokens to render a manifest. The tokens are generated by https://github.com/meryn/parse-appcache-manifest, but you can just as easily craft your own token list provided the format matches.
appcacheRender = require 'render-appcache-manifest' out = appcacheRender tokens
To compile the code:
npm install # once, to get the dev dependencies make build
To test the code:
Tokenizing support, settings support, whatwg spec conformance, and updated documentation from https://github.com/mreinstein.