I wrote:
I have several scripts (Groovy and Velocity) that generate output that should not be rendered as a Wiki page. This is necessary, for example, when rendering JSON. As documented before (http://extensions.xwiki.org/xwiki/bin/view/Extension/Output+JSON) , it's possible to allow such content by including request parameters xpage=plain and outputSyntax=plain. However, this approach requires all pages that refer to the script to remember to include these parameters, which is rather error prone.
Is there a way for a script to explicitly disable rendering instead?
Vincent replied:
Yes, there is :)
For Groovy, seeĀ http://extensions.xwiki.org/xwiki/bin/view/Extension/Script+Macro (check the output and wiki parameters)
For Velocity, seeĀ http://extensions.xwiki.org/xwiki/bin/view/Extension/Velocity+Macro (same parameter names).
OK, so trying both options with a content body {{velocity output="false" wiki="false"}} $response.setContentType('application/json') { "greeting" : "Hello", "location": "World" } {{/velocity}} I get a document of Content-Script-Type text/javascript but with a 38KB file of HTML containing the usual Wiki page content, which I'd like to avoid. I think if I explicitly set xpage=plain in the request then the template skips rendering this stuff, but what I was wondering was whether I could set this from within my script instead.