File generators
Generated files may each be a maximum of 20MB.
File generator | Purpose |
Decodes base64-encoded content, returning a file containing the results | |
Renders HTML using a full Webkit browser, returning a PDF file of the results | |
Allows defining file contents using a plain string, instead of a file generator object | |
Downloads and returns a file | |
Accepts its own set of file generators, returning a ZIP archive of the results |
File generator objects, like action objects, are plain JSON objects each having a single key, and a single value. The object key specifies which file generator is to be invoked; the object value contains the options used for that generator.
{
FILE_GENERATOR_TYPE: FILE_GENERATOR_OPTIONS
}
In practice, file generator objects are given as values in a larger JSON object, in which filenames are mapped to file generators.
The plaintext file generator is invoked implicitly by supplying a string, instead of supplying the usual file generator object.
In the following example, a Files action is defined, mapping filenames (
"invoice.pdf"
, "external.jpg"
, and plain.txt
) to file generators (a PDF generator, a URL generator, and – implicitly – a plaintext generator). Note how the file generator invocation varies, based on the specific file generator in play.{% action "files" %}
{
"invoice.pdf": {
"pdf": {
"html": "<h1>Order #12345</h1>\n<p>It's due!</p>"
}
},
"external.jpg": {
"url": "https://upload.wikimedia.org/wikipedia/en/a/a9/Example.jpg"
},
"plain.txt": "This\nis\na\nmulti-line\nplaintext\nfile."
}
{% endaction %}
Last modified 1yr ago