This is an automated email from the ASF dual-hosted git repository.

asf-ci-deploy pushed a commit to branch asf-site-production
in repository https://gitbox.apache.org/repos/asf/grails-website.git


The following commit(s) were added to refs/heads/asf-site-production by this 
push:
     new a07565e5289 Deploying to documentation branch - 17:04:27
a07565e5289 is described below

commit a07565e52891c4fa96991cc67e3e2ea753ec3cb0
Author: jdaugherty <[email protected]>
AuthorDate: Thu Aug 13 17:04:30 2026 +0000

    Deploying to documentation branch - 17:04:27
---
 .../grails-data/developer-manual/gettingStarted.html       |  2 +-
 .../grails-data/developer-manual/introduction.html         |  2 +-
 docs/snapshot/grails-data/developer-manual/stepByStep.html |  2 +-
 docs/snapshot/grails-data/developer-manual/testing.html    |  2 +-
 .../grails-data/developer-manual/understandingApi.html     |  2 +-
 .../developer-manual/understandingApi/datastoreBasics.html |  2 +-
 .../developer-manual/understandingApi/gormApis.html        |  2 +-
 .../developer-manual/understandingApi/gormEnhancer.html    |  2 +-
 .../understandingApi/implementingCrud.html                 |  2 +-
 .../understandingApi/implementingQueries.html              |  2 +-
 .../understandingApi/secondaryIndexes.html                 |  2 +-
 docs/snapshot/grails-data/whats-new-manual/index.html      |  2 +-
 docs/snapshot/guide/single.html                            | 14 ++++++++++++++
 docs/snapshot/guide/theWebLayer.html                       | 14 ++++++++++++++
 14 files changed, 40 insertions(+), 12 deletions(-)

diff --git a/docs/snapshot/grails-data/developer-manual/gettingStarted.html 
b/docs/snapshot/grails-data/developer-manual/gettingStarted.html
index 7da925c52fc..2f0607b211c 100644
--- a/docs/snapshot/grails-data/developer-manual/gettingStarted.html
+++ b/docs/snapshot/grails-data/developer-manual/gettingStarted.html
@@ -523,7 +523,7 @@ cd grails-core</pre>
 <div id="footer">
 <div id="footer-text">
 Version 8.0.0-SNAPSHOT<br>
-Last updated 2026-08-11 20:55:42 UTC
+Last updated 2026-08-13 16:41:58 UTC
 </div>
 </div>
 </body>
