Repository: incubator-freemarker-site
Updated Branches:
  refs/heads/asf-site 1d3015292 -> a24e40d55


Release preview Manual: More clear description of the square bracket syntaxes.


Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/commit/a24e40d5
Tree: 
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/tree/a24e40d5
Diff: 
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/diff/a24e40d5

Branch: refs/heads/asf-site
Commit: a24e40d55105139cc9937566790938ec6bef127c
Parents: 1d30152
Author: ddekany <ddek...@apache.org>
Authored: Sat Mar 24 15:45:36 2018 +0100
Committer: ddekany <ddek...@apache.org>
Committed: Sat Mar 24 15:45:36 2018 +0100

----------------------------------------------------------------------
 .../fm2.3.28/dgui_misc_alternativesyntax.html   | 128 +++++++++++++------
 1 file changed, 88 insertions(+), 40 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a24e40d5/builds/fm2.3.28/dgui_misc_alternativesyntax.html
----------------------------------------------------------------------
diff --git a/builds/fm2.3.28/dgui_misc_alternativesyntax.html 
b/builds/fm2.3.28/dgui_misc_alternativesyntax.html
index 9d744ed..e274f83 100644
--- a/builds/fm2.3.28/dgui_misc_alternativesyntax.html
+++ b/builds/fm2.3.28/dgui_misc_alternativesyntax.html
@@ -56,14 +56,30 @@ under the License.
 <h1 class="content-header header-section1" id="dgui_misc_alternativesyntax" 
itemprop="headline">Alternative (square bracket) syntax</h1>
 </div></div><div class="page-menu">
 <div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#dgui_misc_alternativesyntax_tag" 
