http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/52c070a9/builds/2.3.26-nightly/versions_2_3_25.html ---------------------------------------------------------------------- diff --git a/builds/2.3.26-nightly/versions_2_3_25.html b/builds/2.3.26-nightly/versions_2_3_25.html new file mode 100644 index 0000000..9ff74f2 --- /dev/null +++ b/builds/2.3.26-nightly/versions_2_3_25.html @@ -0,0 +1,228 @@ +<!doctype html> +<!-- Generated by FreeMarker/Docgen from DocBook --> +<html lang="en" class="page-type-section"> +<head prefix="og: http://ogp.me/ns#"> +<meta charset="utf-8"> +<title>2.3.25 (incubating at Apache) - Apache FreeMarker Manual</title> +<meta http-equiv="X-UA-Compatible" content="IE=edge"> +<meta name="viewport" content="width=device-width,initial-scale=1"> +<meta name="format-detection" content="telephone=no"> +<meta property="og:site_name" content="Apache FreeMarker Manual"> +<meta property="og:title" content="2.3.25 (incubating at Apache)"> +<meta property="og:locale" content="en_US"> +<meta property="og:url" content="http://freemarker.org/docs/versions_2_3_25.html"> +<link rel="canonical" href="http://freemarker.org/docs/versions_2_3_25.html"> +<link rel="icon" href="favicon.png" type="image/png"> +<link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Roboto:500,700,400,300|Droid+Sans+Mono"> +<link rel="stylesheet" type="text/css" href="docgen-resources/docgen.min.css?1489402528979"> +<script> +(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ +(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), +m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) +})(window,document,'script','//www.google-analytics.com/analytics.js','ga'); +ga('create', 'UA-55420501-1', 'auto'); +ga('send', 'pageview'); +</script> +</head> +<body itemscope itemtype="https://schema.org/Code"> + <meta itemprop="url" content="http://freemarker.org/docs/"> + <meta itemprop="name" content="Apache FreeMarker Manual"> + + <!--[if lte IE 9]> + <div style="background-color: #C00; color: #fff; padding: 12px 24px;">Please use a modern browser to view this website.</div> + <![endif]--><div class="header-top-bg"><div class="site-width header-top"><a class="logo" href="http://freemarker.org" role="banner"> <img itemprop="image" src="logo.png" alt="FreeMarker"> +</a><ul class="tabs"><li><a href="http://freemarker.org/">Home</a></li><li class="current"><a href="index.html">Manual</a></li><li><a class="external" href="api/index.html">Java API</a></li></ul><ul class="secondary-tabs"><li><a class="tab icon-heart" href="http://freemarker.org/contribute.html" title="Contribute"><span>Contribute</span></a></li><li><a class="tab icon-bug" href="https://issues.apache.org/jira/browse/FREEMARKER/" title="Report a Bug"><span>Report a Bug</span></a></li><li><a class="tab icon-download" href="http://freemarker.org/freemarkerdownload.html" title="Download"><span>Download</span></a></li></ul></div></div><div class="header-bottom-bg"><div class="site-width search-row"><a href="index.html" class="navigation-header">Manual</a><div class="navigation-header"></div><form method="get" class="search-form" action="search-results.html"><fieldset><legend class="sr-only">Search form</legend><label for="search-field" class="sr-only">Search query</label><input id="searc h-field" name="q" type="search" class="search-input" placeholder="Search" spellcheck="false" autocorrect="off" autocomplete="off"><button type="submit" class="search-btn"><span class="sr-only">Search</span></button></fieldset></form></div><div class="site-width breadcrumb-row"><ul class="breadcrumb" itemscope itemtype="http://schema.org/BreadcrumbList"><li class="step-0" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="index.html"><span itemprop="name">Apache FreeMarker Manual</span></a></li><li class="step-1" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="app.html"><span itemprop="name">Appendixes</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="app_versions.html"><span itemprop="name">Version history</span></a></li><li class="step-3" itemprop="itemListEl ement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="versions_2_3_25.html"><span itemprop="name">2.3.25 (incubating at Apache)</span></a></li></ul><div class="bookmarks" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul class="bookmark-list"><li><a href="alphaidx.html">Alpha. index</a></li><li><a href="gloss.html">Glossary</a></li><li><a href="dgui_template_exp.html#exp_cheatsheet">Expressions</a></li><li><a href="ref_builtins_alphaidx.html">?builtins</a></li><li><a href="ref_directive_alphaidx.html">#directives</a></li><li><a href="ref_specvar.html">.spec_vars</a></li><li><a href="app_faq.html">FAQ</a></li></ul></div></div></div> <div class="main-content site-width"> + <div class="content-wrapper"> + <div id="table-of-contents-wrapper" class="col-left"> + <script>var breadcrumb = ["Apache FreeMarker Manual","Appendixes","Version history","2.3.25 (incubating at Apache)"];</script> + <script src="toc.js?1489402528979"></script> + <script src="docgen-resources/main.min.js?1489402528979"></script> + </div> +<div class="col-right"><div class="page-content"><div class="page-title"><div class="pagers top"><a class="paging-arrow previous" href="versions_2_3_26.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_24.html"><span>Next</span></a></div><div class="title-wrapper"> +<h1 class="content-header header-section1" id="versions_2_3_25" itemprop="headline">2.3.25 (incubating at Apache)</h1> +</div></div><div class="page-menu"> +<div class="page-menu-title">Page Contents</div> +<ul><li><a class="page-menu-link" href="#autoid_158" data-menu-target="autoid_158">Changes on the FTL side</a></li><li><a class="page-menu-link" href="#autoid_159" data-menu-target="autoid_159">Changes on the Java side</a></li></ul> </div><p>Release date: 2016-06-26</p><p><strong>This is a stable, final + release.</strong> The "incubating" suffix is required + by the Apache Software Foundation until the project becomes a fully + accepted (graduated) Apache project.</p> + + + + +<h2 class="content-header header-section2" id="autoid_158">Changes on the FTL side</h2> + + + <ul> + <li> + <p>Extended the <a href="ref_directive_list.html#ref.directive.list"><code>list</code> + directive</a> to support listing hashes (such as + <code class="inline-code">Map</code>-s), like <code class="inline-code"><#list map as k, + v>${k}: ${v}</#list></code>, where + <code class="inline-code">k</code> and <code class="inline-code">v</code> are the key and + value in the key-value pairs of the hash.</p> + </li> + </ul> + + + + + +<h2 class="content-header header-section2" id="autoid_159">Changes on the Java side</h2> + + + <ul> + <li> + <p>Added the <code class="inline-code">TemplateModelHashEx2</code> + interface that extends <code class="inline-code">TemplateModelHashEx</code> + with a method for listing the content of the key-value pairs of + the hash. (This is utilized by the new hash listing capability + of the <a href="ref_directive_list.html#ref.directive.list"><code>list</code> + directive</a>, but it's not required by it if all keys are + strings.)</p> + </li> + + <li> + <p>Lazy imports: With the new boolean settings, + <code class="inline-code">lazy_imports</code> and + <code class="inline-code">lazy_auto_imports</code>, you can make imports (as + in <code class="inline-code"><#import "lib/utils.ftl" as u></code>) + and/or auto-imports to be lazy. When the import is lazy, the + namespace variable (<code class="inline-code">u</code> in this example) will + be created immediately, just like before, but the imported + template will be loaded and processed only when (and if ever) + the content of the imported namespace is accessed. The main + application of this is with auto-imports, where you don't want + the overhead of importing templates that aren't actually used in + a template. (Also, a new + <code class="inline-code">Environment.importLib</code> method overload was + added, where you can specify if you want a lazy or an eager + import.) These new settings can be set on + <code class="inline-code">Configuration</code>, <code class="inline-code">Template</code> + (<code class="inline-code">TemplateConfiguration</code>) and + <code class="inline-code">Environment</code> level.</p> + </li> + + <li> + <p>It's now possible to set the + <code class="inline-code">auto_import</code> and + <code class="inline-code">auto_include</code> settings on a per template basis + (like templates with a certain name pattern has different + auto-imports). This is now possible as these settings were moved + from the <code class="inline-code">Configuration</code> level down to the more + generic <code class="inline-code">Configurable</code> level, and so are + inherited by <code class="inline-code">TemplateConfiguration</code> and + <code class="inline-code">Environment</code> too.</p> + </li> + + <li> + <p>New <code class="inline-code">Configuration</code> (and + <code class="inline-code">TemplateConfiguration</code>) setting, + <code class="inline-code">tab_size</code>. This only influences how the column + number reported in error messages is calculated (and the column + number available with other API-s). It doesn't influence the + output of the templates. Defaults to 8.</p> + </li> + + <li> + <p>Added new setting to + <code class="inline-code">DefaultObjectWrapper</code> (and to + <code class="inline-code">DefaultObjectWrapperBuilder</code>): + <code class="inline-code">iterableSupport</code>. This fixes the issue when + you couldn't use <code class="inline-code">#list</code> (or + <code class="inline-code">?has_next</code>, etc.) on a value that only + implements Java 5 <code class="inline-code">java.lang.Iterable</code> (not to + be confused with <code class="inline-code">Iterator</code>), but not + <code class="inline-code">Collection</code>. This is not enabled by default as + it's not compatible with some existing templates, most often + because they have used + <code class="inline-code">someIterable.iterator()</code> in the template as a + workaround. When this is enabled, the + <code class="inline-code">Iterable</code> object won't be seen as a generic + Java object by FreeMarker anymore, and thus just like with + <code class="inline-code">Collection</code>-s, its API won't be exposed to the + templates (except through <code class="inline-code">?api</code>, of + course).</p> + </li> + + <li> + <p>Added + <code class="inline-code">Configurable.getCustomNumberFormatsWithoutFallback</code> + and + <code class="inline-code">Configurable.getCustomDateFormatsWithoutFallback</code> + methods to make it easier for custom code to investigate the + custom formal setting <code class="inline-code">Map</code> hierarchy.</p> + </li> + + <li> + <p>Bug fixed (<a href="https://issues.apache.org/jira/browse/FREEMARKER-18">FREEMARKER-18</a>): + If you had a JSP custom tag and an EL function defined in the + same TLD with the same name, the EL function has overwritten the + custom tag. This is a bug introduced in 2.3.23, when EL function + support was added. JSP allows a custom tag and an EL function in + the same TLD to have the same name. In such case now we combine + the two into a single value that is both callable as an user + defined directive (<code class="inline-code"><@my.foo...></code>) and as + a function (<code class="inline-code">my.f(...)</code>).</p> + </li> + + <li> + <p>Bug fixed (<a href="https://issues.apache.org/jira/browse/FREEMARKER-19">FREEMARKER-19</a>): + The column numbers calculated by the parser has assumed tab size + 1 since 2.3.25 (an unwanted side effect of updating JavaCC), + while before it has assumed tab size 8. The default was restored + to 8. This bug has affected the column numbers in error + messages. It also broke the output of some rarely used AIP-s, + namely <code class="inline-code">Template.getSource(beginCol, beginLine, endCol, + endLine)</code>, + <code class="inline-code">TemplateObject.getSource()</code> and through that + <code class="inline-code">TemplateObject.toString()</code>, if the first or + last line has contain tab characters.</p> + </li> + + <li> + <p>Bug fixed: There was a regression with 2.3.24, where + <code class="inline-code">Configuration.setAutoImports()</code> haven't + removed auto-imports added earlier. (Though it's unlikely that + an application uses that method and also adds auto-imports + earlier.)</p> + </li> + + <li> + <p>Bug fixed: + <code class="inline-code">TemplateConfiguration.apply(Template)</code> didn't + merge the <code class="inline-code">customDateFormats</code> and + <code class="inline-code">customNumberFormats</code> <code class="inline-code">Map</code>-s + when they were set both in the <code class="inline-code">Template</code> and + in the applied <code class="inline-code">TemplateConfiguration</code>, instead + it just kept the value in the <code class="inline-code">Template</code> (just + like with atomic setting values). Note that it was unlikely to + run into this bug, as usually you (or FreeMarker) create a + single merged <code class="inline-code">TemplateConfiguration</code> with + <code class="inline-code">TemplateConfiguration.merge(TemplateConfiguration)</code> + and then apply it on a fresh template.</p> + </li> + + <li> + <p>Removed FindBugs <code class="inline-code">@SuppressFBWarnings</code> + annotations from the binary (<code class="inline-code">freemarker.jar</code>), + as they have caused warnings like this when compiling dependant + project with Gradle: "warning: Cannot find annotation + method 'value()' in type 'SuppressFBWarnings'"</p> + </li> + + <li> + <p>The Maven source artifact now contains the JavaCC + generated java files and <code class="inline-code">FTL.jj</code>.</p> + </li> + </ul> + <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_3_26.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_24.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="http://freemarker.org/">What is FreeMarker?</a></li><li><a href="http://freemarker.org/freemarkerdownload.html">Download</a></li><li><a href="app_versions.html">Version history</a></li><li><a href="http://freemarker.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://freemarker-online.kenshoo.com/">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><ul><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="http://stackoverflow.com/questions/ask?tags=freemarker">Ask a question</a></li><li><a href="http://freemarker.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="http://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"> +Last generated: +<time itemprop="dateModified" datetime="2017-03-13T10:55:28Z" title="Monday, March 13, 2017 10:55:28 AM GMT">2017-03-13 10:55:28 GMT</time>, for Freemarker 2.3.26 </p> +<p class="copyright"> +© <span itemprop="copyrightYear">1999</span>â2017 +<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="http://apache.org/">The Apache Software Foundation</a>. Apache FreeMarker, FreeMarker, Apache Incubator, Apache, the Apache FreeMarker logo are trademarks of The Apache Software Foundation. </p> +</div></div></div></body> +</html>
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/52c070a9/builds/2.3.26-nightly/versions_2_3_26.html ---------------------------------------------------------------------- diff --git a/builds/2.3.26-nightly/versions_2_3_26.html b/builds/2.3.26-nightly/versions_2_3_26.html new file mode 100644 index 0000000..dd5ce6b --- /dev/null +++ b/builds/2.3.26-nightly/versions_2_3_26.html @@ -0,0 +1,297 @@ +<!doctype html> +<!-- Generated by FreeMarker/Docgen from DocBook --> +<html lang="en" class="page-type-section"> +<head prefix="og: http://ogp.me/ns#"> +<meta charset="utf-8"> +<title>2.3.26 (incubating at Apache) - Apache FreeMarker Manual</title> +<meta http-equiv="X-UA-Compatible" content="IE=edge"> +<meta name="viewport" content="width=device-width,initial-scale=1"> +<meta name="format-detection" content="telephone=no"> +<meta property="og:site_name" content="Apache FreeMarker Manual"> +<meta property="og:title" content="2.3.26 (incubating at Apache)"> +<meta property="og:locale" content="en_US"> +<meta property="og:url" content="http://freemarker.org/docs/versions_2_3_26.html"> +<link rel="canonical" href="http://freemarker.org/docs/versions_2_3_26.html"> +<link rel="icon" href="favicon.png" type="image/png"> +<link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Roboto:500,700,400,300|Droid+Sans+Mono"> +<link rel="stylesheet" type="text/css" href="docgen-resources/docgen.min.css?1489402528979"> +<script> +(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ +(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), +m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) +})(window,document,'script','//www.google-analytics.com/analytics.js','ga'); +ga('create', 'UA-55420501-1', 'auto'); +ga('send', 'pageview'); +</script> +</head> +<body itemscope itemtype="https://schema.org/Code"> + <meta itemprop="url" content="http://freemarker.org/docs/"> + <meta itemprop="name" content="Apache FreeMarker Manual"> + + <!--[if lte IE 9]> + <div style="background-color: #C00; color: #fff; padding: 12px 24px;">Please use a modern browser to view this website.</div> + <![endif]--><div class="header-top-bg"><div class="site-width header-top"><a class="logo" href="http://freemarker.org" role="banner"> <img itemprop="image" src="logo.png" alt="FreeMarker"> +</a><ul class="tabs"><li><a href="http://freemarker.org/">Home</a></li><li class="current"><a href="index.html">Manual</a></li><li><a class="external" href="api/index.html">Java API</a></li></ul><ul class="secondary-tabs"><li><a class="tab icon-heart" href="http://freemarker.org/contribute.html" title="Contribute"><span>Contribute</span></a></li><li><a class="tab icon-bug" href="https://issues.apache.org/jira/browse/FREEMARKER/" title="Report a Bug"><span>Report a Bug</span></a></li><li><a class="tab icon-download" href="http://freemarker.org/freemarkerdownload.html" title="Download"><span>Download</span></a></li></ul></div></div><div class="header-bottom-bg"><div class="site-width search-row"><a href="index.html" class="navigation-header">Manual</a><div class="navigation-header"></div><form method="get" class="search-form" action="search-results.html"><fieldset><legend class="sr-only">Search form</legend><label for="search-field" class="sr-only">Search query</label><input id="searc h-field" name="q" type="search" class="search-input" placeholder="Search" spellcheck="false" autocorrect="off" autocomplete="off"><button type="submit" class="search-btn"><span class="sr-only">Search</span></button></fieldset></form></div><div class="site-width breadcrumb-row"><ul class="breadcrumb" itemscope itemtype="http://schema.org/BreadcrumbList"><li class="step-0" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="index.html"><span itemprop="name">Apache FreeMarker Manual</span></a></li><li class="step-1" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="app.html"><span itemprop="name">Appendixes</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="app_versions.html"><span itemprop="name">Version history</span></a></li><li class="step-3" itemprop="itemListEl ement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="versions_2_3_26.html"><span itemprop="name">2.3.26 (incubating at Apache)</span></a></li></ul><div class="bookmarks" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul class="bookmark-list"><li><a href="alphaidx.html">Alpha. index</a></li><li><a href="gloss.html">Glossary</a></li><li><a href="dgui_template_exp.html#exp_cheatsheet">Expressions</a></li><li><a href="ref_builtins_alphaidx.html">?builtins</a></li><li><a href="ref_directive_alphaidx.html">#directives</a></li><li><a href="ref_specvar.html">.spec_vars</a></li><li><a href="app_faq.html">FAQ</a></li></ul></div></div></div> <div class="main-content site-width"> + <div class="content-wrapper"> + <div id="table-of-contents-wrapper" class="col-left"> + <script>var breadcrumb = ["Apache FreeMarker Manual","Appendixes","Version history","2.3.26 (incubating at Apache)"];</script> + <script src="toc.js?1489402528979"></script> + <script src="docgen-resources/main.min.js?1489402528979"></script> + </div> +<div class="col-right"><div class="page-content"><div class="page-title"><div class="pagers top"><a class="paging-arrow previous" href="app_versions.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_25.html"><span>Next</span></a></div><div class="title-wrapper"> +<h1 class="content-header header-section1" id="versions_2_3_26" itemprop="headline">2.3.26 (incubating at Apache)</h1> +</div></div><div class="page-menu"> +<div class="page-menu-title">Page Contents</div> +<ul><li><a class="page-menu-link" href="#autoid_155" data-menu-target="autoid_155">Changes on the FTL side</a></li><li><a class="page-menu-link" href="#autoid_156" data-menu-target="autoid_156">Changes on the Java side</a></li><li><a class="page-menu-link" href="#autoid_157" data-menu-target="autoid_157">Other changes</a></li></ul> </div><p>Release date: 2017-FIXME</p><p><strong>This is a stable, final + release.</strong> The "incubating" suffix is required + by the Apache Software Foundation until the project becomes a fully + accepted (graduated) Apache project.</p> + + + + +<h2 class="content-header header-section2" id="autoid_155">Changes on the FTL side</h2> + + + <ul> + <li> + <p>Bug fixed (<a href="https://issues.apache.org/jira/browse/FREEMARKER-42">FREEMARKER-42</a>): + <code class="inline-code">?first</code> now works with FTL collections (things + that can be listed but doesn't support getting items by index), + not only with sequences. The practical importance of this is + that <code class="inline-code">?first</code> now always works on Java + <code class="inline-code">Set</code>-s (which is useful for + <code class="inline-code">Set</code>-s with well defined ordering), while + earlier it has failed depending on the + <code class="inline-code">object_wrapper</code> configuration setting.</p> + </li> + + <li> + <p>Added + <code class="inline-code"><em class="code-color">node</em>?next_sibling</code> + and + <code class="inline-code"><em class="code-color">node</em>?previous_sibling</code> + to move sideways in a node trees (<a href="ref_builtins_node.html#ref_builtin_next_sibling">see reference...</a>). + This works with XML DOM nodes, or with any custom + <code class="inline-code">TemplateNodeModelEx</code> implementations.</p> + </li> + + <li> + <p>Added new <code class="inline-code">@@</code> keys to XML DOM models: + <code class="inline-code">@@next_sibling_element</code>, + <code class="inline-code">@@previous_sibling_element</code>. These get the + sibling node if that's an element, with the extra that they + silently skip any whitespace text and comment and processing + instruction between them. (See more about <code class="inline-code">@@</code> + keys <a href="xgui_imperative_formal.html">here...</a>)</p> + </li> + </ul> + + + + + +<h2 class="content-header header-section2" id="autoid_156">Changes on the Java side</h2> + + + <ul> + <li> + <p><a href="https://issues.apache.org/jira/browse/FREEMARKER-24">FREEMARKER-24</a>: + Added workaround (not enabled by default) to expose Java 8 + default methods (and the bean properties they define) to + templates, despite that + <code class="inline-code">java.beans.Introspector</code> (the official + JavaBeans introspector) ignores them, at least as of JRE + 1.8.0_66. To enable this workaround, either increase the value + of the <code class="inline-code">incompatibleImprovements</code> constructor + argument of <code class="inline-code">DefaultObjectWrapper</code> or + <code class="inline-code">BeansWrapper</code> the used to 2.3.26, or set its + <code class="inline-code">treatDefaultMethodsAsBeanMembers</code> setting to + <code class="inline-code">true</code>. Note that if you leave the + <code class="inline-code">object_wrapper</code> setting of the + <code class="inline-code">Configuration</code> on its default, it's enough to + increase the <code class="inline-code">incompatibleImprovements</code> setting + of the <code class="inline-code">Configuration</code> to 2.3.26, as that's + inherited by the default <code class="inline-code">object_wrapper</code>. + </p> + </li> + + <li> + <p>Added the + <code class="inline-code">freemarker.template.TemplateNodeModelEx</code> + interface which extends the <code class="inline-code">TemplateNodeModel</code> + instance with two methods, <code class="inline-code">TemplateNodeModelEx + getNextSibling()</code> and <code class="inline-code">TemplateNodeModelEx + getPreviousSibling()</code> methods. This is required by + <code class="inline-code"><em class="code-color">node</em>?next_sibling</code> + and + <code class="inline-code"><em class="code-color">node</em>?previous_sibling</code> + in the templates. This new interface is already implemented by + the standard W3C DOM node wrapper of FreeMarker.</p> + </li> + + <li> + <p>Made <code class="inline-code">+</code> operator when adding two hashes + significantly faster (be removing the overhead caused be + throwing and then catching an exception).</p> + </li> + + <li> + <p>Better error messages when someone tries to get an invalid + <code class="inline-code">@@<em class="code-color">...</em></code> subvariable + of an XML DOM node. (Now it's not issued by the XPath + implementation, which just sees it as a syntactical + error.)</p> + </li> + + <li> + <p>Bug fixed: If <a href="pgui_config_incompatible_improvements.html#pgui_config_incompatible_improvements_how_to_set">the + <code>incompatible_improvements</code> setting</a> is + set to 2.3.26 (or higher), + <code class="inline-code"><em class="code-color">exp</em>?interpret</code> + always gets the parser-related settings from the template that + it's called from. Earlier, sometimes it got those from the + topmost (main) template instead. Similarly, the generated name + of the template that <code class="inline-code">?interpret</code> creates will + always refer to the template where's it's called from.</p> + </li> + + <li> + <p>Bug fixed: <code class="inline-code">MultiTemplateLoader</code>, when + it's in sticky mode (the default), and the + <code class="inline-code">TemplateLoader</code> that was successfully used for + a given name last time doesn't find the template now (let's call + it the sticked <code class="inline-code">TemplateLoader</code>), and thus + <code class="inline-code">MultiTemplateLoader</code> falls back to trying all + the <code class="inline-code">TemplateLoader</code>-s in order, will now skip + the sticked <code class="inline-code">TemplateLoader</code>, as that was + already attempted in the same + <code class="inline-code">MultiTemplateLoader.findTemplateSource</code> + invocation.</p> + </li> + + <li> + <p>Bug fixed: + <code class="inline-code">NodeModel.mergeAdjacentText(Node)</code> didn't + merged all adjacent text nodes, only pairs of adjacent text + nodes. (Luckily this method is hardly ever used, and the more + often used <code class="inline-code">NodeModel.simplify(Node)</code> was + working correctly.)</p> + </li> + + <li> + <p>Performance improvements in the static utility methods of + <code class="inline-code">NodeModel</code>: <code class="inline-code">simplify(Node)</code>, + <code class="inline-code">mergeAdjacentText(Node)</code>, + <code class="inline-code">removeComments(Node)</code>, + <code class="inline-code">removePIs(Node)</code>.</p> + </li> + + <li> + <p>Added warning to the JavaDoc of + <code class="inline-code">NodeModel.parse</code> methods to inform users about + the possibility of XML External Entity (XXE) attacks if the + source XML (not a template) comes from untrusted source. This is + just an XML fact (i.e., that in an XML you can have external + entities and they can be exploited), and has no much to do with + FreeMarker. Also note that FreeMarker itself never calls + <code class="inline-code">NodeModel.parse</code>; these are merely convenience + methods that some applications directly call themselves to + create a <code class="inline-code">NodeModel</code> from an XML file. As this + method encapsulates the call to the platform XML parser, we + thought it's better to point this risk out.</p> + </li> + + <li> + <p><code class="inline-code">DefaultObjectWrapper</code>, only with its + <code class="inline-code">incompatible_improvements</code> set to 2.3.26 + (<a href="pgui_datamodel_objectWrapper.html#topic.defaultObjectWrapperIcI">see how + here...</a>), wraps + <code class="inline-code">java.util.Enumeration</code>-s into + <code class="inline-code">freemarker.template.DefaultEnumerationAdapter</code> + (a new class) instead of into + <code class="inline-code">freemarker.ext.beans.EnumerationModel</code> (as far + as <code class="inline-code">useAdaptersForContainers</code> is + <code class="inline-code">true</code>, which is the default). This adapter is + cleaner than <code class="inline-code">EnumerationModel</code> as it only + implements the minimally required FTL type, which avoids some + ambiguous situations. (Note that Java API methods aren't exposed + anymore as subvariables; if you really need them, you can use + <code class="inline-code">?api</code>).</p> + </li> + + <li> + <p><code class="inline-code">DefaultIteratorAdapter</code> now supports + <code class="inline-code">?api</code>. It was an oversight that it + didn't.</p> + </li> + + <li> + <p><code class="inline-code">Configuration.setSetting(String, + String)</code> and <code class="inline-code">setSettings</code> now allows + <code class="inline-code">null</code> value for + <code class="inline-code">template_loader</code> (because + <code class="inline-code">Configuration.setTemplateLoader(null)</code> is also + allowed for a while.).</p> + </li> + + <li> + <p>The + <code class="inline-code">freemarker.template.TemplateCollectionModelEx</code> + interface and is not experimental anymore, so now it has + backward compatibility guarantees. Note that the + <code class="inline-code">TemplateCollectionModelEx.contains(TemplateModel)</code> + method was removed from it.</p> + </li> + + <li> + <p><code class="inline-code">freemarker.template.DefaultNonListCollectionAdapter</code> + class is not experimental anymore, so now it has backward + compatibility guarantees.</p> + </li> + + <li> + <p>Various smaller code cleanups.</p> + </li> + </ul> + + + + + +<h2 class="content-header header-section2" id="autoid_157">Other changes</h2> + + + <ul> + <li> + <p><a href="https://issues.apache.org/jira/browse/FREEMARKER-17">FREEMARKER-17</a>: + Removed the Servlet- and JSP-related <code class="inline-code">*.dtd</code> + files to simplify licensing. We can operate without them as + before, as validation with them was disabled earlier too. At + this point, everything in the source code of the FreeMarker + engine, and everything in the produced + <code class="inline-code">freemarker.jar</code> was created inside the + FreeMarker project.</p> + </li> + + <li> + <p><a href="https://issues.apache.org/jira/browse/FREEMARKER-27">FREEMARKER-27</a>: + Moved some content from the <code class="inline-code">NOTICES</code> files + over to the <code class="inline-code">LICENSE</code> file, to follow the + Apache Incubator guidelines closer.</p> + </li> + + <li> + <p>Various smaller JavaDoc improvements.</p> + </li> + </ul> + <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="app_versions.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_25.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="http://freemarker.org/">What is FreeMarker?</a></li><li><a href="http://freemarker.org/freemarkerdownload.html">Download</a></li><li><a href="app_versions.html">Version history</a></li><li><a href="http://freemarker.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://freemarker-online.kenshoo.com/">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><ul><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="http://stackoverflow.com/questions/ask?tags=freemarker">Ask a question</a></li><li><a href="http://freemarker.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="http://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"> +Last generated: +<time itemprop="dateModified" datetime="2017-03-13T10:55:28Z" title="Monday, March 13, 2017 10:55:28 AM GMT">2017-03-13 10:55:28 GMT</time>, for Freemarker 2.3.26 </p> +<p class="copyright"> +© <span itemprop="copyrightYear">1999</span>â2017 +<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="http://apache.org/">The Apache Software Foundation</a>. Apache FreeMarker, FreeMarker, Apache Incubator, Apache, the Apache FreeMarker logo are trademarks of The Apache Software Foundation. </p> +</div></div></div></body> +</html> http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/52c070a9/builds/2.3.26-nightly/versions_2_3_3.html ---------------------------------------------------------------------- diff --git a/builds/2.3.26-nightly/versions_2_3_3.html b/builds/2.3.26-nightly/versions_2_3_3.html new file mode 100644 index 0000000..ed9d0ed --- /dev/null +++ b/builds/2.3.26-nightly/versions_2_3_3.html @@ -0,0 +1,223 @@ +<!doctype html> +<!-- Generated by FreeMarker/Docgen from DocBook --> +<html lang="en" class="page-type-section"> +<head prefix="og: http://ogp.me/ns#"> +<meta charset="utf-8"> +<title>2.3.3 - Apache FreeMarker Manual</title> +<meta http-equiv="X-UA-Compatible" content="IE=edge"> +<meta name="viewport" content="width=device-width,initial-scale=1"> +<meta name="format-detection" content="telephone=no"> +<meta property="og:site_name" content="Apache FreeMarker Manual"> +<meta property="og:title" content="2.3.3"> +<meta property="og:locale" content="en_US"> +<meta property="og:url" content="http://freemarker.org/docs/versions_2_3_3.html"> +<link rel="canonical" href="http://freemarker.org/docs/versions_2_3_3.html"> +<link rel="icon" href="favicon.png" type="image/png"> +<link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Roboto:500,700,400,300|Droid+Sans+Mono"> +<link rel="stylesheet" type="text/css" href="docgen-resources/docgen.min.css?1489402528979"> +<script> +(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ +(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), +m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) +})(window,document,'script','//www.google-analytics.com/analytics.js','ga'); +ga('create', 'UA-55420501-1', 'auto'); +ga('send', 'pageview'); +</script> +</head> +<body itemscope itemtype="https://schema.org/Code"> + <meta itemprop="url" content="http://freemarker.org/docs/"> + <meta itemprop="name" content="Apache FreeMarker Manual"> + + <!--[if lte IE 9]> + <div style="background-color: #C00; color: #fff; padding: 12px 24px;">Please use a modern browser to view this website.</div> + <![endif]--><div class="header-top-bg"><div class="site-width header-top"><a class="logo" href="http://freemarker.org" role="banner"> <img itemprop="image" src="logo.png" alt="FreeMarker"> +</a><ul class="tabs"><li><a href="http://freemarker.org/">Home</a></li><li class="current"><a href="index.html">Manual</a></li><li><a class="external" href="api/index.html">Java API</a></li></ul><ul class="secondary-tabs"><li><a class="tab icon-heart" href="http://freemarker.org/contribute.html" title="Contribute"><span>Contribute</span></a></li><li><a class="tab icon-bug" href="https://issues.apache.org/jira/browse/FREEMARKER/" title="Report a Bug"><span>Report a Bug</span></a></li><li><a class="tab icon-download" href="http://freemarker.org/freemarkerdownload.html" title="Download"><span>Download</span></a></li></ul></div></div><div class="header-bottom-bg"><div class="site-width search-row"><a href="index.html" class="navigation-header">Manual</a><div class="navigation-header"></div><form method="get" class="search-form" action="search-results.html"><fieldset><legend class="sr-only">Search form</legend><label for="search-field" class="sr-only">Search query</label><input id="searc h-field" name="q" type="search" class="search-input" placeholder="Search" spellcheck="false" autocorrect="off" autocomplete="off"><button type="submit" class="search-btn"><span class="sr-only">Search</span></button></fieldset></form></div><div class="site-width breadcrumb-row"><ul class="breadcrumb" itemscope itemtype="http://schema.org/BreadcrumbList"><li class="step-0" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="index.html"><span itemprop="name">Apache FreeMarker Manual</span></a></li><li class="step-1" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="app.html"><span itemprop="name">Appendixes</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="app_versions.html"><span itemprop="name">Version history</span></a></li><li class="step-3" itemprop="itemListEl ement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="versions_2_3_3.html"><span itemprop="name">2.3.3</span></a></li></ul><div class="bookmarks" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul class="bookmark-list"><li><a href="alphaidx.html">Alpha. index</a></li><li><a href="gloss.html">Glossary</a></li><li><a href="dgui_template_exp.html#exp_cheatsheet">Expressions</a></li><li><a href="ref_builtins_alphaidx.html">?builtins</a></li><li><a href="ref_directive_alphaidx.html">#directives</a></li><li><a href="ref_specvar.html">.spec_vars</a></li><li><a href="app_faq.html">FAQ</a></li></ul></div></div></div> <div class="main-content site-width"> + <div class="content-wrapper"> + <div id="table-of-contents-wrapper" class="col-left"> + <script>var breadcrumb = ["Apache FreeMarker Manual","Appendixes","Version history","2.3.3"];</script> + <script src="toc.js?1489402528979"></script> + <script src="docgen-resources/main.min.js?1489402528979"></script> + </div> +<div class="col-right"><div class="page-content"><div class="page-title"><div class="pagers top"><a class="paging-arrow previous" href="versions_2_3_4.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_2.html"><span>Next</span></a></div><div class="title-wrapper"> +<h1 class="content-header header-section1" id="versions_2_3_3" itemprop="headline">2.3.3</h1> +</div></div><div class="page-menu"> +<div class="page-menu-title">Page Contents</div> +<ul><li><a class="page-menu-link" href="#autoid_210" data-menu-target="autoid_210">Changes on the FTL side</a></li><li><a class="page-menu-link" href="#autoid_211" data-menu-target="autoid_211">Changes on the Java side</a></li><li><a class="page-menu-link" href="#autoid_212" data-menu-target="autoid_212">Other changes</a></li></ul> </div><p>Date of release: 2005-06-23</p><p>Some new features and lot of bugfixes.</p><p>Attention:</p><ul> + <li> + <p>If you are using the Log4J logging, from now at least Log4J + 1.2 is required. This is because of incompatible changes in the + Log4J API.</p> + </li> + + <li> + <p>If you build FreeMarker yourself: from now at least JavaCC + 3.2 (instead of JavaCC 2.1) and at least Ant 1.6.1 (instead of Ant + 1.5.x) is required. This doesn't affect users who use the + <code class="inline-code">freemarker.jar</code> comes with the + distribution.</p> + </li> + </ul> + + + + +<h2 class="content-header header-section2" id="autoid_210">Changes on the FTL side</h2> + + + <ul> + <li> + <p>New built-in for formatting numbers for "computer + audience" as opposed to human audience: <a href="ref_builtins_number.html#ref_builtin_c"><code>c</code></a>. It should + be used for numbers that must use Java language formatting + regardless of the number format and locale settings, like for a + database record ID used as the part of an URL or as invisible + field value in a HTML form, or for printing CSS/JavaScript + numerical literals.</p> + </li> + + <li> + <p>New built-in for the columnar/tabular displaying of + sequences: <a href="ref_builtins_sequence.html#ref_builtin_chunk"><code>chunk</code></a>.</p> + </li> + + <li> + <p>The <a href="dgui_template_exp.html#dgui_template_exp_seqenceop_slice">sequence + slice</a> and substring operators now allow the omitting of + the last index, in which case it defaults to the index of the + last sequence item or character. Example: + <code class="inline-code">products[2..]</code>. (Also, <a href="dgui_template_exp.html#dgui_template_exp_direct_seuqence">numerical range + literals</a> now allow the omitting of the final number, in + which case it defaults to infinity. Example: + <code class="inline-code">5..</code>.)</p> + </li> + + <li> + <p>Bugfix: <code class="inline-code">?replace</code> has worked forever if + the string to replace was <code class="inline-code">""</code>.</p> + </li> + </ul> + + + + + +<h2 class="content-header header-section2" id="autoid_211">Changes on the Java side</h2> + + + <ul> + <li> + <p>New template loader: + <code class="inline-code">freemarker.cache.StringTemplateLoader</code>. It + uses a <code class="inline-code">Map</code> with <code class="inline-code">Strings</code> as + its source of templates. See more in the JavaDoc.</p> + </li> + + <li> + <p>Experimental Rhino support: FreeMarker now comes with an + experimental object wrapper for Rhino (Java ECMAScript + implementation): + <code class="inline-code">freemarker.ext.rhino.RhinoWrapper</code></p> + </li> + + <li> + <p>Some new utility methods for + <code class="inline-code">Simple<em class="code-color">Xxx</em></code> classes: + <code class="inline-code">SimpleHash.toMap()</code>, + <code class="inline-code">SimpleSequence.toList()</code>.</p> + </li> + + <li> + <p>Bugfix: FTL literals and any other + <code class="inline-code">SimpleSequnce</code>-s, and + <code class="inline-code">SimpleHash</code>-es now can be used as parameters + to the FreeMarker-unaware Java methods that are exposed by + <code class="inline-code">DefaultWrapper</code> or + <code class="inline-code">BeansWrapper</code>. That is, the method parameters + are automatically converted from + <code class="inline-code">Template<em class="code-color">Type</em>Model</code>-s + to <code class="inline-code">java.util.Map</code> and + <code class="inline-code">java.util.List</code> respectively.</p> + </li> + + <li> + <p>Bugfix: The JSP support now works in JSP 2 compliant + containers as well. No, it doesn't support the new features of + JSP 2 yet, it's just that the JSP 1.2 taglib support has not + worked in JSP 2 containers.</p> + </li> + + <li> + <p>Bugfix: The + <code class="inline-code">Configuration.setOutputEncoding</code> and + <code class="inline-code">setURLEscapingCharset</code> methods died with + <code class="inline-code">NullPointerException</code> when you tried to set + the setting value to <code class="inline-code">null</code>, which is legal for + these settings.</p> + </li> + + <li> + <p>Bugfix: + <code class="inline-code">freemarker.template.utility.StringUtil.replace(...)</code> + has worked forever if the string to replace was + <code class="inline-code">""</code>.</p> + </li> + + <li> + <p>Bugfix: The Log4J logging was updated to be compatible + with the upcoming Log4J 1.3. Note that now FreeMarker will need + at least Log4J 1.2.</p> + </li> + + <li> + <p>Bugfix: FreeMarker didn't built from the source code on + J2SE 1.5, because of the introduction of the + <code class="inline-code">enum</code> keyword.</p> + </li> + + <li> + <p>Bugfix: The return value of + <code class="inline-code">SimpleSequence.synchronizedWrapper()</code> was not + properly synchronized. Same with + <code class="inline-code">SimpleHash.synchronizedWrapper()</code>.</p> + </li> + + <li> + <p>Bugfix: Problem with <code class="inline-code">BeansWrapper</code> and + overridden bean methods/properties. (Details: bug-tracker entry + <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1217661&group_id=794&atid=100794">#1217661</a> + and <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1166533&group_id=794&atid=100794">#1166533</a>)</p> + </li> + + <li> + <p>Bugfix: Can't access JSP taglibs if + <code class="inline-code">Request</code> attribute is defined in the + data-model (Details: bug-tracker entry <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1202918&group_id=794&atid=100794">#1202918</a>).</p> + </li> + + <li> + <p>Bugfix: Various minor parser glitches were fixed.</p> + </li> + </ul> + + + + + +<h2 class="content-header header-section2" id="autoid_212">Other changes</h2> + + + <ul> + <li> + <p>Manual improvements, especially in the FAQ.</p> + </li> + </ul> + <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_3_4.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_2.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="http://freemarker.org/">What is FreeMarker?</a></li><li><a href="http://freemarker.org/freemarkerdownload.html">Download</a></li><li><a href="app_versions.html">Version history</a></li><li><a href="http://freemarker.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://freemarker-online.kenshoo.com/">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><ul><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="http://stackoverflow.com/questions/ask?tags=freemarker">Ask a question</a></li><li><a href="http://freemarker.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="http://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"> +Last generated: +<time itemprop="dateModified" datetime="2017-03-13T10:55:28Z" title="Monday, March 13, 2017 10:55:28 AM GMT">2017-03-13 10:55:28 GMT</time>, for Freemarker 2.3.26 </p> +<p class="copyright"> +© <span itemprop="copyrightYear">1999</span>â2017 +<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="http://apache.org/">The Apache Software Foundation</a>. Apache FreeMarker, FreeMarker, Apache Incubator, Apache, the Apache FreeMarker logo are trademarks of The Apache Software Foundation. </p> +</div></div></div></body> +</html> http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/52c070a9/builds/2.3.26-nightly/versions_2_3_4.html ---------------------------------------------------------------------- diff --git a/builds/2.3.26-nightly/versions_2_3_4.html b/builds/2.3.26-nightly/versions_2_3_4.html new file mode 100644 index 0000000..4aaa6d0 --- /dev/null +++ b/builds/2.3.26-nightly/versions_2_3_4.html @@ -0,0 +1,121 @@ +<!doctype html> +<!-- Generated by FreeMarker/Docgen from DocBook --> +<html lang="en" class="page-type-section"> +<head prefix="og: http://ogp.me/ns#"> +<meta charset="utf-8"> +<title>2.3.4 - Apache FreeMarker Manual</title> +<meta http-equiv="X-UA-Compatible" content="IE=edge"> +<meta name="viewport" content="width=device-width,initial-scale=1"> +<meta name="format-detection" content="telephone=no"> +<meta property="og:site_name" content="Apache FreeMarker Manual"> +<meta property="og:title" content="2.3.4"> +<meta property="og:locale" content="en_US"> +<meta property="og:url" content="http://freemarker.org/docs/versions_2_3_4.html"> +<link rel="canonical" href="http://freemarker.org/docs/versions_2_3_4.html"> +<link rel="icon" href="favicon.png" type="image/png"> +<link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Roboto:500,700,400,300|Droid+Sans+Mono"> +<link rel="stylesheet" type="text/css" href="docgen-resources/docgen.min.css?1489402528979"> +<script> +(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ +(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), +m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) +})(window,document,'script','//www.google-analytics.com/analytics.js','ga'); +ga('create', 'UA-55420501-1', 'auto'); +ga('send', 'pageview'); +</script> +</head> +<body itemscope itemtype="https://schema.org/Code"> + <meta itemprop="url" content="http://freemarker.org/docs/"> + <meta itemprop="name" content="Apache FreeMarker Manual"> + + <!--[if lte IE 9]> + <div style="background-color: #C00; color: #fff; padding: 12px 24px;">Please use a modern browser to view this website.</div> + <![endif]--><div class="header-top-bg"><div class="site-width header-top"><a class="logo" href="http://freemarker.org" role="banner"> <img itemprop="image" src="logo.png" alt="FreeMarker"> +</a><ul class="tabs"><li><a href="http://freemarker.org/">Home</a></li><li class="current"><a href="index.html">Manual</a></li><li><a class="external" href="api/index.html">Java API</a></li></ul><ul class="secondary-tabs"><li><a class="tab icon-heart" href="http://freemarker.org/contribute.html" title="Contribute"><span>Contribute</span></a></li><li><a class="tab icon-bug" href="https://issues.apache.org/jira/browse/FREEMARKER/" title="Report a Bug"><span>Report a Bug</span></a></li><li><a class="tab icon-download" href="http://freemarker.org/freemarkerdownload.html" title="Download"><span>Download</span></a></li></ul></div></div><div class="header-bottom-bg"><div class="site-width search-row"><a href="index.html" class="navigation-header">Manual</a><div class="navigation-header"></div><form method="get" class="search-form" action="search-results.html"><fieldset><legend class="sr-only">Search form</legend><label for="search-field" class="sr-only">Search query</label><input id="searc h-field" name="q" type="search" class="search-input" placeholder="Search" spellcheck="false" autocorrect="off" autocomplete="off"><button type="submit" class="search-btn"><span class="sr-only">Search</span></button></fieldset></form></div><div class="site-width breadcrumb-row"><ul class="breadcrumb" itemscope itemtype="http://schema.org/BreadcrumbList"><li class="step-0" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="index.html"><span itemprop="name">Apache FreeMarker Manual</span></a></li><li class="step-1" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="app.html"><span itemprop="name">Appendixes</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="app_versions.html"><span itemprop="name">Version history</span></a></li><li class="step-3" itemprop="itemListEl ement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="versions_2_3_4.html"><span itemprop="name">2.3.4</span></a></li></ul><div class="bookmarks" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul class="bookmark-list"><li><a href="alphaidx.html">Alpha. index</a></li><li><a href="gloss.html">Glossary</a></li><li><a href="dgui_template_exp.html#exp_cheatsheet">Expressions</a></li><li><a href="ref_builtins_alphaidx.html">?builtins</a></li><li><a href="ref_directive_alphaidx.html">#directives</a></li><li><a href="ref_specvar.html">.spec_vars</a></li><li><a href="app_faq.html">FAQ</a></li></ul></div></div></div> <div class="main-content site-width"> + <div class="content-wrapper"> + <div id="table-of-contents-wrapper" class="col-left"> + <script>var breadcrumb = ["Apache FreeMarker Manual","Appendixes","Version history","2.3.4"];</script> + <script src="toc.js?1489402528979"></script> + <script src="docgen-resources/main.min.js?1489402528979"></script> + </div> +<div class="col-right"><div class="page-content"><div class="page-title"><div class="pagers top"><a class="paging-arrow previous" href="versions_2_3_5.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_3.html"><span>Next</span></a></div><div class="title-wrapper"> +<h1 class="content-header header-section1" id="versions_2_3_4" itemprop="headline">2.3.4</h1> +</div></div><div class="page-menu"> +<div class="page-menu-title">Page Contents</div> +<ul><li><a class="page-menu-link" href="#autoid_207" data-menu-target="autoid_207">Changes on the FTL side</a></li><li><a class="page-menu-link" href="#autoid_208" data-menu-target="autoid_208">Changes on the Java side</a></li><li><a class="page-menu-link" href="#autoid_209" data-menu-target="autoid_209">Other changes</a></li></ul> </div><p>Date of release: 2005-10-10</p><p>Some new features and bugfixes.</p> + + + + +<h2 class="content-header header-section2" id="autoid_207">Changes on the FTL side</h2> + + + <ul> + <li> + <p>Now you can use <code class="inline-code">[</code> and + <code class="inline-code">]</code> instead of <code class="inline-code"><</code> and + <code class="inline-code">></code> for the FreeMarker tags. For example you + can write <code class="inline-code">[#if + loggedIn]<em class="code-color">...</em>[/#if]</code> and + <code class="inline-code">[@myMacro /]</code>. <a href="dgui_misc_alternativesyntax.html">More info...</a></p> + </li> + + <li> + <p>Bugfix: the <code class="inline-code">has_content</code> built-in + returned <code class="inline-code">false</code> for number, date and boolean + values (if the value was not a multi-type value that is also a + sequence or collection or hash or string). Now it always returns + <code class="inline-code">true</code> for a number, date or boolean values + (except if the value is also a sequence or collection or hash or + string, because then it will be examined only like that).</p> + </li> + </ul> + + + + + +<h2 class="content-header header-section2" id="autoid_208">Changes on the Java side</h2> + + + <ul> + <li> + <p>Bugfix: the parameterless constructor of the + <code class="inline-code">ClassTemplateLoader</code> didn't worked.</p> + </li> + + <li> + <p>Bugfix: The Jython wrapper didn't wrapped + <code class="inline-code">java.util.Date</code> objects well. Now it wraps + them with <code class="inline-code">BeanWrapper</code> to + <code class="inline-code">TemplateDateModel</code>.</p> + </li> + + <li> + <p>Bugfix: the <code class="inline-code">include</code> directive was + blamed when the included file had syntax error.</p> + </li> + </ul> + + + + + +<h2 class="content-header header-section2" id="autoid_209">Other changes</h2> + + + <ul> + <li> + <p>Minor Manual fixes.</p> + </li> + </ul> + <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_3_5.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_3.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="http://freemarker.org/">What is FreeMarker?</a></li><li><a href="http://freemarker.org/freemarkerdownload.html">Download</a></li><li><a href="app_versions.html">Version history</a></li><li><a href="http://freemarker.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://freemarker-online.kenshoo.com/">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><ul><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="http://stackoverflow.com/questions/ask?tags=freemarker">Ask a question</a></li><li><a href="http://freemarker.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="http://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"> +Last generated: +<time itemprop="dateModified" datetime="2017-03-13T10:55:28Z" title="Monday, March 13, 2017 10:55:28 AM GMT">2017-03-13 10:55:28 GMT</time>, for Freemarker 2.3.26 </p> +<p class="copyright"> +© <span itemprop="copyrightYear">1999</span>â2017 +<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="http://apache.org/">The Apache Software Foundation</a>. Apache FreeMarker, FreeMarker, Apache Incubator, Apache, the Apache FreeMarker logo are trademarks of The Apache Software Foundation. </p> +</div></div></div></body> +</html> http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/52c070a9/builds/2.3.26-nightly/versions_2_3_5.html ---------------------------------------------------------------------- diff --git a/builds/2.3.26-nightly/versions_2_3_5.html b/builds/2.3.26-nightly/versions_2_3_5.html new file mode 100644 index 0000000..aab02de --- /dev/null +++ b/builds/2.3.26-nightly/versions_2_3_5.html @@ -0,0 +1,162 @@ +<!doctype html> +<!-- Generated by FreeMarker/Docgen from DocBook --> +<html lang="en" class="page-type-section"> +<head prefix="og: http://ogp.me/ns#"> +<meta charset="utf-8"> +<title>2.3.5 - Apache FreeMarker Manual</title> +<meta http-equiv="X-UA-Compatible" content="IE=edge"> +<meta name="viewport" content="width=device-width,initial-scale=1"> +<meta name="format-detection" content="telephone=no"> +<meta property="og:site_name" content="Apache FreeMarker Manual"> +<meta property="og:title" content="2.3.5"> +<meta property="og:locale" content="en_US"> +<meta property="og:url" content="http://freemarker.org/docs/versions_2_3_5.html"> +<link rel="canonical" href="http://freemarker.org/docs/versions_2_3_5.html"> +<link rel="icon" href="favicon.png" type="image/png"> +<link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Roboto:500,700,400,300|Droid+Sans+Mono"> +<link rel="stylesheet" type="text/css" href="docgen-resources/docgen.min.css?1489402528979"> +<script> +(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ +(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), +m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) +})(window,document,'script','//www.google-analytics.com/analytics.js','ga'); +ga('create', 'UA-55420501-1', 'auto'); +ga('send', 'pageview'); +</script> +</head> +<body itemscope itemtype="https://schema.org/Code"> + <meta itemprop="url" content="http://freemarker.org/docs/"> + <meta itemprop="name" content="Apache FreeMarker Manual"> + + <!--[if lte IE 9]> + <div style="background-color: #C00; color: #fff; padding: 12px 24px;">Please use a modern browser to view this website.</div> + <![endif]--><div class="header-top-bg"><div class="site-width header-top"><a class="logo" href="http://freemarker.org" role="banner"> <img itemprop="image" src="logo.png" alt="FreeMarker"> +</a><ul class="tabs"><li><a href="http://freemarker.org/">Home</a></li><li class="current"><a href="index.html">Manual</a></li><li><a class="external" href="api/index.html">Java API</a></li></ul><ul class="secondary-tabs"><li><a class="tab icon-heart" href="http://freemarker.org/contribute.html" title="Contribute"><span>Contribute</span></a></li><li><a class="tab icon-bug" href="https://issues.apache.org/jira/browse/FREEMARKER/" title="Report a Bug"><span>Report a Bug</span></a></li><li><a class="tab icon-download" href="http://freemarker.org/freemarkerdownload.html" title="Download"><span>Download</span></a></li></ul></div></div><div class="header-bottom-bg"><div class="site-width search-row"><a href="index.html" class="navigation-header">Manual</a><div class="navigation-header"></div><form method="get" class="search-form" action="search-results.html"><fieldset><legend class="sr-only">Search form</legend><label for="search-field" class="sr-only">Search query</label><input id="searc h-field" name="q" type="search" class="search-input" placeholder="Search" spellcheck="false" autocorrect="off" autocomplete="off"><button type="submit" class="search-btn"><span class="sr-only">Search</span></button></fieldset></form></div><div class="site-width breadcrumb-row"><ul class="breadcrumb" itemscope itemtype="http://schema.org/BreadcrumbList"><li class="step-0" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="index.html"><span itemprop="name">Apache FreeMarker Manual</span></a></li><li class="step-1" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="app.html"><span itemprop="name">Appendixes</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="app_versions.html"><span itemprop="name">Version history</span></a></li><li class="step-3" itemprop="itemListEl ement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="versions_2_3_5.html"><span itemprop="name">2.3.5</span></a></li></ul><div class="bookmarks" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul class="bookmark-list"><li><a href="alphaidx.html">Alpha. index</a></li><li><a href="gloss.html">Glossary</a></li><li><a href="dgui_template_exp.html#exp_cheatsheet">Expressions</a></li><li><a href="ref_builtins_alphaidx.html">?builtins</a></li><li><a href="ref_directive_alphaidx.html">#directives</a></li><li><a href="ref_specvar.html">.spec_vars</a></li><li><a href="app_faq.html">FAQ</a></li></ul></div></div></div> <div class="main-content site-width"> + <div class="content-wrapper"> + <div id="table-of-contents-wrapper" class="col-left"> + <script>var breadcrumb = ["Apache FreeMarker Manual","Appendixes","Version history","2.3.5"];</script> + <script src="toc.js?1489402528979"></script> + <script src="docgen-resources/main.min.js?1489402528979"></script> + </div> +<div class="col-right"><div class="page-content"><div class="page-title"><div class="pagers top"><a class="paging-arrow previous" href="versions_2_3_6.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_4.html"><span>Next</span></a></div><div class="title-wrapper"> +<h1 class="content-header header-section1" id="versions_2_3_5" itemprop="headline">2.3.5</h1> +</div></div><div class="page-menu"> +<div class="page-menu-title">Page Contents</div> +<ul><li><a class="page-menu-link" href="#autoid_205" data-menu-target="autoid_205">Changes on the FTL side</a></li><li><a class="page-menu-link" href="#autoid_206" data-menu-target="autoid_206">Changes on the Java side</a></li></ul> </div><p>Date of release: 2006-03-11</p><p><em>This release was withdrawn because of a serious bug in + it. Please don't use it! Of course, all new features of it are + included in FreeMarker 2.3.6.</em></p><p>A few new features and several bugfixes.</p> + + + + +<h2 class="content-header header-section2" id="autoid_205">Changes on the FTL side</h2> + + + <ul> + <li> + <p>Bug fixed: <a href="http://sourceforge.net/tracker/?func=detail&atid=100794&aid=1435847&group_id=794">[1435847]</a> + Alternative syntax doesn't work for comments</p> + </li> + + <li> + <p>Bug fixed: With the new square bracket syntax, the tag + could be closed with <code class="inline-code">></code>. Now it can be + closed with <code class="inline-code">]</code> only.</p> + </li> + + <li> + <p>Bug fixed: <a href="http://sourceforge.net/tracker/?func=detail&atid=100794&aid=1324020&group_id=794">[1324020]</a> + <code class="inline-code">ParseException</code> with the + <code class="inline-code">ftl</code> directive if it wasn't in its own + line</p> + </li> + + <li> + <p>Bug fixed: <a href="http://sourceforge.net/tracker/?func=detail&atid=100794&aid=1404033&group_id=794">[1404033]</a> + <code class="inline-code">eval</code> built-in fails with hash + concatenation</p> + </li> + </ul> + + + + + +<h2 class="content-header header-section2" id="autoid_206">Changes on the Java side</h2> + + + <ul> + <li> + <p>A new <code class="inline-code">Configuration</code> level setting, + <code class="inline-code">tagSyntax</code> was added. This determines the + syntax of the templates (angle bracket syntax VS <a href="dgui_misc_alternativesyntax.html">square bracket + syntax</a>) that has no <code class="inline-code">ftl</code> directive in + it. So now you can choose to use the new square bracket syntax + by default. However, the recommended is to use auto-detection + (<code class="inline-code">yourConfig.setTagSyntax(Configuration.AUTO_DETECT_TAG_SYNTAX)</code>), + because that will be the default starting from 2.4. + Auto-detection chooses syntax based on the syntax of the first + FreeMarker tag of the template (could be any FreeMarker tag, not + just <code class="inline-code">ftl</code>). Note that as with the previous + version, if a the template uses <code class="inline-code">ftl</code> + directive, then the syntax of the <code class="inline-code">ftl</code> + directive determines the syntax of the template, and the + <code class="inline-code">tagSyntax</code> setting is ignored.</p> + </li> + + <li> + <p>Now <code class="inline-code">BeansWrapper</code>, + <code class="inline-code">DefaultObjectWrapper</code> and + <code class="inline-code">SimpleObjectWrapper</code> support lookup with 1 + character long strings in <code class="inline-code">Map</code>-s (like + <code class="inline-code">myHash["a"]</code>) that use + <code class="inline-code">Character</code> keys. Simply, as a special case, + when a hash lookup fails on a string that is 1 character long, + it checks for the <code class="inline-code">Character</code> key in the + underlying map. (Bug tracker entry <a href="http://sourceforge.net/tracker/?func=detail&atid=100794&aid=1299045&group_id=794">[1299045]</a> + FreeMarker doesn't support map lookup with Character + keys.)</p> + </li> + + <li> + <p>A new property, <code class="inline-code">strict</code> was added to + <code class="inline-code">BeansWrapper</code>, + <code class="inline-code">DefaultObjectWrapper</code> and + <code class="inline-code">SimpleObjectWrapper</code>. If this property is + <code class="inline-code">true</code> then an attempt to read a bean propertly + in the template (like <code class="inline-code">myBean.aProperty</code>) that + doesn't exist in the bean class (as opposed to just holding + <code class="inline-code">null</code> value) will cause + <code class="inline-code">InvalidPropertyException</code>, which can't be + suppressed in the template (not even with + <code class="inline-code">myBean.noSuchProperty?default('something')</code>). + This way <code class="inline-code">?default('something')</code> and + <code class="inline-code">?exists</code> and similar built-ins can be used to + handle existing properties whose value is + <code class="inline-code">null</code>, without the risk of hiding typos in the + property names. Typos will always cause error. But mind you, it + goes against the basic approach of FreeMarker, so use this + feature only if you really know what are you doing.</p> + </li> + + <li> + <p>Bug fixed: <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1426227&group_id=794&atid=100794">[1426227]</a> + <code class="inline-code">NullPointerException</code> in + <code class="inline-code">printStackTrace(...)</code></p> + </li> + + <li> + <p>Bug fixed: <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1386193&group_id=794&atid=100794">[1386193]</a> + Division by zero in <code class="inline-code">ArithmeticEngine</code></p> + </li> + </ul> + <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_3_6.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_4.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="http://freemarker.org/">What is FreeMarker?</a></li><li><a href="http://freemarker.org/freemarkerdownload.html">Download</a></li><li><a href="app_versions.html">Version history</a></li><li><a href="http://freemarker.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://freemarker-online.kenshoo.com/">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><ul><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="http://stackoverflow.com/questions/ask?tags=freemarker">Ask a question</a></li><li><a href="http://freemarker.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="http://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"> +Last generated: +<time itemprop="dateModified" datetime="2017-03-13T10:55:28Z" title="Monday, March 13, 2017 10:55:28 AM GMT">2017-03-13 10:55:28 GMT</time>, for Freemarker 2.3.26 </p> +<p class="copyright"> +© <span itemprop="copyrightYear">1999</span>â2017 +<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="http://apache.org/">The Apache Software Foundation</a>. Apache FreeMarker, FreeMarker, Apache Incubator, Apache, the Apache FreeMarker logo are trademarks of The Apache Software Foundation. </p> +</div></div></div></body> +</html>