diff --git a/docs/snapshot/grails-data/developer-manual/introduction.html 
b/docs/snapshot/grails-data/developer-manual/introduction.html
index 2a9e1f93aa2..8ad77623f0d 100644
--- a/docs/snapshot/grails-data/developer-manual/introduction.html
+++ b/docs/snapshot/grails-data/developer-manual/introduction.html
@@ -476,7 +476,7 @@ body.book #toc,body.book #preamble,body.book 
h1.sect0,body.book .sect1>h2{page-b
 <div id="footer">
 <div id="footer-text">
 Version 8.0.0-SNAPSHOT<br>
-Last updated 2026-08-11 20:55:42 UTC
+Last updated 2026-08-13 16:41:58 UTC
 </div>
 </div>
 </body>
diff --git a/docs/snapshot/grails-data/developer-manual/stepByStep.html 
b/docs/snapshot/grails-data/developer-manual/stepByStep.html
index cc07188b1d8..be17352258c 100644
--- a/docs/snapshot/grails-data/developer-manual/stepByStep.html
+++ b/docs/snapshot/grails-data/developer-manual/stepByStep.html
@@ -621,7 +621,7 @@ class XyzTestSuite {
 <div id="footer">
 <div id="footer-text">
 Version 8.0.0-SNAPSHOT<br>
-Last updated 2026-08-11 20:55:42 UTC
+Last updated 2026-08-13 16:41:58 UTC
 </div>
 </div>
 </body>
diff --git a/docs/snapshot/grails-data/developer-manual/testing.html 
b/docs/snapshot/grails-data/developer-manual/testing.html
index 1b1722150a0..db59a3be93b 100644
--- a/docs/snapshot/grails-data/developer-manual/testing.html
+++ b/docs/snapshot/grails-data/developer-manual/testing.html
@@ -511,7 +511,7 @@ class PagedResultSpec extends GormDatastoreSpec{
 <div id="footer">
 <div id="footer-text">
 Version 8.0.0-SNAPSHOT<br>
-Last updated 2026-08-11 20:55:42 UTC
+Last updated 2026-08-13 16:41:58 UTC
 </div>
 </div>
 </body>
diff --git a/docs/snapshot/grails-data/developer-manual/understandingApi.html 
b/docs/snapshot/grails-data/developer-manual/understandingApi.html
index ba162e64bc4..85c841344df 100644
--- a/docs/snapshot/grails-data/developer-manual/understandingApi.html
+++ b/docs/snapshot/grails-data/developer-manual/understandingApi.html
@@ -454,7 +454,7 @@ body.book #toc,body.book #preamble,body.book 
h1.sect0,body.book .sect1>h2{page-b
 <div id="footer">
 <div id="footer-text">
 Version 8.0.0-SNAPSHOT<br>
-Last updated 2026-08-11 20:55:42 UTC
+Last updated 2026-08-13 16:41:58 UTC
 </div>
 </div>
 </body>
diff --git 
a/docs/snapshot/grails-data/developer-manual/understandingApi/datastoreBasics.html
 
b/docs/snapshot/grails-data/developer-manual/understandingApi/datastoreBasics.html
index 52b5ee58904..427bdb047f9 100644
--- 
a/docs/snapshot/grails-data/developer-manual/understandingApi/datastoreBasics.html
+++ 
b/docs/snapshot/grails-data/developer-manual/understandingApi/datastoreBasics.html
@@ -561,7 +561,7 @@ protected Session createSession(PropertyResolver 
connDetails) {
 <div id="footer">
 <div id="footer-text">
 Version 8.0.0-SNAPSHOT<br>
-Last updated 2026-08-11 20:55:42 UTC
+Last updated 2026-08-13 16:41:58 UTC
 </div>
 </div>
 </body>
diff --git 
a/docs/snapshot/grails-data/developer-manual/understandingApi/gormApis.html 
b/docs/snapshot/grails-data/developer-manual/understandingApi/gormApis.html
index c266cf79d9a..c258a0bc7ff 100644
--- a/docs/snapshot/grails-data/developer-manual/understandingApi/gormApis.html
+++ b/docs/snapshot/grails-data/developer-manual/understandingApi/gormApis.html
@@ -496,7 +496,7 @@ class Neo4jEntityTraitProvider implements 
GormEntityTraitProvider {
 <div id="footer">
 <div id="footer-text">
 Version 8.0.0-SNAPSHOT<br>
-Last updated 2026-08-11 20:55:42 UTC
+Last updated 2026-08-13 16:41:58 UTC
 </div>
 </div>
 </body>
diff --git 
a/docs/snapshot/grails-data/developer-manual/understandingApi/gormEnhancer.html 
b/docs/snapshot/grails-data/developer-manual/understandingApi/gormEnhancer.html
index f218648387a..261ad995392 100644
--- 
a/docs/snapshot/grails-data/developer-manual/understandingApi/gormEnhancer.html
+++ 
b/docs/snapshot/grails-data/developer-manual/understandingApi/gormEnhancer.html
@@ -488,7 +488,7 @@ enhancer.enhance()</code></pre>
 <div id="footer">
 <div id="footer-text">
 Version 8.0.0-SNAPSHOT<br>
-Last updated 2026-08-11 20:55:42 UTC
+Last updated 2026-08-13 16:41:58 UTC
 </div>
 </div>
 </body>
diff --git 
a/docs/snapshot/grails-data/developer-manual/understandingApi/implementingCrud.html
 
b/docs/snapshot/grails-data/developer-manual/understandingApi/implementingCrud.html
index d8543fbaa14..3c4feeae34a 100644
--- 
a/docs/snapshot/grails-data/developer-manual/understandingApi/implementingCrud.html
+++ 
b/docs/snapshot/grails-data/developer-manual/understandingApi/implementingCrud.html
@@ -673,7 +673,7 @@ protected void deleteEntry(String family, final Object key, 
final Object entry)
 <div id="footer">
 <div id="footer-text">
 Version 8.0.0-SNAPSHOT<br>
-Last updated 2026-08-11 20:55:42 UTC
+Last updated 2026-08-13 16:41:58 UTC
 </div>
 </div>
 </body>
diff --git 
a/docs/snapshot/grails-data/developer-manual/understandingApi/implementingQueries.html
 
b/docs/snapshot/grails-data/developer-manual/understandingApi/implementingQueries.html
index b2e155b5bab..2dd28ca274d 100644
--- 
a/docs/snapshot/grails-data/developer-manual/understandingApi/implementingQueries.html
+++ 
b/docs/snapshot/grails-data/developer-manual/understandingApi/implementingQueries.html
@@ -588,7 +588,7 @@ If, for instance, the underlying datastore does not support 
the calculation of a
 <div id="footer">
 <div id="footer-text">
 Version 8.0.0-SNAPSHOT<br>
-Last updated 2026-08-11 20:55:42 UTC
+Last updated 2026-08-13 16:41:58 UTC
 </div>
 </div>
 </body>
diff --git 
a/docs/snapshot/grails-data/developer-manual/understandingApi/secondaryIndexes.html
 
b/docs/snapshot/grails-data/developer-manual/understandingApi/secondaryIndexes.html
index 91ddd503512..84079fbe8a4 100644
--- 
a/docs/snapshot/grails-data/developer-manual/understandingApi/secondaryIndexes.html
+++ 
b/docs/snapshot/grails-data/developer-manual/understandingApi/secondaryIndexes.html
@@ -526,7 +526,7 @@ If the underlying datastore supports secondary indexes then 
it is ok to just ret
 <div id="footer">
 <div id="footer-text">
 Version 8.0.0-SNAPSHOT<br>
-Last updated 2026-08-11 20:55:42 UTC
+Last updated 2026-08-13 16:41:58 UTC
 </div>
 </div>
 </body>
diff --git a/docs/snapshot/grails-data/whats-new-manual/index.html 
b/docs/snapshot/grails-data/whats-new-manual/index.html
index d3c1be7a993..7b181c93f16 100644
--- a/docs/snapshot/grails-data/whats-new-manual/index.html
+++ b/docs/snapshot/grails-data/whats-new-manual/index.html
@@ -527,7 +527,7 @@ body.book #toc,body.book #preamble,body.book 
h1.sect0,body.book .sect1>h2{page-b
 <div id="footer">
 <div id="footer-text">
 Version 8.0.0-SNAPSHOT<br>
-Last updated 2026-08-11 20:55:42 UTC
+Last updated 2026-08-13 16:41:58 UTC
 </div>
 </div>
 </body>
diff --git a/docs/snapshot/guide/single.html b/docs/snapshot/guide/single.html
index 0ed5b120b40..5ef3638d8e8 100644
--- a/docs/snapshot/guide/single.html
+++ b/docs/snapshot/guide/single.html
@@ -20192,6 +20192,20 @@ your.custom.ComponentB;&quot;
 <div class="paragraph">
 <p>However, unlike JSP EL you can have any Groovy expression within the 
<code>${..}</code> block.</p>
 </div>
+<div class="paragraph">
+<p>A backslash immediately before an expression escapes it: the expression is 
not evaluated, and the page renders a literal <code>${..}</code> without the 
backslash. This matters most for JavaScript template literals, whose 
interpolation placeholders share the <code>${..}</code> syntax and would 
otherwise be evaluated on the server:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="xml"><span 
class="tag">&lt;script&gt;</span>
+<span class="inline">    const name = <span class="string"><span 
class="delimiter">'</span><span class="content">Grails</span><span 
class="delimiter">'</span></span>;
+    console.log(<span class="error">`</span>Hello <span 
class="error">\</span><span class="predefined">$</span>{name}<span 
class="error">`</span>);</span>
+<span class="tag">&lt;/script&gt;</span></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>The browser receives the template literal with its <code>${name}</code> 
placeholder intact, to be interpolated by JavaScript. Only the backslash 
performing the escape is removed, and each expression must be escaped 
individually. Expressions in the attributes of GSP tags cannot be escaped this 
way.</p>
+</div>
 <div class="admonitionblock warning">
 <table>
 <tr>
diff --git a/docs/snapshot/guide/theWebLayer.html 
b/docs/snapshot/guide/theWebLayer.html
index 3d627d4d27a..1dae5cb4d5d 100644
--- a/docs/snapshot/guide/theWebLayer.html
+++ b/docs/snapshot/guide/theWebLayer.html
@@ -3788,6 +3788,20 @@ your.custom.ComponentB;&quot;
 <div class="paragraph">
 <p>However, unlike JSP EL you can have any Groovy expression within the 
<code>${..}</code> block.</p>
 </div>
+<div class="paragraph">
+<p>A backslash immediately before an expression escapes it: the expression is 
not evaluated, and the page renders a literal <code>${..}</code> without the 
backslash. This matters most for JavaScript template literals, whose 
interpolation placeholders share the <code>${..}</code> syntax and would 
otherwise be evaluated on the server:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="xml"><span 
class="tag">&lt;script&gt;</span>
+<span class="inline">    const name = <span class="string"><span 
class="delimiter">'</span><span class="content">Grails</span><span 
class="delimiter">'</span></span>;
+    console.log(<span class="error">`</span>Hello <span 
class="error">\</span><span class="predefined">$</span>{name}<span 
class="error">`</span>);</span>
+<span class="tag">&lt;/script&gt;</span></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>The browser receives the template literal with its <code>${name}</code> 
placeholder intact, to be interpolated by JavaScript. Only the backslash 
performing the escape is removed, and each expression must be escaped 
individually. Expressions in the attributes of GSP tags cannot be escaped this 
way.</p>
+</div>
 <div class="admonitionblock warning">
 <table>
 <tr>

Reply via email to