Script
script name(params) { … } declares a JS function template;
<script> element bodies may interpolate {{ expr }} with JS-context
escaping; ghtmx.JSFuncCall builds escaped handler attributes;
ghtmx.JSONScript emits JSON data islands; once-handles deduplicate
shared snippets.
script alertName(name string) {
alert(name);
}
templ buttons(msg string) {
<button onClick={ alertName(msg) }>go</button>
<script>
var payload = "{{ msg }}";
</script>
}
AST: ScriptTemplate, ScriptElement, ScriptContents.
Verified by: internal/generator/test-script-usage,
internal/generator/test-script-inline,
internal/generator/test-script-expressions,
internal/generator/test-script-usage-nonce,
internal/generator/test-only-scripts,
internal/generator/test-js-usage,
internal/generator/test-js-unsafe-usage,
internal/generator/test-once.