%{ //def caller = _caller //while (caller._caller) caller = caller._caller //def sm = (_type == 'css') ? caller.gsCssSession : caller.gsJsSession def sm = play.modules.greenscript.GreenScriptPlugin.session(_type) def nameList (_require) && (nameList = _require) (_load) && (nameList = _load) (_import) && (nameList = _import) (_declare) && (nameList = _declare) (_arg) && (nameList = _arg) if (nameList) sm.declare(nameList, _media, _browser) def output = _output || _loadAll || _loadMissing def all = _all || _output ==~ /(?i)all/ || _loadMissing || _loadAll def withDeps = deps || _output ==~ /(?i)deps/ }% #{if output} #{if all} *{default browser with default media}* #{greenscript.output_ sm:sm, nameList: nameList, withDeps: withDeps, all: all, media: null, browser: null, id: _id, charset: _charset, type: _type/} *{default browser with non-default media}* #{list items: sm.getMedias(null), as: 'media'} #{greenscript.output_ sm:sm, nameList: nameList, withDeps: withDeps, all: all, media: media, browser: null, id: _id, charset: _charset, type: _type/} #{/list} *{non-default browsers}* #{list items: sm.getBrowsers(), as: 'browser'} #{list items: sm.getMedias(browser), as: 'media'} #{greenscript.output_ sm:sm, nameList: nameList, withDeps: withDeps, all: all, media: media, browser: browser, id: _id, charset: _charset, type: _type/} #{/list} #{/list} #{/if} #{else} #{greenscript.output_ sm:sm, nameList: nameList, withDeps: withDeps, all: all, media: media, browser: browser, id: _id, charset: _charset, type: _type /} #{/else} #{/if} *{handle inline case}* %{ def inline if (_inclosure) { def oldOut = _inclosure.getProperty("out") def sw = new java.io.StringWriter() _inclosure.setProperty("out", new java.io.PrintWriter(sw)) _inclosure.call() inline = sw.toString() _inclosure.setProperty("out", oldOut) } if (inline && !_output) { def priority = _priority ? _priority : 0 sm.declareInline(inline, priority) } }% #{if inline && _output} #{greenscript.openTag_ type: _type/} ${inline.raw()} #{greenscript.closeTag_ type: _type/} #{/if}