data-menu-target="dgui_misc_alternativesyntax_tag">Square bracket tag 
syntax</a></li><li><a class="page-menu-link" 
href="#dgui_misc_alternativesyntax_interpolation" 
data-menu-target="dgui_misc_alternativesyntax_interpolation">Square bracket 
interpolation syntax</a></li></ul> </div><p>Both FreeMarker tags (such as <code 
class="inline-code">&lt;#if x&gt;</code>)
-        and FreeMarker interpolations (such as <code 
class="inline-code">${x}</code>) can be
-        set <em>independently</em> to use so called square bracket
-        syntax (<code class="inline-code">[#if x]</code>, and <code 
class="inline-code">[=x]</code>,
-        respectively). This is mostly useful to prevent clashes with the
-        generated content (such as when generating JSP files), or to work
-        around cases where some other tool is confused by the default
-        symbols.</p>
+<ul><li><a class="page-menu-link" href="#dgui_misc_alternativesyntax_tag" 
data-menu-target="dgui_misc_alternativesyntax_tag">Square bracket tag 
syntax</a></li><li><a class="page-menu-link" 
href="#dgui_misc_alternativesyntax_interpolation" 
data-menu-target="dgui_misc_alternativesyntax_interpolation">Square bracket 
interpolation syntax</a></li></ul> </div><p>Sometimes the generated content 
uses symbols that clashes with
+        the default FreeMarker syntax (typically,
+        <code class="inline-code">${<em class="code-color">...</em>}</code>-s 
that FreeMarker
+        should print as is, without interpretation), or you use some tool that
+        is confused by the default FreeMarker syntax (typically by
+        <code class="inline-code">&lt;</code> and <code 
class="inline-code">&gt;</code>). While usually
+        there are tricks to work those cases around (like you can use
+        <code class="inline-code">${&#39;$&#39;}{x}</code> to print <code 
class="inline-code">${x}</code> as is) ,
+        they are often too inconvenient. Thus, the interpolation syntax can be
+        configured to be like <code class="inline-code">[=x]</code> instead of
+        <code class="inline-code">${x}</code>. Also, independently of that, 
the FreeMarker
+        tag syntax can be configured to use <code 
class="inline-code">[]</code>, like in
+        <code class="inline-code">[#if x]<em 
class="code-color">...</em>[/#if]</code>.
+        </p>  <div class="callout note">
+    <strong class="callout-label">Note:</strong>
+
+          <p>While both the "tag syntax" and
+          "interpolation syntax" can be configured to use square
+          brackets, they are totally independent configuration settings. Thus,
+          the overall syntax can be like <code class="inline-code">[#if 
x]${y}[/#if]</code>,
+          or like <code class="inline-code">&lt;#if 
x&gt;[=y]&lt;/#if&gt;</code> as
+          well.</p>
+          </div>
+
           
 
 
@@ -74,6 +90,15 @@ under the License.
             <div class="callout note">
     <strong class="callout-label">Note:</strong>
 
+            <p>This section is about the <em>tag</em> syntax,
+            not the <a 
href="#dgui_misc_alternativesyntax_interpolation"><em>interpolation</em>
+            syntax</a>. Don&#39;t confuse the two, they are independent.</p>
+            </div>
+
+
+            <div class="callout note">
+    <strong class="callout-label">Note:</strong>
+
             <p>This feature exists since FreeMarker 2.3.4.</p>
             </div>
 
@@ -99,8 +124,8 @@ under the License.
             </li>
           </ul>
 
-          <p>To use the alternative tag syntax instead of the default one,
-          the programmers should configure FreeMarker so <span 
class="marked-for-programmers">(see
+          <p>To use square tag syntax instead of the default one, the
+          programmers should configure FreeMarker so <span 
class="marked-for-programmers">(see
           <code class="inline-code">Configuraton.setTagSyntax</code>, or the
           <code class="inline-code">tag_syntax</code> setting)</span>. 
However, the tag
           syntax can also be enforced in the template, with the <a 
href="ref_directive_ftl.html"><code>ftl</code> directive</a>
@@ -124,33 +149,31 @@ under the License.
   <strong>[/#list]</strong>
 &lt;/table&gt;</pre></div>
 
-          <p>The alternative (square bracket) and the default (angle
-          bracket) syntax are mutually exclusive within a template. That is,
-          either the whole template uses square bracket tag syntax, or the
-          whole template uses the angle bracket tag syntax. If the template
-          uses square bracket tag syntax, then things like <code 
class="inline-code">&lt;#if
-          <em class="code-color">...</em>&gt;</code> are count as static
-          text, not as FTL tags. Similarly, if the template uses the angle
-          brackets tag syntax, things like <code class="inline-code">[#if
-          <em class="code-color">...</em>]</code> count as static text, not
-          as FTL tags.</p>
+          <p>The square bracket and the default (angle bracket) syntax are
+          mutually exclusive within a template; they can&#39;t be mixed. If the
+          template uses square bracket tag syntax, then things like
+          <code class="inline-code">&lt;#if <em 
class="code-color">...</em>&gt;</code> will
+          be just static text, not FTL tags. Similarly, if the template uses
+          the angle brackets tag syntax, things like <code 
class="inline-code">[#if
+          <em class="code-color">...</em>]</code> are static text, not FTL
+          tags.</p>
 
           <p>If you start the file with <code class="inline-code">[#ftl
           <em class="code-color">...</em>]</code> (where the
           <code class="inline-code"><em class="code-color">...</em></code> 
stands for the
           optional parameters; of course <code 
class="inline-code">[#ftl]</code> works too)
-          the file will surely use the square bracket syntax. If you start the
-          file with <code class="inline-code">&lt;#ftl
-          <em class="code-color">...</em>&gt;</code> the file will surely
-          use the normal (angle bracket) syntax. If there is no
+          the file will use square bracket <em>tag</em> syntax
+          regardless of the configuration settings (but that does
+          <em>not</em> change the interpolation syntax to
+          <code class="inline-code">[=...]</code>). Similarly, if you start 
the file with
+          <code class="inline-code">&lt;#ftl <em 
class="code-color">...</em>&gt;</code> the
+          file will use the normal (angle bracket) tag syntax. If there is no
           <code class="inline-code">ftl</code> directive in the file, then the 
programmer
-          decides what the syntax will be by configuring FreeMarker <span 
class="marked-for-programmers">(programmers see
-          <code class="inline-code">Configuration.setTagSyntax(int)</code> in 
the API
+          decides what the tag <em>syntax</em> will be by
+          configuring FreeMarker <span 
class="marked-for-programmers">(programmers
+          see <code class="inline-code">Configuration.setTagSyntax(int)</code> 
in the API
           javadocs)</span>. Most probably the programmers use the factory
-          default however. The factory default in 2.3.x is using the normal
-          syntax. The factory default in 2.4.x will be auto-detection, which
-          means that the first FreeMarker tag determines the syntax (it can be
-          anything, not just <code class="inline-code">ftl</code>).</p>
+          default.</p>
         
           
 
@@ -162,27 +185,42 @@ under the License.
             <div class="callout note">
     <strong class="callout-label">Note:</strong>
 
+            <p>This section is about the <em>interpolation</em>
+            syntax, not the <a 
href="#dgui_misc_alternativesyntax_tag"><em>tag</em>
+            syntax</a>. Don&#39;t confuse the two, they are independent.</p>
+            </div>
+
+
+            <div class="callout note">
+    <strong class="callout-label">Note:</strong>
+
             <p>This feature exists since FreeMarker 2.3.28</p>
             </div>
 
 
           <p>In this case instead of
-          <code class="inline-code">${<em 
class="code-color">expression</em>}</code> (and
+          <code class="inline-code">${<em 
class="code-color">expression</em>}</code> (and the
+          deprecated
           <code class="inline-code">#{<em 
class="code-color">expression</em>}</code>) you
           write <code class="inline-code">[=<em 
class="code-color">expression</em>]</code>.
-          This syntax is usually activated by the programmers from the
-          configuration <span class="marked-for-programmers">(see
+          This syntax is activated by the programmers from the configuration
+          <span class="marked-for-programmers">(see
           <code 
class="inline-code">Configuration.setInterpolationSyntax</code> in the Java
-          API)</span>. It can be used both together with, and without the
-          square bracket <em>tag</em> syntax (see that in the
-          <a href="#dgui_misc_alternativesyntax_tag">previous
-          section</a>), although it&#39;s more likely to be used together with
-          it. Assuming both interpolation and tag syntax was set to square
-          bracket, the earlier example template will look like this:</p>
+          API)</span>; unlike the tag syntax, it can&#39;t be specified inside
+          the template. It can be used both together with, and without the
+          <a href="#dgui_misc_alternativesyntax_tag">square bracket
+          <em>tag</em> syntax</a>, as they are technically
+          unrelated, but it&#39;s probably more aesthetic to use square bracket
+          tag syntax when you use square bracket interpolation syntax:</p>
 
           
 
-<div class="code-wrapper"><pre class="code-block code-template">&lt;p&gt;We 
have these animals:
+<div class="code-wrapper"><pre class="code-block code-template">[#--
+  Note:
+  This example uses both interpolation_syntax=squareBracket and 
tag_syntax=squareBracket,
+  but you can also use interpolation_syntax=squareBracket and 
tag_syntax=angleBracket.
+--]
+&lt;p&gt;We have these animals:
 &lt;table border=1&gt;
   &lt;tr&gt;&lt;th&gt;Name&lt;th&gt;Price
   [#list animals as animal]
@@ -203,6 +241,16 @@ under the License.
           (especially
           <code class="inline-code">${<em 
class="code-color">expression</em>}</code> is
           frequent), such as when generating JSP files.</p>
+
+          <p>There&#39;s also a third tag syntax, "dollar", where
+          only the interpolation syntax is
+          <code class="inline-code">${<em 
class="code-color">expression</em>}</code>, and the
+          deprecated
+          <code class="inline-code">#{<em 
class="code-color">expression</em>}</code> is just
+          static text. (The one where
+          <code class="inline-code">#{<em 
class="code-color">expression</em>}</code> is still
+          an interpolation is called the "legacy" interpolation
+          syntax, and is the default for backward compatibility.)</p>
         <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a 
class="paging-arrow previous" 
href="dgui_misc_whitespace.html"><span>Previous</span></a><a 
class="paging-arrow next" 
href="pgui.html"><span>Next</span></a></div></div></div></div>      </div>
     </div>
 <div class="site-footer"><div class="site-width"><div class="footer-top"><div 
class="col-left sitemap"><div class="column"><h3 
class="column-header">Overview</h3><ul><li><a 
href="https://freemarker.apache.org/";>What is FreeMarker?</a></li><li><a 
href="https://freemarker.apache.org/freemarkerdownload.html";>Download</a></li><li><a
 href="app_versions.html">Version history</a></li><li><a 
href="https://freemarker.apache.org/history.html";>About us</a></li><li><a 
itemprop="license" href="app_license.html">License</a></li></ul></div><div 
class="column"><h3 class="column-header">Handy stuff</h3><ul><li><a 
href="http://try.freemarker.org/";>Try template online</a></li><li><a 
href="dgui_template_exp.html#exp_cheatsheet">Expressions 
cheatsheet</a></li><li><a 
href="ref_directive_alphaidx.html">#directives</a></li><li><a 
href="ref_builtins_alphaidx.html">?built_ins</a></li><li><a 
href="ref_specvar.html">.special_vars</a></li></ul></div><div 
class="column"><h3 class="column-header">Community</h3><u
 l><li><a href="https://github.com/freemarker/freemarker";>FreeMarker on 
Github</a></li><li><a href="https://twitter.com/freemarker";>Follow us on 
Twitter</a></li><li><a 
href="https://issues.apache.org/jira/browse/FREEMARKER/";>Report a 
bug</a></li><li><a 
href="https://stackoverflow.com/questions/ask?tags=freemarker";>Ask a 
question</a></li><li><a 
href="https://freemarker.apache.org/mailing-lists.html";>Mailing 
lists</a></li></ul></div></div><div class="col-right"><ul 
class="social-icons"><li><a class="github" 
href="https://github.com/freemarker/freemarker";>Github</a></li><li><a 
class="twitter" href="https://twitter.com/freemarker";>Twitter</a></li><li><a 
class="stack-overflow" 
href="https://stackoverflow.com/questions/ask?tags=freemarker";>Stack 
Overflow</a></li></ul><a class="xxe" href="http://www.xmlmind.com/xmleditor/"; 
rel="nofollow" title="Edited with XMLMind XML Editor"><span>Edited with XMLMind 
XML Editor</span></a></div></div><div class="footer-bottom"> <p 
class="last-generated">

Reply via email to