You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@freemarker.apache.org by dd...@apache.org on 2017/03/15 21:18:58 UTC
[01/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Repository: incubator-freemarker-site
Updated Branches:
refs/heads/asf-site 52c070a95 -> a40043241
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-voting/documentation/_html/alphaidx.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-voting/documentation/_html/alphaidx.html b/builds/2.3.26-voting/documentation/_html/alphaidx.html
new file mode 100644
index 0000000..174b4c8
--- /dev/null
+++ b/builds/2.3.26-voting/documentation/_html/alphaidx.html
@@ -0,0 +1,1704 @@
+<!doctype html>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<!-- Generated by FreeMarker/Docgen from DocBook -->
+<html lang="en" class="page-type-index">
+<head prefix="og: http://ogp.me/ns#">
+<meta charset="utf-8">
+<title>Alphabetical Index - 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="Alphabetical Index">
+<meta property="og:locale" content="en_US">
+<meta property="og:url" content="http://freemarker.org/docs/alphaidx.html">
+<link rel="canonical" href="http://freemarker.org/docs/alphaidx.html">
+<link rel="icon" href="favicon.png" type="image/png">
+<link rel="stylesheet" type="text/css" href="docgen-resources/docgen.min.css?1489608362464">
+</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="toc.html" class="navigation-header">Manual</a><div class="navigation-header"></div></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="toc.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="alphaidx.html"><span itemprop="name">Alphabetical Index</span></a></li></ul><div class="bookmarks" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul class="bookmark-list"><li>Alpha. index</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","Alphabetical Index"];</script>
+ <script src="toc.js?1489608362464"></script>
+ <script src="docgen-resources/main.min.js?1489608362464"></script>
+ </div>
+<div class="col-right"><div class="page-content"><div class="page-title"><div class="pagers top"><a class="paging-arrow previous" href="gloss.html"><span>Previous</span></a><span class="paging-arrow disabled next"><span>Next</span></span></div><div class="title-wrapper">
+<h1 class="content-header header-part" id="alphaidx" itemprop="headline">Alphabetical Index</h1>
+</div></div>
+ <p>
+<a href="#idx_x24">$</a> | <a href="#idx_x23">#</a> | <a href="#idx_x3C"><</a> | <a href="#idx_A">A</a> | <a href="#idx_B">B</a> | <a href="#idx_C">C</a> | <a href="#idx_D">D</a> | <a href="#idx_E">E</a> | <a href="#idx_F">F</a> | <a href="#idx_G">G</a> | <a href="#idx_H">H</a> | <a href="#idx_I">I</a> | <a href="#idx_J">J</a> | <a href="#idx_K">K</a> | <a href="#idx_L">L</a> | <a href="#idx_M">M</a> | <a href="#idx_N">N</a> | <a href="#idx_O">O</a> | <a href="#idx_P">P</a> | <a href="#idx_R">R</a> | <a href="#idx_S">S</a> | <a href="#idx_T">T</a> | <a href="#idx_U">U</a> | <a href="#idx_V">V</a> | <a href="#idx_W">W</a> | <a href="#idx_X">X</a> </p>
+
+<div class="indexdiv">
+<a name="idx_x24"></a>
+<h2 class="indexLabel">$</h2>
+<dl>
+ <dt>
+ ${...}, <a href="dgui_template_valueinsertion.html">Interpolations</a>
+ </dt>
+</dl></div>
+<div class="indexdiv">
+<a name="idx_x23"></a>
+<h2 class="indexLabel">#</h2>
+<dl>
+ <dt>
+ #, <a href="dgui_template_overallstructure.html">Overall structure</a>,
+<a href="dgui_template_directives.html">Directives</a>
+ </dt>
+ <dt>
+ #{...}, <a href="ref_depr_numerical_interpolation.html">#{...}: Numerical interpolation</a>
+ </dt>
+</dl></div>
+<div class="indexdiv">
+<a name="idx_x3C"></a>
+<h2 class="indexLabel"><</h2>
+<dl>
+ <dt>
+ <#...>, <a href="dgui_template_directives.html">Directives</a>
+ </dt>
+ <dt>
+ <#--...-->, <a href="dgui_template_overallstructure.html">Overall structure</a>
+ </dt>
+</dl></div>
+<div class="indexdiv">
+<a name="idx_A"></a>
+<h2 class="indexLabel">A</h2>
+<dl>
+ <dt>
+ ABC, <a href="ref_builtins_number.html#ref_builtin_lower_abc">lower_abc</a>,
+<a href="ref_builtins_number.html#ref_builtin_upper_abc">upper_abc</a>
+ </dt>
+ <dt>
+ abs built-in, <a href="ref_builtins_number.html#ref_builtin_abs">abs</a>
+ </dt>
+ <dt>
+ absolute value, <a href="ref_builtins_number.html#ref_builtin_abs">abs</a>
+ </dt>
+ <dt>
+ acquisition, <a href="ref_directive_include.html#ref_directive_include_acquisition">Using acquisition</a>
+ </dt>
+ <dt>
+ adding hashes, <a href="dgui_template_exp.html#dgui_template_exp_hashop_cat">Concatenation</a>
+ </dt>
+ <dt>
+ adding sequences, <a href="dgui_template_exp.html#dgui_template_exp_sequenceop_cat">Concatenation</a>
+ </dt>
+ <dt>
+ adding strings, <a href="dgui_template_exp.html#dgui_template_exp_stringop_interpolation">Interpolation and concatenation</a>
+ </dt>
+ <dt>
+ addition, <a href="dgui_template_exp.html#dgui_template_exp_arit">Arithmetical calculations</a>
+ </dt>
+ <dt>
+ alphabetical ordinals, <a href="ref_builtins_number.html#ref_builtin_lower_abc">lower_abc</a>,
+<a href="ref_builtins_number.html#ref_builtin_upper_abc">upper_abc</a>
+ </dt>
+ <dt>
+ alternative syntax, <a href="dgui_misc_alternativesyntax.html">Alternative (square bracket) syntax</a>
+ </dt>
+ <dt>
+ ancestors built-in, <a href="ref_builtins_node.html#ref_builtin_ancestors">ancestors</a>
+ </dt>
+ <dt>
+ and, <a href="dgui_template_exp.html#dgui_template_exp_logicalop">Logical operations</a>
+ </dt>
+ <dt>
+ ant task, <a href="pgui_misc_ant.html">Using FreeMarker with Ant</a>
+ </dt>
+ <dt>
+ api built-in, <a href="ref_builtins_expert.html#ref_buitin_api_and_has_api">api, has_api</a>
+ </dt>
+ <dt>
+ arithmetic, <a href="dgui_template_exp.html#dgui_template_exp_arit">Arithmetical calculations</a>
+ </dt>
+ <dt>
+ assign directive, <a href="ref_directive_assign.html">assign</a>
+ </dt>
+ <dt>
+ attempt directive, <a href="ref_directive_attempt.html">attempt, recover</a>
+ </dt>
+ <dt>
+ auto_esc, <a href="ref_specvar.html">Special Variable Reference</a>
+ </dt>
+ <dt>
+ auto-escaping, <a href="dgui_misc_autoescaping.html">Auto-escaping and output formats</a>,
+<a href="pgui_config_outputformatsautoesc.html">Associating output formats with templates</a>,
+<a href="ref_directive_autoesc.html">autoesc</a>,
+<a href="ref_directive_noautoesc.html">noautoesc</a>,
+<a href="ref_directive_outputformat.html">outputformat</a>
+ </dt>
+ <dt>
+ autoesc directive, <a href="ref_directive_autoesc.html">autoesc</a>
+ </dt>
+</dl></div>
+<div class="indexdiv">
+<a name="idx_B"></a>
+<h2 class="indexLabel">B</h2>
+<dl>
+ <dt>
+ backward compatibility, <a href="pgui_config_incompatible_improvements.html">The "incompatible improvements" setting</a>
+ </dt>
+ <dt>
+ beans </dt>
+ <dd><dl>
+ <dt>wrapping, <a href="pgui_misc_beanwrapper.html">Bean wrapper</a></dt>
+ </dl></dd>
+ <dt>
+ BeansWrapper, <a href="pgui_misc_beanwrapper.html">Bean wrapper</a>
+ </dt>
+ <dt>
+ boolean </dt>
+ <dd><dl>
+ <dt>built-ins, <a href="ref_builtins_boolean.html">Built-ins for booleans</a></dt>
+ <dt>Java side, <a href="pgui_datamodel_scalar.html">Scalars</a></dt>
+ <dt>literal, <a href="dgui_template_exp.html#dgui_template_exp_direct_boolean">Booleans</a></dt>
+ <dt>operations, <a href="dgui_template_exp.html#dgui_template_exp_logicalop">Logical operations</a></dt>
+ <dt>printing, <a href="ref_builtins_boolean.html#ref_builtin_string_for_boolean">string (when used with a boolean value)</a></dt>
+ <dt>the FTL value type, <a href="dgui_datamodel_types.html#dgui_datamodel_scalar">Scalars</a></dt>
+ </dl></dd>
+ <dt>
+ boolean_format, <a href="ref_directive_setting.html#autoid_125">setting</a>
+ </dt>
+ <dt>
+ boolean built-in, <a href="ref_builtins_string.html#ref_builtin_boolean">boolean</a>
+ </dt>
+ <dt>
+ break directive, <a href="ref_directive_list.html#autoid_106">list, else, items, sep, break</a>,
+<a href="ref_directive_switch.html">switch, case, default, break</a>
+ </dt>
+ <dt>
+ built-in, <a href="dgui_template_exp.html#dgui_template_exp_builtin">Built-ins</a>,
+<a href="ref_builtins.html">Built-in Reference</a>,
+<a href="ref_builtins_alphaidx.html">Alphabetical index</a>
+ </dt>
+ <dt>
+ byte built-in, <a href="ref_builtins_expert.html#ref_builtin_numType">byte, double, float, int, long, short</a>
+ </dt>
+</dl></div>
+<div class="indexdiv">
+<a name="idx_C"></a>
+<h2 class="indexLabel">C</h2>
+<dl>
+ <dt>
+ caching, <a href="pgui_config_templateloading.html#pgui_config_templateloading_caching">Template caching</a>
+ </dt>
+ <dt>
+ call a method, <a href="dgui_template_exp.html#dgui_template_exp_methodcall">Method call</a>
+ </dt>
+ <dt>
+ cap_first built-in, <a href="ref_builtins_string.html#ref_builtin_cap_first">cap_first</a>
+ </dt>
+ <dt>
+ capitalize built-in, <a href="ref_builtins_string.html#ref_builtin_capitalize">capitalize</a>
+ </dt>
+ <dt>
+ case directive, <a href="ref_directive_switch.html">switch, case, default, break</a>
+ </dt>
+ <dt>
+ catch-all parameter, <a href="ref_directive_macro.html#autoid_112">macro, nested, return</a>
+ </dt>
+ <dt>
+ c built-in, <a href="ref_builtins_number.html#ref_builtin_c">c (when used with numerical value)</a>,
+<a href="ref_builtins_boolean.html#ref_builtin_c_boolean">c (when used with boolean)</a>
+ </dt>
+ <dt>
+ ceiling built-in, <a href="ref_builtins_number.html#ref_builtin_rounding">round, floor, ceiling</a>
+ </dt>
+ <dt>
+ charAt, <a href="dgui_template_exp.html#dgui_template_exp_get_character">Getting a character</a>
+ </dt>
+ <dt>
+ charset, <a href="pgui_misc_charset.html">Charset issues</a>,
+<a href="ref_directive_ftl.html">ftl</a>
+ </dt>
+ <dt>
+ children built-in, <a href="ref_builtins_node.html#ref_builtin_children">children</a>
+ </dt>
+ <dt>
+ chop_linebreak built-in, <a href="ref_builtins_string.html#ref_builtin_chop_linebreak">chop_linebreak</a>
+ </dt>
+ <dt>
+ chunk built-in, <a href="ref_builtins_sequence.html#ref_builtin_chunk">chunk</a>
+ </dt>
+ <dt>
+ classic_compatible, <a href="ref_directive_setting.html#autoid_125">setting</a>
+ </dt>
+ <dt>
+ collection </dt>
+ <dd><dl>
+ <dt>Java side, <a href="pgui_datamodel_parent.html#autoid_34">Containers</a></dt>
+ <dt>the FTL value type, <a href="dgui_datamodel_types.html#dgui_datamodel_container">Containers</a></dt>
+ </dl></dd>
+ <dt>
+ columnar printing of sequences, <a href="ref_builtins_sequence.html#ref_builtin_chunk">chunk</a>
+ </dt>
+ <dt>
+ command-line, <a href="pgui_misc_ant.html">Using FreeMarker with Ant</a>
+ </dt>
+ <dt>
+ comment, <a href="dgui_template_overallstructure.html">Overall structure</a>
+ </dt>
+ <dt>
+ comparison operators, <a href="dgui_template_exp.html#dgui_template_exp_comparison">Comparison</a>
+ </dt>
+ <dt>
+ compress directive, <a href="ref_directive_compress.html">compress</a>
+ </dt>
+ <dt>
+ concatenate hashes, <a href="dgui_template_exp.html#dgui_template_exp_hashop_cat">Concatenation</a>
+ </dt>
+ <dt>
+ concatenate sequences, <a href="dgui_template_exp.html#dgui_template_exp_sequenceop_cat">Concatenation</a>
+ </dt>
+ <dt>
+ concatenate strings, <a href="dgui_template_exp.html#dgui_template_exp_stringop_interpolation">Interpolation and concatenation</a>
+ </dt>
+ <dt>
+ configuration, <a href="pgui_quickstart_createconfiguration.html">Create a configuration instance</a>
+ </dt>
+ <dt>
+ Configuration, <a href="pgui_config.html">The Configuration</a>
+ </dt>
+ <dt>
+ constant, <a href="dgui_template_exp.html#dgui_template_exp_direct">Specify values directly</a>
+ </dt>
+ <dt>
+ containers </dt>
+ <dd><dl>
+ <dt>Java side, <a href="pgui_datamodel_parent.html">Containers</a></dt>
+ </dl></dd>
+ <dt>
+ contains built-in, <a href="ref_builtins_string.html#ref_builtin_contains">contains</a>
+ </dt>
+ <dt>
+ converting between types, <a href="ref_builtins_string.html#ref_builtin_boolean">boolean</a>,
+<a href="ref_builtins_string.html#ref_builtin_string_date">date, time, datetime</a>,
+<a href="ref_builtins_string.html#ref_builtin_number">number</a>,
+<a href="ref_builtins_number.html#ref_builtin_c">c (when used with numerical value)</a>,
+<a href="ref_builtins_number.html#ref_builtin_string_for_number">string (when used with a numerical value)</a>,
+<a href="ref_builtins_date.html#ref_builtin_date_datetype">date, time, datetime (when used with a date/time/date-time
+ value)</a>,
+<a href="ref_builtins_date.html#ref_builtin_string_for_date">string (when used with a date/time/date-time value)</a>,
+<a href="ref_builtins_boolean.html#ref_builtin_c_boolean">c (when used with boolean)</a>,
+<a href="ref_builtins_boolean.html#ref_builtin_string_for_boolean">string (when used with a boolean value)</a>,
+<a href="ref_builtins_expert.html#ref_builtin_numType">byte, double, float, int, long, short</a>,
+<a href="ref_builtins_expert.html#ref_builtin_numToDate">number_to_date, number_to_time, number_to_datetime</a>
+ </dt>
+ <dt>
+ converting date to long, <a href="ref_builtins_expert.html#ref_builtin_numType">byte, double, float, int, long, short</a>
+ </dt>
+ <dt>
+ converting date to string, <a href="ref_builtins_date.html#ref_builtin_string_for_date">string (when used with a date/time/date-time value)</a>
+ </dt>
+ <dt>
+ converting long to date, <a href="ref_builtins_expert.html#ref_builtin_numToDate">number_to_date, number_to_time, number_to_datetime</a>
+ </dt>
+ <dt>
+ converting string to boolean, <a href="ref_builtins_string.html#ref_builtin_boolean">boolean</a>
+ </dt>
+ <dt>
+ converting string to date, <a href="ref_builtins_string.html#ref_builtin_string_date">date, time, datetime</a>
+ </dt>
+ <dt>
+ converting string to number, <a href="ref_builtins_string.html#ref_builtin_number">number</a>
+ </dt>
+ <dt>
+ converting string to time, <a href="ref_builtins_string.html#ref_builtin_string_date">date, time, datetime</a>
+ </dt>
+ <dt>
+ converting time to string, <a href="ref_builtins_date.html#ref_builtin_string_for_date">string (when used with a date/time/date-time value)</a>
+ </dt>
+ <dt>
+ counter built-in, <a href="ref_builtins_loop_var.html#ref_builtin_counter">counter</a>
+ </dt>
+ <dt>
+ current_template_name, <a href="ref_specvar.html">Special Variable Reference</a>
+ </dt>
+ <dt>
+ current date-time, <a href="ref_specvar.html">Special Variable Reference</a>
+ </dt>
+ <dt>
+ custom directive, <a href="dgui_misc_userdefdir.html">Defining your own directives</a>
+ </dt>
+ <dt>
+ custom object wrapper, <a href="pgui_datamodel_objectWrapper.html#pgui_datamodel_customObjectWrappingExample">Custom object wrapping example</a>
+ </dt>
+ <dt>
+ custom tags, <a href="pgui_misc_servlet.html#autoid_63">Using FreeMarker with servlets</a>
+ </dt>
+</dl></div>
+<div class="indexdiv">
+<a name="idx_D"></a>
+<h2 class="indexLabel">D</h2>
+<dl>
+ <dt>
+ data-model, <a href="dgui_quickstart_basics.html">Template + data-model = output</a>
+ </dt>
+ <dd><dl>
+ <dt>assembling with Java, <a href="pgui_quickstart_createdatamodel.html">Create a data-model</a></dt>
+ <dt>assembling with Java, without object wrapper, <a href="pgui_datamodel_basics.html">Basics</a></dt>
+ </dl></dd>
+ <dt>
+ date </dt>
+ <dd><dl>
+ <dt>built-ins, <a href="ref_builtins_date.html">Built-ins for date/time/date-time values</a></dt>
+ <dt>Java API related difficulties, <a href="pgui_datamodel_scalar.html#autoid_31">Scalars</a></dt>
+ <dt>Java side, <a href="pgui_datamodel_scalar.html">Scalars</a></dt>
+ <dt>the FTL value type, <a href="dgui_datamodel_types.html#dgui_datamodel_scalar">Scalars</a></dt>
+ </dl></dd>
+ <dt>
+ date_format, <a href="ref_directive_setting.html#topic_date_format_settings">setting</a>
+ </dt>
+ <dt>
+ date built-in, <a href="ref_builtins_string.html#ref_builtin_string_date">date, time, datetime</a>,
+<a href="ref_builtins_date.html#ref_builtin_date_datetype">date, time, datetime (when used with a date/time/date-time
+ value)</a>
+ </dt>
+ <dt>
+ datetime </dt>
+ <dd><dl>
+ <dt>built-ins, <a href="ref_builtins_date.html">Built-ins for date/time/date-time values</a></dt>
+ </dl></dd>
+ <dt>
+ date-time </dt>
+ <dd><dl>
+ <dt>the FTL value type, <a href="dgui_datamodel_types.html#dgui_datamodel_scalar">Scalars</a></dt>
+ </dl></dd>
+ <dt>
+ datetime_format, <a href="ref_directive_setting.html#topic_date_format_settings">setting</a>
+ </dt>
+ <dt>
+ datetime built-in, <a href="ref_builtins_string.html#ref_builtin_string_date">date, time, datetime</a>,
+<a href="ref_builtins_date.html#ref_builtin_date_datetype">date, time, datetime (when used with a date/time/date-time
+ value)</a>
+ </dt>
+ <dt>
+ date to long, <a href="ref_builtins_expert.html#ref_builtin_numType">byte, double, float, int, long, short</a>
+ </dt>
+ <dt>
+ date to string, <a href="ref_builtins_date.html#ref_builtin_string_for_date">string (when used with a date/time/date-time value)</a>
+ </dt>
+ <dt>
+ default built-in, <a href="ref_depr_builtin.html">List of deprecated built-ins</a>
+ </dt>
+ <dt>
+ default directive, <a href="ref_directive_switch.html">switch, case, default, break</a>
+ </dt>
+ <dt>
+ DefaultObjectWrapper, <a href="pgui_datamodel_objectWrapper.html#pgui_datamodel_defaultObjectWrapper">The default object wrapper</a>
+ </dt>
+ <dd><dl>
+ <dt>extending, <a href="pgui_datamodel_objectWrapper.html#pgui_datamodel_customObjectWrappingExample">Custom object wrapping example</a></dt>
+ </dl></dd>
+ <dt>
+ default value operator, <a href="dgui_template_exp.html#dgui_template_exp_missing_default">Default value operator</a>
+ </dt>
+ <dt>
+ defining macro, <a href="dgui_misc_userdefdir.html#autoid_19">Defining your own directives</a>
+ </dt>
+ <dt>
+ deprecated, <a href="ref_deprecated.html">Deprecated FTL constructs</a>
+ </dt>
+ <dt>
+ directive, <a href="dgui_template_directives.html">Directives</a>,
+<a href="ref_directives.html">Directive Reference</a>,
+<a href="ref_directive_alphaidx.html">Alphabetical index</a>
+ </dt>
+ <dd><dl>
+ <dt>the FTL value type, <a href="dgui_datamodel_types.html#dgui_datamodel_userdefdir">User-defined directives</a></dt>
+ <dt>user-defined, <a href="dgui_misc_userdefdir.html">Defining your own directives</a></dt>
+ </dl></dd>
+ <dt>
+ directives </dt>
+ <dd><dl>
+ <dt>Java side, <a href="pgui_datamodel_directive.html">Directives</a></dt>
+ </dl></dd>
+ <dt>
+ division, <a href="dgui_template_exp.html#dgui_template_exp_arit">Arithmetical calculations</a>
+ </dt>
+ <dt>
+ double built-in, <a href="ref_builtins_expert.html#ref_builtin_numType">byte, double, float, int, long, short</a>
+ </dt>
+</dl></div>
+<div class="indexdiv">
+<a name="idx_E"></a>
+<h2 class="indexLabel">E</h2>
+<dl>
+ <dt>
+ else directive, <a href="ref_directive_if.html">if, else, elseif</a>
+ </dt>
+ <dt>
+ else directive inside list, <a href="ref_directive_list.html#autoid_103">list, else, items, sep, break</a>
+ </dt>
+ <dt>
+ elseif directive, <a href="ref_directive_if.html">if, else, elseif</a>
+ </dt>
+ <dt>
+ encoding, <a href="pgui_misc_charset.html">Charset issues</a>,
+<a href="ref_directive_ftl.html">ftl</a>
+ </dt>
+ <dd><dl>
+ <dt>URL, <a href="ref_builtins_string.html#ref_builtin_url">url</a></dt>
+ <dt>URL path, <a href="ref_builtins_string.html#ref_builtin_url_path">url_path</a></dt>
+ </dl></dd>
+ <dt>
+ ends_with built-in, <a href="ref_builtins_string.html#ref_builtin_ends_with">ends_with</a>
+ </dt>
+ <dt>
+ ensure_ends_with built-in, <a href="ref_builtins_string.html#ref_builtin_ensure_ends_with">ensure_ends_with</a>,
+<a href="ref_builtins_string.html#ref_builtin_ensure_starts_with">ensure_starts_with</a>
+ </dt>
+ <dt>
+ enum, <a href="pgui_misc_beanwrapper.html#jdk_15_enums">Accessing enums</a>
+ </dt>
+ <dt>
+ error, <a href="ref_specvar.html">Special Variable Reference</a>
+ </dt>
+ <dt>
+ error handling, <a href="dgui_template_exp.html#dgui_template_exp_missing">Handling missing values</a>,
+<a href="pgui_config_errorhandling.html">Error handling</a>,
+<a href="ref_directive_attempt.html">attempt, recover</a>
+ </dt>
+ <dt>
+ escape directive, <a href="ref_directive_escape.html">escape, noescape (deprecated)</a>
+ </dt>
+ <dt>
+ escape sequences, <a href="dgui_template_exp.html#dgui_template_exp_direct_string">Strings</a>
+ </dt>
+ <dt>
+ escaping, <a href="dgui_misc_autoescaping.html">Auto-escaping and output formats</a>,
+<a href="ref_directive_autoesc.html">autoesc</a>,
+<a href="ref_directive_noautoesc.html">noautoesc</a>,
+<a href="ref_directive_outputformat.html">outputformat</a>
+ </dt>
+ <dd><dl>
+ <dt>output, <a href="ref_builtins_string.html#ref_builtin_html">html (deprecated)</a>, <a href="ref_builtins_string.html#ref_builtin_rtf">rtf (deprecated)</a>, <a href="ref_builtins_string.html#ref_builtin_xhtml">xhtml (deprecated)</a>, <a href="ref_builtins_string.html#ref_builtin_xml">xml (deprecated)</a></dt>
+ <dt>URL, <a href="ref_builtins_string.html#ref_builtin_url">url</a></dt>
+ <dt>URL path, <a href="ref_builtins_string.html#ref_builtin_url_path">url_path</a></dt>
+ </dl></dd>
+ <dt>
+ esc built-in, <a href="ref_builtins_string.html#ref_builtin_esc">esc</a>
+ </dt>
+ <dt>
+ eval, <a href="ref_builtins_expert.html#ref_builtin_eval">eval</a>
+ </dt>
+ <dt>
+ evaluate string, <a href="ref_builtins_expert.html#ref_builtin_eval">eval</a>
+ </dt>
+ <dt>
+ exception handling, <a href="pgui_config_errorhandling.html">Error handling</a>
+ </dt>
+ <dt>
+ existence test operator, <a href="dgui_template_exp.html#dgui_template_exp_missing_test">Missing value test operator</a>
+ </dt>
+ <dt>
+ exists built-in, <a href="ref_depr_builtin.html">List of deprecated built-ins</a>
+ </dt>
+ <dt>
+ expression, <a href="dgui_template_exp.html">Expressions</a>
+ </dt>
+ <dt>
+ extended Java decimal format, <a href="ref_builtins_number.html#topic.extendedJavaDecimalFormat">Extended Java decimal format</a>
+ </dt>
+</dl></div>
+<div class="indexdiv">
+<a name="idx_F"></a>
+<h2 class="indexLabel">F</h2>
+<dl>
+ <dt>
+ fallback directive, <a href="ref_directive_visit.html">visit, recurse, fallback</a>
+ </dt>
+ <dt>
+ FAQ, <a href="app_faq.html">FAQ</a>
+ </dt>
+ <dt>
+ first built-in, <a href="ref_builtins_sequence.html#ref_builtin_first">first</a>
+ </dt>
+ <dt>
+ float built-in, <a href="ref_builtins_expert.html#ref_builtin_numType">byte, double, float, int, long, short</a>
+ </dt>
+ <dt>
+ floor built-in, <a href="ref_builtins_number.html#ref_builtin_rounding">round, floor, ceiling</a>
+ </dt>
+ <dt>
+ flush directive, <a href="ref_directive_flush.html">flush</a>
+ </dt>
+ <dt>
+ format </dt>
+ <dd><dl>
+ <dt>boolean, <a href="ref_builtins_boolean.html#ref_builtin_c_boolean">c (when used with boolean)</a>, <a href="ref_builtins_boolean.html#ref_builtin_string_for_boolean">string (when used with a boolean value)</a>, <a href="ref_directive_setting.html#autoid_125">setting</a></dt>
+ <dt>date, <a href="ref_builtins_date.html#ref_builtin_string_for_date">string (when used with a date/time/date-time value)</a>, <a href="ref_directive_setting.html#topic_date_format_settings">setting</a></dt>
+ <dt>date-time, <a href="ref_builtins_date.html#ref_builtin_string_for_date">string (when used with a date/time/date-time value)</a></dt>
+ <dt>number, <a href="ref_builtins_number.html#ref_builtin_c">c (when used with numerical value)</a>, <a href="ref_builtins_number.html#ref_builtin_string_for_number">string (when used with a numerical value)</a>, <a href="ref_directive_setting.html#ref.setting.number_format">setting</a></dt>
+ <dt>time, <a href="ref_builtins_date.html#ref_builtin_string_for_date">string (when used with a date/time/date-time value)</a></dt>
+ <dt>timestamp, <a href="ref_builtins_date.html#ref_builtin_string_for_date">string (when used with a date/time/date-time value)</a></dt>
+ </dl></dd>
+ <dt>
+ format; boolean, <a href="ref_builtins_boolean.html#ref_builtin_then">then</a>
+ </dt>
+ <dt>
+ FTL, <a href="dgui_template_overallstructure.html">Overall structure</a>
+ </dt>
+ <dt>
+ ftl directive, <a href="ref_directive_ftl.html">ftl</a>
+ </dt>
+ <dt>
+ FTL tag, <a href="dgui_template_overallstructure.html">Overall structure</a>,
+<a href="dgui_template_directives.html">Directives</a>
+ </dt>
+ <dt>
+ function directive, <a href="ref_directive_function.html">function, return</a>
+ </dt>
+</dl></div>
+<div class="indexdiv">
+<a name="idx_G"></a>
+<h2 class="indexLabel">G</h2>
+<dl>
+ <dt>
+ get character, <a href="dgui_template_exp.html#dgui_template_exp_get_character">Getting a character</a>
+ </dt>
+ <dt>
+ global directive, <a href="ref_directive_global.html">global</a>
+ </dt>
+ <dt>
+ groups built-in, <a href="ref_builtins_string.html#ref_builtin_groups">groups</a>
+ </dt>
+</dl></div>
+<div class="indexdiv">
+<a name="idx_H"></a>
+<h2 class="indexLabel">H</h2>
+<dl>
+ <dt>
+ handling null-s, <a href="dgui_template_exp.html#dgui_template_exp_missing">Handling missing values</a>
+ </dt>
+ <dt>
+ has_api built-in, <a href="ref_builtins_expert.html#ref_buitin_api_and_has_api">api, has_api</a>
+ </dt>
+ <dt>
+ has_content built-in, <a href="ref_builtins_expert.html#ref_builtin_has_content">has_content</a>
+ </dt>
+ <dt>
+ has_next built-in, <a href="ref_builtins_loop_var.html#ref_builtin_has_next">has_next</a>
+ </dt>
+ <dt>
+ hash </dt>
+ <dd><dl>
+ <dt>accessing subvariable, <a href="dgui_template_exp.html#dgui_template_exp_var_hash">Retrieving data from a hash</a></dt>
+ <dt>built-ins, <a href="ref_builtins_hash.html">Built-ins for hashes</a></dt>
+ <dt>concatenate, <a href="dgui_template_exp.html#dgui_template_exp_hashop_cat">Concatenation</a></dt>
+ <dt>Java side, <a href="pgui_datamodel_parent.html#autoid_32">Containers</a></dt>
+ <dt>key type, <a href="app_faq.html#faq_nonstring_keys">FAQ</a></dt>
+ <dt>literal, <a href="dgui_template_exp.html#dgui_template_exp_direct_hash">Hashes</a></dt>
+ <dt>modify, <a href="app_faq.html#faq_modify_seq_and_map">FAQ</a></dt>
+ <dt>operations, <a href="dgui_template_exp.html#dgui_template_exp_hashop">Hash operations</a></dt>
+ <dt>the FTL value type, <a href="dgui_datamodel_types.html#dgui_datamodel_container">Containers</a></dt>
+ </dl></dd>
+ <dt>
+ header, <a href="ref_directive_ftl.html">ftl</a>
+ </dt>
+ <dt>
+ html built-in, <a href="ref_builtins_string.html#ref_builtin_html">html (deprecated)</a>
+ </dt>
+ <dt>
+ HTML encoding, <a href="dgui_misc_autoescaping.html">Auto-escaping and output formats</a>
+ </dt>
+ <dt>
+ HTML escaping, <a href="dgui_misc_autoescaping.html">Auto-escaping and output formats</a>
+ </dt>
+ <dt>
+ HTTP, <a href="pgui_misc_servlet.html">Using FreeMarker with servlets</a>
+ </dt>
+</dl></div>
+<div class="indexdiv">
+<a name="idx_I"></a>
+<h2 class="indexLabel">I</h2>
+<dl>
+ <dt>
+ if_exists built-in, <a href="ref_depr_builtin.html">List of deprecated built-ins</a>
+ </dt>
+ <dt>
+ if directive, <a href="ref_directive_if.html">if, else, elseif</a>
+ </dt>
+ <dt>
+ import directive, <a href="ref_directive_import.html">import</a>
+ </dt>
+ <dt>
+ include </dt>
+ <dd><dl>
+ <dt>JSP, <a href="pgui_misc_servlet.html#pgui_misc_servlet_include">Including content from other web application
+ resources</a></dt>
+ <dt>servlet, <a href="pgui_misc_servlet.html#pgui_misc_servlet_include">Including content from other web application
+ resources</a></dt>
+ </dl></dd>
+ <dt>
+ include directive, <a href="ref_directive_include.html">include</a>
+ </dt>
+ <dt>
+ incompatible_improvements, <a href="pgui_config_incompatible_improvements.html">The "incompatible improvements" setting</a>
+ </dt>
+ <dt>
+ incompatibleImprovements, <a href="pgui_config_incompatible_improvements.html">The "incompatible improvements" setting</a>
+ </dt>
+ <dt>
+ incompatible improvements, <a href="pgui_config_incompatible_improvements.html">The "incompatible improvements" setting</a>
+ </dt>
+ <dt>
+ incomplatible_improvements, <a href="ref_specvar.html">Special Variable Reference</a>
+ </dt>
+ <dt>
+ index_of built-in, <a href="ref_builtins_string.html#ref_builtin_index_of">index_of</a>
+ </dt>
+ <dt>
+ index built-in, <a href="ref_builtins_loop_var.html#ref_builtin_index">index</a>
+ </dt>
+ <dt>
+ infinite, <a href="ref_builtins_number.html#ref_builtin_is_infinite">is_infinite</a>
+ </dt>
+ <dt>
+ install, <a href="app_install.html">Installing FreeMarker</a>
+ </dt>
+ <dt>
+ instantiating variable, <a href="ref_builtins_expert.html#ref_builtin_new">new</a>
+ </dt>
+ <dt>
+ int built-in, <a href="ref_builtins_expert.html#ref_builtin_numType">byte, double, float, int, long, short</a>
+ </dt>
+ <dt>
+ integer division, <a href="dgui_template_exp.html#dgui_template_exp_arit">Arithmetical calculations</a>
+ </dt>
+ <dt>
+ integer part, <a href="dgui_template_exp.html#dgui_template_exp_arit">Arithmetical calculations</a>
+ </dt>
+ <dt>
+ interpolation, <a href="dgui_template_overallstructure.html">Overall structure</a>,
+<a href="dgui_template_exp.html#dgui_template_exp_stringop_interpolation">Interpolation and concatenation</a>,
+<a href="dgui_template_valueinsertion.html">Interpolations</a>
+ </dt>
+ <dt>
+ interpret built-in, <a href="ref_builtins_expert.html#ref_builtin_interpret">interpret</a>
+ </dt>
+ <dt>
+ is_... built-in, <a href="ref_builtins_expert.html#ref_builtin_isType">is_...</a>
+ </dt>
+ <dt>
+ is_even_item built-in, <a href="ref_builtins_loop_var.html#ref_builtin_is_even_item">is_even_item</a>
+ </dt>
+ <dt>
+ is_first built-in, <a href="ref_builtins_loop_var.html#ref_builtin_is_first">is_first</a>
+ </dt>
+ <dt>
+ is_infinte built-in, <a href="ref_builtins_number.html#ref_builtin_is_infinite">is_infinite</a>
+ </dt>
+ <dt>
+ is_last built-in, <a href="ref_builtins_loop_var.html#ref_builtin_is_last">is_last</a>
+ </dt>
+ <dt>
+ is_nan built-in, <a href="ref_builtins_number.html#ref_builtin_is_nan">is_nan</a>
+ </dt>
+ <dt>
+ is_odd_item built-in, <a href="ref_builtins_loop_var.html#ref_builtin_is_odd_item">is_odd_item</a>
+ </dt>
+ <dt>
+ is null, <a href="dgui_template_exp.html#dgui_template_exp_missing_test">Missing value test operator</a>
+ </dt>
+ <dt>
+ iso_... built-ins, <a href="ref_builtins_date.html#ref_builtin_date_iso">iso_...</a>
+ </dt>
+ <dt>
+ ISO 8601, <a href="ref_directive_setting.html#topic_date_format_settings">setting</a>
+ </dt>
+ <dt>
+ ISO 8601 parsing, <a href="ref_builtins_string.html#ref_builtin_string_date">date, time, datetime</a>
+ </dt>
+ <dt>
+ iso built-in, <a href="ref_builtins_date.html#ref_builtin_date_iso">iso_...</a>
+ </dt>
+ <dt>
+ item_cycle built-in, <a href="ref_builtins_loop_var.html#ref_builtin_item_cycle">item_cycle</a>
+ </dt>
+ <dt>
+ item_parity_cap built-in, <a href="ref_builtins_loop_var.html#ref_builtin_item_parity_cap">item_parity_cap</a>
+ </dt>
+ <dt>
+ item_parity built-in, <a href="ref_builtins_loop_var.html#ref_builtin_item_parity">item_parity</a>
+ </dt>
+ <dt>
+ items directive, <a href="ref_directive_list.html#autoid_104">list, else, items, sep, break</a>
+ </dt>
+ <dt>
+ iteration state, <a href="ref_directive_list.html#autoid_107">list, else, items, sep, break</a>
+ </dt>
+</dl></div>
+<div class="indexdiv">
+<a name="idx_J"></a>
+<h2 class="indexLabel">J</h2>
+<dl>
+ <dt>
+ j_string built-in, <a href="ref_builtins_string.html#ref_builtin_j_string">j_string</a>
+ </dt>
+ <dt>
+ JDBC time zone, <a href="ref_directive_setting.html#autoid_125">setting</a>
+ </dt>
+ <dt>
+ join built-in, <a href="ref_builtins_sequence.html#ref_builtin_join">join</a>
+ </dt>
+ <dt>
+ joining hashes, <a href="dgui_template_exp.html#dgui_template_exp_hashop_cat">Concatenation</a>
+ </dt>
+ <dt>
+ joining sequences, <a href="dgui_template_exp.html#dgui_template_exp_sequenceop_cat">Concatenation</a>
+ </dt>
+ <dt>
+ joining strings, <a href="dgui_template_exp.html#dgui_template_exp_stringop_interpolation">Interpolation and concatenation</a>
+ </dt>
+ <dt>
+ js_string built-in, <a href="ref_builtins_string.html#ref_builtin_js_string">js_string</a>
+ </dt>
+ <dt>
+ json_string built-in, <a href="ref_builtins_string.html#ref_builtin_json_string">json_string</a>
+ </dt>
+ <dt>
+ JSP, <a href="pgui_misc_servlet.html">Using FreeMarker with servlets</a>,
+<a href="app_faq.html#faq_jsp_vs_freemarker">FAQ</a>
+ </dt>
+ <dd><dl>
+ <dt>include, <a href="pgui_misc_servlet.html#pgui_misc_servlet_include">Including content from other web application
+ resources</a></dt>
+ <dt>taglib, <a href="pgui_misc_servlet.html#autoid_63">Using FreeMarker with servlets</a>, <a href="pgui_misc_servlet.html#autoid_64">Using FreeMarker with servlets</a></dt>
+ </dl></dd>
+ <dt>
+ jython </dt>
+ <dd><dl>
+ <dt>wrapping, <a href="pgui_misc_jythonwrapper.html">Jython wrapper</a></dt>
+ </dl></dd>
+</dl></div>
+<div class="indexdiv">
+<a name="idx_K"></a>
+<h2 class="indexLabel">K</h2>
+<dl>
+ <dt>
+ keep_after_last built-in, <a href="ref_builtins_string.html#ref_builtin_keep_after_last">keep_after_last</a>
+ </dt>
+ <dt>
+ keep_after built-in, <a href="ref_builtins_string.html#ref_builtin_keep_after">keep_after</a>
+ </dt>
+ <dt>
+ keep_before_last built-in, <a href="ref_builtins_string.html#ref_builtin_keep_before_last">keep_before_last</a>
+ </dt>
+ <dt>
+ keep_before built-in, <a href="ref_builtins_string.html#ref_builtin_keep_before">keep_before</a>
+ </dt>
+ <dt>
+ keys built-in, <a href="ref_builtins_hash.html#ref_builtin_keys">keys</a>
+ </dt>
+</dl></div>
+<div class="indexdiv">
+<a name="idx_L"></a>
+<h2 class="indexLabel">L</h2>
+<dl>
+ <dt>
+ lang, <a href="ref_specvar.html">Special Variable Reference</a>
+ </dt>
+ <dt>
+ language, <a href="ref_specvar.html">Special Variable Reference</a>
+ </dt>
+ <dt>
+ last_index_of built-in, <a href="ref_builtins_string.html#ref_builtin_last_index_of">last_index_of</a>
+ </dt>
+ <dt>
+ last built-in, <a href="ref_builtins_sequence.html#ref_builtin_last">last</a>
+ </dt>
+ <dt>
+ left_pad built-in, <a href="ref_builtins_string.html#ref_builtin_left_pad">left_pad</a>
+ </dt>
+ <dt>
+ length built-in, <a href="ref_builtins_string.html#ref_builtin_length">length</a>
+ </dt>
+ <dt>
+ libraries, <a href="dgui_misc_namespace.html">Namespaces</a>
+ </dt>
+ <dt>
+ license, <a href="app_license.html">License</a>
+ </dt>
+ <dt>
+ list directive, <a href="ref_directive_list.html">list, else, items, sep, break</a>
+ </dt>
+ <dt>
+ listing state, <a href="ref_directive_list.html#autoid_107">list, else, items, sep, break</a>
+ </dt>
+ <dt>
+ literal, <a href="dgui_template_exp.html#dgui_template_exp_direct">Specify values directly</a>
+ </dt>
+ <dd><dl>
+ <dt>boolean, <a href="dgui_template_exp.html#dgui_template_exp_direct_boolean">Booleans</a></dt>
+ <dt>hash, <a href="dgui_template_exp.html#dgui_template_exp_direct_hash">Hashes</a></dt>
+ </dl></dd>
+ <dt>
+ loading templates, <a href="pgui_config_templateloading.html">Template loading</a>
+ </dt>
+ <dt>
+ local directive, <a href="ref_directive_local.html">local</a>
+ </dt>
+ <dt>
+ locale, <a href="ref_directive_setting.html#autoid_125">setting</a>,
+<a href="ref_specvar.html">Special Variable Reference</a>
+ </dt>
+ <dt>
+ locale_object, <a href="ref_specvar.html">Special Variable Reference</a>
+ </dt>
+ <dt>
+ localization, <a href="ref_directive_include.html#ref_directive_include_localized">Localized lookup</a>
+ </dt>
+ <dt>
+ local variable, <a href="dgui_misc_var.html">Defining variables in the template</a>
+ </dt>
+ <dt>
+ Log4j2, <a href="pgui_misc_logging.html">Logging</a>
+ </dt>
+ <dt>
+ logging, <a href="pgui_misc_logging.html">Logging</a>
+ </dt>
+ <dt>
+ logical operations, <a href="dgui_template_exp.html#dgui_template_exp_logicalop">Logical operations</a>
+ </dt>
+ <dt>
+ long built-in, <a href="ref_builtins_expert.html#ref_builtin_numType">byte, double, float, int, long, short</a>
+ </dt>
+ <dt>
+ long to date, <a href="ref_builtins_expert.html#ref_builtin_numToDate">number_to_date, number_to_time, number_to_datetime</a>
+ </dt>
+ <dt>
+ loop variable, <a href="dgui_misc_userdefdir.html#dgui_misc_userdefdir_loopvar">Macros with loop variables</a>,
+<a href="dgui_misc_var.html">Defining variables in the template</a>
+ </dt>
+ <dt>
+ lower_abc built-in, <a href="ref_builtins_number.html#ref_builtin_lower_abc">lower_abc</a>
+ </dt>
+ <dt>
+ lower_case built-in, <a href="ref_builtins_string.html#ref_builtin_lower_case">lower_case</a>
+ </dt>
+ <dt>
+ lt directive, <a href="ref_directive_t.html">t, lt, rt</a>
+ </dt>
+</dl></div>
+<div class="indexdiv">
+<a name="idx_M"></a>
+<h2 class="indexLabel">M</h2>
+<dl>
+ <dt>
+ macro, <a href="dgui_misc_userdefdir.html">Defining your own directives</a>
+ </dt>
+ <dd><dl>
+ <dt>the FTL value type, <a href="dgui_datamodel_types.html#dgui_datamodel_userdefdir">User-defined directives</a></dt>
+ </dl></dd>
+ <dt>
+ macro directive, <a href="ref_directive_macro.html">macro, nested, return</a>
+ </dt>
+ <dt>
+ main_template_name, <a href="ref_specvar.html">Special Variable Reference</a>
+ </dt>
+ <dt>
+ markup_string built-in, <a href="ref_builtins_expert.html#ref_builtin_markup_string">markup_string</a>
+ </dt>
+ <dt>
+ markup output </dt>
+ <dd><dl>
+ <dt>the FTL value type, <a href="dgui_datamodel_types.html#dgui_datamodel_markupoutput">Markup output</a></dt>
+ </dl></dd>
+ <dt>
+ matches built-in, <a href="ref_builtins_string.html#ref_builtin_matches">matches</a>
+ </dt>
+ <dt>
+ math, <a href="dgui_template_exp.html#dgui_template_exp_arit">Arithmetical calculations</a>
+ </dt>
+ <dt>
+ merging, <a href="pgui_quickstart_merge.html">Merging the template with the data-model</a>
+ </dt>
+ <dt>
+ method </dt>
+ <dd><dl>
+ <dt>call, <a href="dgui_template_exp.html#dgui_template_exp_methodcall">Method call</a></dt>
+ <dt>defining with FTL, <a href="ref_directive_function.html">function, return</a></dt>
+ <dt>Java side, <a href="pgui_datamodel_method.html">Methods</a></dt>
+ <dt>the FTL value type, <a href="dgui_datamodel_types.html#dgui_datamodel_method">Methods and functions</a></dt>
+ </dl></dd>
+ <dt>
+ MIME type, <a href="dgui_misc_autoescaping.html">Auto-escaping and output formats</a>
+ </dt>
+ <dt>
+ missing value test operator, <a href="dgui_template_exp.html#dgui_template_exp_missing_test">Missing value test operator</a>
+ </dt>
+ <dt>
+ missing variable, <a href="dgui_template_exp.html#dgui_template_exp_missing">Handling missing values</a>
+ </dt>
+ <dt>
+ Model 2, <a href="pgui_misc_servlet.html">Using FreeMarker with servlets</a>
+ </dt>
+ <dt>
+ modify hashes, <a href="app_faq.html#faq_modify_seq_and_map">FAQ</a>
+ </dt>
+ <dt>
+ modify sequences, <a href="app_faq.html#faq_modify_seq_and_map">FAQ</a>
+ </dt>
+ <dt>
+ modulus, <a href="dgui_template_exp.html#dgui_template_exp_arit">Arithmetical calculations</a>
+ </dt>
+ <dt>
+ multithreading, <a href="pgui_misc_multithreading.html">Multithreading</a>
+ </dt>
+ <dt>
+ Multi-typed value, <a href="dgui_datamodel_basics.html#topic.multitype">Basics</a>
+ </dt>
+</dl></div>
+<div class="indexdiv">
+<a name="idx_N"></a>
+<h2 class="indexLabel">N</h2>
+<dl>
+ <dt>
+ namespace built-in, <a href="ref_builtins_expert.html#ref_builtin_namespace">namespace</a>
+ </dt>
+ <dt>
+ namespaces, <a href="dgui_misc_namespace.html">Namespaces</a>
+ </dt>
+ <dt>
+ NaN, <a href="ref_builtins_number.html#ref_builtin_is_nan">is_nan</a>
+ </dt>
+ <dt>
+ nested directive, <a href="ref_directive_macro.html">macro, nested, return</a>
+ </dt>
+ <dt>
+ new built-in, <a href="ref_builtins_expert.html#ref_builtin_new">new</a>
+ </dt>
+ <dt>
+ new FTL syntax, <a href="ref_depr_oldsyntax.html">Old FTL syntax</a>
+ </dt>
+ <dt>
+ next_sibling built-in, <a href="ref_builtins_node.html#ref_builtin_next_sibling">next_sibling</a>
+ </dt>
+ <dt>
+ no_esc built-in, <a href="ref_builtins_string.html#ref_builtin_no_esc">no_esc</a>
+ </dt>
+ <dt>
+ noautoesc directive, <a href="ref_directive_noautoesc.html">noautoesc</a>
+ </dt>
+ <dt>
+ node </dt>
+ <dd><dl>
+ <dt>built-ins, <a href="ref_builtins_node.html">Built-ins for nodes (for XML)</a></dt>
+ <dt>Java side, <a href="pgui_datamodel_node.html">Node variables</a></dt>
+ <dt>the FTL value type, <a href="dgui_datamodel_types.html#dgui_datamodel_node">Nodes</a></dt>
+ </dl></dd>
+ <dt>
+ node_name built-in, <a href="ref_builtins_node.html#ref_builtin_node_name">node_name</a>
+ </dt>
+ <dt>
+ node_namespace built-in, <a href="ref_builtins_node.html#ref_builtin_node_namespace">node_namespace</a>
+ </dt>
+ <dt>
+ node_type built-in, <a href="ref_builtins_node.html#ref_builtin_node_type">node_type</a>
+ </dt>
+ <dt>
+ noescape directive, <a href="ref_directive_escape.html">escape, noescape (deprecated)</a>
+ </dt>
+ <dt>
+ noparse directive, <a href="ref_directive_noparse.html">noparse</a>
+ </dt>
+ <dt>
+ not, <a href="dgui_template_exp.html#dgui_template_exp_logicalop">Logical operations</a>
+ </dt>
+ <dt>
+ now, <a href="ref_specvar.html">Special Variable Reference</a>
+ </dt>
+ <dt>
+ nt directive, <a href="ref_directive_nt.html">nt</a>
+ </dt>
+ <dt>
+ null, <a href="dgui_template_exp.html#dgui_template_exp_missing">Handling missing values</a>,
+<a href="app_faq.html#faq_null">FAQ</a>
+ </dt>
+ <dt>
+ number </dt>
+ <dd><dl>
+ <dt>built-ins, <a href="ref_builtins_number.html">Built-ins for numbers</a></dt>
+ <dt>Java side, <a href="pgui_datamodel_scalar.html">Scalars</a></dt>
+ <dt>literal, <a href="dgui_template_exp.html#dgui_template_exp_direct_number">Numbers</a></dt>
+ <dt>the FTL value type, <a href="dgui_datamodel_types.html#dgui_datamodel_scalar">Scalars</a></dt>
+ </dl></dd>
+ <dt>
+ number_format, <a href="ref_directive_setting.html#ref.setting.number_format">setting</a>
+ </dt>
+ <dt>
+ number_to_date built-in, <a href="ref_builtins_expert.html#ref_builtin_numToDate">number_to_date, number_to_time, number_to_datetime</a>
+ </dt>
+ <dt>
+ number_to_datetime built-in, <a href="ref_builtins_expert.html#ref_builtin_numToDate">number_to_date, number_to_time, number_to_datetime</a>
+ </dt>
+ <dt>
+ number_to_time built-in, <a href="ref_builtins_expert.html#ref_builtin_numToDate">number_to_date, number_to_time, number_to_datetime</a>
+ </dt>
+ <dt>
+ number built-in, <a href="ref_builtins_string.html#ref_builtin_number">number</a>
+ </dt>
+ <dt>
+ numerical range expression, <a href="dgui_template_exp.html#dgui_template_exp_direct_seuqence">Sequences</a>
+ </dt>
+ <dt>
+ numerical sequence, <a href="dgui_template_exp.html#dgui_template_exp_direct_seuqence">Sequences</a>
+ </dt>
+</dl></div>
+<div class="indexdiv">
+<a name="idx_O"></a>
+<h2 class="indexLabel">O</h2>
+<dl>
+ <dt>
+ object wrapper, <a href="pgui_datamodel_basics.html">Basics</a>,
+<a href="pgui_datamodel_objectWrapper.html">Object wrappers</a>
+ </dt>
+ <dd><dl>
+ <dt>custom, <a href="pgui_datamodel_objectWrapper.html#pgui_datamodel_customObjectWrappingExample">Custom object wrapping example</a></dt>
+ <dt>default, <a href="pgui_datamodel_objectWrapper.html#pgui_datamodel_defaultObjectWrapper">The default object wrapper</a></dt>
+ </dl></dd>
+ <dt>
+ old FTL syntax, <a href="ref_depr_oldsyntax.html">Old FTL syntax</a>
+ </dt>
+ <dt>
+ operator precedence, <a href="dgui_template_exp.html#dgui_template_exp_precedence">Operator precedence</a>
+ </dt>
+ <dt>
+ or, <a href="dgui_template_exp.html#dgui_template_exp_logicalop">Logical operations</a>
+ </dt>
+ <dt>
+ output </dt>
+ <dd><dl>
+ <dt>generate with Java, <a href="pgui_quickstart_merge.html">Merging the template with the data-model</a></dt>
+ </dl></dd>
+ <dt>
+ output_encoding, <a href="ref_directive_setting.html#autoid_125">setting</a>
+ </dt>
+ <dt>
+ output_format, <a href="ref_specvar.html">Special Variable Reference</a>
+ </dt>
+ <dt>
+ output charset, <a href="pgui_misc_charset.html#autoid_53">Charset issues</a>,
+<a href="ref_builtins_string.html#ref_builtin_url">url</a>,
+<a href="ref_specvar.html">Special Variable Reference</a>
+ </dt>
+ <dt>
+ output encoding, <a href="pgui_misc_charset.html#autoid_53">Charset issues</a>,
+<a href="ref_builtins_string.html#ref_builtin_url">url</a>,
+<a href="ref_specvar.html">Special Variable Reference</a>
+ </dt>
+ <dt>
+ output format, <a href="dgui_misc_autoescaping.html#dgui_misc_autoescaping_outputformat">Output formats</a>,
+<a href="pgui_config_outputformatsautoesc.html">Associating output formats with templates</a>,
+<a href="ref_specvar.html">Special Variable Reference</a>
+ </dt>
+ <dt>
+ outputformat directive, <a href="ref_directive_outputformat.html">outputformat</a>
+ </dt>
+</dl></div>
+<div class="indexdiv">
+<a name="idx_P"></a>
+<h2 class="indexLabel">P</h2>
+<dl>
+ <dt>
+ padding, <a href="ref_builtins_string.html#ref_builtin_left_pad">left_pad</a>,
+<a href="ref_builtins_string.html#ref_builtin_right_pad">right_pad</a>
+ </dt>
+ <dt>
+ parent built-in, <a href="ref_builtins_node.html#ref_builtin_parent">parent</a>
+ </dt>
+ <dt>
+ parentheses, <a href="dgui_template_exp.html#dgui_template_exp_parentheses">Parentheses</a>
+ </dt>
+ <dt>
+ parse string as boolean, <a href="ref_builtins_string.html#ref_builtin_boolean">boolean</a>
+ </dt>
+ <dt>
+ parse string as number, <a href="ref_builtins_string.html#ref_builtin_number">number</a>
+ </dt>
+ <dt>
+ parsing string as date, <a href="ref_builtins_string.html#ref_builtin_string_date">date, time, datetime</a>
+ </dt>
+ <dt>
+ parsing string as time, <a href="ref_builtins_string.html#ref_builtin_string_date">date, time, datetime</a>
+ </dt>
+ <dt>
+ path, <a href="pgui_config_templateloading.html#autoid_42">Template loading</a>
+ </dt>
+ <dt>
+ positional parameter passing, <a href="ref_directive_userDefined.html#ref_directive_userDefined_positionalParam">Positional parameter passing</a>
+ </dt>
+ <dt>
+ precedence, <a href="dgui_template_exp.html#dgui_template_exp_precedence">Operator precedence</a>
+ </dt>
+ <dt>
+ previous_sibling built-in, <a href="ref_builtins_node.html#ref_builtin_previous_sibling">previous_sibling</a>
+ </dt>
+</dl></div>
+<div class="indexdiv">
+<a name="idx_R"></a>
+<h2 class="indexLabel">R</h2>
+<dl>
+ <dt>
+ range expression, <a href="dgui_template_exp.html#dgui_template_exp_direct_seuqence">Sequences</a>
+ </dt>
+ <dt>
+ raw string literal, <a href="dgui_template_exp.html#dgui_template_exp_direct_string">Strings</a>
+ </dt>
+ <dt>
+ recover directive, <a href="ref_directive_attempt.html">attempt, recover</a>
+ </dt>
+ <dt>
+ recurse directive, <a href="ref_directive_visit.html">visit, recurse, fallback</a>
+ </dt>
+ <dt>
+ recursion </dt>
+ <dd><dl>
+ <dt>iterate, <a href="ref_directive_visit.html">visit, recurse, fallback</a></dt>
+ </dl></dd>
+ <dt>
+ regular expression </dt>
+ <dd><dl>
+ <dt>built-ins, <a href="ref_builtins_string.html#ref_builtin_string_flags">Common flags</a></dt>
+ </dl></dd>
+ <dt>
+ remove_beginning built-in, <a href="ref_builtins_string.html#ref_builtin_remove_beginning">remove_beginning</a>
+ </dt>
+ <dt>
+ remove_ending built-in, <a href="ref_builtins_string.html#ref_builtin_remove_ending">remove_ending</a>
+ </dt>
+ <dt>
+ replace built-in, <a href="ref_builtins_string.html#ref_builtin_replace">replace</a>
+ </dt>
+ <dt>
+ reserved name, <a href="ref_reservednames.html">Reserved names in FTL</a>
+ </dt>
+ <dt>
+ return directive, <a href="ref_directive_function.html">function, return</a>,
+<a href="ref_directive_macro.html">macro, nested, return</a>
+ </dt>
+ <dt>
+ reverse built-in, <a href="ref_builtins_sequence.html#ref_builtin_reverse">reverse</a>
+ </dt>
+ <dt>
+ right_pad built-in, <a href="ref_builtins_string.html#ref_builtin_right_pad">right_pad</a>
+ </dt>
+ <dt>
+ root built-in, <a href="ref_builtins_node.html#ref_builtin_root">root</a>
+ </dt>
+ <dt>
+ round built-in, <a href="ref_builtins_number.html#ref_builtin_rounding">round, floor, ceiling</a>
+ </dt>
+ <dt>
+ rounding, <a href="ref_builtins_number.html#ref_builtin_rounding">round, floor, ceiling</a>
+ </dt>
+ <dt>
+ rt directive, <a href="ref_directive_t.html">t, lt, rt</a>
+ </dt>
+ <dt>
+ rtf built-in, <a href="ref_builtins_string.html#ref_builtin_rtf">rtf (deprecated)</a>
+ </dt>
+</dl></div>
+<div class="indexdiv">
+<a name="idx_S"></a>
+<h2 class="indexLabel">S</h2>
+<dl>
+ <dt>
+ scalar </dt>
+ <dd><dl>
+ <dt>Java side, <a href="pgui_datamodel_scalar.html">Scalars</a></dt>
+ </dl></dd>
+ <dt>
+ scopes, <a href="pgui_misc_var.html">Variables, scopes</a>
+ </dt>
+ <dt>
+ security, <a href="pgui_misc_secureenv.html">Configuring security policy for FreeMarker</a>
+ </dt>
+ <dd><dl>
+ <dt>user-provided templates, <a href="app_faq.html#faq_template_uploading_security">FAQ</a></dt>
+ </dl></dd>
+ <dt>
+ sep directive, <a href="ref_directive_list.html#autoid_105">list, else, items, sep, break</a>
+ </dt>
+ <dt>
+ seq_contains built-in, <a href="ref_builtins_sequence.html#ref_builtin_seq_contains">seq_contains</a>
+ </dt>
+ <dt>
+ seq_index_of built-in, <a href="ref_builtins_sequence.html#ref_builtin_seq_index_of">seq_index_of</a>
+ </dt>
+ <dt>
+ seq_last_index_of built-in, <a href="ref_builtins_sequence.html#ref_builtin_seq_last_index_of">seq_last_index_of</a>
+ </dt>
+ <dt>
+ sequence </dt>
+ <dd><dl>
+ <dt>accessing subvariable, <a href="dgui_template_exp.html#dgui_template_exp_var_sequence">Retrieving data from a sequence</a></dt>
+ <dt>built-ins, <a href="ref_builtins_sequence.html">Built-ins for sequences</a></dt>
+ <dt>concatenate, <a href="dgui_template_exp.html#dgui_template_exp_sequenceop_cat">Concatenation</a></dt>
+ <dt>iterate, <a href="ref_directive_list.html">list, else, items, sep, break</a></dt>
+ <dt>Java side, <a href="pgui_datamodel_parent.html#autoid_33">Containers</a></dt>
+ <dt>literal, <a href="dgui_template_exp.html#dgui_template_exp_direct_seuqence">Sequences</a></dt>
+ <dt>modify, <a href="app_faq.html#faq_modify_seq_and_map">FAQ</a></dt>
+ <dt>operations, <a href="dgui_template_exp.html#dgui_template_exp_sequenceop">Sequence operations</a></dt>
+ <dt>slice, <a href="dgui_template_exp.html#dgui_template_exp_seqenceop_slice">Sequence slicing</a></dt>
+ <dt>sorting, <a href="ref_builtins_sequence.html#ref_builtin_sort">sort</a>, <a href="ref_builtins_sequence.html#ref_builtin_sort_by">sort_by</a></dt>
+ <dt>the FTL value type, <a href="dgui_datamodel_types.html#dgui_datamodel_container">Containers</a></dt>
+ </dl></dd>
+ <dt>
+ sequence slice, <a href="dgui_template_exp.html#dgui_template_exp_seqenceop_slice">Sequence slicing</a>
+ </dt>
+ <dt>
+ servlet </dt>
+ <dd><dl>
+ <dt>include, <a href="pgui_misc_servlet.html#pgui_misc_servlet_include">Including content from other web application
+ resources</a></dt>
+ </dl></dd>
+ <dt>
+ Servlet, <a href="pgui_misc_servlet.html">Using FreeMarker with servlets</a>
+ </dt>
+ <dt>
+ setting, <a href="pgui_config_settings.html">Settings</a>
+ </dt>
+ <dt>
+ setting directive, <a href="ref_directive_setting.html">setting</a>
+ </dt>
+ <dt>
+ shared variable, <a href="pgui_config_sharedvariables.html">Shared variables</a>
+ </dt>
+ <dt>
+ short built-in, <a href="ref_builtins_expert.html#ref_builtin_numType">byte, double, float, int, long, short</a>
+ </dt>
+ <dt>
+ size built-in, <a href="ref_builtins_sequence.html#ref_builtin_size">size</a>
+ </dt>
+ <dt>
+ SLF4J, <a href="pgui_misc_logging.html">Logging</a>
+ </dt>
+ <dt>
+ sort_by built-in, <a href="ref_builtins_sequence.html#ref_builtin_sort_by">sort_by</a>
+ </dt>
+ <dt>
+ sort built-in, <a href="ref_builtins_sequence.html#ref_builtin_sort">sort</a>
+ </dt>
+ <dt>
+ special variable, <a href="ref_specvar.html">Special Variable Reference</a>
+ </dt>
+ <dt>
+ special variables, <a href="dgui_template_exp.html#dgui_template_exp_var_special">Special variables</a>
+ </dt>
+ <dt>
+ split built-in, <a href="ref_builtins_string.html#ref_builtin_split">split</a>
+ </dt>
+ <dt>
+ square bracket syntax, <a href="dgui_misc_alternativesyntax.html">Alternative (square bracket) syntax</a>
+ </dt>
+ <dt>
+ starts_with built-in, <a href="ref_builtins_string.html#ref_builtin_starts_with">starts_with</a>
+ </dt>
+ <dt>
+ static method </dt>
+ <dd><dl>
+ <dt>accessing from templates, <a href="pgui_misc_beanwrapper.html#autoid_60">Bean wrapper</a></dt>
+ </dl></dd>
+ <dt>
+ stop directive, <a href="ref_directive_stop.html">stop</a>
+ </dt>
+ <dt>
+ storing templates, <a href="pgui_config_templateloading.html">Template loading</a>
+ </dt>
+ <dt>
+ strict syntax, <a href="ref_depr_oldsyntax.html">Old FTL syntax</a>
+ </dt>
+ <dt>
+ string </dt>
+ <dd><dl>
+ <dt>built-ins, <a href="ref_builtins_string.html">Built-ins for strings</a></dt>
+ <dt>concatenate, <a href="dgui_template_exp.html#dgui_template_exp_stringop_interpolation">Interpolation and concatenation</a></dt>
+ <dt>interpolation, <a href="dgui_template_exp.html#dgui_template_exp_stringop_interpolation">Interpolation and concatenation</a></dt>
+ <dt>Java side, <a href="pgui_datamodel_scalar.html">Scalars</a></dt>
+ <dt>literal, <a href="dgui_template_exp.html#dgui_template_exp_direct_string">Strings</a></dt>
+ <dt>operations, <a href="dgui_template_exp.html#dgui_template_exp_stringop">String operations</a></dt>
+ <dt>slice, <a href="dgui_template_exp.html#dgui_template_exp_stringop_slice">String slicing (substrings)</a></dt>
+ <dt>substring, <a href="dgui_template_exp.html#dgui_template_exp_stringop_slice">String slicing (substrings)</a></dt>
+ <dt>the FTL value type, <a href="dgui_datamodel_types.html#dgui_datamodel_scalar">Scalars</a></dt>
+ </dl></dd>
+ <dt>
+ string built-in, <a href="ref_builtins_number.html#ref_builtin_string_for_number">string (when used with a numerical value)</a>,
+<a href="ref_builtins_date.html#ref_builtin_string_for_date">string (when used with a date/time/date-time value)</a>,
+<a href="ref_builtins_boolean.html#ref_builtin_string_for_boolean">string (when used with a boolean value)</a>
+ </dt>
+ <dt>
+ string slicing, <a href="dgui_template_exp.html#dgui_template_exp_stringop_slice">String slicing (substrings)</a>
+ </dt>
+ <dt>
+ string to boolean, <a href="ref_builtins_string.html#ref_builtin_boolean">boolean</a>
+ </dt>
+ <dt>
+ string to date, <a href="ref_builtins_string.html#ref_builtin_string_date">date, time, datetime</a>
+ </dt>
+ <dt>
+ string to number, <a href="ref_builtins_string.html#ref_builtin_number">number</a>
+ </dt>
+ <dt>
+ string to time, <a href="ref_builtins_string.html#ref_builtin_string_date">date, time, datetime</a>
+ </dt>
+ <dt>
+ Struts, <a href="pgui_misc_servlet.html">Using FreeMarker with servlets</a>
+ </dt>
+ <dt>
+ subsequence, <a href="dgui_template_exp.html#dgui_template_exp_seqenceop_slice">Sequence slicing</a>
+ </dt>
+ <dt>
+ substring, <a href="dgui_template_exp.html#dgui_template_exp_stringop_slice">String slicing (substrings)</a>,
+<a href="ref_builtins_string.html#ref_builtin_substring">substring (deprecated)</a>
+ </dt>
+ <dt>
+ substring built-in, <a href="ref_builtins_string.html#ref_builtin_substring">substring (deprecated)</a>
+ </dt>
+ <dt>
+ subtraction, <a href="dgui_template_exp.html#dgui_template_exp_arit">Arithmetical calculations</a>
+ </dt>
+ <dt>
+ subvariable </dt>
+ <dd><dl>
+ <dt>accessing, <a href="dgui_template_exp.html#dgui_template_exp_var_toplevel">Top-level variables</a>, <a href="dgui_template_exp.html#dgui_template_exp_var_hash">Retrieving data from a hash</a>, <a href="dgui_template_exp.html#dgui_template_exp_var_sequence">Retrieving data from a sequence</a></dt>
+ </dl></dd>
+ <dt>
+ switch built-in, <a href="ref_builtins_type_independent.html#ref_builtin_switch">switch</a>
+ </dt>
+ <dt>
+ switch directive, <a href="ref_directive_switch.html">switch, case, default, break</a>
+ </dt>
+ <dt>
+ switch expression, <a href="ref_builtins_type_independent.html#ref_builtin_switch">switch</a>
+ </dt>
+</dl></div>
+<div class="indexdiv">
+<a name="idx_T"></a>
+<h2 class="indexLabel">T</h2>
+<dl>
+ <dt>
+ tabular printing of sequences, <a href="ref_builtins_sequence.html#ref_builtin_chunk">chunk</a>
+ </dt>
+ <dt>
+ tag </dt>
+ <dd><dl>
+ <dt>user-defined, <a href="dgui_misc_userdefdir.html">Defining your own directives</a></dt>
+ </dl></dd>
+ <dt>
+ taglib, <a href="pgui_misc_servlet.html#autoid_63">Using FreeMarker with servlets</a>
+ </dt>
+ <dt>
+ t directive, <a href="ref_directive_t.html">t, lt, rt</a>
+ </dt>
+ <dt>
+ template, <a href="dgui_template.html">The Template</a>
+ </dt>
+ <dd><dl>
+ <dt>Java side, <a href="pgui_quickstart_gettemplate.html">Get the template</a></dt>
+ </dl></dd>
+ <dt>
+ template_name, <a href="ref_specvar.html">Special Variable Reference</a>
+ </dt>
+ <dt>
+ template caching, <a href="pgui_config_templateloading.html#pgui_config_templateloading_caching">Template caching</a>
+ </dt>
+ <dt>
+ template loaders, <a href="pgui_config_templateloading.html#autoid_38">Template loading</a>
+ </dt>
+ <dt>
+ template loading, <a href="pgui_config_templateloading.html">Template loading</a>
+ </dt>
+ <dt>
+ template name, <a href="pgui_config_templateloading.html#autoid_42">Template loading</a>
+ </dt>
+ <dt>
+ template path, <a href="pgui_config_templateloading.html#autoid_42">Template loading</a>
+ </dt>
+ <dt>
+ temporary variable, <a href="dgui_misc_var.html">Defining variables in the template</a>
+ </dt>
+ <dt>
+ ternary operator, <a href="ref_builtins_boolean.html#ref_builtin_then">then</a>
+ </dt>
+ <dt>
+ testing for missing, <a href="dgui_template_exp.html#dgui_template_exp_missing_test">Missing value test operator</a>
+ </dt>
+ <dt>
+ testing for null, <a href="dgui_template_exp.html#dgui_template_exp_missing_test">Missing value test operator</a>
+ </dt>
+ <dt>
+ testing for undefined, <a href="dgui_template_exp.html#dgui_template_exp_missing_test">Missing value test operator</a>
+ </dt>
+ <dt>
+ text, <a href="dgui_template_overallstructure.html">Overall structure</a>
+ </dt>
+ <dt>
+ then built-in, <a href="ref_builtins_boolean.html#ref_builtin_then">then</a>
+ </dt>
+ <dt>
+ thread-safety, <a href="pgui_misc_multithreading.html">Multithreading</a>
+ </dt>
+ <dt>
+ time </dt>
+ <dd><dl>
+ <dt>built-ins, <a href="ref_builtins_date.html">Built-ins for date/time/date-time values</a></dt>
+ <dt>Java API related difficulties, <a href="pgui_datamodel_scalar.html#autoid_31">Scalars</a></dt>
+ <dt>Java side, <a href="pgui_datamodel_scalar.html">Scalars</a></dt>
+ <dt>the FTL value type, <a href="dgui_datamodel_types.html#dgui_datamodel_scalar">Scalars</a></dt>
+ </dl></dd>
+ <dt>
+ time_format, <a href="ref_directive_setting.html#topic_date_format_settings">setting</a>
+ </dt>
+ <dt>
+ time_zone, <a href="ref_directive_setting.html#autoid_125">setting</a>,
+<a href="ref_directive_setting.html#autoid_125">setting</a>
+ </dt>
+ <dt>
+ time built-in, <a href="ref_builtins_string.html#ref_builtin_string_date">date, time, datetime</a>,
+<a href="ref_builtins_date.html#ref_builtin_date_datetype">date, time, datetime (when used with a date/time/date-time
+ value)</a>
+ </dt>
+ <dt>
+ timestamp </dt>
+ <dd><dl>
+ <dt>built-ins, <a href="ref_builtins_date.html">Built-ins for date/time/date-time values</a></dt>
+ </dl></dd>
+ <dt>
+ time to string, <a href="ref_builtins_date.html#ref_builtin_string_for_date">string (when used with a date/time/date-time value)</a>
+ </dt>
+ <dt>
+ transform, <a href="dgui_misc_userdefdir.html">Defining your own directives</a>
+ </dt>
+ <dt>
+ transform directive, <a href="ref_depr_transform.html">Transform directive</a>
+ </dt>
+ <dt>
+ tree nodes, <a href="pgui_datamodel_node.html">Node variables</a>
+ </dt>
+ <dt>
+ trees, <a href="pgui_datamodel_node.html">Node variables</a>
+ </dt>
+ <dt>
+ trim built-in, <a href="ref_builtins_string.html#ref_builtin_trim">trim</a>
+ </dt>
+ <dt>
+ trimmer directives, <a href="ref_directive_nt.html">nt</a>,
+<a href="ref_directive_t.html">t, lt, rt</a>
+ </dt>
+ <dt>
+ type-casting, <a href="ref_builtins_string.html#ref_builtin_boolean">boolean</a>,
+<a href="ref_builtins_string.html#ref_builtin_string_date">date, time, datetime</a>,
+<a href="ref_builtins_string.html#ref_builtin_number">number</a>,
+<a href="ref_builtins_number.html#ref_builtin_c">c (when used with numerical value)</a>,
+<a href="ref_builtins_number.html#ref_builtin_string_for_number">string (when used with a numerical value)</a>,
+<a href="ref_builtins_date.html#ref_builtin_date_datetype">date, time, datetime (when used with a date/time/date-time
+ value)</a>,
+<a href="ref_builtins_date.html#ref_builtin_string_for_date">string (when used with a date/time/date-time value)</a>,
+<a href="ref_builtins_boolean.html#ref_builtin_c_boolean">c (when used with boolean)</a>,
+<a href="ref_builtins_boolean.html#ref_builtin_string_for_boolean">string (when used with a boolean value)</a>,
+<a href="ref_builtins_expert.html#ref_builtin_numType">byte, double, float, int, long, short</a>,
+<a href="ref_builtins_expert.html#ref_builtin_numToDate">number_to_date, number_to_time, number_to_datetime</a>
+ </dt>
+ <dt>
+ type checking, <a href="ref_builtins_expert.html#ref_builtin_isType">is_...</a>
+ </dt>
+</dl></div>
+<div class="indexdiv">
+<a name="idx_U"></a>
+<h2 class="indexLabel">U</h2>
+<dl>
+ <dt>
+ uncap_first built-in, <a href="ref_builtins_string.html#ref_builtin_uncap_first">uncap_first</a>
+ </dt>
+ <dt>
+ undefined variable, <a href="dgui_template_exp.html#dgui_template_exp_missing">Handling missing values</a>
+ </dt>
+ <dt>
+ upper_abc built-in, <a href="ref_builtins_number.html#ref_builtin_upper_abc">upper_abc</a>
+ </dt>
+ <dt>
+ upper_case built-in, <a href="ref_builtins_string.html#ref_builtin_upper_case">upper_case</a>
+ </dt>
+ <dt>
+ url_escaping_charset, <a href="ref_builtins_string.html#ref_builtin_url">url</a>,
+<a href="ref_directive_setting.html#autoid_125">setting</a>
+ </dt>
+ <dt>
+ url_path built-in, <a href="ref_builtins_string.html#ref_builtin_url_path">url_path</a>
+ </dt>
+ <dt>
+ url built-in, <a href="ref_builtins_string.html#ref_builtin_url">url</a>
+ </dt>
+ <dt>
+ URL encoding, <a href="ref_builtins_string.html#ref_builtin_url">url</a>,
+<a href="ref_builtins_string.html#ref_builtin_url_path">url_path</a>
+ </dt>
+ <dt>
+ URL escaping, <a href="ref_builtins_string.html#ref_builtin_url">url</a>,
+<a href="ref_builtins_string.html#ref_builtin_url_path">url_path</a>
+ </dt>
+ <dt>
+ URL escaping charset, <a href="ref_specvar.html">Special Variable Reference</a>,
+<a href="ref_specvar.html">Special Variable Reference</a>
+ </dt>
+ <dt>
+ user-defined directive, <a href="dgui_misc_userdefdir.html">Defining your own directives</a>,
+<a href="ref_directive_userDefined.html">User-defined directive (<@...>)</a>
+ </dt>
+ <dd><dl>
+ <dt>the FTL value type, <a href="dgui_datamodel_types.html#dgui_datamodel_userdefdir">User-defined directives</a></dt>
+ </dl></dd>
+</dl></div>
+<div class="indexdiv">
+<a name="idx_V"></a>
+<h2 class="indexLabel">V</h2>
+<dl>
+ <dt>
+ value, <a href="dgui_datamodel_basics.html#topic.value">What is a value?</a>
+ </dt>
+ <dt>
+ values built-in, <a href="ref_builtins_hash.html#ref_builtin_values">values</a>
+ </dt>
+ <dt>
+ variable, <a href="dgui_misc_var.html">Defining variables in the template</a>
+ </dt>
+ <dt>
+ variable number of parameters, <a href="ref_directive_macro.html#autoid_112">macro, nested, return</a>
+ </dt>
+ <dt>
+ variables, <a href="pgui_misc_var.html">Variables, scopes</a>
+ </dt>
+ <dd><dl>
+ <dt>names, <a href="app_faq.html#faq_legal_variable_names">FAQ</a></dt>
+ </dl></dd>
+ <dt>
+ variable scopes, <a href="pgui_misc_var.html">Variables, scopes</a>
+ </dt>
+ <dt>
+ version, <a href="ref_specvar.html">Special Variable Reference</a>
+ </dt>
+ <dt>
+ visit directive, <a href="ref_directive_visit.html">visit, recurse, fallback</a>
+ </dt>
+</dl></div>
+<div class="indexdiv">
+<a name="idx_W"></a>
+<h2 class="indexLabel">W</h2>
+<dl>
+ <dt>
+ web_safe built-in, <a href="ref_depr_builtin.html">List of deprecated built-ins</a>
+ </dt>
+ <dt>
+ Web application framework, <a href="pgui_misc_servlet.html">Using FreeMarker with servlets</a>
+ </dt>
+ <dt>
+ white-space removal, <a href="dgui_misc_whitespace.html">White-space handling</a>
+ </dt>
+ <dd><dl>
+ <dt>compress, <a href="dgui_misc_whitespace.html#autoid_30">White-space handling</a>, <a href="ref_directive_compress.html">compress</a></dt>
+ <dt>stripping, <a href="dgui_misc_whitespace.html#dgui_misc_whitespace_stripping">White-space stripping</a>, <a href="ref_directive_ftl.html">ftl</a>, <a href="ref_directive_nt.html">nt</a></dt>
+ <dt>trimming, <a href="ref_directive_nt.html">nt</a>, <a href="ref_directive_t.html">t, lt, rt</a></dt>
+ </dl></dd>
+ <dt>
+ word_list built-in, <a href="ref_builtins_string.html#ref_builtin_word_list">word_list</a>
+ </dt>
+ <dt>
+ wrapper, <a href="pgui_datamodel_basics.html">Basics</a>,
+<a href="pgui_datamodel_objectWrapper.html">Object wrappers</a>
+ </dt>
+ <dt>
+ wrapping </dt>
+ <dd><dl>
+ <dt>beans, <a href="pgui_misc_beanwrapper.html">Bean wrapper</a></dt>
+ <dt>jython, <a href="pgui_misc_jythonwrapper.html">Jython wrapper</a></dt>
+ <dt>reflection, <a href="pgui_misc_beanwrapper.html">Bean wrapper</a></dt>
+ </dl></dd>
+</dl></div>
+<div class="indexdiv">
+<a name="idx_X"></a>
+<h2 class="indexLabel">X</h2>
+<dl>
+ <dt>
+ xhtml built-in, <a href="ref_builtins_string.html#ref_builtin_xhtml">xhtml (deprecated)</a>
+ </dt>
+ <dt>
+ XML </dt>
+ <dd><dl>
+ <dt>declarative processing, <a href="xgui_declarative.html">Declarative XML processing</a></dt>
+ <dt>exposing, <a href="xgui_expose.html">Exposing XML documents</a></dt>
+ <dt>imperative processing, <a href="xgui_imperative.html">Imperative XML processing</a></dt>
+ </dl></dd>
+ <dt>
+ xml built-in, <a href="ref_builtins_string.html#ref_builtin_xml">xml (deprecated)</a>
+ </dt>
+ <dt>
+ XML encoding, <a href="dgui_misc_autoescaping.html">Auto-escaping and output formats</a>
+ </dt>
+ <dt>
+ XML escaping, <a href="dgui_misc_autoescaping.html">Auto-escaping and output formats</a>
+ </dt>
+ <dt>
+ XML namespace </dt>
+ <dd><dl>
+ <dt>in imperative processing, <a href="xgui_imperative_learn.html#autoid_149">Basics</a></dt>
+ </dl></dd>
+ <dt>
+ XML namespaces </dt>
+ <dd><dl>
+ <dt>in declarative processing, <a href="xgui_declarative_details.html#autoid_154">Details</a></dt>
+ </dl></dd>
+ <dt>
+ XML Schema date parsing, <a href="ref_builtins_string.html#ref_builtin_string_date">date, time, datetime</a>
+ </dt>
+ <dt>
+ XML Schema date rendering, <a href="ref_directive_setting.html#topic_date_format_settings">setting</a>
+ </dt>
+ <dt>
+ XML Schema dateTime rendering, <a href="ref_directive_setting.html#topic_date_format_settings">setting</a>
+ </dt>
+ <dt>
+ XML Schema time parsing, <a href="ref_builtins_string.html#ref_builtin_string_date">date, time, datetime</a>
+ </dt>
+ <dt>
+ XML Schema time rendering, <a href="ref_directive_setting.html#topic_date_format_settings">setting</a>
+ </dt>
+ <dt>
+ XSLT, <a href="xgui_declarative.html">Declarative XML processing</a>
+ </dt>
+</dl></div>
+<div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="gloss.html"><span>Previous</span></a><span class="paging-arrow disabled next"><span>Next</span></span></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-15T20:06:02Z" title="Wednesday, March 15, 2017 8:06:02 PM GMT">2017-03-15 20:06:02 GMT</time>, for Freemarker 2.3.26 </p>
+<p class="copyright">
+� <span itemprop="copyrightYear">1999</span>\u20132017
+<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>
[04/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/versions_2_3_6.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_3_6.html b/builds/2.3.26-nightly/versions_2_3_6.html
deleted file mode 100644
index a688a47..0000000
--- a/builds/2.3.26-nightly/versions_2_3_6.html
+++ /dev/null
@@ -1,68 +0,0 @@
-<!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.6 - 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.6">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/versions_2_3_6.html">
-<link rel="canonical" href="http://freemarker.org/docs/versions_2_3_6.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_6.html"><span itemprop="name">2.3.6</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.6"];</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_7rc1.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_5.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="versions_2_3_6" itemprop="headline">2.3.6</h1>
-</div></div><p>Date of release: 2006-03-15</p><p>Quick release that fixes a serious bug of 2.3.5, days after its
- release. So for the recently added new features please <a href="versions_2_3_5.html">see the section of 2.3.5.</a></p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_204">Changes on the Java side</h2>
-
-
- <ul>
- <li>
- <p>Bug fixed: In FreeMarker 2.3.5 only, when you read a bean
- property for the second time, FreeMarker will say that it's
- missing (null).</p>
- </li>
- </ul>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_3_7rc1.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_5.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/versions_2_3_7.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_3_7.html b/builds/2.3.26-nightly/versions_2_3_7.html
deleted file mode 100644
index cbce296..0000000
--- a/builds/2.3.26-nightly/versions_2_3_7.html
+++ /dev/null
@@ -1,172 +0,0 @@
-<!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.7 - 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.7">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/versions_2_3_7.html">
-<link rel="canonical" href="http://freemarker.org/docs/versions_2_3_7.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_7.html"><span itemprop="name">2.3.7</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.7"];</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_8.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_7rc1.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="versions_2_3_7" itemprop="headline">2.3.7</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_200" data-menu-target="autoid_200">Changes on the Java side</a></li><li><a class="page-menu-link" href="#autoid_201" data-menu-target="autoid_201">Changes on the FTL side</a></li></ul> </div><p>Date of release: 2006-06-23</p><p>This release, compared to 2.3.7 RC1, contains new operators for
- handling null/missing variables, , the <code class="inline-code">substring</code>
- built-in, and some more bugfixes. Note that 2.3.7 RC1 has a long
- change log, so you may want to <a href="versions_2_3_7rc1.html">read
- that</a> too.</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_200">Changes on the Java side</h2>
-
-
- <ul>
- <li>
- <p>The <code class="inline-code">seq_contains</code> built-in now handles
- <code class="inline-code">TemplateCollectionModel</code>-s as well.</p>
- </li>
-
- <li>
- <p>Bug fixed: In 2.3.7 RC1
- <code class="inline-code">FreemarkerServlet</code> has always died with
- <code class="inline-code">NullPointerException</code> during
- initialization.</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_201">Changes on the FTL side</h2>
-
-
- <ul>
- <li>
- <p>3 new operators were added for terser missing variable
- handling. These operators make the <code class="inline-code">default</code>,
- <code class="inline-code">exists</code> and <code class="inline-code">if_exists</code>
- built-ins deprecated. (The parser doesn't issue any warning
- messages when you use deprecated built-ins, and they are still
- working.):</p>
-
- <ul>
- <li>
- <p><code class="inline-code"><em class="code-color">exp1</em>!<em class="code-color">exp2</em></code>
- is near equivalent with
- <code class="inline-code"><em class="code-color">exp1</em>?default(<em class="code-color">exp2</em>)</code>,
- also
- <code class="inline-code">(<em class="code-color">exp1</em>)!<em class="code-color">exp2</em></code>
- is near equivalent with
- <code class="inline-code">(<em class="code-color">exp1</em>)?default(<em class="code-color">exp2</em>)</code>.
- The only difference is that this new operator doesn't
- evaluate the
- <code class="inline-code"><em class="code-color">exp2</em></code> when the
- default value is not needed.</p>
- </li>
-
- <li>
- <p><code class="inline-code"><em class="code-color">exp1</em>!</code> is
- similar to
- <code class="inline-code"><em class="code-color">exp1</em>?if_exists</code>,
- also <code class="inline-code">(<em class="code-color">exp1</em>)!</code>
- is similar to
- <code class="inline-code">(<em class="code-color">exp1</em>)?if_exists</code>.
- The difference is that with this new operator the default
- value is an empty string and an empty list and empty hash at
- the same time (multi-type variable), while with
- <code class="inline-code">if_exists</code> the default value was an empty
- string and an empty list and empty hash and boolean
- <code class="inline-code">false</code> and a transform that does nothing
- and ignores all parameters at the same time.</p>
- </li>
-
- <li>
- <p><code class="inline-code"><em class="code-color">exp1</em>??</code>
- is equivalent with
- <code class="inline-code"><em class="code-color">exp1</em>?exists</code>,
- also <code class="inline-code">(<em class="code-color">exp1</em>)??</code>
- is equivalent with with
- <code class="inline-code">(<em class="code-color">exp1</em>)?exists</code>.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>New built-in:
- <code class="inline-code"><em class="code-color">exp</em>?substring(<em class="code-color">from</em>,
- <em class="code-color">toExclusive</em>)</code>, also callable
- as
- <code class="inline-code"><em class="code-color">exp</em>?substring(<em class="code-color">from</em>)</code>.
- Getting substrings was possible for a long time like
- <code class="inline-code"><em class="code-color">myString</em>[<em class="code-color">from</em>..<em class="code-color">toInclusive</em>]</code>
- and
- <code class="inline-code"><em class="code-color">myString</em>[<em class="code-color">from</em>..]</code>,
- but
- <code class="inline-code"><em class="code-color">myString</em>?substring(<em class="code-color">from</em>,
- <em class="code-color">toExclusive</em>)</code> and
- <code class="inline-code"><em class="code-color">myString</em>?substring(<em class="code-color">from</em>)</code>
- has the advantage that it has an exclusive end, which is more
- practical. (Edit: Since 2.3.21 ranges are the preferred way
- again, as it has
- <code class="inline-code"><em class="code-color">myString</em>[<em class="code-color">from</em>..<<em class="code-color">toExclusive</em>]</code>.)
- Sequence (list) slices still has to be get with the old syntax,
- since <code class="inline-code">substring</code> only applies to strings.
- Please note that the "to" parameter is 1 greater
- with this new builtin, as it is an exclusive index. Further
- difference is that the <code class="inline-code">substring</code> built-in
- requires that the "from" index is less than or
- equal to the "to" index. So 0 length substrings are
- possible now, but not reversed substrings.</p>
- </li>
-
- <li>
- <p>Bug fixed: <a href="http://sourceforge.net/tracker/?func=detail&atid=100794&aid=1487694&group_id=794">[1487694]</a>
- malfunction when the <code class="inline-code">recover</code> directive has no
- nested content</p>
- </li>
- </ul>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_3_8.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_7rc1.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/versions_2_3_7rc1.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_3_7rc1.html b/builds/2.3.26-nightly/versions_2_3_7rc1.html
deleted file mode 100644
index 9b2e0f7..0000000
--- a/builds/2.3.26-nightly/versions_2_3_7rc1.html
+++ /dev/null
@@ -1,129 +0,0 @@
-<!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.7 RC1 - 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.7 RC1">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/versions_2_3_7rc1.html">
-<link rel="canonical" href="http://freemarker.org/docs/versions_2_3_7rc1.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_7rc1.html"><span itemprop="name">2.3.7 RC1</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.7 RC1"];</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_7.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_6.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="versions_2_3_7rc1" itemprop="headline">2.3.7 RC1</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_202" data-menu-target="autoid_202">Changes on the Java side</a></li><li><a class="page-menu-link" href="#autoid_203" data-menu-target="autoid_203">Changes on the FTL side</a></li></ul> </div><p>Date of release: 2006-04-27</p><p>This release contains many bugfixes and some
- <code class="inline-code">FreemarkerServlet</code> related improvements. It's a
- Release Candidate, which means that it shouldn't be used in production
- environment yet. We recommend this release for development, however.
- Please test it.</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_202">Changes on the Java side</h2>
-
-
- <ul>
- <li>
- <p><code class="inline-code">FreemarkerServlet</code> improvement:
- <code class="inline-code">AllHttpScopesHashModel</code> is now public, so you
- can add unlisted variables to the data-model.</p>
- </li>
-
- <li>
- <p><code class="inline-code">FreemarkerServlet</code> improvement: When it
- throws a <code class="inline-code">ServletException</code>, the J2SE 1.4 cause
- exception is now set under J2SE 1.4.</p>
- </li>
-
- <li>
- <p>Bug fixed: <a href="http://sourceforge.net/tracker/?func=detail&atid=100794&aid=1469275&group_id=794">[1469275]</a>
- <code class="inline-code">NullPointerException</code> when using
- <code class="inline-code">BeansWrapper</code> with reloaded classes</p>
- </li>
-
- <li>
- <p>Bug fixed: <a href="http://sourceforge.net/tracker/?func=detail&atid=100794&aid=1449467&group_id=794">[1449467]</a>
- <code class="inline-code">HttpSessionHashModel</code> is not
- <code class="inline-code">Serializable</code></p>
- </li>
-
- <li>
- <p>Bug fixed: <a href="http://sourceforge.net/tracker/?func=detail&atid=100794&aid=1435113&group_id=794">[1435113]</a>
- Error in <code class="inline-code">BeanWrapper</code> with indexed
- properties</p>
- </li>
-
- <li>
- <p>Bug fixed: <a href="http://sourceforge.net/tracker/?func=detail&atid=100794&aid=1411705&group_id=794">[1411705]</a>
- Acquisition bug in <code class="inline-code">TemplateCache</code></p>
- </li>
-
- <li>
- <p>Bug fixed: <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1459699&group_id=794&atid=100794">[1459699]</a>
- Tag syntax can't set with
- <code class="inline-code">Configuration.setSetting(String,
- String)</code></p>
- </li>
-
- <li>
- <p>Bug fixed: <a href="http://sourceforge.net/tracker/?func=detail&atid=100794&aid=1473403&group_id=794">[1473403]</a>
- <code class="inline-code">ReturnInstruction.Return</code> should be
- public</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_203">Changes on the FTL side</h2>
-
-
- <ul>
- <li>
- <p>Bug fixed: <a href="http://sourceforge.net/tracker/?func=detail&atid=100794&aid=1463664&group_id=794">[1463664]</a>kup
- <code class="inline-code">[/#noparse]</code> is printed out</p>
- </li>
- </ul>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_3_7.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_6.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/versions_2_3_8.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_3_8.html b/builds/2.3.26-nightly/versions_2_3_8.html
deleted file mode 100644
index 7ee71f4..0000000
--- a/builds/2.3.26-nightly/versions_2_3_8.html
+++ /dev/null
@@ -1,98 +0,0 @@
-<!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.8 - 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.8">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/versions_2_3_8.html">
-<link rel="canonical" href="http://freemarker.org/docs/versions_2_3_8.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_8.html"><span itemprop="name">2.3.8</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.8"];</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_9.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_7.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="versions_2_3_8" itemprop="headline">2.3.8</h1>
-</div></div><p>Date of release: 2006-07-09</p><p>This release substantially improves the JSP 2.0 compatibility.
- (For those who have seen the same points in 2.3.7: Sorry, the version
- history was incorrect... those JSP 2.0 related changes were not in the
- release yet.)</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_199">Changes on the Java side</h2>
-
-
- <ul>
- <li>
- <p>JSP support improvement: <a href="http://sourceforge.net/tracker/?func=detail&atid=100794&aid=1326058&group_id=794">[1326058]</a>
- Added support for <code class="inline-code">DynamicAttributes</code> (new in
- JSP 2.0)</p>
- </li>
-
- <li>
- <p>JSP support improvement: Added support for
- <code class="inline-code">pushBody()</code>/<code class="inline-code">popBody()</code> in
- <code class="inline-code">FreemarkerPageContext</code></p>
- </li>
-
- <li>
- <p>JSP support improvement: Added support for
- <code class="inline-code">getVariableResolver()</code> (new in JSP
- 2.0).</p>
- </li>
-
- <li>
- <p>JSP support improvement: Added support for
- <code class="inline-code">include(String, boolean)</code> (new in JSP
- 2.0).</p>
- </li>
-
- <li>
- <p>JSP support improvement: Added support for
- <code class="inline-code">getExpressionEvaluator()</code> (new in JSP 2.0).
- However, it will need Apache commons-el in the class path, or
- else this method will not work (it's optional). Note that EL
- support is not needed in principle, since FreeMarker has it's
- own expression language. But some custom JSP 2 tags may still
- want to use this method, after all it's in the JSP 2 API.</p>
- </li>
- </ul>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_3_9.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_7.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/versions_2_3_9.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_3_9.html b/builds/2.3.26-nightly/versions_2_3_9.html
deleted file mode 100644
index 6640b90..0000000
--- a/builds/2.3.26-nightly/versions_2_3_9.html
+++ /dev/null
@@ -1,119 +0,0 @@
-<!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.9 - 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.9">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/versions_2_3_9.html">
-<link rel="canonical" href="http://freemarker.org/docs/versions_2_3_9.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_9.html"><span itemprop="name">2.3.9</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.9"];</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_10.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_8.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="versions_2_3_9" itemprop="headline">2.3.9</h1>
-</div></div><p>Date of release: 2007-01-23</p><p>This release contains support for accessing JDK 1.5 enums and
- public fields of classes from the templates through the
- BeansWrapper.</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_198">Changes on the Java side</h2>
-
-
- <ul>
- <li>
- <p><code class="inline-code">BeansWrapper</code> can now expose public
- fields of objects to the template if you call the
- <code class="inline-code">setExposeFields(true)</code> on it. <a href="pgui_misc_beanwrapper.html#beanswrapper_hash">More info...</a></p>
- </li>
-
- <li>
- <p><code class="inline-code">BeansWrapper</code> can now pass any sequence
- model to Java methods expecting a
- <code class="inline-code">java.util.Collection</code> or a native Java array
- (including primitive arrays). <a href="pgui_misc_beanwrapper.html#beanswrapper_hash">More info...</a></p>
- </li>
-
- <li>
- <p><code class="inline-code">BeansWrapper</code> can now pass any sequence
- and collection model to Java methods expecting a
- <code class="inline-code">java.lang.Iterable</code>. <a href="pgui_misc_beanwrapper.html#beanswrapper_hash">More info...</a></p>
- </li>
-
- <li>
- <p><code class="inline-code">BeansWrapper</code> can now unwrap numeric
- models into correct target types when passing to Java methods
- expecting a primitive or boxed number. Use of various <a href="ref_builtins_expert.html">expert built-ins</a> to
- manually coerce the types becomes mostly unnecessary.</p>
- </li>
-
- <li>
- <p>Fixed a bug where <code class="inline-code">BeansWrapper</code> would
- pass a <code class="inline-code">java.util.Collection</code> to a method
- expecting a <code class="inline-code">java.util.Set</code> in certain rare
- cases. <a href="pgui_misc_beanwrapper.html#beanswrapper_hash">More
- info...</a></p>
- </li>
-
- <li>
- <p>Support for JDK 1.5 enums in
- <code class="inline-code">BeansWrapper</code> and
- <code class="inline-code">DefaultObjectWrapper</code>. By calling the
- <code class="inline-code">getEnumModels()</code> method, you can retrieve a
- hash model that is keyed by class names and allows access to
- enumerated values. I.e. if you bind this hash model under name
- <code class="inline-code">enums</code> in the data-model, you can write
- expressions like
- <code class="inline-code">enums["java.math.RoundingMode"].UP</code> in the
- template. The enum values can be used as scalars and support
- equality and inequality comparisons. <a href="pgui_misc_beanwrapper.html#jdk_15_enums">More info...</a></p>
- </li>
-
- <li>
- <p><code class="inline-code">freemarker.ext.rhino.RhinoWrapper</code> now
- correctly translates Rhino <code class="inline-code">Undefined</code>
- instance, <code class="inline-code">UniqueTag.NOT_FOUND</code>, and
- <code class="inline-code">UniqueTag.NULL</code> to FreeMarker undefined
- value.</p>
- </li>
- </ul>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_3_10.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_8.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/xgui.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/xgui.html b/builds/2.3.26-nightly/xgui.html
deleted file mode 100644
index bac7641..0000000
--- a/builds/2.3.26-nightly/xgui.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<!doctype html>
-<!-- Generated by FreeMarker/Docgen from DocBook -->
-<html lang="en" class="page-type-part">
-<head prefix="og: http://ogp.me/ns#">
-<meta charset="utf-8">
-<title>XML Processing Guide - 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="XML Processing Guide">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/xgui.html">
-<link rel="canonical" href="http://freemarker.org/docs/xgui.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="xgui.html"><span itemprop="name">XML Processing Guide</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","XML Processing Guide"];</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="ref_depr_numerical_interpolation.html"><span>Previous</span></a><a class="paging-arrow next" href="xgui_preface.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-part" id="xgui" itemprop="headline">XML Processing Guide</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Section Contents</div>
-<ul><li><a class="page-menu-link" href="xgui_preface.html" data-menu-target="xgui_preface">Preface</a></li><li><a class="page-menu-link" href="xgui_expose.html" data-menu-target="xgui_expose">Exposing XML documents</a><ul><li><a class="page-menu-link" href="xgui_expose_dom.html" data-menu-target="xgui_expose_dom">The DOM tree</a></li><li><a class="page-menu-link" href="xgui_expose_put.html" data-menu-target="xgui_expose_put">Putting the XML into the data-model</a></li></ul></li><li><a class="page-menu-link" href="xgui_imperative.html" data-menu-target="xgui_imperative">Imperative XML processing</a><ul><li><a class="page-menu-link" href="xgui_imperative_learn.html" data-menu-target="xgui_imperative_learn">Basics</a></li><li><a class="page-menu-link" href="xgui_imperative_formal.html" data-menu-target="xgui_imperative_formal">Details</a></li></ul></li><li><a class="page-menu-link" href="xgui_declarative.html" data-menu-target="xgui_declarative">Declarative XML processing</a><ul><li><a
class="page-menu-link" href="xgui_declarative_basics.html" data-menu-target="xgui_declarative_basics">Basics</a></li><li><a class="page-menu-link" href="xgui_declarative_details.html" data-menu-target="xgui_declarative_details">Details</a></li></ul></li></ul> </div><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_depr_numerical_interpolation.html"><span>Previous</span></a><a class="paging-arrow next" href="xgui_preface.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/xgui_declarative.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/xgui_declarative.html b/builds/2.3.26-nightly/xgui_declarative.html
deleted file mode 100644
index 4d64622..0000000
--- a/builds/2.3.26-nightly/xgui_declarative.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<!doctype html>
-<!-- Generated by FreeMarker/Docgen from DocBook -->
-<html lang="en" class="page-type-chapter">
-<head prefix="og: http://ogp.me/ns#">
-<meta charset="utf-8">
-<title>Declarative XML processing - 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="Declarative XML processing">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/xgui_declarative.html">
-<link rel="canonical" href="http://freemarker.org/docs/xgui_declarative.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="xgui.html"><span itemprop="name">XML Processing Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="xgui_declarative.html"><span itemprop="name">Declarative XML processing</span></a></li></ul><div cla
ss="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","XML Processing Guide","Declarative XML processing"];</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="xgui_imperative_formal.html"><span>Previous</span></a><a class="paging-arrow next" href="xgui_declarative_basics.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-chapter" id="xgui_declarative" itemprop="headline">Declarative XML processing</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Section Contents</div>
-<ul><li><a class="page-menu-link" href="xgui_declarative_basics.html" data-menu-target="xgui_declarative_basics">Basics</a></li><li><a class="page-menu-link" href="xgui_declarative_details.html" data-menu-target="xgui_declarative_details">Details</a></li></ul> </div><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="xgui_imperative_formal.html"><span>Previous</span></a><a class="paging-arrow next" href="xgui_declarative_basics.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>\u20132017
-<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>
[28/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/ref_builtins_expert.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_builtins_expert.html b/builds/2.3.26-nightly/ref_builtins_expert.html
deleted file mode 100644
index b722d1a..0000000
--- a/builds/2.3.26-nightly/ref_builtins_expert.html
+++ /dev/null
@@ -1,762 +0,0 @@
-<!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>Seldom used and expert built-ins - 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="Seldom used and expert built-ins">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_builtins_expert.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_builtins_expert.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_builtins.html"><span itemprop="name">Built-in Reference</span></a></li><li class="step-3"
itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_builtins_expert.html"><span itemprop="name">Seldom used and expert built-ins</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","Template Language Reference","Built-in Reference","Seldom used and expert built-ins"];</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="ref_builtins_type_independent.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directives.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="ref_builtins_expert" itemprop="headline">Seldom used and expert built-ins</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#ref_buitin_api_and_has_api" data-menu-target="ref_buitin_api_and_has_api">api, has_api</a></li><li><a class="page-menu-link" href="#ref_builtin_numType" data-menu-target="ref_builtin_numType">byte, double, float, int, long, short</a></li><li><a class="page-menu-link" href="#ref_builtin_eval" data-menu-target="ref_builtin_eval">eval</a></li><li><a class="page-menu-link" href="#ref_builtin_has_content" data-menu-target="ref_builtin_has_content">has_content</a></li><li><a class="page-menu-link" href="#ref_builtin_interpret" data-menu-target="ref_builtin_interpret">interpret</a></li><li><a class="page-menu-link" href="#ref_builtin_isType" data-menu-target="ref_builtin_isType">is_...</a></li><li><a class="page-menu-link" href="#ref_builtin_markup_string" data-menu-target="ref_builtin_markup_string">markup_string</a></li><li><a class="page-menu-link" href="#ref_builtin_namespace" data-menu-target="ref_builtin_namespace">namespace</a></li><li><a cla
ss="page-menu-link" href="#ref_builtin_new" data-menu-target="ref_builtin_new">new</a></li><li><a class="page-menu-link" href="#ref_builtin_numToDate" data-menu-target="ref_builtin_numToDate">number_to_date, number_to_time, number_to_datetime</a></li></ul> </div><p>These are the built-ins that normally you should not use, but in
- exceptional situations (debugging, advanced macros) they can be
- useful. If you need to use these in your normal page templates, you
- may revisit the data-model so you don't need to use these.</p>
-
-
-
-
-<h2 class="content-header header-section2" id="ref_buitin_api_and_has_api">api, has_api</h2>
-
-
-
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>These built-ins exists since FreeMarker 2.3.22</p>
- </div>
-
-
- <p><code class="inline-code"><em class="code-color">value</em>?api</code>
- provides access to the API (usually, the Java API) of
- <code class="inline-code"><em class="code-color">value</em></code>, like
- <code class="inline-code"><em class="code-color">value</em>?api.<em class="code-color">someJavaMethod()</em></code>
- or
- <code class="inline-code"><em class="code-color">value</em>?api.<em class="code-color">someBeanProperty</em></code>,
- if the value itself supports exposing its API. This meant to be used
- rarely, when you need to call a Java method of an object, but the
- by-design simplistic view of the value that FreeMarker exposes to
- the templates hides that, and there's no equivalent built-in either.
- For example, when you put a <code class="inline-code">Map</code> into the
- data-model (and you are using the default object wrapper),
- <code class="inline-code">myMap.myMethod()</code> in a template basically
- translates to <code class="inline-code">((Method)
- myMap.get("myMethod")).invoke(...)</code> in Java, thus you can't
- call <code class="inline-code">myMethod</code>. If, however, you write
- <code class="inline-code">myMap?api.myMethod()</code> instead, that means
- <code class="inline-code">myMap.myMethod()</code> in Java. Similarly,
- <code class="inline-code">myMap?api.myProperty</code> translates to
- <code class="inline-code">myMap.getMyProperty()</code> in Java, instead of to
- <code class="inline-code">myMap.get("myProperty")</code>.</p>
-
- <p><em>You should avoid using <code class="inline-code">api</code>, and
- rely on the capabilities of the FTL types and the related built-ins
- as far as possible.</em> For example, don't use
- <code class="inline-code">users?api.size()</code>, but
- <code class="inline-code">users?size</code>. The variation that uses
- <code class="inline-code">?api</code> is more verbose, slower, more easily breaks
- when FreeMarker configuration settings are changed, and most
- importantly, more prone to break as the technical details of the
- data-model change. For example, if <code class="inline-code">users</code> is
- changed from a <code class="inline-code">List</code> to an array,
- <code class="inline-code">users?size</code> will keep working, while
- <code class="inline-code">users?api.size()</code> will break.</p>
-
- <p>Avoid calling methods that <em>modify</em> an
- object (especially <code class="inline-code">Map</code>-s and
- <code class="inline-code">Collection</code>-s) or that aren't thread safe from
- other reasons. Templates usually aren't expected to modify the
- objects exposed to them, just to display them. Thus the application
- may passes some objects to multiple (possibly concurrent) template
- processings.</p>
-
- <p>The <code class="inline-code">api</code> built-in is not everywhere
- available, some requirements has to be met:</p>
-
- <ul>
- <li>
- <p>The <code class="inline-code">api_builtin_enabled</code> configuration
- setting must be set to <code class="inline-code">true</code>. Its default is
- <code class="inline-code">false</code> (at least as of 2.3.22) for not
- lowering the security of existing applications.</p>
- </li>
-
- <li>
- <p>The value itself has to support it. We are talking about
- the value as the template sees it, which is created from the
- original object (that's coming from the data-model or from a
- Java method return value) value via <a href="pgui_datamodel_objectWrapper.html">object wrapping</a>.
- Hence, this depends on the <code class="inline-code">object_wrapper</code>
- FreeMarker configuration setting, and on the class of the
- wrapped (the original) object:</p>
-
- <ul>
- <li>
- <p>When the object wrapper is a
- <code class="inline-code">DefaultObjectWrapper</code> with its
- <code class="inline-code">incompatibleImprovements</code> set to 2.3.22 or
- higher (<a href="pgui_datamodel_objectWrapper.html#topic.defaultObjectWrapperIcI">see
- how to set it here</a>), FTL values made from
- <code class="inline-code">Map</code>-s and <code class="inline-code">List</code>-s
- support <code class="inline-code">?api</code>. (Actually, what matters is
- that its <code class="inline-code">useAdaptersForContainer</code> property
- is set to <code class="inline-code">true</code>, but that's the default
- with said <code class="inline-code">incompatibleImprovements</code>.)
- Other <code class="inline-code">java.util.Collections</code> (such as
- <code class="inline-code">Set</code>-s) only support
- <code class="inline-code">?api</code> if
- <code class="inline-code">DefaultObjectWrapper</code>'s
- <code class="inline-code">forceLegacyNonListCollections</code> property is
- set to <code class="inline-code">false</code> (the default is
- <code class="inline-code">true</code> for better out-of-the-box backward
- compatibility).</p>
- </li>
-
- <li>
- <p>When wrapped with pure
- <code class="inline-code">BeansWrapper</code>, all values support
- <code class="inline-code">?api</code>.</p>
- </li>
-
- <li>
- <p>Custom <code class="inline-code">TemplateModel</code>-s can support
- <code class="inline-code">?api</code> by implementing the
- <code class="inline-code">freemarker.template.TemplateModelWithAPISupport</code>
- interface.</p>
- </li>
- </ul>
- </li>
- </ul>
-
- <p>Using <code class="inline-code">?api</code> when it's not allowed in the
- configuration or when the value doesn't support it will abort
- template processing with error.</p>
-
- <p>Whether a value supports <code class="inline-code">?api</code> can be
- checked like
- <code class="inline-code"><em class="code-color">value</em>?has_api</code>, which
- returns a boolean value. Note that the result of
- <code class="inline-code">?has_api</code> isn't influenced by the
- <code class="inline-code">api_builtin_enabled</code> setting.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_numType">byte, double, float, int, long, short</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <p>Returns a <code class="inline-code">SimpleNumber</code> which contains the
- same value as the original variable, but uses
- <code class="inline-code">java.lang.<em class="code-color">Type</em></code> for the
- internal representation of the value. This is useful if a method is
- overloaded, or if a <code class="inline-code">TemplateModel</code> unwrapper has
- problem with automatically choosing the suitable
- <code class="inline-code">java.lang.*</code> type. Note that since version 2.3.9
- the unwrapper has been improved substantially, so you will hardly
- ever need to use these built-ins to convert between numerical types,
- except for resolving ambiguity in overloaded method
- invocation.</p>
-
- <p>The <code class="inline-code">long</code> built-in can also be used with
- date, time and date-time values to get the value as
- <code class="inline-code">java.util.Date.getTime()</code> would return. This is
- useful if you have to call a Java methods that expect a timestamp as
- a <code class="inline-code">long</code>.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_eval">eval</h2>
-
-
-
-
-
-
- <p>This built-in evaluates a string as an FTL expression. For
- example <code class="inline-code">"1+2"?eval</code> returns number 3.</p>
-
- <p>The evaluated expression sees the same variables (such as
- locals) that are visible at the place of the invocation of
- <code class="inline-code">eval</code>. That is, it behaves similarly as if in
- place of <code class="inline-code"><em class="code-color">s</em>?eval</code> you
- had the <em>value of</em>
- <code class="inline-code"><em class="code-color">s</em></code> there. Except, it
- can't use <a href="ref_builtins_loop_var.html">loop variable
- built-ins</a> that refer to a loop variable that was created
- outside <code class="inline-code"><em class="code-color">s</em></code>.</p>
-
- <p>Regarding the configuration settings that affect the parsing
- (like syntax) and evaluation the rules are the same as with the
- <a href="#ref_builtin_interpret"><code>interpret</code>
- built-in</a>.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_has_content">has_content</h2>
-
-
-
-
- <p>It is <code class="inline-code">true</code> if the variable exists (and
- isn't Java <code class="inline-code">null</code>) and is not "empty",
- otherwise it is <code class="inline-code">false</code>. The meaning of
- "empty" depends on the concrete case. This follows
- intuitive common-sense ideas. The following are empty: a string with
- 0 length, a <a href="dgui_misc_autoescaping.html#dgui_misc_autoescaping_movalues">markup
- output value</a> with 0 length markup, a sequence or hash with no
- sub variables, a collection which has passed the last element. If
- the value is not of any of these types, then it counts as non-empty
- if it's a number or a date or a boolean (e.g. <code class="inline-code">0</code>
- and <code class="inline-code">false</code> are not empty), otherwise it counts as
- empty. Note that when your data-model implements multiple template
- model interfaces you may get unexpected results. However, when in
- doubt you can use always use <code class="inline-code">expr!?size > 0</code> or
- <code class="inline-code">expr!?length > 0</code> instead of
- <code class="inline-code">expr?has_content</code>.</p>
-
- <p>This buit-in is exceptional in that you can use the
- parentheses trick like with the <a href="dgui_template_exp.html#dgui_template_exp_missing_default">default value
- operator</a>. That is, you can write both
- <code class="inline-code">product.color?has_content</code> and
- <code class="inline-code">(product.color)?has_content</code>. The first doesn't
- handle the case when <code class="inline-code">product</code> is missing, the last
- does.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_interpret">interpret</h2>
-
-
-
-
- <p>This built-in parses a string as an FTL template, and returns
- an user-defined directive that executes that template, just as if a
- template with that content were <a href="ref_directive_include.html"><code>include</code>-d</a>
- at that point. Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign x=["a", "b", "c"]>
-<#assign templateSource = r"<#list x as y>${y}</#list>">
-<#-- Note: That r was needed so that the ${y} is not interpreted above -->
-<#assign inlineTemplate = templateSource?interpret>
-<@inlineTemplate /></pre></div>
-
- <p>The output:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">abc</pre></div>
-
- <p>As you can see, <code class="inline-code">inlineTemplate</code> is a
- user-defined directive that, when executed, runs the template whose
- content is the value of <code class="inline-code">templateSource</code>.</p>
-
- <p>The name of the template created by
- <code class="inline-code">interpret</code> is the name of the template that calls
- <code class="inline-code">interpret</code>, plus
- <code class="inline-code">"->anonymous_interpreted"</code>. For example, if the
- template that calls the built-in is
- <code class="inline-code">"foo/bar.ftl"</code>, then the name of the resulting
- template is
- <code class="inline-code">"foo/bar.ftl->anonymous_interpreted"</code>. Thus,
- relative paths inside the interpreted template are relative to this
- path (i.e., the base directory will be <code class="inline-code">"foo"</code>),
- and errors inside the interpreted template will point to this
- generated template name.</p>
-
- <p>For more helpful error messages, you can override the template
- name part after the <code class="inline-code">"->"</code>. For example, let's
- say <code class="inline-code">mailTemplateSource</code> comes from the
- <code class="inline-code">mail_template</code> database table, and in the case of
- error, you want the error log to contain the database ID of the
- failing template:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign inlineTemplate = [mailTemplateSource, "mail_templates id=${mailTemplateId}"]?interpret></pre></div>
-
- <p>As you can see, <code class="inline-code">interpret</code> can be applied on
- a sequence of two items, in which case the first item is the FTL
- string to interpret, and the second items is the template name used
- after the <code class="inline-code">"->"</code>.</p>
-
- <p>The configuration settings that affect the interpreted
- template are the same as of the surrounding template, except that
- parser settings specified in the <a href="ref_directive_ftl.html#ref.directive.ftl"><code>ftl</code> directive</a>
- or was established via tag syntax or naming convention
- auto-detection are instead coming from the
- <code class="inline-code">Configuration</code> object (or naturally, from the
- <a href="pgui_config_templateconfigurations.html"><code>TemplateConfiguration</code></a>,
- if there's any). Thus the tag syntax, naming convention, whitespace
- handling, etc. of the interpreted template is independent of that
- established <em>inside</em> the surrounding template. An
- important exception from this rule is that the <a href="dgui_misc_autoescaping.html#dgui_misc_autoescaping_outputformat">output format</a>
- and auto-escaping policy is inherited from the lexical context where
- <code class="inline-code">interpret</code> is called from. For example in a
- template that has <code class="inline-code"><#ftl
- output_format="XML"></code> header (or if you are inside a
- <code class="inline-code"><#output_format
- "XML"><em class="code-color">...</em></#output_format></code>
- block), <code class="inline-code">interpret</code> calls in it will produce
- directives with XML output format.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_isType">is_...</h2>
-
-
-
-
-
-
- <p>These built-ins check the type of a variable, and returns
- <code class="inline-code">true</code> or <code class="inline-code">false</code> depending on the
- type. The list of
- <code class="inline-code">is_<em class="code-color">...</em></code>
- built-ins:</p>
-
- <div class="table-responsive">
- <table class="table">
-
- <thead>
- <tr>
- <th>Built-in</th>
-
-
- <th>Returns <code class="inline-code">true</code> if the value is a ...</th>
-
- </tr>
-
- </thead>
-
-
- <tbody>
- <tr>
- <td><code class="inline-code">is_string</code></td>
-
-
- <td>string</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">is_number</code></td>
-
-
- <td>number</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">is_boolean</code></td>
-
-
- <td>boolean</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">is_date</code></td>
-
-
- <td>Don't use it! Same as <code class="inline-code">is_date_like</code>, use
- that instead. Later may changes meaning to
- <code class="inline-code">date_only</code>.</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">is_date_like</code></td>
-
-
- <td>date-like, means either date, time or date-time, or
- date-like with unknown precise type (since FreeMarker
- 2.3.21)</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">is_date_only</code></td>
-
-
- <td>date (no time of the day part) (since FreeMarker
- 2.3.21)</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">is_time</code></td>
-
-
- <td>time (no year-month-day part) (since FreeMarker
- 2.3.21)</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">is_datetime</code></td>
-
-
- <td>date-time (contains both year-month-day and time of the
- day)</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">is_unknown_date_like</code></td>
-
-
- <td>date-like where we don't know if it's a date or a time or
- a date-time</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">is_method</code></td>
-
-
- <td>method</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">is_transform</code></td>
-
-
- <td>transform</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">is_macro</code></td>
-
-
- <td>macro or function (yes, also for function; a historical
- glitch)</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">is_hash</code></td>
-
-
- <td>hash (including extended hash)</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">is_hash_ex</code></td>
-
-
- <td>extended hash (supports <code class="inline-code">?keys</code> and
- <code class="inline-code">?values</code>)</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">is_sequence</code></td>
-
-
- <td>sequence (Historical quirk: Before <a href="pgui_config_incompatible_improvements.html#pgui_config_incompatible_improvements_how_to_set"><code>incompatible_improvements</code></a>
- 2.3.24 it returns <code class="inline-code">true</code> for Java methods as
- they implement the
- <code class="inline-code">[<em class="code-color">index</em>]</code>
- operator, however, they fail on
- <code class="inline-code">?size</code>.)</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">is_collection</code></td>
-
-
- <td>collection (including extended collection)</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">is_collection_ex</code></td>
-
-
- <td>extended collection (supports
- <code class="inline-code">?size</code>)</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">is_enumerable</code></td>
-
-
- <td>sequence or collection</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">is_indexable</code></td>
-
-
- <td>sequence (Historical quirk: it returns
- <code class="inline-code">true</code> for Java methods as they implement the
- <code class="inline-code">[<em class="code-color">index</em>]</code>
- operator.)</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">is_directive</code></td>
-
-
- <td>Whatever kind of directive (for example a macro, <span class="marked-for-programmers">or
- <code class="inline-code">TemplateDirectiveModel</code>,
- <code class="inline-code">TemplateTransformModel</code>, etc.</span>), or
- function (a historical glitch)</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">is_node</code></td>
-
-
- <td>node</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">is_markup_output</code></td>
-
-
- <td>markup output (a value that won't be <a href="dgui_misc_autoescaping.html">auto-escaped</a>)</td>
-
- </tr>
-
- </tbody>
-
- </table>
- </div>
-
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_markup_string">markup_string</h2>
-
-
- <p></p>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in is available since FreeMarker 2.3.24.</p>
- </div>
-
-
- <p>Returns the markup stored inside a <a href="dgui_misc_autoescaping.html#dgui_misc_autoescaping_movalues">markup output value</a>
- as string. This is useful if the value has to be passed to a Java
- method for a <code class="inline-code">String</code> parameter, or if we want to
- manipulate the markup directly in the template. Note that the
- resulting string can be converted back to markup output value with
- <a href="ref_builtins_string.html#ref_builtin_no_esc"><code>?no_esc</code></a>.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_namespace">namespace</h2>
-
-
-
-
- <p>This built-in returns the namespace (i.e. the
- "gate" hash to the namespace) associated with a macro
- or function variable. You can use it with macros and functions
- only.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_new">new</h2>
-
-
-
-
-
-
- <p>This is to create a variable of a certain
- <code class="inline-code">TemplateModel</code> implementation.</p>
-
- <p>On the left side of <code class="inline-code">?</code> you specify a string,
- the full-qualified class name of a <code class="inline-code">TemplateModel</code>
- implementation. The result is a method variable that calls the
- constructor, and returns the new variable.</p>
-
- <p>Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#-- Creates an user-defined directive be calling the parameterless constructor of the class -->
-<#assign word_wrapp = "com.acmee.freemarker.WordWrapperDirective"?new()>
-<#-- Creates an user-defined directive be calling the constructor with one numerical argument -->
-<#assign word_wrapp_narrow = "com.acmee.freemarker.WordWrapperDirective"?new(40)></pre></div>
-
- <p>For more information about how the constructor parameters are
- unwrapped and how overloaded constructor is chosen, read: <a href="pgui_misc_beanwrapper.html">Programmer's Guide/Miscellaneous/Bean wrapper</a></p>
-
- <p>This built-in can be a security concern because the template
- author can create arbitrary Java objects and then use them, as far
- as they implement <code class="inline-code">TemplateModel</code>. Also the
- template author can trigger static initialization for classes that
- don't even implement <code class="inline-code">TemplateModel</code>. You can
- (since 2.3.17) restrict the classes accessible with this built-in
- using
- <code class="inline-code">Configuration.setNewBuiltinClassResolver(TemplateClassResolver)</code>
- or the <code class="inline-code">new_builtin_class_resolver</code> setting. See
- the Java API docs for more information. If you are allowing
- not-so-much-trusted users to upload templates then you should
- definitely look into this topic.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_numToDate">number_to_date, number_to_time, number_to_datetime</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <p>These are used to convert a number (usually a Java
- <code class="inline-code">long</code>) to a date, time or date-time, respectively.
- This does them same as <code class="inline-code">new java.util.Date(long)</code>
- in Java, that is, the number is interpreted as the milliseconds
- passed since the epoch. The number can be anything and of any type
- as far as its value fits into a <code class="inline-code">long</code>. If the
- number isn't a whole number, it will be rounded to whole with
- half-up rule.</p>
-
- <p>Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${1305575275540?number_to_datetime}
-${1305575275540?number_to_date}
-${1305575275540?number_to_time}</pre></div>
-
- <p>The output will be something like this (depending on the
- current locale and time zone):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">May 16, 2011 3:47:55 PM
-May 16, 2011
-3:47:55 PM</pre></div>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_builtins_type_independent.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directives.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/ref_builtins_hash.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_builtins_hash.html b/builds/2.3.26-nightly/ref_builtins_hash.html
deleted file mode 100644
index 07e1ad3..0000000
--- a/builds/2.3.26-nightly/ref_builtins_hash.html
+++ /dev/null
@@ -1,142 +0,0 @@
-<!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>Built-ins for hashes - 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="Built-ins for hashes">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_builtins_hash.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_builtins_hash.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_builtins.html"><span itemprop="name">Built-in Reference</span></a></li><li class="step-3"
itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_builtins_hash.html"><span itemprop="name">Built-ins for hashes</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","Template Language Reference","Built-in Reference","Built-ins for hashes"];</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="ref_builtins_sequence.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_builtins_node.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="ref_builtins_hash" itemprop="headline">Built-ins for hashes</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#ref_builtin_keys" data-menu-target="ref_builtin_keys">keys</a></li><li><a class="page-menu-link" href="#ref_builtin_values" data-menu-target="ref_builtin_values">values</a></li></ul> </div>
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_keys">keys</h2>
-
-
-
-
- <p>A sequence that contains all the lookup keys in the
- hash.</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign myHash = { "name": "mouse", "price": 50 }>
-<#list myHash?keys as k>
- ${k}
-</#list></pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> name
- price</pre></div>
-
- <p>Note that not all hashes support this (ask the programmer if a
- certain hash allows this or not).</p>
-
- <p>Since hashes do not define an order for their sub variables in
- general, the order in which key names are returned can be arbitrary.
- However, some hashes maintain a meaningful order (ask the programmer
- if a certain hash does that or not). For example, hashes created
- with the above <code class="inline-code">{<em class="code-color">...</em>}</code>
- syntax preserve the same order as you have specified the sub
- variables.</p>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>To list both the keys and the values, you can use
- <code class="inline-code"><#list attrs as key,
- value>...<#list></code>; see the <a href="ref_directive_list.html#ref.directive.list"><code>list</code>
- directive</a>.</p>
- </div>
-
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_values">values</h2>
-
-
-
-
- <p>A sequence that contains all the variables (the values in the
- key-value pairs) in the hash.</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign myHash = { "name": "mouse", "price": 50 }>
-<#list myHash?values as v>
- ${v}
-</#list></pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> mouse
- 50</pre></div>
-
- <p>Note that not all hashes support this (ask the programmer if a
- certain hash allows this or not).</p>
-
- <p>As of the order in which the values are returned, the same
- applies as with the <code class="inline-code">keys</code> built-in; see there.
- Furthermore, it's not guaranteed that the order of the values
- corresponds to the order of the keys returned by the
- <code class="inline-code">keys</code> build-in.</p>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>To list both the keys and the values, you can use
- <code class="inline-code"><#list attrs as key,
- value>...<#list></code>; see the <a href="ref_directive_list.html#ref.directive.list"><code>list</code>
- directive</a>.</p>
- </div>
-
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_builtins_sequence.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_builtins_node.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/ref_builtins_loop_var.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_builtins_loop_var.html b/builds/2.3.26-nightly/ref_builtins_loop_var.html
deleted file mode 100644
index 6511bf8..0000000
--- a/builds/2.3.26-nightly/ref_builtins_loop_var.html
+++ /dev/null
@@ -1,526 +0,0 @@
-<!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>Loop variable built-ins - 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="Loop variable built-ins">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_builtins_loop_var.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_builtins_loop_var.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_builtins.html"><span itemprop="name">Built-in Reference</span></a></li><li class="step-3"
itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_builtins_loop_var.html"><span itemprop="name">Loop variable built-ins</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","Template Language Reference","Built-in Reference","Loop variable built-ins"];</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="ref_builtins_node.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_builtins_type_independent.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="ref_builtins_loop_var" itemprop="headline">Loop variable built-ins</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#ref_builtin_counter" data-menu-target="ref_builtin_counter">counter</a></li><li><a class="page-menu-link" href="#ref_builtin_has_next" data-menu-target="ref_builtin_has_next">has_next</a></li><li><a class="page-menu-link" href="#ref_builtin_index" data-menu-target="ref_builtin_index">index</a></li><li><a class="page-menu-link" href="#ref_builtin_is_even_item" data-menu-target="ref_builtin_is_even_item">is_even_item</a></li><li><a class="page-menu-link" href="#ref_builtin_is_first" data-menu-target="ref_builtin_is_first">is_first</a></li><li><a class="page-menu-link" href="#ref_builtin_is_last" data-menu-target="ref_builtin_is_last">is_last</a></li><li><a class="page-menu-link" href="#ref_builtin_is_odd_item" data-menu-target="ref_builtin_is_odd_item">is_odd_item</a></li><li><a class="page-menu-link" href="#ref_builtin_item_cycle" data-menu-target="ref_builtin_item_cycle">item_cycle</a></li><li><a class="page-menu-link" href="#ref_builtin_item
_parity" data-menu-target="ref_builtin_item_parity">item_parity</a></li><li><a class="page-menu-link" href="#ref_builtin_item_parity_cap" data-menu-target="ref_builtin_item_parity_cap">item_parity_cap</a></li></ul> </div> <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>Loop variable built-ins only exists since FreeMarker
- 2.3.23.</p>
- </div>
-<p>These built-ins you can only use with the loop variable of the
- <a href="ref_directive_list.html"><code>list</code> and
- <code>items</code> directives</a> (and of the deprecated
- <code class="inline-code">foreach</code> directive). Some explanation of that
- follows (<code class="inline-code"><em class="code-color">loopVar</em>?index</code>
- returns the 0-based index in the listable value we iterate
- through):</p>
-
-<div class="code-wrapper"><pre class="code-block code-template"><#-- Note: x is a loop variable -->
-<#list ['a', 'b', 'c'] as x>
- ${x?index}
-</#list></pre></div>
-
-<div class="code-wrapper"><pre class="code-block code-output">0
-1
-2</pre></div><p>When the <code class="inline-code">list</code> directive doesn't specify the
- loop variable, these built-ins are used with the loop variable of the
- <code class="inline-code">items</code> directive:</p>
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list ['a', 'b', 'c']>
- <ul>
- <#items as x>
- <li>${x?index}</li>
- </#items>
- </ul>
-</#list></pre></div><p>Loop variable built-ins only use the <em>name</em>
- of loop variable, so that they can identify the related ongoing
- iteration. They don't read the <em>value</em> of the loop
- variable. Hence, this is a parsing error:</p>
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list ['a', 'b', 'c'] as x>
- <#assign y = x>
- ${y?index} <#-- ERROR: y isn't a loop variable -->
-</#list></pre></div>
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_counter">counter</h2>
-
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in is available since FreeMarker 2.3.23.</p>
- </div>
-
-
- <p>Returns the 1-based index where the iteration (which is
- identified by the loop variable name) currently stands.</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list ['a', 'b', 'c'] as i>
- ${i?counter}: ${i}
-</#list></pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> 1: a
- 2: b
- 3: c</pre></div>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>For the 0-based index, use the <a href="#ref_builtin_index"><code>index</code>
- built-in</a>.</p>
- </div>
-
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_has_next">has_next</h2>
-
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in is available since FreeMarker 2.3.23.</p>
- </div>
-
-
- <p>Tells if the item where the iteration (which is identified by
- the loop variable name) currently stands is not the last
- item.</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list ['a', 'b', 'c'] as i>${i?has_next?c} </#list></pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">true true false </pre></div>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>For separating items with commas and such, use
- <code class="inline-code"><#sep><em class="code-color">separator</em></#sep></code>
- instead of <code class="inline-code"><#if
- <em class="code-color">var</em>?has_next><em class="code-color">separator</em></#if></code>,
- as it's more readable. (Furthermore the
- <code class="inline-code"></#sep></code> can be often omitted, like in
- <code class="inline-code"><#list <em class="code-color">...</em> as
- <em class="code-color">var</em>><em class="code-color">...</em>${<em class="code-color">var</em>}<em class="code-color">...</em><#sep><em class="code-color">separator</em></#list></code>)</p>
- </div>
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>If you need the inverse of this built-in, use
- <code class="inline-code"><em class="code-color">var</em>?is_last</code> instead
- of <code class="inline-code">!<em class="code-color">var</em>?has_next</code>,
- because it's more readable.</p>
- </div>
-
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_index">index</h2>
-
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in is available since FreeMarker 2.3.23.</p>
- </div>
-
-
- <p>Returns the 0-based index where the iteration (which is
- identified by the loop variable name) currently stands.</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list ['a', 'b', 'c'] as i>
- ${i?index}: ${i}
-</#list></pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> 0: a
- 1: b
- 2: c</pre></div>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>For the 1-based index, use the <a href="#ref_builtin_counter"><code>counter</code>
- built-in</a>.</p>
- </div>
-
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_is_even_item">is_even_item</h2>
-
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in is available since FreeMarker 2.3.23.</p>
- </div>
-
-
- <p>Tells if the item where the iteration (which is identified by
- the loop variable name) currently stands has an even 1-based
- index.</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list ['a', 'b', 'c', 'd'] as i>${i?is_even_item?c} </#list></pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">false true false true</pre></div>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>To make tables with alternating row colors and such, use
- <a href="#ref_builtin_item_parity"><code><em>var</em>?item_parity</code></a>
- or <a href="#ref_builtin_item_cycle"><code><em>var</em>?item_cycle(...)</code></a>
- instead.</p>
- </div>
-
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_is_first">is_first</h2>
-
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in is available since FreeMarker 2.3.23.</p>
- </div>
-
-
- <p>Tells if the item where the iteration (which is identified by
- the loop variable name) currently stands is the first item.</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list ['a', 'b', 'c'] as i>${i?is_first?c} </#list></pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">true false false </pre></div>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_is_last">is_last</h2>
-
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in is available since FreeMarker 2.3.23.</p>
- </div>
-
-
- <p>Tells if the item where the iteration (which is identified by
- the loop variable name) currently stands is the last item.</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list ['a', 'b', 'c'] as i>${i?is_last?c} </#list></pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">false false true</pre></div>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>If you need the inverse of this built-in, use
- <code class="inline-code"><em class="code-color">var</em>?has_next</code> instead
- of <code class="inline-code">!<em class="code-color">var</em>?is_last</code>,
- because it's more readable.</p>
- </div>
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>For separating items with commas and such, use
- <code class="inline-code"><#sep><em class="code-color">separator</em></#sep></code>
- instead of <code class="inline-code"><#if
- <em class="code-color">var</em>?has_next><em class="code-color">separator</em></#if></code>,
- as it's more readable. (Furthermore the
- <code class="inline-code"></#sep></code> can be often omitted, like in
- <code class="inline-code"><#list <em class="code-color">...</em> as
- <em class="code-color">var</em>><em class="code-color">...</em>${<em class="code-color">var</em>}<em class="code-color">...</em><#sep><em class="code-color">separator</em></#list></code>)</p>
- </div>
-
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_is_odd_item">is_odd_item</h2>
-
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in is available since FreeMarker 2.3.23.</p>
- </div>
-
-
- <p>Tells if the item where the iteration (which is identified by
- the loop variable name) currently stands has an odd 1-based
- index.</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list ['a', 'b', 'c', 'd'] as i>${i?is_odd_item?c} </#list></pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">true false true false </pre></div>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>To make tables with alternating row colors and such, use
- <a href="#ref_builtin_item_parity"><code><em>var</em>?item_parity</code></a>
- or <a href="#ref_builtin_item_cycle"><code><em>var</em>?item_cycle(...)</code></a>
- instead.</p>
- </div>
-
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_item_cycle">item_cycle</h2>
-
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in is available since FreeMarker 2.3.23.</p>
- </div>
-
-
- <p>This is a more generic version of the <a href="#ref_builtin_item_parity"><code>item_parity</code>
- built-in</a>, where you can specify what value to use instead of
- <code class="inline-code">"odd"</code> and <code class="inline-code">"even"</code>. It also
- allows more than 2 values that it will cycle through.</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list ['a', 'b', 'c', 'd', 'e', 'f', 'g'] as i>
- <tr class="${i?item_cycle('row1', 'row2', 'row3')}">${i}</tr>
-</#list></pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> <tr class="row1">a</tr>
- <tr class="row2">b</tr>
- <tr class="row3">c</tr>
- <tr class="row1">d</tr>
- <tr class="row2">e</tr>
- <tr class="row3">f</tr>
- <tr class="row1">g</tr></pre></div>
-
- <p>Some details:</p>
-
- <ul>
- <li>
- <p>The number of arguments must be at least 1, and has no
- upper limit.</p>
- </li>
-
- <li>
- <p>The type of the arguments can be anything, they doesn't
- have to be strings.</p>
- </li>
- </ul>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>Use the <a href="#ref_builtin_item_parity"><code>item_parity</code>
- built-in</a> instead if the values you need are
- <code class="inline-code">"odd"</code> and <code class="inline-code">"even"</code>.</p>
- </div>
-
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_item_parity">item_parity</h2>
-
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in is available since FreeMarker 2.3.23.</p>
- </div>
-
-
- <p>Returns <code class="inline-code">"odd"</code> or <code class="inline-code">"even"</code>
- string value, depending on the parity of the 1-based index where the
- iteration (which is identified by the loop variable name) currently
- stands. This is commonly used for alternating color for table
- rows:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list ['a', 'b', 'c', 'd'] as i>
- <tr class="${i?item_parity}Row">${i}</tr>
-</#list></pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> <tr class="oddRow">a</tr>
- <tr class="evenRow">b</tr>
- <tr class="oddRow">c</tr>
- <tr class="evenRow">d</tr></pre></div>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>Use the <a href="#ref_builtin_item_parity"><code>item_parity_cap</code>
- built-in</a> for capitalized <code class="inline-code">"Odd"</code> and
- <code class="inline-code">"Even"</code>. Use the <a href="#ref_builtin_item_cycle"><code>item_cycle</code>
- built-in</a> to specify custom values, or more then two
- values.</p>
- </div>
-
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_item_parity_cap">item_parity_cap</h2>
-
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in is available since FreeMarker 2.3.23.</p>
- </div>
-
-
- <p>Returns <code class="inline-code">"Odd"</code> or <code class="inline-code">"Even"</code>
- string value (note the capitalization), depending on the parity of
- the 1-based index where the iteration (which is identified by the
- loop variable name) currently stands.</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list ['a', 'b', 'c', 'd'] as i>
- <tr class="row${i?item_parity_cap}">${i}</tr>
-</#list></pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> <tr class="rowOdd">a</tr>
- <tr class="rowEven">b</tr>
- <tr class="rowOdd">c</tr>
- <tr class="rowEven">d</tr></pre></div>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>Use the <a href="#ref_builtin_item_parity"><code>item_parity</code>
- built-in</a> for lower case <code class="inline-code">"odd"</code> and
- <code class="inline-code">"even"</code>.</p>
- </div>
-
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_builtins_node.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_builtins_type_independent.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>\u20132017
-<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>
[21/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/ref_directive_local.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_directive_local.html b/builds/2.3.26-nightly/ref_directive_local.html
deleted file mode 100644
index 60fe864..0000000
--- a/builds/2.3.26-nightly/ref_directive_local.html
+++ /dev/null
@@ -1,114 +0,0 @@
-<!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>local - 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="local">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_directive_local.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_directive_local.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directives.html"><span itemprop="name">Directive Reference</span></a></li><li class="step-
3" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directive_local.html"><span itemprop="name">local</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","Template Language Reference","Directive Reference","local"];</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="ref_directive_list.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_macro.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="ref_directive_local" itemprop="headline">local</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_110" data-menu-target="autoid_110">Synopsis</a></li><li><a class="page-menu-link" href="#autoid_111" data-menu-target="autoid_111">Description</a></li></ul> </div><a name="ref.directive.local"></a>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_110">Synopsis</h2>
-
-
-
-<pre class="metaTemplate">
-<code class="inline-code"><#local <em class="code-color">name</em>=<em class="code-color">value</em>></code>
-or
-<code class="inline-code"><#local <em class="code-color">name1</em>=<em class="code-color">value1</em> <em class="code-color">name2</em>=<em class="code-color">value2</em> <em class="code-color">... nameN</em>=<em class="code-color">valueN</em>></code>
-or
-<code class="inline-code"><#local <em class="code-color">name</em>>
- <em class="code-color">capture this</em>
-</#local>
-</code>
-</pre>
-
-
- <p>Where:</p>
-
- <ul>
- <li>
- <code class="inline-code"><em class="code-color">name</em></code>: the
- name of the local object in the root. It is not an expression.
- However, it can be written as a string literal, which is useful
- if the variable name contains reserved characters, for example
- <code class="inline-code"><#local "foo-bar" = 1></code>. Note that this
- string literal does not expand interpolations (as
- <code class="inline-code">"${foo}"</code>).
- </li>
-
- <li>
- <code class="inline-code">=</code>: Assignment operator, which can also
- be one of the shorthand assignment operators
- (<code class="inline-code">++</code>, <code class="inline-code">+=</code>, etc.), just like
- with <a href="ref_directive_assign.html">the
- <code>assign</code> directive</a>,
- </li>
-
- <li>
- <code class="inline-code"><em class="code-color">value</em></code>: the
- value to store. Expression.
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_111">Description</h2>
-
-
- <p>It is similar to <a href="ref_directive_assign.html#ref.directive.assign">assign
- directive</a>, but it creates or replaces local variables. This
- only works inside macro definitions and function definitons.</p>
-
- <p>For more information about variables, read this: <a href="dgui_misc_var.html">Template Author's Guide/Miscellaneous/Defining variables in the template</a></p>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_directive_list.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_macro.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/ref_directive_macro.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_directive_macro.html b/builds/2.3.26-nightly/ref_directive_macro.html
deleted file mode 100644
index 0c5ee41..0000000
--- a/builds/2.3.26-nightly/ref_directive_macro.html
+++ /dev/null
@@ -1,450 +0,0 @@
-<!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>macro, nested, return - 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="macro, nested, return">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_directive_macro.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_directive_macro.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directives.html"><span itemprop="name">Directive Reference</span></a></li><li class="step-
3" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directive_macro.html"><span itemprop="name">macro, nested, return</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","Template Language Reference","Directive Reference","macro, nested, return"];</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="ref_directive_local.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_noautoesc.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="ref_directive_macro" itemprop="headline">macro, nested, return</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_112" data-menu-target="autoid_112">Synopsis</a></li><li><a class="page-menu-link" href="#autoid_113" data-menu-target="autoid_113">Description</a><ul><li><a class="page-menu-link" href="#autoid_114" data-menu-target="autoid_114">nested</a></li><li><a class="page-menu-link" href="#autoid_115" data-menu-target="autoid_115">return</a></li></ul></li></ul> </div><a name="ref.directive.macro"></a>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_112">Synopsis</h2>
-
-
-
-<pre class="metaTemplate">
-<code class="inline-code"><#macro <em class="code-color">name</em> <em class="code-color">param1</em> <em class="code-color">param2</em> <em class="code-color">... paramN</em>>
- <em class="code-color">...</em>
- <#nested <em class="code-color">loopvar1</em>, <em class="code-color">loopvar2</em>, <em class="code-color">...</em>, <em class="code-color">loopvarN</em>>
- <em class="code-color">...</em>
- <#return>
- <em class="code-color">...</em>
-</#macro></code>
-</pre>
-
-
- <p>Where:</p>
-
- <ul>
- <li>
- <code class="inline-code"><em class="code-color">name</em></code>: name
- of macro variable. It's not an expression. It follows the same
- syntax as <a href="dgui_template_exp.html#dgui_template_exp_var_toplevel">like
- top-level variable references</a>, like
- <code class="inline-code">myMacro</code> or <code class="inline-code">my\-macro</code>.
- However, it can also be written as a string literal, which is
- useful if the macro name contains characters that can't be
- specified in an identifier, for example <code class="inline-code"><#macro
- "foo~bar"><em class="code-color">...</em></code>. Note that
- this string literal does not expand interpolations (as
- <code class="inline-code">"${foo}"</code>).
- </li>
-
- <li>
- <code class="inline-code"><em class="code-color">param1</em></code>,
- <code class="inline-code"><em class="code-color">param2</em></code>, ...etc.:
- the name of the <a href="dgui_misc_var.html">local
- variables</a> store the parameter values (not expression),
- optionally followed by <code class="inline-code">=</code> and the default
- value (that's an expression). The default value can even be
- another parameter, for example <code class="inline-code"><#macro section title
- label=title></code>. The parameter name uses the same
- syntax as <a href="dgui_template_exp.html#dgui_template_exp_var_toplevel">like
- top-level variable references</a>, so the same features and
- restrictions apply.
- </li>
-
- <li>
- <code class="inline-code"><em class="code-color">paramN</em></code>,
- the last parameter may optionally has 3 trailing dots
- (<code class="inline-code">...</code>), which indicates that the macro takes a
- variable number of parameters and the parameters that doesn't
- match any other parameters will be collected in this last
- parameter (also called the catch-all parameter). When the macro
- is called with named parameters,
- <code class="inline-code"><em class="code-color">paramN</em></code> will be a
- hash containing all of the undeclared key/value pairs passed to
- the macro. When the macro is called using positional parameters,
- <code class="inline-code"><em class="code-color">paramN</em></code> will be the
- sequence of the extra parameter values. (Inside the macro, to
- find out which was the case, you can use
- <code class="inline-code"><em class="code-color">myCatchAllParam</em>?is_sequence</code>.)
- </li>
-
- <li>
- <code class="inline-code"><em class="code-color">loopvar1</em></code>,
- <code class="inline-code"><em class="code-color">loopvar2</em></code>, ...etc.:
- Optional. The values of <a href="dgui_misc_var.html">loop
- variables</a> that the <code class="inline-code">nested</code> directive
- wants to create for the nested content. These are
- expressions.
- </li>
- </ul>
-
- <p>The <code class="inline-code">return</code> and <code class="inline-code">nested</code>
- directives are optional and can be used anywhere and for any times
- between the <code class="inline-code"><#macro
- <em class="code-color">...</em>></code> and
- <code class="inline-code"></#macro></code>.</p>
-
- <p>Parameters without default value must precede parameters with
- default value
- (<code class="inline-code"><em class="code-color">paramName</em>=<em class="code-color">defaultValue</em></code>).</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_113">Description</h2>
-
-
- <p>Creates a macro variable (in the current namespace, if you
- know namespace feature). If you are new to macros and user-defined
- directives you should read the <a href="dgui_misc_userdefdir.html">the tutorial about user-defined
- directives</a>.</p>
-
- <p>Macro variable stores a template fragment (called macro
- definition body) that can be used as <a href="ref_directive_userDefined.html#ref.directive.userDefined">user-defined directive</a>.
- The variable also stores the name of allowed parameters to the
- user-defined directive. You must give value for all of those
- parameters when you use the variable as directive, except for
- parameters that has a default value. The default value will be used
- if and only if you don't give value for the parameter when you call
- the macro.</p>
-
- <p>The variable will be created at the beginning of the template;
- it does not mater where the <code class="inline-code">macro</code> directive is
- placed in the template. Thus, this will work:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#-- call the macro; the macro variable is already created: -->
-<@test/>
-...
-
-<#-- create the macro variable: -->
-<#macro test>
- Test text
-</#macro></pre></div>
-
- <p>However, if the macro definitions are inserted with
- <code class="inline-code">include</code> directive, they will not be available
- until FreeMarker has executed the <code class="inline-code">include</code>
- directive.</p>
-
- <p>Example: Macro without parameters:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#macro test>
- Test text
-</#macro>
-<#-- call the macro: -->
-<@test/></pre></div>
-
- <p>Output:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> Test text
- </pre></div>
-
- <p>Example: Macro with parameters:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#macro test foo bar baaz>
- Test text, and the params: ${foo}, ${bar}, ${baaz}
-</#macro>
-<#-- call the macro: -->
-<@test foo="a" bar="b" baaz=5*5-2/></pre></div>
-
- <p>Output:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> Test text, and the params: a, b, 23
- </pre></div>
-
- <p>Example: Macro with parameters and default parameter
- values:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#macro test foo bar="Bar" baaz=-1>
- Test text, and the params: ${foo}, ${bar}, ${baaz}
-</#macro>
-<@test foo="a" bar="b" baaz=5*5-2/>
-<@test foo="a" bar="b"/>
-<@test foo="a" baaz=5*5-2/>
-<@test foo="a"/></pre></div>
-
- <p>Output:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> Test text, and the params: a, b, 23
- Test text, and the params: a, b, -1
- Test text, and the params: a, Bar, 23
- Test text, and the params: a, Bar, -1
- </pre></div>
-
- <p>Example: A more complex macro.</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#macro list title items>
- <p>${title?cap_first}:
- <ul>
- <#list items as x>
- <li>${x?cap_first}
- </#list>
- </ul>
-</#macro>
-<@list items=["mouse", "elephant", "python"] title="Animals"/></pre></div>
-
- <p>Output:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> <p>Animals:
- <ul>
- <li>Mouse
- <li>Elephant
- <li>Python
- </ul>
- </pre></div>
-
- <p>Example: A macro with support for a variable number of named
- parameters:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#macro img src extra...>
- <img src="/myapp${src?ensure_starts_with('/')}"
- <#list extra as attrName, attrVal>
- ${attrName}="${attrVal}"
- </#list>
- >
-</#macro>
-<@img src="/images/test.png" width=100 height=50 alt="Test"/></pre></div>
-
- <p>Output:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> <img src="/context/images/test.png"
- alt="Test"
- height="50"
- width="100"
- ></pre></div>
-
- <p>Example: A macro that supports a variable number of positional
- parameters, regardless if it uses named or positional parameter
- passing:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#macro m a b ext...>
- a = ${a}
- b = ${b}
- <#if ext?is_sequence>
- <#list ext as e>
- ${e?index} = ${e}
- </#list>
- <#else>
- <#list ext as k, v>
- ${k} = ${v}
- </#list>
- </#if>
-</#macro>
-
-<@m 1 2 3 4 5 />
-
-<@m a=1 b=2 c=3 d=4 e=5 data\-foo=6 myns\:bar=7 /></pre></div>
-
- <p>Output:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> a = 1
- b = 2
- 0 = 3
- 1 = 4
- 2 = 5
-
- a = 1
- b = 2
- c = 3
- d = 4
- e = 5
- data-foo=6
- myns:bar=7</pre></div>
-
- <div class="callout warning">
- <strong class="callout-label">Warning!</strong>
-
- <p>Currently, named catch-all parameters are unordered, that
- is, you don't know what order will they be enumerated. That is,
- they aren't returned in the same order as they were passed in
- (that above example output shows them in the same order for
- understandability only).</p>
- </div>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_114">nested</h3>
-
-
- <a name="ref.directive.nested"></a>
-
- <p>The <code class="inline-code">nested</code> directive executes the
- template fragment between the start-tag and end-tags of the
- user-defined directive. The nested part can contain anything what
- is valid in templates; interpolations, directives, ...etc. It is
- executed in the context where the macro was called from, rather
- than in the context of the macro definition body. Thus, for
- example, you don't see the local variables of the macro in the
- nested part. If you don't call the <code class="inline-code">nested</code>
- directive, the part between the start-tag and end-tags of the
- user-defined directive will be ignored.</p>
-
- <p>Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#macro do_twice>
- 1. <#nested>
- 2. <#nested>
-</#macro>
-<@do_twice>something</@do_twice></pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> 1. something
- 2. something
- </pre></div>
-
- <p>The nested directive can create loop variables for the
- nested content. For example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#macro do_thrice>
- <#nested <strong>1</strong>>
- <#nested <strong>2</strong>>
- <#nested <strong>3</strong>>
-</#macro>
-<@do_thrice <strong>; x</strong>>
- ${<strong>x</strong>} Anything.
-</@do_thrice></pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> 1 Anything.
- 2 Anything.
- 3 Anything.
- </pre></div>
-
- <p>A more complex example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#macro repeat count>
- <#list 1..count as x>
- <#nested <strong>x, x/2, x==count</strong>>
- </#list>
-</#macro>
-<@repeat count=4 ; <strong>c, halfc, last</strong>>
- ${<strong>c</strong>}. ${<strong>halfc</strong>}<#if <strong>last</strong>> Last!</#if>
-</@repeat></pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> 1. 0.5
- 2. 1
- 3. 1.5
- 4. 2 Last!
- </pre></div>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_115">return</h3>
-
-
- <a name="ref.directive.macro.return"></a>
-
- <p>With the <code class="inline-code">return</code> directive, you can leave
- a macro or function definition body anywhere. Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#macro test>
- Test text
- <#return>
- Will not be printed.
-</#macro>
-<@test/></pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> Test text
- </pre></div>
-
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_directive_local.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_noautoesc.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/ref_directive_noautoesc.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_directive_noautoesc.html b/builds/2.3.26-nightly/ref_directive_noautoesc.html
deleted file mode 100644
index 7664b2f..0000000
--- a/builds/2.3.26-nightly/ref_directive_noautoesc.html
+++ /dev/null
@@ -1,123 +0,0 @@
-<!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>noautoesc - 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="noautoesc">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_directive_noautoesc.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_directive_noautoesc.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directives.html"><span itemprop="name">Directive Reference</span></a></li><li class="step-
3" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directive_noautoesc.html"><span itemprop="name">noautoesc</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","Template Language Reference","Directive Reference","noautoesc"];</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="ref_directive_macro.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_noparse.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="ref_directive_noautoesc" itemprop="headline">noautoesc</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_116" data-menu-target="autoid_116">Synopsis</a></li><li><a class="page-menu-link" href="#autoid_117" data-menu-target="autoid_117">Description</a></li></ul> </div><a name="ref.directive.noautoesc"></a>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_116">Synopsis</h2>
-
-
-
-<pre class="metaTemplate"><code class="inline-code"><#noautoesc>
- <em class="code-color">...</em>
-</#noautoesc></code>
-</pre>
-
-
- <p>Camel case name variant: <code class="inline-code">noAutoEsc</code></p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_117">Description</h2>
-
-
- <p>Disables <a href="dgui_misc_autoescaping.html">auto-escaping</a> in the nested
- section. Note that to prevent escaping for just a single
- <code class="inline-code">${<em class="code-color">expression</em>}</code> you
- should use
- <code class="inline-code">${<em class="code-color">expression</em>?no_esc}</code>
- instead.</p>
-
- <p>This directive only has effect on the section that is
- literally (as in the text editor) inside the nested bock, not on the
- parts that are called/included from there.</p>
-
- <p>Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#ftl output_format="XML">
-${"&"}
-<#noautoesc>
- ${"&"}
- ...
- ${"&"}
-</#noautoesc>
-${"&"}</pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">&amp;
- &
- ...
- &
-&amp;</pre></div>
-
- <p><code class="inline-code">noautoesc</code> can be used regardless of what
- the current <a href="dgui_misc_autoescaping.html#dgui_misc_autoescaping_outputformat">output format</a>
- is (unlike the <a href="ref_directive_autoesc.html"><code>autoesc</code>
- directive</a>).</p>
-
- <p><code class="inline-code">noautoesc</code> can also be used nested into
- <a href="ref_directive_autoesc.html"><code>autoesc</code>
- directive</a> to re-enable escaping.</p>
-
- <p><code class="inline-code">noautoesc</code> can be used on places where
- auto-escaping is already disabled, such as even inside another
- <code class="inline-code">noautoesc</code> block. Doing so is redundant but
- allowed.</p>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_directive_macro.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_noparse.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/ref_directive_noparse.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_directive_noparse.html b/builds/2.3.26-nightly/ref_directive_noparse.html
deleted file mode 100644
index d22261c..0000000
--- a/builds/2.3.26-nightly/ref_directive_noparse.html
+++ /dev/null
@@ -1,105 +0,0 @@
-<!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>noparse - 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="noparse">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_directive_noparse.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_directive_noparse.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directives.html"><span itemprop="name">Directive Reference</span></a></li><li class="step-
3" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directive_noparse.html"><span itemprop="name">noparse</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","Template Language Reference","Directive Reference","noparse"];</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="ref_directive_noautoesc.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_nt.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="ref_directive_noparse" itemprop="headline">noparse</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_118" data-menu-target="autoid_118">Synopsis</a></li><li><a class="page-menu-link" href="#autoid_119" data-menu-target="autoid_119">Description</a></li></ul> </div><a name="ref.directive.noparse"></a>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_118">Synopsis</h2>
-
-
-
-<pre class="metaTemplate">
-<code class="inline-code"><#noparse>
- <em class="code-color">...</em>
-</#noparse></code>
-</pre>
-
-
- <p>Camel case name variant: <code class="inline-code">noParse</code></p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_119">Description</h2>
-
-
- <p>FreeMarker will not search FTL tags and interpolations and
- other special character sequences in the body of this directive,
- except the noparse end-tag.</p>
-
- <p>Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">Example:
---------
-
-<strong><#noparse></strong>
- <#list animals as animal>
- <tr><td>${animal.name}<td>${animal.price} Euros
- </#list>
-<strong></#noparse></strong></pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">Example:
---------
-
- <#list animals as animal>
- <tr><td>${animal.name}<td>${animal.price} Euros
- </#list>
- </pre></div>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_directive_noautoesc.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_nt.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/ref_directive_nt.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_directive_nt.html b/builds/2.3.26-nightly/ref_directive_nt.html
deleted file mode 100644
index 5b59a63..0000000
--- a/builds/2.3.26-nightly/ref_directive_nt.html
+++ /dev/null
@@ -1,80 +0,0 @@
-<!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>nt - 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="nt">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_directive_nt.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_directive_nt.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directives.html"><span itemprop="name">Directive Reference</span></a></li><li class="step-
3" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directive_nt.html"><span itemprop="name">nt</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","Template Language Reference","Directive Reference","nt"];</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="ref_directive_noparse.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_outputformat.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="ref_directive_nt" itemprop="headline">nt</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_120" data-menu-target="autoid_120">Synopsis</a></li><li><a class="page-menu-link" href="#autoid_121" data-menu-target="autoid_121">Description</a></li></ul> </div><a name="ref.directive.nt"></a>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_120">Synopsis</h2>
-
-
-
-<pre class="metaTemplate">
-<code class="inline-code"><#nt></code>
-</pre>
-
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_121">Description</h2>
-
-
- <p>"No Trim". This directive disables <a href="dgui_misc_whitespace.html#dgui_misc_whitespace_stripping">white-space
- stripping</a> in the line where it occurs. It also disables the
- effect of other trim directives occurring in the same line (the
- effect of <code class="inline-code">t</code>, <code class="inline-code">rt</code>,
- <code class="inline-code">lt</code>).</p>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_directive_noparse.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_outputformat.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/ref_directive_outputformat.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_directive_outputformat.html b/builds/2.3.26-nightly/ref_directive_outputformat.html
deleted file mode 100644
index 85e6bd8..0000000
--- a/builds/2.3.26-nightly/ref_directive_outputformat.html
+++ /dev/null
@@ -1,194 +0,0 @@
-<!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>outputformat - 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="outputformat">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_directive_outputformat.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_directive_outputformat.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directives.html"><span itemprop="name">Directive Reference</span></a></li><li class="step-
3" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directive_outputformat.html"><span itemprop="name">outputformat</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","Template Language Reference","Directive Reference","outputformat"];</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="ref_directive_nt.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_setting.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="ref_directive_outputformat" itemprop="headline">outputformat</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_122" data-menu-target="autoid_122">Synopsis</a></li><li><a class="page-menu-link" href="#autoid_123" data-menu-target="autoid_123">Description</a></li></ul> </div><a name="ref.directive.outputformat"></a>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_122">Synopsis</h2>
-
-
-
-<pre class="metaTemplate"><code class="inline-code"><#outputformat <em class="code-color">formatName</em>>
- <em class="code-color">...</em>
-</#outputFormat></code>
-</pre>
-
-
- <p>Where:</p>
-
- <ul>
- <li>
- <code class="inline-code"><em class="code-color">formatName</em></code>:
- A string constant; can't contain runtime expressions! This is
- the name of the output format, like <code class="inline-code">"HTML"</code>,
- <code class="inline-code">"XML"</code>, etc.; see the <a href="dgui_misc_autoescaping.html#topic.predefinedOutputFormats">table of the predefined
- output formats here</a>. The referred output format must be
- known by the <code class="inline-code">Configuration</code>, or else a <a href="gloss.html#gloss.parseTimeError">parse-time error</a> will
- occur. The name can also be like
- <code class="inline-code">"<em class="code-color">outerFormatName</em>{<em class="code-color">innerFormatName</em>}"</code>,
- or
- <code class="inline-code">"{<em class="code-color">innerFormatName</em>}"</code>;
- <a href="#topic.combinedOutputFormats">see combined output
- formats later</a>.
- </li>
- </ul>
-
- <p>Camel case name variant: <code class="inline-code">outputFormat</code> <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p><code class="inline-code">outputformat</code> exists since FreeMarker
- 2.3.24.</p>
- </div>
-</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_123">Description</h2>
-
-
- <p>Sets the <a href="dgui_misc_autoescaping.html#dgui_misc_autoescaping_outputformat">output format</a>
- to the specified one, inside the nested block. At the end of the
- block, the earlier output format is restored.</p>
-
- <p>This directive only has effect on the section that is
- literally (as in the text editor) inside the nested bock, not on the
- parts that are called/included from there.</p>
-
- <p>Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#ftl output_format="XML">
-XML escaping: ${"&{}"}
-<#outputformat "RTF">
- RTF escaping: ${"&{}"}
-</#outputformat>
-<#outputformat "plainText">
- No escsaping: ${"&{}"}
-</#outputformat>
-XML escsaping: ${"&{}"}</pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">XML escsaping: &amp;{}
- RTF escaping: &\{\}
- No escsaping: &{}
-XML escsaping: &amp;{}</pre></div>
-
-
-
-
-
-
-<h3 class="content-header header-simplesect" id="topic.combinedOutputFormats">Combined (nested) output formats</h3>
-
-
- <p>When <code class="inline-code">outputformat</code>-s are nested into each
- other, normally, only the innermost output format will count. For
- example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#ftl output_format="XML">
-${"'{}"}
-<#outputformat "HTML">
- ${"'{}"}
- <#outputformat "RTF">
- ${"'{}"}
- </#outputformat>
-</#outputformat></pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">&apos;{}
- &#39;{}
- '\{\}</pre></div>
-
- <p>But sometimes you want all enclosing output format escaping
- to be applied at once. In that case the 2nd
- <code class="inline-code">${<em class="code-color">...</em>}</code> above should
- be escaped with <code class="inline-code">"HTML"</code> and then with
- <code class="inline-code">"XML"</code>, and the 3rd
- <code class="inline-code">${<em class="code-color">...</em>}</code> should be
- escaped with <code class="inline-code">"RTF"</code> and then with
- <code class="inline-code">"HTML"</code> and then with <code class="inline-code">"XML"</code>.
- These are called combined output formats, and can be referred by
- names like <code class="inline-code">"XML{HTML}"</code> and
- <code class="inline-code">"XML{HTLM{RTF}}"</code>, respectively. We could use
- these names in the earlier two <code class="inline-code">outputformat</code>
- calls, however, there's a shorthand where you inherit the part
- outside the <code class="inline-code">{<em class="code-color">...</em>}</code>
- from the enclosing output format:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#ftl outputFormat="XML">
-${"'{}"}
-<#outputFormat "{HTML}"><#-- Same as "XML{HTML}" -->
- ${"'{}"}
- <#outputFormat '{RTF}'><#-- Same as "XML{HTML{RTF}}" -->
- ${"'{}"}
- </#outputFormat>
-</#outputFormat></pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">&apos;{}
- &amp;#39;{}
- &amp;#39;\{\}</pre></div>
-
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_directive_nt.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_setting.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>\u20132017
-<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>
[15/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/versions_2_1.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_1.html b/builds/2.3.26-nightly/versions_2_1.html
deleted file mode 100644
index ea18477..0000000
--- a/builds/2.3.26-nightly/versions_2_1.html
+++ /dev/null
@@ -1,539 +0,0 @@
-<!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.1 - 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.1">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/versions_2_1.html">
-<link rel="canonical" href="http://freemarker.org/docs/versions_2_1.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_1.html"><span itemprop="name">2.1</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.1"];</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_1_1.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_01.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="versions_2_1" itemprop="headline">2.1</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_277" data-menu-target="autoid_277">Changes in FTL (FreeMarker Template Language)</a></li><li><a class="page-menu-link" href="#autoid_278" data-menu-target="autoid_278">Changes on the Java side</a></li><li><a class="page-menu-link" href="#autoid_279" data-menu-target="autoid_279">Other changes</a></li><li><a class="page-menu-link" href="#autoid_280" data-menu-target="autoid_280">Differences between the RC1 and final release</a></li></ul> </div><p>Date of release: 2002-10-17</p><p>Templates and the Java API are <em>not</em> fully
- compatible with 2.0 releases. You will need to revisit existing code
- and templates, or use 2.1 for new projects only. Sorry for this
- inconvenience; FreeMarker has undergone some revolutionary changes
- since the 1.x series. We hope things will soon be sufficiently mature
- for us to offer (almost) backward-compatible releases. Note that there
- is a backward-compatibility flag that can be set via
- <code class="inline-code">Configuration.setClassicCompatible(true)</code> that
- causes the new FreeMarker to emulate most of FreeMarker 1.x's
- quirks.</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_277">Changes in FTL (FreeMarker Template Language)</h2>
-
-
- <ul>
- <li>
- <p>More strict, reveals accidental mistakes in the templates,
- prevents showing incorrect information when something went
- wrong:</p>
-
- <ul>
- <li>
- <p>An attempt to access an undefined variable causes an
- error and aborts template processing (by default at least;
- see later). In earlier versions undefined variables were
- silently treated as empty (zero-length) strings. However,
- you can handle undefined variables in the template with some
- new built-ins. For example,
- <code class="inline-code">${foo?if_exists}</code> is equivalent with the
- <code class="inline-code">${foo}</code> of earlier versions. Another way
- of looking at this is that null values no longer exist from
- the viewpoint of a template designer. Anything referenced
- must be a defined variable.</p>
-
- <p>Note however that the programmer can configure
- FreeMarker so that it ignores certain errors (say, undefined
- variables), and continues template processing by skipping
- the problematic part. This "loose" policy
- should be used only for sites that don't show critical
- information.</p>
- </li>
-
- <li>
- <p>New variable type: <a href="gloss.html#gloss.boolean">boolean</a>. Conditions in
- <code class="inline-code">if</code>/<code class="inline-code">elseif</code> and operands
- of logical operators (<code class="inline-code">&&</code>,
- <code class="inline-code">||</code>, <code class="inline-code">!</code>) must be
- booleans. Empty strings are no longer treated as a logical
- false.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Local and global variables. More info: <a href="dgui_misc_var.html">Template Author's Guide/Miscellaneous/Defining variables in the template</a></p>
-
- <ul>
- <li>
- <p>Local variables for macros. You can create/replace
- local variables in macro definition bodies with the <a href="ref_directive_local.html#ref.directive.local"><code>local</code>
- directive</a></p>
- </li>
-
- <li>
- <p>You can create/replace global (non-local) variables
- with the <a href="ref_directive_global.html#ref.directive.global"><code>global</code>
- directive</a></p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>The <a href="ref_directive_include.html#ref.directive.include"><code>include</code></a>
- directive now by default treats the passed filename as being
- relative to the including template's path. To specify absolute
- template paths, you now have to prepend them with a
- slash.</p>
- </li>
-
- <li>
- <p>The <a href="ref_directive_include.html#ref.directive.include"><code>include</code></a>
- directive can now use the <em>acquisition
- algorithm</em> (familiar from the Zope system) to look up
- the template to include. Basically, if a template is not found
- where it is looked up first, it is looked up in parent
- directories. This is however not a default behavior, rather it
- is triggered by a new syntactic element.</p>
- </li>
-
- <li>
- <p>Strict syntax mode: Allows you to generate arbitrary SGML
- (XML) without worrying about clashes with FreeMarker directives.
- For more information read: <a href="ref_depr_oldsyntax.html">Template Language Reference/Deprecated FTL constructs/Old FTL syntax</a></p>
- </li>
-
- <li>
- <p>Terse comments: you can use <code class="inline-code"><#--
- <em class="code-color">...</em> --></code> instead of
- <code class="inline-code"><comment><em class="code-color">...</em></comment></code></p>
- </li>
-
- <li>
- <p>Directive that you can use to change the locale (and other
- settings) inside the template: <a href="ref_directive_setting.html#ref.directive.setting"><code>setting</code></a></p>
- </li>
-
- <li>
- <p>Directive to explicitly flush the output buffer: <a href="ref_directive_flush.html#ref.directive.flush"><code>flush</code></a></p>
- </li>
-
- <li>
- <p>The top-level (root) hash is available via the variable
- <code class="inline-code">root</code>, which is now a reserved name.</p>
- </li>
-
- <li>
- <p>The misnamed <code class="inline-code">function</code> directive has
- been renamed to <code class="inline-code">macro</code>.</p>
- </li>
-
- <li>
- <p>String literals support various new <a href="dgui_template_exp.html#topic.escapeSequence">escape sequences</a>,
- including UNICODE escapes
- (<code class="inline-code">\x<em class="code-color">CODE</em></code>)</p>
- </li>
-
- <li>
- <p>The <a href="ref_directive_compress.html#ref.directive.compress"><code>compress</code></a>
- directive is now more conservative in removing line
- breaks.</p>
- </li>
-
- <li>
- <p>Built-in to capitalize the first word: <a href="ref_builtins_string.html#ref_builtin_cap_first"><code>cap_first</code></a></p>
- </li>
-
- <li>
- <p>Built-in to generate on-the-fly templates: <a href="ref_builtins_expert.html#ref_builtin_interpret"><code>interpret</code></a></p>
- </li>
-
- <li>
- <p><a href="ref_directive_stop.html#ref.directive.stop"><code>stop</code></a>
- directive has an optional parameter to describe the reason of
- termination</p>
- </li>
-
- <li>
- <p>Better error messages.</p>
- </li>
-
- <li>
- <p>New variable type: date. <em>Date support is
- experimental. It can change substantially in the future. Keep
- this in mind if you use it.</em></p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_278">Changes on the Java side</h2>
-
-
- <ul>
- <li>
- <p><code class="inline-code">ObjectWrapper</code>: You can put
- non-<code class="inline-code">TemplateModel</code> objects directly into
- hashes, sequences and collections, and they will be
- automatically wrapped with the appropriate
- <code class="inline-code">TemplateModel</code> implementation. The API of
- objects that are exposed to templates
- (<code class="inline-code">Simple<em class="code-color">XXX</em></code>) has
- been changed according to this, for example in
- <code class="inline-code">SimpleHash</code> the old <code class="inline-code">put(String key,
- TemplateModel value)</code> is now <code class="inline-code">put(String key,
- Object object)</code>. Also, you can pass any kind of object
- as data-model to <code class="inline-code">Template.process</code>. The
- alternative reflection based <code class="inline-code">ObjectWrapper</code>
- can expose the members of any Java object automatically for the
- designer. More information: <a href="pgui_datamodel_objectWrapper.html">Object wrapping</a>,
- <a href="pgui_misc_beanwrapper.html">Bean wrapper</a>, <a href="pgui_misc_jythonwrapper.html">Jython wrapper</a>.</p>
- </li>
-
- <li>
- <p>The <code class="inline-code">Configuration</code> object was introduced
- as a central point to hold all your FreeMarker-related global
- settings, as well as commonly used variables that you want to
- have available from any template. Also it encapsulates the
- template cache and can be used to load templates. For more
- information read <a href="pgui_config.html">Programmer's Guide/The Configuration</a>.</p>
- </li>
-
- <li>
- <p><code class="inline-code">TemplateLoader</code>: pluggable template
- loader, separates caching from template loading</p>
- </li>
-
- <li>
- <p><code class="inline-code">TemplateNumberModel</code>-s do not control
- their formatting anymore. They just store the data (i.e. a
- number). Number formatting is done by the FreeMarker core based
- on the <code class="inline-code">locale</code> and
- <code class="inline-code">number_format</code> settings. This logic applies to
- the new experimental date type as well.</p>
- </li>
-
- <li>
- <p><code class="inline-code">TemplateBooleanModel</code> introduced: Only
- objects that implements this interface can be used as a boolean
- in true/false conditions. More info: <a href="pgui_datamodel_scalar.html">Programmer's Guide/The Data Model/Scalars</a></p>
- </li>
-
- <li>
- <p><code class="inline-code">TemplateDateModel</code> introduced: objects
- that implements this interface are recognized as dates and can
- be locale-sensitively formatted. <em>Date support is
- experimental in FreeMarker 2.1. It can change substantially in
- the future. Keep this in mind if you use it.</em></p>
- </li>
-
- <li>
- <p>The <code class="inline-code">TemplateModelRoot</code> interface was
- deprecated. As of FreeMarker 2.1, you can simply use any
- instance of <code class="inline-code">TemplateHashModel</code> instead. This
- actually is due to a significant architectural change. Variables
- set or defined in a template are stored in a separate
- <code class="inline-code">Environment</code> object that only exists while the
- template is being rendered. Thus, the template doesn't modify
- the root hash.</p>
- </li>
-
- <li>
- <p>Changes to transformations</p>
-
- <ul>
- <li>
- <p>Completely rewritten
- <code class="inline-code">TemplateTransformModel</code> interface. More
- flexible, and does not impose output holding. More
- information: <a href="pgui_datamodel_directive.html">Programmer's Guide/The Data Model/Directives</a></p>
- </li>
-
- <li>
- <p>The <code class="inline-code">transform</code> directive now takes
- an optional set of key/value pairs. <code class="inline-code"><transform
- myTransform;
- <em class="code-color">key1</em>=<em class="code-color">value1</em>,
- <em class="code-color">key2</em>=<em class="code-color">value2</em>
- <em class="code-color">...</em>></code>. More
- information: <a href="ref_depr_transform.html#ref.directive.transform"><code>transform</code>
- directive</a></p>
- </li>
-
- <li>
- <p>The transforms that ship with the FreeMarker core are
- now available by default to all templates - i.e.
- <code class="inline-code"><transform html_escape></code> will invoke
- the
- <code class="inline-code">freemarker.template.utility.HtmlEscape</code>
- transform. More information: <a href="pgui_config_sharedvariables.html">Programmer's Guide/The Configuration/Shared variables</a></p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>User-defined <code class="inline-code">TemplateModel</code> objects now
- can access the runtime environment (read and set variables, get
- the current locale, etc.) using an
- <code class="inline-code">Environment</code> instance, which can be obtained
- by the static
- <code class="inline-code">Environment.getCurrentEnvironment()</code> method.
- As a result, <code class="inline-code">TemplateScalarModel.getAsString</code>
- has been changed: it has no locale parameter.</p>
- </li>
-
- <li>
- <p><code class="inline-code">TemplateExceptionHandler</code>-s make it
- possible to define your own rules on what to do when a runtime
- error occurs (e.g. accessing a non existing variable) during
- template processing. For example, you can abort template
- processing (recommended for most sites), or skip the problematic
- statement and continue template processing (similar to old
- behavior). DebugMode has been removed, use
- <code class="inline-code">TemplateExceptionHandler.DEBUG_HANDLER</code> or
- <code class="inline-code">HTML_DEBUG_HANDLER</code> instead.</p>
- </li>
-
- <li>
- <p>Logging: FreeMarker logs certain events (runtime errors
- for example). For more information read <a href="pgui_misc_logging.html">Programmer's Guide/Miscellaneous/Logging</a>.</p>
- </li>
-
- <li>
- <p><code class="inline-code">SimpleIterator</code> was removed, but we
- provide a <code class="inline-code">TemplateCollectionModel</code>
- implementation: <code class="inline-code">SimpleCollection</code>.</p>
- </li>
-
- <li>
- <p>Arithmetic engine is pluggable
- (<code class="inline-code">Configuration.setArithmeticEngine</code>). The core
- distribution comes with two engines:
- <code class="inline-code">ArithmeticEngine.BIGDECIMAL_ENGINE</code> (the
- default) that converts all numbers to
- <code class="inline-code">BigDecimal</code> and then operates on them, and
- <code class="inline-code">ArithmeticEngine.CONSERVATIVE_ENGINE</code> that
- uses (more-or-less) the widening conversions of Java language,
- instead of converting everything to
- <code class="inline-code">BigDecimal</code>.</p>
- </li>
-
- <li>
- <p>Changes to <code class="inline-code">freemarker.ext.beans</code>
- package: The JavaBeans adapter layer has suffered several major
- changes. First, <code class="inline-code">BeansWrapper</code> is no longer a
- static utility class - you can now create instances of it, and
- every instance can have its own instance caching policy and
- security settings. These security settings are also new - you
- can now create JavaBeans wrappers that hide methods that are
- considered unsafe or inappropriate in a templating environment.
- By default, you can no longer call methods like
- <code class="inline-code">System.exit()</code> from the template (although you
- can manually turn off these safeguards). The
- <code class="inline-code">StaticModel</code> and
- <code class="inline-code">StaticModels</code> classes are gone; their
- functionality is now replaced with the
- <code class="inline-code">BeansWrapper.getStaticModels()</code> method.</p>
- </li>
-
- <li>
- <p><code class="inline-code">freemarker.ext.jython</code> package:
- FreeMarker can now directly use Jython objects as data-models
- using the <a href="pgui_misc_jythonwrapper.html">Jython
- wrapper</a>.</p>
- </li>
-
- <li>
- <p>Changes to <code class="inline-code">freemarker.ext.jdom</code> package:
- The package now uses the <em>Jaxen</em> package
- instead of its predecessor, the
- <em>werken.xpath</em> package to evaluate XPath
- expressions. Since <em>Jaxen</em> is a successor to
- <em>werken.xpath</em>, this can be considered to be
- an upgrade. As a consequence, namespace prefixes are now
- recognized in XPath expressions and the overall XPath
- conformance is better.</p>
- </li>
-
- <li>
- <p>Better error reporting: If the processing of a template is
- aborted by a <code class="inline-code">TemplateException</code> being thrown,
- or using a <code class="inline-code"><#stop></code> directive,
- FreeMarker will now output an execution trace with line and
- column numbers relative to the template source.</p>
- </li>
-
- <li>
- <p>The output is written to a simple
- <code class="inline-code">Writer</code>; no more
- <code class="inline-code">PrintWriter</code>. This redesign causes FreeMarker
- to no longer swallow <code class="inline-code">IOException</code>s during
- template processing.</p>
- </li>
-
- <li>
- <p>Various API cleanups, primarily the removing of
- superfluous constructor and method overloads.</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_279">Other changes</h2>
-
-
- <ul>
- <li>
- <p>Documentation has been rewritten from scratch</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_280">Differences between the RC1 and final release</h2>
-
-
- <ul>
- <li>
- <p>Added the support for date models and locale-sensitive
- date formatting. <em>Date support is experimental in
- FreeMarker 2.1. It can change substantially in the future. Keep
- this in mind if you use it.</em></p>
- </li>
-
- <li>
- <p>Added the <code class="inline-code">default</code> built-in which makes
- it possible to specify default values for undefined
- expressions.</p>
- </li>
-
- <li>
- <p><code class="inline-code">SimpleIterator</code> has been removed,
- <code class="inline-code">SimpleCollection</code> has been introduced</p>
- </li>
-
- <li>
- <p>Arithmetic engine is pluggable. The core now contains two
- arithmetic engines:
- <code class="inline-code">ArithmeticEngine.BIGDECIMAL_ENGINE</code> and
- <code class="inline-code">ArithmeticEngine.CONSERVATIVE_ENGINE</code>.</p>
- </li>
-
- <li>
- <p><code class="inline-code">BeansWrapper</code> supports a new exposure
- level: <code class="inline-code">EXPOSE_NOTHING</code></p>
- </li>
-
- <li>
- <p><code class="inline-code">Constants</code> interface was removed.
- <code class="inline-code"><em class="code-color">...</em>_WRAPPER</code>
- constants have been moved from <code class="inline-code">Constants</code> to
- <code class="inline-code">ObjectWrapper</code>,
- <code class="inline-code">EMPTY_STRING</code> constant was moved to
- <code class="inline-code">TemplateScalarModel</code>,
- <code class="inline-code">NOTHING</code> constant was moved to
- <code class="inline-code">TemplateModel</code>, <code class="inline-code">TRUE</code> and
- <code class="inline-code">FALSE</code> constants were moved to
- <code class="inline-code">TemplateBooleanModel</code>.</p>
- </li>
-
- <li>
- <p><code class="inline-code">JAVABEANS_WRAPPER</code> was renamed to
- <code class="inline-code">BEANS_WRAPPER</code></p>
- </li>
-
- <li>
- <p><code class="inline-code">Configuration.get</code> and
- <code class="inline-code">put</code>, <code class="inline-code">putAll</code> were renamed
- to <code class="inline-code">getSharedVariable</code> and
- <code class="inline-code">setSharedVariable</code>,
- <code class="inline-code">setAllSharedVariables</code></p>
- </li>
-
- <li>
- <p><code class="inline-code">Configuration.getClassicCompatibility</code>,
- <code class="inline-code">setClassicCompatibility</code> were renamed to
- <code class="inline-code">isClassicCompatible</code>,
- <code class="inline-code">setClassicCompatible</code></p>
- </li>
-
- <li>
- <p><code class="inline-code">Template.process</code> method overloads with
- <code class="inline-code">useReflection</code> parameter was removed. But now
- we have <code class="inline-code">setObjectWrapper</code> method in the
- <code class="inline-code">Configuration</code>, so you can set the preferred
- root-object wrapper there.</p>
- </li>
-
- <li>
- <p>Some superfluous method overloads were removed; these
- changes are backward compatible with RC1</p>
- </li>
-
- <li>
- <p>Various minor JavaDoc and Manual improvements</p>
- </li>
-
- <li>
- <p>Bugfix: <code class="inline-code">include</code> directive has
- calculated the base path of relative paths wrongly</p>
- </li>
-
- <li>
- <p>Bugfix: We have accidentally used a J2SE 1.3 class, but
- FreeMarker 2.1 must able to run on J2SE 1.2</p>
- </li>
- </ul>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_1_1.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_01.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/versions_2_1_1.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_1_1.html b/builds/2.3.26-nightly/versions_2_1_1.html
deleted file mode 100644
index 8c919ae..0000000
--- a/builds/2.3.26-nightly/versions_2_1_1.html
+++ /dev/null
@@ -1,125 +0,0 @@
-<!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.1.1 - 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.1.1">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/versions_2_1_1.html">
-<link rel="canonical" href="http://freemarker.org/docs/versions_2_1_1.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_1_1.html"><span itemprop="name">2.1.1</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.1.1"];</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_1_2.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_1.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="versions_2_1_1" itemprop="headline">2.1.1</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_275" data-menu-target="autoid_275">Changes in FTL (FreeMarker Template Language)</a></li><li><a class="page-menu-link" href="#autoid_276" data-menu-target="autoid_276">Changes on the Java side</a></li></ul> </div><p>Date of release: 2002-11-04</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_275">Changes in FTL (FreeMarker Template Language)</h2>
-
-
- <ul>
- <li>
- <p>Multi-type variables that are both string and number or
- string and date are now output using their number or date value
- instead of the string value when used in the
- <code class="inline-code">${...}</code> interpolation. This practically makes
- the string part of a string/number or a string/date variables
- useless.</p>
- </li>
-
- <li>
- <p>Bugfix: operator "or" (<code class="inline-code">||</code>)
- worked wrongly when its left operand was a composite expression
- (e.g., the second <code class="inline-code">||</code> in <code class="inline-code">false ||
- true || false</code>; this was evaluated to
- <code class="inline-code">false</code>, but it should be
- <code class="inline-code">true</code>)</p>
- </li>
-
- <li>
- <p>Bugfix: Less-than sign inside comments confused the FTL
- parser (e.g. <code class="inline-code"><#-- blah < blah --></code>);
- it commented out everything after the problematic
- comment.</p>
- </li>
-
- <li>
- <p>Bugfix: Comparing two numerical constants (e.g. <code class="inline-code">3
- == 3</code>) caused internal error in the FTL parser, and
- aborted template processing with error.</p>
- </li>
-
- <li>
- <p>Experimental date/time type support was removed, since it
- seems that this initial implementation was misguided. FreeMarker
- 2.2 will certainly support data/time.</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_276">Changes on the Java side</h2>
-
-
- <ul>
- <li>
- <p>Bugfix: <code class="inline-code">Number</code>s wrapped with
- <code class="inline-code">BEANS_WRAPPER</code> was displayed with the
- <code class="inline-code">toString()</code> method of wrapped object. Now they
- are rendered according to the <code class="inline-code">number_format</code>
- setting, because multi-type variables that are both string and
- number are now output using their number value instead of the
- string value.</p>
- </li>
-
- <li>
- <p>Experimental date/time type support was removed, since it
- seems that this initial implementation was misguided. FreeMarker
- 2.2 will certainly support data/time.</p>
- </li>
- </ul>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_1_2.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_1.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/versions_2_1_2.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_1_2.html b/builds/2.3.26-nightly/versions_2_1_2.html
deleted file mode 100644
index 81203aa..0000000
--- a/builds/2.3.26-nightly/versions_2_1_2.html
+++ /dev/null
@@ -1,130 +0,0 @@
-<!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.1.2 - 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.1.2">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/versions_2_1_2.html">
-<link rel="canonical" href="http://freemarker.org/docs/versions_2_1_2.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_1_2.html"><span itemprop="name">2.1.2</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.1.2"];</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_1_3.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_1_1.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="versions_2_1_2" itemprop="headline">2.1.2</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_273" data-menu-target="autoid_273">Changes in FTL (FreeMarker Template Language)</a></li><li><a class="page-menu-link" href="#autoid_274" data-menu-target="autoid_274">Other changes</a></li></ul> </div><p>Date of release: 2002-11-28</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_273">Changes in FTL (FreeMarker Template Language)</h2>
-
-
- <ul>
- <li>
- <p><code class="inline-code">FreeMarkerServlet</code> now has a setting for
- the <code class="inline-code">Content-Type</code> header of the response,
- defaulting to <code class="inline-code">text/html</code>. Previously it set no
- content type, which made it not play nicely when integrated with
- software that expected it (i.e. OpenSymphony SiteMesh).</p>
- </li>
-
- <li>
- <p><code class="inline-code">FreeMarkerServlet</code> now works correctly
- when mapped to an URL extension instead of URL path
- prefix.</p>
- </li>
-
- <li>
- <p>You can emulate <code class="inline-code">include</code> directive call
- within Java code by calling
- <code class="inline-code">Environment.include(<em class="code-color">templateName</em>,
- <em class="code-color">charset</em>,
- <em class="code-color">parse</em>)</code>.</p>
- </li>
- </ul>
-
- <ul>
- <li>
- <p>Bugfix: When <code class="inline-code">Template.process()</code> was
- called from another template processing, it set
- <code class="inline-code">currentEnvironment</code> to null when it returned,
- thus crashed the parent template processing.</p>
- </li>
-
- <li>
- <p>Bugfix: the <code class="inline-code">_descendant</code> key in JDOM
- support incorrectly left the document root element out of the
- result when applied to a Document node.</p>
- </li>
-
- <li>
- <p>Bugfix: because we incorrectly assumed certain behavior of
- JDK 1.4 Beans introspector, calls to public interface methods on
- non-public classes that implement the interface were causing
- exceptions on JDK 1.4</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_274">Other changes</h2>
-
-
- <ul>
- <li>
- <p>Various minor supplements to the manual.</p>
- </li>
-
- <li>
- <p>Documentation HTML pages don't try to load the SourceForge
- logo from the Internet anymore.</p>
- </li>
-
- <li>
- <p>The default ant target is <code class="inline-code">jar</code>, not
- <code class="inline-code">dist</code>.</p>
- </li>
- </ul>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_1_3.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_1_1.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/versions_2_1_3.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_1_3.html b/builds/2.3.26-nightly/versions_2_1_3.html
deleted file mode 100644
index a7e5335..0000000
--- a/builds/2.3.26-nightly/versions_2_1_3.html
+++ /dev/null
@@ -1,94 +0,0 @@
-<!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.1.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.1.3">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/versions_2_1_3.html">
-<link rel="canonical" href="http://freemarker.org/docs/versions_2_1_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_1_3.html"><span itemprop="name">2.1.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.1.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_1_4.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_1_2.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="versions_2_1_3" itemprop="headline">2.1.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_271" data-menu-target="autoid_271">Changes on the FTL side</a></li><li><a class="page-menu-link" href="#autoid_272" data-menu-target="autoid_272">Other changes</a></li></ul> </div><p>Date of release: 2002-12-09</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_271">Changes on the FTL side</h2>
-
-
- <ul>
- <li>
- <p>Bugfix: <code class="inline-code">cap_first</code> built-in did what
- <code class="inline-code">double</code> built-in does.</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_272">Other changes</h2>
-
-
- <ul>
- <li>
- <p>The official extension of FreeMarker template files is
- <code class="inline-code">ftl</code> from now, not <code class="inline-code">fm</code>.
- (This is the name of the template language; FTL, for FreeMarker
- Template Language.) Of course you can use any extensions, since
- FreeMarker does not deal with the file extension. But we
- recommend <code class="inline-code">ftl</code> extension as default.</p>
- </li>
-
- <li>
- <p>Web application examples got tweaked again, as under JDK
- 1.4 a class in an explicit (named) package can no longer import
- classes from the default (unnamed) package. Our webapp example
- was using classes in the default package, they are now moved
- into named packages.</p>
- </li>
- </ul>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_1_4.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_1_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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/versions_2_1_4.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_1_4.html b/builds/2.3.26-nightly/versions_2_1_4.html
deleted file mode 100644
index 80de0ac..0000000
--- a/builds/2.3.26-nightly/versions_2_1_4.html
+++ /dev/null
@@ -1,73 +0,0 @@
-<!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.1.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.1.4">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/versions_2_1_4.html">
-<link rel="canonical" href="http://freemarker.org/docs/versions_2_1_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_1_4.html"><span itemprop="name">2.1.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.1.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_1_5.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_1_3.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="versions_2_1_4" itemprop="headline">2.1.4</h1>
-</div></div><p>Date of release: 2002-12-26</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_270">Changes on the Java side</h2>
-
-
- <ul>
- <li>
- <p>Bugfix: Log4J is now found when automatically discovering
- the logging library to use.</p>
- </li>
-
- <li>
- <p>Bugfix: An exception is no longer thrown in the static
- initializer of the <code class="inline-code">Configuration</code> if the
- directory specified in the <code class="inline-code">"user.dir"</code> system
- property is not readable.</p>
- </li>
- </ul>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_1_5.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_1_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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/versions_2_1_5.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_1_5.html b/builds/2.3.26-nightly/versions_2_1_5.html
deleted file mode 100644
index 0277751..0000000
--- a/builds/2.3.26-nightly/versions_2_1_5.html
+++ /dev/null
@@ -1,88 +0,0 @@
-<!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.1.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.1.5">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/versions_2_1_5.html">
-<link rel="canonical" href="http://freemarker.org/docs/versions_2_1_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_1_5.html"><span itemprop="name">2.1.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.1.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_2.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_1_4.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="versions_2_1_5" itemprop="headline">2.1.5</h1>
-</div></div><p>Date of release: 2003-02-08</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_269">Changes on the Java side</h2>
-
-
- <ul>
- <li>
- <p>Bugfix: Fixed a bug that forced the cache to frequently
- reload templates accessed through URL and multi template
- loaders: Templates loaded with
- <code class="inline-code">URLTemplateLoader</code> subclasses and
- <code class="inline-code">MultiTemplateLoader</code> was removed from the
- template cache after the template update delay has elapsed (5
- seconds by default) even if the template file was unchanged.
- This can cause lot of extra load for a high-traffic server if
- you have many templates or if the template update delay was set
- to 0 second.)</p>
- </li>
-
- <li>
- <p>Bugfix: Many anomalies in the
- <code class="inline-code">JythonWrapper</code> were resolved, making the
- integration with Jython much smoother: Jython wrapper can now
- wrap arbitrary Java objects, not only
- <code class="inline-code">PyObject</code>-s. If an object is passed to the
- wrapper that is neither a <code class="inline-code">TemplateModel</code>, nor
- a <code class="inline-code">PyObject</code>, it is first coerced into a
- <code class="inline-code">PyObject</code> using Jython's own wrapping
- machinery, and then wrapped into a
- <code class="inline-code">TemplateModel</code> as any other
- <code class="inline-code">PyObject</code>.</p>
- </li>
- </ul>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_2.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_1_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>\u20132017
-<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>
[51/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
2.3.26-voting docs, removed nightly
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/a4004324
Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/tree/a4004324
Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/diff/a4004324
Branch: refs/heads/asf-site
Commit: a400432419bd80da68d32e86b7e0638662780036
Parents: 52c070a
Author: ddekany <dd...@apache.org>
Authored: Wed Mar 15 22:18:33 2017 +0100
Committer: ddekany <dd...@apache.org>
Committed: Wed Mar 15 22:18:33 2017 +0100
----------------------------------------------------------------------
builds/2.3.26-nightly/alphaidx.html | 1695 ----
builds/2.3.26-nightly/app.html | 54 -
builds/2.3.26-nightly/app_eccn.html | 56 -
builds/2.3.26-nightly/app_faq.html | 1797 ----
builds/2.3.26-nightly/app_install.html | 97 -
builds/2.3.26-nightly/app_legal.html | 54 -
builds/2.3.26-nightly/app_license.html | 275 -
builds/2.3.26-nightly/app_versions.html | 54 -
builds/2.3.26-nightly/detailed-toc.html | 80 -
builds/2.3.26-nightly/dgui.html | 54 -
builds/2.3.26-nightly/dgui_datamodel.html | 54 -
.../2.3.26-nightly/dgui_datamodel_basics.html | 230 -
builds/2.3.26-nightly/dgui_datamodel_types.html | 512 -
builds/2.3.26-nightly/dgui_misc.html | 54 -
.../dgui_misc_alternativesyntax.html | 119 -
.../2.3.26-nightly/dgui_misc_autoescaping.html | 718 --
builds/2.3.26-nightly/dgui_misc_namespace.html | 315 -
builds/2.3.26-nightly/dgui_misc_userdefdir.html | 554 --
builds/2.3.26-nightly/dgui_misc_var.html | 197 -
builds/2.3.26-nightly/dgui_misc_whitespace.html | 296 -
builds/2.3.26-nightly/dgui_quickstart.html | 57 -
.../2.3.26-nightly/dgui_quickstart_basics.html | 138 -
.../dgui_quickstart_datamodel.html | 199 -
.../dgui_quickstart_template.html | 707 --
builds/2.3.26-nightly/dgui_template.html | 60 -
.../dgui_template_directives.html | 136 -
builds/2.3.26-nightly/dgui_template_exp.html | 2331 -----
.../dgui_template_overallstructure.html | 131 -
.../dgui_template_valueinsertion.html | 310 -
.../docgen-resources/docgen.min.css | 1 -
.../docgen-resources/fonts/NOTICE | 20 -
.../docgen-resources/fonts/icomoon.eot | Bin 4220 -> 0 bytes
.../docgen-resources/fonts/icomoon.svg | 29 -
.../docgen-resources/fonts/icomoon.ttf | Bin 4056 -> 0 bytes
.../docgen-resources/fonts/icomoon.woff | Bin 4132 -> 0 bytes
.../docgen-resources/img/callouts/1.gif | Bin 968 -> 0 bytes
.../docgen-resources/img/callouts/10.gif | Bin 968 -> 0 bytes
.../docgen-resources/img/callouts/11.gif | Bin 244 -> 0 bytes
.../docgen-resources/img/callouts/12.gif | Bin 244 -> 0 bytes
.../docgen-resources/img/callouts/13.gif | Bin 244 -> 0 bytes
.../docgen-resources/img/callouts/14.gif | Bin 244 -> 0 bytes
.../docgen-resources/img/callouts/2.gif | Bin 968 -> 0 bytes
.../docgen-resources/img/callouts/3.gif | Bin 968 -> 0 bytes
.../docgen-resources/img/callouts/4.gif | Bin 968 -> 0 bytes
.../docgen-resources/img/callouts/5.gif | Bin 968 -> 0 bytes
.../docgen-resources/img/callouts/6.gif | Bin 968 -> 0 bytes
.../docgen-resources/img/callouts/7.gif | Bin 968 -> 0 bytes
.../docgen-resources/img/callouts/8.gif | Bin 968 -> 0 bytes
.../docgen-resources/img/callouts/9.gif | Bin 968 -> 0 bytes
.../docgen-resources/img/patterned-bg.png | Bin 4565 -> 0 bytes
.../2.3.26-nightly/docgen-resources/img/xxe.png | Bin 2649 -> 0 bytes
.../2.3.26-nightly/docgen-resources/main.min.js | 1 -
builds/2.3.26-nightly/eclipse-toc.xml | 698 --
builds/2.3.26-nightly/favicon.png | Bin 1291 -> 0 bytes
builds/2.3.26-nightly/figures/model2sketch.png | Bin 21425 -> 0 bytes
builds/2.3.26-nightly/figures/overview.png | Bin 11837 -> 0 bytes
builds/2.3.26-nightly/figures/tree.png | Bin 4699 -> 0 bytes
builds/2.3.26-nightly/gloss.html | 770 --
builds/2.3.26-nightly/index.html | 55 -
builds/2.3.26-nightly/logo.png | Bin 10134 -> 0 bytes
builds/2.3.26-nightly/pgui.html | 54 -
builds/2.3.26-nightly/pgui_config.html | 55 -
builds/2.3.26-nightly/pgui_config_basics.html | 75 -
.../pgui_config_custom_formats.html | 700 --
.../pgui_config_errorhandling.html | 391 -
.../pgui_config_incompatible_improvements.html | 173 -
.../pgui_config_outputformatsautoesc.html | 210 -
builds/2.3.26-nightly/pgui_config_settings.html | 378 -
.../pgui_config_sharedvariables.html | 143 -
.../pgui_config_templateconfigurations.html | 314 -
.../pgui_config_templateloading.html | 364 -
builds/2.3.26-nightly/pgui_datamodel.html | 55 -
.../2.3.26-nightly/pgui_datamodel_basics.html | 105 -
.../pgui_datamodel_directive.html | 411 -
.../2.3.26-nightly/pgui_datamodel_method.html | 90 -
builds/2.3.26-nightly/pgui_datamodel_node.html | 123 -
.../pgui_datamodel_objectWrapper.html | 412 -
.../2.3.26-nightly/pgui_datamodel_parent.html | 129 -
.../2.3.26-nightly/pgui_datamodel_scalar.html | 154 -
builds/2.3.26-nightly/pgui_misc.html | 55 -
builds/2.3.26-nightly/pgui_misc_ant.html | 111 -
.../2.3.26-nightly/pgui_misc_beanwrapper.html | 666 --
builds/2.3.26-nightly/pgui_misc_charset.html | 172 -
.../2.3.26-nightly/pgui_misc_jythonwrapper.html | 133 -
builds/2.3.26-nightly/pgui_misc_logging.html | 239 -
.../pgui_misc_multithreading.html | 73 -
builds/2.3.26-nightly/pgui_misc_secureenv.html | 85 -
builds/2.3.26-nightly/pgui_misc_servlet.html | 691 --
builds/2.3.26-nightly/pgui_misc_var.html | 113 -
builds/2.3.26-nightly/pgui_misc_xml_legacy.html | 505 -
builds/2.3.26-nightly/pgui_quickstart.html | 54 -
builds/2.3.26-nightly/pgui_quickstart_all.html | 142 -
.../pgui_quickstart_createconfiguration.html | 100 -
.../pgui_quickstart_createdatamodel.html | 170 -
.../pgui_quickstart_gettemplate.html | 70 -
.../2.3.26-nightly/pgui_quickstart_merge.html | 78 -
builds/2.3.26-nightly/ref.html | 54 -
builds/2.3.26-nightly/ref_builtins.html | 54 -
.../2.3.26-nightly/ref_builtins_alphaidx.html | 503 -
builds/2.3.26-nightly/ref_builtins_boolean.html | 229 -
builds/2.3.26-nightly/ref_builtins_date.html | 545 --
builds/2.3.26-nightly/ref_builtins_expert.html | 762 --
builds/2.3.26-nightly/ref_builtins_hash.html | 142 -
.../2.3.26-nightly/ref_builtins_loop_var.html | 526 --
builds/2.3.26-nightly/ref_builtins_node.html | 287 -
builds/2.3.26-nightly/ref_builtins_number.html | 797 --
.../2.3.26-nightly/ref_builtins_sequence.html | 577 --
builds/2.3.26-nightly/ref_builtins_string.html | 2374 -----
.../ref_builtins_type_independent.html | 210 -
builds/2.3.26-nightly/ref_depr_builtin.html | 105 -
builds/2.3.26-nightly/ref_depr_directive.html | 91 -
.../ref_depr_numerical_interpolation.html | 135 -
builds/2.3.26-nightly/ref_depr_oldmacro.html | 198 -
builds/2.3.26-nightly/ref_depr_oldsyntax.html | 131 -
builds/2.3.26-nightly/ref_depr_transform.html | 163 -
builds/2.3.26-nightly/ref_deprecated.html | 54 -
.../2.3.26-nightly/ref_directive_alphaidx.html | 228 -
builds/2.3.26-nightly/ref_directive_assign.html | 212 -
.../2.3.26-nightly/ref_directive_attempt.html | 206 -
.../2.3.26-nightly/ref_directive_autoesc.html | 125 -
.../2.3.26-nightly/ref_directive_compress.html | 107 -
builds/2.3.26-nightly/ref_directive_escape.html | 232 -
builds/2.3.26-nightly/ref_directive_flush.html | 96 -
builds/2.3.26-nightly/ref_directive_ftl.html | 285 -
.../2.3.26-nightly/ref_directive_function.html | 173 -
builds/2.3.26-nightly/ref_directive_global.html | 136 -
builds/2.3.26-nightly/ref_directive_if.html | 196 -
builds/2.3.26-nightly/ref_directive_import.html | 153 -
.../2.3.26-nightly/ref_directive_include.html | 449 -
builds/2.3.26-nightly/ref_directive_list.html | 638 --
builds/2.3.26-nightly/ref_directive_local.html | 114 -
builds/2.3.26-nightly/ref_directive_macro.html | 450 -
.../2.3.26-nightly/ref_directive_noautoesc.html | 123 -
.../2.3.26-nightly/ref_directive_noparse.html | 105 -
builds/2.3.26-nightly/ref_directive_nt.html | 80 -
.../ref_directive_outputformat.html | 194 -
.../2.3.26-nightly/ref_directive_setting.html | 478 -
builds/2.3.26-nightly/ref_directive_stop.html | 96 -
builds/2.3.26-nightly/ref_directive_switch.html | 162 -
builds/2.3.26-nightly/ref_directive_t.html | 149 -
.../ref_directive_userDefined.html | 297 -
builds/2.3.26-nightly/ref_directive_visit.html | 384 -
builds/2.3.26-nightly/ref_directives.html | 54 -
builds/2.3.26-nightly/ref_reservednames.html | 96 -
builds/2.3.26-nightly/ref_specvar.html | 290 -
builds/2.3.26-nightly/search-results.html | 65 -
builds/2.3.26-nightly/sitemap.xml | 525 --
builds/2.3.26-nightly/toc.html | 64 -
builds/2.3.26-nightly/toc.js | 4945 ----------
builds/2.3.26-nightly/versions_2_0.html | 147 -
builds/2.3.26-nightly/versions_2_01.html | 59 -
builds/2.3.26-nightly/versions_2_0RC1.html | 268 -
builds/2.3.26-nightly/versions_2_0RC2.html | 219 -
builds/2.3.26-nightly/versions_2_0RC3.html | 138 -
builds/2.3.26-nightly/versions_2_1.html | 539 --
builds/2.3.26-nightly/versions_2_1_1.html | 125 -
builds/2.3.26-nightly/versions_2_1_2.html | 130 -
builds/2.3.26-nightly/versions_2_1_3.html | 94 -
builds/2.3.26-nightly/versions_2_1_4.html | 73 -
builds/2.3.26-nightly/versions_2_1_5.html | 88 -
builds/2.3.26-nightly/versions_2_2.html | 1107 ---
builds/2.3.26-nightly/versions_2_2_1.html | 126 -
builds/2.3.26-nightly/versions_2_2_2.html | 74 -
builds/2.3.26-nightly/versions_2_2_3.html | 106 -
builds/2.3.26-nightly/versions_2_2_4.html | 103 -
builds/2.3.26-nightly/versions_2_2_5.html | 68 -
builds/2.3.26-nightly/versions_2_2_6.html | 144 -
builds/2.3.26-nightly/versions_2_2_7.html | 70 -
builds/2.3.26-nightly/versions_2_2_8.html | 112 -
builds/2.3.26-nightly/versions_2_3.html | 1629 ----
builds/2.3.26-nightly/versions_2_3_1.html | 352 -
builds/2.3.26-nightly/versions_2_3_10.html | 116 -
builds/2.3.26-nightly/versions_2_3_11.html | 226 -
builds/2.3.26-nightly/versions_2_3_12.html | 88 -
builds/2.3.26-nightly/versions_2_3_13.html | 125 -
builds/2.3.26-nightly/versions_2_3_14.html | 136 -
builds/2.3.26-nightly/versions_2_3_15.html | 115 -
builds/2.3.26-nightly/versions_2_3_16.html | 135 -
builds/2.3.26-nightly/versions_2_3_17.html | 331 -
builds/2.3.26-nightly/versions_2_3_18.html | 87 -
builds/2.3.26-nightly/versions_2_3_19.html | 236 -
builds/2.3.26-nightly/versions_2_3_2.html | 77 -
builds/2.3.26-nightly/versions_2_3_20.html | 691 --
builds/2.3.26-nightly/versions_2_3_21.html | 1419 ---
builds/2.3.26-nightly/versions_2_3_22.html | 1197 ---
builds/2.3.26-nightly/versions_2_3_23.html | 423 -
builds/2.3.26-nightly/versions_2_3_24.html | 925 --
builds/2.3.26-nightly/versions_2_3_25.html | 228 -
builds/2.3.26-nightly/versions_2_3_26.html | 297 -
builds/2.3.26-nightly/versions_2_3_3.html | 223 -
builds/2.3.26-nightly/versions_2_3_4.html | 121 -
builds/2.3.26-nightly/versions_2_3_5.html | 162 -
builds/2.3.26-nightly/versions_2_3_6.html | 68 -
builds/2.3.26-nightly/versions_2_3_7.html | 172 -
builds/2.3.26-nightly/versions_2_3_7rc1.html | 129 -
builds/2.3.26-nightly/versions_2_3_8.html | 98 -
builds/2.3.26-nightly/versions_2_3_9.html | 119 -
builds/2.3.26-nightly/xgui.html | 54 -
builds/2.3.26-nightly/xgui_declarative.html | 54 -
.../2.3.26-nightly/xgui_declarative_basics.html | 198 -
.../xgui_declarative_details.html | 220 -
builds/2.3.26-nightly/xgui_expose.html | 54 -
builds/2.3.26-nightly/xgui_expose_dom.html | 173 -
builds/2.3.26-nightly/xgui_expose_put.html | 83 -
builds/2.3.26-nightly/xgui_imperative.html | 54 -
.../2.3.26-nightly/xgui_imperative_formal.html | 545 --
.../2.3.26-nightly/xgui_imperative_learn.html | 656 --
builds/2.3.26-nightly/xgui_preface.html | 74 -
.../documentation/_html/alphaidx.html | 1704 ++++
.../_html/api/allclasses-frame.html | 288 +
.../_html/api/allclasses-noframe.html | 288 +
.../_html/api/constant-values.html | 4197 +++++++++
.../_html/api/deprecated-list.html | 764 ++
.../_html/api/freemarker/cache/AndMatcher.html | 289 +
.../cache/ByteArrayTemplateLoader.html | 507 +
.../api/freemarker/cache/CacheStorage.html | 281 +
.../cache/CacheStorageWithGetSize.html | 248 +
.../freemarker/cache/ClassTemplateLoader.html | 504 +
.../cache/ConcurrentCacheStorage.html | 250 +
...ConditionalTemplateConfigurationFactory.html | 355 +
.../freemarker/cache/FileExtensionMatcher.html | 340 +
.../freemarker/cache/FileNameGlobMatcher.html | 342 +
.../freemarker/cache/FileTemplateLoader.html | 673 ++
.../FirstMatchTemplateConfigurationFactory.html | 438 +
.../MergingTemplateConfigurationFactory.html | 340 +
.../api/freemarker/cache/MruCacheStorage.html | 486 +
.../freemarker/cache/MultiTemplateLoader.html | 567 ++
.../_html/api/freemarker/cache/NotMatcher.html | 289 +
.../api/freemarker/cache/NullCacheStorage.html | 430 +
.../_html/api/freemarker/cache/OrMatcher.html | 289 +
.../api/freemarker/cache/PathGlobMatcher.html | 356 +
.../api/freemarker/cache/PathRegexMatcher.html | 296 +
.../api/freemarker/cache/SoftCacheStorage.html | 402 +
.../cache/StatefulTemplateLoader.html | 246 +
.../freemarker/cache/StringTemplateLoader.html | 562 ++
.../freemarker/cache/StrongCacheStorage.html | 386 +
.../TemplateCache.MaybeMissingTemplate.html | 286 +
.../api/freemarker/cache/TemplateCache.html | 899 ++
.../cache/TemplateConfigurationFactory.html | 358 +
.../TemplateConfigurationFactoryException.html | 280 +
.../api/freemarker/cache/TemplateLoader.html | 388 +
.../freemarker/cache/TemplateLookupContext.html | 367 +
.../freemarker/cache/TemplateLookupResult.html | 266 +
.../cache/TemplateLookupStrategy.html | 381 +
.../freemarker/cache/TemplateNameFormat.html | 319 +
.../freemarker/cache/TemplateSourceMatcher.html | 246 +
.../api/freemarker/cache/URLTemplateLoader.html | 535 ++
.../freemarker/cache/WebappTemplateLoader.html | 574 ++
.../freemarker/cache/class-use/AndMatcher.html | 125 +
.../class-use/ByteArrayTemplateLoader.html | 125 +
.../cache/class-use/CacheStorage.html | 311 +
.../class-use/CacheStorageWithGetSize.html | 188 +
.../cache/class-use/ClassTemplateLoader.html | 125 +
.../cache/class-use/ConcurrentCacheStorage.html | 182 +
...ConditionalTemplateConfigurationFactory.html | 125 +
.../cache/class-use/FileExtensionMatcher.html | 169 +
.../cache/class-use/FileNameGlobMatcher.html | 169 +
.../cache/class-use/FileTemplateLoader.html | 125 +
.../FirstMatchTemplateConfigurationFactory.html | 175 +
.../MergingTemplateConfigurationFactory.html | 125 +
.../cache/class-use/MruCacheStorage.html | 125 +
.../cache/class-use/MultiTemplateLoader.html | 125 +
.../freemarker/cache/class-use/NotMatcher.html | 125 +
.../cache/class-use/NullCacheStorage.html | 167 +
.../freemarker/cache/class-use/OrMatcher.html | 125 +
.../cache/class-use/PathGlobMatcher.html | 169 +
.../cache/class-use/PathRegexMatcher.html | 125 +
.../cache/class-use/SoftCacheStorage.html | 125 +
.../cache/class-use/StatefulTemplateLoader.html | 169 +
.../cache/class-use/StringTemplateLoader.html | 125 +
.../cache/class-use/StrongCacheStorage.html | 125 +
.../TemplateCache.MaybeMissingTemplate.html | 174 +
.../cache/class-use/TemplateCache.html | 125 +
.../class-use/TemplateConfigurationFactory.html | 265 +
.../TemplateConfigurationFactoryException.html | 185 +
.../cache/class-use/TemplateLoader.html | 385 +
.../cache/class-use/TemplateLookupContext.html | 170 +
.../cache/class-use/TemplateLookupResult.html | 192 +
.../cache/class-use/TemplateLookupStrategy.html | 254 +
.../cache/class-use/TemplateNameFormat.html | 260 +
.../cache/class-use/TemplateSourceMatcher.html | 231 +
.../cache/class-use/URLTemplateLoader.html | 169 +
.../cache/class-use/WebappTemplateLoader.html | 125 +
.../api/freemarker/cache/package-frame.html | 61 +
.../api/freemarker/cache/package-summary.html | 394 +
.../api/freemarker/cache/package-tree.html | 198 +
.../_html/api/freemarker/cache/package-use.html | 333 +
.../core/AliasTemplateDateFormatFactory.html | 373 +
.../core/AliasTemplateNumberFormatFactory.html | 349 +
.../core/ArithmeticEngine.BigDecimalEngine.html | 447 +
.../ArithmeticEngine.ConservativeEngine.html | 478 +
.../api/freemarker/core/ArithmeticEngine.html | 579 ++
.../_html/api/freemarker/core/BugException.html | 321 +
.../api/freemarker/core/BuiltInForNodeEx.html | 557 ++
.../api/freemarker/core/CSSOutputFormat.html | 356 +
...lPlaceCustomDataInitializationException.html | 268 +
.../core/CombinedMarkupOutputFormat.html | 552 ++
.../_html/api/freemarker/core/CommandLine.html | 284 +
.../core/CommonMarkupOutputFormat.html | 609 ++
.../core/CommonTemplateMarkupOutputModel.html | 322 +
...gurable.SettingValueAssignmentException.html | 248 +
.../Configurable.UnknownSettingException.html | 245 +
.../_html/api/freemarker/core/Configurable.html | 4952 ++++++++++
.../api/freemarker/core/CustomAttribute.html | 629 ++
.../api/freemarker/core/DirectiveCallPlace.html | 389 +
.../freemarker/core/Environment.Namespace.html | 308 +
.../_html/api/freemarker/core/Environment.html | 2255 +++++
.../api/freemarker/core/FreeMarkerTree.html | 441 +
.../api/freemarker/core/HTMLOutputFormat.html | 443 +
.../core/InvalidFormatParametersException.html | 291 +
.../core/InvalidFormatStringException.html | 290 +
.../core/InvalidReferenceException.html | 301 +
.../api/freemarker/core/JSONOutputFormat.html | 356 +
.../freemarker/core/JavaScriptOutputFormat.html | 357 +
.../api/freemarker/core/MarkupOutputFormat.html | 577 ++
.../freemarker/core/NonBooleanException.html | 295 +
.../api/freemarker/core/NonDateException.html | 295 +
.../core/NonExtendedHashException.html | 295 +
.../core/NonExtendedNodeException.html | 297 +
.../api/freemarker/core/NonHashException.html | 297 +
.../core/NonMarkupOutputException.html | 297 +
.../api/freemarker/core/NonMethodException.html | 297 +
.../api/freemarker/core/NonNodeException.html | 297 +
.../freemarker/core/NonNumericalException.html | 295 +
.../freemarker/core/NonSequenceException.html | 297 +
.../core/NonSequenceOrCollectionException.html | 332 +
.../api/freemarker/core/NonStringException.html | 296 +
.../NonStringOrTemplateOutputException.html | 296 +
.../core/OptInTemplateClassResolver.html | 362 +
.../_html/api/freemarker/core/OutputFormat.html | 371 +
.../api/freemarker/core/ParseException.html | 3566 +++++++
.../freemarker/core/ParserConfiguration.html | 384 +
.../core/ParsingNotSupportedException.html | 285 +
.../freemarker/core/PlainTextOutputFormat.html | 360 +
.../api/freemarker/core/RTFOutputFormat.html | 443 +
.../api/freemarker/core/StopException.html | 305 +
.../freemarker/core/TemplateClassResolver.html | 330 +
.../core/TemplateCombinedMarkupOutputModel.html | 277 +
.../freemarker/core/TemplateConfiguration.html | 973 ++
.../api/freemarker/core/TemplateDateFormat.html | 414 +
.../core/TemplateDateFormatFactory.html | 342 +
.../api/freemarker/core/TemplateFormatUtil.html | 300 +
.../core/TemplateHTMLOutputModel.html | 277 +
.../core/TemplateMarkupOutputModel.html | 271 +
.../freemarker/core/TemplateNumberFormat.html | 382 +
.../core/TemplateNumberFormatFactory.html | 318 +
.../freemarker/core/TemplateRTFOutputModel.html | 277 +
.../freemarker/core/TemplateValueFormat.html | 284 +
.../core/TemplateValueFormatException.html | 285 +
.../core/TemplateValueFormatFactory.html | 247 +
.../core/TemplateXHTMLOutputModel.html | 277 +
.../freemarker/core/TemplateXMLOutputModel.html | 277 +
.../core/UndefinedCustomFormatException.html | 289 +
.../freemarker/core/UndefinedOutputFormat.html | 359 +
.../core/UnexpectedTypeException.html | 284 +
.../core/UnformattableValueException.html | 291 +
...nDateTypeFormattingUnsupportedException.html | 276 +
...nownDateTypeParsingUnsupportedException.html | 277 +
.../core/UnparsableValueException.html | 286 +
.../core/UnregisteredOutputFormatException.html | 279 +
.../api/freemarker/core/XHTMLOutputFormat.html | 443 +
.../api/freemarker/core/XMLOutputFormat.html | 443 +
.../AliasTemplateDateFormatFactory.html | 125 +
.../AliasTemplateNumberFormatFactory.html | 125 +
.../ArithmeticEngine.BigDecimalEngine.html | 170 +
.../ArithmeticEngine.ConservativeEngine.html | 171 +
.../core/class-use/ArithmeticEngine.html | 212 +
.../freemarker/core/class-use/BugException.html | 125 +
.../core/class-use/BuiltInForNodeEx.html | 125 +
.../core/class-use/CSSOutputFormat.html | 169 +
...lPlaceCustomDataInitializationException.html | 171 +
.../class-use/CombinedMarkupOutputFormat.html | 167 +
.../freemarker/core/class-use/CommandLine.html | 125 +
.../class-use/CommonMarkupOutputFormat.html | 206 +
.../CommonTemplateMarkupOutputModel.html | 216 +
...gurable.SettingValueAssignmentException.html | 125 +
.../Configurable.UnknownSettingException.html | 125 +
.../freemarker/core/class-use/Configurable.html | 241 +
.../core/class-use/CustomAttribute.html | 125 +
.../core/class-use/DirectiveCallPlace.html | 170 +
.../core/class-use/Environment.Namespace.html | 211 +
.../freemarker/core/class-use/Environment.html | 609 ++
.../core/class-use/FreeMarkerTree.html | 125 +
.../core/class-use/HTMLOutputFormat.html | 182 +
.../InvalidFormatParametersException.html | 167 +
.../class-use/InvalidFormatStringException.html | 174 +
.../class-use/InvalidReferenceException.html | 125 +
.../core/class-use/JSONOutputFormat.html | 169 +
.../core/class-use/JavaScriptOutputFormat.html | 169 +
.../core/class-use/MarkupOutputFormat.html | 255 +
.../core/class-use/NonBooleanException.html | 125 +
.../core/class-use/NonDateException.html | 125 +
.../class-use/NonExtendedHashException.html | 125 +
.../class-use/NonExtendedNodeException.html | 125 +
.../core/class-use/NonHashException.html | 125 +
.../class-use/NonMarkupOutputException.html | 125 +
.../core/class-use/NonMethodException.html | 125 +
.../core/class-use/NonNodeException.html | 125 +
.../core/class-use/NonNumericalException.html | 125 +
.../core/class-use/NonSequenceException.html | 125 +
.../NonSequenceOrCollectionException.html | 125 +
.../core/class-use/NonStringException.html | 125 +
.../NonStringOrTemplateOutputException.html | 125 +
.../class-use/OptInTemplateClassResolver.html | 125 +
.../freemarker/core/class-use/OutputFormat.html | 359 +
.../core/class-use/ParseException.html | 299 +
.../core/class-use/ParserConfiguration.html | 233 +
.../class-use/ParsingNotSupportedException.html | 125 +
.../core/class-use/PlainTextOutputFormat.html | 167 +
.../core/class-use/RTFOutputFormat.html | 182 +
.../core/class-use/StopException.html | 125 +
.../core/class-use/TemplateClassResolver.html | 230 +
.../TemplateCombinedMarkupOutputModel.html | 168 +
.../core/class-use/TemplateConfiguration.html | 237 +
.../core/class-use/TemplateDateFormat.html | 231 +
.../class-use/TemplateDateFormatFactory.html | 224 +
.../core/class-use/TemplateFormatUtil.html | 125 +
.../core/class-use/TemplateHTMLOutputModel.html | 168 +
.../class-use/TemplateMarkupOutputModel.html | 223 +
.../core/class-use/TemplateNumberFormat.html | 196 +
.../class-use/TemplateNumberFormatFactory.html | 224 +
.../core/class-use/TemplateRTFOutputModel.html | 168 +
.../core/class-use/TemplateValueFormat.html | 175 +
.../class-use/TemplateValueFormatException.html | 359 +
.../class-use/TemplateValueFormatFactory.html | 189 +
.../class-use/TemplateXHTMLOutputModel.html | 168 +
.../core/class-use/TemplateXMLOutputModel.html | 168 +
.../UndefinedCustomFormatException.html | 125 +
.../core/class-use/UndefinedOutputFormat.html | 167 +
.../core/class-use/UnexpectedTypeException.html | 244 +
.../class-use/UnformattableValueException.html | 192 +
...nDateTypeFormattingUnsupportedException.html | 125 +
...nownDateTypeParsingUnsupportedException.html | 125 +
.../class-use/UnparsableValueException.html | 125 +
.../UnregisteredOutputFormatException.html | 171 +
.../core/class-use/XHTMLOutputFormat.html | 182 +
.../core/class-use/XMLOutputFormat.html | 182 +
.../api/freemarker/core/package-frame.html | 100 +
.../api/freemarker/core/package-summary.html | 633 ++
.../_html/api/freemarker/core/package-tree.html | 317 +
.../_html/api/freemarker/core/package-use.html | 514 ++
.../_html/api/freemarker/debug/Breakpoint.html | 378 +
.../_html/api/freemarker/debug/DebugModel.html | 748 ++
.../freemarker/debug/DebuggedEnvironment.html | 315 +
.../_html/api/freemarker/debug/Debugger.html | 459 +
.../api/freemarker/debug/DebuggerClient.html | 267 +
.../api/freemarker/debug/DebuggerListener.html | 238 +
.../debug/EnvironmentSuspendedEvent.html | 366 +
.../freemarker/debug/class-use/Breakpoint.html | 176 +
.../freemarker/debug/class-use/DebugModel.html | 201 +
.../debug/class-use/DebuggedEnvironment.html | 184 +
.../freemarker/debug/class-use/Debugger.html | 173 +
.../debug/class-use/DebuggerClient.html | 125 +
.../debug/class-use/DebuggerListener.html | 170 +
.../class-use/EnvironmentSuspendedEvent.html | 170 +
.../api/freemarker/debug/package-frame.html | 30 +
.../api/freemarker/debug/package-summary.html | 208 +
.../api/freemarker/debug/package-tree.html | 163 +
.../_html/api/freemarker/debug/package-use.html | 191 +
.../freemarker/ext/ant/FreemarkerXmlTask.html | 797 ++
.../api/freemarker/ext/ant/JythonAntTask.html | 360 +
.../ext/ant/UnlinkedJythonOperationsImpl.html | 300 +
.../ext/ant/class-use/FreemarkerXmlTask.html | 125 +
.../ext/ant/class-use/JythonAntTask.html | 183 +
.../class-use/UnlinkedJythonOperationsImpl.html | 125 +
.../api/freemarker/ext/ant/package-frame.html | 23 +
.../api/freemarker/ext/ant/package-summary.html | 170 +
.../api/freemarker/ext/ant/package-tree.html | 152 +
.../api/freemarker/ext/ant/package-use.html | 164 +
.../api/freemarker/ext/beans/ArrayModel.html | 414 +
.../api/freemarker/ext/beans/BeanModel.html | 680 ++
.../freemarker/ext/beans/BeansModelCache.html | 271 +
.../BeansWrapper.MethodAppearanceDecision.html | 344 +
...nsWrapper.MethodAppearanceDecisionInput.html | 290 +
.../api/freemarker/ext/beans/BeansWrapper.html | 1773 ++++
.../ext/beans/BeansWrapperBuilder.html | 374 +
.../ext/beans/BeansWrapperConfiguration.html | 649 ++
.../api/freemarker/ext/beans/BooleanModel.html | 328 +
.../freemarker/ext/beans/CollectionModel.html | 431 +
.../api/freemarker/ext/beans/DateModel.html | 364 +
.../freemarker/ext/beans/EnumerationModel.html | 407 +
.../api/freemarker/ext/beans/HashAdapter.html | 366 +
.../ext/beans/InvalidPropertyException.html | 282 +
.../api/freemarker/ext/beans/IteratorModel.html | 411 +
.../api/freemarker/ext/beans/MapModel.html | 475 +
.../ext/beans/MethodAppearanceFineTuner.html | 288 +
.../api/freemarker/ext/beans/NumberModel.html | 337 +
.../ext/beans/OverloadedMethodsModel.html | 338 +
.../ext/beans/ResourceBundleModel.html | 483 +
.../freemarker/ext/beans/SimpleMapModel.html | 558 ++
.../freemarker/ext/beans/SimpleMethodModel.html | 387 +
.../ext/beans/SingletonCustomizer.html | 193 +
.../api/freemarker/ext/beans/StringModel.html | 348 +
.../ext/beans/class-use/ArrayModel.html | 125 +
.../ext/beans/class-use/BeanModel.html | 233 +
.../ext/beans/class-use/BeansModelCache.html | 125 +
.../BeansWrapper.MethodAppearanceDecision.html | 186 +
...nsWrapper.MethodAppearanceDecisionInput.html | 172 +
.../ext/beans/class-use/BeansWrapper.html | 343 +
.../beans/class-use/BeansWrapperBuilder.html | 125 +
.../class-use/BeansWrapperConfiguration.html | 243 +
.../ext/beans/class-use/BooleanModel.html | 125 +
.../ext/beans/class-use/CollectionModel.html | 125 +
.../ext/beans/class-use/DateModel.html | 125 +
.../ext/beans/class-use/EnumerationModel.html | 125 +
.../ext/beans/class-use/HashAdapter.html | 125 +
.../class-use/InvalidPropertyException.html | 125 +
.../ext/beans/class-use/IteratorModel.html | 125 +
.../ext/beans/class-use/MapModel.html | 125 +
.../class-use/MethodAppearanceFineTuner.html | 196 +
.../ext/beans/class-use/NumberModel.html | 125 +
.../beans/class-use/OverloadedMethodsModel.html | 125 +
.../beans/class-use/ResourceBundleModel.html | 125 +
.../ext/beans/class-use/SimpleMapModel.html | 125 +
.../ext/beans/class-use/SimpleMethodModel.html | 125 +
.../beans/class-use/SingletonCustomizer.html | 125 +
.../ext/beans/class-use/StringModel.html | 180 +
.../api/freemarker/ext/beans/package-frame.html | 50 +
.../freemarker/ext/beans/package-summary.html | 344 +
.../api/freemarker/ext/beans/package-tree.html | 201 +
.../api/freemarker/ext/beans/package-use.html | 254 +
.../_html/api/freemarker/ext/dom/NodeModel.html | 1119 +++
.../_html/api/freemarker/ext/dom/Transform.html | 249 +
.../api/freemarker/ext/dom/XPathSupport.html | 229 +
.../freemarker/ext/dom/class-use/NodeModel.html | 200 +
.../freemarker/ext/dom/class-use/Transform.html | 125 +
.../ext/dom/class-use/XPathSupport.html | 125 +
.../api/freemarker/ext/dom/package-frame.html | 26 +
.../api/freemarker/ext/dom/package-summary.html | 179 +
.../api/freemarker/ext/dom/package-tree.html | 143 +
.../api/freemarker/ext/dom/package-use.html | 163 +
.../api/freemarker/ext/jdom/NodeListModel.html | 760 ++
.../ext/jdom/class-use/NodeListModel.html | 125 +
.../api/freemarker/ext/jdom/package-frame.html | 21 +
.../freemarker/ext/jdom/package-summary.html | 156 +
.../api/freemarker/ext/jdom/package-tree.html | 138 +
.../api/freemarker/ext/jdom/package-use.html | 125 +
.../api/freemarker/ext/jsp/EventForwarding.html | 437 +
.../api/freemarker/ext/jsp/FreemarkerTag.html | 491 +
...TaglibFactory.ClasspathMetaInfTldSource.html | 303 +
.../TaglibFactory.ClearMetaInfTldSource.html | 257 +
.../ext/jsp/TaglibFactory.MetaInfTldSource.html | 212 +
...Factory.WebInfPerLibJarMetaInfTldSource.html | 256 +
.../api/freemarker/ext/jsp/TaglibFactory.html | 601 ++
.../ext/jsp/class-use/EventForwarding.html | 125 +
.../ext/jsp/class-use/FreemarkerTag.html | 125 +
...TaglibFactory.ClasspathMetaInfTldSource.html | 125 +
.../TaglibFactory.ClearMetaInfTldSource.html | 168 +
.../TaglibFactory.MetaInfTldSource.html | 184 +
...Factory.WebInfPerLibJarMetaInfTldSource.html | 168 +
.../ext/jsp/class-use/TaglibFactory.html | 172 +
.../api/freemarker/ext/jsp/package-frame.html | 27 +
.../api/freemarker/ext/jsp/package-summary.html | 200 +
.../api/freemarker/ext/jsp/package-tree.html | 147 +
.../api/freemarker/ext/jsp/package-use.html | 199 +
.../freemarker/ext/jython/JythonHashModel.html | 411 +
.../api/freemarker/ext/jython/JythonModel.html | 543 ++
.../ext/jython/JythonNumberModel.html | 344 +
.../ext/jython/JythonSequenceModel.html | 390 +
.../ext/jython/JythonVersionAdapter.html | 314 +
.../freemarker/ext/jython/JythonWrapper.html | 431 +
.../ext/jython/class-use/JythonHashModel.html | 125 +
.../ext/jython/class-use/JythonModel.html | 183 +
.../ext/jython/class-use/JythonNumberModel.html | 125 +
.../jython/class-use/JythonSequenceModel.html | 125 +
.../jython/class-use/JythonVersionAdapter.html | 125 +
.../ext/jython/class-use/JythonWrapper.html | 195 +
.../freemarker/ext/jython/package-frame.html | 26 +
.../freemarker/ext/jython/package-summary.html | 197 +
.../api/freemarker/ext/jython/package-tree.html | 146 +
.../api/freemarker/ext/jython/package-use.html | 168 +
.../ext/rhino/RhinoFunctionModel.html | 346 +
.../ext/rhino/RhinoScriptableModel.html | 549 ++
.../api/freemarker/ext/rhino/RhinoWrapper.html | 392 +
.../ext/rhino/class-use/RhinoFunctionModel.html | 125 +
.../rhino/class-use/RhinoScriptableModel.html | 167 +
.../ext/rhino/class-use/RhinoWrapper.html | 125 +
.../api/freemarker/ext/rhino/package-frame.html | 23 +
.../freemarker/ext/rhino/package-summary.html | 160 +
.../api/freemarker/ext/rhino/package-tree.html | 147 +
.../api/freemarker/ext/rhino/package-use.html | 160 +
.../ext/servlet/AllHttpScopesHashModel.html | 404 +
.../ext/servlet/FreemarkerServlet.html | 1881 ++++
.../ext/servlet/HttpRequestHashModel.html | 449 +
.../servlet/HttpRequestParametersHashModel.html | 397 +
.../ext/servlet/HttpSessionHashModel.html | 376 +
.../api/freemarker/ext/servlet/IncludePage.html | 343 +
.../ext/servlet/ServletContextHashModel.html | 368 +
.../class-use/AllHttpScopesHashModel.html | 125 +
.../servlet/class-use/FreemarkerServlet.html | 172 +
.../servlet/class-use/HttpRequestHashModel.html | 125 +
.../HttpRequestParametersHashModel.html | 169 +
.../servlet/class-use/HttpSessionHashModel.html | 125 +
.../ext/servlet/class-use/IncludePage.html | 125 +
.../class-use/ServletContextHashModel.html | 125 +
.../freemarker/ext/servlet/package-frame.html | 27 +
.../freemarker/ext/servlet/package-summary.html | 196 +
.../freemarker/ext/servlet/package-tree.html | 160 +
.../api/freemarker/ext/servlet/package-use.html | 169 +
.../freemarker/ext/util/IdentityHashMap.html | 828 ++
.../api/freemarker/ext/util/ModelCache.html | 354 +
.../api/freemarker/ext/util/ModelFactory.html | 230 +
.../ext/util/WrapperTemplateModel.html | 253 +
.../ext/util/class-use/IdentityHashMap.html | 125 +
.../ext/util/class-use/ModelCache.html | 168 +
.../ext/util/class-use/ModelFactory.html | 212 +
.../util/class-use/WrapperTemplateModel.html | 394 +
.../api/freemarker/ext/util/package-frame.html | 27 +
.../freemarker/ext/util/package-summary.html | 185 +
.../api/freemarker/ext/util/package-tree.html | 152 +
.../api/freemarker/ext/util/package-use.html | 273 +
.../api/freemarker/ext/xml/NodeListModel.html | 850 ++
.../ext/xml/class-use/NodeListModel.html | 125 +
.../api/freemarker/ext/xml/package-frame.html | 21 +
.../api/freemarker/ext/xml/package-summary.html | 156 +
.../api/freemarker/ext/xml/package-tree.html | 138 +
.../api/freemarker/ext/xml/package-use.html | 125 +
.../_html/api/freemarker/log/Logger.html | 934 ++
.../api/freemarker/log/class-use/Logger.html | 170 +
.../_html/api/freemarker/log/package-frame.html | 21 +
.../api/freemarker/log/package-summary.html | 156 +
.../_html/api/freemarker/log/package-tree.html | 138 +
.../_html/api/freemarker/log/package-use.html | 163 +
.../template/AdapterTemplateModel.html | 274 +
.../api/freemarker/template/Configuration.html | 5737 ++++++++++++
.../template/DefaultArrayAdapter.html | 353 +
.../template/DefaultEnumerationAdapter.html | 395 +
.../template/DefaultIterableAdapter.html | 406 +
.../template/DefaultIteratorAdapter.html | 405 +
.../freemarker/template/DefaultListAdapter.html | 464 +
.../freemarker/template/DefaultMapAdapter.html | 522 ++
.../DefaultNonListCollectionAdapter.html | 471 +
.../template/DefaultObjectWrapper.html | 752 ++
.../template/DefaultObjectWrapperBuilder.html | 319 +
.../DefaultObjectWrapperConfiguration.html | 434 +
.../freemarker/template/LocalizedString.html | 352 +
.../MalformedTemplateNameException.html | 324 +
.../template/MapKeyValuePairIterator.html | 316 +
.../api/freemarker/template/ObjectWrapper.html | 362 +
.../template/ObjectWrapperAndUnwrapper.html | 367 +
.../template/ResourceBundleLocalizedString.html | 326 +
.../freemarker/template/SimpleCollection.html | 386 +
.../api/freemarker/template/SimpleDate.html | 407 +
.../api/freemarker/template/SimpleHash.html | 742 ++
.../api/freemarker/template/SimpleList.html | 319 +
.../api/freemarker/template/SimpleNumber.html | 399 +
.../template/SimpleObjectWrapper.html | 412 +
.../api/freemarker/template/SimpleScalar.html | 367 +
.../api/freemarker/template/SimpleSequence.html | 676 ++
.../Template.WrongEncodingException.html | 3092 +++++++
.../_html/api/freemarker/template/Template.html | 1466 +++
.../template/TemplateBooleanModel.html | 305 +
.../template/TemplateCollectionModel.html | 273 +
.../template/TemplateCollectionModelEx.html | 292 +
.../freemarker/template/TemplateDateModel.html | 386 +
.../template/TemplateDirectiveBody.html | 246 +
.../template/TemplateDirectiveModel.html | 294 +
.../freemarker/template/TemplateException.html | 832 ++
.../template/TemplateExceptionHandler.html | 345 +
.../freemarker/template/TemplateHashModel.html | 286 +
.../template/TemplateHashModelEx.html | 316 +
.../TemplateHashModelEx2.KeyValuePair.html | 258 +
...mplateHashModelEx2.KeyValuePairIterator.html | 268 +
.../template/TemplateHashModelEx2.html | 302 +
.../template/TemplateMethodModel.html | 283 +
.../template/TemplateMethodModelEx.html | 273 +
.../api/freemarker/template/TemplateModel.html | 251 +
.../template/TemplateModelAdapter.html | 235 +
.../template/TemplateModelException.html | 452 +
.../template/TemplateModelIterator.html | 257 +
.../template/TemplateModelListSequence.html | 344 +
.../template/TemplateModelWithAPISupport.html | 264 +
.../freemarker/template/TemplateNodeModel.html | 366 +
.../template/TemplateNodeModelEx.html | 285 +
.../template/TemplateNotFoundException.html | 339 +
.../template/TemplateNumberModel.html | 263 +
.../template/TemplateScalarModel.html | 293 +
.../template/TemplateSequenceModel.html | 289 +
.../template/TemplateTransformModel.html | 278 +
.../freemarker/template/TransformControl.html | 423 +
.../_html/api/freemarker/template/Version.html | 545 ++
.../template/WrappingTemplateModel.html | 407 +
.../class-use/AdapterTemplateModel.html | 422 +
.../template/class-use/Configuration.html | 489 +
.../template/class-use/DefaultArrayAdapter.html | 172 +
.../class-use/DefaultEnumerationAdapter.html | 172 +
.../class-use/DefaultIterableAdapter.html | 172 +
.../class-use/DefaultIteratorAdapter.html | 172 +
.../template/class-use/DefaultListAdapter.html | 172 +
.../template/class-use/DefaultMapAdapter.html | 172 +
.../DefaultNonListCollectionAdapter.html | 172 +
.../class-use/DefaultObjectWrapper.html | 187 +
.../class-use/DefaultObjectWrapperBuilder.html | 125 +
.../DefaultObjectWrapperConfiguration.html | 187 +
.../template/class-use/LocalizedString.html | 172 +
.../MalformedTemplateNameException.html | 253 +
.../class-use/MapKeyValuePairIterator.html | 125 +
.../template/class-use/ObjectWrapper.html | 766 ++
.../class-use/ObjectWrapperAndUnwrapper.html | 272 +
.../ResourceBundleLocalizedString.html | 125 +
.../template/class-use/SimpleCollection.html | 125 +
.../template/class-use/SimpleDate.html | 125 +
.../template/class-use/SimpleHash.html | 222 +
.../template/class-use/SimpleList.html | 125 +
.../template/class-use/SimpleNumber.html | 125 +
.../template/class-use/SimpleObjectWrapper.html | 125 +
.../template/class-use/SimpleScalar.html | 171 +
.../template/class-use/SimpleSequence.html | 186 +
.../Template.WrongEncodingException.html | 125 +
.../freemarker/template/class-use/Template.html | 530 ++
.../class-use/TemplateBooleanModel.html | 307 +
.../class-use/TemplateCollectionModel.html | 503 +
.../class-use/TemplateCollectionModelEx.html | 172 +
.../template/class-use/TemplateDateModel.html | 237 +
.../class-use/TemplateDirectiveBody.html | 204 +
.../class-use/TemplateDirectiveModel.html | 203 +
.../template/class-use/TemplateException.html | 711 ++
.../class-use/TemplateExceptionHandler.html | 249 +
.../template/class-use/TemplateHashModel.html | 655 ++
.../template/class-use/TemplateHashModelEx.html | 461 +
.../TemplateHashModelEx2.KeyValuePair.html | 175 +
...mplateHashModelEx2.KeyValuePairIterator.html | 218 +
.../class-use/TemplateHashModelEx2.html | 260 +
.../template/class-use/TemplateMethodModel.html | 359 +
.../class-use/TemplateMethodModelEx.html | 312 +
.../template/class-use/TemplateModel.html | 1706 ++++
.../class-use/TemplateModelAdapter.html | 168 +
.../class-use/TemplateModelException.html | 1490 +++
.../class-use/TemplateModelIterator.html | 332 +
.../class-use/TemplateModelListSequence.html | 125 +
.../class-use/TemplateModelWithAPISupport.html | 314 +
.../template/class-use/TemplateNodeModel.html | 325 +
.../template/class-use/TemplateNodeModelEx.html | 217 +
.../class-use/TemplateNotFoundException.html | 225 +
.../template/class-use/TemplateNumberModel.html | 324 +
.../template/class-use/TemplateScalarModel.html | 356 +
.../class-use/TemplateSequenceModel.html | 437 +
.../class-use/TemplateTransformModel.html | 205 +
.../template/class-use/TransformControl.html | 125 +
.../freemarker/template/class-use/Version.html | 432 +
.../class-use/WrappingTemplateModel.html | 323 +
.../api/freemarker/template/package-frame.html | 85 +
.../freemarker/template/package-summary.html | 563 ++
.../api/freemarker/template/package-tree.html | 270 +
.../api/freemarker/template/package-use.html | 1339 +++
.../template/utility/CaptureOutput.html | 355 +
.../freemarker/template/utility/ClassUtil.html | 435 +
.../template/utility/CollectionUtils.html | 274 +
.../template/utility/Collections12.html | 303 +
.../freemarker/template/utility/Constants.html | 398 +
.../template/utility/DOMNodeModel.html | 327 +
.../DateUtil.CalendarFieldsToDateConverter.html | 252 +
.../utility/DateUtil.DateParseException.html | 279 +
.../DateUtil.DateToISO8601CalendarFactory.html | 241 +
...il.TrivialCalendarFieldsToDateConverter.html | 308 +
...til.TrivialDateToISO8601CalendarFactory.html | 296 +
.../freemarker/template/utility/DateUtil.html | 720 ++
.../freemarker/template/utility/DeepUnwrap.html | 358 +
.../freemarker/template/utility/Execute.html | 336 +
.../freemarker/template/utility/HtmlEscape.html | 346 +
.../template/utility/JythonRuntime.html | 339 +
.../template/utility/NormalizeNewlines.html | 374 +
.../template/utility/NullArgumentException.html | 358 +
.../freemarker/template/utility/NullWriter.html | 506 +
.../freemarker/template/utility/NumberUtil.html | 319 +
.../template/utility/ObjectConstructor.html | 327 +
.../template/utility/ObjectFactory.html | 232 +
.../utility/ObjectWrapperWithAPISupport.html | 281 +
.../template/utility/OptimizerUtil.html | 263 +
.../template/utility/RichObjectWrapper.html | 244 +
.../template/utility/SecurityUtilities.html | 268 +
.../template/utility/StandardCompress.html | 405 +
.../freemarker/template/utility/StringUtil.html | 1556 ++++
.../template/utility/ToCanonical.html | 286 +
.../utility/UndeclaredThrowableException.html | 321 +
.../utility/UnrecognizedTimeZoneException.html | 298 +
.../UnsupportedNumberClassException.html | 303 +
.../template/utility/WriteProtectable.html | 248 +
.../freemarker/template/utility/XmlEscape.html | 324 +
.../utility/class-use/CaptureOutput.html | 125 +
.../template/utility/class-use/ClassUtil.html | 125 +
.../utility/class-use/CollectionUtils.html | 125 +
.../utility/class-use/Collections12.html | 125 +
.../template/utility/class-use/Constants.html | 125 +
.../utility/class-use/DOMNodeModel.html | 125 +
.../DateUtil.CalendarFieldsToDateConverter.html | 226 +
.../class-use/DateUtil.DateParseException.html | 217 +
.../DateUtil.DateToISO8601CalendarFactory.html | 204 +
...il.TrivialCalendarFieldsToDateConverter.html | 125 +
...til.TrivialDateToISO8601CalendarFactory.html | 125 +
.../template/utility/class-use/DateUtil.html | 125 +
.../template/utility/class-use/DeepUnwrap.html | 125 +
.../template/utility/class-use/Execute.html | 125 +
.../template/utility/class-use/HtmlEscape.html | 125 +
.../utility/class-use/JythonRuntime.html | 125 +
.../utility/class-use/NormalizeNewlines.html | 125 +
.../class-use/NullArgumentException.html | 125 +
.../template/utility/class-use/NullWriter.html | 167 +
.../template/utility/class-use/NumberUtil.html | 125 +
.../utility/class-use/ObjectConstructor.html | 125 +
.../utility/class-use/ObjectFactory.html | 171 +
.../class-use/ObjectWrapperWithAPISupport.html | 286 +
.../utility/class-use/OptimizerUtil.html | 125 +
.../utility/class-use/RichObjectWrapper.html | 245 +
.../utility/class-use/SecurityUtilities.html | 125 +
.../utility/class-use/StandardCompress.html | 167 +
.../template/utility/class-use/StringUtil.html | 125 +
.../template/utility/class-use/ToCanonical.html | 125 +
.../class-use/UndeclaredThrowableException.html | 125 +
.../UnrecognizedTimeZoneException.html | 169 +
.../UnsupportedNumberClassException.html | 125 +
.../utility/class-use/WriteProtectable.html | 229 +
.../template/utility/class-use/XmlEscape.html | 125 +
.../template/utility/package-frame.html | 60 +
.../template/utility/package-summary.html | 372 +
.../template/utility/package-tree.html | 214 +
.../template/utility/package-use.html | 325 +
.../documentation/_html/api/help-doc.html | 230 +
.../documentation/_html/api/index-all.html | 8715 ++++++++++++++++++
.../documentation/_html/api/index.html | 75 +
.../documentation/_html/api/overview-frame.html | 37 +
.../_html/api/overview-summary.html | 244 +
.../documentation/_html/api/overview-tree.html | 677 ++
.../documentation/_html/api/package-list | 16 +
.../documentation/_html/api/script.js | 30 +
.../_html/api/serialized-form.html | 1226 +++
.../documentation/_html/api/stylesheet.css | 572 ++
.../2.3.26-voting/documentation/_html/app.html | 63 +
.../documentation/_html/app_eccn.html | 65 +
.../documentation/_html/app_faq.html | 1806 ++++
.../documentation/_html/app_install.html | 106 +
.../documentation/_html/app_legal.html | 63 +
.../documentation/_html/app_license.html | 284 +
.../documentation/_html/app_versions.html | 63 +
.../documentation/_html/detailed-toc.html | 89 +
.../2.3.26-voting/documentation/_html/dgui.html | 63 +
.../documentation/_html/dgui_datamodel.html | 63 +
.../_html/dgui_datamodel_basics.html | 239 +
.../_html/dgui_datamodel_types.html | 530 ++
.../documentation/_html/dgui_misc.html | 63 +
.../_html/dgui_misc_alternativesyntax.html | 128 +
.../_html/dgui_misc_autoescaping.html | 727 ++
.../_html/dgui_misc_namespace.html | 324 +
.../_html/dgui_misc_userdefdir.html | 563 ++
.../documentation/_html/dgui_misc_var.html | 206 +
.../_html/dgui_misc_whitespace.html | 305 +
.../documentation/_html/dgui_quickstart.html | 66 +
.../_html/dgui_quickstart_basics.html | 147 +
.../_html/dgui_quickstart_datamodel.html | 208 +
.../_html/dgui_quickstart_template.html | 716 ++
.../documentation/_html/dgui_template.html | 69 +
.../_html/dgui_template_directives.html | 145 +
.../documentation/_html/dgui_template_exp.html | 2344 +++++
.../_html/dgui_template_overallstructure.html | 140 +
.../_html/dgui_template_valueinsertion.html | 319 +
.../_html/docgen-resources/docgen.min.css | 20 +
.../_html/docgen-resources/fonts/NOTICE | 20 +
.../_html/docgen-resources/fonts/icomoon.eot | Bin 0 -> 4220 bytes
.../_html/docgen-resources/fonts/icomoon.svg | 29 +
.../_html/docgen-resources/fonts/icomoon.ttf | Bin 0 -> 4056 bytes
.../_html/docgen-resources/fonts/icomoon.woff | Bin 0 -> 4132 bytes
.../_html/docgen-resources/img/callouts/1.gif | Bin 0 -> 968 bytes
.../_html/docgen-resources/img/callouts/10.gif | Bin 0 -> 968 bytes
.../_html/docgen-resources/img/callouts/11.gif | Bin 0 -> 244 bytes
.../_html/docgen-resources/img/callouts/12.gif | Bin 0 -> 244 bytes
.../_html/docgen-resources/img/callouts/13.gif | Bin 0 -> 244 bytes
.../_html/docgen-resources/img/callouts/14.gif | Bin 0 -> 244 bytes
.../_html/docgen-resources/img/callouts/2.gif | Bin 0 -> 968 bytes
.../_html/docgen-resources/img/callouts/3.gif | Bin 0 -> 968 bytes
.../_html/docgen-resources/img/callouts/4.gif | Bin 0 -> 968 bytes
.../_html/docgen-resources/img/callouts/5.gif | Bin 0 -> 968 bytes
.../_html/docgen-resources/img/callouts/6.gif | Bin 0 -> 968 bytes
.../_html/docgen-resources/img/callouts/7.gif | Bin 0 -> 968 bytes
.../_html/docgen-resources/img/callouts/8.gif | Bin 0 -> 968 bytes
.../_html/docgen-resources/img/callouts/9.gif | Bin 0 -> 968 bytes
.../_html/docgen-resources/img/patterned-bg.png | Bin 0 -> 4565 bytes
.../_html/docgen-resources/img/xxe.png | Bin 0 -> 2649 bytes
.../_html/docgen-resources/main.min.js | 20 +
.../documentation/_html/eclipse-toc.xml | 720 ++
.../documentation/_html/favicon.png | Bin 0 -> 1291 bytes
.../_html/figures/model2sketch.png | Bin 0 -> 21425 bytes
.../documentation/_html/figures/overview.png | Bin 0 -> 11837 bytes
.../documentation/_html/figures/tree.png | Bin 0 -> 4699 bytes
.../documentation/_html/gloss.html | 779 ++
.../documentation/_html/index.html | 91 +
.../2.3.26-voting/documentation/_html/logo.png | Bin 0 -> 10134 bytes
.../2.3.26-voting/documentation/_html/pgui.html | 63 +
.../documentation/_html/pgui_config.html | 64 +
.../documentation/_html/pgui_config_basics.html | 84 +
.../_html/pgui_config_custom_formats.html | 709 ++
.../_html/pgui_config_errorhandling.html | 400 +
.../pgui_config_incompatible_improvements.html | 182 +
.../_html/pgui_config_outputformatsautoesc.html | 219 +
.../_html/pgui_config_settings.html | 387 +
.../_html/pgui_config_sharedvariables.html | 152 +
.../pgui_config_templateconfigurations.html | 323 +
.../_html/pgui_config_templateloading.html | 373 +
.../documentation/_html/pgui_datamodel.html | 64 +
.../_html/pgui_datamodel_basics.html | 114 +
.../_html/pgui_datamodel_directive.html | 420 +
.../_html/pgui_datamodel_method.html | 99 +
.../_html/pgui_datamodel_node.html | 132 +
.../_html/pgui_datamodel_objectWrapper.html | 421 +
.../_html/pgui_datamodel_parent.html | 138 +
.../_html/pgui_datamodel_scalar.html | 163 +
.../documentation/_html/pgui_misc.html | 64 +
.../documentation/_html/pgui_misc_ant.html | 120 +
.../_html/pgui_misc_beanwrapper.html | 675 ++
.../documentation/_html/pgui_misc_charset.html | 181 +
.../_html/pgui_misc_jythonwrapper.html | 142 +
.../documentation/_html/pgui_misc_logging.html | 248 +
.../_html/pgui_misc_multithreading.html | 82 +
.../_html/pgui_misc_secureenv.html | 94 +
.../documentation/_html/pgui_misc_servlet.html | 700 ++
.../documentation/_html/pgui_misc_var.html | 122 +
.../_html/pgui_misc_xml_legacy.html | 514 ++
.../documentation/_html/pgui_quickstart.html | 63 +
.../_html/pgui_quickstart_all.html | 151 +
.../pgui_quickstart_createconfiguration.html | 109 +
.../_html/pgui_quickstart_createdatamodel.html | 179 +
.../_html/pgui_quickstart_gettemplate.html | 79 +
.../_html/pgui_quickstart_merge.html | 87 +
.../2.3.26-voting/documentation/_html/ref.html | 63 +
.../documentation/_html/ref_builtins.html | 63 +
.../_html/ref_builtins_alphaidx.html | 512 +
.../_html/ref_builtins_boolean.html | 238 +
.../documentation/_html/ref_builtins_date.html | 554 ++
.../_html/ref_builtins_expert.html | 771 ++
.../documentation/_html/ref_builtins_hash.html | 151 +
.../_html/ref_builtins_loop_var.html | 535 ++
.../documentation/_html/ref_builtins_node.html | 296 +
.../_html/ref_builtins_number.html | 806 ++
.../_html/ref_builtins_sequence.html | 586 ++
.../_html/ref_builtins_string.html | 2383 +++++
.../_html/ref_builtins_type_independent.html | 219 +
.../documentation/_html/ref_depr_builtin.html | 114 +
.../documentation/_html/ref_depr_directive.html | 100 +
.../_html/ref_depr_numerical_interpolation.html | 144 +
.../documentation/_html/ref_depr_oldmacro.html | 207 +
.../documentation/_html/ref_depr_oldsyntax.html | 140 +
.../documentation/_html/ref_depr_transform.html | 172 +
.../documentation/_html/ref_deprecated.html | 63 +
.../_html/ref_directive_alphaidx.html | 237 +
.../_html/ref_directive_assign.html | 229 +
.../_html/ref_directive_attempt.html | 215 +
.../_html/ref_directive_autoesc.html | 134 +
.../_html/ref_directive_compress.html | 116 +
.../_html/ref_directive_escape.html | 241 +
.../_html/ref_directive_flush.html | 105 +
.../documentation/_html/ref_directive_ftl.html | 294 +
.../_html/ref_directive_function.html | 182 +
.../_html/ref_directive_global.html | 145 +
.../documentation/_html/ref_directive_if.html | 205 +
.../_html/ref_directive_import.html | 162 +
.../_html/ref_directive_include.html | 458 +
.../documentation/_html/ref_directive_list.html | 647 ++
.../_html/ref_directive_local.html | 123 +
.../_html/ref_directive_macro.html | 459 +
.../_html/ref_directive_noautoesc.html | 132 +
.../_html/ref_directive_noparse.html | 114 +
.../documentation/_html/ref_directive_nt.html | 89 +
.../_html/ref_directive_outputformat.html | 203 +
.../_html/ref_directive_setting.html | 487 +
.../documentation/_html/ref_directive_stop.html | 105 +
.../_html/ref_directive_switch.html | 171 +
.../documentation/_html/ref_directive_t.html | 158 +
.../_html/ref_directive_userDefined.html | 306 +
.../_html/ref_directive_visit.html | 393 +
.../documentation/_html/ref_directives.html | 63 +
.../documentation/_html/ref_reservednames.html | 105 +
.../documentation/_html/ref_specvar.html | 299 +
.../documentation/_html/sitemap.xml | 546 ++
.../2.3.26-voting/documentation/_html/toc.html | 64 +
builds/2.3.26-voting/documentation/_html/toc.js | 4971 ++++++++++
.../documentation/_html/versions_2_0.html | 156 +
.../documentation/_html/versions_2_01.html | 68 +
.../documentation/_html/versions_2_0RC1.html | 277 +
.../documentation/_html/versions_2_0RC2.html | 228 +
.../documentation/_html/versions_2_0RC3.html | 147 +
.../documentation/_html/versions_2_1.html | 548 ++
.../documentation/_html/versions_2_1_1.html | 134 +
.../documentation/_html/versions_2_1_2.html | 139 +
.../documentation/_html/versions_2_1_3.html | 103 +
.../documentation/_html/versions_2_1_4.html | 82 +
.../documentation/_html/versions_2_1_5.html | 97 +
.../documentation/_html/versions_2_2.html | 1116 +++
.../documentation/_html/versions_2_2_1.html | 135 +
.../documentation/_html/versions_2_2_2.html | 83 +
.../documentation/_html/versions_2_2_3.html | 115 +
.../documentation/_html/versions_2_2_4.html | 112 +
.../documentation/_html/versions_2_2_5.html | 77 +
.../documentation/_html/versions_2_2_6.html | 153 +
.../documentation/_html/versions_2_2_7.html | 79 +
.../documentation/_html/versions_2_2_8.html | 121 +
.../documentation/_html/versions_2_3.html | 1638 ++++
.../documentation/_html/versions_2_3_1.html | 361 +
.../documentation/_html/versions_2_3_10.html | 125 +
.../documentation/_html/versions_2_3_11.html | 235 +
.../documentation/_html/versions_2_3_12.html | 97 +
.../documentation/_html/versions_2_3_13.html | 134 +
.../documentation/_html/versions_2_3_14.html | 145 +
.../documentation/_html/versions_2_3_15.html | 124 +
.../documentation/_html/versions_2_3_16.html | 144 +
.../documentation/_html/versions_2_3_17.html | 340 +
.../documentation/_html/versions_2_3_18.html | 96 +
.../documentation/_html/versions_2_3_19.html | 245 +
.../documentation/_html/versions_2_3_2.html | 86 +
.../documentation/_html/versions_2_3_20.html | 700 ++
.../documentation/_html/versions_2_3_21.html | 1428 +++
.../documentation/_html/versions_2_3_22.html | 1206 +++
.../documentation/_html/versions_2_3_23.html | 432 +
.../documentation/_html/versions_2_3_24.html | 934 ++
.../documentation/_html/versions_2_3_25.html | 237 +
.../documentation/_html/versions_2_3_26.html | 350 +
.../documentation/_html/versions_2_3_3.html | 232 +
.../documentation/_html/versions_2_3_4.html | 130 +
.../documentation/_html/versions_2_3_5.html | 171 +
.../documentation/_html/versions_2_3_6.html | 77 +
.../documentation/_html/versions_2_3_7.html | 181 +
.../documentation/_html/versions_2_3_7rc1.html | 138 +
.../documentation/_html/versions_2_3_8.html | 107 +
.../documentation/_html/versions_2_3_9.html | 128 +
.../2.3.26-voting/documentation/_html/xgui.html | 63 +
.../documentation/_html/xgui_declarative.html | 63 +
.../_html/xgui_declarative_basics.html | 207 +
.../_html/xgui_declarative_details.html | 229 +
.../documentation/_html/xgui_expose.html | 63 +
.../documentation/_html/xgui_expose_dom.html | 182 +
.../documentation/_html/xgui_expose_put.html | 92 +
.../documentation/_html/xgui_imperative.html | 63 +
.../_html/xgui_imperative_formal.html | 554 ++
.../_html/xgui_imperative_learn.html | 665 ++
.../documentation/_html/xgui_preface.html | 83 +
builds/2.3.26-voting/documentation/index.html | 67 +
1034 files changed, 265911 insertions(+), 56425 deletions(-)
----------------------------------------------------------------------
[18/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/sitemap.xml
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/sitemap.xml b/builds/2.3.26-nightly/sitemap.xml
deleted file mode 100644
index ebad5a3..0000000
--- a/builds/2.3.26-nightly/sitemap.xml
+++ /dev/null
@@ -1,525 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
- <url>
- <loc>http://freemarker.org/docs/index.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/dgui.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/dgui_quickstart.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/dgui_quickstart_basics.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/dgui_quickstart_datamodel.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/dgui_quickstart_template.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/dgui_datamodel.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/dgui_datamodel_basics.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/dgui_datamodel_types.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/dgui_template.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/dgui_template_overallstructure.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/dgui_template_directives.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/dgui_template_exp.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/dgui_template_valueinsertion.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/dgui_misc.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/dgui_misc_userdefdir.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/dgui_misc_var.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/dgui_misc_namespace.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/dgui_misc_autoescaping.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/dgui_misc_whitespace.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/dgui_misc_alternativesyntax.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/pgui.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/pgui_quickstart.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/pgui_quickstart_createconfiguration.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/pgui_quickstart_createdatamodel.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/pgui_quickstart_gettemplate.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/pgui_quickstart_merge.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/pgui_quickstart_all.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/pgui_datamodel.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/pgui_datamodel_basics.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/pgui_datamodel_scalar.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/pgui_datamodel_parent.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/pgui_datamodel_method.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/pgui_datamodel_directive.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/pgui_datamodel_node.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/pgui_datamodel_objectWrapper.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/pgui_config.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/pgui_config_basics.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/pgui_config_sharedvariables.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/pgui_config_settings.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/pgui_config_templateloading.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/pgui_config_errorhandling.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/pgui_config_templateconfigurations.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/pgui_config_outputformatsautoesc.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/pgui_config_custom_formats.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/pgui_config_incompatible_improvements.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/pgui_misc.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/pgui_misc_var.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/pgui_misc_charset.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/pgui_misc_multithreading.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/pgui_misc_beanwrapper.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/pgui_misc_logging.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/pgui_misc_servlet.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/pgui_misc_secureenv.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/pgui_misc_xml_legacy.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/pgui_misc_ant.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/pgui_misc_jythonwrapper.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_builtins.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_builtins_alphaidx.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_builtins_string.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_builtins_number.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_builtins_date.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_builtins_boolean.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_builtins_sequence.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_builtins_hash.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_builtins_node.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_builtins_loop_var.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_builtins_type_independent.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_builtins_expert.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_directives.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_directive_alphaidx.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_directive_assign.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_directive_attempt.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_directive_autoesc.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_directive_compress.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_directive_escape.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_directive_flush.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_directive_ftl.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_directive_function.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_directive_global.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_directive_if.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_directive_import.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_directive_include.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_directive_list.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_directive_local.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_directive_macro.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_directive_noautoesc.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_directive_noparse.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_directive_nt.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_directive_outputformat.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_directive_setting.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_directive_stop.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_directive_switch.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_directive_t.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_directive_userDefined.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_directive_visit.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_specvar.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_reservednames.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_deprecated.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_depr_directive.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_depr_builtin.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_depr_oldmacro.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_depr_transform.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_depr_oldsyntax.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/ref_depr_numerical_interpolation.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/xgui.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/xgui_preface.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/xgui_expose.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/xgui_expose_dom.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/xgui_expose_put.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/xgui_imperative.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/xgui_imperative_learn.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/xgui_imperative_formal.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/xgui_declarative.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/xgui_declarative_basics.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/xgui_declarative_details.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/app.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/app_faq.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/app_versions.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_3_26.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_3_25.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_3_24.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_3_23.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_3_22.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_3_21.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_3_20.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_3_19.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_3_18.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_3_17.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_3_16.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_3_15.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_3_14.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_3_13.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_3_12.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_3_11.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_3_10.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_3_9.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_3_8.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_3_7.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_3_7rc1.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_3_6.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_3_5.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_3_4.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_3_3.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_3_2.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_3_1.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_3.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_2_8.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_2_7.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_2_6.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_2_5.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_2_4.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_2_3.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_2_2.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_2_1.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_2.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_1_5.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_1_4.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_1_3.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_1_2.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_1_1.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_1.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_01.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_0.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_0RC3.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_0RC2.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/versions_2_0RC1.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/app_install.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/app_legal.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/app_license.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/app_eccn.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/gloss.html</loc>
- </url>
- <url>
- <loc>http://freemarker.org/docs/alphaidx.html</loc>
- </url>
-</urlset>
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/toc.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/toc.html b/builds/2.3.26-nightly/toc.html
deleted file mode 100644
index 4c4f3f7..0000000
--- a/builds/2.3.26-nightly/toc.html
+++ /dev/null
@@ -1,64 +0,0 @@
-<!doctype html>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements. See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership. The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied. See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<!-- Generated by FreeMarker/Docgen from DocBook -->
-<html lang="en" class="page-type-book">
-<head prefix="og: http://ogp.me/ns#">
-<meta charset="utf-8">
-<title>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="Apache FreeMarker Manual">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/toc.html">
-<link rel="canonical" href="http://freemarker.org/docs/toc.html">
-<link rel="icon" href="favicon.png" type="image/png">
-<link rel="stylesheet" type="text/css" href="docgen-resources/docgen.min.css?1489401428287">
-</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="toc.html" class="navigation-header">Manual</a><div class="navigation-header"></div></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"><span itemprop="name">Table of Contents</span></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 = [];</script>
- <script src="toc.js?1489401428287"></script>
- <script src="docgen-resources/main.min.js?1489401428287"></script>
- </div>
-<div class="col-right"><div class="page-content"><div class="page-title"><div class="pagers top"><span class="paging-arrow disabled previous"><span>Previous</span></span><a class="paging-arrow next" href="index.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-book" id="autoid_1" itemprop="headline">Apache FreeMarker Manual <span class="subtitle productname">For Freemarker 2.3.26</span>
-</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Table of Contents</div>
-<ul><li><a class="page-menu-link" href="index.html" data-menu-target="preface">What is Apache FreeMarker?</a></li><li><a class="page-menu-link" href="dgui.html" data-menu-target="dgui">Template Author's Guide</a><ul><li><a class="page-menu-link" href="dgui_quickstart.html" data-menu-target="dgui_quickstart">Getting Started</a><ul><li><a class="page-menu-link" href="dgui_quickstart_basics.html" data-menu-target="dgui_quickstart_basics">Template + data-model = output</a></li><li><a class="page-menu-link" href="dgui_quickstart_datamodel.html" data-menu-target="dgui_quickstart_datamodel">The data-model at a glance</a></li><li><a class="page-menu-link" href="dgui_quickstart_template.html" data-menu-target="dgui_quickstart_template">The template at a glance</a></li></ul></li><li><a class="page-menu-link" href="dgui_datamodel.html" data-menu-target="dgui_datamodel">Values, Types</a><ul><li><a class="page-menu-link" href="dgui_datamodel_basics.html" data-menu-target="dgui_datamodel_basi
cs">Basics</a></li><li><a class="page-menu-link" href="dgui_datamodel_types.html" data-menu-target="dgui_datamodel_types">The types</a></li></ul></li><li><a class="page-menu-link" href="dgui_template.html" data-menu-target="dgui_template">The Template</a><ul><li><a class="page-menu-link" href="dgui_template_overallstructure.html" data-menu-target="dgui_template_overallstructure">Overall structure</a></li><li><a class="page-menu-link" href="dgui_template_directives.html" data-menu-target="dgui_template_directives">Directives</a></li><li><a class="page-menu-link" href="dgui_template_exp.html" data-menu-target="dgui_template_exp">Expressions</a></li><li><a class="page-menu-link" href="dgui_template_valueinsertion.html" data-menu-target="dgui_template_valueinsertion">Interpolations</a></li></ul></li><li><a class="page-menu-link" href="dgui_misc.html" data-menu-target="dgui_misc">Miscellaneous</a><ul><li><a class="page-menu-link" href="dgui_misc_userdefdir.html" data-menu-target="dgui_mi
sc_userdefdir">Defining your own directives</a></li><li><a class="page-menu-link" href="dgui_misc_var.html" data-menu-target="dgui_misc_var">Defining variables in the template</a></li><li><a class="page-menu-link" href="dgui_misc_namespace.html" data-menu-target="dgui_misc_namespace">Namespaces</a></li><li><a class="page-menu-link" href="dgui_misc_autoescaping.html" data-menu-target="dgui_misc_autoescaping">Auto-escaping and output formats</a></li><li><a class="page-menu-link" href="dgui_misc_whitespace.html" data-menu-target="dgui_misc_whitespace">White-space handling</a></li><li><a class="page-menu-link" href="dgui_misc_alternativesyntax.html" data-menu-target="dgui_misc_alternativesyntax">Alternative (square bracket) syntax</a></li></ul></li></ul></li><li><a class="page-menu-link" href="pgui.html" data-menu-target="pgui">Programmer's Guide</a><ul><li><a class="page-menu-link" href="pgui_quickstart.html" data-menu-target="pgui_quickstart">Getting Started</a><ul><li><a class="p
age-menu-link" href="pgui_quickstart_createconfiguration.html" data-menu-target="pgui_quickstart_createconfiguration">Create a configuration instance</a></li><li><a class="page-menu-link" href="pgui_quickstart_createdatamodel.html" data-menu-target="pgui_quickstart_createdatamodel">Create a data-model</a></li><li><a class="page-menu-link" href="pgui_quickstart_gettemplate.html" data-menu-target="pgui_quickstart_gettemplate">Get the template</a></li><li><a class="page-menu-link" href="pgui_quickstart_merge.html" data-menu-target="pgui_quickstart_merge">Merging the template with the data-model</a></li><li><a class="page-menu-link" href="pgui_quickstart_all.html" data-menu-target="pgui_quickstart_all">Putting all together</a></li></ul></li><li><a class="page-menu-link" href="pgui_datamodel.html" data-menu-target="pgui_datamodel">The Data Model</a><ul><li><a class="page-menu-link" href="pgui_datamodel_basics.html" data-menu-target="pgui_datamodel_basics">Basics</a></li><li><a class="pag
e-menu-link" href="pgui_datamodel_scalar.html" data-menu-target="pgui_datamodel_scalar">Scalars</a></li><li><a class="page-menu-link" href="pgui_datamodel_parent.html" data-menu-target="pgui_datamodel_parent">Containers</a></li><li><a class="page-menu-link" href="pgui_datamodel_method.html" data-menu-target="pgui_datamodel_method">Methods</a></li><li><a class="page-menu-link" href="pgui_datamodel_directive.html" data-menu-target="pgui_datamodel_directive">Directives</a></li><li><a class="page-menu-link" href="pgui_datamodel_node.html" data-menu-target="pgui_datamodel_node">Node variables</a></li><li><a class="page-menu-link" href="pgui_datamodel_objectWrapper.html" data-menu-target="pgui_datamodel_objectWrapper">Object wrappers</a></li></ul></li><li><a class="page-menu-link" href="pgui_config.html" data-menu-target="pgui_config">The Configuration</a><ul><li><a class="page-menu-link" href="pgui_config_basics.html" data-menu-target="pgui_config_basics">Basics</a></li><li><a class="pag
e-menu-link" href="pgui_config_sharedvariables.html" data-menu-target="pgui_config_sharedvariables">Shared variables</a></li><li><a class="page-menu-link" href="pgui_config_settings.html" data-menu-target="pgui_config_settings">Settings</a></li><li><a class="page-menu-link" href="pgui_config_templateloading.html" data-menu-target="pgui_config_templateloading">Template loading</a></li><li><a class="page-menu-link" href="pgui_config_errorhandling.html" data-menu-target="pgui_config_errorhandling">Error handling</a></li><li><a class="page-menu-link" href="pgui_config_templateconfigurations.html" data-menu-target="pgui_config_templateconfigurations">Template configurations</a></li><li><a class="page-menu-link" href="pgui_config_outputformatsautoesc.html" data-menu-target="pgui_config_outputformatsautoesc">Associating output formats with templates</a></li><li><a class="page-menu-link" href="pgui_config_custom_formats.html" data-menu-target="pgui_config_custom_formats">Custom number and d
ate/time formats</a></li><li><a class="page-menu-link" href="pgui_config_incompatible_improvements.html" data-menu-target="pgui_config_incompatible_improvements">The "incompatible improvements" setting</a></li></ul></li><li><a class="page-menu-link" href="pgui_misc.html" data-menu-target="pgui_misc">Miscellaneous</a><ul><li><a class="page-menu-link" href="pgui_misc_var.html" data-menu-target="pgui_misc_var">Variables, scopes</a></li><li><a class="page-menu-link" href="pgui_misc_charset.html" data-menu-target="pgui_misc_charset">Charset issues</a></li><li><a class="page-menu-link" href="pgui_misc_multithreading.html" data-menu-target="pgui_misc_multithreading">Multithreading</a></li><li><a class="page-menu-link" href="pgui_misc_beanwrapper.html" data-menu-target="pgui_misc_beanwrapper">Bean wrapper</a></li><li><a class="page-menu-link" href="pgui_misc_logging.html" data-menu-target="pgui_misc_logging">Logging</a></li><li><a class="page-menu-link" href="pgui_misc_servlet.htm
l" data-menu-target="pgui_misc_servlet">Using FreeMarker with servlets</a></li><li><a class="page-menu-link" href="pgui_misc_secureenv.html" data-menu-target="pgui_misc_secureenv">Configuring security policy for FreeMarker</a></li><li><a class="page-menu-link" href="pgui_misc_xml_legacy.html" data-menu-target="pgui_misc_xml_legacy">Legacy XML wrapper implementation</a></li><li><a class="page-menu-link" href="pgui_misc_ant.html" data-menu-target="pgui_misc_ant">Using FreeMarker with Ant</a></li><li><a class="page-menu-link" href="pgui_misc_jythonwrapper.html" data-menu-target="pgui_misc_jythonwrapper">Jython wrapper</a></li></ul></li></ul></li><li><a class="page-menu-link" href="ref.html" data-menu-target="ref">Template Language Reference</a><ul><li><a class="page-menu-link" href="ref_builtins.html" data-menu-target="ref_builtins">Built-in Reference</a><ul><li><a class="page-menu-link" href="ref_builtins_alphaidx.html" data-menu-target="ref_builtins_alphaidx">Alphabetical index</a></
li><li><a class="page-menu-link" href="ref_builtins_string.html" data-menu-target="ref_builtins_string">Built-ins for strings</a></li><li><a class="page-menu-link" href="ref_builtins_number.html" data-menu-target="ref_builtins_number">Built-ins for numbers</a></li><li><a class="page-menu-link" href="ref_builtins_date.html" data-menu-target="ref_builtins_date">Built-ins for date/time/date-time values</a></li><li><a class="page-menu-link" href="ref_builtins_boolean.html" data-menu-target="ref_builtins_boolean">Built-ins for booleans</a></li><li><a class="page-menu-link" href="ref_builtins_sequence.html" data-menu-target="ref_builtins_sequence">Built-ins for sequences</a></li><li><a class="page-menu-link" href="ref_builtins_hash.html" data-menu-target="ref_builtins_hash">Built-ins for hashes</a></li><li><a class="page-menu-link" href="ref_builtins_node.html" data-menu-target="ref_builtins_node">Built-ins for nodes (for XML)</a></li><li><a class="page-menu-link" href="ref_builtins_loop_
var.html" data-menu-target="ref_builtins_loop_var">Loop variable built-ins</a></li><li><a class="page-menu-link" href="ref_builtins_type_independent.html" data-menu-target="ref_builtins_type_independent">Type independent built-ins</a></li><li><a class="page-menu-link" href="ref_builtins_expert.html" data-menu-target="ref_builtins_expert">Seldom used and expert built-ins</a></li></ul></li><li><a class="page-menu-link" href="ref_directives.html" data-menu-target="ref_directives">Directive Reference</a><ul><li><a class="page-menu-link" href="ref_directive_alphaidx.html" data-menu-target="ref_directive_alphaidx">Alphabetical index</a></li><li><a class="page-menu-link" href="ref_directive_assign.html" data-menu-target="ref_directive_assign">assign</a></li><li><a class="page-menu-link" href="ref_directive_attempt.html" data-menu-target="ref_directive_attempt">attempt, recover</a></li><li><a class="page-menu-link" href="ref_directive_autoesc.html" data-menu-target="ref_directive_autoesc">a
utoesc</a></li><li><a class="page-menu-link" href="ref_directive_compress.html" data-menu-target="ref_directive_compress">compress</a></li><li><a class="page-menu-link" href="ref_directive_escape.html" data-menu-target="ref_directive_escape">escape, noescape (deprecated)</a></li><li><a class="page-menu-link" href="ref_directive_flush.html" data-menu-target="ref_directive_flush">flush</a></li><li><a class="page-menu-link" href="ref_directive_ftl.html" data-menu-target="ref_directive_ftl">ftl</a></li><li><a class="page-menu-link" href="ref_directive_function.html" data-menu-target="ref_directive_function">function, return</a></li><li><a class="page-menu-link" href="ref_directive_global.html" data-menu-target="ref_directive_global">global</a></li><li><a class="page-menu-link" href="ref_directive_if.html" data-menu-target="ref_directive_if">if, else, elseif</a></li><li><a class="page-menu-link" href="ref_directive_import.html" data-menu-target="ref_directive_import">import</a></li><li><
a class="page-menu-link" href="ref_directive_include.html" data-menu-target="ref_directive_include">include</a></li><li><a class="page-menu-link" href="ref_directive_list.html" data-menu-target="ref_directive_list">list, else, items, sep, break</a></li><li><a class="page-menu-link" href="ref_directive_local.html" data-menu-target="ref_directive_local">local</a></li><li><a class="page-menu-link" href="ref_directive_macro.html" data-menu-target="ref_directive_macro">macro, nested, return</a></li><li><a class="page-menu-link" href="ref_directive_noautoesc.html" data-menu-target="ref_directive_noautoesc">noautoesc</a></li><li><a class="page-menu-link" href="ref_directive_noparse.html" data-menu-target="ref_directive_noparse">noparse</a></li><li><a class="page-menu-link" href="ref_directive_nt.html" data-menu-target="ref_directive_nt">nt</a></li><li><a class="page-menu-link" href="ref_directive_outputformat.html" data-menu-target="ref_directive_outputformat">outputformat</a></li><li><a c
lass="page-menu-link" href="ref_directive_setting.html" data-menu-target="ref_directive_setting">setting</a></li><li><a class="page-menu-link" href="ref_directive_stop.html" data-menu-target="ref_directive_stop">stop</a></li><li><a class="page-menu-link" href="ref_directive_switch.html" data-menu-target="ref_directive_switch">switch, case, default, break</a></li><li><a class="page-menu-link" href="ref_directive_t.html" data-menu-target="ref_directive_t">t, lt, rt</a></li><li><a class="page-menu-link" href="ref_directive_userDefined.html" data-menu-target="ref_directive_userDefined">User-defined directive (<@...>)</a></li><li><a class="page-menu-link" href="ref_directive_visit.html" data-menu-target="ref_directive_visit">visit, recurse, fallback</a></li></ul></li><li><a class="page-menu-link" href="ref_specvar.html" data-menu-target="ref_specvar">Special Variable Reference</a></li><li><a class="page-menu-link" href="ref_reservednames.html" data-menu-target="ref_reservednames">R
eserved names in FTL</a></li><li><a class="page-menu-link" href="ref_deprecated.html" data-menu-target="ref_deprecated">Deprecated FTL constructs</a><ul><li><a class="page-menu-link" href="ref_depr_directive.html" data-menu-target="ref_depr_directive">List of deprecated directives</a></li><li><a class="page-menu-link" href="ref_depr_builtin.html" data-menu-target="ref_depr_builtin">List of deprecated built-ins</a></li><li><a class="page-menu-link" href="ref_depr_oldmacro.html" data-menu-target="ref_depr_oldmacro">Old-style macro and call directives</a></li><li><a class="page-menu-link" href="ref_depr_transform.html" data-menu-target="ref_depr_transform">Transform directive</a></li><li><a class="page-menu-link" href="ref_depr_oldsyntax.html" data-menu-target="ref_depr_oldsyntax">Old FTL syntax</a></li><li><a class="page-menu-link" href="ref_depr_numerical_interpolation.html" data-menu-target="ref_depr_numerical_interpolation">#{...}: Numerical interpolation</a></li></ul></li></ul></l
i><li><a class="page-menu-link" href="xgui.html" data-menu-target="xgui">XML Processing Guide</a><ul><li><a class="page-menu-link" href="xgui_preface.html" data-menu-target="xgui_preface">Preface</a></li><li><a class="page-menu-link" href="xgui_expose.html" data-menu-target="xgui_expose">Exposing XML documents</a><ul><li><a class="page-menu-link" href="xgui_expose_dom.html" data-menu-target="xgui_expose_dom">The DOM tree</a></li><li><a class="page-menu-link" href="xgui_expose_put.html" data-menu-target="xgui_expose_put">Putting the XML into the data-model</a></li></ul></li><li><a class="page-menu-link" href="xgui_imperative.html" data-menu-target="xgui_imperative">Imperative XML processing</a><ul><li><a class="page-menu-link" href="xgui_imperative_learn.html" data-menu-target="xgui_imperative_learn">Basics</a></li><li><a class="page-menu-link" href="xgui_imperative_formal.html" data-menu-target="xgui_imperative_formal">Details</a></li></ul></li><li><a class="page-menu-link" href="xg
ui_declarative.html" data-menu-target="xgui_declarative">Declarative XML processing</a><ul><li><a class="page-menu-link" href="xgui_declarative_basics.html" data-menu-target="xgui_declarative_basics">Basics</a></li><li><a class="page-menu-link" href="xgui_declarative_details.html" data-menu-target="xgui_declarative_details">Details</a></li></ul></li></ul></li><li><a class="page-menu-link" href="app.html" data-menu-target="app">Appendixes</a><ul><li><a class="page-menu-link" href="app_faq.html" data-menu-target="app_faq">FAQ</a></li><li><a class="page-menu-link" href="app_versions.html" data-menu-target="app_versions">Version history</a><ul><li><a class="page-menu-link" href="versions_2_3_26.html" data-menu-target="versions_2_3_26">2.3.26 (incubating at Apache)</a></li><li><a class="page-menu-link" href="versions_2_3_25.html" data-menu-target="versions_2_3_25">2.3.25 (incubating at Apache)</a></li><li><a class="page-menu-link" href="versions_2_3_24.html" data-menu-target="versions_2_
3_24">2.3.24 (incubating at Apache)</a></li><li><a class="page-menu-link" href="versions_2_3_23.html" data-menu-target="versions_2_3_23">2.3.23</a></li><li><a class="page-menu-link" href="versions_2_3_22.html" data-menu-target="versions_2_3_22">2.3.22</a></li><li><a class="page-menu-link" href="versions_2_3_21.html" data-menu-target="versions_2_3_21">2.3.21</a></li><li><a class="page-menu-link" href="versions_2_3_20.html" data-menu-target="versions_2_3_20">2.3.20</a></li><li><a class="page-menu-link" href="versions_2_3_19.html" data-menu-target="versions_2_3_19">2.3.19</a></li><li><a class="page-menu-link" href="versions_2_3_18.html" data-menu-target="versions_2_3_18">2.3.18</a></li><li><a class="page-menu-link" href="versions_2_3_17.html" data-menu-target="versions_2_3_17">2.3.17</a></li><li><a class="page-menu-link" href="versions_2_3_16.html" data-menu-target="versions_2_3_16">2.3.16</a></li><li><a class="page-menu-link" href="versions_2_3_15.html" data-menu-target="versions_2_3_
15">2.3.15</a></li><li><a class="page-menu-link" href="versions_2_3_14.html" data-menu-target="versions_2_3_14">2.3.14</a></li><li><a class="page-menu-link" href="versions_2_3_13.html" data-menu-target="versions_2_3_13">2.3.13</a></li><li><a class="page-menu-link" href="versions_2_3_12.html" data-menu-target="versions_2_3_12">2.3.12</a></li><li><a class="page-menu-link" href="versions_2_3_11.html" data-menu-target="versions_2_3_11">2.3.11</a></li><li><a class="page-menu-link" href="versions_2_3_10.html" data-menu-target="versions_2_3_10">2.3.10</a></li><li><a class="page-menu-link" href="versions_2_3_9.html" data-menu-target="versions_2_3_9">2.3.9</a></li><li><a class="page-menu-link" href="versions_2_3_8.html" data-menu-target="versions_2_3_8">2.3.8</a></li><li><a class="page-menu-link" href="versions_2_3_7.html" data-menu-target="versions_2_3_7">2.3.7</a></li><li><a class="page-menu-link" href="versions_2_3_7rc1.html" data-menu-target="versions_2_3_7rc1">2.3.7 RC1</a></li><li><a c
lass="page-menu-link" href="versions_2_3_6.html" data-menu-target="versions_2_3_6">2.3.6</a></li><li><a class="page-menu-link" href="versions_2_3_5.html" data-menu-target="versions_2_3_5">2.3.5</a></li><li><a class="page-menu-link" href="versions_2_3_4.html" data-menu-target="versions_2_3_4">2.3.4</a></li><li><a class="page-menu-link" href="versions_2_3_3.html" data-menu-target="versions_2_3_3">2.3.3</a></li><li><a class="page-menu-link" href="versions_2_3_2.html" data-menu-target="versions_2_3_2">2.3.2</a></li><li><a class="page-menu-link" href="versions_2_3_1.html" data-menu-target="versions_2_3_1">2.3.1</a></li><li><a class="page-menu-link" href="versions_2_3.html" data-menu-target="versions_2_3">2.3</a></li><li><a class="page-menu-link" href="versions_2_2_8.html" data-menu-target="versions_2_2_8">2.2.8</a></li><li><a class="page-menu-link" href="versions_2_2_7.html" data-menu-target="versions_2_2_7">2.2.7</a></li><li><a class="page-menu-link" href="versions_2_2_6.html" data-menu
-target="versions_2_2_6">2.2.6</a></li><li><a class="page-menu-link" href="versions_2_2_5.html" data-menu-target="versions_2_2_5">2.2.5</a></li><li><a class="page-menu-link" href="versions_2_2_4.html" data-menu-target="versions_2_2_4">2.2.4</a></li><li><a class="page-menu-link" href="versions_2_2_3.html" data-menu-target="versions_2_2_3">2.2.3</a></li><li><a class="page-menu-link" href="versions_2_2_2.html" data-menu-target="versions_2_2_2">2.2.2</a></li><li><a class="page-menu-link" href="versions_2_2_1.html" data-menu-target="versions_2_2_1">2.2.1</a></li><li><a class="page-menu-link" href="versions_2_2.html" data-menu-target="versions_2_2">2.2</a></li><li><a class="page-menu-link" href="versions_2_1_5.html" data-menu-target="versions_2_1_5">2.1.5</a></li><li><a class="page-menu-link" href="versions_2_1_4.html" data-menu-target="versions_2_1_4">2.1.4</a></li><li><a class="page-menu-link" href="versions_2_1_3.html" data-menu-target="versions_2_1_3">2.1.3</a></li><li><a class="page-
menu-link" href="versions_2_1_2.html" data-menu-target="versions_2_1_2">2.1.2</a></li><li><a class="page-menu-link" href="versions_2_1_1.html" data-menu-target="versions_2_1_1">2.1.1</a></li><li><a class="page-menu-link" href="versions_2_1.html" data-menu-target="versions_2_1">2.1</a></li><li><a class="page-menu-link" href="versions_2_01.html" data-menu-target="versions_2_01">2.01</a></li><li><a class="page-menu-link" href="versions_2_0.html" data-menu-target="versions_2_0">2.0</a></li><li><a class="page-menu-link" href="versions_2_0RC3.html" data-menu-target="versions_2_0RC3">2.0 RC3</a></li><li><a class="page-menu-link" href="versions_2_0RC2.html" data-menu-target="versions_2_0RC2">2.0 RC2</a></li><li><a class="page-menu-link" href="versions_2_0RC1.html" data-menu-target="versions_2_0RC1">2.0 RC1</a></li></ul></li><li><a class="page-menu-link" href="app_install.html" data-menu-target="app_install">Installing FreeMarker</a></li><li><a class="page-menu-link" href="app_legal.html" da
ta-menu-target="app_legal">Legal</a><ul><li><a class="page-menu-link" href="app_license.html" data-menu-target="app_license">License</a></li><li><a class="page-menu-link" href="app_eccn.html" data-menu-target="app_eccn">Export Control</a></li></ul></li></ul></li><li><a class="page-menu-link" href="gloss.html" data-menu-target="gloss">Glossary</a></li><li><a class="page-menu-link" href="alphaidx.html" data-menu-target="alphaidx">Alphabetical Index</a></li></ul> </div><div class="bottom-pagers-wrapper"><div class="pagers bottom"><span class="paging-arrow disabled previous"><span>Previous</span></span><a class="paging-arrow next" href="index.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:37:08Z" title="Monday, March 13, 2017 10:37:08 AM GMT">2017-03-13 10:37:08 GMT</time>, for Freemarker 2.3.26 </p>
-<p class="copyright">
-� <span itemprop="copyrightYear">1999</span>\u20132017
-<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>
[37/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/pgui.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/pgui.html b/builds/2.3.26-nightly/pgui.html
deleted file mode 100644
index 4213288..0000000
--- a/builds/2.3.26-nightly/pgui.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<!doctype html>
-<!-- Generated by FreeMarker/Docgen from DocBook -->
-<html lang="en" class="page-type-part">
-<head prefix="og: http://ogp.me/ns#">
-<meta charset="utf-8">
-<title>Programmer's Guide - 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="Programmer's Guide">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/pgui.html">
-<link rel="canonical" href="http://freemarker.org/docs/pgui.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="pgui.html"><span itemprop="name">Programmer's Guide</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_ex
p.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","Programmer\'s Guide"];</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="dgui_misc_alternativesyntax.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_quickstart.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-part" id="pgui" itemprop="headline">Programmer's Guide</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Section Contents</div>
-<ul><li><a class="page-menu-link" href="pgui_quickstart.html" data-menu-target="pgui_quickstart">Getting Started</a><ul><li><a class="page-menu-link" href="pgui_quickstart_createconfiguration.html" data-menu-target="pgui_quickstart_createconfiguration">Create a configuration instance</a></li><li><a class="page-menu-link" href="pgui_quickstart_createdatamodel.html" data-menu-target="pgui_quickstart_createdatamodel">Create a data-model</a></li><li><a class="page-menu-link" href="pgui_quickstart_gettemplate.html" data-menu-target="pgui_quickstart_gettemplate">Get the template</a></li><li><a class="page-menu-link" href="pgui_quickstart_merge.html" data-menu-target="pgui_quickstart_merge">Merging the template with the data-model</a></li><li><a class="page-menu-link" href="pgui_quickstart_all.html" data-menu-target="pgui_quickstart_all">Putting all together</a></li></ul></li><li><a class="page-menu-link" href="pgui_datamodel.html" data-menu-target="pgui_datamodel">The Data Model</a><ul><l
i><a class="page-menu-link" href="pgui_datamodel_basics.html" data-menu-target="pgui_datamodel_basics">Basics</a></li><li><a class="page-menu-link" href="pgui_datamodel_scalar.html" data-menu-target="pgui_datamodel_scalar">Scalars</a></li><li><a class="page-menu-link" href="pgui_datamodel_parent.html" data-menu-target="pgui_datamodel_parent">Containers</a></li><li><a class="page-menu-link" href="pgui_datamodel_method.html" data-menu-target="pgui_datamodel_method">Methods</a></li><li><a class="page-menu-link" href="pgui_datamodel_directive.html" data-menu-target="pgui_datamodel_directive">Directives</a></li><li><a class="page-menu-link" href="pgui_datamodel_node.html" data-menu-target="pgui_datamodel_node">Node variables</a></li><li><a class="page-menu-link" href="pgui_datamodel_objectWrapper.html" data-menu-target="pgui_datamodel_objectWrapper">Object wrappers</a></li></ul></li><li><a class="page-menu-link" href="pgui_config.html" data-menu-target="pgui_config">The Configuration</a>
<ul><li><a class="page-menu-link" href="pgui_config_basics.html" data-menu-target="pgui_config_basics">Basics</a></li><li><a class="page-menu-link" href="pgui_config_sharedvariables.html" data-menu-target="pgui_config_sharedvariables">Shared variables</a></li><li><a class="page-menu-link" href="pgui_config_settings.html" data-menu-target="pgui_config_settings">Settings</a></li><li><a class="page-menu-link" href="pgui_config_templateloading.html" data-menu-target="pgui_config_templateloading">Template loading</a></li><li><a class="page-menu-link" href="pgui_config_errorhandling.html" data-menu-target="pgui_config_errorhandling">Error handling</a></li><li><a class="page-menu-link" href="pgui_config_templateconfigurations.html" data-menu-target="pgui_config_templateconfigurations">Template configurations</a></li><li><a class="page-menu-link" href="pgui_config_outputformatsautoesc.html" data-menu-target="pgui_config_outputformatsautoesc">Associating output formats with templates</a></li
><li><a class="page-menu-link" href="pgui_config_custom_formats.html" data-menu-target="pgui_config_custom_formats">Custom number and date/time formats</a></li><li><a class="page-menu-link" href="pgui_config_incompatible_improvements.html" data-menu-target="pgui_config_incompatible_improvements">The "incompatible improvements" setting</a></li></ul></li><li><a class="page-menu-link" href="pgui_misc.html" data-menu-target="pgui_misc">Miscellaneous</a><ul><li><a class="page-menu-link" href="pgui_misc_var.html" data-menu-target="pgui_misc_var">Variables, scopes</a></li><li><a class="page-menu-link" href="pgui_misc_charset.html" data-menu-target="pgui_misc_charset">Charset issues</a></li><li><a class="page-menu-link" href="pgui_misc_multithreading.html" data-menu-target="pgui_misc_multithreading">Multithreading</a></li><li><a class="page-menu-link" href="pgui_misc_beanwrapper.html" data-menu-target="pgui_misc_beanwrapper">Bean wrapper</a></li><li><a class="page-menu-link" href=
"pgui_misc_logging.html" data-menu-target="pgui_misc_logging">Logging</a></li><li><a class="page-menu-link" href="pgui_misc_servlet.html" data-menu-target="pgui_misc_servlet">Using FreeMarker with servlets</a></li><li><a class="page-menu-link" href="pgui_misc_secureenv.html" data-menu-target="pgui_misc_secureenv">Configuring security policy for FreeMarker</a></li><li><a class="page-menu-link" href="pgui_misc_xml_legacy.html" data-menu-target="pgui_misc_xml_legacy">Legacy XML wrapper implementation</a></li><li><a class="page-menu-link" href="pgui_misc_ant.html" data-menu-target="pgui_misc_ant">Using FreeMarker with Ant</a></li><li><a class="page-menu-link" href="pgui_misc_jythonwrapper.html" data-menu-target="pgui_misc_jythonwrapper">Jython wrapper</a></li></ul></li></ul> </div><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="dgui_misc_alternativesyntax.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_quickstar
t.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/pgui_config.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/pgui_config.html b/builds/2.3.26-nightly/pgui_config.html
deleted file mode 100644
index f6feea0..0000000
--- a/builds/2.3.26-nightly/pgui_config.html
+++ /dev/null
@@ -1,55 +0,0 @@
-<!doctype html>
-<!-- Generated by FreeMarker/Docgen from DocBook -->
-<html lang="en" class="page-type-chapter">
-<head prefix="og: http://ogp.me/ns#">
-<meta charset="utf-8">
-<title>The Configuration - 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="The Configuration">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/pgui_config.html">
-<link rel="canonical" href="http://freemarker.org/docs/pgui_config.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="pgui.html"><span itemprop="name">Programmer's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_config.html"><span itemprop="name">The Configuration</span></a></li></ul><div class="bookmark
s" 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","Programmer\'s Guide","The Configuration"];</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="pgui_datamodel_objectWrapper.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_config_basics.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-chapter" id="pgui_config" itemprop="headline">The Configuration</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Section Contents</div>
-<ul><li><a class="page-menu-link" href="pgui_config_basics.html" data-menu-target="pgui_config_basics">Basics</a></li><li><a class="page-menu-link" href="pgui_config_sharedvariables.html" data-menu-target="pgui_config_sharedvariables">Shared variables</a></li><li><a class="page-menu-link" href="pgui_config_settings.html" data-menu-target="pgui_config_settings">Settings</a></li><li><a class="page-menu-link" href="pgui_config_templateloading.html" data-menu-target="pgui_config_templateloading">Template loading</a></li><li><a class="page-menu-link" href="pgui_config_errorhandling.html" data-menu-target="pgui_config_errorhandling">Error handling</a></li><li><a class="page-menu-link" href="pgui_config_templateconfigurations.html" data-menu-target="pgui_config_templateconfigurations">Template configurations</a></li><li><a class="page-menu-link" href="pgui_config_outputformatsautoesc.html" data-menu-target="pgui_config_outputformatsautoesc">Associating output formats with templates</a></li
><li><a class="page-menu-link" href="pgui_config_custom_formats.html" data-menu-target="pgui_config_custom_formats">Custom number and date/time formats</a></li><li><a class="page-menu-link" href="pgui_config_incompatible_improvements.html" data-menu-target="pgui_config_incompatible_improvements">The "incompatible improvements" setting</a></li></ul> </div><p>This is just an overview. See the <a href="api/index.html">FreeMarker Java API documentation</a> for the
- details.</p><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="pgui_datamodel_objectWrapper.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_config_basics.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/pgui_config_basics.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/pgui_config_basics.html b/builds/2.3.26-nightly/pgui_config_basics.html
deleted file mode 100644
index 47c8a9a..0000000
--- a/builds/2.3.26-nightly/pgui_config_basics.html
+++ /dev/null
@@ -1,75 +0,0 @@
-<!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>Basics - 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="Basics">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/pgui_config_basics.html">
-<link rel="canonical" href="http://freemarker.org/docs/pgui_config_basics.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="pgui.html"><span itemprop="name">Programmer's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_config.html"><span itemprop="name">The Configuration</span></a></li><li class="step-3" itempr
op="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_config_basics.html"><span itemprop="name">Basics</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","Programmer\'s Guide","The Configuration","Basics"];</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="pgui_config.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_config_sharedvariables.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="pgui_config_basics" itemprop="headline">Basics</h1>
-</div></div><p>First of all, be sure you have read the <a href="pgui_quickstart_createconfiguration.html">Getting Started</a>
- chapter.</p><p>A configuration is a
- <code class="inline-code">freemarker.template.Configuration</code> object that
- stores your common (global, application level) settings and defines
- variables that you want to be available in all templates (so called
- shared variables). Also, it deals with the creation and caching of
- <code class="inline-code">Template</code> instances.</p><p>An application typically uses only a single shared
- <code class="inline-code">Configuration</code> instance. More precisely, typically
- you have one <code class="inline-code">Configuration</code> instance per
- independently developed component that internally uses FreeMarker, so
- they can be configured independently of each other. For example, your
- e-mail sender component and your report generator component (service)
- probably want to use their own <code class="inline-code">Configuration</code>-s, as
- their needs differ.</p><p>As the behavior of templates depends on the configuration
- settings, each <code class="inline-code">Template</code> instance has an associated
- <code class="inline-code">Configuration</code> instance. If you obtain the
- <code class="inline-code">Template</code> instances with
- <code class="inline-code">Configuration.getTemplate</code>, the associated
- <code class="inline-code">Configuration</code> instance will be the one whose
- <code class="inline-code">getTemplate</code> method was called. If you create the
- <code class="inline-code">Template</code> instances directly with the
- <code class="inline-code">Template</code> constructor, the
- <code class="inline-code">Configuration</code> should be specified as constructor
- parameter.</p><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="pgui_config.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_config_sharedvariables.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/pgui_config_custom_formats.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/pgui_config_custom_formats.html b/builds/2.3.26-nightly/pgui_config_custom_formats.html
deleted file mode 100644
index 1c083eb..0000000
--- a/builds/2.3.26-nightly/pgui_config_custom_formats.html
+++ /dev/null
@@ -1,700 +0,0 @@
-<!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>Custom number and date/time formats - 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="Custom number and date/time formats">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/pgui_config_custom_formats.html">
-<link rel="canonical" href="http://freemarker.org/docs/pgui_config_custom_formats.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="pgui.html"><span itemprop="name">Programmer's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_config.html"><span itemprop="name">The Configuration</span></a></li><li class="step-3" itempr
op="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_config_custom_formats.html"><span itemprop="name">Custom number and date/time formats</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","Programmer\'s Guide","The Configuration","Custom number and date/time formats"];</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="pgui_config_outputformatsautoesc.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_config_incompatible_improvements.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="pgui_config_custom_formats" itemprop="headline">Custom number and date/time formats</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_50" data-menu-target="autoid_50">Overview</a></li><li><a class="page-menu-link" href="#pgui_config_custom_formats_ex_cust_alg_simple" data-menu-target="pgui_config_custom_formats_ex_cust_alg_simple">Simple custom number format example</a></li><li><a class="page-menu-link" href="#pgui_config_custom_formats_ex_cust_algo_advanced" data-menu-target="pgui_config_custom_formats_ex_cust_algo_advanced">Advanced custom number format example</a></li><li><a class="page-menu-link" href="#pgui_config_custom_formats_ex_cust_algo_date" data-menu-target="pgui_config_custom_formats_ex_cust_algo_date">Custom date/time format example</a></li><li><a class="page-menu-link" href="#pgui_config_custom_formats_ex_alias" data-menu-target="pgui_config_custom_formats_ex_alias">Alias format example</a></li><li><a class="page-menu-link" href="#pgui_config_custom_formats_ex_model_aware" data-menu-target="pgui_config_custom_formats_ex_model_aware">Model-aware format
example</a></li></ul> </div>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_50">Overview</h2>
-
-
- <p>FreeMarker allows you to define your own number and
- date/time/datetime formats, and associate a name to them. This
- mechanism has several applications:</p>
-
- <ul>
- <li>
- <p>Custom formatter algorithms: You can use your own
- formatter algorithm instead of relying on those provided by
- FreeMarker. For this, implement
- <code class="inline-code">freemarker.core.TemplateNumberFormatFactory</code>
- or <code class="inline-code">freemarker.core.TemplateDateFormatFactory</code>.
- You will find a few examples of this <a href="#pgui_config_custom_formats_ex_cust_alg_simple">below</a>.</p>
- </li>
-
- <li>
- <p>Aliasing: You can give application-specific names (like
- "price", "weight",
- "fileDate", "logEventTime", etc.) to
- other formats by using
- <code class="inline-code">AliasTemplateNumberFormatFactory</code> and
- <code class="inline-code">AliasTemplateDateFormatFactory</code>. Thus
- templates can just refer to that name, like in
- <code class="inline-code">${lastModified?string.@fileDate}</code>, instead of
- specifying the format directly. Thus the formats can be
- specified on a single central place (where you configure
- FreeMarker), instead of being specified repeatedly in templates.
- Also thus template authors don't have to enter complex and hard
- to remember formatting patterns. <a href="#pgui_config_custom_formats_ex_alias">See example
- below</a>.</p>
- </li>
-
- <li>
- <p>Model-sensitive formatting: Applications can put custom
- <code class="inline-code">freemarker.TemplateModel</code>-s into the
- data-model instead of dropping plain values (like
- <code class="inline-code">int</code>-s, <code class="inline-code">double</code>-s, etc.)
- into it, to attach rendering-related information to the value.
- Custom formatters can utilize this information (for example, to
- show the unit after numbers), as they receive the
- <code class="inline-code">TemplateModel</code> itself, not the wrapped raw
- value. <a href="#pgui_config_custom_formats_ex_model_aware">See example
- below</a>.</p>
- </li>
-
- <li>
- <p>Format that prints markup instead of plain text: You might
- want to use HTML tags (or other markup) in the formatted values,
- such as coloring negative numbers to red or using HTML
- <code class="inline-code">sup</code> element for exponents. This is possible
- if you write a custom format as shown in previous cases, but
- override the <code class="inline-code">format</code> method in the formatter
- class so that it returns a
- <code class="inline-code">TemplateMarkupOutputModel</code> instead of a
- <code class="inline-code">String</code>. (You shouldn't just return the markup
- as <code class="inline-code">String</code>, as then it might will be escaped;
- see <a href="dgui_misc_autoescaping.html">auto-escaping</a>.)</p>
- </li>
- </ul>
-
- <p>Custom formats can be registered with the
- <code class="inline-code">custom_number_formats</code> and
- <code class="inline-code">custom_date_formats</code> configuration settings. After
- that, anywhere where you can specify formats with a
- <code class="inline-code">String</code>, now you can refer to your custom format
- as <code class="inline-code">"@<em class="code-color">name</em>"</code>. So for
- example, if you have registered your number format implementation
- with name <code class="inline-code">"smart"</code>, then you could set the
- <code class="inline-code">number_format</code> setting
- (<code class="inline-code">Configurable.setNumberFormat(String)</code>) to
- <code class="inline-code">"@smart"</code>, or issue
- <code class="inline-code">${n?string.@smart}</code> or <code class="inline-code"><#setting
- number_format="@smart"></code> in a template. Furthermore, you
- can define parameters for your custom format, like <code class="inline-code">"@smart
- 2"</code>, and the interpretation of the parameters is up to your
- formatter implementation.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="pgui_config_custom_formats_ex_cust_alg_simple">Simple custom number format example</h2>
-
-
- <p>This custom number format shows numbers in hexadecimal
- form:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">package com.example;
-
-import java.util.Locale;
-
-import freemarker.template.TemplateModelException;
-import freemarker.template.TemplateNumberModel;
-import freemarker.template.utility.NumberUtil;
-
-public class HexTemplateNumberFormatFactory extends TemplateNumberFormatFactory {
-
- public static final HexTemplateNumberFormatFactory INSTANCE
- = new HexTemplateNumberFormatFactory();
-
- private HexTemplateNumberFormatFactory() {
- // Defined to decrease visibility
- }
-
- @Override
- public TemplateNumberFormat get(String params, Locale locale, Environment env)
- throws InvalidFormatParametersException {
- TemplateFormatUtil.checkHasNoParameters(params);
- return HexTemplateNumberFormat.INSTANCE;
- }
-
- private static class HexTemplateNumberFormat extends TemplateNumberFormat {
-
- private static final HexTemplateNumberFormat INSTANCE = new HexTemplateNumberFormat();
-
- private HexTemplateNumberFormat() { }
-
- @Override
- public String formatToPlainText(TemplateNumberModel numberModel)
- throws UnformattableValueException, TemplateModelException {
- Number n = TemplateFormatUtil.getNonNullNumber(numberModel);
- try {
- return Integer.toHexString(NumberUtil.toIntExact(n));
- } catch (ArithmeticException e) {
- throw new UnformattableValueException(n + " doesn't fit into an int");
- }
- }
-
- @Override
- public boolean isLocaleBound() {
- return false;
- }
-
- @Override
- public String getDescription() {
- return "hexadecimal int";
- }
-
- }
-
-}</pre></div>
-
- <p>We register the above format with name
- "hex":</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">// Where you initalize the application-wide Configuration singleton:
-Configuration cfg = ...;
-...
-Map<String, TemplateNumberFormatFactory> customNumberFormats = ...;
-...
-customNumberFormats.put("hex", HexTemplateNumberFormatFactory.INSTANCE);
-...
-cfg.setCustomNumberFormats(customNumberFormats);</pre></div>
-
- <p>Now we can use this format in templates:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${x?string.@hex}</pre></div>
-
- <p>or even set it as the default number format:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">cfg.setNumberFormat("@hex");</pre></div>
-
-
-
-
-
-<h2 class="content-header header-section2" id="pgui_config_custom_formats_ex_cust_algo_advanced">Advanced custom number format example</h2>
-
-
- <p>This is a more complex custom number format that shows how to
- deal with parameters in the format string, also how to delegate to
- another format:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">package com.example;
-
-import java.util.Locale;
-
-import freemarker.template.TemplateModelException;
-import freemarker.template.TemplateNumberModel;
-import freemarker.template.utility.NumberUtil;
-import freemarker.template.utility.StringUtil;
-
-/**
- * Shows a number in base N number system. Can only format numbers that fit into an {@code int},
- * however, optionally you can specify a fallback format. This format has one required parameter,
- * the numerical system base. That can be optionally followed by "|" and a fallback format.
- */
-public class BaseNTemplateNumberFormatFactory extends TemplateNumberFormatFactory {
-
- public static final BaseNTemplateNumberFormatFactory INSTANCE
- = new BaseNTemplateNumberFormatFactory();
-
- private BaseNTemplateNumberFormatFactory() {
- // Defined to decrease visibility
- }
-
- @Override
- public TemplateNumberFormat get(String params, Locale locale, Environment env)
- throws InvalidFormatParametersException {
- TemplateNumberFormat fallbackFormat;
- {
- int barIdx = params.indexOf('|');
- if (barIdx != -1) {
- String fallbackFormatStr = params.substring(barIdx + 1);
- params = params.substring(0, barIdx);
- try {
- fallbackFormat = env.getTemplateNumberFormat(fallbackFormatStr, locale);
- } catch (TemplateValueFormatException e) {
- throw new InvalidFormatParametersException(
- "Couldn't get the fallback number format (specified after the \"|\"), "
- + StringUtil.jQuote(fallbackFormatStr) + ". Reason: " + e.getMessage(),
- e);
- }
- } else {
- fallbackFormat = null;
- }
- }
-
- int base;
- try {
- base = Integer.parseInt(params);
- } catch (NumberFormatException e) {
- if (params.length() == 0) {
- throw new InvalidFormatParametersException(
- "A format parameter is required to specify the numerical system base.");
- }
- throw new InvalidFormatParametersException(
- "The format paramter must be an integer, but was (shown quoted): "
- + StringUtil.jQuote(params));
- }
- if (base < 2) {
- throw new InvalidFormatParametersException("A base must be at least 2.");
- }
- return new BaseNTemplateNumberFormat(base, fallbackFormat);
- }
-
- private static class BaseNTemplateNumberFormat extends TemplateNumberFormat {
-
- private final int base;
- private final TemplateNumberFormat fallbackFormat;
-
- private BaseNTemplateNumberFormat(int base, TemplateNumberFormat fallbackFormat) {
- this.base = base;
- this.fallbackFormat = fallbackFormat;
- }
-
- @Override
- public String formatToPlainText(TemplateNumberModel numberModel)
- throws TemplateModelException, TemplateValueFormatException {
- Number n = TemplateFormatUtil.getNonNullNumber(numberModel);
- try {
- return Integer.toString(NumberUtil.toIntExact(n), base);
- } catch (ArithmeticException e) {
- if (fallbackFormat == null) {
- throw new UnformattableValueException(
- n + " doesn't fit into an int, and there was no fallback format "
- + "specified.");
- } else {
- return fallbackFormat.formatToPlainText(numberModel);
- }
- }
- }
-
- @Override
- public boolean isLocaleBound() {
- return false;
- }
-
- @Override
- public String getDescription() {
- return "base " + base;
- }
-
- }
-
-}</pre></div>
-
- <p>We register the above format with name
- "base":</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">// Where you initalize the application-wide Configuration singleton:
-Configuration cfg = ...;
-...
-Map<String, TemplateNumberFormatFactory> customNumberFormats = ...;
-...
-customNumberFormats.put("base", BaseNTemplateNumberFormatFactory.INSTANCE);
-...
-cfg.setCustomNumberFormats(customNumberFormats);</pre></div>
-
- <p>Now we can use this format in templates:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${x?string.@base_8}</pre></div>
-
- <p>Above there the parameter string was <code class="inline-code">"8"</code>,
- as FreeMarker allows separating that from the format name with
- <code class="inline-code">_</code> instead of whitespace, so that you don't have
- to write the longer
- <code class="inline-code"><em class="code-color">n</em>?string["@base 8"]</code>
- form.</p>
-
- <p>Of course, we could also set this as the default number format
- like:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">cfg.setNumberFormat("@base 8");</pre></div>
-
- <p>Here's an example of using the a fallback number format (which
- is <code class="inline-code">"0.0###"</code>):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">cfg.setNumberFormat("@base 8|0.0###");</pre></div>
-
- <p>Note that this functionality, with the <code class="inline-code">|</code>
- syntax and all, is purely implemented in the example code
- earlier.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="pgui_config_custom_formats_ex_cust_algo_date">Custom date/time format example</h2>
-
-
- <p>This simple date format formats the date/time value to the
- milliseconds since the epoch:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">package com.example;
-
-import java.util.Date;
-import java.util.Locale;
-import java.util.TimeZone;
-
-import freemarker.template.TemplateDateModel;
-import freemarker.template.TemplateModelException;
-
-public class EpochMillisTemplateDateFormatFactory extends TemplateDateFormatFactory {
-
- public static final EpochMillisTemplateDateFormatFactory INSTANCE
- = new EpochMillisTemplateDateFormatFactory();
-
- private EpochMillisTemplateDateFormatFactory() {
- // Defined to decrease visibility
- }
-
- @Override
- public TemplateDateFormat get(String params, int dateType,
- Locale locale, TimeZone timeZone, boolean zonelessInput,
- Environment env)
- throws InvalidFormatParametersException {
- TemplateFormatUtil.checkHasNoParameters(params);
- return EpochMillisTemplateDateFormat.INSTANCE;
- }
-
- private static class EpochMillisTemplateDateFormat extends TemplateDateFormat {
-
- private static final EpochMillisTemplateDateFormat INSTANCE
- = new EpochMillisTemplateDateFormat();
-
- private EpochMillisTemplateDateFormat() { }
-
- @Override
- public String formatToPlainText(TemplateDateModel dateModel)
- throws UnformattableValueException, TemplateModelException {
- return String.valueOf(TemplateFormatUtil.getNonNullDate(dateModel).getTime());
- }
-
- @Override
- public boolean isLocaleBound() {
- return false;
- }
-
- @Override
- public boolean isTimeZoneBound() {
- return false;
- }
-
- @Override
- public Date parse(String s, int dateType) throws UnparsableValueException {
- try {
- return new Date(Long.parseLong(s));
- } catch (NumberFormatException e) {
- throw new UnparsableValueException("Malformed long");
- }
- }
-
- @Override
- public String getDescription() {
- return "millis since the epoch";
- }
-
- }
-
-}</pre></div>
-
- <p>We register the above format with name
- "epoch":</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">// Where you initalize the application-wide Configuration singleton:
-Configuration cfg = ...;
-...
-Map<String, TemplateDateFormatFactory> customDateFormats = ...;
-...
-customDateFormats.put("epoch", EpochMillisTemplateDateFormatFactory.INSTANCE);
-...
-cfg.setCustomDateFormats(customDateFormats);</pre></div>
-
- <p>Now we can use this format in templates:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${t?string.@epoch}</pre></div>
-
- <p>Of course, we could also set this as the default date-time
- format like:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">cfg.setDateTimeFormat("@epoch");</pre></div>
-
- <p>For a more complex that for example uses format parameters,
- refer to the <a href="#pgui_config_custom_formats_ex_cust_algo_advanced">advanced
- number format example</a>. Doing that with date formats is very
- similar.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="pgui_config_custom_formats_ex_alias">Alias format example</h2>
-
-
- <p>In this example we specify some number formats and date
- formats that are aliases to another format:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">// Where you initalize the application-wide Configuration singleton:
-Configuration cfg = ...;
-
-Map<String, TemplateNumberFormatFactory> customNumberFormats
- = new HashMap<String, TemplateNumberFormatFactory>();
-customNumberFormats.put("price", new AliasTemplateNumberFormatFactory(",000.00"));
-customNumberFormats.put("weight",
- new AliasTemplateNumberFormatFactory("0.##;; roundingMode=halfUp"));
-cfg.setCustomNumberFormats(customNumberFormats);
-
-Map<String, TemplateDateFormatFactory> customDateFormats
- = new HashMap<String, TemplateDateFormatFactory>();
-customDateFormats.put("fileDate", new AliasTemplateDateFormatFactory("dd/MMM/yy hh:mm a"));
-customDateFormats.put("logEventTime", new AliasTemplateDateFormatFactory("iso ms u"));
-cfg.setCustomDateFormats(customDateFormats);</pre></div>
-
- <p>So now you can do this in a template:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${product.price?string.@price}
-${product.weight?string.@weight}
-${lastModified?string.@fileDate}
-${lastError.timestamp?string.@logEventTime}</pre></div>
-
- <p>Note that the constructor parameter of
- <code class="inline-code">AliasTemplateNumberFormatFactory</code> can naturally
- refer to a custom format too:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">Map<String, TemplateNumberFormatFactory> customNumberFormats
- = new HashMap<String, TemplateNumberFormatFactory>();
-customNumberFormats.put("base", BaseNTemplateNumberFormatFactory.INSTANCE);
-customNumberFormats.put("oct", new AliasTemplateNumberFormatFactory("@base 8"));
-cfg.setCustomNumberFormats(customNumberFormats);</pre></div>
-
- <p>So now
- <code class="inline-code"><em class="code-color">n</em>?string.@oct</code> will
- format the number to octal form.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="pgui_config_custom_formats_ex_model_aware">Model-aware format example</h2>
-
-
- <p>In this example we specify a number format that automatically
- show the unit after the number if that was put into the data-model
- as <code class="inline-code">UnitAwareTemplateNumberModel</code>. First let's see
- <code class="inline-code">UnitAwareTemplateNumberModel</code>:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">package com.example;
-
-import freemarker.template.TemplateModelException;
-import freemarker.template.TemplateNumberModel;
-
-public class UnitAwareTemplateNumberModel implements TemplateNumberModel {
-
- private final Number value;
- private final String unit;
-
- public UnitAwareTemplateNumberModel(Number value, String unit) {
- this.value = value;
- this.unit = unit;
- }
-
- @Override
- public Number getAsNumber() throws TemplateModelException {
- return value;
- }
-
- public String getUnit() {
- return unit;
- }
-
-}</pre></div>
-
- <p>When you fill the data-model, you could do something like
- this:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">Map<String, Object> dataModel = new HashMap<>();
-dataModel.put("weight", new UnitAwareTemplateNumberModel(1.5, "kg"));
-// Rather than just: dataModel.put("weight", 1.5);</pre></div>
-
- <p>Then if we have this in the template:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${weight}</pre></div>
-
- <p>we want to see this:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">1.5 kg</pre></div>
-
- <p>To achieve that, we define this custom number format:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">package com.example;
-
-import java.util.Locale;
-
-import freemarker.core.Environment;
-import freemarker.core.TemplateNumberFormat;
-import freemarker.core.TemplateNumberFormatFactory;
-import freemarker.core.TemplateValueFormatException;
-import freemarker.template.TemplateModelException;
-import freemarker.template.TemplateNumberModel;
-
-/**
- * A number format that takes any other number format as parameter (specified as a string, as
- * usual in FreeMarker), then if the model is a {@link UnitAwareTemplateNumberModel}, it shows
- * the unit after the number formatted with the other format, otherwise it just shows the formatted
- * number without unit.
- */
-public class UnitAwareTemplateNumberFormatFactory extends TemplateNumberFormatFactory {
-
- public static final UnitAwareTemplateNumberFormatFactory INSTANCE
- = new UnitAwareTemplateNumberFormatFactory();
-
- private UnitAwareTemplateNumberFormatFactory() {
- // Defined to decrease visibility
- }
-
- @Override
- public TemplateNumberFormat get(String params, Locale locale, Environment env)
- throws TemplateValueFormatException {
- return new UnitAwareNumberFormat(env.getTemplateNumberFormat(params, locale));
- }
-
- private static class UnitAwareNumberFormat extends TemplateNumberFormat {
-
- private final TemplateNumberFormat innerFormat;
-
- private UnitAwareNumberFormat(TemplateNumberFormat innerFormat) {
- this.innerFormat = innerFormat;
- }
-
- @Override
- public String formatToPlainText(TemplateNumberModel numberModel)
- throws TemplateModelException, TemplateValueFormatException {
- String innerResult = innerFormat.formatToPlainText(numberModel);
- return numberModel instanceof UnitAwareTemplateNumberModel
- ? innerResult + " " + ((UnitAwareTemplateNumberModel) numberModel).getUnit()
- : innerResult;
- }
-
- @Override
- public boolean isLocaleBound() {
- return innerFormat.isLocaleBound();
- }
-
- @Override
- public String getDescription() {
- return "unit-aware " + innerFormat.getDescription();
- }
-
- }
-
-}</pre></div>
-
- <p>Finally, we set the above custom format as the default number
- format:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">// Where you initalize the application-wide Configuration singleton:
-Configuration cfg = ...;
-
-Map<String, TemplateNumberFormatFactory> customNumberFormats = new HashMap<>();
-customNumberFormats.put("ua", UnitAwareTemplateNumberFormatFactory.INSTANCE);
-cfg.setCustomNumberFormats(customNumberFormats);
-
-// Note: "0.####;; roundingMode=halfUp" is a standard format specified in FreeMarker.
-cfg.setNumberFormat("@ua 0.####;; roundingMode=halfUp");</pre></div>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="pgui_config_outputformatsautoesc.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_config_incompatible_improvements.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>\u20132017
-<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>
[11/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/versions_2_3_1.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_3_1.html b/builds/2.3.26-nightly/versions_2_3_1.html
deleted file mode 100644
index 0b646ce..0000000
--- a/builds/2.3.26-nightly/versions_2_3_1.html
+++ /dev/null
@@ -1,352 +0,0 @@
-<!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.1 - 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.1">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/versions_2_3_1.html">
-<link rel="canonical" href="http://freemarker.org/docs/versions_2_3_1.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_1.html"><span itemprop="name">2.3.1</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.1"];</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_2.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="versions_2_3_1" itemprop="headline">2.3.1</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_214" data-menu-target="autoid_214">Possible backward compatibility issue</a></li><li><a class="page-menu-link" href="#autoid_215" data-menu-target="autoid_215">Changes on the FTL side</a></li><li><a class="page-menu-link" href="#autoid_216" data-menu-target="autoid_216">Changes on the Java side</a></li><li><a class="page-menu-link" href="#autoid_217" data-menu-target="autoid_217">Other changes</a></li><li><a class="page-menu-link" href="#autoid_218" data-menu-target="autoid_218">The history of the releases before the final version</a><ul><li><a class="page-menu-link" href="#autoid_219" data-menu-target="autoid_219">Differences between the preview release and final
-release</a></li></ul></li></ul> </div><p>Date of release: 2005-01-04</p><p>Maintenance (with some important new features) and bugfix
- release.</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_214">Possible backward compatibility issue</h2>
-
-
- <p>There is a bugfix that may affect the behavior of you Web
- application if you use JSP tags in FreeMarker templates:
- FreeMarker's implementation of
- <code class="inline-code">javax.servlet.jsp.PageContext.getSession()</code> was
- incorrect. The <code class="inline-code">getSession()</code> method is a
- convenience method by which the custom tag can get the current
- <code class="inline-code">HttpSession</code> object (possibly
- <code class="inline-code">null</code> if there is no session). Till now, if the
- session didn't existed then it has created it automatically, so it
- never returned <code class="inline-code">null</code>. This was a bug, so starting
- from 2.3.1 it never creates the session, just returns
- <code class="inline-code">null</code> if it doesn't exist. The old incorrect
- behavior could cause page rendering to fail if the method is called
- after the page is partially flushed. But beware, the old behavior
- has possibly hidden some bugs of the Web application, where it
- forgot to create the session, so with the new correct behavior you
- may face malfunction caused by previously cloaked bugs of the Web
- application. (It's the task of the MVC Controller to create the
- session, except if the JSP tag that needs a session is written so it
- creates it automatically, but then it doesn't expects that
- <code class="inline-code">getSession()</code> will do it.)</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_215">Changes on the FTL side</h2>
-
-
- <ul>
- <li>
- <p>New built-in: <a href="ref_builtins_string.html#ref_builtin_url"><code>url</code></a>. This
- built-in can be used for URL escaping. Note, however, that to
- use this built-in conveniently, the software that encapsulates
- FreeMarker has to be 2.3.1 aware (programmers will find more
- info bellow...).</p>
- </li>
-
- <li>
- <p>New <a href="ref_specvar.html">special variables</a>:
- <code class="inline-code">output_encoding</code> and
- <code class="inline-code">url_escaping_charset</code>. Note, however, that to
- use these, the software that encapsulates FreeMarker has to be
- 2.3.1 aware (programmers will find more info bellow...).</p>
- </li>
-
- <li>
- <p>New built-ins for sequences: <a href="ref_builtins_sequence.html#ref_builtin_seq_contains"><code>seq_contains</code></a>,
- <a href="ref_builtins_sequence.html#ref_builtin_seq_index_of"><code>seq_index_of</code></a>,
- <a href="ref_builtins_sequence.html#ref_builtin_seq_last_index_of"><code>seq_last_index_of</code></a>.</p>
- </li>
-
- <li>
- <p>New built-ins for strings: <a href="ref_builtins_string.html#ref_builtin_left_pad"><code>left_pad</code></a>,
- <a href="ref_builtins_string.html#ref_builtin_right_pad"><code>right_pad</code></a>
- and <a href="ref_builtins_string.html#ref_builtin_contains"><code>contains</code></a>.</p>
- </li>
-
- <li>
- <p>New directive: <a href="ref_directive_attempt.html#ref.directive.attempt"><code>attempt</code>/<code>recover</code></a></p>
- </li>
-
- <li>
- <p>The <a href="ref_builtins_string.html#ref_builtin_js_string"><code>js_string</code>
- built-in</a> now escapes <code class="inline-code">></code> as
- <code class="inline-code">\></code> (to avoid
- <code class="inline-code"></script></code>).</p>
- </li>
-
- <li>
- <p>The <code class="inline-code">sort</code> and <code class="inline-code">sort_by</code>
- built-ins now can sort by date values. Also,
- <code class="inline-code">sort_by</code> built-in now can sort by the
- subvarible of a subvariable of a subvariable... etc. for any
- level depth. (<a href="ref_builtins_sequence.html#ref_builtin_sort_by">Details...</a>)</p>
- </li>
-
- <li>
- <p><code class="inline-code">freemarker.template.TemplateExceptionHandler.HTML_DEBUG_HANDLER</code>
- now prints more HTML-context-proof messages.</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_216">Changes on the Java side</h2>
-
-
- <ul>
- <li>
- <p>New setting: <code class="inline-code">output_encoding</code>. This
- setting is used for informing FreeMarker about the charset that
- the enclosing software (as a Web application framework) uses for
- the output of FreeMarker. It's undefined by default, and
- although it is not strictly required to set it, the enclosing
- software should do so. This setting must be set if templates
- want to use the new <code class="inline-code">output_encoding</code> special
- variable, and possibly if they want to use the new
- <code class="inline-code">url</code> built-in. Note that the FreeMarker API
- allows you to set settings for each template execution
- individually (look at
- <code class="inline-code">Template.createProcessingEnvironment(...)</code>).</p>
- </li>
-
- <li>
- <p>New setting: <code class="inline-code">url_escaping_charset</code>. This
- is the charset used for calculating the escaped parts
- (<code class="inline-code">%<em class="code-color">XX</em></code>) when you do
- URL escaping with the new <code class="inline-code">url</code> built-in. If it
- is not set, then the <code class="inline-code">url</code> built-in uses the
- value of the <code class="inline-code">output_encoding</code> setting, and if
- that's not set either, then the parameterless version of
- <code class="inline-code">url</code> built-in (<code class="inline-code">${foo?url}</code>)
- can't be used.</p>
- </li>
-
- <li>
- <p>Using the singleton (static)
- <code class="inline-code">Configuration</code> instance is clearly a bad
- practice, so related methods are now deprecated, and the Manual
- was adjusted, and the <code class="inline-code">FreemarkerXmlTask</code> was
- updated as well.</p>
- </li>
-
- <li>
- <p>The
- <code class="inline-code">freemarker.template.utility.Constants</code> class
- was added that contains various static final fields that store
- frequently used constant <code class="inline-code">TemplateModel</code>
- values, as <code class="inline-code">EMPTY_SEQUENCE</code>,
- <code class="inline-code">ZERO</code>, ...etc.</p>
- </li>
-
- <li>
- <p>When using <code class="inline-code">SecurityManager</code> with
- FreeMarker, accessing system properties may caused
- AccessControlException. Now such exceptions are catched and
- logged with warning level, and the default value of the property
- is returned.</p>
- </li>
-
- <li>
- <p>The needles <code class="inline-code">InvocationTargetException</code>
- is now removed from the exception cause trace in certain
- cases.</p>
- </li>
-
- <li>
- <p>Added a dirty hack that prints
- <code class="inline-code">ServletException</code> root cause in
- <code class="inline-code">TemplateException</code>'s stack trace if that's the
- direct cause exception of the
- <code class="inline-code">TemplateException</code>, despite the poorly written
- <code class="inline-code">ServletException</code> class.</p>
- </li>
-
- <li>
- <p>Bugfix: FreeMarker's implementation of
- <code class="inline-code">javax.servlet.jsp.PageContext.getSession()</code>
- was incorrect. The <code class="inline-code">getSession()</code> method is a
- convenience method by which the custom tag can get the current
- <code class="inline-code">HttpSession</code> object (possibly
- <code class="inline-code">null</code> if there is no session). Till now, if
- the session didn't existed then it has created it automatically,
- so it never returned <code class="inline-code">null</code>. This was a bug, so
- starting from 2.3.1 it never creates the session, just returns
- <code class="inline-code">null</code> if it doesn't exist. The old incorrect
- behavior could cause page rendering to fail if the method is
- called after the page is partially flushed. But beware, the old
- behavior has possibly hidden some bugs of the Web application,
- where it forgot to create the session, so with the new correct
- behavior you may face malfunction caused by previously cloaked
- bugs of the Web application. (It's the task of the MVC
- Controller to create the session, except if the JSP tag that
- needs a session is written so it creates it automatically, but
- then it doesn't expects that <code class="inline-code">getSession()</code>
- will do it.)</p>
- </li>
-
- <li>
- <p>Bugfix: The <code class="inline-code">BeansWrapper</code> didn't always
- handled properly the case of a Java class having both a public
- static field and a public static method with the same
- name.</p>
- </li>
-
- <li>
- <p>Bugfix: <code class="inline-code">SimpleMethodModel</code> had
- incorrectly propagate exceptions sometimes, causing null pointer
- exception.</p>
- </li>
-
- <li>
- <p>Bugfix: The template execution may used outdated cached
- values when you have processed the same
- <code class="inline-code">Environment</code> for multiple times, and changed
- settings between the two processings. Note that this could
- happen only in single-thread environment, where such setting
- modifications are allowed.</p>
- </li>
-
- <li>
- <p>Bugfix: Some of the string built-ins has died with
- <code class="inline-code">IndexOutOfBounds</code> exception if the template
- author has forgotten to specify required parameters. Now they
- die with more helpful error messages.</p>
- </li>
-
- <li>
- <p>Bugfix:
- <code class="inline-code">freemarker.ext.dom.NodeModel.equals(...)</code> has
- died with null pointer exception if its argument was
- <code class="inline-code">null</code>.</p>
- </li>
-
- <li>
- <p>Bugfix: The cause exception of
- <code class="inline-code">TemplateException</code>-s was sometimes printed
- twice in stack traces with J2SE 1.4 or later.</p>
- </li>
-
- <li>
- <p>Bugfix: The
- <code class="inline-code">StringUtil.FTLStringLiteralEnc(String)</code> method
- was finished.</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_217">Other changes</h2>
-
-
- <ul>
- <li>
- <p>Fixes and improvements in the Manual and in the API
- JavaDoc.</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_218">The history of the releases before the final version</h2>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_219">Differences between the preview release and final
- release</h3>
-
-
- <ul>
- <li>
- <p>Added a dirty hack that prints
- <code class="inline-code">ServletException</code> root cause in
- <code class="inline-code">TemplateException</code>'s stack trace if that's
- the direct cause exception of the
- <code class="inline-code">TemplateException</code>, despite the poorly
- written <code class="inline-code">ServletException</code> class.</p>
- </li>
-
- <li>
- <p>Bugfix:
- <code class="inline-code">freemarker.ext.dom.NodeModel.equals(...)</code>
- has died with null pointer exception if its argument was
- <code class="inline-code">null</code>.</p>
- </li>
-
- <li>
- <p>Bugfix: The cause exception of
- <code class="inline-code">TemplateException</code>-s was sometimes printed
- twice in stack traces with J2SE 1.4 or later.</p>
- </li>
-
- <li>
- <p>More minor improvements in the Manual.</p>
- </li>
- </ul>
-
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_3_2.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/versions_2_3_10.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_3_10.html b/builds/2.3.26-nightly/versions_2_3_10.html
deleted file mode 100644
index 69c8548..0000000
--- a/builds/2.3.26-nightly/versions_2_3_10.html
+++ /dev/null
@@ -1,116 +0,0 @@
-<!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.10 - 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.10">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/versions_2_3_10.html">
-<link rel="canonical" href="http://freemarker.org/docs/versions_2_3_10.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_10.html"><span itemprop="name">2.3.10</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.10"];</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_11.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_9.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="versions_2_3_10" itemprop="headline">2.3.10</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_196" data-menu-target="autoid_196">Changes on the Java side</a></li><li><a class="page-menu-link" href="#autoid_197" data-menu-target="autoid_197">Changes on the FTL side</a></li></ul> </div><p>Date of release: 2007-04-20</p><p>This release contains several important bugfixes.</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_196">Changes on the Java side</h2>
-
-
- <ul>
- <li>
- <p>[1589245] <code class="inline-code">MultiTemplateLoader</code> clears
- its internal cached data (used for optimizing subsequent lookups
- of the same template) when
- <code class="inline-code">Configuration.clearTemplateCache()</code> is
- invoked.</p>
- </li>
-
- <li>
- <p>[1619257] A bug that caused an exception when
- <code class="inline-code">strict_bean_model</code> was used in a FreeMarker
- configuration <code class="inline-code">Properties</code> object or in the
- <code class="inline-code"><#setting .../></code> directive has been
- fixed.</p>
- </li>
-
- <li>
- <p>[1685176] A bug that caused
- <code class="inline-code">StackOverflowError</code> in certain interactions of
- garbage collector with MRU cache under Sun's Java 6 JVM has been
- fixed.</p>
- </li>
-
- <li>
- <p>[1686955] When <code class="inline-code">ResourceBundleModel</code>
- constructs <code class="inline-code">MessageFormat</code> objects, it passes
- them its own locale. <a href="pgui_misc_beanwrapper.html#beanswrapper_method">More
- info...</a></p>
- </li>
-
- <li>
- <p>[1691432] A bug that caused
- <code class="inline-code">BeansWrapper.EXPOSE_SAFE</code> to be no safer than
- <code class="inline-code">BeansWrapper.EXPOSE_ALL</code> has been
- fixed.</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_197">Changes on the FTL side</h2>
-
-
- <ul>
- <li>
- <p>[1628550] You can now use
- <code class="inline-code">dateExp?string.full</code> for formatting dates
- using Java built-in format
- <code class="inline-code">java.util.Date.FULL</code> <a href="ref_builtins_date.html#ref_builtin_string_for_date">More info...</a></p>
- </li>
- </ul>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_3_11.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_9.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/versions_2_3_11.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_3_11.html b/builds/2.3.26-nightly/versions_2_3_11.html
deleted file mode 100644
index fa46b60..0000000
--- a/builds/2.3.26-nightly/versions_2_3_11.html
+++ /dev/null
@@ -1,226 +0,0 @@
-<!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.11 - 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.11">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/versions_2_3_11.html">
-<link rel="canonical" href="http://freemarker.org/docs/versions_2_3_11.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_11.html"><span itemprop="name">2.3.11</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.11"];</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_12.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_10.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="versions_2_3_11" itemprop="headline">2.3.11</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_193" data-menu-target="autoid_193">Changes on the FTL side</a></li><li><a class="page-menu-link" href="#autoid_194" data-menu-target="autoid_194">Changes on the Java side</a></li><li><a class="page-menu-link" href="#autoid_195" data-menu-target="autoid_195">Documentation changes</a></li></ul> </div><p>Date of release: 2007-12-04</p><p>This release contains several performance and usability
- improvements.</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_193">Changes on the FTL side</h2>
-
-
- <ul>
- <li>
- <p>Bug fixed: <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1687248&group_id=794&atid=100794">[1687248]</a>
- <strong>Warning! This bugfix may breaks some
- templates!</strong> Fixed the bugs of the <a href="ref_builtins_number.html#ref_builtin_c"><code>c</code> built-in</a>
- (<code class="inline-code">?c</code>) that sometimes caused whole numbers to
- be formatted with ".0" at the end (like: 1.0), and
- caused numbers sometimes formatted to exponential form (like
- 4E-20). From now whole numbers will never use decimal dot (not
- even if the wrapped number is a <code class="inline-code">double</code>;
- remember, the template language knows only a single numerical
- type), and exponential form will never be used either. Also, the
- maximum number of digits after the decimal dot was limited to
- 16, so numbers smaller than 1E-16 will be shown as 0.</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_194">Changes on the Java side</h2>
-
-
- <ul>
- <li>
- <p>FreeMarker now has much better JSP 2.0 and JSP 2.1
- compliance. Most notably, the JSP 2.0
- <code class="inline-code">SimpleTag</code> interface is now supported.
- Additionally, even when run in an environment that doesn't have
- its own JSP implementation, the FreeMarker JSP runtime will make
- available its own implementation of
- <code class="inline-code">JspFactory</code> and
- <code class="inline-code">JspEngineInfo</code> to tags when JSP 2.0 API JAR is
- available in classpath, as well as an implementation of
- <code class="inline-code">JspApplicationContext</code> when JSP 2.1 API JAR is
- available in classpath.</p>
- </li>
-
- <li>
- <p>A new model interface,
- <code class="inline-code">TemplateDirectiveModel</code> provides an easier
- paradigm for implementing user-defined directives than
- <code class="inline-code">TemplateTransformModel</code> did previously.
- <code class="inline-code">TemplateTransformModel</code> will be
- deprecated.</p>
- </li>
-
- <li>
- <p>FreeMarker now finds the Xalan-based XPath support
- included in Sun JRE/JDK 5 and 6, so no separate Xalan jar is
- required for the XPath support to work. (However, we recommend
- Jaxen over Xalan, as the FreeMarker XPath support is more
- complete with that. Of course for that the Jaxen jar is still
- needed.)</p>
- </li>
-
- <li>
- <p>Wrapping performance of <code class="inline-code">BeansWrapper</code>
- has been significantly improved by eliminating repetitive
- execution of various class tests.</p>
-
- <p><strong>Note for
- <code class="inline-code">BeansWrapper</code> customizers:</strong>
- subclasses of <code class="inline-code">BeansWrapper</code> that previously
- overrode <code class="inline-code">getInstance(Object, ModelFactory)</code>
- method should now instead override
- <code class="inline-code">getModelFactory(Class)</code> to take advantage of
- this improvement. Overriding the old method still works, but it
- will not take advantage of the performance improvement.</p>
- </li>
-
- <li>
- <p>Memory footprint of a wrapper created by
- <code class="inline-code">BeansWrapper</code> has been reduced (by a size of
- one default-sized <code class="inline-code">HashMap</code>) until methods or
- indexed properties are accessed on it (simple properties can be
- accessed without increasing memory footprint).</p>
- </li>
-
- <li>
- <p>Rhino objects can be used in templates as scalars,
- numbers, and booleans, following the JavaScript conversion
- semantics for these types.</p>
- </li>
-
- <li>
- <p><code class="inline-code">.data_model</code> is now a
- <code class="inline-code">TemplatHashModelEx</code> when possible. This means
- that the list of the data-model variable names usually can be
- get with <code class="inline-code">.data_model?keys</code>.</p>
- </li>
-
- <li>
- <p><code class="inline-code">FileTemplateLoader</code> can now optionally
- allow following symlinks that point out of the base directory.
- It is disabled by default for backward compatibility.</p>
- </li>
-
- <li>
- <p>Bug fixed: <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1670887&group_id=794&atid=100794">[1670887]</a>
- <code class="inline-code">TaglibFactory</code> taglib matching did not follow
- JSP 1.2 FCS.</p>
- </li>
-
- <li>
- <p>Bug fixed: <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1754320&group_id=794&atid=100794">[1754320]</a>
- Bug in <code class="inline-code">setXPathSupportClass</code> prevented
- plugging in a user-supplied <code class="inline-code">XPathSupport</code>
- implementation.</p>
- </li>
-
- <li>
- <p>Bug fixed: <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1803298&group_id=794&atid=100794">[1803298]</a>
- Parser error while parsing macro with loop variables</p>
- </li>
-
- <li>
- <p>Bug fixed: <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1824122&group_id=794&atid=100794">[1824122]</a>
- Loading templates from JAR files could lead to leaking of file
- handles (due to a bug in the Java API implementation of
- Sun).</p>
- </li>
-
- <li>
- <p>Bug fixed: Cached template is now removed from the cache
- if the re-loading of the modified template file fails, so no
- staled template is served.</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_195">Documentation changes</h2>
-
-
- <ul>
- <li>
- <p>Substantial reworkings in the Template Authors's Guide
- (which was previously called Designer's Guide), especially in
- the Getting Started section.</p>
- </li>
-
- <li>
- <p><code class="inline-code">#{...}</code> is documented as deprected
- construct from now.</p>
- </li>
-
- <li>
- <p>The "transform" term is now removed from the
- documentation. Instead the more general "user-defined directive"
- term is used, which encompasses macros,
- <code class="inline-code">TemplateTransformModel</code>-s and the new
- <code class="inline-code">TemplateDirectiveModel</code>-s, which are just
- different ways of implementing user-defined directives.</p>
- </li>
-
- <li>
- <p>Some more minor improvements in the Manual.</p>
- </li>
- </ul>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_3_12.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_10.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/versions_2_3_12.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_3_12.html b/builds/2.3.26-nightly/versions_2_3_12.html
deleted file mode 100644
index ddf737e..0000000
--- a/builds/2.3.26-nightly/versions_2_3_12.html
+++ /dev/null
@@ -1,88 +0,0 @@
-<!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.12 - 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.12">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/versions_2_3_12.html">
-<link rel="canonical" href="http://freemarker.org/docs/versions_2_3_12.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_12.html"><span itemprop="name">2.3.12</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.12"];</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_13.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_11.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="versions_2_3_12" itemprop="headline">2.3.12</h1>
-</div></div><p>Date of release: 2008-02-03</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_192">Changes on the Java side</h2>
-
-
- <ul>
- <li>
- <p>Bug fixed: <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1857161&group_id=794&atid=100794">[1857161]</a>
- JSP <code class="inline-code">SimpleTag</code> support was broken in
- 2.3.11.</p>
- </li>
-
- <li>
- <p>In the templates, now you can conveniently call Java
- methods that use the Java 5 varargs feature (variable-length
- argument lists). Also the overloaded-method chooser logic now
- considers vararg methods more intelligently.</p>
- </li>
-
- <li>
- <p>Enum constants are now identified by their
- <code class="inline-code">name()</code> instead of by their
- <code class="inline-code">toString()</code> (because the latter can be
- overridden in subclasses). This doesn't affect the way enum
- constants are printed; of course that still uses
- <code class="inline-code">toString()</code>.</p>
- </li>
-
- <li>
- <p>Messages in parser exceptions now display the name of the
- template.</p>
- </li>
- </ul>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_3_13.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_11.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/versions_2_3_13.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_3_13.html b/builds/2.3.26-nightly/versions_2_3_13.html
deleted file mode 100644
index 3ff89e3..0000000
--- a/builds/2.3.26-nightly/versions_2_3_13.html
+++ /dev/null
@@ -1,125 +0,0 @@
-<!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.13 - 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.13">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/versions_2_3_13.html">
-<link rel="canonical" href="http://freemarker.org/docs/versions_2_3_13.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_13.html"><span itemprop="name">2.3.13</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.13"];</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_14.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_12.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="versions_2_3_13" itemprop="headline">2.3.13</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_190" data-menu-target="autoid_190">Changes on the FTL side</a></li><li><a class="page-menu-link" href="#autoid_191" data-menu-target="autoid_191">Changes on the Java side</a></li></ul> </div><p>Date of release: 2008-05-05</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_190">Changes on the FTL side</h2>
-
-
- <ul>
- <li>
- <p>New built-ins for rounding numbers:
- <code class="inline-code">round</code>, <code class="inline-code">floor</code>,
- <code class="inline-code">ceiling</code>. See more <a href="ref_builtins_number.html#ref_builtin_rounding">here...</a></p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_191">Changes on the Java side</h2>
-
-
- <ul>
- <li>
- <p><a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1898300&group_id=794&atid=350794">[1898300]</a>,
- <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1818742&group_id=794&atid=350794">[1818742]</a>,
- <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1780882&group_id=794&atid=350794">[1780882]</a>:
- Reworked template caching mechanism for radically improved
- concurrent performance, with help from Azul Systems engineers.
- (Achieved 20x speedup with Struts2 webapps on a 128-CPU Azul
- device compared to 2.3.12.) Also, template loading (including
- parsing) errors are now cached, improving performance in
- applications that often try to get missing templates.</p>
- </li>
-
- <li>
- <p><a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1892546&group_id=794&atid=100794">[1892546]</a>
- Allow for custom <code class="inline-code">TemplateLoader</code> in
- <code class="inline-code">FreemarkerServlet</code>.</p>
- </li>
-
- <li>
- <p>Bug fixed: <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1725107&group_id=794&atid=100794">[1725107]</a>
- Using the FreeMarker JSP taglib support with Servlet 2.4 may
- generates XML validation warnings.</p>
- </li>
-
- <li>
- <p>Bug fixed: <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1939742&group_id=794&atid=100794">[1939742]</a>
- <code class="inline-code">ConcurrentModificationException</code> on accessing
- nonexistent <code class="inline-code">SimpleHash</code> entries in a
- loop</p>
- </li>
-
- <li>
- <p>Bug fixed: <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1902012&group_id=794&atid=100794">[1902012]</a>
- <code class="inline-code">IteratorModel</code> eats exception causes</p>
- </li>
-
- <li>
- <p>Bug fixed: <code class="inline-code"><#assign
- x></#assign></code> (empty nested content) has
- caused <code class="inline-code">NullPointerException</code></p>
- </li>
-
- <li>
- <p>Bug fixed: <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1926150&group_id=794&atid=100794">[1926150]</a>
- <code class="inline-code">CachedTemplate</code> should be serializable</p>
- </li>
- </ul>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_3_14.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_12.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/versions_2_3_14.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_3_14.html b/builds/2.3.26-nightly/versions_2_3_14.html
deleted file mode 100644
index df9eb61..0000000
--- a/builds/2.3.26-nightly/versions_2_3_14.html
+++ /dev/null
@@ -1,136 +0,0 @@
-<!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.14 - 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.14">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/versions_2_3_14.html">
-<link rel="canonical" href="http://freemarker.org/docs/versions_2_3_14.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_14.html"><span itemprop="name">2.3.14</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.14"];</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_15.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_13.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="versions_2_3_14" itemprop="headline">2.3.14</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_188" data-menu-target="autoid_188">Changes on the FTL side</a></li><li><a class="page-menu-link" href="#autoid_189" data-menu-target="autoid_189">Changes on the Java side</a></li></ul> </div><p>Date of release: 2008-09-01</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_188">Changes on the FTL side</h2>
-
-
- <ul>
- <li>
- <p>New built-in: <code class="inline-code">xhtml</code>. See more <a href="ref_builtins_string.html#ref_builtin_xhtml">here...</a></p>
- </li>
-
- <li>
- <p>New special variable: <code class="inline-code">template_name</code>.
- See more <a href="ref_specvar.html">here...</a></p>
- </li>
-
- <li>
- <p>Now you can use the values of parameters as the defaults
- of other parameters, for example <code class="inline-code"><#macro section
- title label=title></code>. In earlier versions it worked
- unreliably. There are no restriction regarding the order of
- parameters, like <code class="inline-code"><#macro section label=title
- title></code> works too.</p>
- </li>
-
- <li>
- <p>Added a new <a href="ref_builtins_number.html#ref_builtin_string_for_number">number format
- specifier</a>, <code class="inline-code">computer</code>. This uses the
- same formatting as
- <code class="inline-code"><em class="code-color">exp</em>?c</code>.</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_189">Changes on the Java side</h2>
-
-
- <ul>
- <li>
- <p>The constructor to
- <code class="inline-code">freemarker.ext.servlet.AllHttpScopesHashModel</code>
- is now public, allowing it to be reused in 3rd party web
- frameworks.</p>
- </li>
-
- <li>
- <p>Bugfix:
- <code class="inline-code">freemarker.ext.beans.SimpleMapModel</code> (unlike
- either <code class="inline-code">freemarker.ext.beans.MapModel</code> or
- <code class="inline-code">freemarker.template.SimpleHash</code>) didn't allow
- lookup by <code class="inline-code">java.lang.Character</code> key when passed
- a single-character string as a key.</p>
- </li>
-
- <li>
- <p>Bugfix: permissive unwrapping in
- <code class="inline-code">freemarker.template.utility.DeepUnwrap</code> class
- was not recursively permissive with elements of sequences and
- hashes.</p>
- </li>
-
- <li>
- <p>Bugfix: <code class="inline-code">freemarker.ext.beans.MapModel</code>
- returns <code class="inline-code">BeansWrapper.wrap(null)</code> instead of
- <code class="inline-code">null</code> for <code class="inline-code">null</code> values
- explicitly bound into the map.</p>
- </li>
-
- <li>
- <p>Bugfix: Fixed a subtle bug with property getters of
- classes implementing a type-parametrized interface.</p>
- </li>
-
- <li>
- <p>Bug fixed: A further corner case of <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1939742&group_id=794&atid=100794">[1939742]</a>.</p>
- </li>
- </ul>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_3_15.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_13.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>\u20132017
-<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>
[33/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/pgui_datamodel_scalar.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/pgui_datamodel_scalar.html b/builds/2.3.26-nightly/pgui_datamodel_scalar.html
deleted file mode 100644
index 88fcc5d..0000000
--- a/builds/2.3.26-nightly/pgui_datamodel_scalar.html
+++ /dev/null
@@ -1,154 +0,0 @@
-<!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>Scalars - 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="Scalars">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/pgui_datamodel_scalar.html">
-<link rel="canonical" href="http://freemarker.org/docs/pgui_datamodel_scalar.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="pgui.html"><span itemprop="name">Programmer's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_datamodel.html"><span itemprop="name">The Data Model</span></a></li><li class="step-3" itempr
op="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_datamodel_scalar.html"><span itemprop="name">Scalars</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","Programmer\'s Guide","The Data Model","Scalars"];</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="pgui_datamodel_basics.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_datamodel_parent.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="pgui_datamodel_scalar" itemprop="headline">Scalars</h1>
-</div></div><p>There are 4 scalar types:</p><ul>
- <li>
- Boolean
- </li>
-
- <li>
- Number
- </li>
-
- <li>
- String
- </li>
-
- <li>
- Date-like (subtypes: date (no time part), time or
- date-time)
- </li>
- </ul><p>For each scalar type is a
- <code class="inline-code">Template<em class="code-color">Type</em>Model</code>
- interface, where <code class="inline-code"><em class="code-color">Type</em></code> is
- the name of the type. These interfaces define only one method:
- <code class="inline-code"><em class="code-color">type</em>
- getAs<em class="code-color">Type</em>();</code>. This returns the
- value of the variable with the Java type (<code class="inline-code">boolean</code>,
- <code class="inline-code">Number</code>, <code class="inline-code">String</code> and
- <code class="inline-code">Date</code> respectively).</p> <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>For historical reasons the interface for string scalars is
- called <code class="inline-code">TemplateScalarModel</code>, not
- <code class="inline-code">TemplateStringModel</code>. (It's because in early
- FreeMarker strings were the only kind of scalars.)</p>
- </div>
-<p>A trivial implementation of these interfaces are available in
- <code class="inline-code">freemarker.template</code> package with
- <code class="inline-code">Simple<em class="code-color">Type</em></code> class name.
- However, there is no <code class="inline-code">SimpleBooleanModel</code>; to
- represent the boolean values you can use the
- <code class="inline-code">TemplateBooleanModel.TRUE</code> and
- <code class="inline-code">TemplateBooleanModel.FALSE</code> singletons.</p> <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>For historical reasons the class for string scalars is called
- <code class="inline-code">SimpleScalar</code>, not
- <code class="inline-code">SimpleString</code>.</p>
- </div>
-<p>Scalars are immutable within FTL. When you set the value of a
- variable in a template, then you replace the
- <code class="inline-code">Template<em class="code-color">Type</em>Model</code>
- instance with another instance, and don't change the value stored in
- the original instance.</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_31">Difficulties with the "date-like" types</h2>
-
-
-
-
-
-
- <p>There is a complication around date-like types, because Java
- API usually does not differentiate
- <code class="inline-code">java.util.Date</code>-s that store only the date part
- (April 4, 2003), only the time part (10:19:18 PM), or both (April 4,
- 2003 10:19:18 PM). To display the value as text correctly (or to do
- certain other operations), FreeMarker must know what parts of the
- <code class="inline-code">java.util.Date</code> stores meaningful information, and
- what parts are unused (usually 0-ed out). Unfortunately, this
- information is usually only available when the value comes from a
- database, because most databases have separate date, time and
- date-time (aka. timestap) types, and <code class="inline-code">java.sql</code> has
- 3 corresponding <code class="inline-code">java.util.Date</code> subclasses for
- them.</p>
-
- <p><code class="inline-code">TemplateDateModel</code> interface has two
- methods: <code class="inline-code">java.util.Date getAsDate()</code> and
- <code class="inline-code">int getDateType()</code>. A typical implementation of
- this interface, stores a <code class="inline-code">java.util.Date</code> object,
- plus an integer that tells the subtype. The value of this integer
- must be a constant from the <code class="inline-code">TemplateDateModel</code>
- interface: <code class="inline-code">DATE</code>, <code class="inline-code">TIME</code>,
- <code class="inline-code">DATETIME</code> and <code class="inline-code">UNKNOWN</code>.</p>
-
- <p>About <code class="inline-code">UNKNOWN</code>: <code class="inline-code">java.lang</code>
- and <code class="inline-code">java.util</code> classes are usually converted
- automatically into <code class="inline-code">TemplateModel</code> implementations
- be the <code class="inline-code">ObjectWrapper</code> (see object wrapping
- earlier). If the object wrapper has to wrap a
- <code class="inline-code">java.util.Date</code>, that is not an instance of a
- <code class="inline-code">java.sql</code> date class, it can't decide what the
- subtype is, so it uses <code class="inline-code">UNKNOWN</code>. Later, if the
- template has to use this variable, and the subtype is needed for the
- operation, it will stop with error. To prevent this, for the
- problematic variables the template author must specify the subtype
- explicitly using the <a href="ref_builtins_date.html#ref_builtin_date_datetype"><code>date</code>,
- <code>time</code> or <code>datetime</code>
- built-ins</a> (like <code class="inline-code">lastUpdated?datetime</code>).
- Note that if you use <code class="inline-code">string</code> built-in with format
- parameter, as <code class="inline-code">foo?string["MM/dd/yyyy"]</code>, then
- FreeMarker doesn't need to know the subtype.</p>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="pgui_datamodel_basics.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_datamodel_parent.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/pgui_misc.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/pgui_misc.html b/builds/2.3.26-nightly/pgui_misc.html
deleted file mode 100644
index ba79263..0000000
--- a/builds/2.3.26-nightly/pgui_misc.html
+++ /dev/null
@@ -1,55 +0,0 @@
-<!doctype html>
-<!-- Generated by FreeMarker/Docgen from DocBook -->
-<html lang="en" class="page-type-chapter">
-<head prefix="og: http://ogp.me/ns#">
-<meta charset="utf-8">
-<title>Miscellaneous - 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="Miscellaneous">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/pgui_misc.html">
-<link rel="canonical" href="http://freemarker.org/docs/pgui_misc.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="pgui.html"><span itemprop="name">Programmer's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_misc.html"><span itemprop="name">Miscellaneous</span></a></li></ul><div class="bookmarks" tit
le="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","Programmer\'s Guide","Miscellaneous"];</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="pgui_config_incompatible_improvements.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_misc_var.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-chapter" id="pgui_misc" itemprop="headline">Miscellaneous</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Section Contents</div>
-<ul><li><a class="page-menu-link" href="pgui_misc_var.html" data-menu-target="pgui_misc_var">Variables, scopes</a></li><li><a class="page-menu-link" href="pgui_misc_charset.html" data-menu-target="pgui_misc_charset">Charset issues</a></li><li><a class="page-menu-link" href="pgui_misc_multithreading.html" data-menu-target="pgui_misc_multithreading">Multithreading</a></li><li><a class="page-menu-link" href="pgui_misc_beanwrapper.html" data-menu-target="pgui_misc_beanwrapper">Bean wrapper</a></li><li><a class="page-menu-link" href="pgui_misc_logging.html" data-menu-target="pgui_misc_logging">Logging</a></li><li><a class="page-menu-link" href="pgui_misc_servlet.html" data-menu-target="pgui_misc_servlet">Using FreeMarker with servlets</a></li><li><a class="page-menu-link" href="pgui_misc_secureenv.html" data-menu-target="pgui_misc_secureenv">Configuring security policy for FreeMarker</a></li><li><a class="page-menu-link" href="pgui_misc_xml_legacy.html" data-menu-target="pgui_misc_xml_le
gacy">Legacy XML wrapper implementation</a></li><li><a class="page-menu-link" href="pgui_misc_ant.html" data-menu-target="pgui_misc_ant">Using FreeMarker with Ant</a></li><li><a class="page-menu-link" href="pgui_misc_jythonwrapper.html" data-menu-target="pgui_misc_jythonwrapper">Jython wrapper</a></li></ul> </div><p>This is just an introductory guide. See the <a href="api/index.html">FreeMarker Java API documentation</a> for the
- details.</p><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="pgui_config_incompatible_improvements.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_misc_var.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/pgui_misc_ant.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/pgui_misc_ant.html b/builds/2.3.26-nightly/pgui_misc_ant.html
deleted file mode 100644
index 3aac258..0000000
--- a/builds/2.3.26-nightly/pgui_misc_ant.html
+++ /dev/null
@@ -1,111 +0,0 @@
-<!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>Using FreeMarker with Ant - 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="Using FreeMarker with Ant">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/pgui_misc_ant.html">
-<link rel="canonical" href="http://freemarker.org/docs/pgui_misc_ant.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="pgui.html"><span itemprop="name">Programmer's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_misc.html"><span itemprop="name">Miscellaneous</span></a></li><li class="step-3" itemprop="it
emListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_misc_ant.html"><span itemprop="name">Using FreeMarker with Ant</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","Programmer\'s Guide","Miscellaneous","Using FreeMarker with Ant"];</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="pgui_misc_xml_legacy.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_misc_jythonwrapper.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="pgui_misc_ant" itemprop="headline">Using FreeMarker with Ant</h1>
-</div></div><p>There are two "FreeMarker Ant tasks" that we know
- about:</p><ul>
- <li>
- <p><code class="inline-code">FreemarkerXmlTask</code>: It comes with the
- FreeMarker distribution, packed into the
- <code class="inline-code">freemarker.jar</code>. This is a lightweight,
- easy-to-use Ant task for transforming XML documents with
- FreeMarker templates. Its approach is that the source files (input
- files) are XML files, which are rendered to corresponding output
- files, by a single template. That is, for each XML file, the
- template will be executed (with the XML document in the
- data-model), and the template output will be written into a file
- of similar name than the name of the XML file. Thus, the template
- file plays a similar role as an XSLT style sheet, but it is FTL,
- not XSLT.</p>
- </li>
-
- <li>
- <p> FMPP: It's a more heavyweight, less XML centric,
- third party Ant task (and standalone command-line tool). Its
- primary approach is that the source files (input files) are
- template files that generate the corresponding output files
- themselves, but it also supports the approach of
- <code class="inline-code">FreemarkerXmlTask</code> for the source files that are
- XML-s. Also, it has extra features over the
- <code class="inline-code">FreemarkerXmlTask</code>. What's its drawback then? As
- it is more complex and more generalized, it's harder to learn and
- use it.</p>
- </li>
- </ul><p>This section introduces the
- <code class="inline-code">FreemarkerXmlTask</code>. For more information about FMPP
- visit its homepage: <a href="http://fmpp.sourceforge.net/">http://fmpp.sourceforge.net/</a>.</p><p>In order to use the <code class="inline-code">FreemarkerXmlTask</code>, you
- must first define the
- <code class="inline-code">freemarker.ext.ant.FreemarkerXmlTask</code> inside your
- Ant buildfile, then call the task. Suppose you want to transform
- several XML documents to HTML using the hypothetical "xml2html.ftl"
- template, with XML documents located in the directory "xml" and HTML
- documents generated into directory "html". You would write something
- like:</p>
-
-<div class="code-wrapper"><pre class="code-block code-unspecified"><taskdef name="freemarker" classname="freemarker.ext.ant.FreemarkerXmlTask">
- <classpath>
- <pathelement location="freemarker.jar" />
- </classpath>
-</taskdef>
-<mkdir dir="html" />
-<freemarker basedir="xml" destdir="html" includes="**/*.xml" template="xml2html.ftl" /></pre></div><p>The task would invoke the template for every XML document. Every
- document would be parsed into a DOM tree, then wrapped as a FreeMarker
- node variable. When template processing begins, the special variable,
- <code class="inline-code">.node</code>, is set to the root node of the XML
- document.</p><p>Note that if you are using the legacy (FreeMarker 2.2.x and
- earlier) XML adapter implementation, that still works, and the root of
- the XML tree is placed in the data-model as the variable
- <code class="inline-code">document</code>. That contains an instance of the legacy
- <code class="inline-code">freemarker.ext.xml.NodeListModel</code> class.</p><p>Note that all properties defined by the build file would be made
- available as a hash model named "properties". Several other models are
- made available; for detailed description of what variables are made
- available to templates as well as what other attributes can the task
- accept, see the JavaDoc for
- <code class="inline-code">freemarker.ext.ant.FreemarkerXmlTask</code>.</p><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="pgui_misc_xml_legacy.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_misc_jythonwrapper.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/pgui_misc_beanwrapper.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/pgui_misc_beanwrapper.html b/builds/2.3.26-nightly/pgui_misc_beanwrapper.html
deleted file mode 100644
index 5b2032c..0000000
--- a/builds/2.3.26-nightly/pgui_misc_beanwrapper.html
+++ /dev/null
@@ -1,666 +0,0 @@
-<!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>Bean wrapper - 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="Bean wrapper">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/pgui_misc_beanwrapper.html">
-<link rel="canonical" href="http://freemarker.org/docs/pgui_misc_beanwrapper.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="pgui.html"><span itemprop="name">Programmer's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_misc.html"><span itemprop="name">Miscellaneous</span></a></li><li class="step-3" itemprop="it
emListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_misc_beanwrapper.html"><span itemprop="name">Bean wrapper</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","Programmer\'s Guide","Miscellaneous","Bean wrapper"];</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="pgui_misc_multithreading.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_misc_logging.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="pgui_misc_beanwrapper" itemprop="headline">Bean wrapper</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#beanswrapper_hash" data-menu-target="beanswrapper_hash">TemplateHashModel functionality</a></li><li><a class="page-menu-link" href="#autoid_54" data-menu-target="autoid_54">A word on security</a></li><li><a class="page-menu-link" href="#autoid_55" data-menu-target="autoid_55">TemplateScalarModel functionality</a></li><li><a class="page-menu-link" href="#autoid_56" data-menu-target="autoid_56">TemplateNumberModel functionality</a></li><li><a class="page-menu-link" href="#autoid_57" data-menu-target="autoid_57">TemplateCollectionModel functionality</a></li><li><a class="page-menu-link" href="#autoid_58" data-menu-target="autoid_58">TemplateSequenceModel functionality</a></li><li><a class="page-menu-link" href="#beanswrapper_method" data-menu-target="beanswrapper_method">TemplateMethodModel functionality</a></li><li><a class="page-menu-link" href="#autoid_59" data-menu-target="autoid_59">Unwrapping rules</a></li><li><a class="page-menu-link" hre
f="#autoid_60" data-menu-target="autoid_60">Accessing static methods</a></li><li><a class="page-menu-link" href="#jdk_15_enums" data-menu-target="jdk_15_enums">Accessing enums</a></li></ul> </div> <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>Using <code class="inline-code">BeansWrapper</code> directly is not
- recommended anymore. Use its subclass,
- <code class="inline-code">DefaultObjectWrapper</code> instead, though by ensuring
- that its <code class="inline-code">incompatibleImprovements</code> property is at
- least 2.3.22. <code class="inline-code">DefaultObjectWrapper</code> gives cleaner
- data-model (less confusing multi-type FTL values) and is usually
- faster. <a href="pgui_datamodel_objectWrapper.html#pgui_datamodel_defaultObjectWrapper">See more
- about DefaultObjectWrapper here...</a></p>
- </div>
-<p>The <code class="inline-code">freemarker.ext.beans.BeansWrapper</code> is an
- <a href="pgui_datamodel_objectWrapper.html">object wrapper</a>
- that was originally added to FreeMarker so arbitrary POJO-s (Plain Old
- Java Objects) can be wrapped into <code class="inline-code">TemplateModel</code>
- interfaces. Since then it has became the normal way of doing things,
- and in fact the <code class="inline-code">DefaultObjectWrapper</code> itself is a
- <code class="inline-code">BeansWrapper</code> extension. So everything described
- here goes for the <code class="inline-code">DefaultObjectWrapper</code> too, except
- that the <code class="inline-code">DefaultObjectWrapper</code> will wrap
- <code class="inline-code">String</code>, <code class="inline-code">Number</code>,
- <code class="inline-code">Date</code>, <code class="inline-code">array</code>,
- <code class="inline-code">Collection</code> (like <code class="inline-code">List</code>),
- <code class="inline-code">Map</code>, <code class="inline-code">Boolean</code> and
- <code class="inline-code">Iterator</code> objects with the
- <code class="inline-code">freemarker.template.Simple<em class="code-color">Xxx</em></code>
- classes, and W3C DOM nodes with
- <code class="inline-code">freemarker.ext.dom.NodeModel</code> (<a href="xgui.html">more about wrapped W3C DOM...</a>), so for those the
- above described rules doesn't apply.</p><p>You will want to use <code class="inline-code">BeansWrapper</code> instead of
- <code class="inline-code">DefaultObjectWrapper</code> when any of these
- stands:</p><ul>
- <li>
- <p>The <code class="inline-code">Collection</code>-s and
- <code class="inline-code">Map</code>-s of the model should be allowed to be
- modified during template execution.
- (<code class="inline-code">DefaultObjectWrapper</code> prevents that, since it
- creates a copy of the collections when they are wrapped, and the
- copies will be read-only.)</p>
- </li>
-
- <li>
- <p>If the identity of the <code class="inline-code">array</code>,
- <code class="inline-code">Collection</code> and <code class="inline-code">Map</code> objects
- must be kept when they are passed to a wrapped object's method in
- the template. That is, if those methods must get exactly the same
- object that was earlier wrapped.</p>
- </li>
-
- <li>
- <p>If the Java API of the earlier listed classes
- (<code class="inline-code">String</code>, <code class="inline-code">Map</code>,
- <code class="inline-code">List</code> ...etc) should be visible for the
- templates. Even with <code class="inline-code">BeansWrapper</code>, they are not
- visible by default, but it can be achieved by setting the exposure
- level (see later). Note that this is usually a bad practice; try
- to use <a href="ref_builtins.html">the built-ins</a> (like
- <code class="inline-code">foo?size</code>, <code class="inline-code">foo?upper_case</code>,
- <code class="inline-code">foo?replace('_', '-')</code> ...etc) instead of the
- Java API.</p>
- </li>
- </ul><p>Below is a summary of the <code class="inline-code">TemplateModel</code>-s
- that the <code class="inline-code">BeansWrapper</code> creates. Let's assume that
- the object is called <code class="inline-code">obj</code> before wrapping, and
- <code class="inline-code">model</code> after wrapping for the sake of the following
- discussion.</p>
-
-
-
-
-<h2 class="content-header header-section2" id="beanswrapper_hash">TemplateHashModel functionality</h2>
-
-
- <p>Every object will be wrapped into a
- <code class="inline-code">TemplateHashModel</code> that will expose JavaBeans
- properties and methods of the object. This way, you can use
- <code class="inline-code">model.foo</code> in the template to invoke
- <code class="inline-code">obj.getFoo()</code> or <code class="inline-code">obj.isFoo()</code>
- methods. (Note that public fields are not visible directly; you must
- write a getter method for them.) Public methods are also retrievable
- through the hash model as template method models, therefore you can
- use the <code class="inline-code">model.doBar()</code> to invoke
- <code class="inline-code">object.doBar()</code>. More on this on discussion of
- method model functionality.</p>
-
- <p>If the requested key can not be mapped to a bean property or
- method, the framework will attempt to locate the so-called "generic
- get method", that is a method with signature public
- <code class="inline-code"><em class="code-color">any-return-type</em>
- get(String)</code> or public
- <code class="inline-code"><em class="code-color">any-return-type</em>
- get(Object)</code> and invoke that method with the requested key.
- Note that this allows convenient access to mappings in a
- <code class="inline-code">java.util.Map</code> and similar classes - as long as
- the keys of the map are <code class="inline-code">String</code>s and some property
- or method name does not shadow the mapping. (There is a solution to
- avoid shadowing, read on.) Also note that the models for
- <code class="inline-code">java.util.ResourceBundle</code> objects use the
- <code class="inline-code">getObject(String)</code> as the generic get
- method.</p>
-
- <p>If you call <code class="inline-code">setExposeFields(true)</code> on a
- <code class="inline-code">BeansWrapper</code> instance, it will also expose
- public, non-static fields of classes as hash keys and values. I.e.
- if <code class="inline-code">foo</code> is a public, non-static field of the class
- <code class="inline-code">Bar</code>, and <code class="inline-code">bar</code> is a template
- variable wrapping an instance of <code class="inline-code">Bar</code>, then
- <code class="inline-code">bar.foo</code> expression will evaluate as the value of
- the field <code class="inline-code">foo</code> of the <code class="inline-code">bar</code>
- object. The public fields in all superclasses of the class are also
- exposed.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_54">A word on security</h2>
-
-
- <p>By default, you will not be able to access several methods
- that are considered not safe for templating. For instance, you can't
- use synchronization methods (<code class="inline-code">wait</code>,
- <code class="inline-code">notify</code>, <code class="inline-code">notifyAll</code>), thread and
- thread group management methods (<code class="inline-code">stop</code>,
- <code class="inline-code">suspend</code>, <code class="inline-code">resume</code>,
- <code class="inline-code">setDaemon</code>, <code class="inline-code">setPriority</code>),
- reflection (<code class="inline-code">Field</code>
- <code class="inline-code">set<em class="code-color">Xxx</em></code> methods,
- <code class="inline-code">Method.invoke</code>,
- <code class="inline-code">Constructor.newInstance</code>,
- <code class="inline-code">Class.newInstance</code>,
- <code class="inline-code">Class.getClassLoader</code> etc.) and various dangerous
- methods in <code class="inline-code">System</code> and <code class="inline-code">Runtime</code>
- classes (<code class="inline-code">exec</code>, <code class="inline-code">exit</code>,
- <code class="inline-code">halt</code>, <code class="inline-code">load</code>, etc.). The
- <code class="inline-code">BeansWrapper</code> has several security levels (called
- "levels of method exposure"), and the default called
- <code class="inline-code">EXPOSE_SAFE</code> is probably suited for most
- applications. There is a no-safeguard level called
- <code class="inline-code">EXPOSE_ALL</code> that allows you to call even the above
- unsafe methods, and a strict level
- <code class="inline-code">EXPOSE_PROPERTIES_ONLY</code> that will expose only bean
- property getters. Finally, there is a level named
- <code class="inline-code">EXPOSE_NOTHING</code> that will expose no properties and
- no methods. The only data you will be able to access through hash
- model interface in this case are items in maps and resource bundles,
- as well as objects returned from a call to generic
- <code class="inline-code">get(Object)</code> or <code class="inline-code">get(String)</code>
- methods - provided the affected objects have such method.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_55">TemplateScalarModel functionality</h2>
-
-
- <p>Models for <code class="inline-code">java.lang.String</code> objects will
- implement <code class="inline-code">TemplateScalarModel</code> whose
- <code class="inline-code">getAsString()</code> method simply delegates to
- <code class="inline-code">toString()</code>. Note that wrapping
- <code class="inline-code">String</code> objects into Bean wrappers provides much
- more functionality than just them being scalars: because of the hash
- interface described above, the models that wrap
- <code class="inline-code">String</code>s also provide access to all
- <code class="inline-code">String</code> methods (<code class="inline-code">indexOf</code>,
- <code class="inline-code">substring</code>, etc.), though most of them has native
- FreeMarker equivalent which are better to use
- (<code class="inline-code">s?index_of(n)</code>,
- <code class="inline-code">s[start..<end]</code>, etc).</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_56">TemplateNumberModel functionality</h2>
-
-
- <p>Model wrappers for objects that are instances of
- <code class="inline-code">java.lang.Number</code> implement
- <code class="inline-code">TemplateNumberModel</code> whose
- <code class="inline-code">getAsNumber()</code> method returns the wrapped number
- object. Note that wrapping <code class="inline-code">Number</code> objects into
- Bean wrappers provides much more functionality than just them being
- number models: because of the hash interface described above, the
- models that wrap <code class="inline-code">Number</code>s also provide access to
- all their methods.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_57">TemplateCollectionModel functionality</h2>
-
-
- <p>Model wrappers for native Java arrays and all classes that
- implement <code class="inline-code">java.util.Collection</code> will implement
- <code class="inline-code">TemplateCollectionModel</code> and thus gain the
- additional capability of being usable through
- <code class="inline-code">list</code> directive.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_58">TemplateSequenceModel functionality</h2>
-
-
- <p>Model wrappers for native Java arrays and all classes that
- implement <code class="inline-code">java.util.List</code> will implement
- <code class="inline-code">TemplateSequenceModel</code> and thus their elements
- will be accessible by index using the <code class="inline-code">model[i]</code>
- syntax. You can also query the length of the array or the size of
- the list using the <code class="inline-code">model?size</code> built-in.</p>
-
- <p>Also, every method that takes a single parameter that is
- assignable through reflective method invocation from a
- <code class="inline-code">java.lang.Integer</code> (these are
- <code class="inline-code">int</code>, <code class="inline-code">long</code>,
- <code class="inline-code">float</code>, <code class="inline-code">double</code>,
- <code class="inline-code">java.lang.Object</code>,
- <code class="inline-code">java.lang.Number</code>, and
- <code class="inline-code">java.lang.Integer</code>) also implements this
- interface. What this means is that you have a convenient way for
- accessing the so-called indexed bean properties:
- <code class="inline-code">model.foo[i]</code> will translate into
- <code class="inline-code">obj.getFoo(i)</code>.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="beanswrapper_method">TemplateMethodModel functionality</h2>
-
-
- <p>All methods of an object are represented as
- <code class="inline-code">TemplateMethodModelEx</code> objects accessible using a
- hash key with method name on their object's model. When you call a
- method using
- <code class="inline-code">model.<em class="code-color">method</em>(<em class="code-color">arg1</em>,
- <em class="code-color">arg2</em>,
- <em class="code-color">...</em>)</code> the arguments are passed
- to the method as template models. The method will first try to
- unwrap them - see below for details about unwrapping. These
- unwrapped arguments are then used for the actual method call. In
- case the method is overloaded, the most specific method will be
- selected using the same rules that are used by the Java compiler to
- select a method from several overloaded methods. In case that no
- method signature matches the passed parameters, or that no method
- can be chosen without ambiguity, a
- <code class="inline-code">TemplateModelException</code> is thrown.</p>
-
- <p>Methods of return type <code class="inline-code">void</code> return
- <code class="inline-code">TemplateModel.NOTHING</code>, so they can be safely
- called with the <code class="inline-code">${obj.method(args)}</code>
- syntax.</p>
-
- <p>Models for instances of <code class="inline-code">java.util.Map</code> also
- implement <code class="inline-code">TemplateMethodModelEx</code> as a means for
- invoking their <code class="inline-code">get()</code> method. As it was discussed
- previously, you can use the hash functionality to access the "get"
- method as well, but it has several drawbacks: it's slower because
- first property and method names are checked for the key; keys that
- conflict with property and method names will be shadowed by them;
- finally you can use <code class="inline-code">String</code> keys only with that
- approach. In contrast, invoking <code class="inline-code">model(key)</code>
- translates to <code class="inline-code">model.get(key)</code> directly: it's
- faster because there's no property and method name lookup; it is
- subject to no shadowing; and finally it works for non-String keys
- since the argument is unwrapped just as with ordinary method calls.
- In effect, <code class="inline-code">model(key)</code> on a <code class="inline-code">Map</code>
- is equal to <code class="inline-code">model.get(key)</code>, only shorter to
- write.</p>
-
- <p>Models for <code class="inline-code">java.util.ResourceBundle</code> also
- implement <code class="inline-code">TemplateMethodModelEx</code> as a convenient
- way of resource access and message formatting. A single-argument
- call to a bundle will retrieve the resource with the name that
- corresponds to the <code class="inline-code">toString()</code> value of the
- unwrapped argument. A multiple-argument call to a bundle will also
- retrieve the resource with the name that corresponds to the
- <code class="inline-code">toString()</code> value of the unwrapped argument, but
- it will use it as a format pattern and pass it to
- <code class="inline-code">java.text.MessageFormat</code> using the unwrapped
- values of second and later arguments as formatting parameters.
- <code class="inline-code">MessageFormat</code> objects will be initialized with
- the locale of the bundle that originated them.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_59">Unwrapping rules</h2>
-
-
- <p>When invoking a Java method from a template, its arguments
- need to be converted from template models back to Java objects.
- Assuming that the target type (the declared type of the method's
- formal parameter) is denoted as <code class="inline-code">T</code>, the following
- rules are tried in the following order:</p>
-
- <ul>
- <li>
- <p>If the model is the null model for this wrapper, Java
- <code class="inline-code">null</code> is returned.</p>
- </li>
-
- <li>
- <p>If the model implements
- <code class="inline-code">AdapterTemplateModel</code>, the result of
- <code class="inline-code">model.getAdaptedObject(T)</code> is returned if it
- is instance of <code class="inline-code">T</code> or it is a number and can be
- converted to <code class="inline-code">T</code> using numeric coercion as
- described three bullets lower. <span class="marked-for-programmers">All
- models created by the BeansWrapper are themselves
- AdapterTemplateModel implementations, so unwrapping a model that
- was created by BeansWrapper for an underlying Java object always
- yields the original Java object.</span></p>
- </li>
-
- <li>
- <p>If the model implements the deprecated
- <code class="inline-code">WrapperTemplateModel</code>, the result of
- <code class="inline-code">model.getWrappedObject()</code> is returned if it is
- instance of <code class="inline-code">T</code> or it is a number and can be
- converted to <code class="inline-code">T</code> using numeric coercion as
- described two bullets lower.</p>
- </li>
-
- <li>
- <p>If <code class="inline-code">T</code> is
- <code class="inline-code">java.lang.String</code>, then if model implements
- <code class="inline-code">TemplateScalarModel</code> its string value is
- returned. <span class="marked-for-programmers">Note that if the model
- doesn't implement TemplateScalarModel we don't attempt to
- automatically convert the model to string using
- String.valueOf(model). You'll have to use the ?string built-in
- explicitly to pass non-scalars as strings.</span></p>
- </li>
-
- <li>
- <p>If <code class="inline-code">T</code> is a primitive numeric type or
- <code class="inline-code">java.lang.Number</code> is assignable from
- <code class="inline-code">T</code>, and model implements
- <code class="inline-code">TemplateNumberModel</code>, then its numeric value
- is returned if it is instance of <code class="inline-code">T</code> or its
- boxing type (if <code class="inline-code">T</code> is primitive type).
- Otherwise, if <code class="inline-code">T</code> is a built-in Java numeric
- type (primitive type or a standard subclass of
- <code class="inline-code">java.lang.Number</code>, including
- <code class="inline-code">BigInteger</code> and <code class="inline-code">BigDecimal</code>)
- a new object of class <code class="inline-code">T</code> or its boxing type is
- created with the number model's appropriately coerced
- value.</p>
- </li>
-
- <li>
- <p>If <code class="inline-code">T</code> is <code class="inline-code">boolean</code> or
- <code class="inline-code">java.lang.Boolean</code>, and model implements
- <code class="inline-code">TemplateBooleanModel</code>, then its boolean value
- is returned.</p>
- </li>
-
- <li>
- <p>If <code class="inline-code">T</code> is
- <code class="inline-code">java.util.Map</code> and the model implements
- <code class="inline-code">TemplateHashModel</code>, then a special Map
- representation of the hash model is returned.</p>
- </li>
-
- <li>
- <p>If <code class="inline-code">T</code> is
- <code class="inline-code">java.util.List</code> and the model implements
- <code class="inline-code">TemplateSequenceModel</code>, then a special List
- representation of the sequence model is returned.</p>
- </li>
-
- <li>
- <p>If <code class="inline-code">T</code> is
- <code class="inline-code">java.util.Set</code> and the model implements
- <code class="inline-code">TemplateCollectionModel</code>, then a special Set
- representation of the collection model is returned.</p>
- </li>
-
- <li>
- <p>If <code class="inline-code">T</code> is
- <code class="inline-code">java.util.Collection</code> or
- <code class="inline-code">java.lang.Iterable</code> and the model implements
- either <code class="inline-code">TemplateCollectionModel</code> or
- <code class="inline-code">TemplateSequenceModel</code>, then a special Set or
- List representation of the collection or sequence model
- (respectively) is returned.</p>
- </li>
-
- <li>
- <p>If <code class="inline-code">T</code> is a Java array type and the model
- implements <code class="inline-code">TemplateSequenceModel</code>, then a new
- array of the specified type is created and its elements
- unwrapped into the array recursively using the array's component
- type as <code class="inline-code">T</code>.</p>
- </li>
-
- <li>
- <p>If <code class="inline-code">T</code> is <code class="inline-code">char</code> or
- <code class="inline-code">java.lang.Character</code>, and model implements
- <code class="inline-code">TemplateScalarModel</code>, and its string
- representation contains exactly one character, then a
- <code class="inline-code">java.lang.Character</code> with that value is
- retured.</p>
- </li>
-
- <li>
- <p>If <code class="inline-code">java.util.Date</code> is assignable from
- <code class="inline-code">T</code>, and model implements
- <code class="inline-code">TemplateDateModel</code>, and its date value is
- instance of <code class="inline-code">T</code>, then its date value is
- returned.</p>
- </li>
-
- <li>
- <p>If model is a number model, and its numeric value is
- instance of <code class="inline-code">T</code>, the numeric value is returned.
- <span class="marked-for-programmers">You can have a custom subclass of
- java.lang.Number that implements a custom interface, and T might
- be that interface. (*)</span></p>
- </li>
-
- <li>
- <p>If model is a date model, and its date value is instance
- of <code class="inline-code">T</code>, the date value is returned. <span class="marked-for-programmers">Similar consideration as for
- (*)</span></p>
- </li>
-
- <li>
- <p>If model is a scalar model, and <code class="inline-code">T</code> is
- assignable from <code class="inline-code">java.lang.String</code>, the string
- value is returned. <span class="marked-for-programmers">This covers
- cases when T is java.lang.Object, java.lang.Comparable, and
- java.io.Serializable (**)</span></p>
- </li>
-
- <li>
- <p>If model is a boolean model, and <code class="inline-code">T</code> is
- assignable from <code class="inline-code">java.lang.Boolean</code>, the
- boolean value is returned. <span class="marked-for-programmers">Same as
- (**)</span></p>
- </li>
-
- <li>
- <p>If model is a hash model, and <code class="inline-code">T</code> is
- assignable from
- <code class="inline-code">freemarker.ext.beans.HashAdapter</code>, a hash
- adapter is returned. <span class="marked-for-programmers">Same as
- (**)</span></p>
- </li>
-
- <li>
- <p>If model is a sequence model, and <code class="inline-code">T</code> is
- assignable from
- <code class="inline-code">freemarker.ext.beans.SequenceAdapter</code>, a
- sequence adapter is returned. <span class="marked-for-programmers">Same
- as (**)</span></p>
- </li>
-
- <li>
- <p>If model is a collection model, and <code class="inline-code">T</code>
- is assignable from
- <code class="inline-code">freemarker.ext.beans.SetAdapter</code>, a set
- adapter for the collection is returned. <span class="marked-for-programmers">Same as (**)</span></p>
- </li>
-
- <li>
- <p>If the model is instance of <code class="inline-code">T</code>, the
- model itself is returned. <span class="marked-for-programmers">This
- covers the case where the method explicitly declared a
- FreeMarker-specific model interface, as well as allows returning
- directive, method and transform models when java.lang.Object is
- requested.</span></p>
- </li>
-
- <li>
- <p>An exception signifying no conversion is possible is
- thrown.</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_60">Accessing static methods</h2>
-
-
-
-
- <p>The <code class="inline-code">TemplateHashModel</code> returned from
- <code class="inline-code">BeansWrapper.getStaticModels()</code> can be used to
- create hash models for accessing static methods and fields of an
- arbitrary class.</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">BeansWrapper wrapper = BeansWrapper.getDefaultInstance();
-TemplateHashModel staticModels = wrapper.getStaticModels();
-TemplateHashModel fileStatics =
- (TemplateHashModel) staticModels.get("java.io.File");</pre></div>
-
- <p>And you will get a template hash model that exposes all static
- methods and static fields (both final and non-final) of the
- <code class="inline-code">java.lang.System</code> class as hash keys. Suppose that
- you put the previous model in your root model:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">root.put("File", fileStatics);</pre></div>
-
- <p>From now on, you can use <code class="inline-code">${File.SEPARATOR}</code>
- to insert the file separator character into your template, or you
- can even list all roots of your file system by:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list File.listRoots() as fileSystemRoot>...</#list></pre></div>
-
- <p>Of course, you must be aware of the potential security issues
- this model brings.</p>
-
- <p>You can even give the template authors complete freedom over
- which classes' static methods they use by placing the static models
- hash into your template root model with</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">root.put("statics", BeansWrapper.getDefaultInstance().getStaticModels());</pre></div>
-
- <p>This object exposes just about any class' static methods if
- it's used as a hash with class name as the key. You can then use
- expression like
- <code class="inline-code">${statics["java.lang.System"].currentTimeMillis()}</code>
- in your template. Note, however that this has even more security
- implications, as someone could even invoke
- <code class="inline-code">System.exit()</code> using this model if the method
- exposure level is weakened to <code class="inline-code">EXPOSE_ALL</code>.</p>
-
- <p>Note that in above examples, we always use the default
- <code class="inline-code">BeansWrapper</code> instance. This is a convenient
- static wrapper instance that you can use in most cases. You are also
- free to create your own <code class="inline-code">BeansWrapper</code> instances
- and use them instead especially when you want to modify some of its
- characteristics (like model caching, security level, or the null
- model representation).</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="jdk_15_enums">Accessing enums</h2>
-
-
-
-
- <p>The <code class="inline-code">TemplateHashModel</code> returned from
- <code class="inline-code">BeansWrapper.getEnumModels()</code> can be used to
- create hash models for accessing values of enums on JRE 1.5 or
- later. (An attempt to invoke this method on an earlier JRE will
- result in an
- <code class="inline-code">UnsupportedOperationException</code>.)</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">BeansWrapper wrapper = BeansWrapper.getDefaultInstance();
-TemplateHashModel enumModels = wrapper.getEnumModels();
-TemplateHashModel roundingModeEnums =
- (TemplateHashModel) enumModels.get("java.math.RoundingMode");</pre></div>
-
- <p>And you will get a template hash model that exposes all enum
- values of the <code class="inline-code">java.math.RoundingMode</code> class as
- hash keys. Suppose that you put the previous model in your root
- model:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">root.put("RoundingMode", roundingModeEnums);</pre></div>
-
- <p>From now on, you can use <code class="inline-code">RoundingMode.UP</code> as
- an expression to reference the <code class="inline-code">UP</code> enum value in
- your template.</p>
-
- <p>You can even give the template authors complete freedom over
- which enum classes they use by placing the enum models hash into
- your template root model with</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">root.put("enums", BeansWrapper.getDefaultInstance().getEnumModels());</pre></div>
-
- <p>This object exposes any enum class if it's used as a hash with
- class name as the key. You can then use expression like
- <code class="inline-code">${enums["java.math.RoundingMode"].UP}</code> in your
- template.</p>
-
- <p>The exposed enum values can be used as scalars (they'll
- delegate to their <code class="inline-code">toString()</code> method), and can be
- used in equality and inequality comparisons as well.</p>
-
- <p>Note that in above examples, we always use the default
- <code class="inline-code">BeansWrapper</code> instance. This is a convenient
- static wrapper instance that you can use in most cases. You are also
- free to create your own <code class="inline-code">BeansWrapper</code> instances
- and use them instead especially when you want to modify some of its
- characteristics (like model caching, security level, or the null
- model representation).</p>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="pgui_misc_multithreading.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_misc_logging.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>\u20132017
-<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>
[43/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/dgui_misc_userdefdir.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/dgui_misc_userdefdir.html b/builds/2.3.26-nightly/dgui_misc_userdefdir.html
deleted file mode 100644
index 1cdb47b..0000000
--- a/builds/2.3.26-nightly/dgui_misc_userdefdir.html
+++ /dev/null
@@ -1,554 +0,0 @@
-<!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>Defining your own directives - 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="Defining your own directives">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/dgui_misc_userdefdir.html">
-<link rel="canonical" href="http://freemarker.org/docs/dgui_misc_userdefdir.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="dgui.html"><span itemprop="name">Template Author's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="dgui_misc.html"><span itemprop="name">Miscellaneous</span></a></li><li class="step-3" itempro
p="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="dgui_misc_userdefdir.html"><span itemprop="name">Defining your own directives</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","Template Author\'s Guide","Miscellaneous","Defining your own directives"];</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="dgui_misc.html"><span>Previous</span></a><a class="paging-arrow next" href="dgui_misc_var.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="dgui_misc_userdefdir" itemprop="headline">Defining your own directives</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_19" data-menu-target="autoid_19">Basics</a></li><li><a class="page-menu-link" href="#autoid_20" data-menu-target="autoid_20">Parameters</a></li><li><a class="page-menu-link" href="#autoid_21" data-menu-target="autoid_21">Nested content</a></li><li><a class="page-menu-link" href="#dgui_misc_userdefdir_loopvar" data-menu-target="dgui_misc_userdefdir_loopvar">Macros with loop variables</a></li><li><a class="page-menu-link" href="#autoid_22" data-menu-target="autoid_22">More about user-defined directives and macros</a></li></ul> </div><p>As far as template authors are concerned, user-defined
- directives can be defined using the <code class="inline-code">macro</code>
- directive. <span class="marked-for-programmers">Java programmers who want to
- implement directives in Java Language, rather than in a template,
- should use
- <code class="inline-code">freemarker.template.TemplateDirectiveModel</code> (see
- <a href="pgui_datamodel_directive.html">more
- here...</a>).</span></p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_19">Basics</h2>
-
-
-
-
- <p>A macro is a template fragment associated with a variable. You
- can use that variable in your template as a user-defined directive,
- so it helps in repetitive tasks. For example, this creates a macro
- variable that prints a big "Hello Joe!":</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><strong><#macro greet></strong>
- <font size="+2">Hello Joe!</font>
-<strong></#macro></strong></pre></div>
-
- <p>The <code class="inline-code">macro</code> directive itself does not print
- anything; it just creates the macro variable, so there will be a
- variable called <code class="inline-code">greet</code>. Things between the
- <code class="inline-code"><#macro greet></code> and
- <code class="inline-code"></#macro></code> (called <strong>macro definition body</strong>) will be executed only
- when you use the variable as directive. You use user-defined
- directives by writing <code class="inline-code">@</code> instead of
- <code class="inline-code">#</code> in the FTL tag. Use the variable name as the
- directive name. Also, the <a href="gloss.html#gloss.endTag">end-tag</a> for user-defined directives is
- mandatory. So you use <code class="inline-code">greet</code> like this:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><@greet></@greet></pre></div>
-
- <p>But since
- <code class="inline-code"><<em class="code-color">anything</em>></<em class="code-color">anything</em>></code>
- is equivalent with
- <code class="inline-code"><<em class="code-color">anything</em>/></code> you
- should use this shorter form (that is familiar for you if you know
- <a href="gloss.html#gloss.XML">XML</a>):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><@greet/></pre></div>
-
- <p>This will print:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> <font size="+2">Hello Joe!</font>
- </pre></div>
-
- <p>But macros can do much more, since the thing between
- <code class="inline-code"><#macro <em class="code-color">...</em>></code> and
- <code class="inline-code"></#macro></code> is a template fragment, thus it
- can contain interpolations
- (<code class="inline-code">${<em class="code-color">...</em>}</code>) and FTL tags
- (e.g. <code class="inline-code"><#if
- <em class="code-color">...</em>><em class="code-color">...</em></#if></code>).</p>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>Programmers will say on
- <code class="inline-code"><@<em class="code-color">...</em>></code> that
- you <strong>call</strong> the macro.</p>
- </div>
-
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_20">Parameters</h2>
-
-
- <p>Let's improve the <code class="inline-code">greet</code> macro so it can use
- arbitrary name, not only "Joe". For this purpose you
- can use <strong>parameters</strong>. You define the
- parameters after the name of the macro in the
- <code class="inline-code">macro</code> directive. Here we define one parameter for
- the <code class="inline-code">greet</code> macro,
- <code class="inline-code">person</code>:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#macro greet <strong>person</strong>>
- <font size="+2">Hello <strong>${person}</strong>!</font>
-</#macro></pre></div>
-
- <p>and then you can use this macro as:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><@greet <strong>person="Fred"</strong>/> and <@greet <strong>person="Batman"</strong>/></pre></div>
-
- <p>which is similar to HTML syntax. This will print:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> <font size="+2">Hello <strong>Fred</strong>!</font>
- and <font size="+2">Hello <strong>Batman</strong>!</font>
- </pre></div>
-
- <p>As you can see, the actual value of the macro parameter is
- accessible in the macro definition body as a variable
- (<code class="inline-code">person</code>). As with <a href="gloss.html#gloss.predefinedDirective">predefined directives</a>,
- the value of a parameter (the right side of <code class="inline-code">=</code>) is
- an <a href="dgui_template_exp.html">FTL expression</a>. Thus,
- unlike with HTML, the quotation marks around
- <code class="inline-code">"Fred"</code> and <code class="inline-code">"Batman"</code> are not
- optional. <code class="inline-code"><@greet person=Fred/></code> would mean
- that you use the value of variable <code class="inline-code">Fred</code> for the
- <code class="inline-code">person</code> parameter, rather than the string
- <code class="inline-code">"Fred"</code>. Of course parameter value need not be a
- string, it can be number, boolean, hash, sequence, etc., also you
- can use complex expression on the right side of <code class="inline-code">=</code>
- (e.g. <code class="inline-code">someParam=(price + 50)*1.25</code>).</p>
-
- <p>User-defined directives can have multiple parameters. For
- example, add a new parameter <code class="inline-code">color</code>:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#macro greet person <strong>color</strong>>
- <font size="+2" color="${color}">Hello ${person}!</font>
-</#macro></pre></div>
-
- <p>and then you can use this macro like:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><@greet person="Fred" color="black"/></pre></div>
-
- <p>The order of parameters is not important, so this is
- equivalent with the previous:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><@greet color="black" person="Fred"/></pre></div>
-
- <p>When you call the macro, you can use only parameters that you
- have defined in the <code class="inline-code">macro</code> directive (in this
- case: <code class="inline-code">person</code> and <code class="inline-code">color</code>). So if
- you try <code class="inline-code"><@greet person="Fred" color="black"
- background="green"/></code> then you will get an error, since
- you haven't mentioned parameter <code class="inline-code">background</code> in the
- <code class="inline-code"><#macro
- <em class="code-color">...</em>></code>.</p>
-
- <p>Also, you must give value for all parameters that you have
- defined for the macro. So if you try <code class="inline-code"><@greet
- person="Fred"/></code> then you will get an error, since you
- forgot to specify the value of <code class="inline-code">color</code>. However, it
- often happens that you would specify the same value for a parameter
- in most cases, so you want to specify the value only when you want a
- different value for it than the usual. This can be achieved if you
- specify the parameter in the <code class="inline-code">macro</code> directive as
- <code class="inline-code"><em class="code-color">param_name</em>=<em class="code-color">usual_value</em></code>.
- For example, you want to use <code class="inline-code">"black"</code> for
- <code class="inline-code">color</code> if you don't specify value for that
- parameter when you use the <code class="inline-code">greet</code>
- directive:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#macro greet person color<strong>="black"</strong>>
- <font size="+2" color="${color}">Hello ${person}!</font>
-</#macro></pre></div>
-
- <p>Now <code class="inline-code"><@greet person="Fred"/></code> is OK,
- since it is equivalent with <code class="inline-code"><@greet person="Fred"
- color="black"/></code>, thus the value of
- <code class="inline-code">color</code> parameter is known. If you want
- <code class="inline-code">"red"</code> for <code class="inline-code">color</code>, then you
- write <code class="inline-code"><@greet person="Fred" color="red"/></code>,
- and this value will override the usual value specified with the
- <code class="inline-code">macro</code> directive, so the value of
- <code class="inline-code">color</code> parameter will be
- <code class="inline-code">"red"</code>.</p>
-
- <p>Also, it is important to realize that -- according to the
- already explained <a href="dgui_template_exp.html">FTL expression
- rules</a> -- <code class="inline-code">someParam=foo</code> and
- <code class="inline-code">someParam="${foo}"</code> are very different. In the
- fist case, you use the value of variable <code class="inline-code">foo</code> as
- the value of the parameter. In the second case, you use a <a href="dgui_template_exp.html#dgui_template_exp_stringop_interpolation">string literal
- with interpolation</a>, so the value of the parameter will be a
- string -- in this case, the value of <code class="inline-code">foo</code> rendered
- to text -- regardless of the type (as number, date, etc.) of
- <code class="inline-code">foo</code>. Or, another example:
- <code class="inline-code">someParam=3/4</code> and
- <code class="inline-code">someParam="${3/4}"</code> are different. If the
- directive wants a numerical value for <code class="inline-code">someParam</code>,
- it will not like the second variation. Do not exchange these.</p>
-
- <p>A very important aspect of macro parameters is that they are
- local variables. For more information about local variables please
- read: <a href="dgui_misc_var.html">Defining variables in the template</a></p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_21">Nested content</h2>
-
-
- <p>Custom directive can have nested content, similarly as
- predefined directives like <code class="inline-code"><#if
- <em class="code-color">...</em>><em class="code-color">nested
- content</em></#if></code> can have. For example,
- this creates a macro that draws borders around its nested
- content:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#macro border>
- <table border=4 cellspacing=0 cellpadding=4><tr><td>
- <strong><#nested></strong>
- </tr></td></table>
-</#macro></pre></div>
-
- <p>The <code class="inline-code"><#nested></code> directive executes the
- template fragment between the start-tag and end-tags of the
- directive. So if you do this:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><@border>The bordered text</@border></pre></div>
-
- <p>the output will be:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> <table border=4 cellspacing=0 cellpadding=4><tr><td>
- The bordered text
- </td></tr></table>
- </pre></div>
-
- <p>The <code class="inline-code">nested</code> directive can be called for
- multiple times, for example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#macro do_thrice><strong>
- <#nested>
- <#nested>
- <#nested></strong>
-</#macro>
-<@do_thrice>
- Anything.
-</@do_thrice></pre></div>
-
- <p>will print:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> Anything.
- Anything.
- Anything.</pre></div>
-
- <p>If you don't use the <code class="inline-code">nested</code> directive, then
- the nested content will not be executed. Thus, if you accidentally
- use the <code class="inline-code">greet</code> directive like this:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><@greet person="Joe">
- Anything.
-</@greet></pre></div>
-
- <p>then FreeMarker will not see this as an error, and simply
- prints:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"><font size="+2">Hello Joe!</font></pre></div>
-
- <p>and the nested content will be ignored, since the
- <code class="inline-code">greet</code> macro never uses <code class="inline-code">nested</code>
- directive.</p>
-
- <p>The nested content can be anything that is valid FTL,
- including other user-defined directives. Thus this is OK:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><@border>
- <ul>
- <@do_thrice>
- <li><@greet person="Joe"/>
- </@do_thrice>
- </ul>
-</@border></pre></div>
-
- <p>and will print:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> <table border=4 cellspacing=0 cellpadding=4><tr><td>
- <ul>
- <li><font size="+2">Hello Joe!</font>
-
- <li><font size="+2">Hello Joe!</font>
-
- <li><font size="+2">Hello Joe!</font>
-
- </ul>
-
- </tr></td></table></pre></div>
-
- <p>The <a href="dgui_misc_var.html">local variables</a> of a
- macro are not visible in the nested content. Say, this:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#macro repeat count>
- <#local y = "test">
- <#list 1..count as x>
- ${y} ${count}/${x}: <#nested>
- </#list>
-</#macro>
-<@repeat count=3>${y!"?"} ${x!"?"} ${count!"?"}</@repeat></pre></div>
-
- <p>will print this:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> test 3/1: ? ? ?
- test 3/2: ? ? ?
- test 3/3: ? ? ?</pre></div>
-
- <p>because the <code class="inline-code">y</code>, <code class="inline-code">x</code> and
- <code class="inline-code">count</code> are the local (private) variables of the
- macro, and are not visible from outside the macro definition.
- Furthermore, a different set of local variables is used for each
- macro call, so this will not cause confusion:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#macro test foo>${foo} (<#nested>) ${foo}</#macro>
-<@test foo="A"><@test foo="B"><@test foo="C"/></@test></@test></pre></div>
-
- <p>and will print this:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">A (B (C () C) B) A</pre></div>
-
-
-
-
-
-<h2 class="content-header header-section2" id="dgui_misc_userdefdir_loopvar">Macros with loop variables</h2>
-
-
-
-
- <p>Predefined directives like <code class="inline-code">list</code> can use
- so-called loop variables; you should read <a href="dgui_misc_var.html">Defining variables in the template</a> to understand loop variables.</p>
-
- <p>User-defined directives can also have loop variables. For
- example, let's extend the <code class="inline-code">do_thrice</code> directive of
- the earlier examples so it exposes the current repetition number as
- a loop variable. As with the predefined directives (as
- <code class="inline-code">list</code>) the <em>name</em> of loop
- variables is given when you call the directive (as
- <code class="inline-code">foo</code> in <code class="inline-code"><#list foos as
- foo><em class="code-color">...</em></#list></code>),
- while the <em>value</em> of the variables is set by the
- directive itself.</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#macro do_thrice>
- <#nested <strong>1</strong>>
- <#nested <strong>2</strong>>
- <#nested <strong>3</strong>>
-</#macro>
-<@do_thrice <strong>; x</strong>> <#-- user-defined directive uses ";" instead of "as" -->
- ${<strong>x</strong>} Anything.
-</@do_thrice></pre></div>
-
- <p>This will print:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> 1 Anything.
- 2 Anything.
- 3 Anything.
- </pre></div>
-
- <p>The syntactical rule is that you pass the actual value of the
- loop variable for a certain "loop" (i.e. repetition of the nested
- content) as the parameter of <code class="inline-code">nested</code> directive (of
- course the parameter can by arbitrary expression). The name of the
- loop variable is specified in the user-defined directive open tag
- (<code class="inline-code"><@...></code>) after the parameters and a
- semicolon.</p>
-
- <p>A macro can use more the one loop variable (the order of
- variables is significant):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#macro repeat count>
- <#list 1..count as x>
- <#nested <strong>x, x/2, x==count</strong>>
- </#list>
-</#macro>
-<@repeat count=4 ; <strong>c, halfc, last</strong>>
- ${<strong>c</strong>}. ${<strong>halfc</strong>}<#if <strong>last</strong>> Last!</#if>
-</@repeat></pre></div>
-
- <p>The output will be:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> 1. 0.5
- 2. 1
- 3. 1.5
- 4. 2 Last!
- </pre></div>
-
- <p>It is not a problem if you specify different number of loop
- variables in the user-defined directive start-tag (that is, after
- the semicolon) than with the <code class="inline-code">nested</code> directive. If
- you specify less loop variables after the semicolon, then simply you
- will not see the last few values that the <code class="inline-code">nested</code>
- directive provides, since there is no loop variable to hold those
- values. So these are all OK:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><@repeat count=4 ; <strong>c, halfc, last</strong>>
- ${c}. ${halfc}<#if last> Last!</#if>
-</@repeat>
-<@repeat count=4 ; <strong>c, halfc</strong>>
- ${c}. ${halfc}
-</@repeat>
-<@repeat count=4>
- Just repeat it...
-</@repeat></pre></div>
-
- <p>If you specify more variables after the semicolon than with
- the <code class="inline-code">nested</code> directive, then the last few loop
- variables will not be created (i.e. will be undefined in the nested
- content).</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_22">More about user-defined directives and macros</h2>
-
-
- <p>Now you may read the relevant parts of the FreeMarker
- Reference:</p>
-
- <ul>
- <li>
- <a href="ref_directive_userDefined.html#ref.directive.userDefined">user-defined
- directive call</a>
- </li>
-
- <li>
- <a href="ref_directive_macro.html#ref.directive.macro"><code>macro</code>
- directive</a>
- </li>
- </ul>
-
- <p>You can define methods in FTL as well, see <a href="ref_directive_function.html#ref.directive.function">the <code>function</code>
- directive</a>.</p>
-
- <p>Also, you may interested in namespaces: <a href="dgui_misc_namespace.html">Namespaces</a>. Namespaces help you to organize and
- reuse your commonly used macros.</p>
-
- <p>Java programmers might want to know that directives (macros
- are directives) and methods (function-like things) can also be
- written in Java language, by<a href="pgui_datamodel_directive.html"> implementing the
- <code>TemplateDirectiveModel</code></a> or
- <code class="inline-code">TemplateMethodModelEx</code> interfaces, respectively.
- Then you can pull in the Java implementations into the template like
- <code class="inline-code"><#assign foo =
- "com.example.FooDirective"?new()></code> or
- <code class="inline-code"><#assign foo =
- "com.example.FooMethod"?new()></code> on the same place where
- you would have <code class="inline-code"><#macro foo
- <em class="code-color">...</em>></code> or
- <code class="inline-code"><#function foo
- <em class="code-color">...</em>></code> otherwise.</p>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="dgui_misc.html"><span>Previous</span></a><a class="paging-arrow next" href="dgui_misc_var.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/dgui_misc_var.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/dgui_misc_var.html b/builds/2.3.26-nightly/dgui_misc_var.html
deleted file mode 100644
index 1f48d80..0000000
--- a/builds/2.3.26-nightly/dgui_misc_var.html
+++ /dev/null
@@ -1,197 +0,0 @@
-<!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>Defining variables in the template - 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="Defining variables in the template">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/dgui_misc_var.html">
-<link rel="canonical" href="http://freemarker.org/docs/dgui_misc_var.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="dgui.html"><span itemprop="name">Template Author's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="dgui_misc.html"><span itemprop="name">Miscellaneous</span></a></li><li class="step-3" itempro
p="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="dgui_misc_var.html"><span itemprop="name">Defining variables in the template</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","Template Author\'s Guide","Miscellaneous","Defining variables in the template"];</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="dgui_misc_userdefdir.html"><span>Previous</span></a><a class="paging-arrow next" href="dgui_misc_namespace.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="dgui_misc_var" itemprop="headline">Defining variables in the template</h1>
-</div></div><p>Most of the variables that a typical template works with comes
- from the data-model. But templates can also define variables
- themselves, usually to hold loops variables, temporary results,
- macros, etc. Such variables are outside the data-model; modifying the
- data-model from templates is by design unsupported. Note that each
- <a href="gloss.html#gloss.templateProcessingJob">template processing
- job</a> has its own private set of these variables, which will be
- thrown away when the template processing job is finished.</p><p>You access variables defined in the template the same way as you
- access variables defined in the data-model root. For example, if you
- create a variable called "foo" in the template, you can
- print its value with <code class="inline-code">${foo}</code>. If, coincidently,
- there's a variable called "foo" in the data-model too,
- the variable created in the template will hide (not overwrite!)
- it.</p><p>There are these kinds of variables that are defined in a
- template:</p><ul>
- <li>
- <p><strong>"plain"
- variables</strong>: They are accessible from everywhere in the
- template, or from another templates that was inserted with the
- <a href="ref_directive_include.html#ref.directive.include"><code>include</code>
- directive</a>. You can create and replace these variables with
- the <a href="ref_directive_assign.html#ref.directive.assign"><a href="ref_directive_assign.html#ref.directive.assign"><code>assign</code></a>
- directive</a>, or, because macros and functions are just
- variables, with the <a href="ref_directive_macro.html#ref.directive.macro"><code>macro</code>
- directives</a> and <a href="ref_directive_function.html#ref.directive.function"><code>function</code>
- directives</a>.</p>
- </li>
-
- <li>
- <p><strong>Local variables</strong>: They can
- only be set inside a <a href="gloss.html#gloss.macroDefinitionBody">macro definition body</a>
- or <a href="gloss.html#gloss.functionDefinitionBody">function
- definition body</a>, and are only visible from there, not from
- other macros or functions called from there. A local variable only
- exists for the duration of a macro or function call. You can
- create and replace local variables inside the definition body with
- the <a href="ref_directive_local.html#ref.directive.local"><code>local</code>
- directive</a>. <a href="ref_directive_macro.html#ref.directive.macro">Macro</a>
- and <a href="ref_directive_function.html#ref.directive.function">function</a>
- parameters are also local variables.</p>
- </li>
-
- <li>
- <p><strong>Loop variables</strong>: Loop
- variables are created automatically by directives like <a href="ref_directive_list.html#ref.directive.list"><code>list</code></a> (like
- <code class="inline-code">x</code> in <code class="inline-code"><#list xs as
- x><em class="code-color">...</em></#list></code>), and
- they only exist between the start-tag and end-tag of the
- directive. They are only visible directly between these tags, not
- from macros or functions called from there. As such, they are
- quite similar to local variables, but they can't be assigned to
- directly.</p>
- </li>
-
- <li>
- <p><strong>Global variables</strong>: These
- should be seldom used. Global variables are shared by all
- templates, even if they belong to different name spaces because of
- <a href="ref_directive_import.html#ref.directive.import"><code>import</code>-ing</a>.
- Thus, their visibility is similar to data-model variables. They
- are set via the <a href="ref_directive_global.html#ref.directive.global"><code>global</code>
- directive</a>. Global variables hide (but don't overwrite) the
- data-model variables of the same name.</p>
- </li>
- </ul><p>Example: Create and replace variables with
- <code class="inline-code">assign</code>:</p>
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign x = 1> <#-- create variable x -->
-${x}
-<#assign x = 2> <#-- replace variable x -->
-${x}
-<#assign x++> <#-- replace variable x -->
-${x}</pre></div>
-
-<div class="code-wrapper"><pre class="code-block code-output">1
-2
-3</pre></div><p>In the next example we demonstrate that local variables hide
- (not overwrite) "plain" variables of the same name, and
- that loop variables hide (not overwrite) local and
- "plain" variables of the same name:</p>
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign x = "plain">
-1. ${x} <#-- we see the plain var. here -->
-<@test/>
-6. ${x} <#-- the value of plain var. was not changed -->
-<#list ["loop"] as x>
- 7. ${x} <#-- now the loop var. hides the plain var. -->
- <#assign x = "plain2"> <#-- replaces the plain var, not the loop var. -->
- 8. ${x} <#-- it still hides the plain var. -->
-</#list>
-9. ${x} <#-- now the new value of plain var. becomse visible -->
-
-<#macro test>
- 2. ${x} <#-- we still see the plain var. here -->
- <#local x = "local">
- 3. ${x} <#-- now the local var. hides it -->
- <#list ["loop"] as x>
- 4. ${x} <#-- now the loop var. hides the local var. -->
- </#list>
- 5. ${x} <#-- now we see the local var. again -->
-</#macro></pre></div>
-
-<div class="code-wrapper"><pre class="code-block code-output">1. plain
- 2. plain
- 3. local
- 4. loop
- 5. local
-6. plain
- 7. loop
- 8. loop
-9. plain2 </pre></div><p>In the next example we demonstrate that an inner loop variable
- can hide (not overwrite) an outer loop variable of the same
- name:</p>
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list ["loop 1"] as x>
- ${x}
- <#list ["loop 2"] as x>
- ${x}
- <#list ["loop 3"] as x>
- ${x}
- </#list>
- ${x}
- </#list>
- ${x}
-</#list></pre></div>
-
-<div class="code-wrapper"><pre class="code-block code-output"> loop 1
- loop 2
- loop 3
- loop 2
- loop 1</pre></div><p>When a variable hides the variable from the data-model, you can
- still read that variable from the data-model using <a href="dgui_template_exp.html#dgui_template_exp_var_special">special variable</a>
- <code class="inline-code">globals</code>. For example, assume we have a variable
- called <code class="inline-code">user</code> in the data-model with value "Big
- Joe":</p>
-
-<div class="code-wrapper"><pre class="code-block code-template">${user} <#-- prints: Big Joe -->
-<#assign user = "Joe Hider">
-${user} <#-- prints: Joe Hider -->
-${.globals.user} <#-- prints: Big Joe --></pre></div><p>You could also write <code class="inline-code">.data_model.user</code>
- instead, and then not even a <code class="inline-code"><#global user =
- "<em class="code-color">...</em>"></code> can hide the value in
- the data-model. However, global variables are often purposely set to
- override the value coming from the data-model, so using
- <code class="inline-code">globals</code> is a better practice usually.</p><p>For information about syntax of variables (allowed characters
- and such) please read: <a href="dgui_template_exp.html">The Template/Expressions</a></p><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="dgui_misc_userdefdir.html"><span>Previous</span></a><a class="paging-arrow next" href="dgui_misc_namespace.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/dgui_misc_whitespace.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/dgui_misc_whitespace.html b/builds/2.3.26-nightly/dgui_misc_whitespace.html
deleted file mode 100644
index 6a8032a..0000000
--- a/builds/2.3.26-nightly/dgui_misc_whitespace.html
+++ /dev/null
@@ -1,296 +0,0 @@
-<!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>White-space handling - 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="White-space handling">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/dgui_misc_whitespace.html">
-<link rel="canonical" href="http://freemarker.org/docs/dgui_misc_whitespace.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="dgui.html"><span itemprop="name">Template Author's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="dgui_misc.html"><span itemprop="name">Miscellaneous</span></a></li><li class="step-3" itempro
p="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="dgui_misc_whitespace.html"><span itemprop="name">White-space handling</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","Template Author\'s Guide","Miscellaneous","White-space handling"];</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="dgui_misc_autoescaping.html"><span>Previous</span></a><a class="paging-arrow next" href="dgui_misc_alternativesyntax.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="dgui_misc_whitespace" itemprop="headline">White-space handling</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_whitespace_stripping" data-menu-target="dgui_misc_whitespace_stripping">White-space stripping</a></li><li><a class="page-menu-link" href="#autoid_30" data-menu-target="autoid_30">Using compress directive</a></li></ul> </div><p>The control of the <a href="gloss.html#gloss.whiteSpace">white-space</a> in a template is a
- problem that to some extent haunts every template engine in the
- business.</p><p>Let see this template. I have marked the components of template
- with colors: <span class="marked-text">text</span>, <span class="marked-interpolation">interpolation</span>, <span class="marked-ftl-tag">FTL tag</span>. With the <em><span class="marked-invisible-text">[BR]</span></em>-s I visualize the <a href="gloss.html#gloss.lineBreak">line breaks</a>.</p>
-
-<div class="code-wrapper"><pre class="code-block code-template"><span class="marked-text"><p>List of users:<em><span class="marked-invisible-text">[BR]</span></em>
-<span class="marked-ftl-tag"><#assign users = [{"name":"Joe", "hidden":false},<em><span class="marked-invisible-text">[BR]</span></em>
- {"name":"James Bond", "hidden":true},<em><span class="marked-invisible-text">[BR]</span></em>
- {"name":"Julia", "hidden":false}]></span><em><span class="marked-invisible-text">[BR]</span></em>
-<ul><em><span class="marked-invisible-text">[BR]</span></em>
-<span class="marked-ftl-tag"><#list users as user></span><em><span class="marked-invisible-text">[BR]</span></em>
- <span class="marked-ftl-tag"><#if !user.hidden></span><em><span class="marked-invisible-text">[BR]</span></em>
- <li><span class="marked-interpolation">${user.name}</span><em><span class="marked-invisible-text">[BR]</span></em>
- <span class="marked-ftl-tag"></#if></span><em><span class="marked-invisible-text">[BR]</span></em>
-<span class="marked-ftl-tag"></#list></span><em><span class="marked-invisible-text">[BR]</span></em>
-</ul><em><span class="marked-invisible-text">[BR]</span></em>
-<p>That's all.</span></pre></div><p>If FreeMarker were to output all <span class="marked-text">text</span> as is, the output would be:</p>
-
-<div class="code-wrapper"><pre class="code-block code-output"><span class="marked-text"><p>List of users:<em><span class="marked-invisible-text">[BR]</span></em>
-<em><span class="marked-invisible-text">[BR]</span></em>
-<ul><em><span class="marked-invisible-text">[BR]</span></em>
-<em><span class="marked-invisible-text">[BR]</span></em>
- <em><span class="marked-invisible-text">[BR]</span></em>
- <li></span>Joe<span class="marked-text"><em><span class="marked-invisible-text">[BR]</span></em>
- <em><span class="marked-invisible-text">[BR]</span></em>
-<em><span class="marked-invisible-text">[BR]</span></em>
- <em><span class="marked-invisible-text">[BR]</span></em>
-<em><span class="marked-invisible-text">[BR]</span></em>
- <em><span class="marked-invisible-text">[BR]</span></em>
- <li></span>Julia<span class="marked-text"><em><span class="marked-invisible-text">[BR]</span></em>
- <em><span class="marked-invisible-text">[BR]</span></em>
-<em><span class="marked-invisible-text">[BR]</span></em>
-</ul><em><span class="marked-invisible-text">[BR]</span></em>
-<p>That's all.</span></pre></div><p>You have a lot of unwanted spaces and line breaks here.
- Fortunately neither HTML nor XML is typically white-space sensitive,
- but this amount of superfluous white-space can be annoying, and
- needlessly increases the size of produced HTML. Of course, it is even
- bigger problem when outputting white-space-sensitive formats.</p><p>FreeMarker provides the following tools to cope with this
- problem:</p><ul>
- <li>
- <p>Tools to ignore certain white-space of the template files
- <span class="marked-for-programmers">(parse time white-space
- removal)</span>:</p>
-
- <ul>
- <li>
- <p>White-space stripping: This feature automatically
- ignores typical superfluous white-space around FTL tags. It
- can be enabled or disabled on per template manner.</p>
- </li>
-
- <li>
- <p>Trimmer directives: <code class="inline-code">t</code>,
- <code class="inline-code">rt</code>, <code class="inline-code">lt</code>. With these
- directives you can explicitly tell FreeMarker to ignore
- certain white-space. Read <a href="ref_directive_t.html#ref.directive.t">the
- reference</a> for more information.</p>
- </li>
-
- <li>
- <p><a href="ref_directive_ftl.html#ref.directive.ftl"><code>ftl</code></a>
- parameter <code class="inline-code">strip_text</code>: This removes all
- top-level text from the template. It is useful for templates
- that contain macro definitions only (and some other
- non-outputting directives), because it removes the line-breaks
- that you use between the macro definitions and between the
- other top-level directives to improve the readability of the
- template.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Tools that remove white-space from the output <span class="marked-for-programmers">(on-the-fly white-space
- removal)</span>:</p>
-
- <ul>
- <li>
- <p><code class="inline-code">compress</code> directive.</p>
- </li>
- </ul>
- </li>
- </ul>
-
-
-
-
-<h2 class="content-header header-section2" id="dgui_misc_whitespace_stripping">White-space stripping</h2>
-
-
-
-
- <p>If this feature is enabled for a template, then it
- automatically ignores (i.e. does not print to the output) two kind
- of typical superfluous white-space:</p>
-
- <ul>
- <li>
- <p>Indentation white-space, and trailing white-space at the
- end of the line (includes the line break) will be ignored in
- lines that contains only FTL tags (e.g.
- <code class="inline-code"><@myMacro/></code>, <code class="inline-code"><#if
- <em class="code-color">...</em>></code>) and/or FTL
- comments (e.g. <code class="inline-code"><#-- blah --></code>), apart
- from the the ignored white-space itself. For example, if a line
- contains only an <code class="inline-code"><#if
- <em class="code-color">...</em>></code>, then the
- indentation before the tag and the line break after the tag will
- be ignored. However, if the line contains <code class="inline-code"><#if
- <em class="code-color">...</em>>x</code>, then the
- white-space in that line will not be ignored, because of the
- <code class="inline-code">x</code>, as that is not FTL tag. Note that
- according these rules, a line that contains <code class="inline-code"><#if
- <em class="code-color">...</em>><#list
- <em class="code-color">...</em>></code> is subject to
- white-space ignoring, while a line that contains
- <code class="inline-code"><#if <em class="code-color">...</em>>�<#list
- <em class="code-color">...</em>></code> is not, because the
- white-space between the two FTL tags is embedded white-space,
- not indentation or trailing white-space.</p>
- </li>
-
- <li>
- <p>White-space sandwiched between the following directives is
- ignored: <code class="inline-code">macro</code>, <code class="inline-code">function</code>,
- <code class="inline-code">assign</code>, <code class="inline-code">global</code>,
- <code class="inline-code">local</code>, <code class="inline-code">ftl</code>,
- <code class="inline-code">import</code>, but only if there is
- <em>only</em> white-space and/or FTL comments
- between the directives. In practice it means that you can put
- empty lines between macro definitions and assignments as spacing
- for better readability, without printing needless empty lines
- (line breaks) to the output.</p>
- </li>
- </ul>
-
- <p>The output of the last example with white-space stripping
- enabled will be:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"><span class="marked-text"><p>List of users:<em><span class="marked-invisible-text">[BR]</span></em>
-<ul><em><span class="marked-invisible-text">[BR]</span></em>
- <li></span>Joe<span class="marked-text"><em><span class="marked-invisible-text">[BR]</span></em>
- <li></span>Julia<span class="marked-text"><em><span class="marked-invisible-text">[BR]</span></em>
-</ul><em><span class="marked-invisible-text">[BR]</span></em>
-<p>That's all.</span></pre></div>
-
- <p>This is because after stripping the template becomes the
- following; the ignored text is not <span class="marked-text">colored</span>:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><span class="marked-text"><p>List of users:<em><span class="marked-invisible-text">[BR]</span></em></span>
-<span class="marked-ftl-tag"><#assign users = [{"name":"Joe", "hidden":false},<em><span class="marked-invisible-text">[BR]</span></em>
- {"name":"James Bond", "hidden":true},<em><span class="marked-invisible-text">[BR]</span></em>
- {"name":"Julia", "hidden":false}]></span><em><span class="marked-invisible-text">[BR]</span></em>
-<span class="marked-text"><ul><em><span class="marked-invisible-text">[BR]</span></em></span>
-<span class="marked-ftl-tag"><#list users as user></span><em><span class="marked-invisible-text">[BR]</span></em>
- <span class="marked-ftl-tag"><#if !user.hidden></span><em><span class="marked-invisible-text">[BR]</span></em>
-<span class="marked-text"> <li><span class="marked-interpolation">${user.name}</span><em><span class="marked-invisible-text">[BR]</span></em></span>
- <span class="marked-ftl-tag"></#if></span><em><span class="marked-invisible-text">[BR]</span></em>
-<span class="marked-ftl-tag"></#list></span><em><span class="marked-invisible-text">[BR]</span></em>
-<span class="marked-text"></ul><em><span class="marked-invisible-text">[BR]</span></em>
-<p>That's all.</span></pre></div>
-
- <p>White-space stripping can be enabled/disabled in per template
- manner with the <a href="ref_directive_ftl.html#ref.directive.ftl"><code>ftl</code> directive</a>.
- If you don't specify this with the <code class="inline-code">ftl</code> directive,
- then white-space stripping will be enabled or disabled depending on
- how the programmer has configured FreeMarker. The factory default is
- white-space stripping enabled, and the programmers probably left it
- so (<span class="marked-for-programmers">recommended</span>). <span class="marked-for-programmers">Note that enabling white-space stripping does
- <em>not</em> degrade the performance of template
- execution; white-space stripping is done during template
- loading.</span></p>
-
- <p>White-space stripping can be disabled for a single line with
- the <a href="ref_directive_nt.html#ref.directive.nt"><code>nt</code></a>
- directive (for No Trim).</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_30">Using compress directive</h2>
-
-
-
-
- <p>Another solution is to use the <a href="ref_directive_compress.html#ref.directive.compress"><code>compress</code>
- directive</a>. As opposed to white-space stripping, this works
- directly on the generated output, not on the template. That is, it
- will investigate the printed output on the fly, and does not
- investigate the FTL program that creates the output. It aggressively
- removes indentations, empty lines and repeated spaces/tabs (for more
- information read the <a href="ref_directive_compress.html#ref.directive.compress">reference</a>). So the output
- of:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><strong><#compress></strong>
-<#assign users = [{"name":"Joe", "hidden":false},
- {"name":"James Bond", "hidden":true},
- {"name":"Julia", "hidden":false}]>
-List of users:
-<#list users as user>
- <#if !user.hidden>
- - ${user.name}
- </#if>
-</#list>
-That's all.
-<strong></#compress></strong></pre></div>
-
- <p>will be:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">List of users:
-- Joe
-- Julia
-That's all.</pre></div>
-
- <p>Note that <code class="inline-code">compress</code> is totally independent
- of white-space stripping. So it is possible that the white-space of
- template is stripped, and later the produced output is
- <code class="inline-code">compress</code>-ed.</p>
-
- <p>Also, by default a user-defined directve called
- <code class="inline-code">compress</code> is available in the data-model (due to
- backward compatibility). This is the same as the directive, except
- that you may optionally set the <code class="inline-code">single_line</code>
- parameter, which will remove all intervening line breaks. If you
- replace
- <code class="inline-code"><#compress><em class="code-color">...</em></#compress></code>
- on the last example with <code class="inline-code"><@compress
- single_line=true><em class="code-color">...</em></@compress></code>,
- then you get this output:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">List of users: - Joe - Julia That's all.</pre></div>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="dgui_misc_autoescaping.html"><span>Previous</span></a><a class="paging-arrow next" href="dgui_misc_alternativesyntax.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/dgui_quickstart.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/dgui_quickstart.html b/builds/2.3.26-nightly/dgui_quickstart.html
deleted file mode 100644
index dacd07b..0000000
--- a/builds/2.3.26-nightly/dgui_quickstart.html
+++ /dev/null
@@ -1,57 +0,0 @@
-<!doctype html>
-<!-- Generated by FreeMarker/Docgen from DocBook -->
-<html lang="en" class="page-type-chapter">
-<head prefix="og: http://ogp.me/ns#">
-<meta charset="utf-8">
-<title>Getting Started with template writing - 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="Getting Started with template writing">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/dgui_quickstart.html">
-<link rel="canonical" href="http://freemarker.org/docs/dgui_quickstart.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="dgui.html"><span itemprop="name">Template Author's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="dgui_quickstart.html"><span itemprop="name">Getting Started</span></a></li></ul><div class="b
ookmarks" 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","Template Author\'s Guide","Getting Started"];</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="dgui.html"><span>Previous</span></a><a class="paging-arrow next" href="dgui_quickstart_basics.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-chapter" id="dgui_quickstart" itemprop="headline">Getting Started</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Section Contents</div>
-<ul><li><a class="page-menu-link" href="dgui_quickstart_basics.html" data-menu-target="dgui_quickstart_basics">Template + data-model = output</a></li><li><a class="page-menu-link" href="dgui_quickstart_datamodel.html" data-menu-target="dgui_quickstart_datamodel">The data-model at a glance</a></li><li><a class="page-menu-link" href="dgui_quickstart_template.html" data-menu-target="dgui_quickstart_template">The template at a glance</a></li></ul> </div><p>This chapter is a very rough introduction to FreeMarker. The
- chapters after this will go over things in much greater detail.
- Nonetheless, once you have read this chapter, you will be able to write
- simple but useful FreeMarker templates.</p><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="dgui.html"><span>Previous</span></a><a class="paging-arrow next" href="dgui_quickstart_basics.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>\u20132017
-<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>
[20/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/ref_directive_setting.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_directive_setting.html b/builds/2.3.26-nightly/ref_directive_setting.html
deleted file mode 100644
index 85971e2..0000000
--- a/builds/2.3.26-nightly/ref_directive_setting.html
+++ /dev/null
@@ -1,478 +0,0 @@
-<!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>setting - 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="setting">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_directive_setting.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_directive_setting.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directives.html"><span itemprop="name">Directive Reference</span></a></li><li class="step-
3" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directive_setting.html"><span itemprop="name">setting</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","Template Language Reference","Directive Reference","setting"];</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="ref_directive_outputformat.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_stop.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="ref_directive_setting" itemprop="headline">setting</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_124" data-menu-target="autoid_124">Synopsis</a></li><li><a class="page-menu-link" href="#autoid_125" data-menu-target="autoid_125">Description</a></li></ul> </div><a name="ref.directive.setting"></a>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_124">Synopsis</h2>
-
-
-
-<pre class="metaTemplate">
-<code class="inline-code"><#setting <em class="code-color">name</em>=<em class="code-color">value</em>></code>
-</pre>
-
-
- <p>Where:</p>
-
- <ul>
- <li>
- <code class="inline-code"><em class="code-color">name</em></code>: name
- of the setting. It is not expression!
- </li>
-
- <li>
- <code class="inline-code"><em class="code-color">value</em></code>: New
- value of the setting. Expression
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_125">Description</h2>
-
-
- <p>Sets a setting for the further part of processing. Settings
- are values that influence the behavior of FreeMarker. The new value
- will be present only in the template processing where it was set,
- and does not touch the template itself. The initial value of
- settings is set by the programmer <span class="marked-for-programmers">(see: <a href="pgui_config_settings.html">Programmer's Guide/The Configuration/Settings</a>)</span>.</p>
-
- <p>The supported settings are:</p>
-
- <ul>
- <li>
- <p><code class="inline-code">locale</code>: The locale (language)
- of the output. It can influence the presentation format of
- numbers, dates, etc. The value is a string which consist of a
- language code (lowercase two-letter ISO-639 code) plus optional
- county code (uppercase two-letter ISO-3166 code) separated from
- the language code with underscore, and if we have specified the
- country then an optional variant code (not standardized)
- separated from the country with underscore. Examples of valid
- values: <code class="inline-code">en</code>, <code class="inline-code">en_US</code>,
- <code class="inline-code">en_US_MAC</code>. FreeMarker will try to use the
- most specific available locale, so if you specify
- <code class="inline-code">en_US_MAC</code> but that is not known, then it will
- try <code class="inline-code">en_US</code>, and then <code class="inline-code">en</code>,
- and then the default locale of the computer (which is may set by
- the programmer).</p>
- </li>
-
- <li>
- <p><a name="ref.setting.number_format"></a><code class="inline-code">number_format</code>: The number
- format that is used to convert numbers to strings when no
- explicit format is specified. Can be one of the
- following:</p>
-
- <ul>
- <li>
- <p>Predefined values defined by the Java platform:
- <code class="inline-code">number</code> (the default),
- <code class="inline-code">currency</code>, or
- <code class="inline-code">percent</code></p>
- </li>
-
- <li>
- <p><code class="inline-code">computer</code>, which formats like <a href="ref_builtins_number.html#ref_builtin_c">the <code>c</code>
- built-in</a></p>
- </li>
-
- <li>
- <p>Format pattern written in <a href="http://java.sun.com/j2se/1.4/docs/api/java/text/DecimalFormat.html">Java
- decimal number format syntax</a>, for example
- <code class="inline-code">0.###</code>. FreeMarker <a href="ref_builtins_number.html#topic.extendedJavaDecimalFormat">extends this
- format</a> to allow specifying rounding mode, symbols
- used, etc.</p>
- </li>
-
- <li>
- <p>Values starting with <code class="inline-code">@</code> that's also
- followed by a letter, refer to a <a href="pgui_config_custom_formats.html">custom format</a>.
- For example, <code class="inline-code">"@price"</code> refers to the
- custom format registered with the <code class="inline-code">"price"</code>
- name. The custom format name is possibly followed by space
- or <code class="inline-code">_</code> and then format parameters, whose
- interpretation depends on the custom format. For backward
- compatibility, the initial <code class="inline-code">@</code> only has
- this new meaning if either <a href="pgui_config_incompatible_improvements.html#pgui_config_incompatible_improvements_how_to_set">the
- <code>incompatible_improvements</code> setting</a>
- is at least 2.3.24, or there's any custom formats defined.
- When the initial <code class="inline-code">@</code> isn't followed by a
- letter (any UNICODE letter), it's never treated as a
- reference to a custom format.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p><code class="inline-code">boolean_format</code>: The
- comma-separated pair of strings for representing true and false
- values respectively that is used to convert booleans to strings
- when no explicit format is specified (like in
- <code class="inline-code">${<em class="code-color">booleanValue</em>}</code>).
- Note that currently white space isn't removed from this string,
- so don't put space after the comma. Default value is
- <code class="inline-code">"true,false"</code>, but FreeMarker will deny using
- that particular value for
- <code class="inline-code">${<em class="code-color">booleanValue</em>}</code>,
- and requires using
- <code class="inline-code">${<em class="code-color">booleanValue</em>?c}</code>
- instead (this works since 2.3.21). For any other value, like
- <code class="inline-code">"Y,N"</code>,
- <code class="inline-code">${<em class="code-color">booleanValue</em>}</code>
- will work. See also:<a href="ref_builtins_boolean.html#ref_builtin_string_for_boolean"><code>string</code>
- built-in</a>.</p>
- </li>
-
- <li>
- <p><a name="topic.dateTimeFormatSettings"></a><a name="topic_date_format_settings"></a> <code class="inline-code">date_format</code>,
- <code class="inline-code">time_format</code>,
- <code class="inline-code">datetime_format</code>: The format used to convert
- date/time/date-time values (Java
- <code class="inline-code">java.util.Date</code>-s and its subclasses) to
- strings when no explicit format is specified via the <a href="ref_builtins_date.html#ref_builtin_string_for_date"><code>string</code>
- built-in</a> (or otherwise), as in the case of
- <code class="inline-code">${someDate}</code>. The
- <code class="inline-code">date_format</code> setting only effects the
- formatting of date values that store no time part,
- <code class="inline-code">time_format</code> only effects the formatting of
- times that store no date part, and
- <code class="inline-code">datetime_format</code> only effects formatting of
- date-time values. These settings also effects what format do
- <a href="ref_builtins_string.html#ref_builtin_string_date"><code>?time</code>,
- <code>?date</code>, and
- <code>?datetime</code></a> expect when it's applied on
- a string value.</p>
-
- <p>The possible setting values are (the quotation marks
- aren't part of the value itself):</p>
-
- <ul>
- <li>
- <p>Patterns <a href="http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html">accepted
- by Java's <code>SimpleDateFormat</code></a>, for
- example <code class="inline-code">"dd.MM.yyyy HH:mm:ss"</code> (where
- <code class="inline-code">"HH"</code> means 0-23 hours) or
- <code class="inline-code">"MM/dd/yyyy hh:mm:ss a"</code> (where
- <code class="inline-code">"a"</code> prints AM or PM, if the current
- language is English).</p>
- </li>
-
- <li>
- <p><code class="inline-code">"xs"</code> for XML Schema format, or
- <code class="inline-code">"iso"</code> for ISO 8601:2004 format. These
- formats allow various additional options, separated with
- space, like in <code class="inline-code">"iso m nz"</code> (or with
- <code class="inline-code">_</code>, like in <code class="inline-code">"iso_m_nz"</code>;
- this is useful in a case like
- <code class="inline-code">lastModified?string.iso_m_nz</code>). The
- options and their meanings are:</p>
-
- <ul>
- <li>
- <p>Accuracy options:</p>
-
- <ul>
- <li>
- <code class="inline-code">ms</code>: Milliseconds, always
- shown with all 3 digits, even if it's all 0-s.
- Example: <code class="inline-code">13:45:05.800</code>
- </li>
-
- <li>
- <code class="inline-code">s</code>: Seconds (fraction
- seconds are dropped even if non-0), like
- <code class="inline-code">13:45:05</code>
- </li>
-
- <li>
- <code class="inline-code">m</code>: Minutes, like
- <code class="inline-code">13:45</code>. This isn't allowed for
- <code class="inline-code">"xs"</code>.
- </li>
-
- <li>
- <code class="inline-code">h</code>: Hours, like
- <code class="inline-code">13</code>. This isn't allowed for
- <code class="inline-code">"xs"</code>.
- </li>
-
- <li>
- Neither: Up to millisecond accuracy, but
- trailing millisecond 0-s are removed, also the whole
- milliseconds part if it would be 0 otherwise.
- Example: <code class="inline-code">13:45:05.8</code>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Time zone offset visibility options:</p>
-
- <ul>
- <li>
- <code class="inline-code">fz</code>: "Force
- Zone", always show time zone offset (even for
- for <code class="inline-code">java.sql.Date</code> and
- <code class="inline-code">java.sql.Time</code> values). But,
- because ISO 8601 doesn't allow for dates (means date
- without time of the day) to show the zone offset,
- this option will have no effect in the case of
- <code class="inline-code">"iso"</code> with dates.
- </li>
-
- <li>
- <code class="inline-code">nz</code>: "No Zone",
- never show time zone offset
- </li>
-
- <li>
- Neither: Always show time zone offset, except
- for <code class="inline-code">java.sql.Date</code> and
- <code class="inline-code">java.sql.Time</code>, and for
- <code class="inline-code">"iso"</code> date values.
- </li>
- </ul>
- </li>
-
- <li>
- <p>Time zone options:</p>
-
- <ul>
- <li>
- <code class="inline-code">u</code>: Use UTC instead of what
- the <code class="inline-code">time_zone</code> setting suggests.
- However, <code class="inline-code">java.sql.Date</code> and
- <code class="inline-code">java.sql.Time</code> aren't affected by
- this (see
- <code class="inline-code">sql_date_and_time_time_zone</code> to
- understand why)
- </li>
-
- <li>
- <code class="inline-code">fu</code>: "Force
- UTC", that is, use UTC instead of what the
- <code class="inline-code">time_zone</code> or the
- <code class="inline-code">sql_date_and_time_time_zone</code>
- setting suggests. This also effects
- <code class="inline-code">java.sql.Date</code> and
- <code class="inline-code">java.sql.Time</code> values
- </li>
-
- <li>
- Neither: Use the time zone suggested by the
- <code class="inline-code">time_zone</code> or the
- <code class="inline-code">sql_date_and_time_time_zone</code>
- configuration setting
- </li>
- </ul>
- </li>
- </ul>
-
- <p>Options from the same category are mutually exclusive,
- like using <code class="inline-code">m</code> and <code class="inline-code">s</code>
- together is an error.</p>
-
- <p>The options can be specified in any order.</p>
-
- <p>The accuracy and time zone offset visibility options
- don't influence parsing, only formatting. For example, even
- if you use <code class="inline-code">"iso m nz"</code>,
- <code class="inline-code">"2012-01-01T15:30:05.125+01"</code> will be
- parsed successfully and with milliseconds accuracy. The time
- zone options (like <code class="inline-code">"u"</code>) influence what
- time zone is chosen only when parsing a string that doesn't
- contain time zone offset.</p>
-
- <p>Parsing with <code class="inline-code">"iso"</code> understands both
- "extend format" and "basic
- format", like <code class="inline-code">20141225T235018</code>. It
- doesn't, however, support the parsing of all kind of ISO
- 8601 strings: if there's a date part, it must use year,
- month and day of the month values (not week of the year),
- and the day can't be omitted.</p>
-
- <p>The output of <code class="inline-code">"iso"</code> is deliberately
- so that it's also a good representation of the value with
- XML Schema format, except for 0 and negative years, where
- it's impossible. Also note that the time zone offset is
- omitted for date values in the <code class="inline-code">"iso"</code>
- format, while it's preserved for the <code class="inline-code">"xs"</code>
- format.</p>
- </li>
-
- <li>
- <p><code class="inline-code">"short"</code>,
- <code class="inline-code">"medium"</code>, <code class="inline-code">"long"</code>, or
- <code class="inline-code">"full"</code>, which has locale-dependent
- meaning defined by the Java platform (see in the <a href="http://docs.oracle.com/javase/7/docs/api/java/text/DateFormat.html">documentation
- of <code>java.text.DateFormat</code></a>). For
- date-time values, you can specify the length of the date and
- time part independently, be separating them with
- <code class="inline-code">_</code>, like
- <code class="inline-code">"short_medium"</code>.
- (<code class="inline-code">"medium"</code> means
- <code class="inline-code">"medium_medium"</code> for date-time
- values.)</p>
- </li>
-
- <li>
- <p>Values starting with <code class="inline-code">@</code> that's also
- followed by a letter, refer to a <a href="pgui_config_custom_formats.html">custom format</a>,
- like <code class="inline-code">"@worklog"</code> refers to the custom
- format registered with the <code class="inline-code">"worklog"</code>
- name. The format name is possibly followed by space or
- <code class="inline-code">_</code> and then format parameters, whose
- interpretation depends on the custom format. For backward
- compatibility, the initial <code class="inline-code">@</code> only has
- this new meaning if either <a href="pgui_config_incompatible_improvements.html#pgui_config_incompatible_improvements_how_to_set">the
- <code>incompatible_improvements</code> setting</a>
- is at least 2.3.24, or there's any custom formats defined.
- When the initial <code class="inline-code">@</code> isn't followed by a
- letter (any UNICODE letter), it's never treated as a
- reference to a custom format.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p><code class="inline-code">time_zone</code>: The name of the time
- zone used to format times for display. By default, the default
- time zone of the JVM is used. Can be any value that is accepted
- by <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TimeZone.html">Java
- TimeZone API</a>, or <code class="inline-code">"JVM default"</code> (since
- FreeMarker 2.3.21) to use the JVM default time zone. Examples:
- <code class="inline-code">"GMT"</code>, <code class="inline-code">"GMT+2"</code>,
- <code class="inline-code">"GMT-1:30"</code>, <code class="inline-code">"CET"</code>,
- <code class="inline-code">"PST"</code>,
- <code class="inline-code">"America/Los_Angeles"</code>.</p>
-
- <div class="callout warning">
- <strong class="callout-label">Warning!</strong>
-
- <p>If you change this setting from its default value, you
- should certainly also set
- <code class="inline-code">sql_date_and_time_time_zone</code> to "JVM
- default". <span class="marked-for-programmers">See more in the Java
- API documentation of
- <code class="inline-code">Configurable.setSQLDateAndTimeTimeZone(TimeZone)</code>.</span></p>
- </div>
-
- </li>
-
- <li>
- <p><code class="inline-code">sql_date_and_time_time_zone</code>
- (since FreeMarker 2.3.21): This handles a highly technical
- issue, so it should usually be set from the Java code by the
- programmers. <span class="marked-for-programmers">For programmers: If
- this is set to non-<code class="inline-code">null</code>, for date-only and
- time-only values coming from SQL database (more precisely, for
- <code class="inline-code">java.sql.Date</code> and
- <code class="inline-code">java.sql.Time</code> objects) FreeMarker will use
- this time zone instead of the time zone specified by the
- <code class="inline-code">time_zone</code> FreeMarker setting. See more in the
- Java API documentation of
- <code class="inline-code">Configurable.setSQLDateAndTimeTimeZone(TimeZone)</code>.</span></p>
- </li>
-
- <li>
- <p><code class="inline-code">url_escaping_charset</code>: The
- charset used for URL escaping (e.g. for
- <code class="inline-code">${foo?url}</code>) to calculate the escaped
- (<code class="inline-code">%<em class="code-color">XX</em></code>) parts.
- Usually the framework that encloses FreeMarker should set it, so
- you hardly ever should set this setting in templates. <span class="marked-for-programmers">(Programmers can read more about this
- <a href="pgui_misc_charset.html">here...</a>)</span></p>
- </li>
-
- <li>
- <p><code class="inline-code">output_encoding</code>: Tells
- FreeMarker what the charset of the output is. As FreeMarker
- outputs a stream of UNICODE characters (<span class="marked-for-programmers">it writes into a
- <code class="inline-code">java.io.Writer</code></span>), it's not affected
- by the output encoding, but some macros/functions and built-ins
- may want to used this information.</p>
- </li>
-
- <li>
- <p><code class="inline-code">classic_compatible</code>: This is for
- experts. Its value should be a boolean. See the documentation of
- <code class="inline-code">freemarker.template.Configurable</code> for more
- information.</p>
- </li>
- </ul>
-
- <p>Example: Assume that the initial locale of template is
- <code class="inline-code">de_DE</code> (German). Then this:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${1.2}
-<#setting locale="en_US">
-${1.2}</pre></div>
-
- <p>will output this:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">1,2
-1.2</pre></div>
-
- <p>because German people use the comma as their decimal
- separator, while US people use the dot.</p>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_directive_outputformat.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_stop.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/ref_directive_stop.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_directive_stop.html b/builds/2.3.26-nightly/ref_directive_stop.html
deleted file mode 100644
index 6898671..0000000
--- a/builds/2.3.26-nightly/ref_directive_stop.html
+++ /dev/null
@@ -1,96 +0,0 @@
-<!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>stop - 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="stop">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_directive_stop.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_directive_stop.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directives.html"><span itemprop="name">Directive Reference</span></a></li><li class="step-
3" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directive_stop.html"><span itemprop="name">stop</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","Template Language Reference","Directive Reference","stop"];</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="ref_directive_setting.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_switch.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="ref_directive_stop" itemprop="headline">stop</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_126" data-menu-target="autoid_126">Synopsis</a></li><li><a class="page-menu-link" href="#autoid_127" data-menu-target="autoid_127">Description</a></li></ul> </div><a name="ref.directive.stop"></a>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_126">Synopsis</h2>
-
-
-
-<pre class="metaTemplate"><code class="inline-code"><#stop></code>
-or
-<code class="inline-code"><#stop <em class="code-color">reason</em>></code>
-</pre>
-
-
- <p>Where:</p>
-
- <ul>
- <li>
- <code class="inline-code"><em class="code-color">reason</em></code>:
- Informative message that describes the reason of the terminating
- error. Expression, must evaluate to a string.
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_127">Description</h2>
-
-
- <p>Aborts template processing with the given (optional) error
- message. <em>This must not be used for ending template
- processing in normal situations!</em> The caller of the
- FreeMarker template will see this as a failed template rendering,
- not as a normally finished one.</p>
-
- <p><span class="marked-for-programmers">This directive throws a
- <code class="inline-code">StopException</code>, and the
- <code class="inline-code">StopException</code> will hold the value of the reason
- parameter.</span></p>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_directive_setting.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_switch.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/ref_directive_switch.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_directive_switch.html b/builds/2.3.26-nightly/ref_directive_switch.html
deleted file mode 100644
index 9f4f1b3..0000000
--- a/builds/2.3.26-nightly/ref_directive_switch.html
+++ /dev/null
@@ -1,162 +0,0 @@
-<!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>switch, case, default, break - 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="switch, case, default, break">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_directive_switch.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_directive_switch.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directives.html"><span itemprop="name">Directive Reference</span></a></li><li class="step-
3" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directive_switch.html"><span itemprop="name">switch, case, default, break</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","Template Language Reference","Directive Reference","switch, case, default, break"];</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="ref_directive_stop.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_t.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="ref_directive_switch" itemprop="headline">switch, case, default, break</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_128" data-menu-target="autoid_128">Synopsis</a></li><li><a class="page-menu-link" href="#autoid_129" data-menu-target="autoid_129">Description</a></li></ul> </div><a name="ref.directive.switch"></a><a name="ref.directive.case"></a><a name="ref.directive.default"></a><a name="ref.directive.switch.break"></a>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_128">Synopsis</h2>
-
-
-
-<pre class="metaTemplate">
-<code class="inline-code"><#switch <em class="code-color">value</em>>
- <#case <em class="code-color">refValue1</em>>
- <em class="code-color">...</em>
- <#break>
- <#case <em class="code-color">refValue2</em>>
- <em class="code-color">...</em>
- <#break>
- <em class="code-color">...</em>
- <#case <em class="code-color">refValueN</em>>
- <em class="code-color">...</em>
- <#break>
- <#default>
- <em class="code-color">...</em>
-</#switch>
-</code>
-</pre>
-
-
- <p>Where:</p>
-
- <ul>
- <li>
- <code class="inline-code"><em class="code-color">value</em></code>,
- <code class="inline-code"><em class="code-color">refValue1</em></code>, etc.:
- Expressions evaluates to scalars of the same type.
- </li>
- </ul>
-
- <p>The <code class="inline-code">break</code>-s and <code class="inline-code">default</code>
- are optional.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_129">Description</h2>
-
-
- <p>The usage of this directive is not recommended, as it's
- error-prone because of the fall-through behavior. Use <a href="ref_directive_if.html#ref.directive.elseif"><code>elseif</code></a>-s
- instead unless you want to exploit the fall-through behavior.</p>
-
- <p>Switch is used to choose a fragment of template depending on
- the value of an expression:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#switch animal.size>
- <#case "small">
- This will be processed if it is small
- <#break>
- <#case "medium">
- This will be processed if it is medium
- <#break>
- <#case "large">
- This will be processed if it is large
- <#break>
- <#default>
- This will be processed if it is neither
-</#switch></pre></div>
-
- <p>Inside the <code class="inline-code">switch</code> must be one or more
- <code class="inline-code"><#case <em class="code-color">value</em>></code>,
- and after all such <code class="inline-code">case</code> tags optionally one
- <code class="inline-code"><#default></code>. When FM reaches the
- <code class="inline-code">switch</code> directive, it chooses a
- <code class="inline-code">case</code> directive where
- <code class="inline-code"><em class="code-color">refValue</em></code> equals with
- <code class="inline-code"><em class="code-color">value</em></code> and continues
- the processing of the template there. If there is no
- <code class="inline-code">case</code> directive with appropriate value then it
- continues processing at the <code class="inline-code">default</code> directive if
- that exists, otherwise it continues the processing after the end-tag
- of <code class="inline-code">switch</code>. And now comes the confusing thing:
- when it has chosen a <code class="inline-code">case</code> directive, it will
- continue the processing there, and will go ahead until it reaches a
- <code class="inline-code">break</code> directive. That is, it will not
- automatically leave the <code class="inline-code">switch</code> directive when it
- reaches another <code class="inline-code">case</code> directive or the
- <code class="inline-code"><#default></code> tag. Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#switch x>
- <#case 1>
- 1
- <#case 2>
- 2
- <#default>
- d
-</#switch></pre></div>
-
- <p>If <code class="inline-code">x</code> is 1, then it will print 1 2 d; if
- <code class="inline-code">x</code> is 2 then it will print 2 d; if
- <code class="inline-code">x</code> is 3 then it will print d. This is the
- mentioned fall-through behavior. The <code class="inline-code">break</code> tag
- instructs FM to immediately skip past the <code class="inline-code">switch</code>
- end-tag.</p>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_directive_stop.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_t.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/ref_directive_t.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_directive_t.html b/builds/2.3.26-nightly/ref_directive_t.html
deleted file mode 100644
index 4ffd393..0000000
--- a/builds/2.3.26-nightly/ref_directive_t.html
+++ /dev/null
@@ -1,149 +0,0 @@
-<!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>t, lt, rt - 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="t, lt, rt">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_directive_t.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_directive_t.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directives.html"><span itemprop="name">Directive Reference</span></a></li><li class="step-
3" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directive_t.html"><span itemprop="name">t, lt, rt</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","Template Language Reference","Directive Reference","t, lt, rt"];</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="ref_directive_switch.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_userDefined.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="ref_directive_t" itemprop="headline">t, lt, rt</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_130" data-menu-target="autoid_130">Synopsis</a></li><li><a class="page-menu-link" href="#autoid_131" data-menu-target="autoid_131">Description</a></li></ul> </div><a name="ref.directive.t"></a><a name="ref.directive.lt"></a><a name="ref.directive.rt"></a>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_130">Synopsis</h2>
-
-
-
-<pre class="metaTemplate">
-<code class="inline-code"><#t></code>
-
-<code class="inline-code"><#lt></code>
-
-<code class="inline-code"><#rt></code></pre>
-
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_131">Description</h2>
-
-
- <p>These directives, instruct FreeMarker to ignore certain
- white-space in the line of the tag:</p>
-
- <ul>
- <li>
- <p><code class="inline-code">t</code> (for trim): Ignore all leading and
- trailing white-space in this line.</p>
- </li>
-
- <li>
- <p><code class="inline-code">lt</code> (for left trim): Ignore all leading
- white-space in this line.</p>
- </li>
-
- <li>
- <p><code class="inline-code">rt</code> (for right trim): Ignore all
- trailing white-space in this line.</p>
- </li>
- </ul>
-
- <p>where:</p>
-
- <ul>
- <li>
- <p>"leading white-space" means all space and tab
- (and other character that are white-space according to <a href="gloss.html#gloss.unicode">UNICODE</a>, except <a href="gloss.html#gloss.lineBreak">line breaks</a>) before the first
- non-white-space character of the line.</p>
- </li>
-
- <li>
- <p>"trailing white-space" means all space and
- tab (and other character that are white-space according to <a href="gloss.html#gloss.unicode">UNICODE</a>, except line breaks)
- after the last non-white-space character of the line,
- <em>and</em> the line break at the end of the
- line.</p>
- </li>
- </ul>
-
- <p>It is important to understand that these directives examine
- the template itself, and <em>not</em> the output what
- the template generates when you merge it with the data-model.
- <span class="marked-for-programmers">(That is, the white-space removal
- happens on parse time.)</span></p>
-
- <p>For example this:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">--
- 1 <#t>
- 2<#t>
- 3<#lt>
- 4
- 5<#rt>
- 6
---</pre></div>
-
- <p>will output this:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">--
-1 23
- 4
- 5 6
---</pre></div>
-
- <p>The placement of these directives inside the line has no
- importance. That is, the effect will be the same regardless if you
- put the directive at the beginning of the line, or at the end of the
- line, or in the middle of the line.</p>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_directive_switch.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_userDefined.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/ref_directive_userDefined.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_directive_userDefined.html b/builds/2.3.26-nightly/ref_directive_userDefined.html
deleted file mode 100644
index 0646397..0000000
--- a/builds/2.3.26-nightly/ref_directive_userDefined.html
+++ /dev/null
@@ -1,297 +0,0 @@
-<!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>User-defined directive (<@...>) - 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="User-defined directive (<@...>)">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_directive_userDefined.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_directive_userDefined.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directives.html"><span itemprop="name">Directive Reference</span></a></li><li class="step-
3" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directive_userDefined.html"><span itemprop="name">User-defined directive (<@...>)</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","Template Language Reference","Directive Reference","User-defined directive (<@...>)"];</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="ref_directive_t.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_visit.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="ref_directive_userDefined" itemprop="headline">User-defined directive (<@...>)</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_132" data-menu-target="autoid_132">Synopsis</a></li><li><a class="page-menu-link" href="#autoid_133" data-menu-target="autoid_133">Description</a><ul><li><a class="page-menu-link" href="#ref_directive_userDefined_entTag" data-menu-target="ref_directive_userDefined_entTag">End-tag</a></li><li><a class="page-menu-link" href="#ref_directive_userDefined_loopVar" data-menu-target="ref_directive_userDefined_loopVar">Loop variables</a></li><li><a class="page-menu-link" href="#ref_directive_userDefined_positionalParam" data-menu-target="ref_directive_userDefined_positionalParam">Positional parameter passing</a></li></ul></li></ul> </div><a name="ref.directive.userDefined"></a>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_132">Synopsis</h2>
-
-
-
-<pre class="metaTemplate">
-<code class="inline-code"><@<em class="code-color">user_def_dir_exp</em> <em class="code-color">param1</em>=<em class="code-color">val1</em> <em class="code-color">param2</em>=<em class="code-color">val2</em> <em class="code-color">...</em> <em class="code-color">paramN</em>=<em class="code-color">valN</em>/></code>
-(Note the XML-style <code class="inline-code">/</code> before the <code class="inline-code">></code>)
-or if you need loop variables (<a href="#ref_directive_userDefined_loopVar">more details...</a>)
-<code class="inline-code"><@<em class="code-color">user_def_dir_exp</em> <em class="code-color">param1</em>=<em class="code-color">val1</em> <em class="code-color">param2</em>=<em class="code-color">val2</em> <em class="code-color">...</em> <em class="code-color">paramN</em>=<em class="code-color">valN</em> ; <em class="code-color">lv1</em>, <em class="code-color">lv2</em>, <em class="code-color">...</em>, <em class="code-color">lvN</em>/></code>
-
-Or the same as the above two but with end-tag (<a href="#ref_directive_userDefined_entTag">more details...</a>):
-
-<code class="inline-code"><@<em class="code-color">user_def_dir_exp</em> <em class="code-color">...</em>>
- ...
-</@<em class="code-color">user_def_dir_exp</em>></code>
-or
-<code class="inline-code"><@<em class="code-color">user_def_dir_exp</em> <em class="code-color">...</em>>
- ...
-</@></code>
-
-Or all above but with positional parameter passing (<a href="#ref_directive_userDefined_positionalParam">more details...</a>):
-
-<code class="inline-code"><@<em class="code-color">user</em> <em class="code-color">val1</em>, <em class="code-color">val2</em>, <em class="code-color">...</em>, <em class="code-color">valN</em>/></code>
-...etc.
-</pre>
-
-
- <p>Where:</p>
-
- <ul>
- <li>
- <code class="inline-code"><em class="code-color">user_def_dir_exp</em></code>:
- Expression evaluates to an user-defined directive (for example a
- macro), that will be called.
- </li>
-
- <li>
- <code class="inline-code"><em class="code-color">param1</em></code>,
- <code class="inline-code"><em class="code-color">param2</em></code>, ...etc.:
- The name of parameters. They are <em>not</em>
- expressions.
- </li>
-
- <li>
- <code class="inline-code"><em class="code-color">val1</em></code>,
- <code class="inline-code"><em class="code-color">val2</em></code>, ...etc.: The
- value of parameters. They <em>are</em>
- expressions.
- </li>
-
- <li>
- <code class="inline-code"><em class="code-color">lv1</em></code>,
- <code class="inline-code"><em class="code-color">lv2</em></code>, ...etc.: The
- name of <a href="dgui_misc_var.html">loop variables</a>.
- They are <em>not</em> expressions.
- </li>
- </ul>
-
- <p>The number of parameters can be 0 (i.e. no parameters).</p>
-
- <p>The order of parameters is not significant (unless you use
- positional parameter passing). The name of parameters must be
- unique. Lower- and uppercase letters are considered as different
- letters in parameter names (i.e. <code class="inline-code">Color</code> and
- <code class="inline-code">color</code> is not the same).</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_133">Description</h2>
-
-
- <p>This will call an user-defined directive, for example a macro.
- The meaning of parameters, and the set of supported and required
- parameters depend on the concrete user-defined directive.</p>
-
- <p>You may read <a href="dgui_misc_userdefdir.html">the tutorial
- about user-defined directives</a>.</p>
-
- <p>Example 1: Calls the directive that is stored in the variable
- <code class="inline-code">html_escape</code>:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><@html_escape>
- a < b
- Romeo & Juliet
-</@html_escape></pre></div>
-
- <p>Output:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> a &lt; b
- Romeo &amp; Juliet</pre></div>
-
- <p>Example 2: Calls a macro with parameters:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><@list items=["mouse", "elephant", "python"] title="Animals"/>
-<em>...</em>
-<#macro list title items>
- <p>${title?cap_first}:
- <ul>
- <#list items as x>
- <li>${x?cap_first}
- </#list>
- </ul>
-</#macro></pre></div>
-
- <p>Output:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> <p>Animals:
- <ul>
- <li>Mouse
- <li>Elephant
- <li>Python
- </ul>
-
-<em>...</em></pre></div>
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="ref_directive_userDefined_entTag">End-tag</h3>
-
-
- <p>You can omit the
- <code class="inline-code"><em class="code-color">user_def_dir_exp</em></code> in
- the <a href="gloss.html#gloss.endTag">end-tag</a>. That is, you can
- always write <code class="inline-code"></@></code> instead of
- <code class="inline-code"></@<em class="code-color">anything</em>></code>.
- This rule is mostly useful when the
- <code class="inline-code"><em class="code-color">user_def_dir_exp</em></code>
- expression is too complex, because you don't have to repeat the
- expression in the end-tag. Furthermore, if the expression contains
- other than simple variable names and dots, you are not allowed to
- repeat the expression. For example,
- <code class="inline-code"><@a_hash[a_method()]><em class="code-color">...</em></@a_hash[a_method()]></code>
- is an error; you must write
- <code class="inline-code"><@a_hash[a_method()]><em class="code-color">...</em></@></code>.
- But
- <code class="inline-code"><@a_hash.foo><em class="code-color">...</em></@a_hash.foo></code>
- is OK.</p>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="ref_directive_userDefined_loopVar">Loop variables</h3>
-
-
- <p>Some user-defined directives create loop variables
- (similarly to <code class="inline-code">list</code> directive). As with the
- predefined directives (as <code class="inline-code">list</code>) the
- <em>name</em> of loop variables is given when you call
- the directive (as <code class="inline-code">foo</code> in <code class="inline-code"><#list
- foos as
- foo><em class="code-color">...</em></#list></code>),
- while the <em>value</em> of the variable is set by the
- directive itself. In the case of user-defined directives the
- syntax is that the name of loop variables is given after a
- semicolon. For example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><@myRepeatMacro count=4 ; <strong>x, last</strong>>
- ${<strong>x</strong>}. Something... <#if <strong>last</strong>> This was the last!</#if>
-</@myRepeatMacro></pre></div>
-
- <p>Note that the number of loop variable created by the
- user-defined directive and the number of loop variables specified
- after the semicolon need not match. Say, if you are not interested
- if the repetition is the last, you can simply write:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><@myRepeatMacro count=4 ; <strong>x</strong>>
- ${<strong>x</strong>}. Something...
-</@myRepeatMacro></pre></div>
-
- <p>or you can even:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><@myRepeatMacro count=4>
- Something...
-</@myRepeatMacro></pre></div>
-
- <p>Furthermore, it does not cause error if you specify more
- loop variables after the semicolon than the user-defined directive
- creates, just the last few loop variables will not be created
- (i.e. those will be undefined in the nested content). Trying to
- use the undefined loop variables, however, will cause error
- (unless you use built-ins like <code class="inline-code">?default</code>), since
- you try to access a non-existing variable.</p>
-
- <p>See the <a href="dgui_misc_userdefdir.html">the tutorial
- about user-defined directives</a> for more explanation.</p>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="ref_directive_userDefined_positionalParam">Positional parameter passing</h3>
-
-
-
-
- <p>Positional parameter passing (as <code class="inline-code"><@heading
- "Preface", 1/></code>) is a shorthand form of normal named
- parameter passing (as <code class="inline-code"><@heading title="Preface"
- level=1/></code>), where you omit the parameter name. This
- shorthand form should be used if a user-defined directive has only
- one parameter, or if it is easy to remember the order of
- parameters for a frequently used user-defined directive. To use
- this form, you have to know the order in which the named
- parameters are declared (trivial if the directive has only one
- parameter). Say, if <code class="inline-code">heading</code> was created as
- <code class="inline-code"><#macro heading title
- level><em class="code-color">...</em></code>, then
- <code class="inline-code"><@heading "Preface", 1/></code> is equivalent
- with <code class="inline-code"><@heading title="Preface" level=1/></code>
- (or <code class="inline-code"><@heading level=1 title="Preface"/></code>;
- if you use parameter names, the order is not important). Note that
- positional parameter passing is currently only supported for
- macros.</p>
-
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_directive_t.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_visit.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>\u20132017
-<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>
[25/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/ref_builtins_type_independent.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_builtins_type_independent.html b/builds/2.3.26-nightly/ref_builtins_type_independent.html
deleted file mode 100644
index 43aef88..0000000
--- a/builds/2.3.26-nightly/ref_builtins_type_independent.html
+++ /dev/null
@@ -1,210 +0,0 @@
-<!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>Type independent built-ins - 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="Type independent built-ins">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_builtins_type_independent.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_builtins_type_independent.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_builtins.html"><span itemprop="name">Built-in Reference</span></a></li><li class="step-3"
itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_builtins_type_independent.html"><span itemprop="name">Type independent built-ins</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","Template Language Reference","Built-in Reference","Type independent built-ins"];</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="ref_builtins_loop_var.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_builtins_expert.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="ref_builtins_type_independent" itemprop="headline">Type independent built-ins</h1>
-</div></div><p>These are the built-ins that don't care (much) about the type of
- their left hand argument.</p>
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_switch">switch</h2>
-
-
-
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in exists since FreeMarker 2.3.23.</p>
- </div>
-
-
- <p>This is basically the in-line (expression) version of the
- <a href="ref_directive_switch.html"><code>switch</code>-<code>case</code>-<code>default</code>
- directives</a>. Its generic format is like
- <code class="inline-code"><em class="code-color">matchedValue</em>?switch(<em class="code-color">case1</em>,
- <em class="code-color">result1</em>,
- <em class="code-color">case2</em>,
- <em class="code-color">result2</em>, ...
- <em class="code-color">caseN</em>,
- <em class="code-color">resultN</em>,
- <em class="code-color">defaultResult</em>)</code>, where
- <code class="inline-code"><em class="code-color">defaultResult</em></code> can be
- omitted. Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list ['r', 'w', 'x', 's'] as flag>
- ${flag<strong>?switch('r', 'readable', 'w' 'writable', 'x', 'executable', 'unknown flag: ' + flag)</strong>}
-</#list></pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> readable
- writable
- executable
- unknown flag: s</pre></div>
-
- <p>That is, <code class="inline-code">switch</code> will find the first
- <code class="inline-code"><em class="code-color">case</em></code> parameter (left
- to right) whose value equals to
- <code class="inline-code"><em class="code-color">matchedValue</em></code>, then it
- returns the value of the
- <code class="inline-code"><em class="code-color">result</em></code> parameter
- that's directly after that
- <code class="inline-code"><em class="code-color">case</em></code> parameter. If it
- doesn't find an equal
- <code class="inline-code"><em class="code-color">case</em></code>, then it will
- return the value of the
- <code class="inline-code"><em class="code-color">defaultResult</em></code>, or if
- there's no
- <code class="inline-code"><em class="code-color">defaultResult</em></code>
- parameter (i.e., if the number of parameters is even) then it stops
- the template processing with error.</p>
-
- <p>Further details:</p>
-
- <ul>
- <li>
- <p>The comparison of
- <code class="inline-code"><em class="code-color">matchedValue</em></code> to
- the <code class="inline-code"><em class="code-color">case</em></code> parameter
- value behaves exactly like <a href="dgui_template_exp.html#dgui_template_exp_comparison">the <code>==</code>
- operator</a>. Hence it only compares scalars and only
- same-type values. Thus, something like <code class="inline-code">x?switch(1,
- "r1", "c2", "r2")</code> doesn't make sense, as if
- <code class="inline-code">x</code> is non-numerical then the first case will
- cause error, and if <code class="inline-code">x</code> is numerical then the
- second case will cause error (unless <code class="inline-code">x</code> is
- <code class="inline-code">1</code>, as then we won't do further comparisons
- after the first one).</p>
- </li>
-
- <li>
- <p>Unlike with normal method calls, only those parameters of
- <code class="inline-code">switch(<em class="code-color">...</em>)</code> are
- evaluated that are indeed needed. For example, in
- <code class="inline-code">two()?switch(c1(), r1(), c2(), r2(), c3(),
- r3())</code>, if <code class="inline-code">two()</code> returns
- <code class="inline-code">2</code>, <code class="inline-code">c1()</code> returns
- <code class="inline-code">1</code>, and <code class="inline-code">c2()</code> returns
- <code class="inline-code">2</code>, then only the following functions will be
- called, and in this order: <code class="inline-code">m()</code>,
- <code class="inline-code">c1()</code>, <code class="inline-code">c2()</code>,
- <code class="inline-code">r2()</code>. (Naturally, arguments that aren't
- evaluated can refer to missing variables without causing error.)
- It's guaranteed that the
- <code class="inline-code"><em class="code-color">case</em></code> parameter
- expressions are evaluated left to right, and only until the
- first match was found. It's also guaranteed that only the
- <code class="inline-code"><em class="code-color">result</em></code> expression
- that belongs to the first matching
- <code class="inline-code"><em class="code-color">case</em></code> will be
- evaluated. It's also guaranteed that the
- <code class="inline-code"><em class="code-color">defaultResult</em></code>
- expression will only be evaluated if there was no matching
- <code class="inline-code"><em class="code-color">case</em></code>
- parameter.</p>
- </li>
-
- <li>
- <p>The <code class="inline-code"><em class="code-color">case</em></code>
- parameter expressions need not be constant values, they can be
- arbitrary complex expressions. Of course, the same goes for and
- the <code class="inline-code"><em class="code-color">result</em></code>,
- <code class="inline-code"><em class="code-color">defaultResult</em></code>, and
- <code class="inline-code"><em class="code-color">matchedValue</em></code>.</p>
- </li>
-
- <li>
- <p>There's no restriction regarding the type of the
- <code class="inline-code"><em class="code-color">case</em></code> parameter
- values, like they can be strings, or numbers, or dates, etc.
- However, because of how the <code class="inline-code">==</code> operator
- works, it doesn't make sense to use
- <code class="inline-code"><em class="code-color">case</em></code> parameters of
- different types inside the <em>same</em>
- <code class="inline-code">switch</code> (see earlier why).</p>
- </li>
-
- <li>
- <p>Unlike with the <a href="ref_directive_switch.html"><code>case</code>
- directive</a>, there's no fall-through behavior there, that
- is, there's no need for an equivalent of the
- <code class="inline-code">break</code> directive.</p>
- </li>
- </ul>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>If you need to switch by a boolean value, you should use the
- <a href="ref_builtins_boolean.html#ref_builtin_then"><code>then</code>
- built-in</a> instead, like
- <code class="inline-code"><em class="code-color">matchedBoolean</em>?then(<em class="code-color">whenTrue</em>,
- <em class="code-color">whenFalse</em>)</code>.</p>
- </div>
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>If you need to do arbitrary logical tests instead of simple
- equality comparisons at the
- <code class="inline-code"><em class="code-color">case</em></code> parameters, you
- can do something like this (here we tests for ranges):
- <code class="inline-code">true?switch(priority <= 1, "low", priority == 2,
- "medium", priority >= 3, "high")</code></p>
- </div>
-
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_builtins_loop_var.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_builtins_expert.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/ref_depr_builtin.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_depr_builtin.html b/builds/2.3.26-nightly/ref_depr_builtin.html
deleted file mode 100644
index 65311bb..0000000
--- a/builds/2.3.26-nightly/ref_depr_builtin.html
+++ /dev/null
@@ -1,105 +0,0 @@
-<!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>List of deprecated built-ins - 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="List of deprecated built-ins">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_depr_builtin.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_depr_builtin.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_deprecated.html"><span itemprop="name">Deprecated FTL constructs</span></a></li><li class=
"step-3" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_depr_builtin.html"><span itemprop="name">List of deprecated built-ins</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","Template Language Reference","Deprecated FTL constructs","List of deprecated built-ins"];</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="ref_depr_directive.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_depr_oldmacro.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="ref_depr_builtin" itemprop="headline">List of deprecated built-ins</h1>
-</div></div><p>The following built-ins are deprecated, but still
- working:</p><ul>
- <li>
- <p> <code class="inline-code">default</code>: This was deprecated
- with the introduction of the <a href="dgui_template_exp.html#dgui_template_exp_missing_default">default value
- operator</a>.
- <code class="inline-code"><em class="code-color">exp1</em>?default(<em class="code-color">exp2</em>)</code>
- is near equivalent with
- <code class="inline-code"><em class="code-color">exp1</em>!<em class="code-color">exp2</em></code>,
- and
- <code class="inline-code">(<em class="code-color">exp1</em>)?default(<em class="code-color">exp2</em>)</code>
- is near equivalent with with
- <code class="inline-code">(<em class="code-color">exp1</em>)!<em class="code-color">exp2</em></code>.
- The only difference is that prior to FreeMarker 2.4, the
- <code class="inline-code">default</code> built-in has always evaluated
- <code class="inline-code"><em class="code-color">exp2</em></code>, while the
- default value operator only evaluates it when the default value is
- really needed. Starting from FreeMarker 2.4, however, the
- <code class="inline-code">default</code> built-in was improved, and behaves
- exactly like the default value operator.</p>
- </li>
-
- <li>
- <p><code class="inline-code">exists</code>: This was deprecated with
- the introduction of the <a href="dgui_template_exp.html#dgui_template_exp_missing_test">missing value test
- operator</a>.
- <code class="inline-code"><em class="code-color">exp1</em>?exists</code> is
- equivalent with
- <code class="inline-code"><em class="code-color">exp1</em>??</code>, also
- <code class="inline-code">(<em class="code-color">exp1</em>)?exists</code> is
- equivalent with with
- <code class="inline-code">(<em class="code-color">exp1</em>)??</code>.</p>
- </li>
-
- <li>
- <p><code class="inline-code">if_exists</code>: This was deprecated
- with the introduction of the <a href="dgui_template_exp.html#dgui_template_exp_missing_default">default value
- operator</a>.
- <code class="inline-code"><em class="code-color">exp1</em>?if_exists</code> is
- similar to <code class="inline-code"><em class="code-color">exp1</em>!</code>,
- and <code class="inline-code">(<em class="code-color">exp1</em>)?if_exists</code>
- is similar to
- <code class="inline-code">(<em class="code-color">exp1</em>)!</code>. The
- difference is that the default value with
- <code class="inline-code">if_exists</code> is not only empty string, empty
- sequence and empty hashs at the same time, but also boolean
- <code class="inline-code">false</code> and a transform that does nothing and
- ignores all parameters.</p>
- </li>
-
- <li>
- <p><code class="inline-code">web_safe</code>: the same as <a href="ref_builtins_string.html#ref_builtin_html"><code>html</code></a></p>
- </li>
- </ul><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_depr_directive.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_depr_oldmacro.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/ref_depr_directive.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_depr_directive.html b/builds/2.3.26-nightly/ref_depr_directive.html
deleted file mode 100644
index ec19041..0000000
--- a/builds/2.3.26-nightly/ref_depr_directive.html
+++ /dev/null
@@ -1,91 +0,0 @@
-<!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>List of deprecated directives - 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="List of deprecated directives">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_depr_directive.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_depr_directive.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_deprecated.html"><span itemprop="name">Deprecated FTL constructs</span></a></li><li class=
"step-3" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_depr_directive.html"><span itemprop="name">List of deprecated directives</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","Template Language Reference","Deprecated FTL constructs","List of deprecated directives"];</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="ref_deprecated.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_depr_builtin.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="ref_depr_directive" itemprop="headline">List of deprecated directives</h1>
-</div></div><p>The following directives are deprecated, but still
- working:</p><ul>
- <li>
- <p><a href="ref_depr_oldmacro.html#ref.directive.call"><code>call</code></a>: use
- <a href="ref_directive_userDefined.html#ref.directive.userDefined">user-defined directive
- call</a> instead</p>
- </li>
-
- <li>
- <p><code class="inline-code">comment</code>: This is the old format of
- <code class="inline-code"><#--<em class="code-color">...</em>--></code>.
- Anything between the <code class="inline-code"><#comment></code> and
- <code class="inline-code"></#comment></code> will be ignored.</p>
- </li>
-
- <li>
- <p><code class="inline-code">foreach</code>: it is a synonym of the
- <code class="inline-code">list</code> directive with slightly different
- parameter syntax. The syntax is <code class="inline-code"><#foreach
- <em class="code-color">item</em> in
- <em class="code-color">sequence</em>></code> that is
- equivalent with <code class="inline-code"><#list
- <em class="code-color">sequence</em> as
- <em class="code-color">item</em>></code>.</p>
- </li>
-
- <li>
- <p><a href="ref_depr_transform.html#ref.directive.transform"><code>transform</code></a>:
- use <a href="ref_directive_userDefined.html#ref.directive.userDefined">user-defined
- directive call</a> instead</p>
- </li>
- </ul><p>The following directives are not working anymore:</p><ul>
- <li>
- <p>Legacy <code class="inline-code">function</code>: Originally
- <code class="inline-code">function</code> was used to define macros, and was
- deprecated in favor of the <code class="inline-code">macro</code> directive. As
- of FreeMarker 2.3, this directive is reintroduced with different
- meaning: it is used to define methods.</p>
- </li>
- </ul><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_deprecated.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_depr_builtin.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/ref_depr_numerical_interpolation.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_depr_numerical_interpolation.html b/builds/2.3.26-nightly/ref_depr_numerical_interpolation.html
deleted file mode 100644
index 016213a..0000000
--- a/builds/2.3.26-nightly/ref_depr_numerical_interpolation.html
+++ /dev/null
@@ -1,135 +0,0 @@
-<!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>#{...}: Numerical interpolation - 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="#{...}: Numerical interpolation">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_depr_numerical_interpolation.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_depr_numerical_interpolation.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_deprecated.html"><span itemprop="name">Deprecated FTL constructs</span></a></li><li class=
"step-3" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_depr_numerical_interpolation.html"><span itemprop="name">#{...}: Numerical interpolation</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","Template Language Reference","Deprecated FTL constructs","#{...}: Numerical interpolation"];</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="ref_depr_oldsyntax.html"><span>Previous</span></a><a class="paging-arrow next" href="xgui.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="ref_depr_numerical_interpolation" itemprop="headline">#{...}: Numerical interpolation</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_143" data-menu-target="autoid_143">Synopsis</a></li><li><a class="page-menu-link" href="#autoid_144" data-menu-target="autoid_144">Description</a></li></ul> </div><p>Deprecated: Use the <a href="ref_directive_setting.html#ref.setting.number_format"><code>number_format</code>
- setting</a> and <a href="ref_builtins_number.html#ref_builtin_string_for_number">the
- <code>string</code> built-in</a> instead. For formatting for
- computer audience (i.e., no localized formatting) use the <a href="ref_builtins_number.html#ref_builtin_c"><code>c</code> built-in</a> (like
- <code class="inline-code"><em class="code-color">number</em>?c</code>).</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_143">Synopsis</h2>
-
-
-
-<pre class="metaTemplate"><code class="inline-code">#{<em class="code-color">expression</em>}</code>
-or
-<code class="inline-code">#{<em class="code-color">expression</em>; <em class="code-color">format</em>}</code></pre>
-
-
- <p>Where:</p>
-
- <ul>
- <li>
- <code class="inline-code"><em class="code-color">expression</em></code>:
- expression that can be evaluated as a number.
- </li>
-
- <li>
- <code class="inline-code"><em class="code-color">format</em></code>:
- optional format specifier.
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_144">Description</h2>
-
-
- <p>The numerical interpolation is used to output a number value.
- If the expression doesn't evaluate to a number, the evaluation ends
- with an error.</p>
-
- <p>The optional format specifier specifies the minimum and the
- maximum number of displayed fractional digits using syntax
- <code class="inline-code">m<em class="code-color">min</em>M<em class="code-color">max</em></code>.
- For example, <code class="inline-code">m2M5</code> means "at least two, at most
- five fractional digits". The minimum or the maximum specifier part
- can be omitted. If only the minimum is specified, the maximum is
- equal to the minimum. If only maximum is specified, the minimum is
- 0.</p>
-
- <p>The decimal separator character of the output is
- internationalized (according the current locale setting), which
- means that it is not necessarily a dot.</p>
-
- <p>Unlike <code class="inline-code">${...}</code>, <code class="inline-code">#{...}</code>
- ignores the <a href="ref_directive_setting.html#ref.setting.number_format"><code>number_format</code>
- setting</a>. This is actually a backward compatibility quirk, but
- it can be useful when you print numbers in situations like
- <code class="inline-code"><a href="quertyDatabase?id=#{id}"></code>, where
- you surely don't want grouping separators or something fancy like
- that. However, starting from FreeMarker 2.3.3 rather use the <a href="ref_builtins_number.html#ref_builtin_c"><code>?c</code> built-in</a> for
- this purpose, like <code class="inline-code"><a
- href="quertyDatabase?id=${id?c}"></code>.</p>
-
- <p>Examples. Assume that <code class="inline-code">x</code> is
- <code class="inline-code">2.582</code> and <code class="inline-code">y</code> is
- <code class="inline-code">4</code>:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"> <#-- If the language is US English the output is: -->
-#{x} <#-- 2.582 -->
-#{y} <#-- 4 -->
-#{x; M2} <#-- 2.58 -->
-#{y; M2} <#-- 4 -->
-#{x; m1} <#-- 2.6 -->
-#{y; m1} <#-- 4.0 -->
-#{x; m1M2} <#-- 2.58 -->
-#{y; m1M2} <#-- 4.0 --></pre></div>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_depr_oldsyntax.html"><span>Previous</span></a><a class="paging-arrow next" href="xgui.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/ref_depr_oldmacro.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_depr_oldmacro.html b/builds/2.3.26-nightly/ref_depr_oldmacro.html
deleted file mode 100644
index 990c1d2..0000000
--- a/builds/2.3.26-nightly/ref_depr_oldmacro.html
+++ /dev/null
@@ -1,198 +0,0 @@
-<!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>Old-style macro and call directives - 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="Old-style macro and call directives">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_depr_oldmacro.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_depr_oldmacro.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_deprecated.html"><span itemprop="name">Deprecated FTL constructs</span></a></li><li class=
"step-3" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_depr_oldmacro.html"><span itemprop="name">Old-style macro and call directives</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","Template Language Reference","Deprecated FTL constructs","Old-style macro and call directives"];</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="ref_depr_builtin.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_depr_transform.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="ref_depr_oldmacro" itemprop="headline">Old-style macro and call directives</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_139" data-menu-target="autoid_139">Synopsis</a></li><li><a class="page-menu-link" href="#autoid_140" data-menu-target="autoid_140">Description</a></li></ul> </div><a name="ref.directive.oldmacro"></a><a name="ref.directive.call"></a>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_139">Synopsis</h2>
-
-
-
-<pre class="metaTemplate"><code class="inline-code"><#macro <em class="code-color">name</em>(<em class="code-color">argName1</em>, <em class="code-color">argName2</em>, <em class="code-color">... argNameN</em>)>
- ...
-</#macro></code>
-
-<code class="inline-code"><#call <em class="code-color">name</em>(<em class="code-color">argValue1</em>, <em class="code-color">argValue2</em>, <em class="code-color">... argValueN</em>)></code></pre>
-
-
- <p>Where:</p>
-
- <ul>
- <li>
- <code class="inline-code"><em class="code-color">name</em></code>: name
- of the macro (not expression)
- </li>
-
- <li>
- <code class="inline-code"><em class="code-color">argName1</em></code>,
- <code class="inline-code"><em class="code-color">argName2</em></code>, ...etc.:
- the name of the <a href="dgui_misc_var.html">local
- variables</a> store the parameter values (not
- expression)
- </li>
-
- <li>
- <code class="inline-code"><em class="code-color">argValue1</em></code>,
- <code class="inline-code"><em class="code-color">argValue2</em></code>,
- ...etc.: expressions, the value of the parameters
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_140">Description</h2>
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This is the documentation of FreeMarker 2.1 macro and macro
- related directives. These are still working, but deprecated. You
- may want to read the FreeMarker 2.2+ references: <a href="ref_directive_macro.html#ref.directive.macro">macro, return</a>, <a href="ref_directive_userDefined.html#ref.directive.userDefined">user-defined directive
- call</a></p>
- </div>
-
-
- <p>A macro is a template fragment with an associated name. You
- can use that named fragment on multiple places in your template, so
- it helps in repetitive tasks. A macro can have parameters that
- influence the output generated when you use the macro.</p>
-
- <p>You define a macro with the <code class="inline-code">macro</code>
- directive, and then you can use the defined macro in the whole
- template. The <code class="inline-code">macro</code> directive itself does not
- write anything to the output, it just defines the macro. For example
- this will define a macro called <code class="inline-code">warning</code>:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><strong><#macro warning(message)></strong>
- <div align=center>
- <table border=1 bgcolor=yellow width="80%"><tr><td align=center>
- <b>Warning!</b>
- <p>${message}
- </td></tr></table>
- </div>
-<strong></#macro></strong></pre></div>
-
- <p>The macro definition body (the section between the macro
- start-tag and end-tag) will be processed whenever you use the
- <code class="inline-code">call</code> directive with the name of the macro. For
- example this calls the macro called
- <code class="inline-code">warning</code>:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#call warning("Unplug the machine before opening the cover!")></pre></div>
-
- <p>and will write this to the output:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> <div align=center>
- <table border=1 bgcolor=yellow width="80%"><tr><td align=center>
- <b>Warning!</b>
- <p>Unplug the machine before opening the cover!
- </td></tr></table>
- </div>
- </pre></div>
-
- <p>The parameters passed in as parameters to the
- <code class="inline-code">call</code> directive will be accessible in the macro
- definition body as <a href="dgui_misc_var.html">local
- variables</a>.</p>
-
- <p>When you call a macro, you must specify the same number of
- parameters as were specified in the macro definition. For example if
- this is the macro definition:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#macro test(a, b, c)>Nothing...</#macro></pre></div>
-
- <p>then these are valid macro calls:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#call test(1, 2, 3)>
-<#call test("one", 2 + x, [1234, 2341, 3412, 4123])></pre></div>
-
- <p>If a macro has no parameters, then you can omit the
- parentheses:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#macro test>mooo</#macro>
-<#call test></pre></div>
-
- <p>When you define a macro it will be available in the template,
- where you have defined it only. But probably you want to use the
- same macros in more templates. In this case you can store your macro
- definitions in a common file, and then include that file in all
- templates where you need those macros.</p>
-
- <p>It's fine to call a macro that's defined further down in the
- template <span class="marked-for-programmers">(since macros are defined at
- parse time, not in process time)</span>. However, if the macro
- definitions are inserted with <code class="inline-code">include</code> directive,
- they will not be available until FreeMarker has executed the
- <code class="inline-code">include</code> directive.</p>
-
- <p>You can leave a macro definition body before the
- <code class="inline-code"></#macro></code> tag with the
- <code class="inline-code">return</code> directive.</p>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_depr_builtin.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_depr_transform.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/ref_depr_oldsyntax.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_depr_oldsyntax.html b/builds/2.3.26-nightly/ref_depr_oldsyntax.html
deleted file mode 100644
index 680f2db..0000000
--- a/builds/2.3.26-nightly/ref_depr_oldsyntax.html
+++ /dev/null
@@ -1,131 +0,0 @@
-<!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>Old FTL syntax - 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="Old FTL syntax">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_depr_oldsyntax.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_depr_oldsyntax.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_deprecated.html"><span itemprop="name">Deprecated FTL constructs</span></a></li><li class=
"step-3" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_depr_oldsyntax.html"><span itemprop="name">Old FTL syntax</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","Template Language Reference","Deprecated FTL constructs","Old FTL syntax"];</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="ref_depr_transform.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_depr_numerical_interpolation.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="ref_depr_oldsyntax" itemprop="headline">Old FTL syntax</h1>
-</div></div><p>With the old FTL syntax the <code class="inline-code">#</code> was not
- required (prior 2.1 not even allowed) in the FTL tags. For example,
- you could write this:</p>
-
-<div class="code-wrapper"><pre class="code-block code-template"><html>
-<head>
- <title>Welcome!</title>
-</head>
-<body>
- <h1>Welcome ${user}!</h1>
- <p>We have there animals:
- <ul>
- <strong><list animals as animal></strong>
- <li>${animal.name} for ${animal.price} Euros
- <strong></list></strong>
- </ul>
- <strong><include "common_footer.html"></strong>
-</body>
-</html></pre></div><p>While the <code class="inline-code">#</code>-less syntax was more natural for
- HTML authors, it had too many drawbacks, so finally we have decided to
- deprecate it. With the newer syntax (a.k.a "strict
- syntax"), the <code class="inline-code">#</code> is strictly required. That
- is, things like <code class="inline-code"><include
- "common_footer.html"></code> will go to the output as is, since
- they are not considered as FTL tags. Note that user-defined directives
- use <code class="inline-code">@</code> <em>instead of</em>
- <code class="inline-code">#</code>.</p><p>However, to give users time to prepare for this change, in
- FreeMarker 2.1 and 2.2 the usage of <code class="inline-code">#</code> is optional,
- unless the programmer enables strict syntax mode in the FreeMarker
- configuration by calling <code class="inline-code">setStrictSyntaxMode(true)</code>
- on <code class="inline-code">Configuration</code>. In fact, we strongly recommend
- this to programmers. Starting from some later release this setting
- will be initially set to <code class="inline-code">true</code>. Also, you can
- specify if you want to use strict syntax or old syntax in the template
- files with the <a href="ref_directive_ftl.html#ref.directive.ftl"><code>ftl</code>
- directive</a>.</p><p>The advantages of "strict syntax" over the legacy
- FTL syntax are:</p><ul>
- <li>
- <p>Since all
- <code class="inline-code"><#<em class="code-color">...</em>></code> and
- <code class="inline-code"></#<em class="code-color">...</em>></code> are
- reserved for FTL:</p>
-
- <ul>
- <li>
- <p>We can introduce new directives without breaking
- backward compatibility.</p>
- </li>
-
- <li>
- <p>We can detect if you made a typo, i.e.
- <code class="inline-code"><#inculde
- <em class="code-color">...</em>></code> is treated as
- parse-time error, rather than silently treated as simple
- text.</p>
- </li>
-
- <li>
- <p>It is easier for third-party tools to handle templates
- (e.g. do syntax highlighting), especially since they don't
- have to know about the new directives introduced with new
- releases.</p>
- </li>
-
- <li>
- <p>Templates are more readable, since it is easier to spot
- <code class="inline-code"><#...></code> tags embedded into HTML or
- other markup.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p><code class="inline-code"><#</code> and <code class="inline-code"></#</code> is
- illegal XML (except in CDATA sections), and illegal in almost all
- other SGML applications, so they can't interfere with the tags
- used in the static text parts (e.g. if you have
- <code class="inline-code">include</code> element in the generated XML).</p>
- </li>
- </ul><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_depr_transform.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_depr_numerical_interpolation.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>\u20132017
-<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>
[08/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/versions_2_3_21.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_3_21.html b/builds/2.3.26-nightly/versions_2_3_21.html
deleted file mode 100644
index 6740ac9..0000000
--- a/builds/2.3.26-nightly/versions_2_3_21.html
+++ /dev/null
@@ -1,1419 +0,0 @@
-<!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.21 - 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.21">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/versions_2_3_21.html">
-<link rel="canonical" href="http://freemarker.org/docs/versions_2_3_21.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_21.html"><span itemprop="name">2.3.21</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.21"];</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_22.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_20.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="versions_2_3_21" itemprop="headline">2.3.21</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_171" data-menu-target="autoid_171">Changes on the FTL side</a></li><li><a class="page-menu-link" href="#autoid_172" data-menu-target="autoid_172">Changes on the Java side</a></li><li><a class="page-menu-link" href="#autoid_173" data-menu-target="autoid_173">Other changes</a></li></ul> </div><p>Date of release: 2014-10-12</p><p>Note that since 2.3.21 is designed to be fully backward
- compatible with the previous 2.3.x releases, <em>some of the
- improvements and fixes described below are only activated when you
- specifically ask for 2.3.21 "incompatible
- improvements"</em>, because they could, with very small
- chance, break existing applications. If the dependent project is still
- actively developed, allowing 2.3.21 "incompatible improvements" is
- highly recommended. See <a href="pgui_config_incompatible_improvements.html#pgui_config_incompatible_improvements_how_to_set">how to set
- "incomplatible improvements" here</a>.</p><p>Note that we have changed our proprietary BSD-style license to
- Apache License, Version 2.0. See the <a href="app_license.html">new
- license here</a>.</p><p>Note that the minimum required Java version was increased from
- 1.2 to 1.4.</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_171">Changes on the FTL side</h2>
-
-
- <ul>
- <li>
- <p>Improved ranges:</p>
-
- <ul>
- <li>
- <p>Added ranges with exclusive end:
- <code class="inline-code"><em class="code-color">start</em>..<<em class="code-color">end</em></code>
- (also can be written as
- <code class="inline-code"><em class="code-color">start</em>..!<em class="code-color">end</em></code>).
- <a href="dgui_template_exp.html#dgui_template_exp_direct_ranges">More...</a></p>
- </li>
-
- <li>
- <p>Added length limited ranges:
- <code class="inline-code"><em class="code-color">start</em>..*<em class="code-color">length</em></code>:
- For example, <code class="inline-code">10..*4</code> gives <code class="inline-code">[10,
- 11, 12, 13]</code>, <code class="inline-code">10..*-4</code> gives
- <code class="inline-code">[10, 9, 8, 7]</code>, and
- <code class="inline-code">10..*0</code> gives <code class="inline-code">[]</code>. When
- these kind of ranges are used for slicing, the slice will
- end without error if the end of the sliced sequence or
- string is reached before the specified range length was
- reached. Thus, for example, to take the first 10 characters
- from the string <code class="inline-code">s</code>, or less if
- <code class="inline-code">s</code> is shorter than 10 characters, you can
- use <code class="inline-code">s[0..*10]</code>. <a href="dgui_template_exp.html#dgui_template_exp_seqenceop_slice">More...</a></p>
- </li>
-
- <li>
- <p>Square bracket now accepts range values from any
- source, like <code class="inline-code"><#assign r = 1..3>
- ${'foobar'[r]}</code> will print
- <code class="inline-code">"oob"</code>. Earlier it has only supported
- ranges that were specified directly inside the square
- brackets, like <code class="inline-code">'foobar'[1..3]</code>.</p>
- </li>
-
- <li>
- <p>When slicing a sequence with a right-unbounded range,
- it's now allowed to have a range start index that's one
- higher than the last index of the sliced sequence. For
- example, <code class="inline-code">['x', 'y'][2..]</code> is not an error
- anymore, but an empty sequence. (Of course, <code class="inline-code">['x',
- 'y'][3..]</code> is still an error.)</p>
- </li>
-
- <li>
- <p><code class="inline-code"><em class="code-color">someString</em>?substring(<em class="code-color">from</em>,
- <em class="code-color">toExclusive</em>)</code> and
- <code class="inline-code"><em class="code-color">someString</em>?substring(<em class="code-color">from</em>)</code>
- are now deprecated; use this slicing expression instead:
- <code class="inline-code"><em class="code-color">someString</em>[<em class="code-color">from</em>..<<em class="code-color">toExclusive</em>]</code>
- and
- <code class="inline-code"><em class="code-color">someString</em>[<em class="code-color">from</em>..]</code>.
- A warning if you are processing XML: Since slicing
- expressions work both for sequences and strings, and XML
- nodes in FTL are typically both sequences and strings at the
- same time, there the equivalent expression is
- <code class="inline-code"><em class="code-color">someXmlNode</em>?string[<em class="code-color">from</em>..<<em class="code-color">toExclusive</em>]</code>
- and
- <code class="inline-code"><em class="code-color">exp</em>?string[<em class="code-color">from</em>..]</code>,
- because without the <code class="inline-code">?string</code> it would
- slice the node sequence instead of the text value of the
- node.</p>
- </li>
-
- <li>
- <p>If the <code class="inline-code">incompatible_improvements</code> in
- the FreeMarker configuration is set to at least 2.3.21,
- right-unbounded ranges become readable (like
- <code class="inline-code">#list</code>-able). Earlier they could only be
- used for slicing, and behaved like empty sequences
- otherwise.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>New built-in, <code class="inline-code">?url_path</code>: This is the
- same as <a href="ref_builtins_string.html#ref_builtin_url">the
- <code>url</code> built-in</a>, except that it doesn't
- escape slash (<code class="inline-code">/</code>) characters. This meant to be
- used for converting paths (like paths coming from the OS or some
- content repository) that use slash (not backslash!) to a path
- the can be inserted into the path part of an URL.</p>
- </li>
-
- <li>
- <p>New built-ins for string manipulation:</p>
-
- <ul>
- <li>
- <p><code class="inline-code"><em class="code-color">someString</em>?keep_before(<em class="code-color">substring</em>[,
- <em class="code-color">flags</em>])</code>: <a href="ref_builtins_string.html#ref_builtin_keep_before">More...</a></p>
- </li>
-
- <li>
- <p><code class="inline-code"><em class="code-color">someString</em>?keep_after(<em class="code-color">substring</em>[,
- <em class="code-color">flags</em>])</code>: <a href="ref_builtins_string.html#ref_builtin_keep_after">More...</a></p>
- </li>
-
- <li>
- <p><code class="inline-code"><em class="code-color">someString</em>?remove_beginning(<em class="code-color">substring</em>)</code>:
- <a href="ref_builtins_string.html#ref_builtin_remove_beginning">More...</a></p>
- </li>
-
- <li>
- <p><code class="inline-code"><em class="code-color">someString</em>?remove_ending(<em class="code-color">substring</em>)</code>:
- <a href="ref_builtins_string.html#ref_builtin_remove_ending">More...</a></p>
- </li>
-
- <li>
- <p><code class="inline-code"><em class="code-color">someString</em>?ensure_starts_with(<em class="code-color">substring</em>[,
- <em class="code-color">substitution</em>[,
- <em class="code-color">flags</em>]])</code>: <a href="ref_builtins_string.html#ref_builtin_ensure_starts_with">More...</a></p>
- </li>
-
- <li>
- <p><code class="inline-code"><em class="code-color">someString</em>?ensure_ends_with(<em class="code-color">substring</em>)</code>:
- <a href="ref_builtins_string.html#ref_builtin_ensure_ends_with">More...</a></p>
- </li>
- </ul>
- </li>
-
- <li>
- <p><code class="inline-code"><em class="code-color">someString</em>?number</code>
- now recognizes all XML Schema number formats, like
- <code class="inline-code">NaN</code>, <code class="inline-code">INF</code>,
- <code class="inline-code">-INF</code>, plus the Java-native formats
- <code class="inline-code">Infinity</code> and
- <code class="inline-code">-Infinity</code>.</p>
- </li>
-
- <li>
- <p>If <code class="inline-code">incompatible_improvements</code> in the
- FreeMarker configuration is set to at least 2.3.21,
- <code class="inline-code"><em class="code-color">someNumber</em>?c</code> will
- return <code class="inline-code">"INF"</code>, <code class="inline-code">"-INF"</code> and
- <code class="inline-code">"NaN"</code> for positive/negative infinity and IEEE
- floating point Not-a-Number, respectively. These are the XML
- Schema compatible representations of these special values.
- Earlier it has returned what
- <code class="inline-code">java.text.DecimalFormat</code> did with US locale,
- none of which was understood by any (common) computer
- language.</p>
- </li>
-
- <li>
- <p>New built-in:
- <code class="inline-code"><em class="code-color">someString</em>?boolean</code>.
- This is for example useful for converting "true" and "false"
- strings coming from XML to real boolean values. <a href="ref_builtins_string.html#ref_builtin_boolean">More...</a></p>
- </li>
-
- <li>
- <p>Date/time/date-time related changes:</p>
-
- <ul>
- <li>
- <p>Added new kind of
- <code class="inline-code">date_format</code>/<code class="inline-code">datetime_format</code>/<code class="inline-code">time_format</code>
- setting values: XML Schema formats, starting with
- <code class="inline-code">"xs"</code> and ISO 8601:2004 formats, starting
- with <code class="inline-code">"iso"</code>. The format string can be
- continued with various space (or <code class="inline-code">_</code>)
- separated options, like <code class="inline-code">h</code> or
- <code class="inline-code">m</code> or <code class="inline-code">s</code> or
- <code class="inline-code">ms</code> for setting shown accuracy,
- <code class="inline-code">nz</code> or <code class="inline-code">fz</code> for setting
- time zone offset visibility, and <code class="inline-code">u</code> or,
- <code class="inline-code">fu</code> for using UTC time zone . For example,
- to use ISO 8601 with minute precision and without the zone
- offset being shown, set the
- <code class="inline-code">datetime_format</code> setting to <code class="inline-code">"iso
- m nz"</code>, so then the output will be like
- <code class="inline-code">2014-09-03T20:56</code>. <a href="ref_directive_setting.html#topic.dateTimeFormatSettings">More...</a></p>
- </li>
-
- <li>
- <p>Because anything that's accepted as
- <code class="inline-code">date_format</code>/<code class="inline-code">datetime_format</code>/<code class="inline-code">time_format</code>
- setting value can also be used with the
- <code class="inline-code">?string</code> and
- <code class="inline-code">?date</code>/<code class="inline-code">?time</code>/<code class="inline-code">?datetime</code>
- build-ins, you can use the new formats like
- <code class="inline-code">someDate?string.xs</code> and
- <code class="inline-code">someString?date.xs</code>. (For the
- <code class="inline-code">"xs"</code> and <code class="inline-code">"iso"</code>
- formats, <code class="inline-code">_</code> can be used instead of space,
- which means that, for example, you can write
- <code class="inline-code">lastModified?string.iso_m_u</code> instead of
- the more verbose <code class="inline-code">lastModified?string["iso m
- u"]</code>.)</p>
- </li>
-
- <li>
- <p>That <code class="inline-code">"iso"</code> and
- <code class="inline-code">"xs"</code> are now possible
- <code class="inline-code">date_format</code>/<code class="inline-code">datetime_format</code>/<code class="inline-code">time_format</code>
- setting values also means that such values can now be parsed
- too via
- <code class="inline-code">?date</code>/<code class="inline-code">?time</code>/<code class="inline-code">?datetime</code>.
- The main application is with processing XML DOM-s, as there
- values are coming in as strings, and now you can do
- something like <code class="inline-code">order.confirmDate?date.xs</code>
- to convert them to real dates.</p>
- </li>
-
- <li>
- <p>The <a href="ref_builtins_date.html#ref_builtin_date_iso"><code>?iso_...</code>
- built-ins</a> are now deprecated in favor of the new
- setting values described above. They can be set as the
- default date/time/date-time format, seamlessly fit into the
- formatting architecture (and thus can parse strings too),
- and has more/better options (<code class="inline-code">ms</code> always
- shows 3 millisecond digits, <code class="inline-code">fz</code> for
- forcing showing time zone offset).</p>
- </li>
-
- <li>
- <p>If the "incompatible improvements"
- configuration setting is at least 2.3.21, the
- <code class="inline-code">?iso_...</code> built-ins won't show time zone
- offset for <code class="inline-code">java.sql.Time</code> values anymore.
- Most databases store time values that aren't in any time
- zone, but just store hour, minute, second, and decimal
- second field values, so showing the time zone doesn't make
- sense. (Notable exceptions are PostgreSQL "time with time
- zone" columns, where
- <code class="inline-code"><em class="code-color">mzTime</em>?string.iso_fz</code>
- could be used.)</p>
- </li>
-
- <li>
- <p>Added <code class="inline-code">?is_time</code>,
- <code class="inline-code">?is_datetime</code>,
- <code class="inline-code">?is_date_only</code> (should be called
- <code class="inline-code">?is_date</code>, but that was already taken) and
- <code class="inline-code">?is_unknown_date_like</code> to check the exact
- type of a date-like value.</p>
- </li>
-
- <li>
- <p><code class="inline-code">?is_date</code> is now a deprecated name,
- use <code class="inline-code">?is_date_like</code> instead. This is
- because <code class="inline-code">?is_date</code> sounds like it checks if
- the value is a date without time part, but actually it also
- returns <code class="inline-code">true</code> for time, date-time, and
- unknown date-like values.</p>
- </li>
-
- <li>
- <p>Added <code class="inline-code">?date_if_unknown</code>,
- <code class="inline-code">?time_if_unknown</code> and
- <code class="inline-code">?datetime_if_unknown</code> built-ins, which
- mark a date-like value with some of the sub-types: date
- without time, time, or date-time, respectively. However, if
- the value already holds this information, the built-in has
- no effect. That is, it will never convert the sub-type of a
- value, it only adds the sub-type if it was unknown.</p>
- </li>
-
- <li>
- <p>Bug fixed: ISO 8601 dates (via
- <code class="inline-code">?iso_...</code> and <code class="inline-code">"iso"</code>
- format settings) now use proleptic Gregorian calendar for
- the years before 1582, rather than Julian calendar. This is
- (indirectly) required by the standard, and it's also how the
- default Sun/Oracle Java XML Schema date/time/dateTime parser
- works.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Error message quality improvements (targeting frequent
- support requests and some error message bugs):</p>
-
- <ul>
- <li>
- <p>Fixed glitch where if an <code class="inline-code">#if</code> had
- and <code class="inline-code">#else</code> or <code class="inline-code">#elseif</code>,
- the
- <code class="inline-code">#if</code>/<code class="inline-code">#else</code>/<code class="inline-code">#elseif</code>
- wasn't hidden in the FTL stack trace when the error was
- inside its nested block.</p>
- </li>
-
- <li>
- <p>Some new context sensitive hints in undefined variable
- exception error messages.</p>
- </li>
-
- <li>
- <p>Fixed unclosed directive error messages at end of file
- where the wrong unclosed directive name was reported</p>
- </li>
-
- <li>
- <p>Better type error messages when accessing XML data
- (applies when wrapped with
- <code class="inline-code">freemarker.ext.dom</code>):</p>
-
- <ul>
- <li>
- <p>Trying to use
- <code class="inline-code">node.<em class="code-color">noSuchChildNodes</em></code>
- on a place where scalar value is expected will explain
- that the problem is that you had no matches in the
- constructing XML query.</p>
- </li>
-
- <li>
- <p>Trying to use
- <code class="inline-code">node.<em class="code-color">multipleSuchChildNodes</em></code>
- on a place where scalar value is expected will explain
- that the problem is that you had multiple matches in the
- constructing XML query.</p>
- </li>
-
- <li>
- <p>Trying to use
- <code class="inline-code">node.<em class="code-color">exactlyOneChildNode</em></code>
- as number, date/time/date-time or boolean will explain
- that values coming from XML are always strings (text),
- and must be converted explicitly via
- <code class="inline-code">?number</code>, <code class="inline-code">?boolean</code>,
- <code class="inline-code">?date.xs</code>, etc.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Trying to use <code class="inline-code">obj.someMethod</code>
- without <code class="inline-code">()</code> on a place where method value
- is not expected will recommend calling the method.</p>
- </li>
-
- <li>
- <p>Trying to use methods like
- <code class="inline-code">obj.getFoo</code> or
- <code class="inline-code">obj.isFoo</code> without <code class="inline-code">()</code>on
- a place where method value is not expected will recommend
- using the <code class="inline-code">obj.foo</code> form.</p>
- </li>
-
- <li>
- <p>Messages are now much more readable when rendered in
- environments that don't obey to line-breaks. (This often
- happens in improperly implemented HTML error pages and logs
- viewers.)</p>
- </li>
-
- <li>
- <p>Better FTL instruction stack traces:</p>
-
- <ul>
- <li>
- <p>Error messages now contain up to 10 lines of FTL
- stack trace (unless it's on the top of a full FTL stack
- trace), because the FTL stack trace wasn't printed at
- all when the exception was a cause exception in a Java
- stack trace, or when only the value of
- <code class="inline-code">getMessage()</code> was printed instead of a
- stack trace.</p>
- </li>
-
- <li>
- <p>The FTL stack trace is now more self explanatory
- as it contains more text labels.</p>
- </li>
-
- <li>
- <p>Stack frames that belong to nestings are now
- marked differently, and are filtered out when the stack
- trace wouldn't fit into the error message
- otherwise.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Bug fixed: <code class="inline-code">?substring</code> has thrown
- low level
- <code class="inline-code">java.lang.IndexOutOfBoundsException</code>-s
- instead of more descriptive
- <code class="inline-code">TemplateModelException</code>-s with FTL stack
- trace.</p>
- </li>
-
- <li>
- <p>Bug fixed: Slicing with ranges sometimes thrown low
- level
- <code class="inline-code">java.lang.IndexOutOfBoundsException</code>-s
- instead of more descriptive
- <code class="inline-code">TemplateModelException</code>-s with FTL stack
- trace.</p>
- </li>
-
- <li>
- <p>Bug fixed [<a href="https://sourceforge.net/p/freemarker/bugs/402/">402</a>]:
- Fixed misleading parser error message when a directive
- called without its required parameters (like
- <code class="inline-code"><#list></code>) was reported as unknown
- directive.</p>
- </li>
-
- <li>
- <p>Bug fixed [<a href="http://sourceforge.net/p/freemarker/bugs/222/">222</a>]:
- Poor quality error message when
- <code class="inline-code"><em class="code-color">someString</em>[<em class="code-color">someIndex</em>]</code>
- fails with string index out of bounds.</p>
- </li>
-
- <li>
- <p>Bug fixed [<a href="http://sourceforge.net/p/freemarker/bugs/27/">27</a>]:
- Not very good quality error messages when
- <code class="inline-code">#import</code>-ing a template whose parsing
- fails.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>New <code class="inline-code">include</code> directive option,
- <code class="inline-code">ignore_missing=<em class="code-color">boolean</em></code>.
- When this is set to <code class="inline-code">true</code>, and the template to
- include is missing, the error will be silently ignored, and
- nothing will be included.</p>
- </li>
-
- <li>
- <p>The <code class="inline-code">setting</code> directive can now set the
- <code class="inline-code">output_encoding</code> setting.</p>
- </li>
-
- <li>
- <p>New special variable: <code class="inline-code">.locale_object</code>.
- This is like <code class="inline-code">.locale</code>, except that it's a
- <code class="inline-code">java.util.Locale</code> object, not a string. This
- is handy if you want to pass the current locale to Java
- methods.</p>
- </li>
-
- <li>
- <p>If <code class="inline-code">incompatible_improvements</code> in the
- FreeMarker configuration is set to at least 2.3.21, hash
- <em>literals</em> that repeat keys now only have the
- key once with <code class="inline-code">?keys</code>, and only has the last
- value associated to that key with <code class="inline-code">?values</code>.
- This is consistent with the behavior of
- <code class="inline-code"><em class="code-color">hash</em>[<em class="code-color">key</em>]</code>
- and how maps work in Java.</p>
- </li>
-
- <li>
- <p>Bug fixed: <code class="inline-code">?is_enumerable</code> has returned
- <code class="inline-code">true</code> for Java methods get from Java objects,
- despite that those values aren't <code class="inline-code"><#list
- ...></code>-able. (This is actually a historical quirk of
- <code class="inline-code">BeansWrapper</code>, not a bug in
- <code class="inline-code">?is_enumerable</code>, but now
- <code class="inline-code">?is_enumerable</code> is aware of this exceptional
- case.)</p>
- </li>
-
- <li>
- <p>Bug fixed [<a href="http://sourceforge.net/p/freemarker/bugs/257/">257</a>]:
- The result value of <code class="inline-code">?matches</code> wasn't
- "reentrant". For example, you couldn't list the
- matches inside another listing where you are also listing
- exactly the same result value (stored in a common variable), as
- they would consume from the same iterator. Most importantly,
- even accessing the <code class="inline-code">?size</code> of the same result
- value has terminated the outer listing of the same value.</p>
- </li>
-
- <li>
- <p>Bug fixed [<a href="http://sourceforge.net/p/freemarker/bugs/229/">229</a>]:
- If you set <code class="inline-code">incompatible_improvements</code> to
- 2.3.21 (or higher), unclosed comments (<code class="inline-code"><#--
- <em class="code-color">...</em></code>) and
- <code class="inline-code">#noparse</code>-s won't be silently closed at the
- end of template anymore, but cause a parsing error
- instead.</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_172">Changes on the Java side</h2>
-
-
- <ul>
- <li>
- <p>Added new <code class="inline-code">Configuration</code> constructor,
- <code class="inline-code">Configuration(Version
- incompatibleImprovements)</code>. This deprecates the vague
- <code class="inline-code">Configuration()</code> constructor, and makes using
- <code class="inline-code">setIncompatibleImprovements(Version)</code> needless
- in most cases. See an example <a href="pgui_quickstart_createconfiguration.html">here...</a></p>
- </li>
-
- <li>
- <p>When setting the
- <code class="inline-code">incompatible_improvements</code> setting (like with
- the constructor above) to 2.3.21, two setting defaults
- change:</p>
-
- <ul>
- <li>
- <p>The default of the <code class="inline-code">object_wrapper</code>
- setting
- (<code class="inline-code">Configuration.getObjectWrapper()</code>)
- changes from
- <code class="inline-code">ObjectWrapper.DEFAULT_WRAPPER</code> to another
- almost identical <code class="inline-code">DefaultObjectWrapper</code>
- singleton, returned by <code class="inline-code">new
- DefaultObjectWrapperBuilder(Version).build()</code>. The
- new default object wrapper's "incompatible
- improvements" version is set to the same as of the
- <code class="inline-code">Configuration</code>. (See later regarding the
- 2.3.21 "incompatible improvements" of
- <code class="inline-code">BeansWrapper</code> and
- <code class="inline-code">DefaultObjectWrapper</code>). Furthermore, the
- new default object wrapper doesn't allow changing its
- settings; setter methods will throw
- <code class="inline-code">IllegalStateException</code>. (If anything tries
- to call setters on the old default in your application,
- that's a dangerous bug that won't remain hidden now. As the
- old default is a singleton too, potentially shared by
- independently developed components, most of them expects the
- out-of-the-box behavior from it (and the others are
- necessarily buggy). Also, then concurrency glitches can
- occur (and even pollute the class introspection cache)
- because the singleton is modified after publishing.)</p>
- </li>
-
- <li>
- <p>The default of the <code class="inline-code">template_loader</code>
- setting
- (<code class="inline-code">Configuration.getTemplateLoader()</code>})
- changes to <code class="inline-code">null</code>, which means that
- FreeMarker will not find any templates. Earlier the default
- was a <code class="inline-code">FileTemplateLoader</code> that used the
- current directory as the root. This was dangerous and
- fragile as you usually don't have good control over what the
- current directory will be. Luckily, the old default almost
- never looked for the templates at the right place anyway, so
- pretty much all applications had to set
- <code class="inline-code">template_loader</code>, so it's unlikely that
- changing the default breaks your application.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>New <code class="inline-code">BeansWrapper</code>,
- <code class="inline-code">DefaultObjectWrapper</code> and
- <code class="inline-code">SimpleObjectWrapper</code> constructor that takes a
- <code class="inline-code">Version</code>
- <code class="inline-code">incompatibleImprovements</code> argument. This has
- the same role as the
- <code class="inline-code">incompatible_improvements</code> setting of the
- <code class="inline-code">Configuration</code>, but it applies to the
- <code class="inline-code">ObjectWrapper</code> instead. (As
- <code class="inline-code">ObjectWrapper</code>-s are often shared among
- multiple <code class="inline-code">Configuration</code>-s, so they can't use
- that setting of the <code class="inline-code">Configuration</code>.) In new or
- actively developed projects it's recommended to use
- <code class="inline-code">Configuration.VERSION_2_3_21</code> now. The
- constructor without the <code class="inline-code">Version</code> parameter is
- now deprecated.</p>
- </li>
-
- <li>
- <p>Safer and more memory-efficient way of managing singletons
- of <code class="inline-code">DefaultObjectWrapper</code>-s and
- <code class="inline-code">BeansWrapper</code>-s that are possibly shared by
- independently developed subsystems:</p>
-
- <ul>
- <li>
- <p>Instead of <code class="inline-code">new
- DefaultObjectWrapper(<em class="code-color">...</em>)</code>
- and <code class="inline-code">new
- BeansWrapper(<em class="code-color">...</em>)</code>, from
- now on you should use <code class="inline-code">new
- DefaultObjectWrapperBuilder(version).build()</code> and
- <code class="inline-code">new BeansWrapperBuilder(version).build()</code>.
- (The builder objects have properties (configuration
- settings) like <code class="inline-code">BeansWrapper</code> has, which
- specify the properties of the objects created.) The created
- objects are <em>singletons</em> (VM-wide, or at
- least Web-Application-wide) and read-only (means,
- non-configurable, hence safe to share). The main benefit of
- using these factories instead of creating new instances is
- that it allows FreeMarker to share the class introspection
- caches (an internal part of
- <code class="inline-code">BeansWrapper</code>-s/<code class="inline-code">DefaultObjectWrapper</code>-s
- that is expensive to populate) among the returned instances.
- This allow sharing the caches (and the object wrappers)
- between components that aren't aware of each other and use
- FreeMarker internally.</p>
- </li>
-
- <li>
- <p>Deprecated the static fields
- <code class="inline-code">ObjectWrapper.DEFAULT_WRAPPER</code>,
- <code class="inline-code">BEANS_WRAPPER</code> and
- <code class="inline-code">SIMPLE_WRAPPER</code>, because these
- <code class="inline-code">ObjectWrapper</code>-s are configurable (not
- read-only), and thus dangerous to use as singletons (a badly
- behaving 3rd party component can mess them up). Use the
- factories described above instead. They are also more
- flexible, as you can specify the desired
- incompatible-improvements version for them and various other
- <code class="inline-code">BeansWrapper</code> settings.</p>
- </li>
-
- <li>
- <p>Deprecated all <code class="inline-code">SimpleHash</code>,
- <code class="inline-code">SimpleCollection</code> and
- <code class="inline-code">SimpleSequence</code> constructors that didn't
- take an <code class="inline-code">ObjectWrapper</code> argument, as they
- have usually used
- <code class="inline-code">ObjectWrapper.DEFAULT_WRAPPER</code> as the
- default, which itself is deprecated.</p>
- </li>
-
- <li>
- <p><code class="inline-code">BeansWrapper</code>,
- <code class="inline-code">DefaultObjectWrapper</code> and
- <code class="inline-code">SimpleObjectWrapper</code> now implements the
- <code class="inline-code">freemarker.template.utility.WriteProtectable</code>
- interface with which the configuration properties of the
- object wrapper can be set permanently to read-only by
- calling <code class="inline-code">writeProtect()</code>. An attempt to
- call a setter on a such <code class="inline-code">ObjectWrapper</code>
- will immediately cause
- <code class="inline-code">IllegalStateException</code>. (This is what's
- used for the singletons returned by the
- <code class="inline-code">getInstance</code> methods too; see
- earlier).</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>The value of the <code class="inline-code">time_zone</code> setting,
- when you specify it with a <code class="inline-code">String</code> (in a
- <code class="inline-code">java.util.Properties</code> object, or via
- <code class="inline-code"><#setting
- <em class="code-color">...</em>></code>) can now be
- <code class="inline-code">"JVM default"</code> to use the JVM default time
- zone. The JVM default is the default value of that setting
- anyway, but now you can state this explicitly, or restore this
- value if it was overridden earlier.</p>
- </li>
-
- <li>
- <p>Added new configuration setting,
- <code class="inline-code">sql_date_and_time_time_zone</code>
- (<code class="inline-code">Configurable.setSQLDateAndTimeTimeZone(TimeZone)</code>).
- When this is set to non-<code class="inline-code">null</code>, the time zone
- used when dealing with <code class="inline-code">java.sql.Date</code> and
- <code class="inline-code">java.sql.Time</code> values will be this time zone
- instead of the value of the <code class="inline-code">time_zone</code>
- FreeMarker configuration setting. This is useful because JDBC
- will, usually, construct the Java <code class="inline-code">Date</code>
- objects so that they will show the year-month-day and
- hour-minute-seconds values from the database "as
- is" if you render them using the JVM default time zone.
- As time zone conversions for SQL date-only and SQL time-only
- values doesn't make much sense (unlike for SQL timestamps), you
- should certainly set this setting to the JVM default time zone
- (<code class="inline-code">TimeZone.getDefault()</code>, or if you configure
- FreeMarker via <code class="inline-code">java.util.Properties</code>, as
- property value "JVM default"). The default value is
- <code class="inline-code">null</code> for backward compatibility. For more
- details see the JavaDoc of
- <code class="inline-code">Configurable.setSQLDateAndTimeTimeZone(TimeZone)</code>.</p>
- </li>
-
- <li>
- <p>When configuring FreeMarker with
- <code class="inline-code">java.util.Properties</code> (typically, when the
- configuration is stored in a <code class="inline-code">.properties</code>
- file), for the settings where you could specify a fully
- qualified class name (most notably for the
- <code class="inline-code">object_wrapper</code> setting) now you can also
- specify constructor arguments and JavaBean property assignments.
- For example, now you can write
- <code class="inline-code">object_wrapper=com.example.MyObjectWrapper(1, 2,
- exposeFields=true, cacheSize=5000)</code>that's nearly
- equivalent with this Java code: <code class="inline-code">obj = new
- com.example.MyObjectWrapper(1, 2); obj.setExposeFields(true);
- obj.setCacheSize(5000); object_wrapper = obj;</code>. If you
- are using this new syntax (i.e., if you have parentheses after
- the class name, even if they are empty), and there's a builder
- class for the requested class, that will be automatically used.
- For example,
- <code class="inline-code">object_wrapper=DefaultObjectWrapper(2.3.21)</code>
- will create a <code class="inline-code">DefaultObjectWrapperBuilder</code> to
- build the final instance, thus the object wrapper will be a
- singleton instead of a new instance. The new syntax will also
- look for a public static <code class="inline-code">INSTANCE</code> field if
- there are 0 arguments and property assignments. For more details
- see the Java API documentation of
- <code class="inline-code">Configuration.setSetting</code>.</p>
- </li>
-
- <li>
- <p>Template not found exceptions now explain that the
- template path is interpreted by a template loader, and show the
- <code class="inline-code">toString</code> of the
- <code class="inline-code">TemplateLoader</code>. The out-of-the-box
- <code class="inline-code">TemplateLoader</code> implementations now have an
- overridden <code class="inline-code">toString</code> to show the actual base
- directory and such details. Custom
- <code class="inline-code">TemplateLoader</code> implementations are encouraged
- to override <code class="inline-code">toString</code>.</p>
- </li>
-
- <li>
- <p>Added
- <code class="inline-code">Configuration.setSharedVariables(Map/*<String,
- Object>*/)</code> for setting the shared variables from
- Spring IoC and other IoC solutions. The already existing
- <code class="inline-code">Configuration.setSharedVariable(String,
- Object)</code> isn't a JavaBean property so it was hard to
- use for that. Furthermore, the order in which
- <code class="inline-code">Configuration.setObjectWrapper</code> and
- <code class="inline-code">Configuration.setSharedVariables</code> are called
- doesn't mater (unlike in the case of
- <code class="inline-code">Configuration.setSharedVariable</code>), which is
- essential in most IoC solutions.</p>
- </li>
-
- <li>
- <p>Mostly concerning tool (like IDE plugin) authors:</p>
-
- <ul>
- <li>
- <p><code class="inline-code">ParseException</code>-s now also store the
- end-location of the error, not just its start-location. This
- is useful if you want to underline the error in the source
- code, not just point at it.</p>
- </li>
-
- <li>
- <p><code class="inline-code">Configuration.getSupportedBuiltInDirectiveNames()</code>
- can be used to return the names of directives supported by
- FreeMarker.</p>
- </li>
-
- <li>
- <p><code class="inline-code">TemplateExceptions</code> now expose the
- position of the error (template name, line, column, end
- line, end column) similarly to
- <code class="inline-code">ParseException</code>-s. Where applicable, they
- also expose the blamed expression in its canonical FTL
- source form; this is mostly useful for
- <code class="inline-code">InvalidReferenceException</code>-s.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>The concurrent performance of overloaded method lookups
- (from the cache) was improved under Java 5 and later.</p>
- </li>
-
- <li>
- <p>The <code class="inline-code">Version</code> instances that are
- "incompatible improvements" break points are now
- available via constants like:
- <code class="inline-code">Configuration.VERSION_2_3_21</code>.</p>
- </li>
-
- <li>
- <p>From now on, if you try to set the "incompatible
- improvements" to greater than the current FreeMarker
- version, or less than 2.3.0, an
- <code class="inline-code">IllegalArgumentException</code> will be thrown.
- Thus, <code class="inline-code">new
- Configuration(<em class="code-color">someVersion</em>)</code>
- not only activates the fixes up to that version, but ensures
- that the application will not run in an environment with an
- older FreeMarker version. (On an older FreeMarker version the
- improvements that you have requested aren't implemented yet, so
- you should get an exception.)</p>
- </li>
-
- <li>
- <p>Added new configuration setting,
- <code class="inline-code">show_error_tips</code>, defaults to
- <code class="inline-code">true</code>. Sets if tips should be shown in error
- messages of errors arising during template processing.</p>
- </li>
-
- <li>
- <p>Instead of overriding
- <code class="inline-code">BeansWrapper.finetuneMethodAppearance</code> (now
- deprecated), now you can use
- <code class="inline-code">BeansWrapper.setMethodAppearanceFineTuner(MethodAppearanceFineTuner)</code>,
- so you don't need to extend the object wrapper class to
- customize this aspect.</p>
- </li>
-
- <li>
- <p>Added
- <code class="inline-code">Configuration.getCoreDirecticeNames()</code> which
- returns the names of all directives that are provided by
- FreeMarker. This can useful for IDE-s.</p>
- </li>
-
- <li>
- <p><code class="inline-code">template_loader</code> was added as possible
- configuration setting <code class="inline-code">Properties</code> key.</p>
- </li>
-
- <li>
- <p>The standard <code class="inline-code">CacheStorage</code>
- implementations now have a <code class="inline-code">getSize()</code> method
- for monitoring the cache size.
- <code class="inline-code">MruCacheStorage</code> also has
- <code class="inline-code">getSoftSize()</code> and
- <code class="inline-code">getStrongSize()</code>.</p>
- </li>
-
- <li>
- <p>Various smaller improvements in configuration setting
- errors messages.</p>
- </li>
-
- <li>
- <p>With incompatible improvements 2.3.21 only: Empty ranges
- return <code class="inline-code">Constants.EMPTY_SEQUENCE</code> instead of an
- empty <code class="inline-code">SimpleSequence</code>. This is in theory
- backward compatible, as the API only promises to give something
- that implements <code class="inline-code">TemplateSequenceModel</code>.</p>
- </li>
-
- <li>
- <p>FreeMarker now requires Java version has changed from 1.2
- to 1.4.</p>
- </li>
-
- <li>
- <p>Bugs fixed and improvements in overloaded method
- selection/invocation, but only if you create the
- <code class="inline-code">BeansWrapper</code>/<code class="inline-code">DefaultObjectWrapper</code>
- with constructor parameter
- <code class="inline-code">Configuration.VERSION_2_3_21</code> (or if you are
- using <code class="inline-code">Properties</code> to configure FreeMarker, you
- can do that like
- <code class="inline-code">object_wrapper=BeansWrapper(2.3.21)</code>), or if
- you have a <code class="inline-code">Configuration</code> with similar
- <code class="inline-code">incompatible_improvements</code> 2.3.21
- <em>and</em> you leave the
- <code class="inline-code">object_wrapper</code> setting on its default value.
- There's a little chance that because of these changes, a
- different overloaded method will be chosen than before, or even
- that ambiguity errors will arise where earlier they didn't
- (although the opposite is far more frequent), hence the fixes
- aren't automatically activated. But the fix mostly only effect
- calls that were failing or have chosen then wrong method
- earlier, so it's recommended to activate it for projects that
- are still actively developed. This fix includes numerous
- changes:</p>
-
- <ul>
- <li>
- <p>Earlier, <code class="inline-code">null</code> argument values has
- only matched overloaded methods where the corresponding
- parameter had <code class="inline-code">Object</code> type, not a subclass
- of it. That's clearly a bug. Now it considers all overloads
- where the parameter type is non-primitive, and just like the
- Java language, it choses the one with the most specific type
- among them. This is the most important fix, and also the
- most risky one regarding backward-compatibility. Like if you
- have <code class="inline-code">m(Object o)</code> and <code class="inline-code">m(String
- s)</code> in a Java class, earlier for a
- <code class="inline-code">m(null)</code> call in the template it has
- chosen <code class="inline-code">m(Object o)</code>, but now it will
- choose <code class="inline-code">m(String s)</code> instead (because
- <code class="inline-code">String</code> is also
- <code class="inline-code">null</code>-able and is more specific than
- <code class="inline-code">Object</code>). Furthermore, if you also had
- <code class="inline-code">m(File f)</code> in the same class, now it will
- cause an ambiguity exception, since the specificity of
- <code class="inline-code">File</code> and <code class="inline-code">String</code> can't
- be compared (same rule as under Java language), while
- earlier that wasn't a problem as only <code class="inline-code">m(Object
- o)</code> was seen as applicable.</p>
- </li>
-
- <li>
- <p>The behavior of numbers with overloaded method
- selection was heavily reworked:</p>
-
- <ul>
- <li>
- <p>If possible, it now always choses the overload
- where overflow and truncation to integer (like 1.5 to 1)
- is avoided. Among the methods where no such critical
- loss occurs, it choses the overload with the least risk
- of precision loss (unless other conditions with higher
- priority suggest otherwise). Earlier, the method
- selection was prone to do choices that led to overflow
- or precision loss, especially when the parameter was a
- literal with decimals.</p>
- </li>
-
- <li>
- <p>Overloaded method call can now convert to
- non-primitive numerical types, like a
- <code class="inline-code">Byte</code> or <code class="inline-code">byte</code> value
- is automatically converted to <code class="inline-code">Integer</code>
- if the parameter type is <code class="inline-code">Integer</code>.
- (This has always worked for non-overloaded methods.)
- Earlier where such conversion was needed, the method
- wasn't seen seen applicable.</p>
- </li>
-
- <li>
- <p>Method selection is now not only based on the type
- of the wrapped number, but also on its value. For
- example, a <code class="inline-code">Long</code> with value
- <code class="inline-code">1</code> is now seen as compatible with a
- method with parameter type <code class="inline-code">int</code> or
- <code class="inline-code">short</code> or <code class="inline-code">byte</code>, as
- <code class="inline-code">1</code> can be stored in those without
- loss. This is important as unlike in Java language, in
- FTL you doesn't have strict control over the numerical
- types (the type of the wrapped number, actually), as FTL
- has no type declarations. (If multiple compatible
- methods are available, it will still try to chose the
- one with the same or bigger numerical type.)</p>
- </li>
-
- <li>
- <p>Conversion from/to <code class="inline-code">BigInteger</code>
- is now supported.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Method choice ambiguity errors now occur much less
- often. Ambiguities was and are resolved by selecting the
- compatible methods then choosing the one with the most
- specific parameter types among them. The changes are:</p>
-
- <ul>
- <li>
- <p>When comparing the overall specificity of two
- parameter lists: Earlier the parameter list seen as more
- specific was the one that had some parameters that won
- in specificity, and if both had such parameters then it
- was an ambiguity. Now it's enough if a method has more
- such parameters where it's a better match than the other
- has, or if the two methods are still equal, if it has
- the first better matching parameter. This can lead to
- choices that seem arbitrary (but are still
- deterministic), but as there's no automated way of
- discovering method selection ambiguities in templates
- (unlike in Java source code, where they will be detected
- during compilation), especially as overloaded selection
- has to rely on the <em>runtime</em> type of
- the values which even make proper testing hard, this was
- considered to be a better compromise than throwing an
- exception whenever the choice of the method is not
- obvious. Also note that in fact this mechanism is more
- complicated than just counting the "winner"
- parameter positions for each methods, as certain kind of
- wins are stronger than any number of the others: wins
- where the other possibility is risking of substantial
- mantissa precision loss are the strongest (like dropping
- decimals versus not to), wins where the primitive type
- wins over the boxed class is the weakest (like
- <code class="inline-code">int</code> versus
- <code class="inline-code">Integer</code>), subclassing wins (like
- <code class="inline-code">String</code> versus
- <code class="inline-code">Object</code>) are between these two.</p>
- </li>
-
- <li>
- <p>When comparing the specificity of two parameters
- types at the same parameter position: The algorithm now
- considers a primitive type as more specific that its
- corresponding boxing class (like <code class="inline-code">int</code>
- is considered to be more specific than
- <code class="inline-code">Integer</code>).</p>
- </li>
-
- <li>
- <p>There was a bug with overloaded varargs methods of
- different parameter counts, where sometimes the last
- parameters of the compared methods was ignored, which is
- taking away a potential deciding factor and thus can
- lead to ambiguity error. Whether this happened depends
- on the order in which the Java reflection API has
- returned the methods, which is undocumented and known to
- change at least after some Java updates, breaking the
- application.</p>
- </li>
-
- <li>
- <p>When comparing the specificity of two array types,
- until now they were seen as equal. Now the component
- types are compared, and then that with the less specific
- component type is preferred. For example, among
- <code class="inline-code">f(String[])</code> and
- <code class="inline-code">f(Object[])</code>, the last will always
- win. This might sounds controversial, but as we can't
- efficiently tell the common type of all the items in a
- sequence or <code class="inline-code">List</code>, an so we don't know
- if both arrays are indeed valid targets, we go for the
- safest choice.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>FTL sequence values (like Java
- <code class="inline-code">List</code>-s or FTL
- <code class="inline-code">[<em class="code-color">x</em>,
- <em class="code-color">y</em>,
- <em class="code-color">...</em>]</code> constants) were
- not seen as applicable to a parameter with array type if
- there were multiple overloaded methods with the same number
- of parameters but with different types on the position of
- the array parameter. That is, if you had
- <code class="inline-code">f(String[])</code> and
- <code class="inline-code">f(String)</code> in Java, then
- <code class="inline-code">f(['foo', 'bar'])</code> in the template
- reported no compatible overloads. Now it will choose
- <code class="inline-code">f(String[])</code>. Note that if there's also an
- <code class="inline-code">f(List)</code> or even an
- <code class="inline-code">f(Collection)</code>, it will prefer those over
- arrays. (For consistency, this conversion will work even if
- the argument is a <code class="inline-code">List</code> that come directly
- from Java (as opposed to be created inside FTL), i.e., when
- it was wrapped then unwrapped to the original
- <code class="inline-code">List</code> object.) For a multidimensional
- array parameter type, this conversion works recursively, so
- you can pass in a sequence-of-sequences as the
- argument.</p>
- </li>
-
- <li>
- <p>FTL sequence values that wrapped a Java array (when
- FreeMarker was also aware of that via
- <code class="inline-code">AdapterTemplateModel</code> or
- <code class="inline-code">WrapperTemplateModel</code>) were not seen as
- applicable to a parameter with <code class="inline-code">List</code> type
- if there were multiple overloaded methods with the same
- number of parameters but with different types on the
- position of the array parameter. So this is pretty much like
- the issue described in the previous point, but for array to
- <code class="inline-code">List</code> conversion. The array to
- <code class="inline-code">List</code> conversion will be avoided if
- possible, but it will be attempted if there's no other
- alternative. Note that unlike with <code class="inline-code">List</code>
- to array conversions, here FreeMarker can't cope with
- multi-dimensional lists, that is, an array-of-arrays won't
- be converted to a
- <code class="inline-code">List</code>-of-<code class="inline-code">List</code>-s.</p>
- </li>
-
- <li>
- <p>FTL string to Java
- <code class="inline-code">char</code>/<code class="inline-code">Character</code>
- conversion now works for overloaded method parameters;
- earlier it has worked for non-overloaded methods only. If
- the string length is 1, it will be seen as compatible with
- parameters with <code class="inline-code">char</code> or
- <code class="inline-code">Character</code> type.</p>
- </li>
-
- <li>
- <p>Decreased the chance of choosing the wrong target Java
- type when unwrapping multi-typed FTL values: When unwrapping
- a parameter value that implements multiple FTL types (e.g.
- string and hash) but doesn't implement
- <code class="inline-code">AdapterTemplateModel</code> or
- <code class="inline-code">WrapperTemplateModel</code>, a decision has to
- be made if to what Java type the value should be unwrapped
- to (e.g. to <code class="inline-code">String</code> or to
- <code class="inline-code">Map</code>). In earlier versions that decision
- was made based on the most specific common super type of the
- parameters types of the given parameter position. However,
- it's quite common that the common super type is too generic,
- usually <code class="inline-code">Object</code>. Now
- <code class="inline-code">BeansWrapper</code> stores "type
- flags" for each parameter position of overloaded
- methods, from which it can tell whether a potential target
- Java type occurs in any of the overloads on the given
- parameter position.</p>
- </li>
-
- <li>
- <p>In many cases, less specific hint class was used for
- unwrapping than that was possible within the limitations of
- the applied hint generation algorithm. (The unwrapping hint
- has influence when there's an ambiguity regarding how to
- create a Java object form an FTL value. In the vast majority
- of the cases, a too generic hint has no effect.) (This is a
- highly technical topic. The way it works is that a single
- common unwrapping hint class is chosen for a given argument
- position shared by the overloads that has the same number of
- parameters, and that hint class has to be as specific as
- possible while it must fit all those parameter types. The
- issue with the too generic hints had several instances: (a)
- When the most specific common class/interface of two
- same-position parameter types was searched, if there was
- multiple common classes/interfaces that had no relationship
- (this is always at most one class and one or more unrelated
- interfaces), due to the ambiguity it has felt back to using
- <code class="inline-code">Object</code> as the unwrapping hint. Now if
- there's a non-<code class="inline-code">Object</code> class among them in
- such case, it will be chosen as the hint (i.e., we ignore
- the common interfaces). Otherwise if only a single interface
- remains by removing <code class="inline-code">Cloneable</code>,
- <code class="inline-code">Serializable</code>, and
- <code class="inline-code">Comparable</code> (in that order), that will be
- chosen. Only then it falls back to
- <code class="inline-code">Object</code>. (b) The common most specific
- class of a primitive type and the corresponding boxing class
- was sometimes <code class="inline-code">Object</code> instead of the
- boxing class. This has depended on Java's internal ordering
- of the methods, and so were quite unpredictable, like the
- result could change after upgrading Java under the
- application. (c) The common superclass of a numerical
- primitive value and a numerical non-primitive value was
- always <code class="inline-code">Object</code>, now if they are a
- primitive-boxing class pair, then it's the boxing class,
- otherwise it's <code class="inline-code">Number</code>. (d) If the varags
- parameter position was not the same in all the overloaded
- varargs methods, sometimes some varargs arguments where
- unwrapped with too generic hints. When this happened was
- unpredictable as it depended on Java's internal method
- ordering again.)</p>
- </li>
-
- <li>
- <p>When unwrapping method call arguments before calling a
- Java method, if the argument was an
- <code class="inline-code">AdapterTemplateModel</code> and the target
- parameter type was primitive,
- <code class="inline-code">AdapterTemplateModel.getAdaptedObject(Class
- hint)</code> has received the primitive type of the
- target parameter (like <code class="inline-code">int</code> instead of
- <code class="inline-code">Integer</code>) as the hint. This did not make
- sense since <code class="inline-code">getAdaptedObject</code> can only
- return <code class="inline-code">Object</code>-s, not primitive values.
- Yet, <code class="inline-code">BeansWrapper</code> has expected the
- returned value to be of the primitive type, otherwise it has
- discarded it. Exactly the same problem occurs with
- <code class="inline-code">WrapperTemplateModel</code>. Thus, ultimately,
- if the target parameter type was primitive and some of these
- interfaces were implemented, their return value was always
- discarded and FreeMarker has felt back to other means of
- unwrapping. Now <code class="inline-code">BeansWrapper</code> always
- passes in and expects the boxing type (like
- <code class="inline-code">Integer</code>) instead of the primitive
- type.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Bug fixed [<a href="http://sourceforge.net/p/freemarker/bugs/373/">373</a>]:
- These are three bugs actually, which can cause problems when
- FreeMarker re-loads a template because of a charset override
- with <code class="inline-code"><#ftl encoding="..."></code>: First, if
- the template loader was a <code class="inline-code">URLTemplateLoader</code>,
- when <code class="inline-code">TemplateLoader.getReader()</code> was called
- for the second time, and the <code class="inline-code">Reader</code> returned
- for the first time was already used, it might returned an empty
- or corrupted template, depending on the backing URL
- implementation. Secondly, when FreeMarer has decided if a
- template file has to be re-loaded because its encoding specified
- with <code class="inline-code"><#ftl encoding="..."></code> differs from
- the encoding used for loading the template first, it has used
- case-sensitive comparison, thus often re-loaded needlessly (like
- "UTF-8" and "utf-8" mean the same). Now this comparison is
- case-insensitive. Last not least, when retrying with the second
- charset, the <code class="inline-code">TemplateCache</code> has forgotten to
- close the first <code class="inline-code">Reader</code>, which can be a handle
- leak.</p>
- </li>
-
- <li>
- <p>Bug fixed [<a href="http://sourceforge.net/p/freemarker/bugs/411/">411</a>]:
- Invalid and redundant execution environment names from the OSGi
- bundle manifest were removed. It looks like this now:
- <code class="inline-code">Bundle-RequiredExecutionEnvironment: J2SE-1.5,
- J2SE-1.4</code>. That is, we prefer (and compile against)
- 1.5, but only require 1.4.</p>
- </li>
-
- <li>
- <p>Bug fixed [<a href="http://sourceforge.net/p/freemarker/bugs/409/">409</a>]:
- <code class="inline-code">SimpleHash</code>'s internal <code class="inline-code">Map</code>
- is concurrently modified on a non-safe way when getting length-1
- <code class="inline-code">String</code> key that exists but maps to
- <code class="inline-code">null</code>. This operation will accidentally add a
- <code class="inline-code">Character</code> key to the internal map, which is
- not a thread-safe operation.</p>
- </li>
-
- <li>
- <p>Bug fixed [<a href="http://sourceforge.net/p/freemarker/bugs/273/">273</a>]:
- <code class="inline-code">TemplateLoader</code>-s that use
- <code class="inline-code">java.net.URLConnection</code>-s should set
- <code class="inline-code">URLConnection.useCaches</code> to
- <code class="inline-code">false</code>, or else it won't detect template
- caches on certain configurations.</p>
-
- <ul>
- <li>
- <p><code class="inline-code">URLTemplateLoader</code> and its
- subclasses and
- <code class="inline-code">WebApplicationTemplateLoader</code> now has a
- <code class="inline-code">setURLConnectionUsesCaches(Boolean)</code>
- method. It's recommended to set this property to
- <code class="inline-code">false</code> from its default backward
- compatible value, <code class="inline-code">null</code>. As FreeMarker has
- its own template cache with its own update delay setting
- (<code class="inline-code">template_update_delay</code>,
- <code class="inline-code">Configuration.setTemplateUpdateDelay(int)</code>),
- it shouldn't cause performance problems. The
- <code class="inline-code">null</code> value will leave the caching of the
- <code class="inline-code">java.net.URLConnection</code> on its default,
- which is usually <code class="inline-code">true</code>.</p>
- </li>
-
- <li>
- <p>If <code class="inline-code">incompatible_improvements</code> is set
- to 2.3.21 (or higher) and templates are loaded through
- <code class="inline-code">Configuration.getTemplate</code>, and the
- <code class="inline-code">TemplateLoader</code> in use has
- <code class="inline-code">URLConnectionUsesCaches</code> left on
- <code class="inline-code">null</code>, it will behave as if it was set to
- <code class="inline-code">false</code>. Note that this
- <code class="inline-code">incompatible_improvements</code> trick only
- works if the template is loaded through
- <code class="inline-code">Configuration.getTemplate</code> (or
- <code class="inline-code">TemplateCache</code>).</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Bug fixed: When changing the properties of
- <code class="inline-code">DefaultObjectWrapper</code> or
- <code class="inline-code">BeansWrapper</code> that influenced class
- introspection results (like <code class="inline-code">exposureLevel</code> or
- <code class="inline-code">exposeFields</code>), the introspection cache wasn't
- cleared, and thus returned stale information for the classes
- that were introspected before those properties were changed. Now
- changing such properties always clears the introspection
- caches.</p>
- </li>
-
- <li>
- <p>Bug fixed: Constants used for empty sequence, empty hash,
- empty collection and empty iterator weren't
- <code class="inline-code">Serializable</code>.</p>
- </li>
-
- <li>
- <p>Bug fixed [<a href="http://sourceforge.net/p/freemarker/bugs/311/">300</a>]:
- Logger class availability check was incorrect in that it has
- checked the availability of logger libraries with the thread
- context class loader, then later it tried to link to them with
- the defining class loader of the FreeMarker classes. With some
- class loader setups (notably under Netbeans sometimes) this led
- to <code class="inline-code">ClassDefNotFoundError</code>-s that made
- FreeMarker unusable. (The check itself was also not very
- durable, as it didn't expected <code class="inline-code">LinakeError</code>-s,
- only <code class="inline-code">ClassNotFoundException</code>.)</p>
- </li>
-
- <li>
- <p>Bug fixed: <code class="inline-code">ClassUtil.forName</code>, used
- inside FreeMarker everywhere to resolve class names to classes,
- if the thread context class loader is <code class="inline-code">null</code>,
- no longer tries to load with the bootstrap class loader before
- loading with the defining class loader of FreeMarker.</p>
- </li>
-
- <li>
- <p>Bug fixed [<a href="http://sourceforge.net/p/freemarker/bugs/311/">311</a>]:
- <code class="inline-code">TemplateBooleanModel.TRUE</code> and
- <code class="inline-code">FALSE</code> are now serializable</p>
- </li>
-
- <li>
- <p>Bug fixed: Various issues in <code class="inline-code">Version</code>
- class, such as wrong <code class="inline-code">hashCode</code>, possible
- concurrency glitches, and acceptance of some malformed version
- strings.</p>
- </li>
-
- <li>
- <p>Bug fixed [<a href="https://sourceforge.net/p/freemarker/bugs/414/">414</a>]:
- Eclipse debug mode running was suspended during FreeMarker
- static initialization on the JRebel availability checked if
- JRebel wasn't available.</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_173">Other changes</h2>
-
-
- <ul>
- <li>
- <p>The license has changed from our proprietary BSD-Style
- license to the well know "Apache License, Version 2.0".
- Furthermore, the copyright owner has changed from "Visigoth
- Software Society" (which was founded by Jonathan Revusky) to the
- three main FreeMarker 2 developers/contributors, "Attila
- Szegedi, Daniel Dekany, and Jonathan Revusky". See the <a href="app_license.html">new license here</a>.</p>
- </li>
-
- <li>
- <p>The required minimum Java version was raised from 1.2 to
- 1.4. FreeMarker will not work on Java 1.2 or 1.3.</p>
- </li>
-
- <li>
- <p>Many smaller improvements and fixes in the Manual and API
- JavaDocs.</p>
- </li>
- </ul>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_3_22.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_20.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.
<TRUNCATED>
[38/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/eclipse-toc.xml
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/eclipse-toc.xml b/builds/2.3.26-nightly/eclipse-toc.xml
deleted file mode 100644
index a8fcc31..0000000
--- a/builds/2.3.26-nightly/eclipse-toc.xml
+++ /dev/null
@@ -1,698 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<?NLS TYPE="org.eclipse.help.toc"?>
-
-<toc label="Apache FreeMarker Manual">
-
-<topic
- label="I: Template Author's Guide"
- href="dgui.html"
- >
-<topic
- label="1: Getting Started"
- href="dgui_quickstart.html"
- >
-<topic
- label="Template + data-model = output"
- href="dgui_quickstart_basics.html"
- ></topic>
-<topic
- label="The data-model at a glance"
- href="dgui_quickstart_datamodel.html"
- ></topic>
-<topic
- label="The template at a glance"
- href="dgui_quickstart_template.html"
- ></topic></topic>
-<topic
- label="2: Values, Types"
- href="dgui_datamodel.html"
- >
-<topic
- label="Basics"
- href="dgui_datamodel_basics.html"
- ></topic>
-<topic
- label="The types"
- href="dgui_datamodel_types.html"
- ></topic></topic>
-<topic
- label="3: The Template"
- href="dgui_template.html"
- >
-<topic
- label="Overall structure"
- href="dgui_template_overallstructure.html"
- ></topic>
-<topic
- label="Directives"
- href="dgui_template_directives.html"
- ></topic>
-<topic
- label="Expressions"
- href="dgui_template_exp.html"
- ></topic>
-<topic
- label="Interpolations"
- href="dgui_template_valueinsertion.html"
- ></topic></topic>
-<topic
- label="4: Miscellaneous"
- href="dgui_misc.html"
- >
-<topic
- label="Defining your own directives"
- href="dgui_misc_userdefdir.html"
- ></topic>
-<topic
- label="Defining variables in the template"
- href="dgui_misc_var.html"
- ></topic>
-<topic
- label="Namespaces"
- href="dgui_misc_namespace.html"
- ></topic>
-<topic
- label="Auto-escaping and output formats"
- href="dgui_misc_autoescaping.html"
- ></topic>
-<topic
- label="White-space handling"
- href="dgui_misc_whitespace.html"
- ></topic>
-<topic
- label="Alternative (square bracket) syntax"
- href="dgui_misc_alternativesyntax.html"
- ></topic></topic></topic>
-<topic
- label="II: Programmer's Guide"
- href="pgui.html"
- >
-<topic
- label="1: Getting Started"
- href="pgui_quickstart.html"
- >
-<topic
- label="Create a configuration instance"
- href="pgui_quickstart_createconfiguration.html"
- ></topic>
-<topic
- label="Create a data-model"
- href="pgui_quickstart_createdatamodel.html"
- ></topic>
-<topic
- label="Get the template"
- href="pgui_quickstart_gettemplate.html"
- ></topic>
-<topic
- label="Merging the template with the data-model"
- href="pgui_quickstart_merge.html"
- ></topic>
-<topic
- label="Putting all together"
- href="pgui_quickstart_all.html"
- ></topic></topic>
-<topic
- label="2: The Data Model"
- href="pgui_datamodel.html"
- >
-<topic
- label="Basics"
- href="pgui_datamodel_basics.html"
- ></topic>
-<topic
- label="Scalars"
- href="pgui_datamodel_scalar.html"
- ></topic>
-<topic
- label="Containers"
- href="pgui_datamodel_parent.html"
- ></topic>
-<topic
- label="Methods"
- href="pgui_datamodel_method.html"
- ></topic>
-<topic
- label="Directives"
- href="pgui_datamodel_directive.html"
- ></topic>
-<topic
- label="Node variables"
- href="pgui_datamodel_node.html"
- ></topic>
-<topic
- label="Object wrappers"
- href="pgui_datamodel_objectWrapper.html"
- ></topic></topic>
-<topic
- label="3: The Configuration"
- href="pgui_config.html"
- >
-<topic
- label="Basics"
- href="pgui_config_basics.html"
- ></topic>
-<topic
- label="Shared variables"
- href="pgui_config_sharedvariables.html"
- ></topic>
-<topic
- label="Settings"
- href="pgui_config_settings.html"
- ></topic>
-<topic
- label="Template loading"
- href="pgui_config_templateloading.html"
- ></topic>
-<topic
- label="Error handling"
- href="pgui_config_errorhandling.html"
- ></topic>
-<topic
- label="Template configurations"
- href="pgui_config_templateconfigurations.html"
- ></topic>
-<topic
- label="Associating output formats with templates"
- href="pgui_config_outputformatsautoesc.html"
- ></topic>
-<topic
- label="Custom number and date/time formats"
- href="pgui_config_custom_formats.html"
- ></topic>
-<topic
- label="The "incompatible improvements" setting"
- href="pgui_config_incompatible_improvements.html"
- ></topic></topic>
-<topic
- label="4: Miscellaneous"
- href="pgui_misc.html"
- >
-<topic
- label="Variables, scopes"
- href="pgui_misc_var.html"
- ></topic>
-<topic
- label="Charset issues"
- href="pgui_misc_charset.html"
- ></topic>
-<topic
- label="Multithreading"
- href="pgui_misc_multithreading.html"
- ></topic>
-<topic
- label="Bean wrapper"
- href="pgui_misc_beanwrapper.html"
- ></topic>
-<topic
- label="Logging"
- href="pgui_misc_logging.html"
- ></topic>
-<topic
- label="Using FreeMarker with servlets"
- href="pgui_misc_servlet.html"
- ></topic>
-<topic
- label="Configuring security policy for FreeMarker"
- href="pgui_misc_secureenv.html"
- ></topic>
-<topic
- label="Legacy XML wrapper implementation"
- href="pgui_misc_xml_legacy.html"
- ></topic>
-<topic
- label="Using FreeMarker with Ant"
- href="pgui_misc_ant.html"
- ></topic>
-<topic
- label="Jython wrapper"
- href="pgui_misc_jythonwrapper.html"
- ></topic></topic></topic>
-<topic
- label="III: Template Language Reference"
- href="ref.html"
- >
-<topic
- label="1: Built-in Reference"
- href="ref_builtins.html"
- >
-<topic
- label="Alphabetical index"
- href="ref_builtins_alphaidx.html"
- ></topic>
-<topic
- label="Built-ins for strings"
- href="ref_builtins_string.html"
- ></topic>
-<topic
- label="Built-ins for numbers"
- href="ref_builtins_number.html"
- ></topic>
-<topic
- label="Built-ins for date/time/date-time values"
- href="ref_builtins_date.html"
- ></topic>
-<topic
- label="Built-ins for booleans"
- href="ref_builtins_boolean.html"
- ></topic>
-<topic
- label="Built-ins for sequences"
- href="ref_builtins_sequence.html"
- ></topic>
-<topic
- label="Built-ins for hashes"
- href="ref_builtins_hash.html"
- ></topic>
-<topic
- label="Built-ins for nodes (for XML)"
- href="ref_builtins_node.html"
- ></topic>
-<topic
- label="Loop variable built-ins"
- href="ref_builtins_loop_var.html"
- ></topic>
-<topic
- label="Type independent built-ins"
- href="ref_builtins_type_independent.html"
- ></topic>
-<topic
- label="Seldom used and expert built-ins"
- href="ref_builtins_expert.html"
- ></topic></topic>
-<topic
- label="2: Directive Reference"
- href="ref_directives.html"
- >
-<topic
- label="Alphabetical index"
- href="ref_directive_alphaidx.html"
- ></topic>
-<topic
- label="assign"
- href="ref_directive_assign.html"
- ></topic>
-<topic
- label="attempt, recover"
- href="ref_directive_attempt.html"
- ></topic>
-<topic
- label="autoesc"
- href="ref_directive_autoesc.html"
- ></topic>
-<topic
- label="compress"
- href="ref_directive_compress.html"
- ></topic>
-<topic
- label="escape, noescape (deprecated)"
- href="ref_directive_escape.html"
- ></topic>
-<topic
- label="flush"
- href="ref_directive_flush.html"
- ></topic>
-<topic
- label="ftl"
- href="ref_directive_ftl.html"
- ></topic>
-<topic
- label="function, return"
- href="ref_directive_function.html"
- ></topic>
-<topic
- label="global"
- href="ref_directive_global.html"
- ></topic>
-<topic
- label="if, else, elseif"
- href="ref_directive_if.html"
- ></topic>
-<topic
- label="import"
- href="ref_directive_import.html"
- ></topic>
-<topic
- label="include"
- href="ref_directive_include.html"
- ></topic>
-<topic
- label="list, else, items, sep, break"
- href="ref_directive_list.html"
- ></topic>
-<topic
- label="local"
- href="ref_directive_local.html"
- ></topic>
-<topic
- label="macro, nested, return"
- href="ref_directive_macro.html"
- ></topic>
-<topic
- label="noautoesc"
- href="ref_directive_noautoesc.html"
- ></topic>
-<topic
- label="noparse"
- href="ref_directive_noparse.html"
- ></topic>
-<topic
- label="nt"
- href="ref_directive_nt.html"
- ></topic>
-<topic
- label="outputformat"
- href="ref_directive_outputformat.html"
- ></topic>
-<topic
- label="setting"
- href="ref_directive_setting.html"
- ></topic>
-<topic
- label="stop"
- href="ref_directive_stop.html"
- ></topic>
-<topic
- label="switch, case, default, break"
- href="ref_directive_switch.html"
- ></topic>
-<topic
- label="t, lt, rt"
- href="ref_directive_t.html"
- ></topic>
-<topic
- label="User-defined directive (<@...>)"
- href="ref_directive_userDefined.html"
- ></topic>
-<topic
- label="visit, recurse, fallback"
- href="ref_directive_visit.html"
- ></topic></topic>
-<topic
- label="3: Special Variable Reference"
- href="ref_specvar.html"
- ></topic>
-<topic
- label="4: Reserved names in FTL"
- href="ref_reservednames.html"
- ></topic>
-<topic
- label="5: Deprecated FTL constructs"
- href="ref_deprecated.html"
- >
-<topic
- label="List of deprecated directives"
- href="ref_depr_directive.html"
- ></topic>
-<topic
- label="List of deprecated built-ins"
- href="ref_depr_builtin.html"
- ></topic>
-<topic
- label="Old-style macro and call directives"
- href="ref_depr_oldmacro.html"
- ></topic>
-<topic
- label="Transform directive"
- href="ref_depr_transform.html"
- ></topic>
-<topic
- label="Old FTL syntax"
- href="ref_depr_oldsyntax.html"
- ></topic>
-<topic
- label="#{...}: Numerical interpolation"
- href="ref_depr_numerical_interpolation.html"
- ></topic></topic></topic>
-<topic
- label="IV: XML Processing Guide"
- href="xgui.html"
- >
-<topic
- label="Preface"
- href="xgui_preface.html"
- ></topic>
-<topic
- label="1: Exposing XML documents"
- href="xgui_expose.html"
- >
-<topic
- label="The DOM tree"
- href="xgui_expose_dom.html"
- ></topic>
-<topic
- label="Putting the XML into the data-model"
- href="xgui_expose_put.html"
- ></topic></topic>
-<topic
- label="2: Imperative XML processing"
- href="xgui_imperative.html"
- >
-<topic
- label="Basics"
- href="xgui_imperative_learn.html"
- ></topic>
-<topic
- label="Details"
- href="xgui_imperative_formal.html"
- ></topic></topic>
-<topic
- label="3: Declarative XML processing"
- href="xgui_declarative.html"
- >
-<topic
- label="Basics"
- href="xgui_declarative_basics.html"
- ></topic>
-<topic
- label="Details"
- href="xgui_declarative_details.html"
- ></topic></topic></topic>
-<topic
- label="V: Appendixes"
- href="app.html"
- >
-<topic
- label="A: FAQ"
- href="app_faq.html"
- ></topic>
-<topic
- label="B: Version history"
- href="app_versions.html"
- >
-<topic
- label="2.3.26 (incubating at Apache)"
- href="versions_2_3_26.html"
- ></topic>
-<topic
- label="2.3.25 (incubating at Apache)"
- href="versions_2_3_25.html"
- ></topic>
-<topic
- label="2.3.24 (incubating at Apache)"
- href="versions_2_3_24.html"
- ></topic>
-<topic
- label="2.3.23"
- href="versions_2_3_23.html"
- ></topic>
-<topic
- label="2.3.22"
- href="versions_2_3_22.html"
- ></topic>
-<topic
- label="2.3.21"
- href="versions_2_3_21.html"
- ></topic>
-<topic
- label="2.3.20"
- href="versions_2_3_20.html"
- ></topic>
-<topic
- label="2.3.19"
- href="versions_2_3_19.html"
- ></topic>
-<topic
- label="2.3.18"
- href="versions_2_3_18.html"
- ></topic>
-<topic
- label="2.3.17"
- href="versions_2_3_17.html"
- ></topic>
-<topic
- label="2.3.16"
- href="versions_2_3_16.html"
- ></topic>
-<topic
- label="2.3.15"
- href="versions_2_3_15.html"
- ></topic>
-<topic
- label="2.3.14"
- href="versions_2_3_14.html"
- ></topic>
-<topic
- label="2.3.13"
- href="versions_2_3_13.html"
- ></topic>
-<topic
- label="2.3.12"
- href="versions_2_3_12.html"
- ></topic>
-<topic
- label="2.3.11"
- href="versions_2_3_11.html"
- ></topic>
-<topic
- label="2.3.10"
- href="versions_2_3_10.html"
- ></topic>
-<topic
- label="2.3.9"
- href="versions_2_3_9.html"
- ></topic>
-<topic
- label="2.3.8"
- href="versions_2_3_8.html"
- ></topic>
-<topic
- label="2.3.7"
- href="versions_2_3_7.html"
- ></topic>
-<topic
- label="2.3.7 RC1"
- href="versions_2_3_7rc1.html"
- ></topic>
-<topic
- label="2.3.6"
- href="versions_2_3_6.html"
- ></topic>
-<topic
- label="2.3.5"
- href="versions_2_3_5.html"
- ></topic>
-<topic
- label="2.3.4"
- href="versions_2_3_4.html"
- ></topic>
-<topic
- label="2.3.3"
- href="versions_2_3_3.html"
- ></topic>
-<topic
- label="2.3.2"
- href="versions_2_3_2.html"
- ></topic>
-<topic
- label="2.3.1"
- href="versions_2_3_1.html"
- ></topic>
-<topic
- label="2.3"
- href="versions_2_3.html"
- ></topic>
-<topic
- label="2.2.8"
- href="versions_2_2_8.html"
- ></topic>
-<topic
- label="2.2.7"
- href="versions_2_2_7.html"
- ></topic>
-<topic
- label="2.2.6"
- href="versions_2_2_6.html"
- ></topic>
-<topic
- label="2.2.5"
- href="versions_2_2_5.html"
- ></topic>
-<topic
- label="2.2.4"
- href="versions_2_2_4.html"
- ></topic>
-<topic
- label="2.2.3"
- href="versions_2_2_3.html"
- ></topic>
-<topic
- label="2.2.2"
- href="versions_2_2_2.html"
- ></topic>
-<topic
- label="2.2.1"
- href="versions_2_2_1.html"
- ></topic>
-<topic
- label="2.2"
- href="versions_2_2.html"
- ></topic>
-<topic
- label="2.1.5"
- href="versions_2_1_5.html"
- ></topic>
-<topic
- label="2.1.4"
- href="versions_2_1_4.html"
- ></topic>
-<topic
- label="2.1.3"
- href="versions_2_1_3.html"
- ></topic>
-<topic
- label="2.1.2"
- href="versions_2_1_2.html"
- ></topic>
-<topic
- label="2.1.1"
- href="versions_2_1_1.html"
- ></topic>
-<topic
- label="2.1"
- href="versions_2_1.html"
- ></topic>
-<topic
- label="2.01"
- href="versions_2_01.html"
- ></topic>
-<topic
- label="2.0"
- href="versions_2_0.html"
- ></topic>
-<topic
- label="2.0 RC3"
- href="versions_2_0RC3.html"
- ></topic>
-<topic
- label="2.0 RC2"
- href="versions_2_0RC2.html"
- ></topic>
-<topic
- label="2.0 RC1"
- href="versions_2_0RC1.html"
- ></topic></topic>
-<topic
- label="C: Installing FreeMarker"
- href="app_install.html"
- ></topic>
-<topic
- label="D: Legal"
- href="app_legal.html"
- >
-<topic
- label="License"
- href="app_license.html"
- ></topic>
-<topic
- label="Export Control"
- href="app_eccn.html"
- ></topic></topic></topic>
-<topic
- label="Glossary"
- href="gloss.html"
- ></topic>
-<topic
- label="Alphabetical Index"
- href="alphaidx.html"
- ></topic></toc>
-
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/favicon.png
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/favicon.png b/builds/2.3.26-nightly/favicon.png
deleted file mode 100644
index ce0de20..0000000
Binary files a/builds/2.3.26-nightly/favicon.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/figures/model2sketch.png
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/figures/model2sketch.png b/builds/2.3.26-nightly/figures/model2sketch.png
deleted file mode 100644
index 93f9a6b..0000000
Binary files a/builds/2.3.26-nightly/figures/model2sketch.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/figures/overview.png
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/figures/overview.png b/builds/2.3.26-nightly/figures/overview.png
deleted file mode 100644
index b32e0bd..0000000
Binary files a/builds/2.3.26-nightly/figures/overview.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/figures/tree.png
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/figures/tree.png b/builds/2.3.26-nightly/figures/tree.png
deleted file mode 100644
index dcd9bf3..0000000
Binary files a/builds/2.3.26-nightly/figures/tree.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/gloss.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/gloss.html b/builds/2.3.26-nightly/gloss.html
deleted file mode 100644
index c9bffc2..0000000
--- a/builds/2.3.26-nightly/gloss.html
+++ /dev/null
@@ -1,770 +0,0 @@
-<!doctype html>
-<!-- Generated by FreeMarker/Docgen from DocBook -->
-<html lang="en" class="page-type-glossary">
-<head prefix="og: http://ogp.me/ns#">
-<meta charset="utf-8">
-<title>Glossary - 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="Glossary">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/gloss.html">
-<link rel="canonical" href="http://freemarker.org/docs/gloss.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="gloss.html"><span itemprop="name">Glossary</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>Glossary</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","Glossary"];</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_eccn.html"><span>Previous</span></a><a class="paging-arrow next" href="alphaidx.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-part" id="gloss" itemprop="headline">Glossary</h1>
-</div></div> <p>
-<a href="#gloss.attribute">A</a> | <a href="#gloss.boolean">B</a> | <a href="#gloss.character">C</a> | <a href="#gloss.dataModel">D</a> | <a href="#gloss.element">E</a> | <a href="#gloss.FTL">F</a> | <a href="#gloss.hashVariable">H</a> | <a href="#gloss.lineBreak">L</a> | <a href="#gloss.macroDefinitionBody">M</a> | <a href="#gloss.outputEncoding">O</a> | <a href="#gloss.parseTimeError">P</a> | <a href="#gloss.regularExpression">R</a> | <a href="#gloss.scalarVariable">S</a> | <a href="#gloss.tag">T</a> | <a href="#gloss.UCS">U</a> | <a href="#gloss.whiteSpace">W</a> | <a href="#autoid_295">X</a> </p>
-
- <dl>
-
- <dt><a name="gloss.attribute"></a>Attribute</dt>
-
-
- <dd>
- <p>In connection with <a href="#gloss.XML">XML</a> or HTML
- (or <a href="#gloss.SGML">SGML</a> in general), attributes are
- the named values associated with elements. For example, in
- <code class="inline-code"><body bgcolor=black
- text=green><em class="code-color">...</em></body></code>,
- the attributes are <code class="inline-code">bgcolor=black</code> and
- <code class="inline-code">text=green</code>. On the left side of
- <code class="inline-code">=</code> is the name of the attribute, while on the right
- side is the value of the attribute. Note that in XML, the values must
- be quoted (for example: <code class="inline-code"><body bgcolor="black"
- text='green'></code>), while in HTML it is optional for certain
- values.</p>
-
-
-
- <p>See Also
- <a href="#gloss.startTag">Start-tag</a>
- </p>
- </dd>
-
-
- <dt><a name="gloss.boolean"></a>Boolean</dt>
-
-
- <dd>
- <p>This is a variable type. A boolean variable represents a logical
- true or false (yes or no). For example, if the visitor has been logged
- in or not. There are only two possible boolean values:
- <code class="inline-code">true</code> and <code class="inline-code">false</code>. Typically, you
- will use booleans with an <code class="inline-code"><#if
- <em class="code-color">...</em>></code> directive when you want
- to display text based on some condition, say, you show a certain part
- of the page only for visitors who has logged in.</p>
-
- </dd>
-
-
- <dt><a name="gloss.character"></a>Character</dt>
-
-
- <dd>
- <p>A symbol that people use in writing. Examples of characters:
- Latin capital letter A ("A"), Latin small letter A
- ("a"), digit four ("4"), number sign
- ("#"), colon (":")</p>
-
- </dd>
-
-
- <dt><a name="gloss.charset"></a>Charset</dt>
-
-
- <dd>
- <p>A charset is a rule (algorithm) for transforming a sequence of
- <a href="#gloss.character">characters</a> (text) to a sequence
- of bits (or in practice, to a sequence of bytes). Whenever a character
- sequence is stored on a digital media, or sent through a digital
- channel (network), a charset must be applied. Examples of charsets are
- ISO-8859-1, ISO-8859-6, Shift_JIS , UTF-8.</p>
-
- <p>The capabilities of different charsers are different, that is,
- not all charsets can be used for all languages. For example ISO-8859-1
- can't represent Arabic letters, but ISO-8859-6 can, however it can't
- represent the accented letters that that ISO-8859-1 can. Most charsets
- are highly restrictive regarding the allowed characters. UTF-8 allows
- virtually all possible characters, but most text editors can't handle
- it yet (2004).</p>
-
- <p>When different software components exchange text (as the HTTP
- server and the browser, or the text editor you use for saving
- templates and FreeMarker who loads them), it's very important that
- they agree in the charset used for the binary encoding of the text. If
- they don't, then the binary data will be misinterpreted by the
- receiver (loader) component, which usually results in the distortion
- of the non-English letters.</p>
-
- </dd>
-
-
- <dt><a name="gloss.collectionVariable"></a>Collection</dt>
-
-
- <dd>
- <p>A variable that (in conjunction with the <code class="inline-code">list</code>
- directive) can spit out a series of variables.</p>
-
- </dd>
-
-
- <dt><a name="gloss.dataModel"></a>Data-model</dt>
-
-
- <dd>
- <p>Something that holds the information the template has to show
- (or use in some other ways) when the template processor assembles the
- output (e.g. a Web page). In FreeMarker this is best visualized as a
- tree.</p>
-
- </dd>
-
-
- <dt><a name="gloss.directive"></a>Directive</dt>
-
-
- <dd>
- <p>Instructions to FreeMarker used in <a href="#gloss.FTL">FTL</a> <a href="#gloss.template">templates</a>. They are invoked by <a href="#gloss.FTLTag">FTL tags</a>.</p>
-
-
-
-
-
- <p>See Also
- <a href="#gloss.predefinedDirective">Predefined directive</a>,
- <a href="#gloss.userDefinedDirective">User-defined directive</a>
- </p>
- </dd>
-
-
- <dt><a name="gloss.element"></a>Element</dt>
-
-
- <dd>
- <p>Elements are the most fundamental building pieces of <a href="#gloss.SGML">SGML</a> documents; an SGML document is
- basically a tree of elements. Example of elements used in HTML: body,
- head, title, p, h1, h2.</p>
-
- </dd>
-
-
- <dt><a name="gloss.endTag"></a>End-tag</dt>
-
-
- <dd>
- <p><a href="#gloss.tag">Tag</a>, which indicates that the
- following content is not under the element. Example:
- <code class="inline-code"></body></code>.</p>
-
-
-
- <p>See Also
- <a href="#gloss.startTag">Start-tag</a>
- </p>
- </dd>
-
-
- <dt><a name="gloss.environment"></a>Environment</dt>
-
-
- <dd>
- <p>An <code class="inline-code">Environment</code> object stores the runtime
- state of a single template <a href="#gloss.templateProcessingJob">template processing job</a>.
- That is, for each
- <code class="inline-code">Template.process(<em class="code-color">...</em>)</code>
- call, an <code class="inline-code">Environment</code> instance will be created, and
- then discarded when <code class="inline-code">process</code> returns. This object
- stores the set of temporary variables created by the template, the
- value of settings set by the template, the reference to the data-model
- root, etc. Everything that is needed to fulfill the template
- processing job.</p>
-
- </dd>
-
-
- <dt><a name="gloss.XML"></a>Extensible Markup Language</dt>
-
-
- <dd>
- <p>A subset (restricted version) of <a href="#gloss.SGML">SGML</a>. This is less powerful than SGML, but
- it easier to learn and much easier to process with programs. If you
- are an HTML author: XML documents are similar to HTML documents, but
- the XML standard doesn't specify the usable elements. XML is a much
- more general-purpose thing than HTML. For example you can use XML to
- describe Web pages (like HTML) or to describe non-visual information
- like a phone book database.</p>
-
-
-
- <p>See Also
- <a href="#gloss.SGML">Standard Generalized Markup Language</a>
- </p>
- </dd>
-
-
- <dt><a name="gloss.FTL"></a>FreeMarker Template Language</dt>
-
-
- <dd>
- <p>Simple programming language designed to write text file
- templates, especially HTML templates.</p>
-
- </dd>
-
-
- <dt><a name="autoid_293"></a>FTL</dt>
-
-
- <dd>See
- <a href="#gloss.FTL">FreeMarker Template Language</a>
- </dd>
-
-
- <dt><a name="gloss.FTLTag"></a>FTL tag</dt>
-
-
- <dd>
- <p><a href="#gloss.tag">Tag</a>-like text fragment used to
- invoke FreeMarker <a href="#gloss.directive">directives</a> in
- <a href="#gloss.FTL">FTL</a> <a href="#gloss.template">templates</a>. These are similar to HTML
- or XML tags at the first glance. The most prominent difference is that
- the tag name is started with <code class="inline-code">#</code> or
- <code class="inline-code">@</code>. Another important difference is that FTL tags do
- not use <a href="#gloss.attribute">attributes</a>, but a
- substantially different syntax to specify parameters. Examples of FTL
- tags: <code class="inline-code"><#if newUser></code>,
- <code class="inline-code"></#if></code>, <code class="inline-code"><@menuitem
- title="Projects" link="projects.html"/></code></p>
-
- </dd>
-
-
- <dt><a name="gloss.fullQualifiedName"></a>Full-qualified name</dt>
-
-
- <dd>
- <p>... of nodes (XML node or other FTL node variable): The
- full-qualified name of a node specifies not only the node name
- (<code class="inline-code"><em class="code-color">node</em>?node_name</code>), but
- also the node namespace
- (<code class="inline-code"><em class="code-color">node</em>?node_namespace</code>),
- this way it unambiguously identify a certain kind of node. The format
- of the full-qualified name is
- <code class="inline-code"><em class="code-color">nodeName</em></code> or
- <code class="inline-code"><em class="code-color">prefix</em>:<em class="code-color">nodeName</em></code>.
- The prefix is shorthand to identify the node namespace (the a node
- namespace is usually specified with a long ugly URI). In FTL, prefixes
- are associated with the node namespaces with the
- <code class="inline-code">ns_prefixes</code> parameter of <a href="ref_directive_ftl.html#ref.directive.ftl">the <code>ftl</code>
- directive</a>. In XML files, prefixes are associated with the node
- namespaces with the
- <code class="inline-code">xmlns:<em class="code-color">prefix</em></code> attributes.
- The lack of the prefix means that the node uses the default node
- namespace, if a default node namespace is defined; otherwise it means
- that the node does not belong to any node namespace. The default node
- namespace is defined in FTL by registering reserved prefix
- <code class="inline-code">D</code> with the <code class="inline-code">ns_prefixes</code> parameter
- of the <code class="inline-code">ftl</code> directive. In XML files it is defined
- with attribute <code class="inline-code">xmlns</code>.</p>
-
- <p>... of Java classes: The full-qualified name of a Java class
- contains both the class name and the name of the package the class
- belongs to. This way it unambiguously specifies the class, regardless
- of the context. An example of full-qualifed class name:
- <code class="inline-code">java.util.Map</code> (as opposed to
- <code class="inline-code">Map</code>).</p>
-
- </dd>
-
-
- <dt><a name="gloss.functionDefinitionBody"></a>Function definition body</dt>
-
-
- <dd>
- <p>The template fragment between the <code class="inline-code"><#function
- <em class="code-color">...</em>></code> and
- <code class="inline-code"></#function></code>. This template fragment will be
- executed when you call the function (for example as
- <code class="inline-code">myFuction(1, 2)</code>).</p>
-
- </dd>
-
-
- <dt><a name="gloss.hashVariable"></a>Hash</dt>
-
-
- <dd>
- <p>A variable that acts as a container that stores sub variables
- that can be retrieved via a string that is a lookup name.</p>
-
-
-
- <p>See Also
- <a href="#gloss.sequenceVariable">Sequence</a>
- </p>
- </dd>
-
-
- <dt><a name="gloss.lineBreak"></a>Line break</dt>
-
-
- <dd>
- <p>Line break is a special character (or a sequence of special
- characters) that causes a line breaking when you see the text as plain
- text (say, when you read the text with Windows notepad). Typically you
- type this character by hitting ENTER or RETURN key. The line break is
- represented with different characters on different platforms (to cause
- incompatibility and confusion...): "line feed" character
- on UNIX-es, "carriage return" character on Macintosh,
- "carriage return" + "line feed" (two
- characters!) on Windows and DOS. Note that line breaks in HTML do not
- have a visual effect when viewed in a browser; you must use markup
- such as <code class="inline-code"><BR></code> for that. This manual never
- means <code class="inline-code"><BR></code> when it says
- "line-break".</p>
-
- </dd>
-
-
- <dt><a name="gloss.macroDefinitionBody"></a>Macro definition body</dt>
-
-
- <dd>
- <p>The template fragment between the <code class="inline-code"><#macro
- <em class="code-color">...</em>></code> and
- <code class="inline-code"></#macro></code>. This template fragment will be
- executed when you call the macro (for example as
- <code class="inline-code"><@myMacro/></code>).</p>
-
- </dd>
-
-
- <dt><a name="gloss.markupOutputValue"></a>Markup output value</dt>
-
-
- <dd>
- <p>A value with FTL type "markup output". This type is
- related to <a href="dgui_misc_autoescaping.html">auto-escaping
- mechanism</a>; you can <a href="dgui_misc_autoescaping.html#dgui_misc_autoescaping_movalues">read about this type
- there</a>. But in short, this is a value that stores text that's
- already in the output markup format (like HTML, XML, RTF, etc.), and
- hence must not be auto-escaped.</p>
-
- </dd>
-
-
- <dt><a name="gloss.methodVariable"></a>Method</dt>
-
-
- <dd>
- <p>A variable that calculates something based on parameters you
- give, and returns the result.</p>
-
- </dd>
-
-
- <dt><a name="gloss.MVC"></a>MVC pattern</dt>
-
-
- <dd>
- <p>MVC stands for Model View Controller. It's a design pattern
- started his life in the 70's as a framework developer by Trygve
- Reenskaug for Smalltalk, and was used primary for for UI-s (user
- interfaces). MVC considers three roles:</p>
-
- <ul>
- <li>
- Model: Model represents application (domain) specific
- information in a non-visual way. For example, an array of product
- objects in the memory of your computer is the part of the
- model.
- </li>
-
- <li>
- View: View displays the model and provides UI. For example,
- it's the task of the view component to render the array of product
- objects to a HTML page.
- </li>
-
- <li>
- Controller: The controller handles user input, modifies the
- model, and ensures that the view is updated when needed. For
- example it is the task of controller to take the incoming HTTP
- requests, parse the received parameters (forms), dispatch the
- requests to the proper business logic object, and chose the right
- template for the HTTP response.
- </li>
- </ul>
-
- <p>The most important thing for us when applying MVC for Web
- applications is the separation of View from the other two roles. This
- allows the separation of designers (HTML authors) from programmers.
- Designers deal with the visual aspects, programmers deal with the
- application logic and other technical issues; everybody works on what
- he is good at. Designers and programmers are less dependent on each
- other. Designers can change the appearance without programmers having
- to change or recompile the program.</p>
-
- <p>For more information I recommend reading <a href="http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/web-tier/web-tier5.html">chapter
- 4.4</a> of Designing Enterprise Applications with the J2EE Platform
- blueprint.</p>
-
- </dd>
-
-
- <dt><a name="gloss.outputEncoding"></a>Output encoding</dt>
-
-
- <dd>
- <p>Means output <a href="#gloss.charset">charset</a>. In
- the Java world the term "encoding" is commonly (mis)used
- as a synonym to charset.</p>
-
- </dd>
-
-
- <dt><a name="gloss.parseTimeError"></a>Parse-time error</dt>
-
-
- <dd>
- <p>An error occurring during the template parsing phase, as opposed
- to the later template execution phase (see more explanation below).
- The presence of a such error prevents the execution of the whole
- template, even if the execution wouldn't use the part where the error
- is. This is seen as an advantage, as it helps early (before
- deployment, ideally in-editor) error detection.</p>
-
- <p>A FreeMarker template is processed in two phases. First the
- <em>whole</em> template is analyzed syntactically, which
- is called parsing. The result of the parsing is a
- <code class="inline-code">Template</code> Java object, which is usually cached for
- fast reuse. Later, the already parsed template can be executed for
- unlimited times to produce output based on the content of a <a href="#gloss.dataModel">data-model</a>. Errors occurring during
- the parsing are called parse-time errors.</p>
-
- </dd>
-
-
- <dt><a name="gloss.predefinedDirective"></a>Predefined directive</dt>
-
-
- <dd>
- <p>Directive what is defined by FreeMarker, thus always available.
- Example of predefined directives: <code class="inline-code">if</code>,
- <code class="inline-code">list</code>, <code class="inline-code">include</code></p>
-
-
-
- <p>See Also
- <a href="#gloss.userDefinedDirective">User-defined directive</a>
- </p>
- </dd>
-
-
- <dt><a name="gloss.regularExpression"></a>Regular expression</dt>
-
-
- <dd>
- <p>A regular expression is a string that specifies a set of strings
- that matches it. For example, the regular expression
- <code class="inline-code">"fo*"</code> matches <code class="inline-code">"f"</code>,
- <code class="inline-code">"fo"</code>, <code class="inline-code">"foo"</code>, etc. Regular
- expressions are used in several languages and other tools. In
- FreeMarker, the usage of them is a "power user" option.
- So if you have never used them before, there is no need to worry about
- not being familiar with them. But if you are interested in regular
- expressions, you can find several Web pages and books about them.
- FreeMarker uses the variation of regular expressions described at:
- <a href="http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html">http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html</a></p>
-
- </dd>
-
-
- <dt><a name="gloss.scalarVariable"></a>Scalar</dt>
-
-
- <dd>
- <p>A scalar variable stores a single value. A scalar is either a
- string or a number or a date/time or a <a href="#gloss.boolean">boolean</a>.</p>
-
- </dd>
-
-
- <dt><a name="gloss.sequenceVariable"></a>Sequence</dt>
-
-
- <dd>
- <p>A sequence is a variable that contains a sequence of sub
- variables. The sequence's sub variables are accessible via numerical
- index, where the index of the very first object is 0, the index of the
- second objects is 1, the index of the third object is 2, etc.</p>
-
-
-
- <p>See Also
- <a href="#gloss.hashVariable">Hash</a>
- </p>
- </dd>
-
-
- <dt><a name="autoid_294"></a>SGML</dt>
-
-
- <dd>See
- <a href="#gloss.SGML">Standard Generalized Markup Language</a>
- </dd>
-
-
- <dt><a name="gloss.SGML"></a>Standard Generalized Markup Language</dt>
-
-
- <dd>
- <p>This is an international standard (ISO 8879) that specifies the
- rules for the creation of platform-independent markup languages. HTML
- is a markup language created with SGML. <a href="#gloss.XML">XML</a> is a subset (restricted version) of
- SGML.</p>
-
-
-
- <p>See Also
- <a href="#gloss.XML">Extensible Markup Language</a>
- </p>
- </dd>
-
-
- <dt><a name="gloss.startTag"></a>Start-tag</dt>
-
-
- <dd>
- <p><a href="#gloss.tag">Tag</a>, which indicates that the
- following content is under the element, up to the <a href="#gloss.endTag">end-tag</a>. The start-tag may also
- specifies <a href="#gloss.attribute">attributes</a> for the
- element. An example of a start-tag: <code class="inline-code"><body
- bgcolor=black></code></p>
-
- </dd>
-
-
- <dt><a name="gloss.string"></a>String</dt>
-
-
- <dd>
- <p>A sequence of <a href="#gloss.character">characters</a>
- such as "m", "o", "u",
- "s", "e".</p>
-
- </dd>
-
-
- <dt><a name="gloss.tag"></a>Tag</dt>
-
-
- <dd>
- <p>Text fragment indicating the usage of an element in SGML.
- Examples of tags: <code class="inline-code"><body bgcolor=black></code>,
- <code class="inline-code"></body></code></p>
-
-
-
-
-
- <p>See Also
- <a href="#gloss.startTag">Start-tag</a>,
- <a href="#gloss.endTag">End-tag</a>
- </p>
- </dd>
-
-
- <dt><a name="gloss.template"></a>Template</dt>
-
-
- <dd>
- <p>A template is a text file with some special character sequences
- embedded into it. A template processor (e.g. FreeMarker) will
- interpret special character sequences and it outputs a more or less
- different text from the original text file, where the differences are
- often based on a <a href="#gloss.dataModel">data-model</a>.
- Thus, the original text acts as a template of the possible
- outputs.</p>
-
- </dd>
-
-
- <dt><a name="gloss.templateEncoding"></a>Template encoding</dt>
-
-
- <dd>
- <p>Means template <a href="#gloss.charset">charset</a>. In
- the Java world the term "encoding" is commonly (mis)used
- as a synonym to charset.</p>
-
- </dd>
-
-
- <dt><a name="gloss.templateProcessingJob"></a>Template processing job</dt>
-
-
- <dd>
- <p>A template processing job is the process during which FreeMarker
- merges the main (top-level) template with a data-model to produce the
- output. Because templates can <code class="inline-code">include</code> and
- <code class="inline-code">import</code> other templates, this may involves the
- processing of multiple templates, but those will all belong to the
- same template processing job, which was started with the processing of
- the main template. A template-processing job only exists for the short
- time period until the processing of the main template is finished, and
- then it vanishes with all the variables created during the process
- (variables created with <code class="inline-code">assign</code>,
- <code class="inline-code">macro</code>, <code class="inline-code">global</code>, etc.
- directives).</p>
-
- </dd>
-
-
- <dt><a name="gloss.threadSafe"></a>Thread-safe</dt>
-
-
- <dd>
- <p>An object is thread-safe if it is safe to call its methods from
- multiple threads, even in parallel (i.e. multiple threads execute the
- methods of the object at the same time). Non-thread-safe objects may
- behave unpredictably in this situation, and generate wrong results,
- corrupt internal data structures, etc. Thread-safety is typically
- achieved in two ways with Java: with the usage
- <code class="inline-code">synchronized</code> statement (or
- <code class="inline-code">synchronized</code> methods), and with the immutability of
- encapsulated data (i.e. you can't modify the field after you have
- created the object).</p>
-
- </dd>
-
-
- <dt><a name="gloss.transformVariable"></a>Transform</dt>
-
-
- <dd>
- <p>This term refers to user-defined directives that are implemetned
- with the now obsolete <code class="inline-code">TemplateTransformModel</code> Java
- interface. The feature was originally made for implementing output
- filters, hence the name.</p>
-
- </dd>
-
-
- <dt><a name="gloss.UCS"></a>UCS</dt>
-
-
- <dd>
- <p>This is international standard (ISO-10646) that defines a huge
- set of <a href="#gloss.character">characters</a> and assigns a
- unique number for each character ("!" is 33, ...,
- "A" is 61, "B" is 62, ..., Arabic letter
- hamza is 1569... etc.). This character set (not charset) contains
- almost all characters used today (Latin alphabet, Cyrillic alphabet,
- Chinese letters, etc.). The idea behind UCS is that we can specify any
- character with a unique number, not mater what the platform or the
- language is.</p>
-
-
-
- <p>See Also
- <a href="#gloss.unicode">Unicode</a>
- </p>
- </dd>
-
-
- <dt><a name="gloss.unicode"></a>Unicode</dt>
-
-
- <dd>
- <p>De-facto standard developed by Unicode organization. It deals
- with the classification of the characters in <a href="#gloss.UCS">UCS</a> (which is letter, which is digit, which
- is uppercase, which is lowercase, etc.), and with other problems of
- processing text made from the characters of UCS (e.g.
- normalization).</p>
-
- </dd>
-
-
- <dt><a name="gloss.userDefinedDirective"></a>User-defined directive</dt>
-
-
- <dd>
- <p>Directive that is not defined by the FreeMarker core, but by the
- user. These are typically application domain specific directives, like
- pull-down menu generation directives, HTML form handling
- directives.</p>
-
-
-
- <p>See Also
- <a href="#gloss.predefinedDirective">Predefined directive</a>
- </p>
- </dd>
-
-
- <dt><a name="gloss.whiteSpace"></a>White-space</dt>
-
-
- <dd>
- <p>Characters that are totally transparent but have impact on the
- visual appearance of the text. Examples of white-space characters:
- space, tab (horizontal and vertical), line breaks (CR and LF), form
- feed.</p>
-
-
-
- <p>See Also
- <a href="#gloss.lineBreak">Line break</a>
- </p>
- </dd>
-
-
- <dt><a name="autoid_295"></a>XML</dt>
-
-
- <dd>See
- <a href="#gloss.XML">Extensible Markup Language</a>
- </dd>
-
- </dl>
-<div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="app_eccn.html"><span>Previous</span></a><a class="paging-arrow next" href="alphaidx.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/index.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/index.html b/builds/2.3.26-nightly/index.html
deleted file mode 100644
index fb72cf0..0000000
--- a/builds/2.3.26-nightly/index.html
+++ /dev/null
@@ -1,55 +0,0 @@
-<!doctype html>
-<!-- Generated by FreeMarker/Docgen from DocBook -->
-<html lang="en" class="page-type-book">
-<head prefix="og: http://ogp.me/ns#">
-<meta charset="utf-8">
-<title>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="Apache FreeMarker Manual">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/index.html">
-<link rel="canonical" href="http://freemarker.org/docs/index.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"><span itemprop="name">Table of Contents</span></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 = [];</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"><span class="paging-arrow disabled previous"><span>Previous</span></span><a class="paging-arrow next" href="dgui.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-book" id="autoid_1" itemprop="headline">Apache FreeMarker Manual <span class="subtitle productname">For Freemarker 2.3.26</span>
-</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Table of Contents</div>
-<ul><li><a class="page-menu-link" href="dgui.html" data-menu-target="dgui">Template Author's Guide</a><ul><li><a class="page-menu-link" href="dgui_quickstart.html" data-menu-target="dgui_quickstart">Getting Started</a><ul><li><a class="page-menu-link" href="dgui_quickstart_basics.html" data-menu-target="dgui_quickstart_basics">Template + data-model = output</a></li><li><a class="page-menu-link" href="dgui_quickstart_datamodel.html" data-menu-target="dgui_quickstart_datamodel">The data-model at a glance</a></li><li><a class="page-menu-link" href="dgui_quickstart_template.html" data-menu-target="dgui_quickstart_template">The template at a glance</a></li></ul></li><li><a class="page-menu-link" href="dgui_datamodel.html" data-menu-target="dgui_datamodel">Values, Types</a><ul><li><a class="page-menu-link" href="dgui_datamodel_basics.html" data-menu-target="dgui_datamodel_basics">Basics</a></li><li><a class="page-menu-link" href="dgui_datamodel_types.html" data-menu-target="dgui_datam
odel_types">The types</a></li></ul></li><li><a class="page-menu-link" href="dgui_template.html" data-menu-target="dgui_template">The Template</a><ul><li><a class="page-menu-link" href="dgui_template_overallstructure.html" data-menu-target="dgui_template_overallstructure">Overall structure</a></li><li><a class="page-menu-link" href="dgui_template_directives.html" data-menu-target="dgui_template_directives">Directives</a></li><li><a class="page-menu-link" href="dgui_template_exp.html" data-menu-target="dgui_template_exp">Expressions</a></li><li><a class="page-menu-link" href="dgui_template_valueinsertion.html" data-menu-target="dgui_template_valueinsertion">Interpolations</a></li></ul></li><li><a class="page-menu-link" href="dgui_misc.html" data-menu-target="dgui_misc">Miscellaneous</a><ul><li><a class="page-menu-link" href="dgui_misc_userdefdir.html" data-menu-target="dgui_misc_userdefdir">Defining your own directives</a></li><li><a class="page-menu-link" href="dgui_misc_var.html" da
ta-menu-target="dgui_misc_var">Defining variables in the template</a></li><li><a class="page-menu-link" href="dgui_misc_namespace.html" data-menu-target="dgui_misc_namespace">Namespaces</a></li><li><a class="page-menu-link" href="dgui_misc_autoescaping.html" data-menu-target="dgui_misc_autoescaping">Auto-escaping and output formats</a></li><li><a class="page-menu-link" href="dgui_misc_whitespace.html" data-menu-target="dgui_misc_whitespace">White-space handling</a></li><li><a class="page-menu-link" href="dgui_misc_alternativesyntax.html" data-menu-target="dgui_misc_alternativesyntax">Alternative (square bracket) syntax</a></li></ul></li></ul></li><li><a class="page-menu-link" href="pgui.html" data-menu-target="pgui">Programmer's Guide</a><ul><li><a class="page-menu-link" href="pgui_quickstart.html" data-menu-target="pgui_quickstart">Getting Started</a><ul><li><a class="page-menu-link" href="pgui_quickstart_createconfiguration.html" data-menu-target="pgui_quickstart_createconfigu
ration">Create a configuration instance</a></li><li><a class="page-menu-link" href="pgui_quickstart_createdatamodel.html" data-menu-target="pgui_quickstart_createdatamodel">Create a data-model</a></li><li><a class="page-menu-link" href="pgui_quickstart_gettemplate.html" data-menu-target="pgui_quickstart_gettemplate">Get the template</a></li><li><a class="page-menu-link" href="pgui_quickstart_merge.html" data-menu-target="pgui_quickstart_merge">Merging the template with the data-model</a></li><li><a class="page-menu-link" href="pgui_quickstart_all.html" data-menu-target="pgui_quickstart_all">Putting all together</a></li></ul></li><li><a class="page-menu-link" href="pgui_datamodel.html" data-menu-target="pgui_datamodel">The Data Model</a><ul><li><a class="page-menu-link" href="pgui_datamodel_basics.html" data-menu-target="pgui_datamodel_basics">Basics</a></li><li><a class="page-menu-link" href="pgui_datamodel_scalar.html" data-menu-target="pgui_datamodel_scalar">Scalars</a></li><li><a
class="page-menu-link" href="pgui_datamodel_parent.html" data-menu-target="pgui_datamodel_parent">Containers</a></li><li><a class="page-menu-link" href="pgui_datamodel_method.html" data-menu-target="pgui_datamodel_method">Methods</a></li><li><a class="page-menu-link" href="pgui_datamodel_directive.html" data-menu-target="pgui_datamodel_directive">Directives</a></li><li><a class="page-menu-link" href="pgui_datamodel_node.html" data-menu-target="pgui_datamodel_node">Node variables</a></li><li><a class="page-menu-link" href="pgui_datamodel_objectWrapper.html" data-menu-target="pgui_datamodel_objectWrapper">Object wrappers</a></li></ul></li><li><a class="page-menu-link" href="pgui_config.html" data-menu-target="pgui_config">The Configuration</a><ul><li><a class="page-menu-link" href="pgui_config_basics.html" data-menu-target="pgui_config_basics">Basics</a></li><li><a class="page-menu-link" href="pgui_config_sharedvariables.html" data-menu-target="pgui_config_sharedvariables">Shared var
iables</a></li><li><a class="page-menu-link" href="pgui_config_settings.html" data-menu-target="pgui_config_settings">Settings</a></li><li><a class="page-menu-link" href="pgui_config_templateloading.html" data-menu-target="pgui_config_templateloading">Template loading</a></li><li><a class="page-menu-link" href="pgui_config_errorhandling.html" data-menu-target="pgui_config_errorhandling">Error handling</a></li><li><a class="page-menu-link" href="pgui_config_templateconfigurations.html" data-menu-target="pgui_config_templateconfigurations">Template configurations</a></li><li><a class="page-menu-link" href="pgui_config_outputformatsautoesc.html" data-menu-target="pgui_config_outputformatsautoesc">Associating output formats with templates</a></li><li><a class="page-menu-link" href="pgui_config_custom_formats.html" data-menu-target="pgui_config_custom_formats">Custom number and date/time formats</a></li><li><a class="page-menu-link" href="pgui_config_incompatible_improvements.html" data-
menu-target="pgui_config_incompatible_improvements">The "incompatible improvements" setting</a></li></ul></li><li><a class="page-menu-link" href="pgui_misc.html" data-menu-target="pgui_misc">Miscellaneous</a><ul><li><a class="page-menu-link" href="pgui_misc_var.html" data-menu-target="pgui_misc_var">Variables, scopes</a></li><li><a class="page-menu-link" href="pgui_misc_charset.html" data-menu-target="pgui_misc_charset">Charset issues</a></li><li><a class="page-menu-link" href="pgui_misc_multithreading.html" data-menu-target="pgui_misc_multithreading">Multithreading</a></li><li><a class="page-menu-link" href="pgui_misc_beanwrapper.html" data-menu-target="pgui_misc_beanwrapper">Bean wrapper</a></li><li><a class="page-menu-link" href="pgui_misc_logging.html" data-menu-target="pgui_misc_logging">Logging</a></li><li><a class="page-menu-link" href="pgui_misc_servlet.html" data-menu-target="pgui_misc_servlet">Using FreeMarker with servlets</a></li><li><a class="page-menu-link" h
ref="pgui_misc_secureenv.html" data-menu-target="pgui_misc_secureenv">Configuring security policy for FreeMarker</a></li><li><a class="page-menu-link" href="pgui_misc_xml_legacy.html" data-menu-target="pgui_misc_xml_legacy">Legacy XML wrapper implementation</a></li><li><a class="page-menu-link" href="pgui_misc_ant.html" data-menu-target="pgui_misc_ant">Using FreeMarker with Ant</a></li><li><a class="page-menu-link" href="pgui_misc_jythonwrapper.html" data-menu-target="pgui_misc_jythonwrapper">Jython wrapper</a></li></ul></li></ul></li><li><a class="page-menu-link" href="ref.html" data-menu-target="ref">Template Language Reference</a><ul><li><a class="page-menu-link" href="ref_builtins.html" data-menu-target="ref_builtins">Built-in Reference</a><ul><li><a class="page-menu-link" href="ref_builtins_alphaidx.html" data-menu-target="ref_builtins_alphaidx">Alphabetical index</a></li><li><a class="page-menu-link" href="ref_builtins_string.html" data-menu-target="ref_builtins_string">Built-
ins for strings</a></li><li><a class="page-menu-link" href="ref_builtins_number.html" data-menu-target="ref_builtins_number">Built-ins for numbers</a></li><li><a class="page-menu-link" href="ref_builtins_date.html" data-menu-target="ref_builtins_date">Built-ins for date/time/date-time values</a></li><li><a class="page-menu-link" href="ref_builtins_boolean.html" data-menu-target="ref_builtins_boolean">Built-ins for booleans</a></li><li><a class="page-menu-link" href="ref_builtins_sequence.html" data-menu-target="ref_builtins_sequence">Built-ins for sequences</a></li><li><a class="page-menu-link" href="ref_builtins_hash.html" data-menu-target="ref_builtins_hash">Built-ins for hashes</a></li><li><a class="page-menu-link" href="ref_builtins_node.html" data-menu-target="ref_builtins_node">Built-ins for nodes (for XML)</a></li><li><a class="page-menu-link" href="ref_builtins_loop_var.html" data-menu-target="ref_builtins_loop_var">Loop variable built-ins</a></li><li><a class="page-menu-lin
k" href="ref_builtins_type_independent.html" data-menu-target="ref_builtins_type_independent">Type independent built-ins</a></li><li><a class="page-menu-link" href="ref_builtins_expert.html" data-menu-target="ref_builtins_expert">Seldom used and expert built-ins</a></li></ul></li><li><a class="page-menu-link" href="ref_directives.html" data-menu-target="ref_directives">Directive Reference</a><ul><li><a class="page-menu-link" href="ref_directive_alphaidx.html" data-menu-target="ref_directive_alphaidx">Alphabetical index</a></li><li><a class="page-menu-link" href="ref_directive_assign.html" data-menu-target="ref_directive_assign">assign</a></li><li><a class="page-menu-link" href="ref_directive_attempt.html" data-menu-target="ref_directive_attempt">attempt, recover</a></li><li><a class="page-menu-link" href="ref_directive_autoesc.html" data-menu-target="ref_directive_autoesc">autoesc</a></li><li><a class="page-menu-link" href="ref_directive_compress.html" data-menu-target="ref_directiv
e_compress">compress</a></li><li><a class="page-menu-link" href="ref_directive_escape.html" data-menu-target="ref_directive_escape">escape, noescape (deprecated)</a></li><li><a class="page-menu-link" href="ref_directive_flush.html" data-menu-target="ref_directive_flush">flush</a></li><li><a class="page-menu-link" href="ref_directive_ftl.html" data-menu-target="ref_directive_ftl">ftl</a></li><li><a class="page-menu-link" href="ref_directive_function.html" data-menu-target="ref_directive_function">function, return</a></li><li><a class="page-menu-link" href="ref_directive_global.html" data-menu-target="ref_directive_global">global</a></li><li><a class="page-menu-link" href="ref_directive_if.html" data-menu-target="ref_directive_if">if, else, elseif</a></li><li><a class="page-menu-link" href="ref_directive_import.html" data-menu-target="ref_directive_import">import</a></li><li><a class="page-menu-link" href="ref_directive_include.html" data-menu-target="ref_directive_include">include</a
></li><li><a class="page-menu-link" href="ref_directive_list.html" data-menu-target="ref_directive_list">list, else, items, sep, break</a></li><li><a class="page-menu-link" href="ref_directive_local.html" data-menu-target="ref_directive_local">local</a></li><li><a class="page-menu-link" href="ref_directive_macro.html" data-menu-target="ref_directive_macro">macro, nested, return</a></li><li><a class="page-menu-link" href="ref_directive_noautoesc.html" data-menu-target="ref_directive_noautoesc">noautoesc</a></li><li><a class="page-menu-link" href="ref_directive_noparse.html" data-menu-target="ref_directive_noparse">noparse</a></li><li><a class="page-menu-link" href="ref_directive_nt.html" data-menu-target="ref_directive_nt">nt</a></li><li><a class="page-menu-link" href="ref_directive_outputformat.html" data-menu-target="ref_directive_outputformat">outputformat</a></li><li><a class="page-menu-link" href="ref_directive_setting.html" data-menu-target="ref_directive_setting">setting</a></
li><li><a class="page-menu-link" href="ref_directive_stop.html" data-menu-target="ref_directive_stop">stop</a></li><li><a class="page-menu-link" href="ref_directive_switch.html" data-menu-target="ref_directive_switch">switch, case, default, break</a></li><li><a class="page-menu-link" href="ref_directive_t.html" data-menu-target="ref_directive_t">t, lt, rt</a></li><li><a class="page-menu-link" href="ref_directive_userDefined.html" data-menu-target="ref_directive_userDefined">User-defined directive (<@...>)</a></li><li><a class="page-menu-link" href="ref_directive_visit.html" data-menu-target="ref_directive_visit">visit, recurse, fallback</a></li></ul></li><li><a class="page-menu-link" href="ref_specvar.html" data-menu-target="ref_specvar">Special Variable Reference</a></li><li><a class="page-menu-link" href="ref_reservednames.html" data-menu-target="ref_reservednames">Reserved names in FTL</a></li><li><a class="page-menu-link" href="ref_deprecated.html" data-menu-target="ref_de
precated">Deprecated FTL constructs</a><ul><li><a class="page-menu-link" href="ref_depr_directive.html" data-menu-target="ref_depr_directive">List of deprecated directives</a></li><li><a class="page-menu-link" href="ref_depr_builtin.html" data-menu-target="ref_depr_builtin">List of deprecated built-ins</a></li><li><a class="page-menu-link" href="ref_depr_oldmacro.html" data-menu-target="ref_depr_oldmacro">Old-style macro and call directives</a></li><li><a class="page-menu-link" href="ref_depr_transform.html" data-menu-target="ref_depr_transform">Transform directive</a></li><li><a class="page-menu-link" href="ref_depr_oldsyntax.html" data-menu-target="ref_depr_oldsyntax">Old FTL syntax</a></li><li><a class="page-menu-link" href="ref_depr_numerical_interpolation.html" data-menu-target="ref_depr_numerical_interpolation">#{...}: Numerical interpolation</a></li></ul></li></ul></li><li><a class="page-menu-link" href="xgui.html" data-menu-target="xgui">XML Processing Guide</a><ul><li><a cl
ass="page-menu-link" href="xgui_preface.html" data-menu-target="xgui_preface">Preface</a></li><li><a class="page-menu-link" href="xgui_expose.html" data-menu-target="xgui_expose">Exposing XML documents</a><ul><li><a class="page-menu-link" href="xgui_expose_dom.html" data-menu-target="xgui_expose_dom">The DOM tree</a></li><li><a class="page-menu-link" href="xgui_expose_put.html" data-menu-target="xgui_expose_put">Putting the XML into the data-model</a></li></ul></li><li><a class="page-menu-link" href="xgui_imperative.html" data-menu-target="xgui_imperative">Imperative XML processing</a><ul><li><a class="page-menu-link" href="xgui_imperative_learn.html" data-menu-target="xgui_imperative_learn">Basics</a></li><li><a class="page-menu-link" href="xgui_imperative_formal.html" data-menu-target="xgui_imperative_formal">Details</a></li></ul></li><li><a class="page-menu-link" href="xgui_declarative.html" data-menu-target="xgui_declarative">Declarative XML processing</a><ul><li><a class="page-
menu-link" href="xgui_declarative_basics.html" data-menu-target="xgui_declarative_basics">Basics</a></li><li><a class="page-menu-link" href="xgui_declarative_details.html" data-menu-target="xgui_declarative_details">Details</a></li></ul></li></ul></li><li><a class="page-menu-link" href="app.html" data-menu-target="app">Appendixes</a><ul><li><a class="page-menu-link" href="app_faq.html" data-menu-target="app_faq">FAQ</a></li><li><a class="page-menu-link" href="app_versions.html" data-menu-target="app_versions">Version history</a><ul><li><a class="page-menu-link" href="versions_2_3_26.html" data-menu-target="versions_2_3_26">2.3.26 (incubating at Apache)</a></li><li><a class="page-menu-link" href="versions_2_3_25.html" data-menu-target="versions_2_3_25">2.3.25 (incubating at Apache)</a></li><li><a class="page-menu-link" href="versions_2_3_24.html" data-menu-target="versions_2_3_24">2.3.24 (incubating at Apache)</a></li><li><a class="page-menu-link" href="versions_2_3_23.html" data-men
u-target="versions_2_3_23">2.3.23</a></li><li><a class="page-menu-link" href="versions_2_3_22.html" data-menu-target="versions_2_3_22">2.3.22</a></li><li><a class="page-menu-link" href="versions_2_3_21.html" data-menu-target="versions_2_3_21">2.3.21</a></li><li><a class="page-menu-link" href="versions_2_3_20.html" data-menu-target="versions_2_3_20">2.3.20</a></li><li><a class="page-menu-link" href="versions_2_3_19.html" data-menu-target="versions_2_3_19">2.3.19</a></li><li><a class="page-menu-link" href="versions_2_3_18.html" data-menu-target="versions_2_3_18">2.3.18</a></li><li><a class="page-menu-link" href="versions_2_3_17.html" data-menu-target="versions_2_3_17">2.3.17</a></li><li><a class="page-menu-link" href="versions_2_3_16.html" data-menu-target="versions_2_3_16">2.3.16</a></li><li><a class="page-menu-link" href="versions_2_3_15.html" data-menu-target="versions_2_3_15">2.3.15</a></li><li><a class="page-menu-link" href="versions_2_3_14.html" data-menu-target="versions_2_3_14
">2.3.14</a></li><li><a class="page-menu-link" href="versions_2_3_13.html" data-menu-target="versions_2_3_13">2.3.13</a></li><li><a class="page-menu-link" href="versions_2_3_12.html" data-menu-target="versions_2_3_12">2.3.12</a></li><li><a class="page-menu-link" href="versions_2_3_11.html" data-menu-target="versions_2_3_11">2.3.11</a></li><li><a class="page-menu-link" href="versions_2_3_10.html" data-menu-target="versions_2_3_10">2.3.10</a></li><li><a class="page-menu-link" href="versions_2_3_9.html" data-menu-target="versions_2_3_9">2.3.9</a></li><li><a class="page-menu-link" href="versions_2_3_8.html" data-menu-target="versions_2_3_8">2.3.8</a></li><li><a class="page-menu-link" href="versions_2_3_7.html" data-menu-target="versions_2_3_7">2.3.7</a></li><li><a class="page-menu-link" href="versions_2_3_7rc1.html" data-menu-target="versions_2_3_7rc1">2.3.7 RC1</a></li><li><a class="page-menu-link" href="versions_2_3_6.html" data-menu-target="versions_2_3_6">2.3.6</a></li><li><a class=
"page-menu-link" href="versions_2_3_5.html" data-menu-target="versions_2_3_5">2.3.5</a></li><li><a class="page-menu-link" href="versions_2_3_4.html" data-menu-target="versions_2_3_4">2.3.4</a></li><li><a class="page-menu-link" href="versions_2_3_3.html" data-menu-target="versions_2_3_3">2.3.3</a></li><li><a class="page-menu-link" href="versions_2_3_2.html" data-menu-target="versions_2_3_2">2.3.2</a></li><li><a class="page-menu-link" href="versions_2_3_1.html" data-menu-target="versions_2_3_1">2.3.1</a></li><li><a class="page-menu-link" href="versions_2_3.html" data-menu-target="versions_2_3">2.3</a></li><li><a class="page-menu-link" href="versions_2_2_8.html" data-menu-target="versions_2_2_8">2.2.8</a></li><li><a class="page-menu-link" href="versions_2_2_7.html" data-menu-target="versions_2_2_7">2.2.7</a></li><li><a class="page-menu-link" href="versions_2_2_6.html" data-menu-target="versions_2_2_6">2.2.6</a></li><li><a class="page-menu-link" href="versions_2_2_5.html" data-menu-targ
et="versions_2_2_5">2.2.5</a></li><li><a class="page-menu-link" href="versions_2_2_4.html" data-menu-target="versions_2_2_4">2.2.4</a></li><li><a class="page-menu-link" href="versions_2_2_3.html" data-menu-target="versions_2_2_3">2.2.3</a></li><li><a class="page-menu-link" href="versions_2_2_2.html" data-menu-target="versions_2_2_2">2.2.2</a></li><li><a class="page-menu-link" href="versions_2_2_1.html" data-menu-target="versions_2_2_1">2.2.1</a></li><li><a class="page-menu-link" href="versions_2_2.html" data-menu-target="versions_2_2">2.2</a></li><li><a class="page-menu-link" href="versions_2_1_5.html" data-menu-target="versions_2_1_5">2.1.5</a></li><li><a class="page-menu-link" href="versions_2_1_4.html" data-menu-target="versions_2_1_4">2.1.4</a></li><li><a class="page-menu-link" href="versions_2_1_3.html" data-menu-target="versions_2_1_3">2.1.3</a></li><li><a class="page-menu-link" href="versions_2_1_2.html" data-menu-target="versions_2_1_2">2.1.2</a></li><li><a class="page-menu-
link" href="versions_2_1_1.html" data-menu-target="versions_2_1_1">2.1.1</a></li><li><a class="page-menu-link" href="versions_2_1.html" data-menu-target="versions_2_1">2.1</a></li><li><a class="page-menu-link" href="versions_2_01.html" data-menu-target="versions_2_01">2.01</a></li><li><a class="page-menu-link" href="versions_2_0.html" data-menu-target="versions_2_0">2.0</a></li><li><a class="page-menu-link" href="versions_2_0RC3.html" data-menu-target="versions_2_0RC3">2.0 RC3</a></li><li><a class="page-menu-link" href="versions_2_0RC2.html" data-menu-target="versions_2_0RC2">2.0 RC2</a></li><li><a class="page-menu-link" href="versions_2_0RC1.html" data-menu-target="versions_2_0RC1">2.0 RC1</a></li></ul></li><li><a class="page-menu-link" href="app_install.html" data-menu-target="app_install">Installing FreeMarker</a></li><li><a class="page-menu-link" href="app_legal.html" data-menu-target="app_legal">Legal</a><ul><li><a class="page-menu-link" href="app_license.html" data-menu-target
="app_license">License</a></li><li><a class="page-menu-link" href="app_eccn.html" data-menu-target="app_eccn">Export Control</a></li></ul></li></ul></li><li><a class="page-menu-link" href="gloss.html" data-menu-target="gloss">Glossary</a></li><li><a class="page-menu-link" href="alphaidx.html" data-menu-target="alphaidx">Alphabetical Index</a></li></ul> </div><div class="bottom-pagers-wrapper"><div class="pagers bottom"><span class="paging-arrow disabled previous"><span>Previous</span></span><a class="paging-arrow next" href="dgui.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/logo.png
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/logo.png b/builds/2.3.26-nightly/logo.png
deleted file mode 100644
index 193dc11..0000000
Binary files a/builds/2.3.26-nightly/logo.png and /dev/null differ
[05/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/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
deleted file mode 100644
index 9ff74f2..0000000
--- a/builds/2.3.26-nightly/versions_2_3_25.html
+++ /dev/null
@@ -1,228 +0,0 @@
-<!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>\u20132017
-<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/a4004324/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
deleted file mode 100644
index dd5ce6b..0000000
--- a/builds/2.3.26-nightly/versions_2_3_26.html
+++ /dev/null
@@ -1,297 +0,0 @@
-<!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>\u20132017
-<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/a4004324/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
deleted file mode 100644
index ed9d0ed..0000000
--- a/builds/2.3.26-nightly/versions_2_3_3.html
+++ /dev/null
@@ -1,223 +0,0 @@
-<!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>\u20132017
-<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/a4004324/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
deleted file mode 100644
index 4aaa6d0..0000000
--- a/builds/2.3.26-nightly/versions_2_3_4.html
+++ /dev/null
@@ -1,121 +0,0 @@
-<!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>\u20132017
-<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/a4004324/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
deleted file mode 100644
index aab02de..0000000
--- a/builds/2.3.26-nightly/versions_2_3_5.html
+++ /dev/null
@@ -1,162 +0,0 @@
-<!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>\u20132017
-<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>
[10/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/versions_2_3_15.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_3_15.html b/builds/2.3.26-nightly/versions_2_3_15.html
deleted file mode 100644
index be94b71..0000000
--- a/builds/2.3.26-nightly/versions_2_3_15.html
+++ /dev/null
@@ -1,115 +0,0 @@
-<!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.15 - 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.15">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/versions_2_3_15.html">
-<link rel="canonical" href="http://freemarker.org/docs/versions_2_3_15.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_15.html"><span itemprop="name">2.3.15</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.15"];</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_16.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_14.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="versions_2_3_15" itemprop="headline">2.3.15</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_186" data-menu-target="autoid_186">Changes on the FTL side</a></li><li><a class="page-menu-link" href="#autoid_187" data-menu-target="autoid_187">Changes on the Java side</a></li></ul> </div><p>Date of release: 2008-12-16</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_186">Changes on the FTL side</h2>
-
-
- <ul>
- <li>
- <p>Bug fixed: Hash concatenation (like <code class="inline-code">hash1 +
- hash2</code>) shuffled the order of keys/values even if both
- hashes were ordered.</p>
- </li>
-
- <li>
- <p>In web pages that are based on the
- <code class="inline-code">FreemarkerServlet</code>, you can now use
- <code class="inline-code"><@include_page path="..."/></code> to use
- servlet includes. See more <a href="pgui_misc_servlet.html#pgui_misc_servlet_include">here...</a></p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_187">Changes on the Java side</h2>
-
-
- <ul>
- <li>
- <p>The <code class="inline-code">BeansWrapper</code> can automatically
- detect that classes were reloaded by JavaRebel.</p>
- </li>
-
- <li>
- <p>Fixed a bug that caused <code class="inline-code">null</code> to be
- returned from
- <code class="inline-code">Environment.getCurrentEnvironment()</code> while
- processing autoincludes and autoimports. (<a href="https://sourceforge.net/forum/message.php?msg_id=5531621">See
- bug report</a>)</p>
- </li>
-
- <li>
- <p>Fixed a bug that caused
- <code class="inline-code">getObject(Object)</code> method on POJOs to not be
- recognized as a general get method.</p>
- </li>
-
- <li>
- <p>Substantially improved performance of the
- <code class="inline-code"><#break></code> directive.</p>
- </li>
-
- <li>
- <p><code class="inline-code">DeepUnwrap</code> now unwraps custom null
- model of the current object wrapper into a Java
- <code class="inline-code">null</code>.</p>
- </li>
- </ul>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_3_16.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_14.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/versions_2_3_16.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_3_16.html b/builds/2.3.26-nightly/versions_2_3_16.html
deleted file mode 100644
index acc58a5..0000000
--- a/builds/2.3.26-nightly/versions_2_3_16.html
+++ /dev/null
@@ -1,135 +0,0 @@
-<!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.16 - 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.16">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/versions_2_3_16.html">
-<link rel="canonical" href="http://freemarker.org/docs/versions_2_3_16.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_16.html"><span itemprop="name">2.3.16</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.16"];</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_17.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_15.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="versions_2_3_16" itemprop="headline">2.3.16</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_184" data-menu-target="autoid_184">Changes on the Java side</a></li><li><a class="page-menu-link" href="#autoid_185" data-menu-target="autoid_185">Changes on the FTL side</a></li></ul> </div><p>Date of release: 2009-12-07</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_184">Changes on the Java side</h2>
-
-
- <ul>
- <li>
- <p>Fixed a bug that caused incorrect unwrapping of sequences
- to Java arrays (<a href="https://sourceforge.net/tracker/?func=detail&aid=2105310&group_id=794&atid=100794">See
- bug report</a>)</p>
- </li>
-
- <li>
- <p>Fixed a bug that caused rounding of float and double
- values (<a href="https://sourceforge.net/tracker/?func=detail&aid=2503124&group_id=794&atid=100794">See
- bug report</a>)</p>
- </li>
-
- <li>
- <p>Created a new
- <code class="inline-code">freemarker.runtime.attempt</code> category and
- exceptions caught in <code class="inline-code"><#attempt></code> blocks
- are logged into it at a DEBUG severity.</p>
- </li>
-
- <li>
- <p>Fixing the (ages old) problem of
- <code class="inline-code">RhinoWrapper</code> not working with all versions of
- Rhino because of binary incompatible change of Rhino's
- <code class="inline-code">Undefined.instance</code>.</p>
- </li>
-
- <li>
- <p>Fixed bug where <code class="inline-code">TextUtil.XMLEncNQG</code>
- didn't escape <code class="inline-code">]]></code> as
- <code class="inline-code">]]&gt;</code>.</p>
- </li>
-
- <li>
- <p>Fixed bug where the root directory couldn't be used as the
- template base directory, as
- <code class="inline-code">FileTemplateLoader</code> believed that the template
- is outside the base directory.</p>
- </li>
-
- <li>
- <p>Macro names can no longer be changed through the
- API.</p>
- </li>
-
- <li>
- <p>FreemarkerServlet now cooperates with Session Fixation
- Attack Protection in Spring Security, see <a href="https://sourceforge.net/projects/freemarker/forums/forum/2345/topic/3475868">
- forum discussion</a> for details.</p>
- </li>
-
- <li>
- <p>Substantially improved performance of the
- <code class="inline-code"><#return></code> directive.</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_185">Changes on the FTL side</h2>
-
-
- <ul>
- <li>
- <p>Fixed bug where
- <code class="inline-code"><em class="code-color">anXMLNode</em>.@@markup</code>
- and <code class="inline-code">@@nested_markup</code> didn't escape
- <code class="inline-code">]]></code> as
- <code class="inline-code">]]&gt;</code>.</p>
- </li>
- </ul>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_3_17.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_15.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/versions_2_3_17.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_3_17.html b/builds/2.3.26-nightly/versions_2_3_17.html
deleted file mode 100644
index a9c317c..0000000
--- a/builds/2.3.26-nightly/versions_2_3_17.html
+++ /dev/null
@@ -1,331 +0,0 @@
-<!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.17 - 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.17">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/versions_2_3_17.html">
-<link rel="canonical" href="http://freemarker.org/docs/versions_2_3_17.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_17.html"><span itemprop="name">2.3.17</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.17"];</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_18.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_16.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="versions_2_3_17" itemprop="headline">2.3.17</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_181" data-menu-target="autoid_181">Changes on the FTL side</a></li><li><a class="page-menu-link" href="#autoid_182" data-menu-target="autoid_182">Changes on the Java side</a></li><li><a class="page-menu-link" href="#autoid_183" data-menu-target="autoid_183">Other changes</a></li></ul> </div><p>Date of release: 2011-05-17</p><p>It's possibly urgent to update to this version because of a
- <a href="#v2317secfix">security fix</a>!</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_181">Changes on the FTL side</h2>
-
-
- <ul>
- <li>
- <p><code class="inline-code">?seq_index_of</code> and
- <code class="inline-code">?seq_last_index_of</code> now works on collections
- (<code class="inline-code">freemarker.template.TemplateCollectionModel</code>-s)
- too, not only on sequences
- (<code class="inline-code">freemarker.template.TemplateSequenceModel</code>-s).</p>
- </li>
-
- <li>
- <p><code class="inline-code">?long</code> now works for date, date-time or
- time values, and returns the milliseconds since the epoch (as
- <code class="inline-code">java.util.Date.getTime()</code>).</p>
- </li>
-
- <li>
- <p>To convert numbers (usually Java
- <code class="inline-code">long</code>-s) to date or date-time and time values,
- <code class="inline-code">?number_to_date</code>,
- <code class="inline-code">?number_to_time</code>,
- <code class="inline-code">?number_to_datetime</code> was added. <a href="ref_builtins_expert.html#ref_builtin_numToDate">See more here...</a>
- (Unfortunately, <code class="inline-code">?date</code> and like can't be
- extended to support this due to backward compatibility
- issues.)</p>
- </li>
-
- <li>
- <p>New built-ins to format numbers with ISO 8601 "extended"
- format regardless of the current date/time formatting settings,
- and even regardless of the current time zone setting. For
- example <code class="inline-code">${myTimeStamp?iso_utc}</code> will print
- something like <code class="inline-code">2010-05-16T23:05:45Z</code>. <a href="ref_builtins_date.html#ref_builtin_date_iso">See more here...</a></p>
- </li>
-
- <li>
- <p>New <a href="ref_specvar.html">special variable</a>,
- <code class="inline-code">now</code>. This returns the current date-time.
- Usage examples: "<code class="inline-code">Page generated: ${.now}</code>",
- "<code class="inline-code">Today is ${.now?date}</code>", "<code class="inline-code">The
- current time is ${.now?time}</code>".</p>
- </li>
-
- <li>
- <p><code class="inline-code">?sort</code> and <code class="inline-code">?sort_by</code>
- now supports sorting boolean values.</p>
- </li>
-
- <li>
- <p>When using unsupported or unknown <a href="ref_builtins_string.html#ref_builtin_string_flags">string built-in flags</a>,
- FreeMarker will now <a href="pgui_misc_logging.html">log</a>
- warnings (maximum 25 times per class-loader, to prevent flooding
- the log). It's certain that starting from FreeMarker 2.4 these
- will count as errors.</p>
- </li>
-
- <li>
- <p>Bug fixed <a href="http://sourceforge.net/tracker/?func=detail&atid=100794&aid=3047201&group_id=794">[3047201]</a>:
- Using regular expressions (like with <code class="inline-code">?match</code>)
- could cause lockup in multi-threaded environment, also memory
- leakage when using dynamically generated regular
- expressions.</p>
- </li>
-
- <li>
- <p>Bug fixed: <code class="inline-code">?seq_contains</code>,
- <code class="inline-code">?seq_index_of</code> and
- <code class="inline-code">?seq_last_index_of</code> has failed with
- non-<code class="inline-code">java.util.List</code>
- <code class="inline-code">java.util.Collection</code>-s that are wrapped with
- pure <code class="inline-code">BeansWrapper</code> (not the
- <code class="inline-code">DefaultObjectWrapper</code>) as
- <code class="inline-code">TemplateSequenceModel</code>. (See also:
- <code class="inline-code">getSupportsIndexedAccess()</code> below)</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_182">Changes on the Java side</h2>
-
-
- <ul>
- <li>
- <p><a name="v2317secfix"></a><em>Security fix</em>:
- Using carefully crafted template names (template paths) that
- contain code point 0 (<code class="inline-code">'\u0000'</code>), it was
- possible to load files from outside the template root directory
- like if they were FreeMarker templates. The root of the problem
- is that the underlying native C/C++ part (which belongs to the
- Java platform or to the OS) interprets the 0 as the end of the
- string, while Java (and hence FreeMarker and the Servlet
- container) doesn't. Thus a path that looked safe for FreeMarker
- become unsafe on the lower level. The problem is present with
- all ways of loading templates by name
- (<code class="inline-code">Configuration.getTemplate(<em class="code-color">...</em>)</code>,
- <code class="inline-code"><#include
- <em class="code-color">...</em>></code>,
- <code class="inline-code"><#import
- <em class="code-color">...</em>></code>).</p>
-
- <p>You are not affected if you don't allow users to upload
- templates and also at least one of these stands:</p>
-
- <ul>
- <li>
- <p>In your system users can't provide arbitrary strings
- as template names (template paths). For example, if users
- are only allowed to visit the URL-s that belong to the MVC
- Controller (like they can't visit <code class="inline-code">*.ftl</code>)
- then they can't suggest arbitrary template names.</p>
- </li>
-
- <li>
- <p>The template names are part of the path in the Web
- page URL, and your webserver or Servlet container disallows
- URL-s that contain <code class="inline-code">%00</code>, or terminate the
- URL at it before passing it to the servlets.</p>
- </li>
-
- <li>
- <p>You are using <code class="inline-code">FileTemplateLoader</code>
- and linking is not allowed in it (by default it isn't
- allowed).</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>FreeMarker now can log its messages directly using SLF4J
- or Apache Commons Logging. However, it will not use these logger
- libraries automatically, until 2.4; <a href="pgui_misc_logging.html">see more here...</a> But it's
- recommended to switch to SLF4J now.</p>
- </li>
-
- <li>
- <p>New setting: <code class="inline-code">"auto_flush"</code>,
- <code class="inline-code">Configurable.setAutoFlush(boolean)</code>. Sets
- whether the output <code class="inline-code">Writer</code> is automatically
- flushed at the end of <code class="inline-code">Template.process(Object,
- Writer)</code> (and its overloads). The default is
- <code class="inline-code">true</code>, which corresponds to the earlier
- behavior. Using <code class="inline-code">false</code> is needed for example
- when a Web page is composed from several boxes (like portlets,
- GUI panels, etc.) that aren't inserted with
- <code class="inline-code">#include</code> (or with similar directives) into a
- master FreeMarker template, rather they are all processed with a
- separate
- <code class="inline-code">Template.process(<em class="code-color">...</em>)</code>
- call. In a such scenario the automatic flushes would commit the
- HTTP response after each box, hence interfering with full-page
- buffering, and also possibly decreasing performance with too
- frequent and too early response buffer flushes.</p>
- </li>
-
- <li>
- <p>Added new setting:
- <code class="inline-code">Configuration.setNewBuiltinClassResolver(TemplateClassResolver)</code>,
- or <code class="inline-code">new_builtin_class_resolver</code> property. This
- allows you to specify how the <a href="ref_builtins_expert.html#ref_builtin_new"><code>new</code> built-in</a>
- (like in <code class="inline-code">"com.example.SomeClass"?new()</code>)
- resolves classes and which classes are accessible at all. If you
- are allowing not-so-much-trusted users to upload templates, you
- should be definitely interested; see the Java API docs of
- <code class="inline-code">freemarker.core.Configurable.setSetting</code> and
- <code class="inline-code">freemareker.template.Configuration.setNewBuiltinClassResolver</code>.
- Otherwise it's still recommended to set this to
- <code class="inline-code">TemplateClassResolver.SAFER_RESOLVER</code> (or
- <code class="inline-code">safer</code> if you are using properties), although
- that's not 100% backward compatible (see Java API docs) .</p>
- </li>
-
- <li>
- <p>Added
- <code class="inline-code">freemarker.cache.NullCacheStorage</code>: Setting
- this as the cache storage in <code class="inline-code">Configuration</code>
- disables caching.</p>
- </li>
-
- <li>
- <p>Added <code class="inline-code">getSupportsIndexedAccess()</code> to
- <code class="inline-code">freemarker.ext.beans.CollectionModel</code>, so one
- can check if <code class="inline-code">TemplateSequenceModel.get(int)</code>
- will work with a particular <code class="inline-code">CollectionModel</code>
- instance or not.</p>
- </li>
-
- <li>
- <p>Bug fixed <a href="http://sourceforge.net/tracker/?func=detail&aid=2992265&group_id=794&atid=100794">[2992265]</a>:
- JSP <code class="inline-code">FreeMarkerPageContext.include</code> behaved
- incorrectly.</p>
- </li>
-
- <li>
- <p>Bug fixed: When using FreeMarker's JSP support with JSP
- tags that use
- <code class="inline-code">javax.servlet.jsp.PageContext.pushBody</code> (like
- some Stripes tags), <code class="inline-code">"ArrayIndexOutOfBoundsException:
- -1"</code> occurred inside
- <code class="inline-code">freemarker.ext.jsp.FreeMarkerPageContext.popWriter</code>.</p>
- </li>
-
- <li>
- <p>Bug fixed <a href="http://sourceforge.net/tracker/?func=detail&atid=100794&aid=3033015&group_id=794">[3033015]</a>:
- <code class="inline-code">AllHttpScopesHashModel</code> used
- <code class="inline-code">WrappingTemplateModel.getDefaultObjectWrapper()</code>
- for wrapping variables in the page scope, while used the
- user-specified <code class="inline-code">ObjectWrapper</code> for all other
- scopes (request, session, etc.). Now it uses the user-specified
- wrapper in the page scope as well.</p>
- </li>
-
- <li>
- <p>Bug fixed <a href="https://sourceforge.net/tracker/?func=detail&aid=3128073&group_id=794&atid=100794">[3128073]</a>:
- <code class="inline-code">HashAdapther.containsKey(...)</code> returned
- <code class="inline-code">true</code> for a key that doesn't exist when
- unwrapping the key has failed. As a side effect of the fix,
- <code class="inline-code">BeansWrapper.CAN_NOT_UNWRAP</code> is now private;
- earlier it was public by mistake.</p>
- </li>
-
- <li>
- <p>Big fixed <a href="http://sourceforge.net/tracker/?func=detail&aid=3151085&group_id=794&atid=100794">[3151085]</a>:
- <code class="inline-code">freemarker.jsp.TaglibFactory</code> didn't locate
- tld files properly. This fix gives better compliance with JSP
- specification for resolving and loading tld files.</p>
- </li>
-
- <li>
- <p>Bug fixed: Unwrapping <code class="inline-code">null</code> with a
- <code class="inline-code">BeansWrapper</code> that had a custom null-model
- didn't result in <code class="inline-code">null</code>. Now both unwrapping
- <code class="inline-code">null</code> and the custom null-model gives
- <code class="inline-code">null</code>.</p>
- </li>
-
- <li>
- <p>Log messages doesn't contain line-breaks (CR or LF)
- anymore and quote paths and other arbitrary text with Java
- string literal syntax that also escapes <code class="inline-code"><</code>
- characters as <code class="inline-code">\u003C</code>. These address security
- concerns related to poor quality log appenders and buggy log
- readers. This change is mostly noticeable on template processing
- error entries, which will now quote the exception message. Note
- that how stack traces (the <code class="inline-code">Throwable</code> objects)
- are logged is still up to the logging framework you are
- using.</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_183">Other changes</h2>
-
-
- <ul>
- <li>
- <p>The DTD-s and XSD-s that are included in
- <code class="inline-code">freemarker.jar</code> under
- <code class="inline-code">freemarker/ext/jsp</code> are now under Apache
- Software License, Version 2. This is also clarified in the
- <code class="inline-code">LICENSE.txt</code>. Earlier these files had no clear
- license terms.</p>
- </li>
- </ul>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_3_18.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_16.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/versions_2_3_18.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_3_18.html b/builds/2.3.26-nightly/versions_2_3_18.html
deleted file mode 100644
index e0c149e..0000000
--- a/builds/2.3.26-nightly/versions_2_3_18.html
+++ /dev/null
@@ -1,87 +0,0 @@
-<!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.18 - 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.18">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/versions_2_3_18.html">
-<link rel="canonical" href="http://freemarker.org/docs/versions_2_3_18.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_18.html"><span itemprop="name">2.3.18</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.18"];</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_19.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_17.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="versions_2_3_18" itemprop="headline">2.3.18</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_179" data-menu-target="autoid_179">Changes on the Java side</a></li><li><a class="page-menu-link" href="#autoid_180" data-menu-target="autoid_180">Other changes</a></li></ul> </div><p>Date of release: 2011-05-21</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_179">Changes on the Java side</h2>
-
-
- <ul>
- <li>
- <p>Bugfix <a href="https://sourceforge.net/tracker/?func=detail&aid=3304568&group_id=794&atid=100794">[3304568]</a>:
- 2.3.17 didn't find TLD-s in <code class="inline-code">WEB-INF\lib\*.jar</code>
- unless they were explicitly pointed in the
- <code class="inline-code">web.xml</code> with a <code class="inline-code">taglib</code>
- element. This bug was introduced in 2.3.17.</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_180">Other changes</h2>
-
-
- <ul>
- <li>
- <p>Added <code class="inline-code">LICENSE.txt</code> and
- <code class="inline-code">NOTICE.txt</code> to
- <code class="inline-code">freemarker.jar</code> under
- <code class="inline-code">META-INF</code>.</p>
- </li>
- </ul>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_3_19.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_17.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/versions_2_3_19.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_3_19.html b/builds/2.3.26-nightly/versions_2_3_19.html
deleted file mode 100644
index ef82d33..0000000
--- a/builds/2.3.26-nightly/versions_2_3_19.html
+++ /dev/null
@@ -1,236 +0,0 @@
-<!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.19 - 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.19">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/versions_2_3_19.html">
-<link rel="canonical" href="http://freemarker.org/docs/versions_2_3_19.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_19.html"><span itemprop="name">2.3.19</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.19"];</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_20.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_18.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="versions_2_3_19" itemprop="headline">2.3.19</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_177" data-menu-target="autoid_177">Changes on the FTL side</a></li><li><a class="page-menu-link" href="#autoid_178" data-menu-target="autoid_178">Changes on the Java side</a></li></ul> </div><p>Date of release: 2012-02-29</p><p>Don't miss the <a href="#v2319secfix">security related
- changes</a>, they may affect your application!</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_177">Changes on the FTL side</h2>
-
-
- <ul>
- <li>
- <p><em>Attention</em>: The output of <a href="ref_builtins_date.html#ref_builtin_date_iso">ISO 8601 date/time formatting
- built-ins</a>, introduced in 2.3.17, was slightly changed.
- From now on, the time zone offset, when it's displayed and it
- isn't <code class="inline-code">Z</code>, always includes the minutes. For
- example, <code class="inline-code">15:30:15+02</code> becomes to
- <code class="inline-code">15:30:15+02:00</code> in the template output. Both
- formats are valid according to ISO 8601 (so anything that
- expects ISO 8601 date/times should continue working), but only
- the last format complies with the XML Schema date/time formats,
- hence this change.</p>
- </li>
-
- <li>
- <p>New built-in for escaping inside JSON string literals:
- <a href="ref_builtins_string.html#ref_builtin_json_string"><code>json_string</code></a>.</p>
- </li>
-
- <li>
- <p>Bugfix: Wrong <code class="inline-code">#</code> tags were printed as
- static text instead of causing parsing error if there was no
- correct <code class="inline-code">#</code> tag earlier in the same template.
- Since fixing this would not be 100% backward compatible, the old
- behavior has remained, unless you set the
- <code class="inline-code">incompatible_enhancements</code> setting
- (<code class="inline-code">Configuration.setIncompatibleEnhancements(String)</code>)
- to <code class="inline-code">"2.3.19"</code> or higher.</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_178">Changes on the Java side</h2>
-
-
- <ul>
- <li>
- <p><a name="v2319secfix"></a><em>Attention</em>: This
- release contains two important security workarounds that
- unavoidably make it obvious how some applications can be
- exploited. <em>FreeMarker can't solve these issues on all
- configurations, so please read the details instead of just
- updating FreeMarker!</em> Also, these changes are not 100%
- backward compatible in theory, however it's not probable that
- they will break anything. The two changes are:</p>
-
- <ul>
- <li>
- <p>The character with character code 0
- (<code class="inline-code">\u0000</code>) is not allowed in template paths
- anymore. When a path contains it, FreeMarker behaves as if
- the template was not found.</p>
-
- <p>This is to fix the security problem where a template
- path like <code class="inline-code">"secret.txt\u0000.ftl"</code> is used
- to bypass extension filtering in an application. FreeMarker
- itself doesn't care about the extension, but some
- applications decide based on the extension if they will
- delegate a path to FreeMarker. When they do with such a
- path, the C/C++ implementation behind the storage mechanism
- may sees the path as <code class="inline-code">"secret.txt"</code> as the
- 0 terminates the string in C/C++, and thus load a non-FTL
- file as a template, returning the file contents to the
- attacker.</p>
-
- <p>Note that some HTTP servers, notably Tomcat and the
- Apache HTTP Server blocks URL-s where the URL contains 0
- (<code class="inline-code">%00</code>) outside the query string, thus this
- wasn't exploitable there through such Web URL-s. Some other
- HTTP servers however, like Jetty, doesn't block such
- URL-s.</p>
- </li>
-
- <li>
- <p><code class="inline-code">ClassTemplateLoader</code>, when it's
- created with base path <code class="inline-code">"/"</code> (like with
- <code class="inline-code">new ClassTemplateLoader(someClass, "/")</code>),
- will not allow template paths that contain colon earlier
- than any <code class="inline-code">/</code>, and will act like if the
- template was not found in such case.</p>
-
- <p>This is to fix the security problem where a template
- path like <code class="inline-code">"file:/etc/secret"</code> or
- <code class="inline-code">"http://example.com/malware.ftl"</code> is
- interpreted as a full URL by a
- <code class="inline-code">java.net.URLClassLoader</code> in the
- class-loader hierarchy, and thus allow loading files from
- these URL-s as templates. This is a quirk (or bug) of
- <code class="inline-code">java.net.URLClassLoader</code>, thus this
- problem only exists on systems that use such
- class-loaders.</p>
-
- <p>Beware, some frameworks use their own
- <code class="inline-code">TemplateLoader</code> implementations, and if
- those are vulnerable, they will remain so after updating
- FreeMarker too! Note that this exploit only works if the
- class-loader hierarchy contains an
- <code class="inline-code">URLClassLoader</code> and the class-loader is
- used to load templates without adding any prefix before the
- template path (other than <code class="inline-code">"/"</code>).</p>
- </li>
- </ul>
-
- <p>These security issues mostly only affect applications
- <em>where the user (the visitor) can supply arbitrary
- template paths to the application</em>. This is not the
- case with properly built MVC applications, as there only the MVC
- Controller can be addressed directly, and it's the Controller
- that specifies the template paths. But legacy MVC applications
- based on <a href="pgui_misc_servlet.html#pgui_misc_servlet_model2">JSP
- Model-2</a> often expose the MVC Views as public URL-s ending
- with <code class="inline-code">.ftl</code>, thus allowing the user to give
- arbitrary paths to FreeMarker. Such applications should be
- secured with a <code class="inline-code">security-constratint</code> in
- <code class="inline-code">web.xml</code> as shown in the <a href="pgui_misc_servlet.html#pgui_misc_servlet_model2">related Manual
- section</a>. This should be done regardless of the current
- security fixes.</p>
-
- <p>In general, you should not allow users to specify
- arbitrary template paths, or if you do allow that, you should be
- extra careful with the <code class="inline-code">TemplateLoader</code>
- used.</p>
- </li>
-
- <li>
- <p><code class="inline-code">Configuration</code> has new methods:
- <code class="inline-code">removeTemplateFromCache(...)</code>. This will
- remove the given template for the given locale from the cache,
- so it will be re-loaded regardless of the template update delay
- when it's next time requested.</p>
- </li>
-
- <li>
- <p><code class="inline-code">BeansWrapper</code> ignores setter methods
- from now when introspecting classes. They weren't used anyway,
- so they unnecessarily caused
- "<code class="inline-code">java.beans.IntrospectionException</code>: type
- mismatch between read and write methods" errors.</p>
- </li>
-
- <li>
- <p><code class="inline-code">TemplateClassResolver.SAFER_RESOLVER</code>
- now disallows creating
- <code class="inline-code">freemarker.template.utility.JythonRuntime</code> and
- <code class="inline-code">freemarker.template.utility.Execute</code>. This
- change affects the behavior of the <a href="ref_builtins_expert.html#ref_builtin_new"><code>new</code> built-in</a>
- if FreeMarker was configured to use
- <code class="inline-code">SAFER_RESOLVER</code>, which is not the default
- until 2.4 and is hence improbable.</p>
- </li>
-
- <li>
- <p>Bug fixed: Calling varargs methods now indeed works.
- (Earlier it only worked for overloaded methods.)</p>
- </li>
-
- <li>
- <p>Bug fixed <a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1837697&group_id=794&atid=100794">[1837697]</a>
- <a href="https://sourceforge.net/tracker/index.php?func=detail&aid=2831150&group_id=794&atid=100794">[2831150]</a>
- <a href="https://sourceforge.net/tracker/index.php?func=detail&aid=3039096&group_id=794&atid=100794">[3039096]</a>
- <a href="https://sourceforge.net/tracker/index.php?func=detail&aid=3165425&group_id=794&atid=100794">[3165425]</a>:
- Jython support now works with Jython 2.2 and 2.5.</p>
- </li>
-
- <li>
- <p>Bug fixed <a href="https://sourceforge.net/tracker/index.php?func=detail&aid=3325103&group_id=794&atid=100794">[3325103]</a>:
- <code class="inline-code">TemplateException</code>-s and
- <code class="inline-code">ParseException</code>-s are now serializable.</p>
- </li>
- </ul>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_3_20.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_18.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/versions_2_3_2.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_3_2.html b/builds/2.3.26-nightly/versions_2_3_2.html
deleted file mode 100644
index 899e309..0000000
--- a/builds/2.3.26-nightly/versions_2_3_2.html
+++ /dev/null
@@ -1,77 +0,0 @@
-<!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.2 - 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.2">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/versions_2_3_2.html">
-<link rel="canonical" href="http://freemarker.org/docs/versions_2_3_2.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_2.html"><span itemprop="name">2.3.2</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.2"];</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_3.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_1.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="versions_2_3_2" itemprop="headline">2.3.2</h1>
-</div></div><p>Date of release: 2005-01-22</p><p>Bugfix release.</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_213">Changes on the Java side</h2>
-
-
- <ul>
- <li>
- <p>Bugfix: If you use JSP taglibs in FreeMarker templates,
- FreeMarker possibly tried to get DTD-s from the Sun Web site
- because of a bug introduced with FreeMarker 2.3.1. This was a
- serious problem since if your server is offline or the Sun Web
- site becomes temporarily inaccessible the templates that are
- using JSP taglibs will possibly die with error.</p>
- </li>
-
- <li>
- <p>Bugfix: The <code class="inline-code">DefaultObjectWrapper</code> has
- ignored the value of the <code class="inline-code">nullModel</code> property.
- (Note that it's discouraged to use a "null
- model".)</p>
- </li>
- </ul>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_3_3.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_1.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>\u20132017
-<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>
[14/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/versions_2_2.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_2.html b/builds/2.3.26-nightly/versions_2_2.html
deleted file mode 100644
index a4854d3..0000000
--- a/builds/2.3.26-nightly/versions_2_2.html
+++ /dev/null
@@ -1,1107 +0,0 @@
-<!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.2 - 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.2">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/versions_2_2.html">
-<link rel="canonical" href="http://freemarker.org/docs/versions_2_2.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_2.html"><span itemprop="name">2.2</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.2"];</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_2_1.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_1_5.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="versions_2_2" itemprop="headline">2.2</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_260" data-menu-target="autoid_260">Non backward-compatible changes!</a></li><li><a class="page-menu-link" href="#autoid_261" data-menu-target="autoid_261">Changes in FTL (FreeMarker Template Language)</a></li><li><a class="page-menu-link" href="#autoid_262" data-menu-target="autoid_262">Changes on the Java side</a></li><li><a class="page-menu-link" href="#autoid_263" data-menu-target="autoid_263">Other changes</a></li><li><a class="page-menu-link" href="#autoid_264" data-menu-target="autoid_264">The history of the releases before the final version</a><ul><li><a class="page-menu-link" href="#autoid_265" data-menu-target="autoid_265">Differences between the final and RC2 releases</a></li><li><a class="page-menu-link" href="#autoid_266" data-menu-target="autoid_266">Differences between the RC2 and RC1 releases</a></li><li><a class="page-menu-link" href="#autoid_267" data-menu-target="autoid_267">Differences between the Preview 2 and RC1 r
eleases</a></li><li><a class="page-menu-link" href="#autoid_268" data-menu-target="autoid_268">Differences between the Preview 1 and Preview 2
-releases</a></li></ul></li></ul> </div><p>Date of release: 2003-03-27</p><p>This release introduces some really important new features.
- Unfortunately, evolution was painful again; we have a few non-backward
- compatible changes (see below). Also, for those of you awaiting
- desired native date/time type, sorry, it is still not here (because of
- some internal chaos in the team... stand by, it's coming).</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_260">Non backward-compatible changes!</h2>
-
-
- <ul>
- <li>
- <p>Macros are now plain variables. This means that if you are
- unlucky and you have both a macro and another variable with the
- same name, now the variable will overwrite the macro, so your
- old template will malfunction. If you have a collection of
- common macros, you should use the new <a href="dgui_misc_namespace.html">namespace feature</a> to
- prevent accidental clashes with the variables used in the
- templates.</p>
- </li>
-
- <li>
- <p>With the introduction of the new <a href="dgui_misc_namespace.html">namespace support</a>,
- <code class="inline-code">global</code> and <code class="inline-code">assign</code>
- directives are no longer synonyms. <code class="inline-code">assign</code>
- creates a variable in the current <code class="inline-code">namespace</code>,
- while <code class="inline-code">global</code> creates variable that is visible
- from all namespaces (as if the variable would be in the
- data-model). Thus, the variable created with
- <code class="inline-code">assign</code> is more specific, and hides the
- variable of the same name created with
- <code class="inline-code">global</code>. As a result, if you use both
- <code class="inline-code">global</code> and <code class="inline-code">assign</code> mixed
- for the same variable in your templates, now they will
- malfunction. The solution is to search-and-replace all
- <code class="inline-code">global</code>s in your old templates with
- <code class="inline-code">assign</code>.</p>
- </li>
-
- <li>
- <p>The reserved hash <code class="inline-code">root</code> no longer exists
- as a predefined variable (we no longer have reserved variables).
- Use <a href="dgui_template_exp.html#dgui_template_exp_var_special">special
- variable expressions</a> to achieve similar effects. However,
- we have no equivalent replacement for <code class="inline-code">root</code>
- because of the changes in the variable scopes caused by the
- introduction of namespaces. You may should use
- <code class="inline-code">.globals</code> or
- <code class="inline-code">.namespace</code>.</p>
- </li>
-
- <li>
- <p>The <code class="inline-code">BeansWrapper</code> no longer exposes
- native Java arrays, booleans, numbers, enumerations, iterators,
- and resource bundles as <code class="inline-code">TemplateScalarModel</code>.
- This way, number objects wrapped through
- <code class="inline-code">BeansWrapper</code> are subject to FreeMarker's
- number formatting machinery. Also, booleans can be formatted
- using the <code class="inline-code">?string</code> built-in.</p>
- </li>
-
- <li>
- <p>The signature of
- <code class="inline-code">Configuration.setServletContextForTemplateLoading</code>
- has been changed: the first parameter is now
- <code class="inline-code">Object</code> instead of
- <code class="inline-code">javax.servlet.ServletContext</code>. Thus, you have
- to recompile your classes that call this method. The change was
- required to prevent class-loading failure when
- <code class="inline-code">javax.servlet</code> classes are not available and
- you would not call this method.</p>
- </li>
-
- <li>
- <p>This release introduces a <a href="dgui_misc_whitespace.html">parse-time white-space
- remover</a> that strips some of the typical superfluous
- white-space around FreeMarker tags and comments. <em>This
- feature is on by default!</em> Most probably this will not
- cause problems if you generate white-space neutral output like
- HTML. But if it does cause undesirable reformatting in output
- you generate, you can disable it with
- <code class="inline-code">config.setWhitespaceStripping(false)</code>. Also,
- you can enable/disable it on a per-template basis with the new
- <a href="ref_directive_ftl.html#ref.directive.ftl"><code>ftl</code></a>
- directive.</p>
- </li>
-
- <li>
- <p>Some new directives were introduced:
- <code class="inline-code">nested</code>, <code class="inline-code">import</code>,
- <code class="inline-code">escape</code>, <code class="inline-code">noescape</code>,
- <code class="inline-code">t</code>, <code class="inline-code">rt</code>,
- <code class="inline-code">lt</code>. This means that if you are unlucky and
- the text of your template contains something like
- <code class="inline-code"><nested></code>, then that will be
- misinterpreted as a directive. To prevent this kind of problem
- in the future, we recommend everybody to switch from the old
- syntax to the new syntax ("strict syntax"). The
- strict syntax will be the the default syntax starting from some
- of the later releases anyway. We plan to release a conversion
- tool for converting old templates. For more information please
- read: <a href="ref_depr_oldsyntax.html">Template Language Reference/Deprecated FTL constructs/Old FTL syntax</a></p>
- </li>
-
- <li>
- <p>The data-model created by the
- <code class="inline-code">FreemarkerServlet</code> now uses automatic scope
- discovery, so writing
- <code class="inline-code">Application.<em class="code-color">attrName</em></code>,
- <code class="inline-code">Session.<em class="code-color">attrName</em></code>,
- <code class="inline-code">Request.<em class="code-color">attrName</em></code>
- is no longer mandatory; it's enough to write
- <code class="inline-code"><em class="code-color">attrName</em></code> (for more
- information <a href="pgui_misc_servlet.html#topic.servlet.scopeAttr">read
- this</a>). This may break an old template if that rely on the
- non-existence of certain top-level variables.</p>
- </li>
-
- <li>
- <p><code class="inline-code">FreemarkerServlet</code> now uses the encoding
- of the template file for the output, unless you specify the
- encoding in the <code class="inline-code">ContentType</code> init-param, such
- as <code class="inline-code">text/html; charset=UTF-8</code>.</p>
- </li>
-
- <li>
- <p>The format of template paths is now more restricted than
- before. The path must not use <code class="inline-code">/</code>,
- <code class="inline-code">./</code> and <code class="inline-code">../</code> and
- <code class="inline-code">://</code> with other meaning as they have in URL
- paths (or in UN*X paths). The characters <code class="inline-code">*</code>
- and <code class="inline-code">?</code> are reserved. Also, the template loader
- must not want paths starting with <code class="inline-code">/</code>. For more
- information please read: <a href="pgui_config_templateloading.html">Programmer's Guide/The Configuration/Template loading</a></p>
- </li>
-
- <li>
- <p>Till now
- <code class="inline-code">TemplateTransformModel.getWriter</code> has received
- null as parameter map if the transform was called without
- parameters. From now, it will receive an empty Map instead. Note
- that the previous API documentation didn't state that it always
- receives null if there are no parameters, so hopelessly only
- very few classes exploit this design mistake.</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_261">Changes in FTL (FreeMarker Template Language)</h2>
-
-
- <ul>
- <li>
- <p>User-defined directives: Transform and macro call syntax
- has been unified; they can be called in the same way, as
- user-defined directives. This also means that macros support
- named parameters and nested content (like the -- now deprecated
- -- <code class="inline-code">transform</code> directive did). For example, if
- you have a macro called <code class="inline-code">sect</code>, you may call it
- via <code class="inline-code"><@sect title="Blah" style="modern">Blah
- blah...</@sect></code>. For more information read:
- <a href="dgui_misc_userdefdir.html">Template Author's Guide/Miscellaneous/Defining your own directives</a></p>
- </li>
-
- <li>
- <p>Macros are now plain variables. This significantly
- simplifies FreeMarker semantics, while providing more
- flexibility; for example you can pass macros as parameters to
- other macros and transforms. As for the problem of clashing
- commonly-used-macro and variable names, we provide a more
- powerful solution: namespaces.</p>
- </li>
-
- <li>
- <p>Namespaces: Names-spaces are invaluable if you want to
- assemble collections ("libraries") of macros and
- transforms (and other variables), and then use them in any
- template without worrying about accidental name clashes with the
- application specific and temporary variables, or with the
- variables of other collections you want to use in the same
- template. This is extremely important if FreeMarker users want
- to share their macro/transform collections. For more information
- read: <a href="dgui_misc_namespace.html">Template Author's Guide/Miscellaneous/Namespaces</a></p>
- </li>
-
- <li>
- <p>With the introduction of namespaces our variable related
- terminology changed. As a result, <code class="inline-code">assign</code> is
- no longer synonymous with <code class="inline-code">global</code>. The
- <code class="inline-code">assign</code> directive has been undeprecated, and
- should be used instead of <code class="inline-code">global</code> almost
- everywhere. In the new approach <code class="inline-code">assign</code>
- creates variables in the current namespace, while
- <code class="inline-code">global</code> creates a variable that is visible
- from all namespaces (as if the variable were in the root of the
- data-model). A variable created with <code class="inline-code">assign</code>
- in the current namespace hides the variable of the same name
- that was created with <code class="inline-code">global</code>.</p>
- </li>
-
- <li>
- <p><code class="inline-code">ftl</code> directive: With this directive you
- can give information about the template for FreeMarker, like the
- encoding (charset) of the template, the used FTL syntax variant,
- etc. Also, this directive helps you to write templates that are
- less dependent on FreeMarker configuration settings, also it
- helps third-party tools to identify and correctly parse
- FreeMarker templates. For more information see: <a href="ref_directive_ftl.html#ref.directive.ftl"><code>ftl</code>
- directive</a></p>
- </li>
-
- <li>
- <p>White-space stripping: FreeMarker now automatically
- removes some of the typical superfluous white-spaces around
- FreeMarker tags and comments, like the indentation spaces
- before- and line-break after <code class="inline-code"><#if ...></code>
- tags. For more information read: <a href="dgui_misc_whitespace.html#dgui_misc_whitespace_stripping">Template Author's Guide/Miscellaneous/White-space handling/White-space stripping</a></p>
- </li>
-
- <li>
- <p>New directive to apply a common ("escaping") expression to
- all interpolations in a block: <a href="ref_directive_escape.html#ref.directive.escape"><code>escape</code></a>.
- The name comes from the common usage of this directive for
- automatic HTML-escaping of interpolations.</p>
- </li>
-
- <li>
- <p>The new and preferred way of number formatting with
- <code class="inline-code">string</code> built-in is
- <code class="inline-code">foo?string(format)</code>, instead of the less
- natural <code class="inline-code">foo?string[format]</code>.</p>
- </li>
-
- <li>
- <p>The <code class="inline-code">string</code> built-in works for boolean
- values. For example: <code class="inline-code">${spamFilter?string("enabled",
- "disabled")}</code>. For more information <a href="ref_builtins_boolean.html#ref_builtin_string_for_boolean">read the
- reference</a>.</p>
- </li>
-
- <li>
- <p>The default strings for outputting boolean value using the
- <code class="inline-code">string</code> built-in can be set using the
- <code class="inline-code">boolean_format</code> setting.</p>
- </li>
-
- <li>
- <p>Comments can be placed inside FTL tags and interpolations.
- For example: <code class="inline-code"><#assign <#-- a comment --> x =
- 3></code></p>
- </li>
-
- <li>
- <p>All letters and numbers are enabled in variable names,
- also <code class="inline-code">$</code> is allowed (as in Java programming
- language). Thus you can use accents, Arabic letters, Chinese
- letters, etc.</p>
- </li>
-
- <li>
- <p>String literals can be quoted with apostrophe-quote.
- <code class="inline-code">"foo"</code> and <code class="inline-code">'foo'</code> are
- equivalent.</p>
- </li>
-
- <li>
- <p>New <a href="ref_builtins_string.html">string
- built-ins</a>: <code class="inline-code">index_of</code>,
- <code class="inline-code">last_index_of</code>,
- <code class="inline-code">starts_with</code>, <code class="inline-code">ends_with</code>,
- <code class="inline-code">replace</code>, <code class="inline-code">split</code>,
- <code class="inline-code">chop_linebreak</code>,
- <code class="inline-code">uncap_first</code>.</p>
- </li>
-
- <li>
- <p>New <a href="ref_builtins_sequence.html">sequence
- built-ins</a>: <code class="inline-code">sort</code>,
- <code class="inline-code">sort_by</code>.</p>
- </li>
-
- <li>
- <p>New built-ins for experts to check the type of a variable.
- See: <a href="ref_builtins_expert.html#ref_builtin_isType"><code>is_<em>...</em></code>
- built-ins</a></p>
- </li>
-
- <li>
- <p>New built-in for experts to create a variable of certain
- Java <code class="inline-code">TemplateModel</code> implementation. See: <a href="ref_builtins_expert.html#ref_builtin_new"><code>new</code>
- built-in</a></p>
- </li>
-
- <li>
- <p>New built-in, <a href="ref_builtins_expert.html#ref_builtin_namespace"><code>namespace</code></a>,
- to get the namespace of a macro.</p>
- </li>
-
- <li>
- <p>New expression type: special variable expression. To
- prevent backward compatibility problems when we introduce new
- predefined variables, from now <a href="dgui_template_exp.html#dgui_template_exp_var_special">special variable
- expressions</a> are used to access them.</p>
- </li>
-
- <li>
- <p>New directives: <code class="inline-code">t</code>,
- <code class="inline-code">rt</code> and <code class="inline-code">lt</code> directives allow
- you to do explicit white-space removal in extreme FTL
- applications. For more information read <a href="ref_directive_t.html#ref.directive.t">the reference</a>.</p>
- </li>
-
- <li>
- <p><code class="inline-code">assign</code>, <code class="inline-code">local</code> and
- <code class="inline-code">global</code> now can capture the output generated
- be the nested template fragment into the variable. This
- deprecates <code class="inline-code">capture_output</code> transform. More
- information: <a href="ref_directive_assign.html#ref.directive.assign">assign
- directive reference</a></p>
- </li>
-
- <li>
- <p>Bulk assignments (as <code class="inline-code"><#assign x=1, y=2,
- z=3></code>) no longer need colon to separate the
- assignments (as <code class="inline-code"><#assign x=1 y=2 z=3></code>),
- although it is still allowed to preserve backward
- compatibility.</p>
- </li>
-
- <li>
- <p>Path that contains <code class="inline-code">//:</code> is considered as
- absolute path.</p>
- </li>
-
- <li>
- <p><code class="inline-code">include</code> and
- <code class="inline-code">transform</code> directives no longer need a
- semicolon to separate the template or transform name from the
- parameter list, although it is still allowed to preserve
- backward compatibility.</p>
- </li>
-
- <li>
- <p><code class="inline-code">#</code>-less tag syntax is deprecated (but
- still working). That is, you should write
- <code class="inline-code"><#<em class="code-color">directive
- ...</em>></code> instead of
- <code class="inline-code"><<em class="code-color">directive
- ...</em>></code>, and
- <code class="inline-code"></#<em class="code-color">directive
- ...</em>></code> instead of
- <code class="inline-code"></<em class="code-color">directive
- ...</em>></code>. For more info read: <a href="ref_depr_oldsyntax.html">Template Language Reference/Deprecated FTL constructs/Old FTL syntax</a></p>
- </li>
-
- <li>
- <p><code class="inline-code">foreach</code> is depreciated (but still
- working). Use <a href="ref_directive_list.html#ref.directive.list"><code>list</code></a>
- instead.</p>
- </li>
-
- <li>
- <p>Bugfix: Undefined variables in hash and sequence
- constructors (as <code class="inline-code">[a, b, c]</code>) didn't caused
- errors.</p>
- </li>
-
- <li>
- <p>Bugfix: String concatenation had performance problem if
- there was multiple concatenations chained, as:
- <code class="inline-code">"a"+x+"a"+x+"a"+x+"a"+x+"a"+x</code>.</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_262">Changes on the Java side</h2>
-
-
- <ul>
- <li>
- <p>Arbitrary JSP custom tags can be used as FreeMarker
- transforms in <code class="inline-code">FreemarkerServlet</code>-driven
- templates. More information: <a href="pgui_misc_servlet.html">Programmer's Guide/Miscellaneous/Using FreeMarker with servlets</a></p>
- </li>
-
- <li>
- <p>Various improvements for
- <code class="inline-code">BeansWrapper</code>:</p>
-
- <ul>
- <li>
- <p>The <code class="inline-code">BeansWrapper</code> no longer exposes
- arbitrary objects as
- <code class="inline-code">TemplateScalarModel</code>s, only
- <code class="inline-code">java.lang.String</code> and
- <code class="inline-code">Character</code> objects. This way, number
- objects wrapped through <code class="inline-code">BeansWrapper</code> are
- subject to FreeMarker's number formatting machinery. As a
- side effect, non-string and non-number objects that were
- previously accepted in equality and inequality operations
- (because they had a string representation) will now cause
- the engine to throw exception on comparison attempt.</p>
- </li>
-
- <li>
- <p><code class="inline-code">java.lang.Character</code> objects are
- exposed as scalars through
- <code class="inline-code">BeansWrapper</code>.</p>
- </li>
-
- <li>
- <p>Experimental feature: With the
- <code class="inline-code">setSimpleMapWrapper</code> method of
- <code class="inline-code">BeansWrapper</code> you can configure it to wrap
- <code class="inline-code">java.util.Map</code>-s as
- <code class="inline-code">TemplateHashModelEx</code>-s, and do not expose
- the methods of the object.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p><code class="inline-code">TransformControl</code> interface (was
- experimental earlier): If the <code class="inline-code">Writer</code> returned
- by <code class="inline-code">TemplateTransformModel.getWriter</code>
- implements this interface, it can instruct the engine to skip or
- to repeat evaluation of the nested content, and gets notified
- about exceptions that are thrown during the nested content
- evaluation. Note that the <code class="inline-code">onStart</code> and
- <code class="inline-code">afterBody</code> methods now are allowed to throw
- <code class="inline-code">IOException</code>. For more information please read
- the API documentation.</p>
- </li>
-
- <li>
- <p>Localized lookup can be disabled with the new
- <code class="inline-code">Configuration</code> methods:
- <code class="inline-code">set/getLocalizedLookup</code>,
- <code class="inline-code">clearTemplateCache</code></p>
- </li>
-
- <li>
- <p>The new interface
- <code class="inline-code">freemarker.cache.CacheStorage</code> allows users to
- plug custom template caching strategies with the
- <code class="inline-code">cache_storage</code> setting. The core package now
- ships with two implementations:
- <code class="inline-code">SoftCacheStorage</code> and
- <code class="inline-code">StrongCacheStorage</code>. For more information
- read: <a href="pgui_config_templateloading.html">Programmer's Guide/The Configuration/Template loading</a></p>
- </li>
-
- <li>
- <p>You can set settings with string name and string value
- with the new <code class="inline-code">setSetting(String key, String
- value)</code> method of <code class="inline-code">Configurable</code>
- super-classes (as <code class="inline-code">Configuration</code>). Also you
- can load settings from <code class="inline-code">.properties</code> file with
- the <code class="inline-code">setSettings</code> method.</p>
- </li>
-
- <li>
- <p>Other new <code class="inline-code">Configuration</code> methods:
- <code class="inline-code">clearTemplateCache</code>,
- <code class="inline-code">clearSharedVariables</code>,
- <code class="inline-code">getTemplateLoader</code>, and
- <code class="inline-code">clone</code>.</p>
- </li>
-
- <li>
- <p>Changes to <code class="inline-code">TemplateTransformModel</code>
- interface: <code class="inline-code">getWriter</code> can throw
- <code class="inline-code">IOException</code>, and can return
- <code class="inline-code">null</code> if the transform does not support body
- content.</p>
- </li>
-
- <li>
- <p>Till now
- <code class="inline-code">TemplateTransformModel.getWriter</code> has received
- null as parameter map if the transform was called without
- parameters. From now, it will receive an empty Map instead. Note
- that the previous API documentation didn't state that it always
- receives null if there are no parameters, so hopelessly only
- very few classes exploit this design mistake.</p>
- </li>
-
- <li>
- <p>Various improvements for
- <code class="inline-code">FreemarkerServlet</code>:</p>
-
- <ul>
- <li>
- <p>The data-model now uses automatic scope discovery, so
- writing
- <code class="inline-code">Application.<em class="code-color">attrName</em></code>,
- <code class="inline-code">Session.<em class="code-color">attrName</em></code>,
- <code class="inline-code">Request.<em class="code-color">attrName</em></code>
- is no longer mandatory; it's enough to write
- <code class="inline-code"><em class="code-color">attrName</em></code>. For
- more information <a href="pgui_misc_servlet.html#topic.servlet.scopeAttr">read this</a>.</p>
- </li>
-
- <li>
- <p><code class="inline-code">FreemarkerServlet</code> now uses the
- encoding of the template file for the output, unless you
- specify the encoding in the <code class="inline-code">ContentType</code>
- init-param, such as <code class="inline-code">text/html;
- charset=UTF-8</code>.</p>
- </li>
-
- <li>
- <p>All <code class="inline-code">Configuration</code> level settings
- can by set with Servlet init-params
- (<code class="inline-code">template_exception_handler</code>,
- <code class="inline-code">locale</code>, <code class="inline-code">number_format</code>,
- etc.).</p>
- </li>
-
- <li>
- <p>The object wrapper the servlet internally uses is now
- set as the default object wrapper for its
- <code class="inline-code">Configuration</code> instance.</p>
- </li>
-
- <li>
- <p>It no longer forces session creation for requests that
- don't belong to an existing session, improving
- scalability.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>JDOM independent XML-wrapping:
- <code class="inline-code">freemarker.ext.xml.NodeListModel</code> is a
- re-implementation of
- <code class="inline-code">freemarker.ext.jdom.NodeListModel</code> that does
- not rely on JDOM; you don't need JDOM .jar anymore. The new
- <code class="inline-code">NodeListModel</code> automatically uses W3C DOM,
- dom4j, or JDOM, depending on which library is available (that
- is, depending on what object do you pass to its
- constructor).</p>
- </li>
-
- <li>
- <p>Bugfix: <code class="inline-code">WebappTemplateLoader</code>: Template
- updating didn't worked correctly with Tomcat due the caching of
- resources. Now <code class="inline-code">WebappTemplateLoader</code> tries to
- access the resources directly as <code class="inline-code">File</code>, if it
- is possible, thus bypasses the caching.</p>
- </li>
-
- <li>
- <p>Various bug-fixes for
- <code class="inline-code">FreemarkerServlet</code>:</p>
-
- <ul>
- <li>
- <p>The servlet now loads the correct template if it was
- called through
- <code class="inline-code">RequestDispatcher.include</code>.</p>
- </li>
-
- <li>
- <p>The caching of <code class="inline-code">HttpServletRequest</code>
- objects is now compliant with the servlet
- specification.</p>
- </li>
-
- <li>
- <p><code class="inline-code">TemplateException</code>s was suppressed
- in certain situations resulting in half-rendered pages
- without error message.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Bugfix: FreeMarker didn't work if the
- <code class="inline-code">javax.servlet</code> classes was not available,
- because <code class="inline-code">Configuration</code> explicitly referred to
- <code class="inline-code">javax.servlet.ServletContext</code>.</p>
- </li>
-
- <li>
- <p>Bugfix: classes may were not found if they was available
- only in the <code class="inline-code">WEB-INF</code>, and FreeMarker tried to
- load the class dynamically.</p>
- </li>
-
- <li>
- <p>Bugfix: the <code class="inline-code">Template</code> constructor (and
- thus <code class="inline-code">Configuration.getTemplate</code>) sometimes
- threw <code class="inline-code">TokenMgrError</code> (a non-checked exception)
- instead of <code class="inline-code">ParseException</code>.</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_263">Other changes</h2>
-
-
- <ul>
- <li>
- <p>The Web application related examples has been
- replaced.</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_264">The history of the releases before the final version</h2>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_265">Differences between the final and RC2 releases</h3>
-
-
- <ul>
- <li>
- <p>You can load settings from
- <code class="inline-code">.properties</code> file with the
- <code class="inline-code">setSettings</code> method of
- <code class="inline-code">Configuration</code> and other
- <code class="inline-code">Configurable</code> subclasses.</p>
- </li>
-
- <li>
- <p>New string built-in:
- <code class="inline-code">uncap_first</code></p>
- </li>
-
- <li>
- <p>Bugfix: When exposing an XML document to a template and
- accessing it with XPath using Jaxen a
- <code class="inline-code">ClassCastException</code> has occurred.</p>
- </li>
-
- <li>
- <p>Bugfix: The template cache has loaded templates with bad
- <code class="inline-code">Configuration</code> instance in certain
- situations if you use not the static default
- <code class="inline-code">Configuration</code> instance.</p>
- </li>
- </ul>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_266">Differences between the RC2 and RC1 releases</h3>
-
-
- <ul>
- <li>
- <p>Non backward compatible change!:
- <code class="inline-code">FreemarkerServlet</code> now uses the encoding of
- the template file for the output, unless you specify the
- encoding in the <code class="inline-code">ContentType</code> init-param,
- such as <code class="inline-code">text/html; charset=UTF-8</code>.</p>
- </li>
-
- <li>
- <p>Non backward compatible change compared to RC1!: The
- <code class="inline-code">capture_output</code> transform creates variable
- in the current namespace (as <code class="inline-code">assign</code>
- directive) with the <code class="inline-code">var</code> parameter, not a
- global variable.</p>
- </li>
-
- <li>
- <p>The new and preferred way of number formatting with
- <code class="inline-code">string</code> built-in is
- <code class="inline-code">foo?string(format)</code>, instead of the less
- natural <code class="inline-code">foo?string[format]</code>.</p>
- </li>
-
- <li>
- <p>The <code class="inline-code">string</code> built-in works for boolean
- values. For example: <code class="inline-code">${spamFilter?string("enabled",
- "disabled")}</code>. For more information <a href="ref_builtins_boolean.html#ref_builtin_string_for_boolean">read the
- reference</a>.</p>
- </li>
-
- <li>
- <p>The default strings for outputting boolean value using
- the <code class="inline-code">string</code> built-in can be set using the
- <code class="inline-code">boolean_format</code> setting.</p>
- </li>
-
- <li>
- <p>String literals can be quoted with apostrophe-quote.
- <code class="inline-code">"foo"</code> and <code class="inline-code">'foo'</code> are
- equivalent.</p>
- </li>
-
- <li>
- <p>The new interface
- <code class="inline-code">freemarker.cache.CacheStorage</code> allows users
- to plug custom template caching strategies with the
- <code class="inline-code">cache_storage</code> setting. The core package now
- ships with two implementations:
- <code class="inline-code">SoftCacheStorage</code> and
- <code class="inline-code">StrongCacheStorage</code>. For more information
- read: <a href="pgui_config_templateloading.html">Programmer's Guide/The Configuration/Template loading</a></p>
- </li>
-
- <li>
- <p>You can set settings with string name and string value
- with the new <code class="inline-code">setSetting(String key, String
- value)</code> method of <code class="inline-code">Configurable</code>
- super-classes (as <code class="inline-code">Configuration</code>).</p>
- </li>
-
- <li>
- <p>Other new <code class="inline-code">Configuration</code> methods:
- <code class="inline-code">getTemplateLoader</code>,
- <code class="inline-code">clone</code>.</p>
- </li>
-
- <li>
- <p><code class="inline-code">assign</code>, <code class="inline-code">local</code> and
- <code class="inline-code">global</code> now can capture the output generated
- be the nested template fragment into the variable. This
- deprecates <code class="inline-code">capture_output</code> transform. More
- information: <a href="ref_directive_assign.html#ref.directive.assign">assign
- directive reference</a></p>
- </li>
-
- <li>
- <p>Other new <code class="inline-code">Configuration</code> methods:
- <code class="inline-code">getTemplateLoader</code>,
- <code class="inline-code">clone</code>.</p>
- </li>
-
- <li>
- <p>Changes to <code class="inline-code">TemplateTransformModel</code>
- interface: <code class="inline-code">getWriter</code> can throw
- <code class="inline-code">IOException</code>, and can return
- <code class="inline-code">null</code> if the transform does not support body
- content.</p>
- </li>
-
- <li>
- <p>Till now
- <code class="inline-code">TemplateTransformModel.getWriter</code> has
- received null as parameter map if the transform was called
- without parameters. From now, it will receive an empty Map
- instead. Note that the previous API documentation didn't state
- that it always receives null if there are no parameters, so
- hopelessly only very few classes exploit this design
- mistake.</p>
- </li>
-
- <li>
- <p>Changes to <code class="inline-code">TemplateControl</code> interface:
- <code class="inline-code">onStart</code> and <code class="inline-code">afterBody</code>
- methods are now allowed to throw
- <code class="inline-code">IOException</code>.</p>
- </li>
-
- <li>
- <p>Path that contains <code class="inline-code">//:</code> is considered
- as absolute path.</p>
- </li>
-
- <li>
- <p>New <a href="ref_builtins_string.html">string
- built-ins</a>: <code class="inline-code">index_of</code>,
- <code class="inline-code">last_index_of</code>,
- <code class="inline-code">starts_with</code>, <code class="inline-code">ends_with</code>,
- <code class="inline-code">replace</code>, <code class="inline-code">split</code>,
- <code class="inline-code">chop_linebreak</code>.</p>
- </li>
-
- <li>
- <p>New <a href="ref_builtins_sequence.html">sequence
- built-ins</a>: <code class="inline-code">sort</code>,
- <code class="inline-code">sort_by</code>.</p>
- </li>
-
- <li>
- <p>All <code class="inline-code">Configuration</code> level settings can
- by set with Servlet init-params
- (<code class="inline-code">template_exception_handler</code>,
- <code class="inline-code">locale</code>, <code class="inline-code">number_format</code>,
- etc.).</p>
- </li>
-
- <li>
- <p>Bugfix: classes may were not found if they was available
- only in the <code class="inline-code">WEB-INF</code>, and FreeMarker tried
- to load the class dynamically.</p>
- </li>
-
- <li>
- <p>Bugfix: <code class="inline-code">setLocalizedLookup(false)</code> of
- <code class="inline-code">Configuration</code> was overridden when you have
- called <code class="inline-code">setTemplateLoader</code>.</p>
- </li>
-
- <li>
- <p>Bugfix: String concatenation had performance problem if
- there was multiple concatenations chained, as:
- <code class="inline-code">"a"+x+"a"+x+"a"+x+"a"+x+"a"+x</code>.</p>
- </li>
-
- <li>
- <p>Bugfix: white-space stripping was not worked with tags
- spanning over multiple lines.</p>
- </li>
-
- <li>
- <p>Bugfix: Removing several dependencies on JDK 1.3, so
- FreeMarker can be build for JDK 1.2.2.</p>
- </li>
- </ul>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_267">Differences between the Preview 2 and RC1 releases</h3>
-
-
- <ul>
- <li>
- <p><code class="inline-code">ftl</code> is now stricter, and does not
- allow custom parameters. To associate custom attributes to
- templates, we may add a new directive later, if there is a
- demand for it.</p>
- </li>
-
- <li>
- <p><code class="inline-code">escape</code> directive does not affect
- numerical interpolations
- (<code class="inline-code">#{<em class="code-color">...</em>}</code>)
- anymore, as it has caused errors with string escapes as
- <code class="inline-code">?html</code>.</p>
- </li>
-
- <li>
- <p>The <code class="inline-code">normalizeName</code> method of
- <code class="inline-code">freemarker.cache.TemplateLoader</code> has been
- removed, because it has caused too many complications.
- Instead, normalization happens on a single point in the
- <code class="inline-code">TempateCache</code>. In consequence, FreeMarker is
- now stricter about the format of template paths, as things
- like <code class="inline-code">/../</code> are interpreted by the
- core.</p>
- </li>
-
- <li>
- <p>Experimental feature: With the
- <code class="inline-code">setSimpleMapWrapper</code> method of
- <code class="inline-code">BeansWrapper</code> you can configure it to wrap
- <code class="inline-code">java.util.Map</code>-s as
- <code class="inline-code">TemplateHashModelEx</code>-s, and do not expose
- the methods of the object.</p>
- </li>
-
- <li>
- <p>New <code class="inline-code">Configuration</code> methods:
- <code class="inline-code">set/getLocalizedLookup</code>,
- <code class="inline-code">clearTemplateCache</code>,
- <code class="inline-code">clearSharedVariables</code>.</p>
- </li>
-
- <li>
- <p>More cleanups in the <code class="inline-code">Environment</code>
- API.</p>
- </li>
-
- <li>
- <p>Better JSP standard compliance: JSP page-scope variables
- are the global variables that were created in the template
- (not the variables of the data-model).</p>
- </li>
-
- <li>
- <p>JDOM independent XML-wrapping:
- <code class="inline-code">freemarker.ext.xml.NodeListModel</code> is a
- re-implementation of
- <code class="inline-code">freemarker.ext.jdom.NodeListModel</code> that does
- not rely on JDOM; you don't need JDOM .jar anymore. The new
- <code class="inline-code">NodeListModel</code> automatically uses W3C DOM,
- dom4j, or JDOM, depending on which library is available (that
- is, depending on what object do you pass to its
- constructor).</p>
- </li>
-
- <li>
- <p>Bugfix: <code class="inline-code">WebappTemplateLoader</code>:
- Template updating didn't worked correctly with Tomcat due the
- caching of resources. Now
- <code class="inline-code">WebappTemplateLoader</code> tries to access the
- resources directly as <code class="inline-code">File</code>, if it is
- possible, thus bypasses the caching.</p>
- </li>
-
- <li>
- <p>Bugfix: Templates loaded with
- <code class="inline-code">MultiTemplateLoader</code> subclasses was removed
- from the template cache after the template update delay has
- elapsed (5 seconds by default) even if the template file was
- unchanged. This can cause lot of extra load for a high-traffic
- server if you have many templates or if the template update
- delay was set to 0 second.</p>
- </li>
-
- <li>
- <p>Bugfix: Undefined variables in hash and sequence
- constructors (as <code class="inline-code">[a, b, c]</code>) didn't caused
- errors.</p>
- </li>
- </ul>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_268">Differences between the Preview 1 and Preview 2
- releases</h3>
-
-
- <ul>
- <li>
- <p>All 16-bit Unicode letters and numbers are allowed in
- identifiers, as well as the <code class="inline-code">$</code> character (as
- in Java programming language). Thus you can use accented
- letters, Arabic letters, Chinese letters, etc. as identifiers
- in templates</p>
- </li>
-
- <li>
- <p>Macros now can create loop variables for the nested
- content. For more information <a href="dgui_misc_userdefdir.html#dgui_misc_userdefdir_loopvar">read
- this</a>.</p>
- </li>
-
- <li>
- <p>New directives: <code class="inline-code">t</code>,
- <code class="inline-code">rt</code> and <code class="inline-code">lt</code> directives
- allow you to do explicit white-space removal in extreme FTL
- applications. For more information read <a href="ref_directive_t.html#ref.directive.t">the reference</a>.</p>
- </li>
-
- <li>
- <p>The syntax of assignment-with-namespace has changed from
- <code class="inline-code"><#assign foo=123 namespace=myLib></code>) to
- <code class="inline-code"><#assign foo=123 in myLib></code>, since the
- previous syntax was confusing because its similarity to a
- bulk-assignment.</p>
- </li>
-
- <li>
- <p>Bulk assignments (as <code class="inline-code"><#assign x=1, y=2,
- z=3></code>) no longer need colon to separate the
- assignments (as <code class="inline-code"><#assign x=1 y=2
- z=3></code>), although it is still allowed to preserve
- backward compatibility.</p>
- </li>
-
- <li>
- <p>Positional parameter passing is supported for macro
- calls as shorthand form of normal named parameter passing. For
- more details read <a href="ref_directive_userDefined.html#ref_directive_userDefined_positionalParam">read the
- reference</a>.</p>
- </li>
-
- <li>
- <p>New built-in, <code class="inline-code">namespace</code>, to get the
- namespace of the currently executing macro.</p>
- </li>
-
- <li>
- <p><code class="inline-code">TransformControl</code> interface (was
- experimental earlier): If the <code class="inline-code">Writer</code>
- returned by
- <code class="inline-code">TemplateTransformModel.getWriter</code> implements
- this interface, it can instruct the engine to skip or to
- repeat evaluation of the nested content, and gets notified
- about exceptions that are thrown during the nested content
- evaluation. For more information please read the API
- documentation.</p>
- </li>
-
- <li>
- <p>Jython wrapper can now wrap arbitrary Java objects, not
- only <code class="inline-code">PyObject</code>-s. If an object is passed to
- the wrapper that is neither a
- <code class="inline-code">TemplateModel</code>, nor a
- <code class="inline-code">PyObject</code>, it is first coerced into a
- <code class="inline-code">PyObject</code> using Jython's own wrapping
- machinery, and then wrapped into a
- <code class="inline-code">TemplateModel</code> as any other
- <code class="inline-code">PyObject</code>.</p>
- </li>
-
- <li>
- <p>Some cleanups in the <code class="inline-code">Environment</code>
- API.</p>
- </li>
-
- <li>
- <p>The Web application related examples has been
- replaced.</p>
- </li>
-
- <li>
- <p>Bugfix: Templates loaded with
- <code class="inline-code">URLTemplateLoader</code> subclasses was removed
- from the template cache after the template update delay has
- elapsed (5 seconds by default) even if the template file was
- unchanged. This can cause lot of extra load for a high-traffic
- server if you have many templates or if the template update
- delay was set to 0 second.</p>
- </li>
-
- <li>
- <p>Bugfix: <code class="inline-code">FreeMarkerServlet</code> has thrown
- <code class="inline-code">ServletException</code> even if a debug
- <code class="inline-code">TemplateException</code> handler was in use (so
- you may got Error 500 page instead of debug
- information).</p>
- </li>
- </ul>
-
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_2_1.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_1_5.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/versions_2_2_1.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_2_1.html b/builds/2.3.26-nightly/versions_2_2_1.html
deleted file mode 100644
index 02c3c3d..0000000
--- a/builds/2.3.26-nightly/versions_2_2_1.html
+++ /dev/null
@@ -1,126 +0,0 @@
-<!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.2.1 - 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.2.1">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/versions_2_2_1.html">
-<link rel="canonical" href="http://freemarker.org/docs/versions_2_2_1.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_2_1.html"><span itemprop="name">2.2.1</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.2.1"];</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_2_2.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_2.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="versions_2_2_1" itemprop="headline">2.2.1</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_258" data-menu-target="autoid_258">Changes on the FTL side</a></li><li><a class="page-menu-link" href="#autoid_259" data-menu-target="autoid_259">Changes on the Java side</a></li></ul> </div><p>Date of release: 2003-04-11</p><p>This version introduces important new features, such as the
- native FTL date/time type, and the auto-include and auto-import
- settings.</p><p>The date/time support is experimental, but we hope it will not
- substantially change. We would like to label it as final ASAP, so we
- urge everybody to send feedback on this topic to the mailing
- lists.</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_258">Changes on the FTL side</h2>
-
-
- <ul>
- <li>
- <p>New scalar type: date. For more information read: <a href="dgui_datamodel_types.html#dgui_datamodel_scalar">Template Author's Guide/Values, Types/The types/Scalars</a>, <a href="dgui_datamodel_types.html#dgui_datamodel_scalar">Template Author's Guide/Values, Types/The types/Scalars</a>, <a href="dgui_template_valueinsertion.html#dgui_template_valueinserion_universal_date">interpolation</a>,
- <a href="ref_builtins_date.html#ref_builtin_string_for_date">?string built-in for
- dates</a></p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_259">Changes on the Java side</h2>
-
-
- <ul>
- <li>
- <p>New <code class="inline-code">TemplateModel</code> subinterface:
- <code class="inline-code">TemplateDateModel</code>. For more information read
- <a href="pgui_datamodel_scalar.html">Programmer's Guide/The Data Model/Scalars</a></p>
- </li>
-
- <li>
- <p>auto-include and auto-import: With these new configuration
- level settings, you can include and import commonly used
- templates (usually collection of macro definitions) at the top
- of all templates, without actually typing <code class="inline-code"><#include
- <em class="code-color">...</em>></code> or
- <code class="inline-code"><#import
- <em class="code-color">...</em>></code> into the templates
- again and again. For more information please read the Java API
- documentation of <code class="inline-code">Configuration</code></p>
- </li>
-
- <li>
- <p>New template method:
- <code class="inline-code">createProcessingEnvironment</code>. This method
- makes it possible for you to do some special initialization on
- the <a href="gloss.html#gloss.environment"><code>Environment</code></a>
- before template processing, or to read the environment after
- template processing. For more information please read the Java
- API documentation.</p>
- </li>
-
- <li>
- <p>Changes to <code class="inline-code">freemarker.ext.beans</code>
- package: <code class="inline-code">BeanModel</code>,
- <code class="inline-code">MapModel</code>, and
- <code class="inline-code">ResourceModel</code> now implement
- <code class="inline-code">TemplateHashModelEx</code>.</p>
- </li>
-
- <li>
- <p>Bugfix:
- <code class="inline-code">Configurable.setSettings(Properties)</code> didn't
- removed redundant spaces/tabs at the end of property
- values.</p>
- </li>
- </ul>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_2_2.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/versions_2_2_2.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_2_2.html b/builds/2.3.26-nightly/versions_2_2_2.html
deleted file mode 100644
index 395c9e8..0000000
--- a/builds/2.3.26-nightly/versions_2_2_2.html
+++ /dev/null
@@ -1,74 +0,0 @@
-<!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.2.2 - 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.2.2">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/versions_2_2_2.html">
-<link rel="canonical" href="http://freemarker.org/docs/versions_2_2_2.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_2_2.html"><span itemprop="name">2.2.2</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.2.2"];</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_2_3.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_2_1.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="versions_2_2_2" itemprop="headline">2.2.2</h1>
-</div></div><p>Date of release: 2003-05-02</p><p>Bugfix release.</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_257">Changes on the Java side</h2>
-
-
- <ul>
- <li>
- <p>Bugfix: The <code class="inline-code">_text</code> key of the
- <code class="inline-code">freemarker.ext.xml.NodeListModel</code> was not
- returning the text of the element when used with W3C DOM
- trees.</p>
- </li>
-
- <li>
- <p>The classes are now built against JDK 1.2.2 classes,
- ensuring the binary compatibility of FreeMarker distribution
- with JDK 1.2.</p>
- </li>
- </ul>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_2_3.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_2_1.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>\u20132017
-<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>
[36/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/pgui_config_errorhandling.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/pgui_config_errorhandling.html b/builds/2.3.26-nightly/pgui_config_errorhandling.html
deleted file mode 100644
index 1d88582..0000000
--- a/builds/2.3.26-nightly/pgui_config_errorhandling.html
+++ /dev/null
@@ -1,391 +0,0 @@
-<!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>Error handling - 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="Error handling">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/pgui_config_errorhandling.html">
-<link rel="canonical" href="http://freemarker.org/docs/pgui_config_errorhandling.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="pgui.html"><span itemprop="name">Programmer's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_config.html"><span itemprop="name">The Configuration</span></a></li><li class="step-3" itempr
op="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_config_errorhandling.html"><span itemprop="name">Error handling</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","Programmer\'s Guide","The Configuration","Error handling"];</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="pgui_config_templateloading.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_config_templateconfigurations.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="pgui_config_errorhandling" itemprop="headline">Error handling</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_43" data-menu-target="autoid_43">The possible exceptions</a></li><li><a class="page-menu-link" href="#autoid_44" data-menu-target="autoid_44">Customizing the behavior regarding TemplatException-s</a></li><li><a class="page-menu-link" href="#autoid_45" data-menu-target="autoid_45">TemplateException logging</a></li><li><a class="page-menu-link" href="#autoid_46" data-menu-target="autoid_46">Explicit error handling in templates</a></li></ul> </div>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_43">The possible exceptions</h2>
-
-
- <p>The exceptions that can occur regarding FreeMarker could be
- classified like this:</p>
-
- <ul>
- <li>
- <p>Exceptions occurring when you configure FreeMarker:
- Typically you configure FreeMarker only once in your
- application, when your application initializes itself. Of
- course, during this, exceptions can occur.</p>
- </li>
-
- <li>
- <p>Exceptions occurring when loading and parsing templates:
- When you call
- <code class="inline-code">Configuration.getTemplate(<em class="code-color">...</em>)</code>,
- FreeMarker has to load the template into the memory and parse it
- (unless the template is already <a href="pgui_config_templateloading.html#pgui_config_templateloading_caching">cached</a> in
- that <code class="inline-code">Configuration</code> object). During this,
- these kind of exceptions can occur:</p>
-
- <ul>
- <li>
- <p><code class="inline-code">TemplateNotFoundException</code> because
- the requested template doesn't exist. Note this extends
- <code class="inline-code">IOException</code>.</p>
- </li>
-
- <li>
- <p><code class="inline-code">freemarker.core.ParseException</code>
- because the template is syntactically incorrect according
- the rules of the FTL language. Note that this error occurs
- when you obtain the <code class="inline-code">Template</code> object
- (<code class="inline-code">Configuration.getTemplate(<em class="code-color">...</em>)</code>),
- not later when you execute
- (<code class="inline-code">Template.process(<em class="code-color">...</em>)</code>)
- the template. . Note this extends
- <code class="inline-code">IOException</code> (legacy).</p>
- </li>
-
- <li>
- <p>Any other kind of <code class="inline-code">IOException</code>
- because an error has occurred while reading an existing
- template. For example you have no right to read the file, or
- the connection through which you read the template is
- broken. The emitter of these is the <a href="pgui_config_templateloading.html"><code>TemplateLoader</code>
- object</a>, which is plugged into the
- <code class="inline-code">Configuration</code> object.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Exceptions occurring when executing (processing)
- templates, that is, when you call
- <code class="inline-code">Template.process(<em class="code-color">...</em>)</code>.
- Two kind of exceptions can occur:</p>
-
- <ul>
- <li>
- <p><code class="inline-code">IOException</code> because there was an
- error when trying to write into the output writer.</p>
- </li>
-
- <li>
- <p><code class="inline-code">freemarker.template.TemplatException</code>
- because other problem occurred while executing the template.
- For example, a frequent error is referring to a variable
- that doesn't exist in the data-model. By default, when a
- <code class="inline-code">TemplatException</code> occurs, FreeMarker
- prints the FTL error message and the stack trace to the
- output writer with plain text format, and then aborts the
- template execution by re-throwing the
- <code class="inline-code">TemplatException</code>, which then you can
- catch as
- <code class="inline-code">Template.process(<em class="code-color">...</em>)</code>
- throws it. This behavior can be customized, and in fact, it
- should be; see the recommended configuration <a href="pgui_quickstart_createconfiguration.html">here</a>.
- By default FreeMarker also <a href="pgui_misc_logging.html">logs</a>
- <code class="inline-code">TemplatException</code>-s.</p>
- </li>
- </ul>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_44">Customizing the behavior regarding TemplatException-s</h2>
-
-
- <p><code class="inline-code">TemplateException</code>-s thrown during the
- template processing are handled by the
- <code class="inline-code">freemarker.template.TemplateExceptionHandler</code>
- object, which is plugged into the <code class="inline-code">Configuration</code>
- object with its
- <code class="inline-code">setTemplateExceptionHandler(<em class="code-color">...</em>)</code>
- method. These are the <code class="inline-code">TemplateExceptionHandler</code>
- implementations with FreeMarker comes with:</p>
-
- <ul>
- <li>
- <p><code class="inline-code">TemplateExceptionHandler.DEBUG_HANDLER</code>:
- Prints stack trace (includes FTL error message and FTL stack
- trace) and re-throws the exception. This is the default handler,
- however, you should be careful not using it in production
- environment, as it shows technical information about your
- system.</p>
- </li>
-
- <li>
- <p><code class="inline-code">TemplateExceptionHandler.HTML_DEBUG_HANDLER</code>:
- Same as <code class="inline-code">DEBUG_HANDLER</code>, but it formats the
- stack trace so that it will be readable with Web browsers.
- Recommended over <code class="inline-code">DEBUG_HANDLER</code> when you
- generate HTML pages, but it should only be used for development
- as it shows technical information about your system.</p>
- </li>
-
- <li>
- <p><code class="inline-code">TemplateExceptionHandler.IGNORE_HANDLER</code>:
- Simply suppresses all exceptions (though FreeMarker will still
- log them if
- <code class="inline-code">Configuration.getLogTemplateExceptions</code> is
- <code class="inline-code">true</code>). It does nothing to handle the event.
- It does not re-throw the exception.</p>
- </li>
-
- <li>
- <p><code class="inline-code">TemplateExceptionHandler.RETHROW_HANDLER</code>:
- Simply re-throws all exceptions; it doesn't do anything else.
- This should be used in most applications today. It doesn't print
- anything to the output about the error, which makes it safe, and
- the developers can still get the error details from the logs.
- It's not as convenient during template development as
- <code class="inline-code">HTML_DEBUG_HANDLER</code> or
- <code class="inline-code">DEBUG_HANDLER</code> though. For more information
- about handling errors in Web applications <a href="app_faq.html#misc.faq.niceErrorPage">see the FAQ</a>.</p>
- </li>
- </ul>
-
- <p>You can also write a custom
- <code class="inline-code">TemplateExceptionHandler</code> by implementing that
- interface, which contains this method:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">void handleTemplateException(TemplateException te, Environment env, Writer out)
- throws TemplateException;</pre></div>
-
- <p>Whenever a <code class="inline-code">TemplateException</code> occurs, this
- method will be called. The exception to handle is in the
- <code class="inline-code">te</code> argument, the runtime environment of the
- template processing is in the <code class="inline-code">env</code> argument, and
- the handler can print to the output using the <code class="inline-code">out</code>
- argument. If this method throws exception (usually it re-throws
- <code class="inline-code">te</code>), then the template processing will be
- aborted, and
- <code class="inline-code">Template.process(<em class="code-color">...</em>)</code>
- will throw the same exception. If
- <code class="inline-code">handleTemplateException</code> doesn't throw exception,
- then template processing continues as if nothing had happen, but the
- statement that caused the exception will be skipped (see more
- later). Of course, the handler can still print an error indicator to
- the output.</p>
-
- <p>Let's see how FreeMarker skips statements when the error
- handler doesn't throw exception, through examples. Assume we are
- using this template exception handler:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">class MyTemplateExceptionHandler implements TemplateExceptionHandler {
- public void handleTemplateException(TemplateException te, Environment env, java.io.Writer out)
- throws TemplateException {
- try {
- out.write("[ERROR: " + te.getMessage() + "]");
- } catch (IOException e) {
- throw new TemplateException("Failed to print error message. Cause: " + e, env);
- }
- }
-}
-
-<em>...</em>
-
-cfg.setTemplateExceptionHandler(new MyTemplateExceptionHandler());</pre></div>
-
- <p>If an error occurs in an interpolation which is not inside an
- FTL tag (that is, not enclosed into
- <code class="inline-code"><#<em class="code-color">...</em>></code> or
- <code class="inline-code"><@<em class="code-color">...</em>></code>), then
- the whole interpolation will be skipped. So this template (assuming
- that <code class="inline-code">badVar</code> is missing from the
- data-model):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">a${badVar}b</pre></div>
-
- <p>will print this if we use the
- <code class="inline-code">MyTemplateExceptionHandler</code>:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">a[ERROR: Expression badVar is undefined on line 1, column 4 in test.ftl.]b</pre></div>
-
- <p>This template will print the same (except that the column
- number will differ...):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">a${"moo" + badVar}b</pre></div>
-
- <p>because the whole interpolation is skipped if any error occurs
- inside it.</p>
-
- <p>If an error occurs when evaluating the value of a parameter
- for a directive call, or if there are other problems with the
- parameter list, or if an error occurs when evaluating
- <code class="inline-code"><em class="code-color">exp</em></code> in
- <code class="inline-code"><@<em class="code-color">exp</em>
- <em class="code-color">...</em>></code>, or if the value of
- <code class="inline-code"><em class="code-color">exp</em></code> is not an
- user-defined directive, then the whole directive call is skipped.
- For example this:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">a<#if badVar>Foo</#if>b</pre></div>
-
- <p>will print this:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">a[ERROR: Expression badVar is undefined on line 1, column 7 in test.ftlh.]b</pre></div>
-
- <p>Note that the error occurred in the <code class="inline-code">if</code>
- start-tag (<code class="inline-code"><#if badVar></code>), but the whole
- directive call was skipped. Logically, the nested content
- (<code class="inline-code">Foo</code>) was skipped with this, since the nested
- content is handled (printed) by the enclosing directive
- (<code class="inline-code">if</code>).</p>
-
- <p>The output will be the same with this (except that the column
- number will differ...):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">a<#if "foo${badVar}" == "foobar">Foo</#if>b</pre></div>
-
- <p>because whole directive calling will be skipped if any error
- occurs during the parameter evaluation.</p>
-
- <p>The directive call will not be skipped if the error occurs
- after the execution of the directive was already started. That is,
- if an error occurs in the nested content:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">a
-<#if true>
- Foo
- ${badVar}
- Bar
-</#if>
-c</pre></div>
-
- <p>or in the macro definition body:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">a
-<@test />
-b
-<#macro test>
- Foo
- ${badVar}
- Bar
-</#macro></pre></div>
-
- <p>the output will be something like:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">a
- Foo
- [ERROR: Expression badVar is undefined on line 4, column 5 in test.ftlh.]
- Bar
-c</pre></div>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_45">TemplateException logging</h2>
-
-
- <p>By default FreeMarker <a href="pgui_misc_logging.html">logs</a> all
- <code class="inline-code">TemplateException</code>-s under the
- <code class="inline-code">freemarker.runtime</code> log category, even when it
- will throw it at you from its public API. As logging has become
- common practice in Java applications, this usually leads to double
- logging of exceptions now, so it's recommended to disable this
- legacy behavior by
- <code class="inline-code">cfg.setLogTemplateExceptions(false)</code> (or
- <code class="inline-code">log_template_exceptions=false</code>) where you
- configure FreeMarker.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_46">Explicit error handling in templates</h2>
-
-
- <p>Although it has nothing to do with the FreeMarker
- configuration (the topic of this chapter), for the sake of
- completeness it's mentioned here that you can handle errors directly
- inside the templates as well:</p>
-
- <ul>
- <li>
- <p>Handling missing/null variables: <a href="dgui_template_exp.html#dgui_template_exp_missing">Template Author's Guide/The Template/Expressions/Handling missing values</a></p>
- </li>
-
- <li>
- <p>Substituting failing but expendable page sections: <a href="ref_directive_attempt.html">Template Language Reference/Directive Reference/attempt, recover</a></p>
- </li>
- </ul>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="pgui_config_templateloading.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_config_templateconfigurations.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/pgui_config_incompatible_improvements.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/pgui_config_incompatible_improvements.html b/builds/2.3.26-nightly/pgui_config_incompatible_improvements.html
deleted file mode 100644
index 01c060d..0000000
--- a/builds/2.3.26-nightly/pgui_config_incompatible_improvements.html
+++ /dev/null
@@ -1,173 +0,0 @@
-<!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>The "incompatible improvements" setting - 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="The "incompatible improvements" setting">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/pgui_config_incompatible_improvements.html">
-<link rel="canonical" href="http://freemarker.org/docs/pgui_config_incompatible_improvements.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="pgui.html"><span itemprop="name">Programmer's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_config.html"><span itemprop="name">The Configuration</span></a></li><li class="step-3" itempr
op="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_config_incompatible_improvements.html"><span itemprop="name">The "incompatible improvements" setting</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","Programmer\'s Guide","The Configuration","The \"incompatible improvements\" setting"];</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="pgui_config_custom_formats.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_misc.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="pgui_config_incompatible_improvements" itemprop="headline">The "incompatible improvements" setting</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_51" data-menu-target="autoid_51">What does it do</a></li><li><a class="page-menu-link" href="#pgui_config_incompatible_improvements_how_to_set" data-menu-target="pgui_config_incompatible_improvements_how_to_set">How to set it</a></li></ul> </div>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_51">What does it do</h2>
-
-
- <p>This setting specifies the FreeMarker version number where the
- not 100% backward compatible bug fixes and improvements
- <em>that you want to enable</em> were already
- implemented. Usually, it's a bad idea to left it on its default,
- which is 2.3.0 (maximum backward compatibility).</p>
-
- <p>In new projects you should set this to the FreeMarker version
- that you are actually using. In older projects it's also usually
- better to keep this high, however you better check the changes
- activated (find them in <a href="http://freemarker.org/docs/api/freemarker/template/Configuration.html#Configuration-freemarker.template.Version-">the
- API JavaDoc of the <code>Configuration(Version)</code>
- constructor</a>), at least if not only the 3rd version number
- (the micro version) of "incompatible improvements"
- setting is increased. Generally, as far as you only increase the
- last version number of this setting, the changes are low
- risk.</p>
-
- <p>Bug fixes and improvements that are fully backward compatible,
- also those that are important security fixes, are enabled regardless
- of the "incompatible improvements" setting.</p>
-
- <p>An important consequence of setting this setting is that now
- your application will check if the stated minimum FreeMarker version
- requirement is met. Like if you set this setting to 2.3.22, but
- accidentally the application is deployed with FreeMarker 2.3.21,
- then FreeMarker will fail, telling that a higher version is
- required. After all, the fixes/improvements you have requested
- aren't available on a lower version.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="pgui_config_incompatible_improvements_how_to_set">How to set it</h2>
-
-
- <p>The incompatible improvements setting exists on the
- <code class="inline-code">Configuration</code> level. It can be set on multiple
- ways:</p>
-
- <ul>
- <li>
- <p>Create the
- <code class="inline-code">freemarker.template.Configuration</code> object
- like:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">... = new Configuration(Configuration.VERSION_2_3_25)</pre></div>
- </li>
-
- <li>
- <p>Or, alter the <code class="inline-code">Configuration</code> singleton
- where you initialize its other settings like:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">cfg.setIncompatibleImprovements(Configuration.VERSION_2_3_25)</pre></div>
- </li>
-
- <li>
- <p>Or, if you are configuring FreeMarker with properties
- (<code class="inline-code">*.properties</code> file or
- <code class="inline-code">java.util.Properties</code> object), add:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">incompatible_improvements=2.3.25</pre></div>
- </li>
-
- <li>
- <p>Or, if you are configuring FreeMarker through
- <code class="inline-code">FreemarkerServlet</code>, add this
- <code class="inline-code">init-param</code> to it in the
- <code class="inline-code">web.xml</code>:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified"><init-param>
- <param-name>incompatible_improvements</param-name>
- <param-value>2.3.25</param-value>
-</init-param></pre></div>
- </li>
- </ul>
-
- <p>But, <em>if you set the
- <code class="inline-code">object_wrapper</code> setting</em> (same as
- <code class="inline-code">Configuration.setObjectWrapper(ObjectWrapper)</code>) of
- your configuration, then it's important to know that
- <code class="inline-code">BeansWrapper</code> and its subclasses (most
- importantly, <code class="inline-code">DefaultObjectWrapper</code>) has its own
- independent <code class="inline-code">incompatibleImprovements</code> property,
- and some fixes/improvements are activated by that, not by
- <code class="inline-code">Configuration</code>'s similar setting. You don't have
- to be aware of this complication if you aren't setting the
- <code class="inline-code">object_wrapper</code> configuration setting anywhere,
- because the default <code class="inline-code">object_wrapper</code> has the same
- "incompatible improvements" as of the
- <code class="inline-code">Configuration</code>. But if you are setting the
- <code class="inline-code">object_wrapper</code>, then you must not forget to set
- the <code class="inline-code">incompatibleImprovements</code> property of the
- <code class="inline-code">ObjectWrapper</code> itself, in additionally to that of
- the <code class="inline-code">Configuration</code>. (Note that it's fine to have
- different "incompatible improvements" for the
- <code class="inline-code">Configuration</code> and for the
- <code class="inline-code">ObjectWrapper</code>, only it should be a conscious
- decision.) <a href="pgui_datamodel_objectWrapper.html#topic.setDefaultObjectWrapperIcIIndividually">See here how
- to set it</a> in the case of
- <code class="inline-code">DefaultObjectWrapper</code> (for
- <code class="inline-code">BeansWrapper</code> it's the same, only with different
- class name of course).</p>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="pgui_config_custom_formats.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_misc.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/pgui_config_outputformatsautoesc.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/pgui_config_outputformatsautoesc.html b/builds/2.3.26-nightly/pgui_config_outputformatsautoesc.html
deleted file mode 100644
index 2aff9d5..0000000
--- a/builds/2.3.26-nightly/pgui_config_outputformatsautoesc.html
+++ /dev/null
@@ -1,210 +0,0 @@
-<!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>Associating output formats with templates - 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="Associating output formats with templates">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/pgui_config_outputformatsautoesc.html">
-<link rel="canonical" href="http://freemarker.org/docs/pgui_config_outputformatsautoesc.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="pgui.html"><span itemprop="name">Programmer's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_config.html"><span itemprop="name">The Configuration</span></a></li><li class="step-3" itempr
op="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_config_outputformatsautoesc.html"><span itemprop="name">Associating output formats with templates</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","Programmer\'s Guide","The Configuration","Associating output formats with templates"];</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="pgui_config_templateconfigurations.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_config_custom_formats.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="pgui_config_outputformatsautoesc" itemprop="headline">Associating output formats with templates</h1>
-</div></div><p>The output format associated to a template decides if and what
- kind of auto-escaping is used in that template (unless the template
- <a href="dgui_misc_autoescaping.html#dgui_misc_autoescaping_overrideoformat">overrides that
- with directives</a>). By default, templates have
- "undefined" output format associated, which does no
- escaping, and in general gives the behavior that you would expect from
- a template engine that doesn't care about output formats and escaping.
- However, if the <code class="inline-code">recognize_standard_file_extensions</code>
- <a href="pgui_config_settings.html">setting</a> is
- <code class="inline-code">true</code> (which is the default with <a href="pgui_config_incompatible_improvements.html">the
- <code>incompatible_improvements</code> setting</a> set to
- 2.3.24 or higher), templates whose source name ends with
- <code class="inline-code">".ftlh"</code> gets "HTML" output format, and
- those with <code class="inline-code">".ftlx"</code> get "XML" output
- format. Using the <code class="inline-code">ftlh</code> and <code class="inline-code">ftlx</code>
- file extensions is the recommended way of activating HTML and XML
- auto-escaping. You can also associate output formats to templates
- based on arbitrary name patterns with the <a href="pgui_config_templateconfigurations.html"><code>template_configurations</code>
- setting</a>; see some examples of that below.</p><p>There's another a related setting, called
- <code class="inline-code">auto_escaping_policy</code>, which can be used to disable
- auto-escaping even if the current output format supports it, or enable
- auto-escaping even if the format by default doesn't escape (but it
- supports it). Using this setting rarely advisable, as it's potentially
- confusing for the template authors. (Instead, escaping can be turned
- on/off explicitly inside the templates with the
- <code class="inline-code">auto_esc</code> parameter of the <a href="ref_directive_ftl.html"><code>ftl</code> directive</a>,
- or with the <a href="ref_directive_autoesc.html"><code>noautoesc</code></a>
- and <a href="ref_directive_autoesc.html"><code>autoesc</code>
- directive</a>s.)</p><p>To check if you have configured FreeMarker properly, you can use
- this template:</p>
-
-<div class="code-wrapper"><pre class="code-block code-template"><p>Output format: ${.output_format}
-<p>Auto-escaping: ${.auto_esc?c}</pre></div><p>See the <a href="dgui_misc_autoescaping.html#topic.predefinedOutputFormats">table of
- predefined output formats here...</a></p><p>Configuration examples:</p><ul>
- <li>
- <p>To enable automatic output format associations to
- <code class="inline-code">*.ftlh</code> and <code class="inline-code">*.ftlx</code>,
- either:</p>
-
- <ul>
- <li>
- <p>Use <code class="inline-code">incompatible_improvements</code> 2.3.24
- or higher; see <a href="pgui_config_incompatible_improvements.html#pgui_config_incompatible_improvements_how_to_set">how
- to set
- <code>incompatible_improvements</code></a></p>
- </li>
-
- <li>
- <p>Or, enable standard file extension recognizing
- explicitly:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">// Where you initalize the Configuration singletion, add:
-cfg.setRecognizeStandardFileExtensions(true);</pre></div>
-
- <p>or if you configure FreeMarker with Java
- <code class="inline-code">*.properties</code> file:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">recognizeStandardFileExtensions = true</pre></div>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Let's say that you want to associate all templates in the
- <code class="inline-code">mail</code> directory to the HTML output format. You
- could achieve that like this (assuming that you are getting the
- templates with
- <code class="inline-code">cfg.getTemplate(<em class="code-color">...</em>)</code>,
- and not instantiating them yourself):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">// Where you initalize the Configuration singletion, add:
-
-TemplateConfiguration tcHTML = new TemplateConfiguration();
-tcHTML.setOutputFormat(HTMLOutputFormat.INSTANCE);
-
-cfg.setTemplateConfigurations(
- new ConditionalTemplateConfigurationFactory(
- new PathGlobMatcher("mail/**"),
- tcHTML));</pre></div>
-
- <p>or if you are configuring FreeMarker from Java
- <code class="inline-code">*.properties</code> file (the <code class="inline-code">\</code>-s
- are required for the Java Properties file format only):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">templateConfigurations = \
- ConditionalTemplateConfigurationFactory( \
- PathGlobMatcher("mail/**"), \
- TemplateConfiguration(outputFormat = HTMLOutputFormat()))</pre></div>
- </li>
-
- <li>
- <p>Let's say you want to associate templates with
- <code class="inline-code">xml</code> file extension to the XML output format,
- templates with <code class="inline-code">html</code> and <code class="inline-code">htm</code>
- extension to the HTML output format, and templates with
- <code class="inline-code">rtf</code> extension to the <code class="inline-code">RTF</code>
- output format. You could achieve that like this (assuming that you
- are getting the templates with
- <code class="inline-code">cfg.getTemplate(<em class="code-color">...</em>)</code>,
- and not instantiating them yourself):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">TemplateConfiguration tcHTML = new TemplateConfiguration();
-tcHTML.setOutputFormat(HTMLOutputFormat.INSTANCE);
-
-TemplateConfiguration tcXML = new TemplateConfiguration();
-tcXML.setOutputFormat(XMLOutputFormat.INSTANCE);
-
-TemplateConfiguration tcRTF = new TemplateConfiguration();
-tcRTF.setOutputFormat(RTFOutputFormat.INSTANCE);
-
-cfg.setTemplateConfigurations(
- new FirstMatchTemplateConfigurationFactory(
- new ConditionalTemplateConfigurationFactory(
- new FileExtensionMatcher("xml"),
- tcXML),
- new ConditionalTemplateConfigurationFactory(
- new OrMatcher(
- new FileExtensionMatcher("html"),
- new FileExtensionMatcher("htm")),
- tcHTML),
- new ConditionalTemplateConfigurationFactory(
- new FileExtensionMatcher("rtf"),
- tcRTF)
- ).allowNoMatch(true)
-);</pre></div>
-
- <p>or if you are configuring FreeMarker from Java
- <code class="inline-code">*.properties</code> file (the <code class="inline-code">\</code>-s
- are required for the Java Properties file format only):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">templateConfigurations = \
- FirstMatchTemplateConfigurationFactory( \
- ConditionalTemplateConfigurationFactory( \
- FileExtensionMatcher("xml"), \
- TemplateConfiguration(outputFormat = XMLOutputFormat())), \
- ConditionalTemplateConfigurationFactory( \
- OrMatcher( \
- FileExtensionMatcher("html"), \
- FileExtensionMatcher("htm")), \
- TemplateConfiguration(outputFormat = HTMLOutputFormat())), \
- ConditionalTemplateConfigurationFactory( \
- FileExtensionMatcher("rtf"), \
- TemplateConfiguration(outputFormat = RTFOutputFormat())), \
- allowNoMatch = true)</pre></div>
- </li>
- </ul><p>(You can find some more complex
- <code class="inline-code">template_configurations</code> setups <a href="pgui_config_templateconfigurations.html">here...</a>)</p><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="pgui_config_templateconfigurations.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_config_custom_formats.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/pgui_config_settings.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/pgui_config_settings.html b/builds/2.3.26-nightly/pgui_config_settings.html
deleted file mode 100644
index 322f062..0000000
--- a/builds/2.3.26-nightly/pgui_config_settings.html
+++ /dev/null
@@ -1,378 +0,0 @@
-<!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>Settings - 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="Settings">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/pgui_config_settings.html">
-<link rel="canonical" href="http://freemarker.org/docs/pgui_config_settings.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="pgui.html"><span itemprop="name">Programmer's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_config.html"><span itemprop="name">The Configuration</span></a></li><li class="step-3" itempr
op="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_config_settings.html"><span itemprop="name">Settings</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","Programmer\'s Guide","The Configuration","Settings"];</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="pgui_config_sharedvariables.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_config_templateloading.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="pgui_config_settings" itemprop="headline">Settings</h1>
-</div></div><p><strong>Settings</strong> are named values that
- influence the behavior of FreeMarker. Examples of settings are:
- <code class="inline-code">locale</code>, <code class="inline-code">number_format</code>,
- <code class="inline-code">default_encoding</code>,
- <code class="inline-code">template_exception_handler</code>. The full list of
- settings can be found in the <a href="http://freemarker.org/docs/api/freemarker/template/Configuration.html#setSetting-java.lang.String-java.lang.String-">Java
- API documentation of
- <code>Configuration.setSetting(...)</code></a>.</p><p>The settings coming from the <code class="inline-code">Configuration</code>
- can be overridden in a <code class="inline-code">Template</code> instance. For
- example, if you set the <code class="inline-code">locale</code> setting to
- <code class="inline-code">"en_US"</code> in the configuration, then the
- <code class="inline-code">locale</code> in all templates that use this configuration
- will be <code class="inline-code">"en_US"</code>, except in templates where the
- <code class="inline-code">locale</code> was explicitly specified differently (see
- <a href="ref_directive_include.html#ref_directive_include_localized">localization</a>).
- Thus, the setting values in the <code class="inline-code">Configuration</code> serve
- as defaults that can be overridden in a per template manner. The value
- coming from the <code class="inline-code">Configuration</code> instance or
- <code class="inline-code">Template</code> instance can be further overridden for a
- single <code class="inline-code">Template.process</code> call. For each such call a
- <code class="inline-code">freemarker.core.Environment</code> object is created
- internally that holds the runtime environment of the template
- processing, including the setting values that were overridden on that
- level. The values stored there can even be changed during the template
- processing, so a template can set settings itself, like switching
- <code class="inline-code">locale</code> at the middle of the ongoing
- processing.</p><p>This can be imagined as 3 layers
- (<code class="inline-code">Configuration</code>, <code class="inline-code">Template</code>,
- <code class="inline-code">Environment</code>) of settings, where the topmost layer
- that contains the value for a certain setting provides the effective
- value of that setting. For example (settings A to F are just imaginary
- settings for this example):</p> <div class="table-responsive">
- <table class="table">
-
-
-
-
-
- <thead>
- <tr>
- <th align="left"></th>
-
-
- <th align="center">Setting A</th>
-
-
- <th align="center">Setting B</th>
-
-
- <th align="center">Setting C</th>
-
-
- <th align="center">Setting D</th>
-
-
- <th align="center">Setting E</th>
-
-
- <th align="center">Setting F</th>
-
- </tr>
-
- </thead>
-
-
- <tbody>
- <tr>
- <td align="left">Layer 3: <code class="inline-code">Environment</code></td>
-
-
- <td align="center">1</td>
-
-
- <td align="center">-</td>
-
-
- <td align="center">-</td>
-
-
- <td align="center">1</td>
-
-
- <td align="center">-</td>
-
-
- <td align="center">-</td>
-
- </tr>
-
-
- <tr>
- <td align="left">Layer 2: <code class="inline-code">Template</code></td>
-
-
- <td align="center">2</td>
-
-
- <td align="center">2</td>
-
-
- <td align="center">-</td>
-
-
- <td align="center">-</td>
-
-
- <td align="center">2</td>
-
-
- <td align="center">-</td>
-
- </tr>
-
-
- <tr>
- <td align="left">Layer 1: <code class="inline-code">Configuration</code></td>
-
-
- <td align="center">3</td>
-
-
- <td align="center">3</td>
-
-
- <td align="center">3</td>
-
-
- <td align="center">3</td>
-
-
- <td align="center">-</td>
-
-
- <td align="center">-</td>
-
- </tr>
-
- </tbody>
-
- </table>
- </div>
-<p>The effective value of settings will be: A = 1, B = 2, C = 3, D
- = 1, E = 2. The F setting is probably <code class="inline-code">null</code>, or it
- throws exception when you try to get it.</p><p>Let's see exactly how to set settings:</p><ul>
- <li>
- <p><code class="inline-code">Configuration</code> layer: In principle you set
- the settings with the setter methods of the
- <code class="inline-code">Configuration</code> object, fore example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">Configuration myCfg = new Configuration(Configuration.VERSION_2_3_25);
-myCfg.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);
-myCfg.setDefaultEncoding("UTF-8");
-DefaultObjectWrapperBuilder owb = new DefaultObjectWrapperBuilder(Configuration.VERSION_2_3_25);
-owb.setForceLegacyNonListCollections(false);
-owb.setDefaultDateType(TemplateDateModel.DATETIME);
-myCfg.setObjectWrapper(owb.build());</pre></div>
-
- <p>You do this before you start to actually use the
- <code class="inline-code">Configuration</code> object (typically, when you
- initialize the application); you should treat the object as
- read-only after that.</p>
-
- <p>In practice, in most frameworks you have to specify the
- settings in some kind of framework-specific configuration file
- that require specifying settings as <code class="inline-code">String</code>
- name-value pairs (like in a <code class="inline-code">.properties</code> file).
- In that case the authors of the frameworks most probably use the
- <code class="inline-code">Confguration.setSetting(String name, String
- value)</code> method; see available setting names and the
- format of the values in the <a href="http://freemarker.org/docs/api/freemarker/template/Configuration.html#setSetting-java.lang.String-java.lang.String-">API
- documentation of <code>setSetting</code></a>. Example for
- Spring Framework:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified"><bean id="freemarkerConfig"
- class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
- <property name="freemarkerSettings">
- <props>
- <prop key="incompatible_improvements">2.3.25</prop>
- <prop key="template_exception_handler">rethrow</prop>
- <prop key="default_encoding">UTF-8</prop>
- <prop key="object_wrapper">
- DefaultObjectWrapper(
- 2.3.25,
- forceLegacyNonListCollections = false,
- defaultDateType = freemarker.template.TemplateDateModel.DATETIME)
- </prop>
- </props>
- </property>
-</bean></pre></div>
-
- <p>Here's the same when configuring FreeMarker for Struts,
- which looks for a <code class="inline-code">freemarker.properties</code> in the
- classpath:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">incompatible_improvements=2.3.25
-template_exception_handler=rethrow
-default_encoding=UTF-8
-object_wrapper=DefaultObjectWrapper( \
- 2.3.25, \
- forceLegacyNonListCollections = false, \
- defaultDateType = freemarker.template.TemplateDateModel.DATETIME)</pre></div>
-
- <p>As demonstrated above with
- <code class="inline-code">object_wrapper</code>, some settings can accept quite
- complex values, which can be used to instantiate objects of
- arbitrary classes and set their properties. Still, configuring
- with <code class="inline-code">String</code> key-value pairs is limited compared
- to directly using the Java API, so in some cases you have to find
- a way to do this in Java.</p>
- </li>
-
- <li>
- <p><code class="inline-code">Template</code> layer: Settings on individual
- templates are normally set by <a href="pgui_config_templateconfigurations.html">template
- configurations (see them in their own chapter)</a>, which
- basically associate setting assignments to template name (template
- path) patterns. There's a deviation from this approach with the
- <code class="inline-code">locale</code> setting, because that you can also
- specify to <code class="inline-code">Configuration.getTemplate(...)</code> as
- parameter, to get the template for the requested locale (so called
- localized lookup).</p>
-
- <div class="callout warning">
- <strong class="callout-label">Warning!</strong>
-
- <p>You should never set settings directly on the
- <code class="inline-code">Template</code> object that you get from
- <code class="inline-code">Configuration.getTemplate(...)</code>! Those objects
- should be treated as already initialized and read-only.</p>
- </div>
-
-
- <p>When a template includes or imports another template, most
- of the settings (like <code class="inline-code">locale</code>,
- <code class="inline-code">number_format</code>, etc.) will remain those
- specified by the top-level template. The exceptions are the
- settings that affect the parsing of the template (like
- <code class="inline-code">tag_syntax</code>,
- <code class="inline-code">whitespace_stripping</code>, etc.), as these are not
- inherited from the top-level template, instead each template
- always uses its own values, no mater how it was invoked.</p>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>If you are going to use template layer settings, you
- should set <a href="pgui_config_incompatible_improvements.html">the
- <code>incompatible_improvements</code> setting</a> to
- 2.3.22 or higher, to avoid some confusing legacy bugs.</p>
- </div>
-
- </li>
-
- <li>
- <p><code class="inline-code">Environment </code>layer: There are two ways of
- doing it:</p>
-
- <ul>
- <li>
- <p>With Java API: Use the setter methods of the
- <code class="inline-code">Environment</code> object. You may run into the
- API problem that <code class="inline-code">myTemplate.process(...)</code>
- both creates the <code class="inline-code">Environment</code> object
- internally and processes the template, so you have no
- opportunity to adjust the <code class="inline-code">Environment</code> in
- between. The solution is that those two steps can be separated
- like this:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">Environment env = myTemplate.createProcessingEnvironment(root, out);
-env.setLocale(java.util.Locale.ITALY);
-env.setNumberFormat("0.####");
-env.process(); // process the template</pre></div>
- </li>
-
- <li>
- <p>Directly in the Template (considered as bad style,
- usually): Use the <a href="ref_directive_setting.html#ref.directive.setting"><code>setting</code>
- directive</a>, for example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#setting locale="it_IT">
-<#setting number_format="0.####"></pre></div>
- </li>
- </ul>
-
- <p>There are no restriction regarding when can you change the
- settings in this layer.</p>
- </li>
- </ul><p>To see the list of supported settings and their meaning, please
- read the following parts of the FreeMarker Java API
- documentation:</p><ul>
- <li>
- <p>Setter methods of
- <code class="inline-code">freemarker.core.Configurable</code> for the settings
- that are in all three layers</p>
- </li>
-
- <li>
- <p>Setter methods of
- <code class="inline-code">freemarker.template.Configuration</code> for the
- settings that are available only in the
- <code class="inline-code">Configuration</code> layer</p>
- </li>
-
- <li>
- <p><code class="inline-code">freemarker.core.Configurable.setSetting(String,
- String)</code> for settings that are available in all three
- layers and are writable with <code class="inline-code">String</code> key-value
- pairs.</p>
- </li>
-
- <li>
- <p><code class="inline-code">freemarker.template.Configuration.setSetting(String,
- String)</code> for settings that are available only in the
- <code class="inline-code">Configuration</code> layer and are writable with
- <code class="inline-code">String</code> key-value pairs.</p>
- </li>
- </ul><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="pgui_config_sharedvariables.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_config_templateloading.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>\u20132017
-<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>
[26/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/ref_builtins_string.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_builtins_string.html b/builds/2.3.26-nightly/ref_builtins_string.html
deleted file mode 100644
index 6ebdd42..0000000
--- a/builds/2.3.26-nightly/ref_builtins_string.html
+++ /dev/null
@@ -1,2374 +0,0 @@
-<!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>Built-ins for strings - 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="Built-ins for strings">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_builtins_string.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_builtins_string.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_builtins.html"><span itemprop="name">Built-in Reference</span></a></li><li class="step-3"
itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_builtins_string.html"><span itemprop="name">Built-ins for strings</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","Template Language Reference","Built-in Reference","Built-ins for strings"];</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="ref_builtins_alphaidx.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_builtins_number.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="ref_builtins_string" itemprop="headline">Built-ins for strings</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#ref_builtin_boolean" data-menu-target="ref_builtin_boolean">boolean</a></li><li><a class="page-menu-link" href="#ref_builtin_cap_first" data-menu-target="ref_builtin_cap_first">cap_first</a></li><li><a class="page-menu-link" href="#ref_builtin_capitalize" data-menu-target="ref_builtin_capitalize">capitalize</a></li><li><a class="page-menu-link" href="#ref_builtin_chop_linebreak" data-menu-target="ref_builtin_chop_linebreak">chop_linebreak</a></li><li><a class="page-menu-link" href="#ref_builtin_contains" data-menu-target="ref_builtin_contains">contains</a></li><li><a class="page-menu-link" href="#ref_builtin_string_date" data-menu-target="ref_builtin_string_date">date, time, datetime</a></li><li><a class="page-menu-link" href="#ref_builtin_ends_with" data-menu-target="ref_builtin_ends_with">ends_with</a></li><li><a class="page-menu-link" href="#ref_builtin_ensure_ends_with" data-menu-target="ref_builtin_ensure_ends_with">ensure_ends_with</a><
/li><li><a class="page-menu-link" href="#ref_builtin_ensure_starts_with" data-menu-target="ref_builtin_ensure_starts_with">ensure_starts_with</a></li><li><a class="page-menu-link" href="#ref_builtin_esc" data-menu-target="ref_builtin_esc">esc</a></li><li><a class="page-menu-link" href="#ref_builtin_groups" data-menu-target="ref_builtin_groups">groups</a></li><li><a class="page-menu-link" href="#ref_builtin_html" data-menu-target="ref_builtin_html">html (deprecated)</a></li><li><a class="page-menu-link" href="#ref_builtin_index_of" data-menu-target="ref_builtin_index_of">index_of</a></li><li><a class="page-menu-link" href="#ref_builtin_j_string" data-menu-target="ref_builtin_j_string">j_string</a></li><li><a class="page-menu-link" href="#ref_builtin_js_string" data-menu-target="ref_builtin_js_string">js_string</a></li><li><a class="page-menu-link" href="#ref_builtin_json_string" data-menu-target="ref_builtin_json_string">json_string</a></li><li><a class="page-menu-link" href="#ref_bu
iltin_keep_after" data-menu-target="ref_builtin_keep_after">keep_after</a></li><li><a class="page-menu-link" href="#ref_builtin_keep_after_last" data-menu-target="ref_builtin_keep_after_last">keep_after_last</a></li><li><a class="page-menu-link" href="#ref_builtin_keep_before" data-menu-target="ref_builtin_keep_before">keep_before</a></li><li><a class="page-menu-link" href="#ref_builtin_keep_before_last" data-menu-target="ref_builtin_keep_before_last">keep_before_last</a></li><li><a class="page-menu-link" href="#ref_builtin_last_index_of" data-menu-target="ref_builtin_last_index_of">last_index_of</a></li><li><a class="page-menu-link" href="#ref_builtin_left_pad" data-menu-target="ref_builtin_left_pad">left_pad</a></li><li><a class="page-menu-link" href="#ref_builtin_length" data-menu-target="ref_builtin_length">length</a></li><li><a class="page-menu-link" href="#ref_builtin_lower_case" data-menu-target="ref_builtin_lower_case">lower_case</a></li><li><a class="page-menu-link" href="#
ref_builtin_matches" data-menu-target="ref_builtin_matches">matches</a></li><li><a class="page-menu-link" href="#ref_builtin_no_esc" data-menu-target="ref_builtin_no_esc">no_esc</a></li><li><a class="page-menu-link" href="#ref_builtin_number" data-menu-target="ref_builtin_number">number</a></li><li><a class="page-menu-link" href="#ref_builtin_replace" data-menu-target="ref_builtin_replace">replace</a></li><li><a class="page-menu-link" href="#ref_builtin_right_pad" data-menu-target="ref_builtin_right_pad">right_pad</a></li><li><a class="page-menu-link" href="#ref_builtin_remove_beginning" data-menu-target="ref_builtin_remove_beginning">remove_beginning</a></li><li><a class="page-menu-link" href="#ref_builtin_remove_ending" data-menu-target="ref_builtin_remove_ending">remove_ending</a></li><li><a class="page-menu-link" href="#ref_builtin_rtf" data-menu-target="ref_builtin_rtf">rtf (deprecated)</a></li><li><a class="page-menu-link" href="#ref_builtin_split" data-menu-target="ref_builti
n_split">split</a></li><li><a class="page-menu-link" href="#ref_builtin_starts_with" data-menu-target="ref_builtin_starts_with">starts_with</a></li><li><a class="page-menu-link" href="#ref_builtin_string_for_string" data-menu-target="ref_builtin_string_for_string">string (when used with a string value)</a></li><li><a class="page-menu-link" href="#ref_builtin_substring" data-menu-target="ref_builtin_substring">substring (deprecated)</a></li><li><a class="page-menu-link" href="#ref_builtin_trim" data-menu-target="ref_builtin_trim">trim</a></li><li><a class="page-menu-link" href="#ref_builtin_uncap_first" data-menu-target="ref_builtin_uncap_first">uncap_first</a></li><li><a class="page-menu-link" href="#ref_builtin_upper_case" data-menu-target="ref_builtin_upper_case">upper_case</a></li><li><a class="page-menu-link" href="#ref_builtin_url" data-menu-target="ref_builtin_url">url</a></li><li><a class="page-menu-link" href="#ref_builtin_url_path" data-menu-target="ref_builtin_url_path">ur
l_path</a></li><li><a class="page-menu-link" href="#ref_builtin_word_list" data-menu-target="ref_builtin_word_list">word_list</a></li><li><a class="page-menu-link" href="#ref_builtin_xhtml" data-menu-target="ref_builtin_xhtml">xhtml (deprecated)</a></li><li><a class="page-menu-link" href="#ref_builtin_xml" data-menu-target="ref_builtin_xml">xml (deprecated)</a></li><li><a class="page-menu-link" href="#ref_builtin_string_flags" data-menu-target="ref_builtin_string_flags">Common flags</a></li></ul> </div><p>These built-ins act on a string left-value. However, if the
- left-value is number or date/time/date-time or boolean (since 2.3.20),
- it will automatically converted to string according the current
- number-, date/time/date-time- and boolean-format settings (which are
- the same formatters that are applied when inserting such values with
- <code class="inline-code">${<em class="code-color">...</em>}</code>).</p>
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_boolean">boolean</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <p>The string converted to boolean value. The string must be
- <code class="inline-code">true</code> or <code class="inline-code">false</code> (case
- sensitive!), or must be in the format specified by the
- <code class="inline-code">boolean_format</code> setting.</p>
-
- <p>If the string is not in the appropriate format, an error will
- abort template processing when you try to access this
- built-in.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_cap_first">cap_first</h2>
-
-
-
-
- <p>The string with the very first word of the string capitalized.
- For the precise meaning of "word" see the <a href="#ref_builtin_word_list">word_list built-in</a>.
- Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${" green mouse"?cap_first}
-${"GreEN mouse"?cap_first}
-${"- green mouse"?cap_first}</pre></div>
-
- <p>The output:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> Green mouse
-GreEN mouse
-- green mouse</pre></div>
-
- <p>In the case of <code class="inline-code">"- green mouse"</code>, the first
- word is the <code class="inline-code">-</code>.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_capitalize">capitalize</h2>
-
-
-
-
- <p>The string with all words capitalized. For the precise meaning
- of "word" see the <a href="#ref_builtin_word_list">word_list built-in</a>.
- Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${" green mouse"?capitalize}
-${"GreEN mouse"?capitalize}</pre></div>
-
- <p>The output:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> Green Mouse
-Green Mouse</pre></div>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_chop_linebreak">chop_linebreak</h2>
-
-
-
-
- <p>The string without the <a href="gloss.html#gloss.lineBreak">line-break</a> at its very end if there
- was a line-break, otherwise the unchanged string.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_contains">contains</h2>
-
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in is available since FreeMarker 2.3.1. It
- doesn't exist in 2.3.</p>
- </div>
-
-
- <p>Returns if the substring specified as the parameter to this
- built-in occurrs in the string. For example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#if "piceous"?contains("ice")>It contains "ice"</#if></pre></div>
-
- <p>This will output:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">It contains "ice"</pre></div>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_string_date">date, time, datetime</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <p>The string value converted to a date, time, or date-time
- value. It will expect the format specified by the <a href="ref_directive_setting.html#topic.dateTimeFormatSettings"><code>date_format</code>,
- <code>time_format</code> and
- <code>datetime_format</code> settings</a>. If the string is
- not in the appropriate format, an error will abort template
- processing when you try to access this built-in.</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#-- The date_format, time_format and datetime_format settings must match this format! -->
-<#assign someDate = "Oct 25, 1995"?date>
-<#assign someTime = "3:05:30 PM"?time>
-<#assign someDatetime = "Oct 25, 1995 03:05:00 PM"?datetime>
-
-<#-- Changing the setting value changes the expected format: -->
-<#setting datetime_format="iso">
-<#assign someDatetime = "1995-10-25T15:05"?datetime></pre></div>
-
- <p>You can also specify the format explicitly like
- <code class="inline-code">?datetime.<em class="code-color">format</em></code> (and
- hence also as
- <code class="inline-code">?datetime["<em class="code-color">format</em>"]</code>)
- or
- <code class="inline-code">?datetime("<em class="code-color">format</em>")</code>;
- these three forms do the same. The format can be specified similarly
- with <code class="inline-code">?date</code> and <code class="inline-code">?time</code> too. For
- the syntax and meaning of format values see the possible values of
- the <a href="ref_directive_setting.html#topic.dateTimeFormatSettings"><code>date_format</code>,
- <code>time_format</code> and
- <code>datetime_format</code> settings</a>. Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#-- Parsing XML Schema xs:date, xs:time and xs:dateTime values: -->
-<#assign someDate = "1995-10-25"?date.xs>
-<#assign someTime = "15:05:30"?time.xs>
-<#assign someDatetime = "1995-10-25T15:05:00"?datetime.xs>
-
-<#-- Parsing ISO 8601 (both extended and basic formats): -->
-<#assign someDatetime = "1995-10-25T15:05"?datetime.iso>
-<#assign someDatetime = "19951025T1505"?datetime.iso>
-
-<#-- Parsing with SimpleDateFormat patterns: -->
-<#assign someDate = "10/25/1995"?date("MM/dd/yyyy")>
-<#assign someTime = "15:05:30"?time("HH:mm:ss")>
-<#assign someDatetime = "1995-10-25 03:05 PM"?datetime("yyyy-MM-dd hh:mm a")>
-
-<#-- Parsing with custom date formats: -->
-<#assign someDatetime = "October/25/1995 03:05 PM"?datetime.@worklog></pre></div>
-
- <p>To prevent misunderstandings, the left-hand value need not be
- a string literal. For example, when you read data from XML DOM (from
- where all values come as unparsed strings), you may do things like
- <code class="inline-code">order.confirmDate?date.xs</code> to convert the string
- value to a real date.</p>
-
- <p>Of course, the format also can be a variable, like in
- <code class="inline-code">"<em class="code-color">...</em>"?datetime(myFormat)</code>.</p>
-
- <p>Note that since 2.3.24, these built-ins can also be called
- with 0 arguments, like <code class="inline-code">?date()</code>. It's almost the
- same as just writing <code class="inline-code">?date</code>. The difference is
- highly technical and rarely matters: <code class="inline-code">?date()</code> and
- such returns exactly the same Java object that the date parser
- (<code class="inline-code">freemarker.core.TemplateDateFormat</code>
- implementation) returns, while <code class="inline-code">?date</code> without the
- <code class="inline-code">()</code> returns a tricky wrapper value that's a date
- and a method and hash on the same time.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_ends_with">ends_with</h2>
-
-
-
-
- <p>Returns whether this string ends with the substring specified
- in the parameter. For example
- <code class="inline-code">"ahead"?ends_with("head")</code> returns boolean
- <code class="inline-code">true</code>. Also,
- <code class="inline-code">"head"?ends_with("head")</code> will return
- <code class="inline-code">true</code>.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_ensure_ends_with">ensure_ends_with</h2>
-
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in is available since FreeMarker 2.3.21.</p>
- </div>
-
-
- <p>If the string doesn't end with the substring specified as the
- 1st parameter, it adds it after the string, otherwise it returns the
- original string. For example, both
- <code class="inline-code">"foo"?ensure_ends_with("/")</code> and
- <code class="inline-code">"foo/"?ensure_ends_with("/")</code> returns
- <code class="inline-code">"foo/"</code>.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_ensure_starts_with">ensure_starts_with</h2>
-
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in is available since FreeMarker 2.3.21.</p>
- </div>
-
-
- <p>If the string doesn't start with the substring specified as
- the 1st parameter, it adds it before the string, otherwise it
- returns the original string. For example, both
- <code class="inline-code">"foo"?ensure_starts_with("/")</code> and
- <code class="inline-code">"/foo"?ensure_starts_with("/")</code> returns
- <code class="inline-code">"/foo"</code>.</p>
-
- <p>If you specify two parameters, then the 1st parameter is
- interpreted as a Java regular expression, and if it doesn't match
- the beginning of the string, then the string specified as the 2nd
- parameter is added before the string. For example
- <code class="inline-code">someURL?ensure_starts_with("[a-zA-Z]+://",
- "http://")</code> will check if the string starts with something
- that matches <code class="inline-code">"[a-zA-Z]+://"</code> (note that no
- <code class="inline-code">^</code> is needed), and if it doesn't, it prepends
- <code class="inline-code">"http://"</code>.</p>
-
- <p>This method also accepts a 3rd <a href="#ref_builtin_string_flags">flags parameter</a>. As
- calling with 2 parameters implies <code class="inline-code">"r"</code> there
- (i.e., regular expression mode), you rarely need this. One notable
- case is when you don't want the 1st parameter to be interpreted as a
- regular expression, only as plain text, but you want the comparison
- to be case-insensitive, in which case you would use
- <code class="inline-code">"i"</code> as the 3rd parameter.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_esc">esc</h2>
-
-
- <p></p>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in is available since FreeMarker 2.3.24.</p>
- </div>
-
-
- <p>Escapes the value with the current <a href="dgui_misc_autoescaping.html#dgui_misc_autoescaping_outputformat">output format</a>,
- and prevents the <a href="dgui_misc_autoescaping.html">auto-escaping</a> of the
- returned value (to avoid double escaping). Because of auto-escaping,
- you usually only need this where auto-escaping was disabled:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#ftl output_format="HTML" <strong>auto_esc=false</strong>>
-<#assign s = "R&D">
-${s}
-${s?esc}</pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">R&D
-R&amp;D</pre></div>
-
- <p>In templates, where auto-escaping is on, using it is
- redundant:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#ftl output_format="HTML">
-<#assign s = "R&D">
-${s}
-${s?esc} <#-- ?esc is redundant here --></pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">R&amp;D
-R&amp;D</pre></div>
-
- <p>This built-in works by converting the string value to a <a href="dgui_misc_autoescaping.html#dgui_misc_autoescaping_movalues">markup output
- value</a>, by escaping the string with the current output format,
- and using the result as the markup. The resulting markup output
- value belongs to the current output format at the point of the
- invocation.</p>
-
- <p>This built-in can also be applied on markup output values,
- which it will bypass without change, as far as the input markup
- output value belongs to the current output format. If it doesn't,
- then the markup has to be converted to the current output format,
- which currently (as of 2.3.24) will be only successful if that value
- was created by escaping plain text (usually, with
- <code class="inline-code">?esc</code>).</p>
-
- <p>This built-in can't be used where the current output format is
- a <a href="dgui_misc_autoescaping.html#dgui_misc_autoescaping_nonmarkupof">non-markup
- output format</a>. An attempt to do so will cause a <a href="gloss.html#gloss.parseTimeError">parse-time error</a>.</p>
-
- <p>This built-in is not related to the deprecated <a href="ref_directive_escape.html"><code>escape</code> and
- <code>noescape</code> directives</a>. In fact, the parser
- will prevent using them on the same place, to prevent
- confusion.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_groups">groups</h2>
-
-
-
-
- <p>This is used only with the result of the
- <code class="inline-code">matches</code> built-in. See <a href="#ref_builtin_matches">there...</a></p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_html">html (deprecated)</h2>
-
-
-
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in is <em>deprecated</em> by the
- <a href="dgui_misc_autoescaping.html">auto-escaping
- mechanism</a> introduced in 2.3.24. To prevent double escaping
- and confusion in general, using this built-in on places where
- auto-escaping is active is a <a href="gloss.html#gloss.parseTimeError">parse-time error</a>. To help
- migration, this built-in silently bypasses HTML <a href="dgui_misc_autoescaping.html#dgui_misc_autoescaping_movalues">markup output
- values</a> without changing them.</p>
- </div>
-
-
- <p>The string as HTML markup. That is, the string with
- all:</p>
-
- <ul>
- <li>
- <code class="inline-code"><</code> replaced with
- <code class="inline-code">&lt;</code>
- </li>
-
- <li>
- <code class="inline-code">></code> replaced with
- <code class="inline-code">&gt;</code>
- </li>
-
- <li>
- <code class="inline-code">&</code> replaced with
- <code class="inline-code">&amp;</code>
- </li>
-
- <li>
- <code class="inline-code">"</code> replaced with
- <code class="inline-code">&quot;</code>
- </li>
-
- <li>
- <code class="inline-code">'</code> is replaced with
- <code class="inline-code">&#39;</code> <em>if</em> the
- programmers has <a href="pgui_config_incompatible_improvements.html#pgui_config_incompatible_improvements_how_to_set">set
- the <code>incompatible_improvements</code> setting</a>
- to 2.3.24 or higher (also if it's set to 2.3.20 or higher and
- you are outside a string literal). Otherwise
- <code class="inline-code">'</code> won't be replaced, so you must use
- quotation mark (<code class="inline-code">"</code>, not <code class="inline-code">'</code>)
- to quote attribute values where you want to insert a value
- safely.
- </li>
- </ul>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><input type=text name=user value=<strong>"</strong>${user?html}<strong>"</strong>></pre></div>
-
- <div class="callout warning">
- <strong class="callout-label">Warning!</strong>
-
- <p>When inserting the value of an attribute, always quote it,
- or else it can be exploited by attackers! This is WRONG:
- <code class="inline-code"><input name="user" value=${user?xhtml}></code>.
- This is good: <code class="inline-code"><input name="user"
- value="${user?xhtml}"></code>.</p>
- </div>
-
-
- <p>Note that in HTML pages usually you want to use this built-in
- for all interpolations. You can spare a lot of typing and lessen the
- chances of accidental mistakes by using the <a href="ref_directive_escape.html"><code>escape</code>
- directive</a>.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_index_of">index_of</h2>
-
-
-
-
- <p>Returns the index within this string of the first occurrence
- of the specified substring. For example,
- <code class="inline-code">"abcabc"?index_of("bc")</code> will return 1 (don't
- forget that the index of the first character is 0). Also, you can
- specify the index to start the search from:
- <code class="inline-code">"abcabc"?index_of("bc", 2)</code> will return 4. There
- is no restriction on the numerical value of the second parameter: if
- it is negative, it has the same effect as if it were zero, and if it
- is greater than the length of this string, it has the same effect as
- if it were equal to the length of this string. Decimal values will
- be truncated to integers.</p>
-
- <p>If the 1st parameter does not occur as a substring in this
- string (starting from the given index, if you use the second
- parameter), then it returns -1.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_j_string">j_string</h2>
-
-
-
-
- <p>Escapes the string with the escaping rules of Java language
- string literals, so it's safe to insert the value into a string
- literal. Note that it will <em>not</em> add quotation
- marks around the inserted value; you meant to use this
- <em>inside</em> the string literal.</p>
-
- <p>All characters under <a href="gloss.html#gloss.UCS">UCS</a> code
- point 0x20 will be escaped. When they have no dedicated escape
- sequence in the Java language (like <code class="inline-code">\n</code>,
- <code class="inline-code">\t</code>, etc.), they will be replaced with a UNICODE
- escape
- (<code class="inline-code">\u<em class="code-color">XXXX</em></code>).</p>
-
- <p>Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign beanName = 'The "foo" bean.'>
-String BEAN_NAME = "${beanName?j_string}";</pre></div>
-
- <p>will output:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">String BEAN_NAME = "The \"foo\" bean.";</pre></div>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_js_string">js_string</h2>
-
-
-
-
- <p>Escapes the string with the escaping rules of JavaScript
- language string literals, so it's safe to insert the value into a
- string literal. Note that it will <em>not</em> add
- quotation marks around the inserted value; you meant to use this
- <em>inside</em> the string literal.</p>
-
- <div class="callout warning">
- <strong class="callout-label">Warning!</strong>
-
- <p>When inserting into a JavaScript string literal that's
- inside a HTML attribute, you also must escape the value with HTML
- escaping. Thus, of you don't have <a href="pgui_config_outputformatsautoesc.html">automatic HTML
- escaping</a>, this is WRONG: <code class="inline-code"><p
- onclick="alert('${message?js_string}')"></code>, and this is
- good: <code class="inline-code"><p
- onclick="alert('${message?js_string?html}')"></code>.</p>
- </div>
-
-
- <p>Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign user = "Big Joe's \"right hand\"">
-<script>
- alert("Welcome ${user?js_string}!");
-</script></pre></div>
-
- <p>will output:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"><script>
- alert("Welcome Big Joe\'s \"right hand\"!");
-</script></pre></div>
-
- <p>The exact escaping rules are:</p>
-
- <ul>
- <li>
- <p><code class="inline-code">"</code> is escaped as
- <code class="inline-code">\"</code></p>
- </li>
-
- <li>
- <p><code class="inline-code">'</code> is escaped as
- <code class="inline-code">\'</code></p>
- </li>
-
- <li>
- <p><code class="inline-code">\</code> is escaped as
- <code class="inline-code">\\</code></p>
- </li>
-
- <li>
- <p><code class="inline-code">/</code> is escaped as <code class="inline-code">\/</code>
- if the <code class="inline-code">/</code> is directly after
- <code class="inline-code"><</code> in the escaped string, or if it's at the
- beginning of the escaped string</p>
- </li>
-
- <li>
- <p><code class="inline-code">></code> is escaped as
- <code class="inline-code">\></code> if the <code class="inline-code">></code> is
- directly after <code class="inline-code">]]</code> or <code class="inline-code">--</code> in
- the escaped string, or if it's at the beginning of the escaped
- string, or if there's only a <code class="inline-code">]</code> or
- <code class="inline-code">-</code> before it at the beginning of the escaped
- string</p>
- </li>
-
- <li>
- <p><code class="inline-code"><</code> is escaped as
- <code class="inline-code">\u003C</code> if it's followed by
- <code class="inline-code">?</code> or <code class="inline-code">!</code> in the escaped
- string, or if it's at the end of the escaped string</p>
- </li>
-
- <li>
- <p>Control characters in <a href="gloss.html#gloss.UCS">UCS</a>
- code point ranges U+0000...U+001f and U+007f...U+009f are
- escaped as <code class="inline-code">\r</code>, <code class="inline-code">\n</code>, etc.,
- or as <code class="inline-code">\x<em class="code-color">XX</em></code> where
- there's no special escape for them in JavaScript.</p>
- </li>
-
- <li>
- <p>Control characters with <a href="gloss.html#gloss.UCS">UCS</a> code point U+2028 (Line
- separator) and U+2029 (Paragraph separator) are escaped as
- <code class="inline-code">\u<em class="code-color">XXXX</em></code>, as they
- are source code line-breaks in ECMAScript.</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_json_string">json_string</h2>
-
-
-
-
- <p>Escapes the string with the escaping rules of JSON language
- string literals, so it's safe to insert the value into a string
- literal. Note that it will <em>not</em> add quotation
- marks around the inserted value; you meant to use this
- <em>inside</em> the string literal.</p>
-
- <p>This will not escape <code class="inline-code">'</code> characters, since
- JSON strings must be quoted with <code class="inline-code">"</code>.</p>
-
- <p>The escaping rules are almost identical to those <a href="#ref_builtin_j_string">documented for
- <code>js_string</code></a>. The differences are that
- <code class="inline-code">'</code> is not escaped at all, that > is escaped as
- \u003E (not as \>), and that
- <code class="inline-code">\u<em class="code-color">XXXX</em></code> escapes are
- used instead of <code class="inline-code">\x<em class="code-color">XX</em></code>
- escapes.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_keep_after">keep_after</h2>
-
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in is available since FreeMarker 2.3.21.</p>
- </div>
-
-
- <p>Removes the part of the string that is not after the first
- occurrence of the given substring. For example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${"abcdefgh"?keep_after("de")}</pre></div>
-
- <p>will print</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">fgh</pre></div>
-
- <p>If the parameter string is not found, it will return an empty
- string. If the parameter string is a 0-length string, it will return
- the original string unchanged.</p>
-
- <p>This method accepts an optional <a href="#ref_builtin_string_flags">flags parameter</a>, as its
- 2nd parameter:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${"foo : bar"?keep_after(r"\s*:\s*", "r")}</pre></div>
-
- <p>will print</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">bar</pre></div>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_keep_after_last">keep_after_last</h2>
-
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in is available since FreeMarker 2.3.22.</p>
- </div>
-
-
- <p>Same as <a href="#ref_builtin_keep_after"><code>keep_after</code></a>,
- but keeps the part after the last occurrence of the parameter,
- rather than after the first. Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${"foo.bar.txt"?keep_after_last(".")}</pre></div>
-
- <p>will print</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">txt</pre></div>
-
- <p>while with <code class="inline-code">keep_after</code> you would get
- <code class="inline-code">bar.txt</code>.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_keep_before">keep_before</h2>
-
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in is available since FreeMarker 2.3.21.</p>
- </div>
-
-
- <p>Removes the part of the string that starts with the given
- substring. For example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${"abcdef"?keep_before("de")}</pre></div>
-
- <p>will print</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">abc</pre></div>
-
- <p>If the parameter string is not found, it will return the
- original string unchanged. If the parameter string is a 0-length
- string, it will return an empty string.</p>
-
- <p>This method accepts an optional <a href="#ref_builtin_string_flags">flags parameter</a>, as its
- 2nd parameter:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${"foo : bar"?keep_before(r"\s*:\s*", "r")}</pre></div>
-
- <p>will print</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">foo</pre></div>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_keep_before_last">keep_before_last</h2>
-
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in is available since FreeMarker 2.3.22.</p>
- </div>
-
-
- <p>Same as <a href="#ref_builtin_keep_before"><code>keep_before</code></a>,
- but keeps the part before the last occurrence of the parameter,
- rather than after the first. Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${"foo.bar.txt"?keep_after_last(".")}</pre></div>
-
- <p>will print</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">foo.bar</pre></div>
-
- <p>while with <code class="inline-code">keep_before</code> you would get
- <code class="inline-code">foo</code>.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_last_index_of">last_index_of</h2>
-
-
-
-
- <p>Returns the index within this string of the last (rightmost)
- occurrence of the specified substring. It returns the index of the
- first (leftmost) character of the substring. For example:
- <code class="inline-code">"abcabc"?last_index_of("ab")</code> will return 3. Also,
- you can specify the index to start the search from. For example,
- <code class="inline-code">"abcabc"?last_index_of("ab", 2)</code> will return 0.
- Note that the second parameter indicates the maximum index of the
- start of the substring. There is no restriction on the numerical
- value of the second parameter: if it is negative, it has the same
- effect as if it were zero, and if it is greater than the length of
- this string, it has the same effect as if it were equal to the
- length of this string. Decimal values will be truncated to
- inegers.</p>
-
- <p>If the 1st parameter does not occur as a substring in this
- string (before the given index, if you use the second parameter),
- then it returns -1.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_left_pad">left_pad</h2>
-
-
-
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in is available since FreeMarker 2.3.1.</p>
- </div>
-
-
- <p>If it's used with 1 parameter, then it inserts spaces on the
- beginning of the string until it reaches the length that is
- specified as the parameter. If the string is already as long or
- longer than the specified length, then it does nothing. For example,
- this:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">[${""?left_pad(5)}]
-[${"a"?left_pad(5)}]
-[${"ab"?left_pad(5)}]
-[${"abc"?left_pad(5)}]
-[${"abcd"?left_pad(5)}]
-[${"abcde"?left_pad(5)}]
-[${"abcdef"?left_pad(5)}]
-[${"abcdefg"?left_pad(5)}]
-[${"abcdefgh"?left_pad(5)}]</pre></div>
-
- <p>will output this:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">[ ]
-[ a]
-[ ab]
-[ abc]
-[ abcd]
-[abcde]
-[abcdef]
-[abcdefg]
-[abcdefgh]</pre></div>
-
- <p>If it's used with 2 parameters, then the 1st parameter means
- the same as if you were using the built-in with only 1 parameter,
- and the second parameter specifies what to insert instead of space
- characters. For example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">[${""?left_pad(5, "-")}]
-[${"a"?left_pad(5, "-")}]
-[${"ab"?left_pad(5, "-")}]
-[${"abc"?left_pad(5, "-")}]
-[${"abcd"?left_pad(5, "-")}]
-[${"abcde"?left_pad(5, "-")}]</pre></div>
-
- <p>will output this:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">[-----]
-[----a]
-[---ab]
-[--abc]
-[-abcd]
-[abcde]</pre></div>
-
- <p>The 2nd parameter can be a string whose length is greater than
- 1. Then the string will be inserted periodically, for
- example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">[${""?left_pad(8, ".oO")}]
-[${"a"?left_pad(8, ".oO")}]
-[${"ab"?left_pad(8, ".oO")}]
-[${"abc"?left_pad(8, ".oO")}]
-[${"abcd"?left_pad(8, ".oO")}]</pre></div>
-
- <p>will output this:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">[.oO.oO.o]
-[.oO.oO.a]
-[.oO.oOab]
-[.oO.oabc]
-[.oO.abcd]</pre></div>
-
- <p>The 2nd parameter must be a string value, and it must be at
- least 1 character long.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_length">length</h2>
-
-
-
-
- <p>The number of characters in the string.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_lower_case">lower_case</h2>
-
-
-
-
- <p>The lower case version of the string. For example
- <code class="inline-code">"GrEeN MoUsE"?lower_case</code> will be <code class="inline-code">"green
- mouse"</code>.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_matches">matches</h2>
-
-
-
-
- <p>This is a "power user" built-in. Ignore it if you
- don't know <a href="gloss.html#gloss.regularExpression">regular
- expressions</a>.</p>
-
- <p>This built-in determines if the string exactly matches the
- pattern. Also, it returns the list of matching sub-strings. The
- return value is a multi-type value:</p>
-
- <ul>
- <li>
- <p>Boolean: <code class="inline-code">true</code>, if it the entire string
- matches the pattern, otherwise <code class="inline-code">false</code>. For
- example, <code class="inline-code">"fooo"?matches('fo*')</code> is
- <code class="inline-code">true</code>, but
- <code class="inline-code">"fooo�bar"?matches('fo*')</code> is
- <code class="inline-code">false</code>.</p>
- </li>
-
- <li>
- <p>Sequence: the list of matched substrings of the string.
- Possibly a 0 length sequence.</p>
- </li>
- </ul>
-
- <p>For example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#if "fxo"?matches("f.?o")>Matches.<#else>Does not match.</#if>
-
-<#assign res = "foo bar fyo"?matches("f.?o")>
-<#if res>Matches.<#else>Does not match.</#if>
-Matching sub-strings:
-<#list res as m>
-- ${m}
-</#list></pre></div>
-
- <p>will print:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">Matches.
-
-Does not match.
-Matching sub-strings:
-- foo
-- fyo</pre></div>
-
- <p>If the regular expression contains groups (parentheses), then
- you can access them with the <code class="inline-code">groups</code>
- built-in:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#-- Entire input match -->
-<#assign res = "John Doe"?matches(r"(\w+) (\w+)")>
-<#if res> <#-- Must not try to access groups if there was no match! -->
- First name: ${res?groups[1]}
- Second name: ${res?groups[2]}
-</#if>
-
-<#-- Subtring matches -->
-<#assign res = "aa/rx; ab/r;"?matches("(.+?)/*(.+?);")>
-<#list res as m>
- - "${m}" is "${m?groups[1]}" per "${m?groups[2]}"
-</#list></pre></div>
-
- <p>This will print:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> First name: John
- Second name: Doe
-
- - "aa/rx;" is "a" per "a/rx"
- - " ab/r;" is " " per "ab/r"</pre></div>
-
- <p>Notes regarding the behavior of the <code class="inline-code">groups</code>
- built-in:</p>
-
- <ul>
- <li>
- <p>It works both with substring matches and with the result
- of entire string matching (as it was shown in the above
- example)</p>
- </li>
-
- <li>
- <p>The first item in the sequence that
- <code class="inline-code">groups</code> returns is the whole substring matched
- by the regular expression. Hence, the index of the first
- explicit regular expression group (with other words, of the
- first <code class="inline-code">(<em class="code-color">...</em>)</code> in the
- regular expression) is 1, and not 0. Also, because of this, the
- size of the sequence is one more than the number of explicit
- regular expression groups.</p>
- </li>
-
- <li>
- <p>The size of the sequence returned by
- <code class="inline-code">groups</code> only depends on the number of explicit
- groups in the regular expression, and so it will be the same
- (non-0) even if there was no match found for the regular
- expression. Attempting to access an item of the sequence (as in
- <code class="inline-code">res?groups[1]</code>) when there was match will
- cause an error. Thus, before accessing the groups, you should
- always check if there was any match (as in <code class="inline-code"><#if
- res><em class="code-color">access the groups
- here</em></#if></code>).</p>
- </li>
-
- <li>
- <p>When there's a match for the regular expression, but not
- for a certain explicit group inside the regular expression, then
- for that group the sequence will contain a 0 length string. So
- accessing a group that matches nothing is safe, as far as the
- containing regular expression has matched something.</p>
- </li>
- </ul>
-
- <p><code class="inline-code">matches</code> accepts an optional 2nd parameter,
- the <a href="#ref_builtin_string_flags">flags</a>. Note that
- it doesn't support flag <code class="inline-code">f</code>, and ignores the
- <code class="inline-code">r</code> flag.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_no_esc">no_esc</h2>
-
-
- <p></p>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in is available since FreeMarker 2.3.24.</p>
- </div>
-
-
- <p>Prevents the <a href="dgui_misc_autoescaping.html">auto-escaping</a> of a value.
- For example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#ftl output_format="HTML">
-<#assign s = "<b>Test</b>">
-${s}
-${s?no_esc}</pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">&lt;b&gt;Test&lt;/b&gt;
-<b>Test</b></pre></div>
-
- <p>This works by converting the string value to a <a href="dgui_misc_autoescaping.html#dgui_misc_autoescaping_movalues">markup output
- value</a>, which uses the string as the markup as is, and belongs
- to the current <a href="dgui_misc_autoescaping.html#dgui_misc_autoescaping_outputformat">output format</a>
- at the point of the invocation.</p>
-
- <p>This built-in can also be applied on markup output values,
- which it will bypass without change, as far as the input markup
- output value belongs to current output format. If it doesn't, then
- the markup has to be converted to the current output format, which
- currently (as of 2.3.24) will be only successful if that value was
- created by escaping plain text (usually, with
- <code class="inline-code">?esc</code>).</p>
-
- <p>This built-in can't be used where the current output format is
- a <a href="dgui_misc_autoescaping.html#dgui_misc_autoescaping_nonmarkupof">non-markup
- output format</a>. An attempt to do so will cause a <a href="gloss.html#gloss.parseTimeError">parse-time error</a>.</p>
-
- <p>This built-in is not related to the deprecated <a href="ref_directive_escape.html"><code>escape</code> and
- <code>noescape</code> directives</a>. In fact, the parser
- will prevent using them on the same place, to prevent
- confusion.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_number">number</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <p>The string converted to numerical value. The number must be in
- "computer language" format. That is, it must be in the
- locale independent form, where the decimal separator is dot, and
- there's no grouping.</p>
-
- <p>This built-in recognizes numbers in the format that the
- FreeMarker template language uses. In additionally, it recognizes
- scientific notation (e.g. <code class="inline-code">"1.23E6"</code>,
- <code class="inline-code">"1.5e-8"</code>). Since FreeMarker 2.3.21, it also
- recognizes all XML Schema number formats, like
- <code class="inline-code">NaN</code>, <code class="inline-code">INF</code>,
- <code class="inline-code">-INF</code>, plus the Java-native formats
- <code class="inline-code">Infinity</code> and <code class="inline-code">-Infinity</code>.</p>
-
- <p>If the string is not in the appropriate format, an error will
- abort template processing when you try to access this
- built-in.</p>
-
- <p><span class="marked-for-programmers">In fact, the string is parsed by
- the <code class="inline-code">toNumber</code> method of the current
- <code class="inline-code">arithmetic_engine</code>, which is configuration
- setting. However, that method should behave similarly as described
- above.</span></p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_replace">replace</h2>
-
-
-
-
- <p>It is used to replace all occurrences of a string in the
- original string with another string. It does not deal with word
- boundaries. For example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${"this is a car acarus"?replace("car", "bulldozer")}</pre></div>
-
- <p>will print:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">this is a bulldozer abulldozerus</pre></div>
-
- <p>The replacing occurs in left-to-right order. This means that
- this:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${"aaaaa"?replace("aaa", "X")}</pre></div>
-
- <p>will print:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">Xaa</pre></div>
-
- <p>If the 1st parameter is an empty string, then all occurrences
- of the empty string will be replaced, like
- <code class="inline-code">"foo"?replace("","|")</code> will evaluate to
- <code class="inline-code">"|f|o|o|"</code>.</p>
-
- <p><code class="inline-code">replace</code> accepts an optional <a href="#ref_builtin_string_flags">flags parameter</a>, as its
- 3rd parameter.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_right_pad">right_pad</h2>
-
-
-
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in is available since FreeMarker 2.3.1. It
- doesn't exist in 2.3.</p>
- </div>
-
-
- <p>This is the same as <a href="#ref_builtin_left_pad"><code>left_pad</code></a>,
- but it inserts the characters at the end of the string instead of
- the beginning of the string.</p>
-
- <p>Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">[${""?right_pad(5)}]
-[${"a"?right_pad(5)}]
-[${"ab"?right_pad(5)}]
-[${"abc"?right_pad(5)}]
-[${"abcd"?right_pad(5)}]
-[${"abcde"?right_pad(5)}]
-[${"abcdef"?right_pad(5)}]
-[${"abcdefg"?right_pad(5)}]
-[${"abcdefgh"?right_pad(5)}]
-
-[${""?right_pad(8, ".oO")}]
-[${"a"?right_pad(8, ".oO")}]
-[${"ab"?right_pad(8, ".oO")}]
-[${"abc"?right_pad(8, ".oO")}]
-[${"abcd"?right_pad(8, ".oO")}]</pre></div>
-
- <p>This will output this:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">[ ]
-[a ]
-[ab ]
-[abc ]
-[abcd ]
-[abcde]
-[abcdef]
-[abcdefg]
-[abcdefgh]
-
-[.oO.oO.o]
-[aoO.oO.o]
-[abO.oO.o]
-[abc.oO.o]
-[abcdoO.o]</pre></div>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_remove_beginning">remove_beginning</h2>
-
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in is available since FreeMarker 2.3.21.</p>
- </div>
-
-
- <p>Removes the parameter substring from the beginning of the
- string, or returns the original string if it doesn't start with the
- parameter substring. For example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${"abcdef"?remove_beginning("abc")}
-${"foobar"?remove_beginning("abc")}</pre></div>
-
- <p>will print:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">def
-foobar</pre></div>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_remove_ending">remove_ending</h2>
-
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in is available since FreeMarker 2.3.21.</p>
- </div>
-
-
- <p>Removes the parameter substring from the ending of the string,
- or returns the original string if it doesn't end with the parameter
- substring. For example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${"abcdef"?remove_ending("def")}
-${"foobar"?remove_ending("def")}</pre></div>
-
- <p>will print:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">abc
-foobar</pre></div>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_rtf">rtf (deprecated)</h2>
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in is <em>deprecated</em> by the
- <a href="dgui_misc_autoescaping.html">auto-escaping
- mechanism</a> introduced in 2.3.24. To prevent double escaping
- and confusion in general, using this built-in on places where
- auto-escaping is active is a <a href="gloss.html#gloss.parseTimeError">parse-time error</a>. To help
- migration, this built-in silently bypasses RTF <a href="dgui_misc_autoescaping.html#dgui_misc_autoescaping_movalues">markup output
- values</a> without changing them.</p>
- </div>
-
-
-
-
-
-
- <p>The string as Rich text (RTF text). That is, the string with
- all:</p>
-
- <ul>
- <li>
- <p><code class="inline-code">\</code> replaced with
- <code class="inline-code">\\</code></p>
- </li>
-
- <li>
- <p><code class="inline-code">{</code> replaced with
- <code class="inline-code">\{</code></p>
- </li>
-
- <li>
- <p><code class="inline-code">}</code> replaced with
- <code class="inline-code">\}</code></p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_split">split</h2>
-
-
-
-
- <p>It is used to split a string into a sequence of strings along
- the occurrences of another string. For example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list "someMOOtestMOOtext"?split("MOO") as x>
-- ${x}
-</#list></pre></div>
-
- <p>will print:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">- some
-- test
-- text</pre></div>
-
- <p>Note that it is assumed that all occurrences of the separator
- is before a new item (except with <code class="inline-code">"r"</code> flag - see
- later), thus:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list "some,,test,text,"?split(",") as x>
-- "${x}"
-</#list></pre></div>
-
- <p>will print:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">- "some"
-- ""
-- "test"
-- "text"
-- ""</pre></div>
-
- <p><code class="inline-code">split</code> accepts an optional <a href="#ref_builtin_string_flags">flags parameter</a>, as its
- 2nd parameter. There's a historical glitch with the
- <code class="inline-code">r</code> (regular expression) flag; it removes the empty
- elements from the end of the resulting list, so with
- <code class="inline-code">?split(",", "r")</code> in the last example the last
- <code class="inline-code">""</code> would be missing from the output.</p>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>To check if a strings ends with something and append it
- otherwise, use <a href="#ref_builtin_ensure_ends_with">the
- <code>ensure_ends_with</code> built-in</a>.</p>
- </div>
-
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_starts_with">starts_with</h2>
-
-
-
-
- <p>Returns if this string starts with the specified substring.
- For example <code class="inline-code">"redirect"?starts_with("red")</code> returns
- boolean <code class="inline-code">true</code>. Also,
- <code class="inline-code">"red"?starts_with("red")</code> will return
- <code class="inline-code">true</code>.</p>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>To check if a strings starts with something and prepend it
- otherwise, use <a href="#ref_builtin_ensure_starts_with">the
- <code>ensure_starts_with</code> built-in</a>.</p>
- </div>
-
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_string_for_string">string (when used with a string value)</h2>
-
-
- <p>Does nothing, just returns the string as-is. The exception is
- that if the value is a multi-type value (e.g. it is both string and
- sequence at the same time), then the resulting value will be only a
- simple string, not a multi-type value. This can be utilized to
- prevent the artifacts of multi-typing.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_substring">substring (deprecated)</h2>
-
-
-
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in is deprecated since FreeMarker 2.3.21 by <a href="dgui_template_exp.html#dgui_template_exp_stringop_slice">slicing
- expressions</a>, like
- <code class="inline-code"><em class="code-color">str</em>[<em class="code-color">from</em>..<<em class="code-color">toExclusive</em>]</code>,
- <code class="inline-code"><em class="code-color">str</em>[<em class="code-color">from</em>..]</code>,
- and
- <code class="inline-code"><em class="code-color">str</em>[<em class="code-color">from</em>..*<em class="code-color">maxLength</em>]</code>.</p>
-
- <p>A warning if you are processing XML: Since slicing
- expressions work both for sequences and strings, and since XML
- nodes are typically both sequences and strings at the same time,
- there the equivalent expression is
- <code class="inline-code"><em class="code-color">someXmlNode</em>?string[<em class="code-color">from</em>..<<em class="code-color">toExclusive</em>]</code>
- and
- <code class="inline-code"><em class="code-color">exp</em>?string[<em class="code-color">from</em>..]</code>,
- as without <code class="inline-code">?string</code> it would slice the node
- sequence instead of the text value of the node.</p>
- </div>
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>Some of the typical use-cases of string slicing is covered
- by convenient built-ins: <a href="#ref_builtin_remove_beginning"><code>remove_beginning</code></a>,
- <a href="#ref_builtin_remove_ending"><code>remove_ending</code></a>,
- <a href="#ref_builtin_keep_before"><code>keep_before</code></a>,
- <a href="#ref_builtin_keep_after"><code>keep_after</code></a>,
- <a href="#ref_builtin_keep_before_last"><code>keep_before_last</code></a>,
- <a href="#ref_builtin_keep_after_last"><code>keep_after_last</code></a></p>
- </div>
-
-
- <p>Synopsis:
- <code class="inline-code"><em class="code-color">exp</em>?substring(<em class="code-color">from</em>,
- <em class="code-color">toExclusive</em>)</code>, also callable as
- <code class="inline-code"><em class="code-color">exp</em>?substring(<em class="code-color">from</em>)</code></p>
-
- <p>A substring of the string.
- <code class="inline-code"><em class="code-color">from</em></code> is the index of
- the first character. It must be a number that is at least 0 and less
- than or equal with
- <code class="inline-code"><em class="code-color">toExclusive</em></code>, or else
- an error will abort the template processing. The
- <code class="inline-code"><em class="code-color">toExclusive</em></code> is the
- index of the character position after the last character of the
- substring, or with other words, it is one greater than the index of
- the last character. It must be a number that is at least 0 and less
- than or equal to the length of the string, or else an error will
- abort the template processing. If the
- <code class="inline-code"><em class="code-color">toExclusive</em></code> is
- omitted, then it defaults to the length of the string. If a
- parameter is a number that is not an integer, only the integer part
- of the number will be used.</p>
-
- <p>Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">- ${'abc'?substring(0)}
-- ${'abc'?substring(1)}
-- ${'abc'?substring(2)}
-- ${'abc'?substring(3)}
-
-- ${'abc'?substring(0, 0)}
-- ${'abc'?substring(0, 1)}
-- ${'abc'?substring(0, 2)}
-- ${'abc'?substring(0, 3)}
-
-- ${'abc'?substring(0, 1)}
-- ${'abc'?substring(1, 2)}
-- ${'abc'?substring(2, 3)}</pre></div>
-
- <p>The output:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">- abc
-- bc
-- c
--
-
--
-- a
-- ab
-- abc
-
-- a
-- b
-- c</pre></div>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_trim">trim</h2>
-
-
-
-
- <p>The string without leading and trailing white-space.
- Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">(${" green mouse "?trim})</pre></div>
-
- <p>The output:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">(green mouse)</pre></div>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_uncap_first">uncap_first</h2>
-
-
-
-
- <p>The opposite of <a href="#ref_builtin_cap_first"><code>cap_first</code></a>.
- The string with the very first word of the string
- un-capitalized.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_upper_case">upper_case</h2>
-
-
-
-
- <p>The upper case version of the string. For example
- <code class="inline-code">"GrEeN MoUsE"</code> will be <code class="inline-code">"GREEN
- MOUSE"</code>.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_url">url</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in is available since FreeMarker 2.3.1. It
- doesn't exist in 2.3.</p>
- </div>
-
-
- <p>The string after URL escaping. This means that all
- non-US-ASCII and reserved URL characters will be escaped with
- <code class="inline-code">%<em class="code-color">XX</em></code>. For
- example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign x = 'a/b c'>
-${x?url}</pre></div>
-
- <p>The output will be (assuming that the charset used for the
- escaping is an US-ASCII compatible charset):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">a%2Fb%20c</pre></div>
-
- <p>Note that it escapes <em>all</em> reserved URL
- characters (<code class="inline-code">/</code>, <code class="inline-code">=</code>,
- <code class="inline-code">&</code>, ...etc), so this encoding can be used for
- encoding query parameter values, for example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><a href="foo.cgi?x=${x?url}&y=${y?url}">Click here...</a></pre></div>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>Above no HTML encoding (<code class="inline-code">?html</code>) was
- needed, because URL escaping escapes all reserved HTML characters
- anyway. But watch: always quote the attribute value, and always
- with normal quotation mark (<code class="inline-code">"</code>), never with
- apostrophe quotation mark (<code class="inline-code">'</code>), because
- apostrophe quotation mark is not escaped by the URL
- escaping.</p>
- </div>
-
-
- <p>To do URL escaping a <a href="gloss.html#gloss.charset">charset</a> must be chosen that will be
- used for calculating the escaped parts
- (<code class="inline-code">%<em class="code-color">XX</em></code>). If you are HTML
- page author and you don't really understand this, don't worry: the
- programmers should configure FreeMarker so that it uses the proper
- charset by default (<span class="marked-for-programmers">programmers: see
- more below...</span>). If you are a more technical minded user,
- then you may want to know that the charset used is specified by the
- <code class="inline-code">url_escaping_charset</code> setting, that can be set in
- template execution time (or, preferably, earlier by the
- programmers). For example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#--
- This will use the charset specified by the programmers
- before the template execution has started.
--->
-<a href="foo.cgi?x=${x?url}">foo</a>
-
-<#-- Use UTF-8 charset for URL escaping from now: -->
-<strong><#setting url_escaping_charset="UTF-8"></strong>
-
-<#-- This will surely use UTF-8 charset -->
-<a href="bar.cgi?x=${x?url}">bar</a></pre></div>
-
- <p>Furthermore, you can explicitly specify a charset for a single
- URL escaping as the parameter to the built-in:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><a href="foo.cgi?x=${x?url<strong>('ISO-8895-2')</strong>}">foo</a></pre></div>
-
- <p><span class="marked-for-programmers">If the <code class="inline-code">url</code> built-in has no
- parameter, then it will use the charset specified as the value of
- the <code class="inline-code">url_escaping_charset</code> setting. This setting
- should be set by the software that encloses FreeMarker (e.g. a Web
- application framework), because it is not set
- (<code class="inline-code">null</code>) by default. If it is not set, then
- FreeMarker falls back using the value of the
- <code class="inline-code">output_encoding</code> setting, which is also not set by
- default, so it is again the task of the enclosing software. If the
- <code class="inline-code">output_encoding</code> setting is not set either, then
- the parameterless <code class="inline-code">url</code> built-in can't be executed,
- and it will cause execution time error. Of course, the
- <code class="inline-code">url</code> built-in with parameter always
- works.</span></p>
-
- <p><span class="marked-for-programmers">It's possible to set
- <code class="inline-code">url_escaping_charset</code> in the template with the
- <code class="inline-code">setting</code> directive, but it is bad practice, at
- least in true MVC applications. The
- <code class="inline-code">output_encoding</code> setting can't be set with the
- <code class="inline-code">setting</code> directive, so that's surely the task of
- the enclosing software. You may find more information regarding this
- <a href="pgui_misc_charset.html">here...</a></span></p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_url_path">url_path</h2>
-
-
-
-
-
-
-
-
-
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in is available since FreeMarker 2.3.21.</p>
- </div>
-
-
- <p>This is the same as <a href="#ref_builtin_url">the
- <code>url</code> built-in</a>, except that it doesn't
- escape slash (<code class="inline-code">/</code>) characters. This meant to be
- used for converting paths (like paths coming from the OS or some
- content repository) that use slash (not backslash!) to a path the
- can be inserted into an URL. The most common reason why this
- conversion is needed is that folder names or file names might
- contain non-US-ASCII letters ("national"
- characters).</p>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>Just like with <a href="#ref_builtin_url">the
- <code>url</code> built-in</a>, the desired URL escaping
- charset (or as a fall back, the output encoding) must be set in
- the FreeMarker configuration settings, or else the built-in will
- give error. Or, you you have to specify the charset like
- <code class="inline-code">somePath?url_path('utf-8')</code>.</p>
- </div>
-
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_word_list">word_list</h2>
-
-
-
-
- <p>A sequence that contains all words of the string in the order
- as they appear in the string. Words are continual character
- sequences that contain any character but <a href="gloss.html#gloss.whiteSpace">white-space</a>. Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign words = " a bcd, . 1-2-3"?word_list>
-<#list words as word>[${word}]</#list></pre></div>
-
- <p>will output:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">[a][bcd,][.][1-2-3]</pre></div>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_xhtml">xhtml (deprecated)</h2>
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in is <em>deprecated</em> by the
- <a href="dgui_misc_autoescaping.html">auto-escaping
- mechanism</a> introduced in 2.3.24. To prevent double escaping
- and confusion in general, using this built-in on places where
- auto-escaping is active is a <a href="gloss.html#gloss.parseTimeError">parse-time error</a>. To help
- migration, this built-in silently bypasses HTML <a href="dgui_misc_autoescaping.html#dgui_misc_autoescaping_movalues">markup output
- values</a> without changing them.</p>
- </div>
-
-
-
-
-
-
- <p>The string as XHTML text. That is, the string with all:</p>
-
- <ul>
- <li>
- <code class="inline-code"><</code> replaced with
- <code class="inline-code">&lt;</code>
- </li>
-
- <li>
- <code class="inline-code">></code> replaced with
- <code class="inline-code">&gt;</code>
- </li>
-
- <li>
- <code class="inline-code">&</code> replaced with
- <code class="inline-code">&amp;</code>
- </li>
-
- <li>
- <code class="inline-code">"</code> replaced with
- <code class="inline-code">&quot;</code>
- </li>
-
- <li>
- <code class="inline-code">'</code> replaced with
- <code class="inline-code">&#39;</code>
- </li>
- </ul>
-
- <p>The only difference between this built-in and the
- <code class="inline-code">xml</code> built-in is that the <code class="inline-code">xhtml</code>
- built-in escapes <code class="inline-code">'</code> as
- <code class="inline-code">&#39;</code> instead of as
- <code class="inline-code">&apos;</code>, because some older browsers don't
- know <code class="inline-code">&apos;</code>.</p>
-
- <div class="callout warning">
- <strong class="callout-label">Warning!</strong>
-
- <p>When inserting the value of an attribute, always quote it,
- or else it can be exploited by attacker! This is WRONG:
- <code class="inline-code"><input name="user" value=${user?xhtml}/></code>.
- These are good: <code class="inline-code"><input name="user"
- value="${user?xhtml}"/></code>, <code class="inline-code"><input
- name="user" value='${user?xhtml}'/></code>.</p>
- </div>
-
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_xml">xml (deprecated)</h2>
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in is <em>deprecated</em> by the
- <a href="dgui_misc_autoescaping.html">auto-escaping
- mechanism</a> introduced in 2.3.24. To prevent double escaping
- and confusion in general, using this built-in on places where
- auto-escaping is active is a <a href="gloss.html#gloss.parseTimeError">parse-time error</a>. To help
- migration, this built-in silently bypasses XML and HTML <a href="dgui_misc_autoescaping.html#dgui_misc_autoescaping_movalues">markup output
- values</a> without changing them.</p>
- </div>
-
-
-
-
-
-
- <p>The string as XML text. That is, the string with all:</p>
-
- <ul>
- <li>
- <code class="inline-code"><</code> replaced with
- <code class="inline-code">&lt;</code>
- </li>
-
- <li>
- <code class="inline-code">></code> replaced with
- <code class="inline-code">&gt;</code>
- </li>
-
- <li>
- <code class="inline-code">&</code> replaced with
- <code class="inline-code">&amp;</code>
- </li>
-
- <li>
- <code class="inline-code">"</code> replaced with
- <code class="inline-code">&quot;</code>
- </li>
-
- <li>
- <code class="inline-code">'</code> replaced with
- <code class="inline-code">&apos;</code>
- </li>
- </ul>
-
- <div class="callout warning">
- <strong class="callout-label">Warning!</strong>
-
- <p>When inserting the value of an attribute, always quote it,
- or else it can be exploited by attackers! This is WRONG:
- <code class="inline-code"><input name="user" value=${user?xml}/></code>.
- These are good: <code class="inline-code"><input name="user"
- value="${user?xml}"/></code>, <code class="inline-code"><input name="user"
- value='${user?xml}'/></code>.</p>
- </div>
-
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_string_flags">Common flags</h2>
-
-
- <p>Many string built-ins accept an optional string parameter, the
- so called "flags". In this string, each letter
- influences a certain aspect of the behavior of the built-in. For
- example, letter <code class="inline-code">i</code> means that the built-in should
- not differentiate the lower and upper-case variation of the same
- letter. The order of the letters in the flags string is not
- significant.</p>
-
- <p>This is the complete list of letters (flags):</p>
-
- <ul>
- <li>
- <p><code class="inline-code">i</code>: Case insensitive: do not
- differentiate the lower and upper-case variation of the same
- letter.</p>
- </li>
-
- <li>
- <p><code class="inline-code">f</code>: First only. That is,
- replace/find/etc. only the first occurrence of something.</p>
- </li>
-
- <li>
- <p> <code class="inline-code">r</code>: The substring to find is a
- <a href="gloss.html#gloss.regularExpression">regular
- expression</a>. FreeMarker uses the variation of regular
- expressions described at <a href="http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html">http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html</a>
- (note that the presence of some pattern features depends on the
- Java version used).</p>
- </li>
-
- <li>
- <p><code class="inline-code">m</code>: Multi-line mode for regular
- expressions. In multi-line mode the expressions
- <code class="inline-code">^</code> and <code class="inline-code">$</code> match just after
- or just before, respectively, a line terminator or the end of
- the string. By default these expressions only match at the
- beginning and the end of the entire string. Note that
- <code class="inline-code">^</code> and <code class="inline-code">$</code> doesn't match the
- line-break character itself.</p>
- </li>
-
- <li>
- <p><code class="inline-code">s</code>: Enables dot-all mode for regular
- expressions (same as Perl singe-line mode). In dot-all mode, the
- expression <code class="inline-code">.</code> matches any character, including
- a line terminator. By default this expression does not match
- line terminators.</p>
- </li>
-
- <li>
- <p><code class="inline-code">c</code>: Permits whitespace and comments in
- regular expressions.</p>
- </li>
- </ul>
-
- <p>Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign s = 'foo bAr baar'>
-${s?replace('ba', 'XY')}
-i: ${s?replace('ba', 'XY', 'i')}
-if: ${s?replace('ba', 'XY', 'if')}
-r: ${s?replace('ba*', 'XY', 'r')}
-ri: ${s?replace('ba*', 'XY', 'ri')}
-rif: ${s?replace('ba*', 'XY', 'rif')}</pre></div>
-
- <p>This outputs this:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">foo bAr XYar
-i: foo XYr XYar
-if: foo XYr baar
-r: foo XYAr XYr
-ri: foo XYr XYr
-rif: foo XYr baar</pre></div>
-
- <p>
<TRUNCATED>
[12/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/versions_2_3.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_3.html b/builds/2.3.26-nightly/versions_2_3.html
deleted file mode 100644
index 4898aa2..0000000
--- a/builds/2.3.26-nightly/versions_2_3.html
+++ /dev/null
@@ -1,1629 +0,0 @@
-<!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 - 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">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/versions_2_3.html">
-<link rel="canonical" href="http://freemarker.org/docs/versions_2_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.html"><span itemprop="name">2.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"];</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_1.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_2_8.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="versions_2_3" itemprop="headline">2.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_220" data-menu-target="autoid_220">Non backward-compatible changes!</a></li><li><a class="page-menu-link" href="#autoid_221" data-menu-target="autoid_221">Changes on the FTL side</a></li><li><a class="page-menu-link" href="#autoid_222" data-menu-target="autoid_222">Changes on the Java side</a></li><li><a class="page-menu-link" href="#autoid_223" data-menu-target="autoid_223">Other changes</a></li><li><a class="page-menu-link" href="#autoid_224" data-menu-target="autoid_224">The history of the releases before the final version</a><ul><li><a class="page-menu-link" href="#autoid_225" data-menu-target="autoid_225">Differences between the final release and Release Candidate
-4</a></li><li><a class="page-menu-link" href="#autoid_226" data-menu-target="autoid_226">Differences between the Release Candidate 4 and Release
-Candidate 3</a></li><li><a class="page-menu-link" href="#autoid_227" data-menu-target="autoid_227">Differences between the Release Candidate 3 and Release
-Candidate 2</a></li><li><a class="page-menu-link" href="#autoid_228" data-menu-target="autoid_228">Differences between the Release Candidate 2 and Release
-Candidate 1</a></li><li><a class="page-menu-link" href="#autoid_229" data-menu-target="autoid_229">Differences between the Release Candidate 1 and Preview 16
-releases</a></li><li><a class="page-menu-link" href="#autoid_230" data-menu-target="autoid_230">Differences between the Preview 16 and Preview 15
-releases</a></li><li><a class="page-menu-link" href="#autoid_231" data-menu-target="autoid_231">Differences between the Preview 15 and Preview 14
-releases</a></li><li><a class="page-menu-link" href="#autoid_232" data-menu-target="autoid_232">Differences between the Preview 14 and Preview 13
-releases</a></li><li><a class="page-menu-link" href="#autoid_233" data-menu-target="autoid_233">Differences between the Preview 13 and Preview 12
-releases</a></li><li><a class="page-menu-link" href="#autoid_234" data-menu-target="autoid_234">Differences between the Preview 12 and Preview 11
-releases</a></li><li><a class="page-menu-link" href="#autoid_235" data-menu-target="autoid_235">Differences between the Preview 11 and Preview 10
-releases</a></li><li><a class="page-menu-link" href="#autoid_236" data-menu-target="autoid_236">Differences between the Preview 10 and Preview 9
-releases</a></li><li><a class="page-menu-link" href="#autoid_237" data-menu-target="autoid_237">Differences between the Preview 9 and Preview 8
-releases</a></li><li><a class="page-menu-link" href="#autoid_238" data-menu-target="autoid_238">Differences between the Preview 8 and Preview 7
-releases</a></li><li><a class="page-menu-link" href="#autoid_239" data-menu-target="autoid_239">Differences between the Preview 7 and Preview 6
-releases</a></li><li><a class="page-menu-link" href="#autoid_240" data-menu-target="autoid_240">Differences between the Preview 6 and Preview 5
-releases</a></li><li><a class="page-menu-link" href="#autoid_241" data-menu-target="autoid_241">Differences between the Preview 5 and Preview 4
-releases</a></li><li><a class="page-menu-link" href="#autoid_242" data-menu-target="autoid_242">Differences between the Preview 4 and Preview 3
-releases</a></li><li><a class="page-menu-link" href="#autoid_243" data-menu-target="autoid_243">Differences between the Preview 3 and Preview 2
-releases</a></li><li><a class="page-menu-link" href="#autoid_244" data-menu-target="autoid_244">Differences between the Preview 2 and Preview 1
-releases</a></li></ul></li></ul> </div><p>Date of release: 2004-June-15</p><p>FreeMarker 2.3 introduces numerous little new features and
- quality improvements compared to the 2.2.x series. The most notable
- improvements are the ability to define functions (methods) in
- templates, the ability to interpolate variables in string literals,
- the support for a variable number of macro parameters, and the more
- intelligent default object wrapper. Although none of the improvements
- is a drastic change, the 2.3.x series is not backward compatible with
- the 2.2.x series (see the list below), so you may choose to use it for
- new projects only.</p><p>Probably the most "loudly promoted" new feature is
- the totally redesigned XML wrapper. With the new XML wrapper
- FreeMarker targets a new application domain, which is similar to the
- application domain of XSLT: transforming complex XML to whatever
- textual output. Although this subproject is young, it is definitely
- usable in practice. See the <a href="xgui.html">XML Processing
- Guide</a> for more details.</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_220">Non backward-compatible changes!</h2>
-
-
- <ul>
- <li>
- <p>Since interpolations (<code class="inline-code">${...}</code> and
- <code class="inline-code">#{...}</code>) now work inside string literals, the
- character sequence <code class="inline-code">${</code> and
- <code class="inline-code">#{</code> in string literals are reserved for that.
- So if you have something like <code class="inline-code"><#set x =
- "${foo}"></code>, then you have to replace it with
- <code class="inline-code"><#set x = r"${foo}"></code> -- beware, escapes
- such as <code class="inline-code">\n</code> will not work in raw
- (<code class="inline-code">r</code>) strings.</p>
- </li>
-
- <li>
- <p>The default (initial) value of the
- <code class="inline-code">strict_syntax</code> setting has been changed from
- <code class="inline-code">false</code> to <code class="inline-code">true</code>. When
- <code class="inline-code">strict_syntax</code> is <code class="inline-code">true</code>,
- tags with old syntax as <code class="inline-code"><include
- "foo.ftl"></code> will be considered as static text (so
- they go to the output as-is, like HTML tags do), and not as FTL
- tags. Such tags have to be rewritten to <code class="inline-code"><#include
- "foo.ftl"></code>, since only parts that starts with
- <code class="inline-code"><#</code>, <code class="inline-code"></#</code>,
- <code class="inline-code"><@</code>, or <code class="inline-code"></@</code> count as
- FTL tags. Or, to recover the old transitional behavior, where
- both legacy and new tag syntax was recognized, you have to
- explicitly set <code class="inline-code">strict_syntax</code> to
- <code class="inline-code">false</code>:
- <code class="inline-code">cfg.setStrictSyntaxMode(false)</code>. Also, for
- individual templates you can force the old behavior by starting
- the template with <code class="inline-code"><#ftl
- strict_syntax=false></code>. (For more information about
- why strict syntax is better than old syntax <a href="ref_depr_oldsyntax.html">read this...</a>)</p>
- </li>
-
- <li>
- <p>Several classes were moved from the
- <code class="inline-code">freemarker.template</code> package, to the new
- <code class="inline-code">freemarker.core</code> package:</p>
-
- <ul>
- <li>
- "Normal" classes: <code class="inline-code">ArithmeticEngine</code>,
- <code class="inline-code">Configurable</code>,
- <em><code class="inline-code">Environment</code></em>
- </li>
-
- <li>
- Exceptions:
- <code class="inline-code">InvalidReferenceException</code>,
- <code class="inline-code">NonBooleanException</code>,
- <code class="inline-code">NonNumericalException</code>,
- <code class="inline-code">NonStringException</code>,
- <code class="inline-code">ParseException</code>,
- <code class="inline-code">StopException</code>
- </li>
-
- <li>
- Errors: <code class="inline-code">TokenMgrError</code>
- </li>
- </ul>
-
- <p>The main reason of the splitting of
- <code class="inline-code">freemarker.template</code> package was that the
- amount of "expert" public classes and interfaces grows too much,
- as we introduce API-s for third-party tools, such as debugging
- API.</p>
- </li>
-
- <li>
- <p><code class="inline-code">freemarker.template.TemplateMethodModel.exec</code>
- now returns <code class="inline-code">Object</code> instead of
- <code class="inline-code">TemplateModel</code>.</p>
- </li>
-
- <li>
- <p>White-space stripping is now more aggressive as before: it
- always removes leading and trailing white-space if the line only
- contains FTL tags. (Earlier the white-space was not removed if
- the tag was <code class="inline-code"><#include
- <em class="code-color">...</em>></code> or user-defined
- directive tag with empty directive syntax as
- <code class="inline-code"><@myMacro/></code> (or its equivalents:
- <code class="inline-code"><@myMacro></@myMacro></code> and
- <code class="inline-code"><@myMacro></@></code>). Now white-space
- is removed in these cases as well.) Also, white-space sandwiched
- between two non-outputting elements, such as macro definitions,
- assignments, imports, or property settings, is now ignored. More
- information: <a href="dgui_misc_whitespace.html#dgui_misc_whitespace_stripping">Template Author's Guide/Miscellaneous/White-space handling/White-space stripping</a></p>
- </li>
-
- <li>
- <p>The <code class="inline-code">function</code> directive is now used for
- defining methods. You should replace <code class="inline-code">function</code>
- with <code class="inline-code">macro</code> in your old templates. Note,
- however, that old <code class="inline-code">function</code>-s will still work
- if you don't use the <code class="inline-code">return</code> directive in
- them, and you invoke them with the deprecated the
- <code class="inline-code">call</code> directive.</p>
- </li>
-
- <li>
- <p>The expressions <code class="inline-code">as</code>,
- <code class="inline-code">in</code>, and <code class="inline-code">using</code> are now
- keywords in the template language and cannot be used as
- top-level variable names without square-bracket syntax. If, by
- some chance, you have top-level variables that use one of these
- names, you will have to rename them, or use the square-bracket
- syntax with the <code class="inline-code">.vars</code> special variable:
- <code class="inline-code">.vars["in"]</code>.</p>
- </li>
-
- <li>
- <p>The <code class="inline-code">?new</code> built-in, as it was
- implemented, was a security hole. Now, it only allows you to
- instantiate a java object that implements the
- <code class="inline-code">freemarker.template.TemplateModel</code> interface.
- If you want the functionality of the <code class="inline-code">?new</code>
- built-in as it existed in prior versions, make available an
- instance of the
- <code class="inline-code">freemarker.template.utility.ObjectConstructor</code>
- class to your template. (For example:
- <code class="inline-code">myDataModel.put("objConstructor", new
- ObjectConstructor());</code>, and then in the template you
- can do this: <code class="inline-code"><#assign aList =
- objConstructor("java.util.ArrayList", 100)></code>)</p>
- </li>
-
- <li>
- <p>Changes to the
- <code class="inline-code">FreemarkerServlet</code>:</p>
-
- <ul>
- <li>
- <p>The <code class="inline-code">FreemarkerServlet</code> uses
- <code class="inline-code">ObjectWrapper.DEFAULT_WRAPPER</code> by default
- instead of <code class="inline-code">ObjectWrapper.BEANS_WRAPPER</code>.
- What this means is that, by default, objects of type
- <code class="inline-code">java.lang.String</code>,
- <code class="inline-code">java.lang.Number</code>,
- <code class="inline-code">java.util.List</code>, and
- <code class="inline-code">java.util.Map</code> will be wrapped as
- <code class="inline-code">TemplateModels</code> via the classes
- <code class="inline-code">SimpleScalar</code>,
- <code class="inline-code">SimpleNumber</code>,
- <code class="inline-code">SimpleSequence</code>, and
- <code class="inline-code">SimpleHash</code> respectively. Thus, the java
- methods on those objects will not be available. The default
- wrapper implementation in FreeMarker 2.3 automatically knows
- how to wrap Jython objects, and also wraps
- <code class="inline-code">org.w3c.dom.Node</code> objects into instances
- of <code class="inline-code">freemarker.ext.dom.NodeModel</code>.</p>
- </li>
-
- <li>
- <p>The <code class="inline-code">FreemarkerServlet</code> base
- implementation no longer deduces the locale used for
- templates with <code class="inline-code">HttpRequest.getLocale()</code>.
- Rather, it simply delegates to the new protected method,
- <code class="inline-code">deduceLocale</code>. The default implementation
- of this method simply returns the value of configuration the
- <code class="inline-code">locale</code> setting.</p>
- </li>
- </ul>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_221">Changes on the FTL side</h2>
-
-
- <ul>
- <li>
- <p>Interpolation in string literals. For convenience,
- interpolations are now supported in string literals. For
- example: <code class="inline-code"><@message�"Hello�${user}!"�/></code>
- is the same as <code class="inline-code"><@message "Hello " + user + "!"
- /></code></p>
- </li>
-
- <li>
- <p>Raw string literals: In string literals prefixed with
- <code class="inline-code">r</code>, interpolations and escape sequences will
- not be interpreted as special tokens. For example:
- <code class="inline-code">r"\n${x}"</code> will be simply interpreted as the
- character sequence <code class="inline-code">'\'</code>,
- <code class="inline-code">'n'</code>, <code class="inline-code">'$'</code>,
- <code class="inline-code">'{'</code>, <code class="inline-code">'x'</code>,
- <code class="inline-code">'}'</code>, and not as line-feed and the value of
- the <code class="inline-code">x</code> variable.</p>
- </li>
-
- <li>
- <p>Method variables can be defined in FTL, with the <a href="ref_directive_function.html#ref.directive.function"><code>function</code></a>
- directive.</p>
- </li>
-
- <li>
- <p>Support for a variable number of macro parameters. If the
- last parameter in a macro declaration ends with
- <code class="inline-code">...</code>, all extra parameters passed to the macro
- will be available via that parameter. For macros called with
- positional parameters, the parameter will be a sequence. For
- named parameters, the parameter will be a hash. Note that it all
- works with the new <code class="inline-code">function</code> directive as
- well.</p>
- </li>
-
- <li>
- <p>A new header parameter, <code class="inline-code">strip_text</code>,
- that removes all top-level text from a template. This is useful
- for "include files" to suppress newlines that
- separate the macro definitions. See <a href="ref_directive_ftl.html#ref.directive.ftl"><code>ftl</code>
- directive</a></p>
- </li>
-
- <li>
- <p>New <a href="ref_specvar.html">special variable</a>:
- <code class="inline-code">.vars</code>. This is useful to read top-level
- variables with square bracket syntax, for example
- <code class="inline-code">.vars["name-with-hyphens"]</code> and
- <code class="inline-code">.vars[dynamicName]</code>.</p>
- </li>
-
- <li>
- <p><code class="inline-code">macro</code> and assignment directives now
- accept arbitrary destination variable name with quoted syntax.
- For example: <code class="inline-code"><#macro
- "name-with-hyphens"><em class="code-color">...</em></code>
- or <code class="inline-code"><#assign "foo�bar" = 123></code>.</p>
- </li>
-
- <li>
- <p>The <code class="inline-code">?keys</code> and
- <code class="inline-code">?values</code> hash built-ins now return sequences.
- In practical terms this means you can access their sizes or
- retrieve their sub variables by index, and use all of the <a href="ref_builtins_sequence.html">sequence built-ins</a>. (Note
- for the programmers: The <code class="inline-code">TemplateHashModelEx</code>
- interface has not been changed. Your old code will work. See the
- API documentation to see why.)</p>
- </li>
-
- <li>
- <p>Existence built-ins (<code class="inline-code">?default</code>,
- <code class="inline-code">?exists</code>, etc.) are now working with sequence
- sub variables as well. Read the documentation of the
- <code class="inline-code">default</code> built-in for more information.</p>
- </li>
-
- <li>
- <p>White-space stripping is now more aggressive as before: it
- always removes leading and trailing white-space if the line only
- contains FTL tags. (Earlier the white-space was not removed if
- the tag was <code class="inline-code"><#include
- <em class="code-color">...</em>></code> or user-defined
- directive tag with empty directive syntax as
- <code class="inline-code"><@myMacro/></code> (or its equivalents:
- <code class="inline-code"><@myMacro></@myMacro></code> and
- <code class="inline-code"><@myMacro></@></code>). Now white-space
- is removed in these cases as well.) Also, top-level white-space
- that separates macro definitions and/or assignments is now
- ignored. More information: <a href="dgui_misc_whitespace.html#dgui_misc_whitespace_stripping">Template Author's Guide/Miscellaneous/White-space handling/White-space stripping</a></p>
- </li>
-
- <li>
- <p>White-space stripping can be disabled for a single line
- with the <a href="ref_directive_nt.html#ref.directive.nt"><code>nt</code></a>
- directive (for No Trim).</p>
- </li>
-
- <li>
- <p>Hashes can be concatenated using the <code class="inline-code">+</code>
- operator. The keys in the hash on the right-hand side take
- precedence.</p>
- </li>
-
- <li>
- <p>New built-ins for Java and JavaScript string escaping:
- <a href="ref_builtins_string.html#ref_builtin_j_string">j_string</a> and <a href="ref_builtins_string.html#ref_builtin_js_string">js_string</a></p>
- </li>
-
- <li>
- <p>The <code class="inline-code">replace</code> and
- <code class="inline-code">split</code> built-ins now support case-insensitive
- comparsion and regular expressions (J2SE 1.4+ only), and some
- other new options. More information can be found <a href="ref_builtins_string.html#ref_builtin_string_flags">here</a>.</p>
- </li>
-
- <li>
- <p>New built-in for regular expression matching (J2SE 1.4+
- only): <a href="ref_builtins_string.html#ref_builtin_matches"><code>matches</code></a></p>
- </li>
-
- <li>
- <p>New built-in, <code class="inline-code">eval</code>, to evaluate a
- string as FTL expression. For example
- <code class="inline-code">"1+2"?eval</code> returns the number 3.</p>
- </li>
-
- <li>
- <p>New built-ins for Java and JavaScript string escaping:
- <a href="ref_builtins_string.html#ref_builtin_j_string">j_string</a> and <a href="ref_builtins_string.html#ref_builtin_js_string">js_string</a></p>
- </li>
-
- <li>
- <p>New special variables to read the value of the locale
- setting: <code class="inline-code">locale</code>, <code class="inline-code">lang</code>. See
- more <a href="ref_specvar.html">in the
- reference...</a></p>
- </li>
-
- <li>
- <p>New special variable to read the FreeMarker version
- number: <code class="inline-code">version</code>. See more <a href="ref_specvar.html">in the reference...</a></p>
- </li>
-
- <li>
- <p>Tree new directives, <code class="inline-code">recurse</code>,
- <code class="inline-code">visit</code> and <code class="inline-code">fallback</code>, were
- introduced to support declarative node-tree processing. These
- are meant to be used typically (though not exclusively) for
- processing XML input. Together with this, a new variable type
- has been introduced, the node type. See the <a href="xgui_declarative.html">chapter on declarative XML
- processing</a> for more details.</p>
- </li>
-
- <li>
- <p>The <code class="inline-code">?new</code> built-in, as it was
- implemented, was a security hole. Now, it only allows you to
- instantiate a java object that implements the
- <code class="inline-code">freemarker.template.TemplateModel</code> interface.
- <span class="marked-for-programmers">If you want the functionality of
- the <code class="inline-code">?new</code> built-in as it existed in prior
- versions, make available an instance of the
- <code class="inline-code">freemarker.template.utility.ObjectConstructor</code>
- class to your template. (For example:
- <code class="inline-code">myDataModel.put("objConstructor", new
- ObjectConstructor());</code>, and then in the template you
- can do this: <code class="inline-code"><#assign aList =
- objConstructor("java.util.ArrayList",
- 100)></code>)</span></p>
- </li>
-
- <li>
- <p>Variable names can contain <code class="inline-code">@</code> anywhere
- (without using quote-bracket syntax). For example:
- <code class="inline-code"><#assign x@@@ = 123></code> is valid.</p>
- </li>
-
- <li>
- <p>The expressions <code class="inline-code">as</code>,
- <code class="inline-code">in</code>, and <code class="inline-code">using</code> are now
- keywords in the template language and cannot be used as
- top-level variable names without square-bracket syntax (as
- <code class="inline-code">.vars["in"]</code>).</p>
- </li>
-
- <li>
- <p>New parameter to the <a href="ref_directive_ftl.html"><code>ftl</code>
- directive</a>: <code class="inline-code">attributes</code>. The value of
- this attribute is a hash that associates arbitrary attributes
- (name-value pairs) to the template. The values of the attributes
- can be of any type (string, number, sequence... etc.).
- FreeMarker doesn't try to understand the meaning of the
- attributes. It's up to the application that encapsulates
- FreeMarker (as a Web application framework). Thus, the set of
- allowed attributes and their semantic is application (Web
- application framework) dependent.</p>
- </li>
-
- <li>
- <p>Other minor quality improvements...</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_222">Changes on the Java side</h2>
-
-
- <ul>
- <li>
- <p>Smarter default object wrapping: The default object
- wrapper is now
- <code class="inline-code">freemarker.template.DefaultObjectWrapper</code>,
- which falls back on wrapping arbitrary objects as beans using
- the <code class="inline-code">freemarker.ext.beans.BeansWrapper</code>. Also,
- it will wrap <code class="inline-code">org.w3c.dom.Node</code> objects with
- the new DOM wrapper. Also, it is aware of Jython objects, and
- will use <code class="inline-code">freemarker.ext.jython.JythonWrapper</code>
- if the object passed in is a Jython object. (We count it as a
- backward compatible change, since this new object wrapper wraps
- differently only those objects that the old wrapper was not able
- to wrap, so it has thrown exception.)</p>
- </li>
-
- <li>
- <p><code class="inline-code">freemarker.template.TemplateMethodModel.exec</code>
- now returns <code class="inline-code">Object</code> instead of
- <code class="inline-code">TemplateModel</code>.</p>
- </li>
-
- <li>
- <p>The default (initial) value of the
- <code class="inline-code">strict_syntax</code> setting has been changed from
- <code class="inline-code">false</code> to <code class="inline-code">true</code>. When
- <code class="inline-code">strict_syntax</code> is <code class="inline-code">true</code>,
- tags with old syntax as <code class="inline-code"><include
- "foo.ftl"></code> will be considered as static text (so
- they go to the output as-is, like HTML tags do), and not as FTL
- tags. Such tags have to be rewritten to <code class="inline-code"><#include
- "foo.ftl"></code>, since only parts that starts with
- <code class="inline-code"><#</code>, <code class="inline-code"></#</code>,
- <code class="inline-code"><@</code>, or <code class="inline-code"></@</code> count as
- FTL tags. Or, to recover the old transitional behavior, where
- both legacy and new tag syntax was recognized, you have to
- explicitly set <code class="inline-code">strict_syntax</code> to
- <code class="inline-code">false</code>:
- <code class="inline-code">cfg.setStrictSyntaxMode(false)</code>. Also, for
- individual templates you can force the old behavior by starting
- the template with <code class="inline-code"><#ftl
- strict_syntax=false></code>. (For more information about
- why strict syntax is better than old syntax <a href="ref_depr_oldsyntax.html">read this...</a>)</p>
- </li>
-
- <li>
- <p>New <code class="inline-code">CacheStorage</code> implementation:
- <code class="inline-code">freemarker.cache.MruCacheStorage</code>. This cache
- storage implements a two-level Most Recently Used cache. In the
- first level, items are strongly referenced up to the specified
- maximum. When the maximum is exceeded, the least recently used
- item is moved into the second level cache, where they are softly
- referenced, up to another specified maximum.
- <code class="inline-code">freemarker.cache.SoftCachseStorage</code> and
- <code class="inline-code">StrongCachseStorage</code> are deprected,
- <code class="inline-code">MruCachseStorage</code> is used everywhere instead.
- The default cache storage is now an
- <code class="inline-code">MruCachseStorage</code> object with 0 strong size,
- and infinite soft size.
- <code class="inline-code">Configuration.setSetting</code> for
- <code class="inline-code">cache_storage</code> now understands string values
- as <code class="inline-code">"strong:200, soft:2000"</code>.</p>
- </li>
-
- <li>
- <p>For <code class="inline-code">BeansWrapper</code> generated models, you
- can now use the <code class="inline-code">${obj.method(args)}</code> syntax to
- invoke methods whose return type is <code class="inline-code">void</code>.
- <code class="inline-code">void</code> methods now return
- <code class="inline-code">TemplateModel.NOTHING</code> as their return
- value.</p>
- </li>
-
- <li>
- <p><code class="inline-code">freemarker.template.SimpleHash</code> now can
- wrap read-only <code class="inline-code">Map</code>-s, such as the map of HTTP
- request parameters in Servlet API.</p>
- </li>
-
- <li>
- <p>The <code class="inline-code">TemplateNodeModel</code> interface was
- introduced to support recursive processing of trees of nodes.
- Typically, this will be used in relation to XML.</p>
- </li>
-
- <li>
- <p>New package: <code class="inline-code">freemarker.ext.dom</code>. This
- contains the new XML wrapper, that supports the processing of
- XML documents using the visitor pattern (i.e. with
- <code class="inline-code"><#visit <em class="code-color">...</em>></code>
- and similar directives), and to provide more convenient XML
- traversing as the legacy wrapper. See the <a href="xgui.html">XML processing guide</a> for more
- details.</p>
- </li>
-
- <li>
- <p>New package: <code class="inline-code">freemarker.core</code>. Classes
- used by mostly power-users was moved here from the
- <code class="inline-code">freemarker.template</code> package. The main reason
- of the splitting of <code class="inline-code">freemarker.template</code>
- package was that the amount of "expert" public classes and
- interfaces grows too much, as we introduce API-s for third-party
- tools, such as debugging API.</p>
- </li>
-
- <li>
- <p>New package: <code class="inline-code">freemarker.debug</code>. This
- provides a debugging API, by which you can debug executing
- templates through network (RMI). You have to write the front-end
- (client), as the API is just the server side. For more
- information please read the JavaDoc of the
- <code class="inline-code">freemarker.debug</code> package.</p>
- </li>
-
- <li>
- <p>You can query the FreeMarker version number with static
- method <code class="inline-code">Configuration.getVersionNumber()</code>.
- Also, the <code class="inline-code">Manifest.mf</code> included in
- <code class="inline-code">freemarker.jar</code> now contains the FreeMarker
- version number, furthermore, executing it with <code class="inline-code">java
- -jar freemarker.jar</code> will print the version number to
- the stdout.</p>
- </li>
-
- <li>
- <p>Added a new protected <code class="inline-code">FreemarkerServlet</code>
- method: <code class="inline-code">Configuration
- getConfiguration()</code>.</p>
- </li>
-
- <li>
- <p>Date support is now labeled as final. (It was experimental
- earlier.)</p>
- </li>
-
- <li>
- <p>The <code class="inline-code">BeansWrapper</code> has been improved to
- prevent some security exceptions when introspecting.</p>
- </li>
-
- <li>
- <p>Other minor quality improvements and extensions...</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_223">Other changes</h2>
-
-
- <ul>
- <li>
- <p>Fixes and improvements in the Manual and in the API
- JavaDoc.</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_224">The history of the releases before the final version</h2>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_225">Differences between the final release and Release Candidate
- 4</h3>
-
-
- <ul>
- <li>
- <p>Added a new special variable to print the FreeMarker
- version number: <code class="inline-code">version</code>. See more <a href="ref_specvar.html">in the reference...</a></p>
- </li>
-
- <li>
- <p>Minor documentation fixes and improvements.</p>
- </li>
- </ul>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_226">Differences between the Release Candidate 4 and Release
- Candidate 3</h3>
-
-
- <ul>
- <li>
- <p>The <code class="inline-code">BeansWrapper</code> has been improved to
- prevent some security exceptions when introspecting.</p>
- </li>
-
- <li>
- <p>The <code class="inline-code">FreemarkerXmlTask</code> has two new
- sub-tasks that can be used to prepare template execution with
- Jython scripts: <code class="inline-code">prepareModel</code> and
- <code class="inline-code">prepareEnvironment</code>. The
- <code class="inline-code">jython</code> sub-task is now deprecated, and does
- the same as <code class="inline-code">prepareEnvironment</code>. See the
- Java API documentation for more details.</p>
- </li>
-
- <li>
- <p>New special variable to read the FreeMarker version
- number: <code class="inline-code">version</code>. See more <a href="ref_specvar.html">in the reference...</a></p>
- </li>
-
- <li>
- <p>Bugfix: Greater-than sign doesn't confuse the
- <code class="inline-code">eval</code> built-in anymore.</p>
- </li>
-
- <li>
- <p>Bugfix: The <code class="inline-code">BeansWrapper</code> now wrapps
- the <code class="inline-code">null</code> return values of methods
- appropriately.</p>
- </li>
-
- <li>
- <p>Bugfix: The <code class="inline-code">FreemarkerXmlTask</code> doesn't
- need Jython classes anymore, unless you really use Jython
- scripts. Several other bugfixes in the Jython related
- features.</p>
- </li>
-
- <li>
- <p>Bugfix: If the template exception handler has ignored
- the exception, errors occurring in interpolations inside FTL
- tags (e.g. <code class="inline-code"><#if "foo${badVar}" !=
- "foobar"></code>) were handled in the same way as errors
- occuring in interpolations outside FTL tags. Thus, the
- directive call was not skipped, and the problematic
- interpolation was replaced with an empty string. (This was
- inconsistent with the behavior of <code class="inline-code"><#if
- "foo"+badVar != "foobar"></code>, which should be 100%
- equivalent with the previous example.)</p>
- </li>
-
- <li>
- <p>Bugfix: The <code class="inline-code">FileTemplateLoader</code> is now
- more robust when it receives paths that are malformed
- according the native file system. In the earlier version such
- paths sometimes caused unexpected
- <code class="inline-code">IOException</code> that aborted the searching for
- the template in further
- <code class="inline-code">FileTemplateLoader</code>-s when you use the
- <code class="inline-code">MultiTemplateLoader</code>.</p>
- </li>
- </ul>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_227">Differences between the Release Candidate 3 and Release
- Candidate 2</h3>
-
-
- <ul>
- <li>
- <p>Bugfix: Fixing a fatal bug in the template cache that
- was introduced with the latest cache bugfix. The template
- cache has always reloaded the unchanged template when the
- update delay has been elapsed, until the template has been
- actually changed, in which case it has never reloaded the
- template anymore.</p>
- </li>
- </ul>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_228">Differences between the Release Candidate 2 and Release
- Candidate 1</h3>
-
-
- <ul>
- <li>
- <p>Bugfix: The template cache didn't reload the template
- when it was replaced with an older version.</p>
- </li>
-
- <li>
- <p>API JavaDoc fix: date/time related classes/interfaces
- were marked as experimental. They are not experimental.</p>
- </li>
-
- <li>
- <p>Minor site improvements.</p>
- </li>
- </ul>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_229">Differences between the Release Candidate 1 and Preview 16
- releases</h3>
-
-
- <ul>
- <li>
- <p><em>Warning! Non-backward-compatible
- change!</em> The default (initial) value of the
- <code class="inline-code">strict_syntax</code> setting has been changed from
- <code class="inline-code">false</code> to <code class="inline-code">true</code>. When
- <code class="inline-code">strict_syntax</code> is <code class="inline-code">true</code>,
- tags with old syntax as <code class="inline-code"><include
- "foo.ftl"></code> will be considered as static text (so
- they go to the output as-is, like HTML tags do), and not as
- FTL tags. Such tags have to be rewritten to
- <code class="inline-code"><#include "foo.ftl"></code>, since only
- parts that starts with <code class="inline-code"><#</code>,
- <code class="inline-code"></#</code>, <code class="inline-code"><@</code>, or
- <code class="inline-code"></@</code> count as FTL tags. Or, to recover
- the old transitional behavior, where both legacy and new tag
- syntax was recognized, you have to explicitly set
- <code class="inline-code">strict_syntax</code> to <code class="inline-code">false</code>:
- <code class="inline-code">cfg.setStrictSyntaxMode(false)</code>. Also, for
- individual templates you can force the old behavior by
- starting the template with <code class="inline-code"><#ftl
- strict_syntax=false></code>. (For more information about
- why strict syntax is better than old syntax <a href="ref_depr_oldsyntax.html">read this...</a>)</p>
- </li>
-
- <li>
- <p>New parameter to the <a href="ref_directive_ftl.html"><code>ftl</code>
- directive</a>: <code class="inline-code">attributes</code>. The value of
- this attribute is a hash that associates arbitrary attributes
- (name-value pairs) to the template. The values of the
- attributes can be of any type (string, number, sequence...
- etc.). FreeMarker doesn't try to understand the meaning of the
- attributes. It's up to the application that encapsulates
- FreeMarker (as a Web application framework). Thus, the set of
- allowed attributes and their semantic is application (Web
- application framework) dependent.</p>
- </li>
-
- <li>
- <p>Bugfix:
- <code class="inline-code">freemarker.template.utility.DeepUnwrap</code>
- unwrapped sequences to empty
- <code class="inline-code">ArrayList</code>-s.</p>
- </li>
-
- <li>
- <p>Bugfix: If you included/imported a template with
- <code class="inline-code">*/</code> in path (acquisition), and that template
- in turn itself included/imported another template with
- <code class="inline-code">*/</code> in path, it may failed.</p>
- </li>
-
- <li>
- <p>New methods to the
- <code class="inline-code">freemarker.core.Environment</code>:
- <code class="inline-code">importLib(Template loadedTemplate, java.lang.String
- namespace)</code>,
- <code class="inline-code">getTemplateForImporting(...)</code>,
- <code class="inline-code">getTemplateForInclusion(...)</code>.</p>
- </li>
-
- <li>
- <p>Improvements in the
- <code class="inline-code">java.io.IOException</code> related error messages
- of the <code class="inline-code">include</code> and
- <code class="inline-code">import</code> directives.</p>
- </li>
-
- <li>
- <p>Minor improvements in the documentation.</p>
- </li>
- </ul>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_230">Differences between the Preview 16 and Preview 15
- releases</h3>
-
-
- <ul>
- <li>
- <p>New package: <code class="inline-code">freemarker.debug</code>. This
- provides a debugging API, by which you can debug executing
- templates through network (RMI). You have to write the
- front-end (client), as the API is just the server side. For
- more information please read the JavaDoc of the
- <code class="inline-code">freemarker.debug</code> package. (The debugging
- API is present for a while, just I forgot to announce it in
- the version history. Sorry for that.)</p>
- </li>
-
- <li>
- <p>Bugfix: With the new XML wrapper,
- <code class="inline-code">@@markup</code> and similar special keys:</p>
-
- <ul>
- <li>
- <p>have returned
- <code class="inline-code"><foo></foo></code> for empty
- elements instead of <code class="inline-code"><foo�/></code>.
- Other than it was needlessly verbose, it has confused
- browsers if you generate HTML.</p>
- </li>
-
- <li>
- <p>have showed the attributes that have no explicitly
- given value in the original document, just a default value
- coming form the DTD.</p>
- </li>
-
- <li>
- <p>have forgot to put space before the system
- identifier in the <code class="inline-code"><!DOCTYPE
- <em class="code-color">...</em>></code>.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Bugfix: XPath with Jaxen has died with
- <code class="inline-code">NullPointerException</code> if the context was an
- empty node set.</p>
- </li>
-
- <li>
- <p>A bit more intelligent Xalan XPath error
- messages.</p>
- </li>
-
- <li>
- <p>Revoked fallback-to-classloader logic from the template
- cache.</p>
- </li>
-
- <li>
- <p>From now on, if no XPath engine is available, and the
- hash key in an XML query can't be interpreted without XPath,
- an error will tell this clearly, rather than silently
- returning undefined variable (null).</p>
- </li>
-
- <li>
- <p>Bugfix: Some templates have caused the parser to
- die.</p>
- </li>
-
- <li>
- <p>Some other minor improvements here and there...</p>
- </li>
- </ul>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_231">Differences between the Preview 15 and Preview 14
- releases</h3>
-
-
- <ul>
- <li>
- <p>Bugfix: The new default template cache storage
- (<code class="inline-code">MruCacheStorage</code>) has started to
- continually fail with <code class="inline-code">NullPointerException</code>
- from a random point of time, usually when the memory usage was
- high in the JVM.</p>
- </li>
-
- <li>
- <p>Bugfix: In error messages, when the quoted FTL directive
- had nested content, that was quoted as well, so the quotation
- could be very long and expose nested lines needlessly.</p>
- </li>
- </ul>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_232">Differences between the Preview 14 and Preview 13
- releases</h3>
-
-
- <ul>
- <li>
- <p><code class="inline-code">freemarker.template.TemplateMethodModel.exec</code>
- now returns <code class="inline-code">Object</code> instead of
- <code class="inline-code">TemplateModel</code>.</p>
- </li>
-
- <li>
- <p>Fixes and improvements for XPath with Jaxen (not Xalan).
- Non-node-set XPath expressions are now working. FreeMarker
- variables are accessible in XPath expressions with XPath
- variable references (e.g.
- <code class="inline-code">doc["book/chapter[title=$currentTitle]"]</code>).</p>
- </li>
-
- <li>
- <p><code class="inline-code">freemarker.cache.SoftCachseStorage</code>
- and <code class="inline-code">StrongCachseStorage</code> is deprected. The
- more flexible <code class="inline-code">MruCachseStorage</code> is used
- instead everywhere. The default cache storage is now an
- <code class="inline-code">MruCachseStorage</code> object with 0 strong size,
- and infinite soft size.
- <code class="inline-code">Configuration.setSetting</code> for
- <code class="inline-code">cache_storage</code> now understands string values
- as <code class="inline-code">"strong:200, soft:2000"</code>.</p>
- </li>
-
- <li>
- <p>Bugfix:
- <code class="inline-code">freemarker.cache.MruCachseStorage</code> has died
- with <code class="inline-code">ClassCastException</code> sometimes.</p>
- </li>
-
- <li>
- <p>New built-ins for Java and JavaScript string escaping:
- <a href="ref_builtins_string.html#ref_builtin_j_string">j_string</a> and <a href="ref_builtins_string.html#ref_builtin_js_string">js_string</a></p>
- </li>
-
- <li>
- <p><code class="inline-code">freemarker.template.TemplateExceptionHandler.HTML_DEBUG_HANDLER</code>
- now prints more HTML-context-proof messages.</p>
- </li>
-
- <li>
- <p>You can query the FreeMarker version number with static
- method <code class="inline-code">Configuration.getVersionNumber()</code>.
- Also, the <code class="inline-code">Manifest.mf</code> included in
- <code class="inline-code">freemarker.jar</code> now contains the FreeMarker
- version number, furthermore, executing it with <code class="inline-code">java
- -jar freemarker.jar</code> will print the version number to
- the stdout.</p>
- </li>
-
- <li>
- <p>Added a new protected
- <code class="inline-code">FreemarkerServlet</code> method:
- <code class="inline-code">Configuration getConfiguration()</code>.</p>
- </li>
-
- <li>
- <p>Bugfix: FreeMarker has frozen on empty conditional
- blocks in certain contexts.</p>
- </li>
-
- <li>
- <p>Bugfix: Methods called twice on an object using the
- <code class="inline-code">list</code> directive, as
- <code class="inline-code">parent.getChildren()</code> with
- <code class="inline-code"><#list parent.children as child>
- ...</#list></code></p>
- </li>
- </ul>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_233">Differences between the Preview 13 and Preview 12
- releases</h3>
-
-
- <ul>
- <li>
- <p>White-space stripping is now more aggressive as before:
- it always removes leading and trailing white-space if the line
- only contains FTL tags. (Earlier the white-space was not
- removed if the tag was <code class="inline-code"><#include
- <em class="code-color">...</em>></code> or user-defined
- directive tag with empty directive syntax as
- <code class="inline-code"><@myMacro/></code> (or its equivalents:
- <code class="inline-code"><@myMacro></@myMacro></code> and
- <code class="inline-code"><@myMacro></@></code>). Now
- white-space is removed in these cases as well.) Also,
- top-level white-space that separates macro definitions and/or
- assignments is now ignored. More information: <a href="dgui_misc_whitespace.html#dgui_misc_whitespace_stripping">Template Author's Guide/Miscellaneous/White-space handling/White-space stripping</a></p>
- </li>
-
- <li>
- <p>White-space stripping can be disabled for a single line
- with the <a href="ref_directive_nt.html#ref.directive.nt"><code>nt</code></a>
- directive (for No Trim).</p>
- </li>
-
- <li>
- <p>A new directive for the declarative XML processing:
- <a href="ref_directive_visit.html#ref.directive.fallback"><code>fallback</code></a></p>
- </li>
-
- <li>
- <p><code class="inline-code">freemarker.template.SimpleHash</code> now
- can wrap read-only <code class="inline-code">Map</code>-s, such as the map
- of HTTP request parameters in Servlet API.</p>
- </li>
- </ul>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_234">Differences between the Preview 12 and Preview 11
- releases</h3>
-
-
- <p>The only change between this and the previous preview
- release is that Preview 11 had a bug where DOM trees would
- <em>never</em> be garbage-collected.</p>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_235">Differences between the Preview 11 and Preview 10
- releases</h3>
-
-
- <ul>
- <li>
- <p>Many XML related changes. Some of them are incompatible
- with the previous preview releases! For a more detailed
- explanation of how XML related features now work, see: <a href="xgui.html">XML Processing Guide</a></p>
-
- <ul>
- <li>
- <p>Attention! Attribute queries such as
- <code class="inline-code">foo.@bar</code> now return sequences
- (similarly to child element queries and XPath queries),
- not single nodes. Because of the rule with node sequences
- of size 1, it is still good to write
- <code class="inline-code">${foo.@bar}</code>, but built-ins such as
- <code class="inline-code">?exists</code>, <code class="inline-code">?if_exists</code>
- or <code class="inline-code">?default</code> don't work as before. For
- example, instead of
- <code class="inline-code">foo.@bar?default('black')</code>, you now have
- to write <code class="inline-code">foo.@bar[0]?default('black')</code>.
- So if you have used existence built-ins with attributes,
- you have to find those occurrences in the templates and
- add that <code class="inline-code">[0]</code>.</p>
- </li>
-
- <li>
- <p>Attention! XML name-space handling has been totally
- reworked and is absolutely incompatible with pre 10. Don't
- worry about this if none of your XML input documents use
- you use <code class="inline-code">xmlns</code> attributes. Worry,
- though, if you have utilized the "loose
- mode", where only the local name of elements were
- compared, because that's now gone. Sorry...</p>
- </li>
-
- <li>
- <p>Attention! Special-keys <code class="inline-code">@@</code> and
- <code class="inline-code">@*</code> now return a sequence of attribute
- nodes instead of the hash of them.</p>
- </li>
-
- <li>
- <p>Several hash keys are now working for node sequences
- that store multiple nodes. For example, to get the list of
- all <code class="inline-code">para</code> elements of all
- <code class="inline-code">chapter</code>-s, just write
- <code class="inline-code">doc.book.chapter.para</code>. Or, to get list
- of title attributes of all <code class="inline-code">chapter</code>-s
- write <code class="inline-code">doc.book.chapter.@title</code>.</p>
- </li>
-
- <li>
- <p>New special hash keys: <code class="inline-code">**</code>,
- <code class="inline-code">@@start_tag</code>,
- <code class="inline-code">@@end_tag</code>,
- <code class="inline-code">@@attribute_markup</code>,
- <code class="inline-code">@@text</code>,
- <code class="inline-code">@@qname</code>.</p>
- </li>
-
- <li>
- <p><code class="inline-code">?parent</code> for attribute nodes now
- returns the element node the attribute node belongs
- to.</p>
- </li>
-
- <li>
- <p>You can use Jaxen instead of Xalan for XPath
- expressions, if you call the static
- <code class="inline-code">freemarker.ext.dom.NodeModel.useJaxenXPathSupport()</code>
- method once. We plan to use Jaxen automatically instead of
- Xalan if it is available, just the Jaxen support is not
- fully functional yet.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>New special variable: <code class="inline-code">.vars</code>. This is
- useful to read top-level variables with square bracket syntax,
- for example <code class="inline-code">.vars["name-with-hyphens"]</code> and
- <code class="inline-code">.vars[dynamicName]</code>.</p>
- </li>
-
- <li>
- <p>New built-in, <code class="inline-code">eval</code>, to evaluate a
- string as FTL expression. For example
- <code class="inline-code">"1+2"?eval</code> returns the number 3.</p>
- </li>
-
- <li>
- <p><code class="inline-code">FreemarkerServlet</code> now uses the
- configuration's <code class="inline-code">locale</code> setting, rather than
- <code class="inline-code">Locale.getDefault()</code>, to set the locale of
- the templates. Also, the signature of the
- <code class="inline-code">deduceLocale</code> method has been
- changed.</p>
- </li>
-
- <li>
- <p>We have a new (beta status)
- <code class="inline-code">CacheStorage</code> implementation:
- <code class="inline-code">freemarker.cache.MruCacheStorage</code>. This
- cache storage implements a two-level Most Recently Used cache.
- In the first level, items are strongly referenced up to the
- specified maximum. When the maximum is exceeded, the least
- recently used item is moved into the second level cache, where
- they are softly referenced, up to another specified maximum.
- You can plug to try it with <code class="inline-code">cfg.setCacheStorage(new
- freemarker.cache.MruCacheStorage(maxStrongSize,
- maxSoftSize))</code>.</p>
- </li>
- </ul>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_236">Differences between the Preview 10 and Preview 9
- releases</h3>
-
-
- <ul>
- <li>
- <p>The special key <code class="inline-code">@@xmlns</code> was removed
- in favor of a new FTL directive for the same purpose,
- <code class="inline-code"><#xmlns...></code>.</p>
- </li>
-
- <li>
- <p>By default, the system is stricter about the use of
- namespace prefixes. In general, you must use a prefix to
- qualify subelements that are associated with an XML
- nampespace. You can do this with the new
- <code class="inline-code"><#xmlns...></code> directive, but prefixes
- declared in the input XML doc will actually work with no
- declaration.</p>
- </li>
-
- <li>
- <p>Introduced a new special key called
- <code class="inline-code">@@text</code> that returns all the text nodes
- contained (recursively) in an element all concatenated
- together.</p>
- </li>
-
- <li>
- <p>Either Jaxen or Xalan can be used to provide XPath
- functionality. Prior versions only worked with Xalan.</p>
- </li>
-
- <li>
- <p>The <code class="inline-code">FreemarkerServlet</code> uses
- <code class="inline-code">ObjectWrapper.DEFAULT_WRAPPER</code> by default
- instead of <code class="inline-code">ObjectWrapper.BEANS_WRAPPER</code>.
- What this means is that, by default, objects of type
- <code class="inline-code">java.lang.String</code>,
- <code class="inline-code">java.lang.Number</code>,
- <code class="inline-code">java.util.List</code>, and
- <code class="inline-code">java.util.Map</code> will be wrapped as
- <code class="inline-code">TemplateModels</code> via the classes
- <code class="inline-code">SimpleScalar</code>,
- <code class="inline-code">SimpleNumber</code>,
- <code class="inline-code">SimpleSequence</code>, and
- <code class="inline-code">SimpleHash</code> respectively. Thus, the java
- methods on those objects will not be available. The default
- wrapper implementation in FreeMarker 2.3 automatically knows
- how to wrap Jython objects, and also wraps
- <code class="inline-code">org.w3c.dom.Node</code> objects into instances of
- <code class="inline-code">freemarker.ext.dom.NodeModel</code>.</p>
- </li>
-
- <li>
- <p>The <code class="inline-code">FreemarkerServlet</code> base
- implementation no longer deduces the locale to use from the
- HttpRequest.getLocale() hook. Rather, it simply delegates to a
- <code class="inline-code">deduceLocale()</code> hook that is overridable in
- subclasses. The base implementation simply uses
- <code class="inline-code">Locale.getDefault()</code></p>
- </li>
- </ul>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_237">Differences between the Preview 9 and Preview 8
- releases</h3>
-
-
- <ul>
- <li>
- <p>Fixed bugs introduced with Preview 8: XPath,
- <code class="inline-code">@@markup</code> and
- <code class="inline-code">@@nested_markup</code> now works with the document
- node.</p>
- </li>
- </ul>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_238">Differences between the Preview 8 and Preview 7
- releases</h3>
-
-
- <ul>
- <li>
- <p><code class="inline-code">macro</code> and assignment directives now
- accept arbitrary destination variable name with quoted syntax.
- For example: <code class="inline-code"><#macro
- "foo-bar"><em class="code-color">...</em></code> or
- <code class="inline-code"><#assign "this+that" = 123></code>. This is
- important, because XML element names can contain hyphen, and
- it was not possible to define a handler macro for those
- elements, till now.</p>
- </li>
-
- <li>
- <p>Special key <code class="inline-code">@@content</code> was renamed to
- <code class="inline-code">@@nested_markup</code>.</p>
- </li>
-
- <li>
- <p>Fixed outdated XML related Manual parts (that were
- outdated even in Preview 7).</p>
- </li>
-
- <li>
- <p>Better parse-error messages.</p>
- </li>
-
- <li>
- <p>Minor bugfixes here and there...</p>
- </li>
- </ul>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_239">Differences between the Preview 7 and Preview 6
- releases</h3>
-
-
- <ul>
- <li>
- <p>Caching of XPath queries should lead to significant
- performance improvements for XML processing, at least when
- XPath is heavily used.</p>
- </li>
-
- <li>
- <p>Refinements in handling of XML namespaces in the XML
- processing functionality. The new
- <code class="inline-code">strict_namespace_handling</code> setting
- introduced in 2.3pre6 was removed. A general-purpose solution
- was arrived at that should make that configuration setting
- unnecessary.</p>
- </li>
-
- <li>
- <p>Special key <code class="inline-code">@xmlns</code> was renamed to
- @@xmlns. Reserved namespace prefix <code class="inline-code">default</code>
- was renamed to <code class="inline-code">@@default</code>.</p>
- </li>
-
- <li>
- <p>The <code class="inline-code">ftl</code> directive now accepts
- non-string types.</p>
- </li>
-
- <li>
- <p>New special keys were introduced for XML node wrappers
- in the freemarker.ext.dom package. The
- <code class="inline-code">@@markup</code> key returns the literal markup
- that make up that element and the <code class="inline-code">@@content</code>
- key returns all the element's markup excluding the opening and
- closing tags.</p>
- </li>
-
- <li>
- <p>Minor bugfixes here and there...</p>
- </li>
- </ul>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_240">Differences between the Preview 6 and Preview 5
- releases</h3>
-
-
- <ul>
- <li>
- <p>Existence built-ins (<code class="inline-code">?default</code>,
- <code class="inline-code">?exists</code>, etc.) now work with sequence sub
- variables as well. Read the <a href="ref_directive_switch.html#ref.directive.default">documentation of the
- <code>default</code> built-in</a> for more
- information.</p>
- </li>
-
- <li>
- <p>The <code class="inline-code">matches</code> built-in now returns a
- sequence instead of a collection.</p>
- </li>
-
- <li>
- <p>Refinements in handling of XML namespaces in the XML
- processing functionality. A new setting,
- <code class="inline-code">strict_namespace_handling</code> was introduced.
- If this is set (it is off by default) any node-handling macro
- used in with the visit/recurse machinery must be from a macro
- library that declares in its ftl header that it handles the
- namespace in question.</p>
- </li>
-
- <li>
- <p>Minor bugfixes here and there...</p>
- </li>
- </ul>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_241">Differences between the Preview 5 and Preview 4
- releases</h3>
-
-
- <ul>
- <li>
- <p>The <code class="inline-code">replace</code> and
- <code class="inline-code">split</code> built-ins now support
- case-insensitive comparison and regular expressions (J2SE 1.4+
- only), and some other new options. More information can be
- found <a href="ref_builtins_string.html#ref_builtin_string_flags">here</a>.</p>
- </li>
-
- <li>
- <p>New butilt-in for regular expression matching (J2SE 1.4+
- only): <a href="ref_builtins_string.html#ref_builtin_matches"><code>matches</code></a></p>
- </li>
-
- <li>
- <p>Minor bugfixes here and there...</p>
- </li>
-
- <li>
- <p>Manual: More browser-safe HTML-s. More updated
- content.</p>
- </li>
- </ul>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_242">Differences between the Preview 4 and Preview 3
- releases</h3>
-
-
- <ul>
- <li>
- <p>Bugfix: with multi-type variables, <code class="inline-code">+</code>
- operator overload for hash type had higher precedence than the
- precedence of some older overloads.</p>
- </li>
-
- <li>
- <p>The API documentation was missing from the distribution
- <code class="inline-code">tar.gz</code>.</p>
- </li>
- </ul>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_243">Differences between the Preview 3 and Preview 2
- releases</h3>
-
-
- <ul>
- <li>
- <p>XML processing: Many various bugfixes, especially with
- the declarative processing.</p>
- </li>
-
- <li>
- <p>XML processing: the <code class="inline-code">namespace_uri</code>
- built-in, the <code class="inline-code">xmlnsuri</code> header parameter,
- and the <code class="inline-code">TemplateNodeModel.getNodeNamespace</code>
- method were renamed to <code class="inline-code">node_namespace</code> and
- <code class="inline-code">getNodeNamespace</code> respectively.</p>
- </li>
-
- <li>
- <p>XML processing: Better documentation. Especially, note:
- <a href="xgui.html">XML Processing Guide</a></p>
- </li>
-
- <li>
- <p>A new header parameter, <code class="inline-code">strip_text</code>,
- that removes all top-level text from a template. See <a href="ref_directive_ftl.html#ref.directive.ftl"><code>ftl</code>
- directive</a></p>
- </li>
-
- <li>
- <p>Support for a variable number of macro parameters. If
- the last parameter in a macro declaration ends with
- <code class="inline-code">...</code>, all extra parameters passed to the
- macro will be available via that parameter. For macros called
- with positional parameters, the parameter will be a sequence.
- For named parameters, the parameter will be a hash.</p>
- </li>
-
- <li>
- <p>For <code class="inline-code">BeansWrapper</code> generated models,
- you can now use the <code class="inline-code">${obj.method(args)}</code>
- syntax to invoke methods whose return type is
- <code class="inline-code">void</code>. <code class="inline-code">void</code> methods now
- return <code class="inline-code">TemplateModel.NOTHING</code> as their
- return value.</p>
- </li>
- </ul>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_244">Differences between the Preview 2 and Preview 1
- releases</h3>
-
-
- <ul>
- <li>
- <p>The <code class="inline-code">freemarker.ext.dom.NodeModel</code> API
- changed slightly. The <code class="inline-code">setDocumentBuilder()</code>
- method was changed to
- <code class="inline-code">setDocumentBuilderFactory()</code> because the
- older scheme was not thread-safe. The
- <code class="inline-code">stripComments</code> and
- <code class="inline-code">stripPIs</code> methods are renamed to The
- <code class="inline-code">removeComments</code> and
- <code class="inline-code">removePIs</code>, and are fixed now. A new method,
- <code class="inline-code">simplify</code> has been added.</p>
- </li>
-
- <li>
- <p>The expressions <code class="inline-code">as</code>,
- <code class="inline-code">in</code>, and <code class="inline-code">using</code> are now
- keywords in the template language and cannot be used as
- top-level variable names without square-bracket syntax (as
- <code class="inline-code">.vars["in"]</code>). If, by some chance, you have
- top-level variables that use one of these names, you will have
- to rename them (or use the square-bracket syntax). Sorry for
- the inconvenience.</p>
- </li>
-
- <li>
- <p>The <code class="inline-code">?new</code> built-in, as it was
- implemented, was a security hole. Now, it only allows you to
- instantiate a java object that implements the
- <code class="inline-code">freemarker.template.TemplateModel</code>
- interface. If you want the functionality of the
- <code class="inline-code">?new</code> built-in as it existed in prior
- versions, make available an instance of the new
- <code class="inline-code">freemarker.template.utility.ObjectConstructor</code>
- class to your template.</p>
- </li>
-
- <li>
- <p>The <code class="inline-code"><#recurse></code> directive was
- broken. It did not work with a <code class="inline-code">using</code>
- clause. This is now fixed.</p>
- </li>
- </ul>
-
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_3_1.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_2_8.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>\u20132017
-<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>
[39/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/dgui_template_overallstructure.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/dgui_template_overallstructure.html b/builds/2.3.26-nightly/dgui_template_overallstructure.html
deleted file mode 100644
index fadc9c8..0000000
--- a/builds/2.3.26-nightly/dgui_template_overallstructure.html
+++ /dev/null
@@ -1,131 +0,0 @@
-<!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>Overall structure - 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="Overall structure">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/dgui_template_overallstructure.html">
-<link rel="canonical" href="http://freemarker.org/docs/dgui_template_overallstructure.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="dgui.html"><span itemprop="name">Template Author's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="dgui_template.html"><span itemprop="name">The Template</span></a></li><li class="step-3" item
prop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="dgui_template_overallstructure.html"><span itemprop="name">Overall structure</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","Template Author\'s Guide","The Template","Overall structure"];</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="dgui_template.html"><span>Previous</span></a><a class="paging-arrow next" href="dgui_template_directives.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="dgui_template_overallstructure" itemprop="headline">Overall structure</h1>
-</div></div><p>Templates are in fact programs you write in a language called
- <strong>FTL</strong> (for FreeMarker
- Template Language). This is a quite simple programming language
- designed for writing templates and nothing else.</p><p>A template (= FTL program) is a mix of the following
- sections:</p><ul>
- <li>
- <p><strong>Text</strong>: Text that will be printed to the output as
- is.</p>
- </li>
-
- <li>
- <p><strong>Interpolation</strong>: These sections will be replaced with a calculated
- value in the output. Interpolations are delimited by
- <code class="inline-code">${</code> and <code class="inline-code">}</code> (or with
- <code class="inline-code">#{</code> and <code class="inline-code">}</code>, but that shouldn't
- be used anymore; <a href="ref_depr_numerical_interpolation.html">see more
- here</a>).</p>
- </li>
-
- <li>
- <p><strong>FTL tags</strong>: FTL tags are a bit similar to HTML tags, but they
- are instructions to FreeMarker and will not be printed to the
- output.</p>
- </li>
-
- <li>
- <p><strong>Comments</strong>: Comments are similar to HTML comments, but they
- are delimited by <code class="inline-code"><#--</code> and
- <code class="inline-code">--></code>. Comments will be ignored by FreeMarker,
- and will not be written to the output.</p>
- </li>
- </ul><p>Let's see a concrete template. I have marked the template's
- components with colors: <span class="marked-text">text</span>,
- <span class="marked-interpolation">interpolation</span>, <span class="marked-ftl-tag">FTL tag</span>, <span class="marked-comment">comment</span>. With the <em><span class="marked-invisible-text">[BR]</span></em>-s I intend to visualize the
- <a href="gloss.html#gloss.lineBreak">line breaks</a>.</p>
-
-<div class="code-wrapper"><pre class="code-block code-template"><span class="marked-text"><html><em><span class="marked-invisible-text">[BR]</span></em>
-<head><em><span class="marked-invisible-text">[BR]</span></em>
-��<title>Welcome!</title><em><span class="marked-invisible-text">[BR]</span></em>
-</head><em><span class="marked-invisible-text">[BR]</span></em>
-<body><em><span class="marked-invisible-text">[BR]</span></em>
-��<span class="marked-comment"><#--�Greet�the�user�with�his/her�name�--></span><em><span class="marked-invisible-text">[BR]</span></em>
-��<h1>Welcome�<span class="marked-interpolation">${user}</span>!</h1><em><span class="marked-invisible-text">[BR]</span></em>
-��<p>We�have�these�animals:<em><span class="marked-invisible-text">[BR]</span></em>
-��<ul><em><span class="marked-invisible-text">[BR]</span></em>
-��<span class="marked-ftl-tag"><#list�animals�as�animal></span><em><span class="marked-invisible-text">[BR]</span></em>
-����<li><span class="marked-interpolation">${animal.name}</span>�for�<span class="marked-interpolation">${animal.price}</span> Euros<em><span class="marked-invisible-text">[BR]</span></em>
-��<span class="marked-ftl-tag"></#list></span><em><span class="marked-invisible-text">[BR]</span></em>
-��</ul><em><span class="marked-invisible-text">[BR]</span></em>
-</body><em><span class="marked-invisible-text">[BR]</span></em>
-</html></span></pre></div><p>FTL distinguishes upper case and lower case letters. So
- <code class="inline-code">list</code> is good directive name, while
- <code class="inline-code">List</code> is not. Similarly <code class="inline-code">${name}</code>
- is not the same as <code class="inline-code">${Name}</code> or
- <code class="inline-code">${NAME}</code></p><p>It is important to realize that <span class="marked-interpolation">interpolations</span> can be used in
- <span class="marked-text">text</span> (and in string literal
- expressions; see <a href="dgui_template_exp.html#dgui_template_exp_stringop_interpolation">later</a>)
- only.</p><p>An <span class="marked-ftl-tag">FTL tag</span> can't be inside
- another <span class="marked-ftl-tag">FTL tag</span> nor inside an
- <span class="marked-interpolation">interpolation</span>. For example
- this is <em>WRONG</em>: <code class="inline-code"><#if <#include
- 'foo'>='bar'>...</#if></code></p><p><span class="marked-comment">Comments</span> can be placed
- inside <span class="marked-ftl-tag">FTL tags</span> and <span class="marked-interpolation">interpolations</span>. For
- example:</p>
-
-<div class="code-wrapper"><pre class="code-block code-template"><span class="marked-text"><h1>Welcome�<span class="marked-interpolation">${user <span class="marked-comment"><#-- The name of user --></span>}</span>!</h1><em><span class="marked-invisible-text">[BR]</span></em>
-<p>We�have�these�animals:<em><span class="marked-invisible-text">[BR]</span></em>
-<ul><em><span class="marked-invisible-text">[BR]</span></em>
-<span class="marked-ftl-tag"><#list�<span class="marked-comment"><#-- some comment... --></span> animals as�<span class="marked-comment"><#-- again... --></span> animal></span><em><span class="marked-invisible-text">[BR]</span></em></span>
-<em>...</em></pre></div> <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>For those of you who have tried the above examples: You may
- notice that some of spaces, tabs and line breaks are missing from
- the template output, even though we said that <span class="marked-text">text</span> is printed as is. Don't bother with
- it now. This is because the feature called ''white-space stripping''
- is turned on, and that automatically removes some superfluous
- spaces, tabs and line breaks. This will be explained <a href="dgui_misc_whitespace.html">later</a>.</p>
- </div>
-<div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="dgui_template.html"><span>Previous</span></a><a class="paging-arrow next" href="dgui_template_directives.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/dgui_template_valueinsertion.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/dgui_template_valueinsertion.html b/builds/2.3.26-nightly/dgui_template_valueinsertion.html
deleted file mode 100644
index 4ed0f09..0000000
--- a/builds/2.3.26-nightly/dgui_template_valueinsertion.html
+++ /dev/null
@@ -1,310 +0,0 @@
-<!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>Interpolations - 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="Interpolations">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/dgui_template_valueinsertion.html">
-<link rel="canonical" href="http://freemarker.org/docs/dgui_template_valueinsertion.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="dgui.html"><span itemprop="name">Template Author's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="dgui_template.html"><span itemprop="name">The Template</span></a></li><li class="step-3" item
prop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="dgui_template_valueinsertion.html"><span itemprop="name">Interpolations</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","Template Author\'s Guide","The Template","Interpolations"];</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="dgui_template_exp.html"><span>Previous</span></a><a class="paging-arrow next" href="dgui_misc.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="dgui_template_valueinsertion" itemprop="headline">Interpolations</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_14" data-menu-target="autoid_14">Overview</a></li><li><a class="page-menu-link" href="#autoid_15" data-menu-target="autoid_15">Automatic escaping</a></li><li><a class="page-menu-link" href="#autoid_16" data-menu-target="autoid_16">Guide to inserting numerical values</a></li><li><a class="page-menu-link" href="#dgui_template_valueinserion_universal_date" data-menu-target="dgui_template_valueinserion_universal_date">Guide to inserting date/time/date-time values</a></li><li><a class="page-menu-link" href="#autoid_17" data-menu-target="autoid_17">Guide to inserting boolean values</a></li><li><a class="page-menu-link" href="#autoid_18" data-menu-target="autoid_18">Exact conversion rules</a></li></ul> </div>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_14">Overview</h2>
-
-
- <p>The format of interpolations is
- <code class="inline-code">${<em class="code-color">expression</em>}</code>, where
- <code class="inline-code"><em class="code-color">expression</em></code> can be all
- kind of expression (e.g. <code class="inline-code">${100 + x}</code>).</p>
-
- <p>The interpolation is used to insert the value of the
- <code class="inline-code"><em class="code-color">expression</em></code> converted
- to text (to string). Interpolations can be used only on two places:
- in <a href="dgui_template_overallstructure.html"><span class="marked-text">text</span> sections</a> (e.g.,
- <code class="inline-code"><h1>Hello ${name}!</h1></code>) and <a href="dgui_template_exp.html#dgui_template_exp_stringop_interpolation">in string literal
- expressions</a> (e.g., <code class="inline-code"><#include
- "/footer/${company}.html"></code>).</p>
-
- <p>The result of the expression must be a string, number or
- date/time/date-time value, because (by default) only these types are
- converted to string by interpolation automatically. Values of other
- types (such as booleans, sequences) must be converted to string
- "manually" (see some advices later), or an error will
- stop the template processing.</p>
-
- <div class="callout warning">
- <strong class="callout-label">Warning!</strong>
-
- <p>It's a frequent mistake to use interpolations on places
- where they needn't/shouldn't/can't be used. Interpolations work
- <em>only</em> in <a href="dgui_template_overallstructure.html"><span class="marked-text">text</span> sections</a> (e.g.
- <code class="inline-code"><h1>Hello ${name}!</h1></code>) and in
- <a href="dgui_template_exp.html#dgui_template_exp_direct_string">string
- literals</a> (e.g. <code class="inline-code"><#include
- "/footer/${company}.html"></code>). A typical
- <em>WRONG</em> usage is <code class="inline-code"><#if
- ${big}>...</#if></code>, which will give syntactical
- error. You should simply write <code class="inline-code"><#if
- big>...</#if></code>. Also, <code class="inline-code"><#if
- "${big}">...</#if></code> is
- <em>WRONG</em>, since it converts the parameter value
- to string and the <code class="inline-code">if</code> directive wants a boolean
- value, so it will cause a runtime error.</p>
- </div>
-
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_15">Automatic escaping</h2>
-
-
- <p>If the interpolation is in a <a href="dgui_template_overallstructure.html"><span class="marked-text">text</span> section</a> (not in a <a href="dgui_template_exp.html#dgui_template_exp_stringop_interpolation">string literal
- expression</a>), the text that it inserts goes through
- automatically escaping, <em>if FreeMarker was properly
- configured</em>. <a href="dgui_quickstart_template.html#dgui_quickstart_template_autoescaping">See more about
- escaping here...</a>.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_16">Guide to inserting numerical values</h2>
-
-
- <p>If the expression evaluates to a number then the numerical
- value will be converted to string according the default number
- format. This may includes the maximum number of decimals, grouping,
- and like. Usually the programmer should set the default number
- format; the template author doesn't have to deal with it (but he can
- with the <code class="inline-code">number_format</code> setting; see in the <a href="ref_directive_setting.html">documentation of
- <code>setting</code> directive</a>). Also, you can override
- the default number format for a single interpolation with the <a href="ref_builtins_number.html#ref_builtin_string_for_number"><code>string</code>
- built-in</a>.</p>
-
- <p>The decimal separator used (and other such symbols, like the
- group separator) depends on the current locale (language, country),
- that also should be set by the programmer. For example, this
- template:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${1.5}</pre></div>
-
- <p>will print something like this if the current locale is
- English:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">1.5</pre></div>
-
- <p>but if the current locale is German then it will print
- something like:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">1,5</pre></div>
-
- <p>since German people use comma as decimal separator.</p>
-
- <div class="callout warning">
- <strong class="callout-label">Warning!</strong>
-
- <p>As you can see, interpolations print for human audience (by
- default at least), as opposed to ''computer audience''. In some
- cases this is not good, like when you print a database record ID
- as the part of an URL or as an invisible field value in a HTML
- form, or when you print CSS/JavaScript numerical literals, because
- these printed values will be read by computer programs and not by
- humans. Most computer programs are very particular about the
- format of the numbers, and understand only a kind of simple US
- number formatting. For that, use the <a href="ref_builtins_number.html#ref_builtin_c"><code>c</code></a> (stands for
- ''computer audience'') built-in, for example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><a href="/shop/productdetails?id=${product.id?c}">Details...</a></pre></div>
- </div>
-
-
-
-
-
-
-<h2 class="content-header header-section2" id="dgui_template_valueinserion_universal_date">Guide to inserting date/time/date-time values</h2>
-
-
- <p>If the expression evaluates to a date-like value then that
- will be transformed to a text according to a default format. Usually
- the programmer should set the default format; the template author
- doesn't have to deal with it (but if you care, <a href="ref_directive_setting.html#topic.dateTimeFormatSettings">see the
- <code>date_format</code>, <code>time_format</code> and
- <code>datetime_format</code> settings</a> in the
- documentation of the <a href="ref_directive_setting.html#ref.directive.setting"><code>setting</code>
- directive</a>). Also, you can override the default formatting for
- a single interpolation with the <a href="ref_builtins_date.html#ref_builtin_string_for_date"><code>string</code>
- built-in</a>.</p>
-
- <div class="callout warning">
- <strong class="callout-label">Warning!</strong>
-
- <p>To display a date-like value as text, FreeMarker must know
- which parts of it are in use, that is, if only the date part
- (year, month, day), or only the time part (hour, minute, second,
- millisecond), or both. Unfortunately, because of the technical
- limitations of Java platform, for some variables it is not
- possible to detect this automatically; ask the programmer if the
- data-model contains such problematic variables. When it's not
- possible to find out which parts of the date are in use, then you
- must help FreeMarker with the <a href="ref_builtins_date.html#ref_builtin_date_datetype"><code>date</code>,
- <code>time</code> and <code>datetime</code></a>
- built-ins (like <code class="inline-code">${lastUpdated?datetime}</code>), or it
- will stop with error.</p>
- </div>
-
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_17">Guide to inserting boolean values</h2>
-
-
- <p>By default an attempt to print boolean values with
- interpolation causes an error and aborts template processing. For
- example this will cause an error: <code class="inline-code">${a == 2}</code> and
- will not print ''true'' or something like that. That's because
- there's no universally useful way of representing booleans
- (sometimes you want to print yes/no, sometimes enabled/disabled,
- on/off, etc.).</p>
-
- <p>However, you can convert booleans to strings with the <a href="ref_builtins_boolean.html#ref_builtin_string_for_boolean"><code>?string</code>
- built-in</a>. For example, to print the value of the "married"
- variable (assuming it's a boolean), you could write
- <code class="inline-code">${married?string("yes", "no")}</code>.</p>
-
- <p>FreeMarker can be configured with a default boolean format
- with the <code class="inline-code">boolean_format</code> setting, then
- <code class="inline-code">${married}</code> and such will work. However, in most
- applications it's not recommended, as boolean should be rendered
- differently on different places, and leaving the formatting on the
- default is possibly just an oversight and thus should generate
- error.</p>
-
- <p>When you want to generate JavaScript or other computer
- language parts, then <code class="inline-code">${someBoolean?c}</code>
- ("c" stands for computer audience) should be used to
- print true/false. (Remember that <code class="inline-code">?c</code> was also used
- to print numbers for computer audience.)</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_18">Exact conversion rules</h2>
-
-
- <p>For those who are interested, the exact rules of conversion
- from the expression value to string (which is then still subject to
- escaping) are these, in this order:</p>
-
- <div class="orderedlist"><ol type="1">
- <li>
- <p>If the value is a number, then it is converted to string
- in the format specified with the
- <code class="inline-code">number_format</code> setting. So this usually
- formats for human audience, as opposed to computer
- audience.</p>
- </li>
-
- <li>
- <p>Else if the value is date, time or date-time, then it is
- converted to string in the format specified with the
- <code class="inline-code">date_format</code>, <code class="inline-code">time_format</code>
- or <code class="inline-code">datetime_format</code> setting, respectively. If
- it can't be detected what kind of date-like value it is (date vs
- time vs date-time), an error will occur.</p>
- </li>
-
- <li>
- <p>Else if the value is a string, then there is no
- conversion.</p>
- </li>
-
- <li>
- <p>Else if the engine is in classic compatibility
- mode:</p>
-
- <div class="orderedlist"><ol type="1">
- <li>
- <p>If the value is a boolean, true values are converted
- to "true", false values are converted to an empty
- string.</p>
- </li>
-
- <li>
- <p>If the expression is undefined
- (<code class="inline-code">null</code> or a variable is undefined), it is
- converted to an empty string.</p>
- </li>
-
- <li>
- <p>Else an error will abort the template
- processing.</p>
- </li>
- </ol></div>
- </li>
-
- <li>
- <p>Else an error will abort the template processing.</p>
- </li>
- </ol></div>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="dgui_template_exp.html"><span>Previous</span></a><a class="paging-arrow next" href="dgui_misc.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/docgen-resources/docgen.min.css
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/docgen-resources/docgen.min.css b/builds/2.3.26-nightly/docgen-resources/docgen.min.css
deleted file mode 100644
index 3d88f72..0000000
--- a/builds/2.3.26-nightly/docgen-resources/docgen.min.css
+++ /dev/null
@@ -1 +0,0 @@
-@font-face{font-family:icomoon;src:url(fonts/icomoon.eot?-fbty7i);src:url(fonts/icomoon.eot?#iefix-fbty7i) format('embedded-opentype'),url(fonts/icomoon.woff?-fbty7i) format('woff'),url(fonts/icomoon.ttf?-fbty7i) format('truetype'),url(fonts/icomoon.svg?-fbty7i#icomoon) format('svg');font-weight:400;font-style:normal}html{font-family:Roboto,"Helvetica Neue",Arial,sans-serif;font-size:14px;color:#333;line-height:1.5;font-weight:400;background-color:#fff;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%;height:100%}body{min-height:100%;margin:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}a{color:#0050b2;text-decoration:none;-ms-touch-action:manipulation;touch-action:manipulation}a:hover{color:#0973f5}h1,h2,h3,h4,h5,h6{font-family:Roboto,"Helvetica Neue",Arial,sans-serif;line-height:1.5;font-weig
ht:500;color:#0050b2;word-break:break-word}h1{font-size:36px}h2{font-size:21px}code,pre{font-size:13px;font-family:"Droid Sans Mono","Courier New",Courier,Monaco,Consolas,monospace;-webkit-font-smoothing:antialiased}code{padding:0 2px;color:#C5351F;word-break:break-word}a>code{color:#0050b2}a:hover>code{color:#0973f5}pre{display:block;border:0;padding:6px 12px;margin:0 0 9px;overflow-x:auto;word-break:normal;white-space:pre}@-moz-document url-prefix(){pre{white-space:pre-wrap;word-break:break-all}}img{border:0;vertical-align:middle}fieldset{margin:0;padding:0;border:0}input[type=search]::-webkit-search-cancel-button{display:none}table{border:0;border-collapse:collapse}td,th{padding:0}.header-top-bg{background-color:#0050b2;background-image:-webkit-radial-gradient(50% 15px circle,rgba(0,0,0,0) 0,rgba(0,0,0,0) 50%,#00276c 100%),url(img/patterned-bg.png);background-image:radial-gradient(circle at 50% 15px,rgba(0,0,0,0) 0,rgba(0,0,0,0) 50%,#00276c 100%),url(img/patterned-bg.png);box-sha
dow:0 3px 9px #c1c1c1;border-bottom:3px solid #003270;position:relative;z-index:2}.header-top{text-align:center;padding:12px 0}@media (min-width:568px){.header-top{padding-bottom:18px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:end;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end}}.header-bottom-bg{background-color:#efefef;border-bottom:1px solid #dedede;box-shadow:0 0 7px #eee;position:relative;z-index:1}.search-row{padding-top:12px}@media (min-width:568px){.search-row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:end;-webkit-align-items:flex
-end;-ms-flex-align:end;align-items:flex-end}}.search-row .navigation-header,.search-row .search-form{padding-top:3px;padding-bottom:3px}.search-row .navigation-header{display:block;font-size:18px;line-height:1;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}@media (min-width:568px){.search-row .navigation-header{font-size:27px}}@media (min-width:768px){.search-row .navigation-header{-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0}}.breadcrumb-row{padding-top:9px;padding-bottom:9px}.search-row+.breadcrumb-row{padding-top:0}@media (min-width:568px){.breadcrumb-row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:end;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end}}.main-content{-webkit-box-flex:1;-webkit-
flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.content-wrapper{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding-top:18px;padding-bottom:18px}@media (min-width:768px){.content-wrapper{padding-top:30px;padding-bottom:48px}}.content-wrapper.no-toc{display:block}.content-wrapper .col-left{-webkit-box-flex:0;-webkit-flex:0 0 160px;-ms-flex:0 0 160px;flex:0 0 160px;max-width:160px;margin-right:18px;display:none}@media (min-width:568px){.content-wrapper .col-left{display:block}}@media (min-width:768px){.content-wrapper .col-left{-webkit-flex-basis:210px;-ms-flex-preferred-size:210px;flex-basis:210px;max-width:210px;margin-right:48px}.content-wrapper .col-left.expanded{max-width:10
0%}}.content-wrapper .col-right{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;position:relative}@media (min-width:768px){.page-content{padding-bottom:42px}}.page-content a{word-break:break-word}.page-content .page-title{border-bottom:1px solid #eee;padding-bottom:12px;margin-bottom:12px}.page-type-docgen-search-results .page-content .page-title{border:none;padding-bottom:0;margin-bottom:0}@media (min-width:768px){.page-content .page-title{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}}@media (min-width:768px){.page-content .page-title{padding-bottom:24px;margin-bottom:24px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:baseline;-webkit-align-items:baseline;-ms-flex-align:baseline;align-items:baseline;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}}.page-content .page-title .title-wr
apper{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.page-content .page-title h1{margin:0;font-size:24px}@media (min-width:768px){.page-content .page-title h1{font-size:30px}}.page-content .page-title .subtitle{display:block;font-size:14px}@media (min-width:768px){.page-content .page-title .subtitle{font-size:18px}}@media (min-width:992px){.page-content .page-title .subtitle{font-size:24px}}.page-content .content-header::before{font-family:icomoon;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\f1dd";margin-left:-18px;margin-top:2px;width:18px;font-weight:400;font-size:18px;color:#C82222;float:left;visibility:hidden}@media (min-width:768px){.page-content .content-header::before{margin-left:-24px}}.page-content .active::before{-webkit-animation:header-pulse .3s 3 steps(2,end);animation:header-pulse .3s 3 steps(2,end)}@-webkit-keyframes header-pulse{0%{visibility:hidden}100%{visibility:visible}}@keyframes header-pulse{0%{visibility:hidden}100%{visi
bility:visible}}.site-footer{border-top:3px solid #003270;background-color:#0050b2;background-image:-webkit-radial-gradient(50% -50px ellipse,rgba(0,0,0,0) 0,rgba(0,0,0,0) 24%,#000c3b 86%,#000c3b 100%),url(img/patterned-bg.png);background-image:radial-gradient(ellipse at 50% -50px,rgba(0,0,0,0) 0,rgba(0,0,0,0) 24%,#000c3b 86%,#000c3b 100%),url(img/patterned-bg.png);font-weight:300;color:#fff}.site-footer a{color:#fff}.site-footer a:hover{color:rgba(255,255,255,.8)}@media (min-width:568px){.footer-top{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}}@media (min-width:992px){.footer-top{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}}.footer-top .col-left{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.foote
r-top .col-right{padding-top:12px;padding-bottom:12px;-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}@media (min-width:992px){.footer-top .col-right{padding-top:24px}}@media (min-width:768px){.footer-top .col-right{text-align:right}}@media (min-width:568px){.sitemap{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}}.sitemap .column{padding-top:12px;padding-bottom:12px;margin-right:12px;-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}@media (min-width:992px){.sitemap .column{padding-top:24px}}.sitemap .column:last-child{margin-right:0}@media (min-width:768px){.sitemap .column{margin-right:54px}}.sitemap .column .column-header{color:#fff;border-bottom:2px solid #4c76ab;margin:0 0 6px;padding-bottom:6px;font-weight:400}.sitemap .column ul{padding:0;margin:0;list-style-type:none}.sitemap .column a{padding-right:9px;display:block}.xxe{display:inline-block;w
idth:110px;height:34px;margin-top:15px;background:#fff url(img/xxe.png) 50% no-repeat;border:1px solid #002254}.xxe span{display:none}.footer-bottom{padding:45px 0 25px;font-size:12px}.footer-bottom p{margin:0 0 6px}.logo{padding:6px 0 0;display:block}.logo img{display:block;margin:0 auto;width:204px;height:19px}.tabs{list-style-type:none;margin:0;padding:6px 0 0;text-align:center;font-weight:300}@media (min-width:568px){.tabs{margin-left:24px;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;padding-top:0}}.tabs li{display:inline-block}.tabs li.current a{color:#fff;font-weight:400}.secondary-tabs li::after,.tabs li::after{width:1px;background-color:#96a5b8;height:9px;display:inline-block;content:'';margin:0 15px}.secondary-tabs li:last-child::after,.tabs li:last-child::after{display:none}.secondary-tabs .tab,.tabs li a{color:#c9dbf1}.secondary-tabs li a:hover,.tabs li a:hover{color:#fff}.secondary-tabs{margin:0;list-style-type:none;padding:6px 0 0;display:non
e;text-align:center}@media (min-width:768px){.secondary-tabs{display:block;text-align:right;-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}}.secondary-tabs li{display:inline-block}.secondary-tabs li:last-child{margin-right:0}.secondary-tabs li a:hover strong{border-bottom-color:transparent}.secondary-tabs .tab::before{font-family:icomoon;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:18px;height:18px;display:inline-block;font-size:12px;text-align:center}@media (min-width:992px){.secondary-tabs .tab::before{padding-right:6px}}.secondary-tabs .tab.icon-heart::before{content:"\e609"}.secondary-tabs .tab.icon-star::before{content:"\e608"}.secondary-tabs .tab.icon-bug::before{content:"\f188"}.secondary-tabs .tab.icon-download::before{content:"\e606"}.secondary-tabs .tab strong{font-weight:400;border-bottom:1px solid #8fafd7}.secondary-tabs .tab span{display:none}@media (min-width:992px){.secondary-tabs .tab span{display:inline}}.bread
crumb{list-style-type:none;margin:0;padding:6px 0 0 0;font-size:12px;display:block;white-space:nowrap;overflow:hidden}@media (min-width:768px){.breadcrumb{font-size:13px}}.breadcrumb li{display:inline-block}.breadcrumb li::after{content:'/';color:#979797;margin:0 3px}@media (min-width:768px){.breadcrumb li::after{margin:0 6px}}.breadcrumb li:last-child a{color:#333}.breadcrumb li:last-child::after{display:none}.breadcrumb li.step-0 a::after{font-family:icomoon;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\e60a";display:inline-block;width:14px;height:14px;font-size:12px;position:relative;top:1px}.breadcrumb li.step-0 a span{display:none}.table-of-contents{list-style-type:none;padding:0;margin:6px 0 0;font-size:12px}@media (min-width:768px){.table-of-contents{margin-top:12px;font-size:13px}}.table-of-contents .current::before{color:#0973f5}.table-of-contents .current>a:first-child{color:#0973f5}.table-of-contents ul{list-style-type:none}.section{border
-bottom:1px solid #eee;margin-bottom:12px;padding-bottom:12px}@media (min-width:768px){.section{margin-bottom:24px;padding-bottom:24px}}.section.last{border-bottom:0;margin-bottom:0}.section.last .depth-0-link{margin-bottom:0}.depth-0-link{color:#0050b2;text-transform:uppercase;font-weight:400;display:block;line-height:1;margin-bottom:12px}@media (min-width:768px){.depth-0-link{margin-bottom:24px}}a.depth-0-link:hover{color:#0973f5}.depth-1{margin:0;padding:0}.depth-1 li{padding-left:14px;position:relative}.depth-1 li::before{font-family:icomoon;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\e602";width:14px;height:14px;display:block;position:absolute;left:-3px;top:2px;font-size:14px;line-height:1}.depth-1 li.has-children::before{content:"\e600";font-size:13px;cursor:pointer}.depth-1 li.has-children.open::before{content:"\e601";font-size:13px}.depth-1 li.has-children .last::before{content:"\e602";top:3px}.depth-1 a{display:block;color:#444}.depth-1 a:
hover{color:#888}.depth-2{margin:0;padding:0}.closed ul{display:none}.open ul{display:block}.page-menu{margin:0 0 12px;padding:0 0 12px 18px;border-bottom:1px solid #eee}.page-menu .page-menu-title{margin-top:0;margin-bottom:1em;color:#0050b2;font-weight:700}@media (min-width:768px){.page-menu{margin-bottom:24px;margin-top:-12px}}.page-menu ul{margin:0 0 0 18px;padding:0}.page-menu a:visited{color:purple}.search-form{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;height:26px;width:100%;display:inline-block}.search-form.offline{display:none}@media (min-width:768px){.search-form{max-width:300px}}.search-form fieldset{height:26px}.search-form .search-btn{color:#0050b2;line-height:1;background-color:#fff;background-image:none;border:0;border-radius:0;padding:0 3px;width:26px;height:24px;position:relative;top:-25px;float:right;right:1px}.search-form .search-btn:focus,.search-form .search-btn:hover{color:#4c9cff;cursor:pointer;outline:0}.search-form .search-btn::
before{font-family:icomoon;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\f002";box-sizing:border-box;font-size:16px;width:18px;height:18px;display:block}.search-form .search-input{-webkit-appearance:none;font-family:Roboto,"Helvetica Neue",Arial,sans-serif;background-image:none;background:#fff;font-size:16px;line-height:21px;border:1px solid #aec0d6;border-radius:0;box-sizing:border-box;padding:3px 24px 3px 9px;height:26px;width:100%;-webkit-transition:border-color .2s ease-in;transition:border-color .2s ease-in}.search-form .search-input::-moz-placeholder{color:#0050b2;opacity:.6;font-size:14px}.search-form .search-input:-ms-input-placeholder{color:#0050b2;font-size:14px;line-height:21px}.search-form .search-input::-webkit-input-placeholder{color:#0050b2;opacity:.6;font-size:14px}.search-form .search-input:focus{outline:0;border-color:#0050b2}.search-results .gsc-control-cse{padding:0}.search-results .gs-title,.search-results .gs-title *{color:#0050
b2!important;text-decoration:none!important}.search-results .gs-title :hover,.search-results .gs-title:hover{color:#0973f5!important}.bottom-pagers-wrapper::after,.bottom-pagers-wrapper::before{content:" ";display:table}.bottom-pagers-wrapper::after{clear:both}@media (min-width:768px){.bottom-pagers-wrapper{position:absolute;bottom:0;right:0}}.pagers{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;white-space:nowrap}@media (min-width:768px){.pagers{float:right;font-size:14px}}.pagers.top{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1;margin-bottom:6px}@media (min-width:768px){.pagers.top{margin-left:12px;margin-bottom:0}}.paging-arrow{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;word-break:normal}.paging-arrow::before{font-family:icomoon;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:block;line-height:21px;vertical-align:middle;width:17px}@media (min-width:568px){.paging-arrow.p
revious{margin-right:12px}}.paging-arrow.previous::before{content:"\f190";padding-right:3px;float:left}.paging-arrow.next{text-align:right}.paging-arrow.next::before{content:"\f18e";padding-left:3px;float:right}.bookmarks{text-align:right;display:none}@media (min-width:992px){.bookmarks{display:block}}.bookmarks::before{font-family:icomoon;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\e607";width:14px;height:14px;display:inline-block;position:relative;top:2px;margin-right:1px;color:#0050b2}.bookmarks ul{list-style-type:none;margin:0;padding:0;display:inline-block;font-size:13px}.bookmarks ul li{display:inline-block}.bookmarks ul li::after{content:",";display:inline-block;margin:0 3px 0 0}.bookmarks ul li:last-child::after{display:none}.callout{padding:15px 18px;margin:12px 0;border-left:4px solid #eee;background-color:#f9f9f9;max-width:600px}.callout.note{border-left-color:#A181AE;background-color:#F9F2FA}.callout.note .callout-label{color:#7D578C}.c
allout.warning{border-left-color:#EDBABA;background-color:#FCEAEA}.callout.warning .callout-label{color:#900}.callout p:first-of-type{margin-top:3px}.callout p:last-child{margin-bottom:0}.callout-label{display:block;padding-bottom:3px}.callout-label::before{font-family:icomoon;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:12px}.note .callout-label::before{content:"\e605";margin-right:3px}.warning .callout-label::before{content:"\e604";font-size:14px;margin-right:6px}.marked-text{background-color:#AEDDFF}.marked-interpolation{background-color:#FFC070}.marked-ftl-tag{background-color:#FFEE6B}.marked-comment{background-color:#5CFF6A}.marked-template{background-color:#e4e4e4}.marked-data-model{background-color:#D2E2EF}.marked-output{background-color:#D5EAD7}.marked-invisible-text{opacity:.33}.marked-for-programmers{color:#339;font-style:italic}.code-color{color:red}.code-block{border:0;position:relative;padding:3px 6px 4px;margin:12px 0;background-color:
#f4f4f4}@media (min-width:992px){.code-block{display:inline-block;min-width:600px;margin:0}ul .code-block{min-width:300px;display:block}}.callout .code-block{background-color:transparent!important;padding:0!important;margin:0!important}.callout .code-block::after{display:none!important}.code-block.code-template{background-color:#f4f4f4;padding-top:23px}.code-block.code-template::after{position:absolute;top:0;right:0;left:0;padding:3px 9px;font-size:10px;font-weight:700;font-family:Roboto,"Helvetica Neue",Arial,sans-serif;text-transform:uppercase;color:rgba(94,94,94,.8);background-color:#e4e4e4;content:"Template"}.code-block.code-data-model{background-color:#ecf3f8;padding-top:23px}.code-block.code-data-model::after{position:absolute;top:0;right:0;left:0;padding:3px 9px;font-size:10px;font-weight:700;font-family:Roboto,"Helvetica Neue",Arial,sans-serif;text-transform:uppercase;color:rgba(94,94,94,.8);background-color:#D2E2EF;content:"Data Model"}.code-block.code-output{background-col
or:#ECF8EE;padding-top:23px}.code-block.code-output::after{position:absolute;top:0;right:0;left:0;padding:3px 9px;font-size:10px;font-weight:700;font-family:Roboto,"Helvetica Neue",Arial,sans-serif;text-transform:uppercase;color:rgba(94,94,94,.8);background-color:#D5EAD7;content:"Output"}.table-responsive{min-height:.01%;overflow-x:auto}@media (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar}}.table{background-color:transparent;border-spacing:0;border-collapse:collapse;border:1px solid #ddd;width:100%;max-width:100%}.table th{font-weight:500;text-align:left;background-color:#f9f9f9;border-bottom:1px solid #ddd;white-space:nowrap}.table td,.table th{padding:3px 6px;border:1px solid #ddd;vertical-align:top}.table td{white-space:nowrap}@media (min-width:992px){.table td{white-space:normal}}.table a{word-break:normal}.social-icons{margin:0;padding:0;list-style-type:none}.social-icons li{display:inline-block;m
argin-right:18px}.social-icons li:last-child{margin-right:0}.social-icons li a::before{font-family:icomoon;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:14px;height:22px;display:inline-block;padding-right:3px}.social-icons li .github::before{content:"\f09b"}.social-icons li .twitter::before{content:"\f099"}.social-icons li .stack-overflow::before{content:"\f16c"}.site-width{margin-left:auto;margin-right:auto;padding-left:18px;padding-right:18px}@media (min-width:768px){.site-width{padding-left:24px;padding-right:24px;width:700px}}@media (min-width:992px){.site-width{width:924px}}@media (min-width:1200px){.site-width{width:1132px}}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}.center-img{text-align:center}.center-img img{max-width:100%}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/docgen-resources/fonts/NOTICE
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/docgen-resources/fonts/NOTICE b/builds/2.3.26-nightly/docgen-resources/fonts/NOTICE
deleted file mode 100644
index 8bf197f..0000000
--- a/builds/2.3.26-nightly/docgen-resources/fonts/NOTICE
+++ /dev/null
@@ -1,20 +0,0 @@
-The "icomoon" fonts in this directory were generated with
-https://icomoon.io/app/, from a selection of icons from these fonts:
-
-* Entypo pictograms, version 2.0, by Daniel Bruce (www.entypo.com).
- Each included pictogram is either licensed under Creative
- Commons Attribution-ShareAlike 3.0 (CC BY-SA 3.0)
- (http://creativecommons.org/licenses/by-sa/3.0/legalcode), or
- under SIL Open Font License 1.1 (http://scripts.sil.org/OFL).
-
-* Font Awesome by Dave Gandy (http://fontawesome.io), licensed under
- SIL Open Font License 1.1 (http://scripts.sil.org/OFL).
-
-* Material Design icons by Google
- (http://google.github.io/material-design-icons/), licensed under
- Creative Common Attribution 4.0 International License (CC-BY 4.0)
- (https://creativecommons.org/licenses/by/4.0/).
-
-If "selection.json" is present in this directory, it stores the
-IcoMoon App selection, and is only stored here for reproducibility.
-It's not used for anything.
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/docgen-resources/fonts/icomoon.eot
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/docgen-resources/fonts/icomoon.eot b/builds/2.3.26-nightly/docgen-resources/fonts/icomoon.eot
deleted file mode 100644
index 6d5cc05..0000000
Binary files a/builds/2.3.26-nightly/docgen-resources/fonts/icomoon.eot and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/docgen-resources/fonts/icomoon.svg
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/docgen-resources/fonts/icomoon.svg b/builds/2.3.26-nightly/docgen-resources/fonts/icomoon.svg
deleted file mode 100644
index 0c1e073..0000000
--- a/builds/2.3.26-nightly/docgen-resources/fonts/icomoon.svg
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!-- See NOTICE file for copyright information! -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg">
-<metadata>Generated by IcoMoon</metadata>
-<defs>
-<font id="icomoon" horiz-adv-x="1024">
-<font-face units-per-em="1024" ascent="960" descent="-64" />
-<missing-glyph horiz-adv-x="1024" />
-<glyph unicode=" " d="" horiz-adv-x="512" />
-<glyph unicode="" d="M810.667 384h-256v-256h-85.333v256h-256v85.333h256v256h85.333v-256h256v-85.333z" />
-<glyph unicode="" d="M810.667 384h-597.333v85.333h597.333v-85.333z" />
-<glyph unicode="" d="M399.36 460.8c0-62.208 50.483-112.64 112.691-112.64s112.589 50.483 112.589 112.64c0 62.208-50.381 112.589-112.589 112.589s-112.691-50.381-112.691-112.589z" />
-<glyph unicode="" d="M998.963 52.224l-456.038 851.558c-6.349 11.008-18.125 17.818-30.925 17.818-12.851 0-24.627-6.81-30.925-17.818l-455.987-851.558c-6.195-10.803-6.093-24.115 0.256-34.816 6.4-10.803 18.022-17.408 30.618-17.408h912.077c12.544 0 24.269 6.605 30.618 17.408 6.349 10.701 6.451 24.013 0.307 34.816zM563.2 102.4h-102.4v102.4h102.4v-102.4zM563.2 281.6h-102.4v332.8h102.4v-332.8z" />
-<glyph unicode="" d="M636.518 972.8c68.608 0 102.912-46.694 102.912-100.198 0-66.816-59.597-128.614-137.165-128.614-64.973 0-102.861 38.4-101.069 101.888 0 53.402 45.107 126.925 135.322 126.925zM425.421-51.2c-54.17 0-93.85 33.382-55.962 180.429l62.157 260.71c10.803 41.677 12.595 58.419 0 58.419-16.23 0-86.477-28.774-128.102-57.19l-27.034 45.056c131.686 111.923 283.187 177.51 348.211 177.51 54.118 0 63.13-65.178 36.096-165.376l-71.219-274.022c-12.595-48.384-7.219-65.075 5.427-65.075 16.23 0 69.478 20.070 121.805 61.798l30.72-41.677c-128.102-130.406-268.032-180.582-322.099-180.582z" />
-<glyph unicode="" d="M768 614.4h-153.6v307.2h-204.8v-307.2h-153.6l256-256 256 256zM990.106 279.962c-10.752 11.469-82.483 88.218-102.963 108.237-13.568 13.261-32.973 21.402-53.35 21.402h-89.958l156.877-153.293h-181.453c-5.222 0-9.933-2.662-12.288-6.81l-41.779-95.898h-306.381l-41.779 95.898c-2.355 4.147-7.117 6.81-12.288 6.81h-181.453l156.826 153.293h-89.907c-20.326 0-39.731-8.141-53.35-21.402-20.48-20.070-92.211-96.819-102.963-108.237-25.037-26.675-38.81-47.923-32.256-74.189l28.723-157.389c6.554-26.317 35.379-47.923 64.102-47.923h835.174c28.723 0 57.549 21.606 64.102 47.923l28.723 157.389c6.451 26.266-7.27 47.514-32.358 74.189z" />
-<glyph unicode="" d="M768 972.8h-204.8c-28.314 0-51.2-22.886-51.2-51.2l1.178-11.366c56.422 0 102.4-45.926 102.4-102.4v-581.581l50.022 60.467 153.6-184.32v819.2c0 28.314-22.886 51.2-51.2 51.2zM461.978 819.2h-205.978c-28.314 0-51.2-22.886-51.2-51.2v-819.2l153.6 184.32 153.6-184.32v819.2c0 28.314-21.709 51.2-50.022 51.2z" />
-<glyph unicode="" d="M512 906.24l122.266-344.166h328.294l-267.878-202.138 95.795-354.714-278.477 212.685-278.426-212.685 95.744 354.714-267.93 202.138h328.294l122.317 344.166z" />
-<glyph unicode="" d="M880.128 760.013c-85.606 78.592-224.41 78.592-310.016 0l-58.112-53.299-58.163 53.299c-85.606 78.592-224.358 78.592-309.965 0-96.307-88.371-96.307-231.373 0-319.744l368.128-337.869 368.128 337.869c96.256 88.371 96.256 231.424 0 319.744zM825.549 492.8l-313.549-292.608-313.6 292.608c-31.59 29.030-43.827 66.918-43.827 107.213s7.066 73.37 38.707 102.349c27.904 25.651 65.434 39.782 105.626 39.782 40.141 0 77.67-24.371 105.574-50.074l107.52-93.44 107.469 93.491c27.955 25.702 65.434 50.074 105.626 50.074s77.722-14.131 105.626-39.782c31.642-28.979 38.656-62.054 38.656-102.349s-12.186-78.234-43.827-107.264z" />
-<glyph unicode="" d="M737.28 512h-296.96c-28.262 0-30.72-22.886-30.72-51.2s2.458-51.2 30.72-51.2h296.96c28.262 0 30.72 22.886 30.72 51.2s-2.458 51.2-30.72 51.2zM839.68 256h-399.36c-28.262 0-30.72-22.886-30.72-51.2s2.458-51.2 30.72-51.2h399.36c28.262 0 30.72 22.886 30.72 51.2s-2.458 51.2-30.72 51.2zM440.32 665.6h399.36c28.262 0 30.72 22.886 30.72 51.2s-2.458 51.2-30.72 51.2h-399.36c-28.262 0-30.72-22.886-30.72-51.2s2.458-51.2 30.72-51.2zM276.48 512h-92.16c-28.262 0-30.72-22.886-30.72-51.2s2.458-51.2 30.72-51.2h92.16c28.262 0 30.72 22.886 30.72 51.2s-2.458 51.2-30.72 51.2zM276.48 256h-92.16c-28.262 0-30.72-22.886-30.72-51.2s2.458-51.2 30.72-51.2h92.16c28.262 0 30.72 22.886 30.72 51.2s-2.458 51.2-30.72 51.2zM276.48 768h-92.16c-28.262 0-30.72-22.886-30.72-51.2s2.458-51.2 30.72-51.2h92.16c28.262 0 30.72 22.886 30.72 51.2s-2.458 51.2-30.72 51.2z" />
-<glyph unicode="" d="M658.286 475.428q0 105.714-75.143 180.857t-180.857 75.143-180.857-75.143-75.143-180.857 75.143-180.857 180.857-75.143 180.857 75.143 75.143 180.857zM950.857 0q0-29.714-21.714-51.429t-51.429-21.714q-30.857 0-51.429 21.714l-196 195.429q-102.286-70.857-228-70.857-81.714 0-156.286 31.714t-128.571 85.714-85.714 128.571-31.714 156.286 31.714 156.286 85.714 128.571 128.571 85.714 156.286 31.714 156.286-31.714 128.571-85.714 85.714-128.571 31.714-156.286q0-125.714-70.857-228l196-196q21.143-21.143 21.143-51.429z" horiz-adv-x="951" />
-<glyph unicode="" d="M925.714 717.714q-38.286-56-92.571-95.429 0.571-8 0.571-24 0-74.286-21.714-148.286t-66-142-105.429-120.286-147.429-83.429-184.571-31.143q-154.857 0-283.429 82.857 20-2.286 44.571-2.286 128.571 0 229.143 78.857-60 1.143-107.429 36.857t-65.143 91.143q18.857-2.857 34.857-2.857 24.571 0 48.571 6.286-64 13.143-106 63.714t-42 117.429v2.286q38.857-21.714 83.429-23.429-37.714 25.143-60 65.714t-22.286 88q0 50.286 25.143 93.143 69.143-85.143 168.286-136.286t212.286-56.857q-4.571 21.714-4.571 42.286 0 76.571 54 130.571t130.571 54q80 0 134.857-58.286 62.286 12 117.143 44.571-21.143-65.714-81.143-101.714 53.143 5.714 106.286 28.571z" horiz-adv-x="951" />
-<glyph unicode="" d="M877.714 438.857q0-143.429-83.714-258t-216.286-158.571q-15.429-2.857-22.571 4t-7.143 17.143v120.571q0 55.429-29.714 81.143 32.571 3.429 58.571 10.286t53.714 22.286 46.286 38 30.286 60 11.714 86q0 69.143-45.143 117.714 21.143 52-4.571 116.571-16 5.143-46.286-6.286t-52.571-25.143l-21.714-13.714q-53.143 14.857-109.714 14.857t-109.714-14.857q-9.143 6.286-24.286 15.429t-47.714 22-49.143 7.714q-25.143-64.571-4-116.571-45.143-48.571-45.143-117.714 0-48.571 11.714-85.714t30-60 46-38.286 53.714-22.286 58.571-10.286q-22.857-20.571-28-58.857-12-5.714-25.714-8.571t-32.571-2.857-37.429 12.286-31.714 35.714q-10.857 18.286-27.714 29.714t-28.286 13.714l-11.429 1.714q-12 0-16.571-2.571t-2.857-6.571 5.143-8 7.429-6.857l4-2.857q12.571-5.714 24.857-21.714t18-29.143l5.714-13.143q7.429-21.714 25.143-35.143t38.286-17.143 39.714-4 31.714 2l13.143 2.286q0-21.714 0.286-50.857t0.286-30.857q0-10.286-7.429-17.143t-22.857-4q-132.571 44-216.286 158.571t-83.714 258q0 119.429 58.857 220
.286t159.714 159.714 220.286 58.857 220.286-58.857 159.714-159.714 58.857-220.286z" />
-<glyph unicode="" d="M530.286 150.286v-86.286l-404-0.571v86.286zM668 348v-400.571l-0.571-20v-0.571l-667.429 0.571v420.571h69.143v-353.143h530.286v353.143h68.571zM137.714 297.714l402.286-37.143-7.429-85.714-402.857 37.143zM176.571 478.286l390.286-104.571-22.286-83.429-390.286 104.571zM269.714 677.714l348-205.714-44-74.286-348 205.714zM475.429 866.857l227.429-334.286-70.857-48.571-228 333.714zM734.286 950.857l69.143-398.286-85.143-14.857-69.143 398.286z" horiz-adv-x="805" />
-<glyph unicode="" d="M932.571 402.286q0-14.857-10.857-25.714t-25.714-10.857h-128q0-97.714-38.286-165.714l118.857-119.429q10.857-10.857 10.857-25.714t-10.857-25.714q-10.286-10.857-25.714-10.857t-25.714 10.857l-113.143 112.571q-2.857-2.857-8.571-7.429t-24-16.286-37.143-20.857-46.857-16.571-55.429-7.429v512h-73.143v-512q-29.143 0-58 7.714t-49.714 18.857-37.714 22.286-24.857 18.571l-8.571 8-104.571-118.286q-11.429-12-27.429-12-13.714 0-24.571 9.143-10.857 10.286-11.714 25.429t8.857 26.571l115.429 129.714q-33.143 65.143-33.143 156.571h-128q-14.857 0-25.714 10.857t-10.857 25.714 10.857 25.714 25.714 10.857h128v168l-98.857 98.857q-10.857 10.857-10.857 25.714t10.857 25.714 25.714 10.857 25.714-10.857l98.857-98.857h482.286l98.857 98.857q10.857 10.857 25.714 10.857t25.714-10.857 10.857-25.714-10.857-25.714l-98.857-98.857v-168h128q14.857 0 25.714-10.857t10.857-25.714zM658.286 731.428h-365.714q0 76 53.429 129.429t129.429 53.429 129.429-53.429 53.429-129.429z" horiz-adv-x="951" />
-<glyph unicode="" d="M658.286 438.857q0-8-5.143-13.143l-182.857-182.857q-5.143-5.143-13.143-5.143-7.429 0-12.857 5.429t-5.429 12.857v109.714h-201.143q-7.429 0-12.857 5.429t-5.429 12.857v109.714q0 7.429 5.429 12.857t12.857 5.429h201.143v109.714q0 8 5.143 13.143t13.143 5.143q6.857 0 13.714-5.714l182.286-182.286q5.143-5.143 5.143-13.143zM749.714 438.857q0 84.571-41.714 156t-113.143 113.143-156 41.714-156-41.714-113.143-113.143-41.714-156 41.714-156 113.143-113.143 156-41.714 156 41.714 113.143 113.143 41.714 156zM877.714 438.857q0-119.429-58.857-220.286t-159.714-159.714-220.286-58.857-220.286 58.857-159.714 159.714-58.857 220.286 58.857 220.286 159.714 159.714 220.286 58.857 220.286-58.857 159.714-159.714 58.857-220.286z" />
-<glyph unicode="" d="M658.286 493.714v-109.714q0-7.429-5.429-12.857t-12.857-5.429h-201.143v-109.714q0-8-5.143-13.143t-13.143-5.143q-6.857 0-13.714 5.714l-182.286 182.286q-5.143 5.143-5.143 13.143t5.143 13.143l182.857 182.857q5.143 5.143 13.143 5.143 7.429 0 12.857-5.429t5.429-12.857v-109.714h201.143q7.429 0 12.857-5.429t5.429-12.857zM749.714 438.857q0 84.571-41.714 156t-113.143 113.143-156 41.714-156-41.714-113.143-113.143-41.714-156 41.714-156 113.143-113.143 156-41.714 156 41.714 113.143 113.143 41.714 156zM877.714 438.857q0-119.429-58.857-220.286t-159.714-159.714-220.286-58.857-220.286 58.857-159.714 159.714-58.857 220.286 58.857 220.286 159.714 159.714 220.286 58.857 220.286-58.857 159.714-159.714 58.857-220.286z" />
-<glyph unicode="" d="M730.286 842.857v-41.714q0-16.571-10.571-34.857t-24.286-18.286q-28.571 0-30.857-0.571-14.857-3.429-18.286-17.714-1.714-6.286-1.714-36.571v-658.286q0-14.286-10.286-24.571t-24.571-10.286h-61.714q-14.286 0-24.571 10.286t-10.286 24.571v696h-81.714v-696q0-14.286-10-24.571t-24.857-10.286h-61.714q-14.857 0-24.857 10.286t-10 24.571v283.429q-84 6.857-140 33.714-72 33.143-109.714 102.286-36.571 66.857-36.571 148 0 94.857 50.286 163.429 50.286 67.429 119.429 90.857 63.429 21.143 238.286 21.143h273.714q14.286 0 24.571-10.286t10.286-24.571z" horiz-adv-x="731" />
-</font></defs></svg>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/docgen-resources/fonts/icomoon.ttf
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/docgen-resources/fonts/icomoon.ttf b/builds/2.3.26-nightly/docgen-resources/fonts/icomoon.ttf
deleted file mode 100644
index f643244..0000000
Binary files a/builds/2.3.26-nightly/docgen-resources/fonts/icomoon.ttf and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/docgen-resources/fonts/icomoon.woff
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/docgen-resources/fonts/icomoon.woff b/builds/2.3.26-nightly/docgen-resources/fonts/icomoon.woff
deleted file mode 100644
index 7f40846..0000000
Binary files a/builds/2.3.26-nightly/docgen-resources/fonts/icomoon.woff and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/docgen-resources/img/callouts/1.gif
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/docgen-resources/img/callouts/1.gif b/builds/2.3.26-nightly/docgen-resources/img/callouts/1.gif
deleted file mode 100644
index 0d66977..0000000
Binary files a/builds/2.3.26-nightly/docgen-resources/img/callouts/1.gif and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/docgen-resources/img/callouts/10.gif
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/docgen-resources/img/callouts/10.gif b/builds/2.3.26-nightly/docgen-resources/img/callouts/10.gif
deleted file mode 100644
index fb50b06..0000000
Binary files a/builds/2.3.26-nightly/docgen-resources/img/callouts/10.gif and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/docgen-resources/img/callouts/11.gif
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/docgen-resources/img/callouts/11.gif b/builds/2.3.26-nightly/docgen-resources/img/callouts/11.gif
deleted file mode 100644
index 9f5dba4..0000000
Binary files a/builds/2.3.26-nightly/docgen-resources/img/callouts/11.gif and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/docgen-resources/img/callouts/12.gif
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/docgen-resources/img/callouts/12.gif b/builds/2.3.26-nightly/docgen-resources/img/callouts/12.gif
deleted file mode 100644
index a373d0b..0000000
Binary files a/builds/2.3.26-nightly/docgen-resources/img/callouts/12.gif and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/docgen-resources/img/callouts/13.gif
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/docgen-resources/img/callouts/13.gif b/builds/2.3.26-nightly/docgen-resources/img/callouts/13.gif
deleted file mode 100644
index b00b163..0000000
Binary files a/builds/2.3.26-nightly/docgen-resources/img/callouts/13.gif and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/docgen-resources/img/callouts/14.gif
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/docgen-resources/img/callouts/14.gif b/builds/2.3.26-nightly/docgen-resources/img/callouts/14.gif
deleted file mode 100644
index 6d6642e..0000000
Binary files a/builds/2.3.26-nightly/docgen-resources/img/callouts/14.gif and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/docgen-resources/img/callouts/2.gif
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/docgen-resources/img/callouts/2.gif b/builds/2.3.26-nightly/docgen-resources/img/callouts/2.gif
deleted file mode 100644
index 100ff79..0000000
Binary files a/builds/2.3.26-nightly/docgen-resources/img/callouts/2.gif and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/docgen-resources/img/callouts/3.gif
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/docgen-resources/img/callouts/3.gif b/builds/2.3.26-nightly/docgen-resources/img/callouts/3.gif
deleted file mode 100644
index 5008ca7..0000000
Binary files a/builds/2.3.26-nightly/docgen-resources/img/callouts/3.gif and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/docgen-resources/img/callouts/4.gif
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/docgen-resources/img/callouts/4.gif b/builds/2.3.26-nightly/docgen-resources/img/callouts/4.gif
deleted file mode 100644
index 0e5617d..0000000
Binary files a/builds/2.3.26-nightly/docgen-resources/img/callouts/4.gif and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/docgen-resources/img/callouts/5.gif
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/docgen-resources/img/callouts/5.gif b/builds/2.3.26-nightly/docgen-resources/img/callouts/5.gif
deleted file mode 100644
index 9bc75ad..0000000
Binary files a/builds/2.3.26-nightly/docgen-resources/img/callouts/5.gif and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/docgen-resources/img/callouts/6.gif
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/docgen-resources/img/callouts/6.gif b/builds/2.3.26-nightly/docgen-resources/img/callouts/6.gif
deleted file mode 100644
index d396407..0000000
Binary files a/builds/2.3.26-nightly/docgen-resources/img/callouts/6.gif and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/docgen-resources/img/callouts/7.gif
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/docgen-resources/img/callouts/7.gif b/builds/2.3.26-nightly/docgen-resources/img/callouts/7.gif
deleted file mode 100644
index c90b2f3..0000000
Binary files a/builds/2.3.26-nightly/docgen-resources/img/callouts/7.gif and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/docgen-resources/img/callouts/8.gif
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/docgen-resources/img/callouts/8.gif b/builds/2.3.26-nightly/docgen-resources/img/callouts/8.gif
deleted file mode 100644
index 6fe3287..0000000
Binary files a/builds/2.3.26-nightly/docgen-resources/img/callouts/8.gif and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/docgen-resources/img/callouts/9.gif
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/docgen-resources/img/callouts/9.gif b/builds/2.3.26-nightly/docgen-resources/img/callouts/9.gif
deleted file mode 100644
index bc5c812..0000000
Binary files a/builds/2.3.26-nightly/docgen-resources/img/callouts/9.gif and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/docgen-resources/img/patterned-bg.png
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/docgen-resources/img/patterned-bg.png b/builds/2.3.26-nightly/docgen-resources/img/patterned-bg.png
deleted file mode 100644
index a476f88..0000000
Binary files a/builds/2.3.26-nightly/docgen-resources/img/patterned-bg.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/docgen-resources/img/xxe.png
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/docgen-resources/img/xxe.png b/builds/2.3.26-nightly/docgen-resources/img/xxe.png
deleted file mode 100644
index 17b82aa..0000000
Binary files a/builds/2.3.26-nightly/docgen-resources/img/xxe.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/docgen-resources/main.min.js
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/docgen-resources/main.min.js b/builds/2.3.26-nightly/docgen-resources/main.min.js
deleted file mode 100644
index c153067..0000000
--- a/builds/2.3.26-nightly/docgen-resources/main.min.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";!function(t,e){function n(t){var e=null!=t.url,n=document.createElement(e?"a":"span");return n.innerHTML=t.title,e&&(n.href=t.url),n.className="depth-"+d+"-link",n}function a(t){t.stopPropagation();var e=t.target.parentNode;39===t.which?(e.classList.remove("closed"),e.classList.add("open")):37===t.which&&(e.classList.add("closed"),e.classList.remove("open"))}function i(t){if(t.children.length){for(var e=0;e<t.children.length;e++)if(t.children[e].isFile)return!1;return!0}return!0}function s(t){t.stopPropagation();var e=t.target;"LI"===e.tagName.toUpperCase()&&(e.classList.toggle("closed"),e.classList.toggle("open"))}function o(t,c,l){var r=document.createElement("ul");r.classList.add("depth-"+d);for(var u=0;u<t.length;u++){var f=t[u],p=document.createElement("li"),h=i(f);0===d&&p.classList.add("section"),"Search"===f.title&&(p.style.display="none"),p.addEventListener("click",s),p.addEventListener("keydown",a),p.appendChild(n(f)),f.title===e[c+1]&&l?(c+2===e.length&&p.cla
ssList.add("current"),0!==d&&p.classList.add("open"),c++):d>0&&p.classList.add("closed"),h?(p.classList.add("last"),"undefined"!=typeof f.flags&&p.classList.add(f.flags.join(" "))):d>0&&p.classList.add("has-children"),h||(d++,p.appendChild(o(f.children,c,f.title===e[c])),d--),r.appendChild(p)}return r}function c(t){var e=document.getElementById("table-of-contents-wrapper"),n=o(t.children,0,!0);n.classList.add("table-of-contents"),e.appendChild(n)}var d=0;c(t)}(toc,breadcrumb),function(){function t(t){var e=t.offsetTop+t.offsetParent.offsetTop-5,n=window.pageYOffset;return e===n||n>e}function e(t){var e=document.getElementById(t);e&&e.classList.remove("active")}function n(n){var a=document.getElementById(n);window.setTimeout(function(){a&&!t(a)&&(a.classList.add("active"),window.setTimeout(function(){e(n)},1e3))},1)}function a(t){var e=t.target;e.classList.contains("page-menu-link")&&n(e.getAttribute("data-menu-target"))}function i(){return window.location.hash?window.location.hash.s
ubstring(1):""}function s(){var t=i();""!==t&&n(t)}function o(){document.addEventListener("click",a),document.addEventListener("DOMContentLoaded",s)}o()}(),function(){function t(t){t=t.replace(/\+/g," "),t=decodeURIComponent(t),a.value=t}function e(){var e=window.location.search;if(""!==e)for(var n=e.split("&"),a=0;a<n.length;a++){var s=n[a],o=s.split("=");o[0]==="?"+i&&t(o[1])}}function n(){a=document.getElementById("search-field"),null!==a&&e()}var a,i="q";n()}();
\ No newline at end of file
[03/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/xgui_declarative_basics.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/xgui_declarative_basics.html b/builds/2.3.26-nightly/xgui_declarative_basics.html
deleted file mode 100644
index ed6e248..0000000
--- a/builds/2.3.26-nightly/xgui_declarative_basics.html
+++ /dev/null
@@ -1,198 +0,0 @@
-<!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>Basics - 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="Basics">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/xgui_declarative_basics.html">
-<link rel="canonical" href="http://freemarker.org/docs/xgui_declarative_basics.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="xgui.html"><span itemprop="name">XML Processing Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="xgui_declarative.html"><span itemprop="name">Declarative XML processing</span></a></li><li class="st
ep-3" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="xgui_declarative_basics.html"><span itemprop="name">Basics</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","XML Processing Guide","Declarative XML processing","Basics"];</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="xgui_declarative.html"><span>Previous</span></a><a class="paging-arrow next" href="xgui_declarative_details.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="xgui_declarative_basics" itemprop="headline">Basics</h1>
-</div></div> <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This section uses the DOM tree and the variable made in <a href="xgui_expose.html">a previous chapter</a>.</p>
- </div>
-<p>With the imperative approach of XML processing -- this was shown
- in the previous chapter -- you write an FTL program that walks the
- tree to find the different kind of nodes. With the declarative
- approach, you rather define how to handle the different kind of nodes,
- and then let FreeMarker walk the tree an call the handlers you have
- defined. This approach is useful for complex XML schemas, where the
- same element can occur as the child of many other elements. Examples
- of such schemas are XHTML and XDocBook.</p><p>The directive you most often use with the declarative approach
- is the <a href="ref_directive_visit.html#ref.directive.recurse"><code>recurse</code>
- directive</a>. This directive gets a node variable as parameter,
- and "visits" all its children nodes, one after the other,
- starting with the first child. "Visiting" a node means
- that it calls a user-defined directive (like a macro) that has the
- same name as the name of the child node
- (<code class="inline-code">?node_name</code>). We say on this, that the user-defined
- directive <em>handles</em> the node. The node that the
- user-defined directive just handles is available as special variable
- <code class="inline-code">.node</code>. For example, this FTL:</p>
-
-<div class="code-wrapper"><pre class="code-block code-template"><#recurse doc>
-
-<#macro book>
- I'm the book element handler, and the title is: ${.node.title}
-</#macro></pre></div><p>will print (I have removed some disturbing white-space form the
- output):</p>
-
-<div class="code-wrapper"><pre class="code-block code-output">I'm the book element handler, and the title is: Test Book</pre></div><p>If you call <code class="inline-code">recurse</code> without parameter, then
- it uses <code class="inline-code">.node</code>, that is, it visits all children
- nodes of the node currently handled. So this FTL:</p>
-
-<div class="code-wrapper"><pre class="code-block code-template"><#recurse doc>
-
-<#macro book>
- Book element with title ${.node.title}
- <#recurse>
- End book
-</#macro>
-
-<#macro title>
- Title element
-</#macro>
-
-<#macro chapter>
- Chapter element with title: ${.node.title}
-</#macro></pre></div><p>will print (I have removed disturbing white-space form the
- output):</p>
-
-<div class="code-wrapper"><pre class="code-block code-output">Book element with title Test Book
-Title element
-Chapter element with title: Ch1
-Chapter element with title: Ch2
-End book</pre></div><p>You have seen how to define handlers for element nodes, but not
- how to define handler for the text nodes. Since the name of the
- handler is the same as the node-name of nodes it handles, and as the
- node-name of all text nodes is <code class="inline-code">@text</code> (see <a href="xgui_imperative_formal.html#misc.xguiTable">the table</a>), you define handler for the
- text nodes like this:</p>
-
-<div class="code-wrapper"><pre class="code-block code-template">
-<#macro @text>${.node?html}</#macro></pre></div><p>Note the <code class="inline-code">?html</code>. You have to HTML-escape the
- text, since you generate output of HTML format.</p><p>Here it is the template that transforms the XML to complete
- HTML:</p><a name="misc.example.declarativeBookProcessor"></a>
-
-<div class="code-wrapper"><pre class="code-block code-template"><#recurse doc>
-
-<#macro book>
- <html>
- <head>
- <title><#recurse .node.title></title>
- </head>
- <body>
- <h1><#recurse .node.title></h1>
- <#recurse>
- </body>
- </html>
-</#macro>
-
-<#macro chapter>
- <h2><#recurse .node.title></h2>
- <#recurse>
-</#macro>
-
-<#macro para>
- <p><#recurse>
-</#macro>
-
-<#macro title>
- <#--
- We have handled this element imperatively,
- so we do nothing here.
- -->
-</#macro>
-
-<#macro @text>${.node?html}</#macro></pre></div><p>and the output will be (now I will honestly include the annoying
- white-space...):</p>
-
-<div class="code-wrapper"><pre class="code-block code-output"> <html>
- <head>
- <title>Test Book</title>
- </head>
- <body>
- <h1>Test Book</h1>
-
-
- <h2>Ch1</h2>
-
-
- <p>p1.1
-
- <p>p1.2
-
- <p>p1.3
-
-
- <h2>Ch2</h2>
-
-
- <p>p2.1
-
- <p>p2.2
-
-
- </body>
- </html>
-
- </pre></div><p>Note that you can reduce substantially the amount of superfluous
- whitespace in the output by using the <a href="ref_directive_t.html">trim directives</a>, as
- <code class="inline-code"><#t></code>. See also: <a href="dgui_misc_whitespace.html">Template Author's Guide/Miscellaneous/White-space handling</a></p><p>You may say that the FTL that did it with imperative approach
- was much shorter. That's true, but the example XML uses a very simple
- schema, and as I said, the declarative approach brings its form with
- XML schemas that are not that firm about what element can occur where.
- Say, introduce element <code class="inline-code">mark</code>, that should color text
- to red, does not mater where do you use it; in a
- <code class="inline-code">title</code>, or in a <code class="inline-code">para</code>. For this,
- with the declarative approach, you just add a macro:</p>
-
-<div class="code-wrapper"><pre class="code-block code-template"><#macro mark><font color=red><#recurse></font></#macro></pre></div><p>And then <code class="inline-code"><mark>...</mark></code> will
- automatically work everywhere. So for certain XML schemas, declarative
- XML processing will actually result in shorter, and what is even more
- important, much clearer FTL-s, than imperative XML processing. It's up
- to you to decide which approach to use when; don't forget that you can
- mix the two approaches freely. Say, in an element handler, you can use
- imperative approach to process the contents of that element.</p><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="xgui_declarative.html"><span>Previous</span></a><a class="paging-arrow next" href="xgui_declarative_details.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/xgui_declarative_details.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/xgui_declarative_details.html b/builds/2.3.26-nightly/xgui_declarative_details.html
deleted file mode 100644
index 3d5757c..0000000
--- a/builds/2.3.26-nightly/xgui_declarative_details.html
+++ /dev/null
@@ -1,220 +0,0 @@
-<!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>Details - 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="Details">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/xgui_declarative_details.html">
-<link rel="canonical" href="http://freemarker.org/docs/xgui_declarative_details.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="xgui.html"><span itemprop="name">XML Processing Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="xgui_declarative.html"><span itemprop="name">Declarative XML processing</span></a></li><li class="st
ep-3" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="xgui_declarative_details.html"><span itemprop="name">Details</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","XML Processing Guide","Declarative XML processing","Details"];</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="xgui_declarative_basics.html"><span>Previous</span></a><a class="paging-arrow next" href="app.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="xgui_declarative_details" itemprop="headline">Details</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_152" data-menu-target="autoid_152">Default handlers</a></li><li><a class="page-menu-link" href="#autoid_153" data-menu-target="autoid_153">Visiting a single node</a></li><li><a class="page-menu-link" href="#autoid_154" data-menu-target="autoid_154">XML namespaces</a></li></ul> </div>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_152">Default handlers</h2>
-
-
- <p>For some XML node types, there is a default handler, which
- will handle the node if you haven't defined a handler for the node
- (i.e. if there is no user-defined directive available with name
- identical to the node name). Here are these node types, and what the
- default handler does:</p>
-
- <ul>
- <li>
- <p>Text node: prints the text as it. Note, that in most
- applications, this will not be good for you, because you should
- escape the text before you send it to the output (with
- <code class="inline-code">?html</code> or <code class="inline-code">?xml</code> or
- <code class="inline-code">?rtf</code>, ...etc. depends on the output
- format).</p>
- </li>
-
- <li>
- <p>Processing instruction node: call handler called
- <code class="inline-code">@pi</code> if you have created such user-defined
- directive, otherwise do nothing (ignore the node).</p>
- </li>
-
- <li>
- <p>Comment node, document type node: Do nothing (ignore the
- node).</p>
- </li>
-
- <li>
- <p>Document node: Call <code class="inline-code">recurse</code>, that is,
- visit all children of the document node.</p>
- </li>
- </ul>
-
- <p>Element and attribute nodes will be handled according to the
- usual, XML independent mechanism. That is,
- <code class="inline-code">@<em class="code-color">node_type</em></code> will be
- called as handler, and if that's not defined, then an error stops
- template processing.</p>
-
- <p>In the case of element nodes, this means that if you define a
- macro (or other kind of user-defined directive) called
- <code class="inline-code">@element</code>, that will catch all element nodes,
- which has no more specific handler. If you have no
- <code class="inline-code">@element</code> handler, then you
- <em>must</em> define a handler for all possible
- elements.</p>
-
- <p>Attribute nodes are not visited by the
- <code class="inline-code">recurse</code> directive, so you don't need to write
- handlers for them.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_153">Visiting a single node</h2>
-
-
- <p>With the <a href="ref_directive_visit.html#ref.directive.visit"><code>visit</code>
- directive</a> you can visit a single node, instead of the
- children of the node:
- <code class="inline-code"><#visit�<em class="code-color">nodeToVisist</em>></code>.
- This can be useful sometimes.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_154">XML namespaces</h2>
-
-
-
-
- <p>We said that the name of the handler user-defined directive
- (like a macro) for an element is the name of the element. In fact,
- it is the full-qualified name of the element:
- <code class="inline-code"><em class="code-color">prefix</em>:<em class="code-color">elementName</em></code>.
- The rules regarding the usage of
- <code class="inline-code"><em class="code-color">prefix</em></code>-es is the same
- as with imperative processing. Thus, the user-defined
- <code class="inline-code">book</code> directive handles only element
- <code class="inline-code">book</code> that does not belong to any XML namespace
- (unless you have specified a default XML namespace). So if the
- example XML would use XML namespace
- <code class="inline-code">http://example.com/ebook</code>:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified"><book xmlns="http://example.com/ebook">
-<em>...</em></pre></div>
-
- <p>Then the FTL should look as this:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><strong><#ftl ns_prefixes={"e":"http://example.com/ebook"}></strong>
-
-<#recurse doc>
-
-<#macro "<strong>e:</strong>book">
- <html>
- <head>
- <title><#recurse .node["<strong>e:</strong>title"]></title>
- </head>
- <body>
- <h1><#recurse .node["<strong>e:</strong>title"]></h1>
- <#recurse>
- </body>
- </html>
-</#macro>
-
-<#macro "<strong>e:</strong>chapter">
- <h2><#recurse .node["<strong>e:</strong>title"]></h2>
- <#recurse>
-</#macro>
-
-<#macro "<strong>e:</strong>para">
- <p><#recurse>
-</#macro>
-
-<#macro "<strong>e:</strong>title">
- <#--
- We have handled this element imperatively,
- so we do nothing here.
- -->
-</#macro>
-
-<#macro @text>${.node?html}</#macro></pre></div>
-
- <p>Or, you can define a default XML namespace, and then the
- further part of the template remains the same as in the original XML
- namespace free example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#ftl ns_prefixes={"<strong>D</strong>":"http://example.com/ebook"}>
-
-<#recurse doc>
-
-<#macro book>
-<em>...</em></pre></div>
-
- <p>But in this case don't forge that in XPath expressions (we
- didn't used any in the example) the default XML namespace must be
- accessed with an explicit <code class="inline-code">D:</code> since names without
- prefix always refer to nodes with no XML namespace in XPath. Also
- note that with the same logic as with imperative XML processing, the
- name of handlers for elements that has no XML namespace is
- <code class="inline-code">N:<em class="code-color">elementName</em></code> if (and
- only if) there is a default XML namespace. However, for nodes that
- are not of type element (such as text nodes), you never use the
- <code class="inline-code">N</code> prefix in the handler name, because those nodes
- are free of the idea of XML namespaces. So for example, the handler
- for text nodes is always just <code class="inline-code">@text</code>.</p>
-
- <p>For more detailed information, please read <a href="ref_directive_visit.html">the reference of
- <code>recurse</code> and <code>visit</code></a>
- directives.</p>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="xgui_declarative_basics.html"><span>Previous</span></a><a class="paging-arrow next" href="app.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/xgui_expose.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/xgui_expose.html b/builds/2.3.26-nightly/xgui_expose.html
deleted file mode 100644
index 9bfddb1..0000000
--- a/builds/2.3.26-nightly/xgui_expose.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<!doctype html>
-<!-- Generated by FreeMarker/Docgen from DocBook -->
-<html lang="en" class="page-type-chapter">
-<head prefix="og: http://ogp.me/ns#">
-<meta charset="utf-8">
-<title>Exposing XML documents - 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="Exposing XML documents">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/xgui_expose.html">
-<link rel="canonical" href="http://freemarker.org/docs/xgui_expose.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="xgui.html"><span itemprop="name">XML Processing Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="xgui_expose.html"><span itemprop="name">Exposing XML documents</span></a></li></ul><div class="bookm
arks" 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","XML Processing Guide","Exposing XML documents"];</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="xgui_preface.html"><span>Previous</span></a><a class="paging-arrow next" href="xgui_expose_dom.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-chapter" id="xgui_expose" itemprop="headline">Exposing XML documents</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Section Contents</div>
-<ul><li><a class="page-menu-link" href="xgui_expose_dom.html" data-menu-target="xgui_expose_dom">The DOM tree</a></li><li><a class="page-menu-link" href="xgui_expose_put.html" data-menu-target="xgui_expose_put">Putting the XML into the data-model</a></li></ul> </div><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="xgui_preface.html"><span>Previous</span></a><a class="paging-arrow next" href="xgui_expose_dom.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/xgui_expose_dom.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/xgui_expose_dom.html b/builds/2.3.26-nightly/xgui_expose_dom.html
deleted file mode 100644
index d7b6fc5..0000000
--- a/builds/2.3.26-nightly/xgui_expose_dom.html
+++ /dev/null
@@ -1,173 +0,0 @@
-<!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>The DOM tree - 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="The DOM tree">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/xgui_expose_dom.html">
-<link rel="canonical" href="http://freemarker.org/docs/xgui_expose_dom.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="xgui.html"><span itemprop="name">XML Processing Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="xgui_expose.html"><span itemprop="name">Exposing XML documents</span></a></li><li class="step-3" ite
mprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="xgui_expose_dom.html"><span itemprop="name">The DOM tree</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","XML Processing Guide","Exposing XML documents","The DOM tree"];</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="xgui_expose.html"><span>Previous</span></a><a class="paging-arrow next" href="xgui_expose_put.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="xgui_expose_dom" itemprop="headline">The DOM tree</h1>
-</div></div><p>We will use this XML document for the examples:</p><a name="misc.example.bookXml"></a>
-
-<div class="code-wrapper"><pre class="code-block code-unspecified"><book>
- <title>Test Book</title>
- <chapter>
- <title>Ch1</title>
- <para>p1.1</para>
- <para>p1.2</para>
- <para>p1.3</para>
- </chapter>
- <chapter>
- <title>Ch2</title>
- <para>p2.1</para>
- <para>p2.2</para>
- </chapter>
-</book></pre></div><p>W3C DOM models an XML document as a tree of nodes. The node tree
- of the above XML can be visualized as:</p>
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">document
- |
- +- element book
- |
- +- text "\n "
- |
- +- element title
- | |
- | +- text "Test Book"
- |
- +- text "\n "
- |
- +- element chapter
- | |
- | +- text "\n "
- | |
- | +- element title
- | | |
- | | +- text "Ch1"
- | |
- | +- text "\n "
- | |
- | +- element para
- | | |
- | | +- text "p1.1"
- | |
- | +- text "\n "
- | |
- | +- element para
- | | |
- | | +- text "p1.2"
- | |
- | +- text "\n "
- | |
- | +- element para
- | |
- | +- text "p1.3"
- |
- +- element
- |
- +- text "\n "
- |
- +- element title
- | |
- | +- text "Ch2"
- |
- +- text "\n "
- |
- +- element para
- | |
- | +- text "p2.1"
- |
- +- text "\n "
- |
- +- element para
- |
- +- text "p2.2"</pre></div><p>Note that the disturbing <code class="inline-code">"\n��"</code>-s are the
- line-breaks (indicated here with <code class="inline-code">\n</code>, an escape
- sequence used in FTL string literals) and the indentation spaces
- between the tags.</p><p>Notes on the DOM related terminology:</p><ul>
- <li>
- <p>The topmost node of a tree is called the <strong>root</strong>. In the case of XML documents, it is
- always the "document" node, and not the top-most
- element (<code class="inline-code">book</code> in this example).</p>
- </li>
-
- <li>
- <p>We say that node B is the <strong>child</strong> of node A, if B is the
- <em>immediate</em> descendant of A. For example, the
- two <code class="inline-code">chapter</code> element nodes are the children of
- the <code class="inline-code">book</code> element node, but the
- <code class="inline-code">para</code> element nodes are not.</p>
- </li>
-
- <li>
- <p>We say that node A is the <strong>parent</strong> of node B, if A is the
- <em>immediate</em> ascendant of node B, that is, if B
- is the children of A. For example, the <code class="inline-code">book</code>
- element node is the parent of the two <code class="inline-code">chapter</code>
- element nodes, but it is not the parent of the
- <code class="inline-code">para</code> element nodes.</p>
- </li>
-
- <li>
- <p>There are several kind of components that can occur in XML
- documents, such as elements, text, comments, processing
- instructions, etc. All such components are nodes in the DOM tree,
- so there are element nodes, text nodes, comment nodes, etc. In
- principle, the attributes of elements are also nodes in the tree
- -- they are the children of the element --, but still, usually we
- (and other XML related technologies) exclude them of element
- children. So basically they don't count as children nodes.</p>
- </li>
- </ul><p>The programmer drops the document node of the DOM tree into the
- FreeMarker data-model, and then the template author can walk the DOM
- tree using that variable as the starting-point.</p><p>The DOM nodes in FTL correspond to <strong>node
- variables</strong>. This is a variable type, similarly to type
- string, number, hash, etc. Node variable type makes it possible for
- FreeMarker to get the parent node and the child nodes of a node. This
- is technically required to allow the template author to navigate
- between the nodes, say, to use the <a href="ref_builtins_node.html">node built-ins</a> or the <a href="ref_directive_visit.html#ref.directive.visit"><code>visit</code></a> and
- <a href="ref_directive_visit.html#ref.directive.recurse"><code>recurse</code></a>
- directives; we will show the usage of these in the further
- chapters.</p><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="xgui_expose.html"><span>Previous</span></a><a class="paging-arrow next" href="xgui_expose_put.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/xgui_expose_put.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/xgui_expose_put.html b/builds/2.3.26-nightly/xgui_expose_put.html
deleted file mode 100644
index 5c1df21..0000000
--- a/builds/2.3.26-nightly/xgui_expose_put.html
+++ /dev/null
@@ -1,83 +0,0 @@
-<!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>Putting the XML into the data-model - 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="Putting the XML into the data-model">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/xgui_expose_put.html">
-<link rel="canonical" href="http://freemarker.org/docs/xgui_expose_put.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="xgui.html"><span itemprop="name">XML Processing Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="xgui_expose.html"><span itemprop="name">Exposing XML documents</span></a></li><li class="step-3" ite
mprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="xgui_expose_put.html"><span itemprop="name">Putting the XML into the data-model</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","XML Processing Guide","Exposing XML documents","Putting the XML into the data-model"];</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="xgui_expose_dom.html"><span>Previous</span></a><a class="paging-arrow next" href="xgui_imperative.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="xgui_expose_put" itemprop="headline">Putting the XML into the data-model</h1>
-</div></div> <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This section is for programmers.</p>
- </div>
-<p>It's easy to create a simple program to try the examples. Just
- replace the "Create a data-model" part of <a href="pgui_quickstart_all.html">the example of Programmer's Guide
- Quickstart</a> with this:</p>
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">/* Create a data-model */
-Map root = new HashMap();
-root.put(
- "doc",
- freemarker.ext.dom.NodeModel.parse(new File("<em>the/path/of/the.xml</em>")));</pre></div><p>and then you have a program that outputs the result of the XML
- transformation to the standard output (usually the terminal
- screen).</p><p>Notes:</p><ul>
- <li>
- <p>The <code class="inline-code">parse</code> method removes comment and
- processing instruction nodes by default. See the API for more
- details.</p>
- </li>
-
- <li>
- <p><code class="inline-code">NodeModel</code> also allows you to wrap
- <code class="inline-code">org.w3c.dom.Node</code>-s directly. You may want to
- clean up the DOM tree first with the static utility methods, such
- as <code class="inline-code">NodeModel.simplify</code> or your own custom
- cleanup routines.</p>
- </li>
- </ul><p>Note that there are tools available that you can use to generate
- files from XML documents, so you don't have to write your own for this
- common task. <a href="pgui_misc_ant.html">See here...</a></p><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="xgui_expose_dom.html"><span>Previous</span></a><a class="paging-arrow next" href="xgui_imperative.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/xgui_imperative.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/xgui_imperative.html b/builds/2.3.26-nightly/xgui_imperative.html
deleted file mode 100644
index 4dc1cff..0000000
--- a/builds/2.3.26-nightly/xgui_imperative.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<!doctype html>
-<!-- Generated by FreeMarker/Docgen from DocBook -->
-<html lang="en" class="page-type-chapter">
-<head prefix="og: http://ogp.me/ns#">
-<meta charset="utf-8">
-<title>Imperative XML processing - 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="Imperative XML processing">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/xgui_imperative.html">
-<link rel="canonical" href="http://freemarker.org/docs/xgui_imperative.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="xgui.html"><span itemprop="name">XML Processing Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="xgui_imperative.html"><span itemprop="name">Imperative XML processing</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","XML Processing Guide","Imperative XML processing"];</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="xgui_expose_put.html"><span>Previous</span></a><a class="paging-arrow next" href="xgui_imperative_learn.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-chapter" id="xgui_imperative" itemprop="headline">Imperative XML processing</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Section Contents</div>
-<ul><li><a class="page-menu-link" href="xgui_imperative_learn.html" data-menu-target="xgui_imperative_learn">Basics</a></li><li><a class="page-menu-link" href="xgui_imperative_formal.html" data-menu-target="xgui_imperative_formal">Details</a></li></ul> </div><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="xgui_expose_put.html"><span>Previous</span></a><a class="paging-arrow next" href="xgui_imperative_learn.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>\u20132017
-<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>
[13/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/versions_2_2_3.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_2_3.html b/builds/2.3.26-nightly/versions_2_2_3.html
deleted file mode 100644
index dbfd3f7..0000000
--- a/builds/2.3.26-nightly/versions_2_2_3.html
+++ /dev/null
@@ -1,106 +0,0 @@
-<!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.2.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.2.3">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/versions_2_2_3.html">
-<link rel="canonical" href="http://freemarker.org/docs/versions_2_2_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_2_3.html"><span itemprop="name">2.2.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.2.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_2_4.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_2_2.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="versions_2_2_3" itemprop="headline">2.2.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_255" data-menu-target="autoid_255">Changes on the FTL side</a></li><li><a class="page-menu-link" href="#autoid_256" data-menu-target="autoid_256">Changes on the Java side</a></li></ul> </div><p>Date of release: 2003-07-19</p><p>Bugfix release.</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_255">Changes on the FTL side</h2>
-
-
- <ul>
- <li>
- <p>Added the <code class="inline-code">is_date</code> built-in.</p>
- </li>
-
- <li>
- <p>Bugfix: Various <code class="inline-code">is_xxx</code> built-ins were
- returning <code class="inline-code">false</code> when applied to undefined
- expressions. Now they correctly fail on them.</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_256">Changes on the Java side</h2>
-
-
- <ul>
- <li>
- <p>Bugfix: The JSP taglib support can now read JSP 1.2
- compliant TLD XML files.</p>
- </li>
-
- <li>
- <p>Bugfix: The JSP taglib support now emits more helpful
- exception messages when the specified TLD XML file is not found
- (previously it threw a
- <code class="inline-code">NullPointerException</code>).</p>
- </li>
-
- <li>
- <p>Bugfix: The JSP taglib support now initializes a custom
- tag after its parent and page context is set as some tags expect
- them to be set when attribute setters are called.</p>
- </li>
-
- <li>
- <p>Bugfix: The <code class="inline-code">BeansWrapper</code> could fail to
- analyze classes under very rare circumstances due to a premature
- storage optimization.</p>
- </li>
- </ul>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_2_4.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_2_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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/versions_2_2_4.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_2_4.html b/builds/2.3.26-nightly/versions_2_2_4.html
deleted file mode 100644
index 2f7adb1..0000000
--- a/builds/2.3.26-nightly/versions_2_2_4.html
+++ /dev/null
@@ -1,103 +0,0 @@
-<!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.2.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.2.4">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/versions_2_2_4.html">
-<link rel="canonical" href="http://freemarker.org/docs/versions_2_2_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_2_4.html"><span itemprop="name">2.2.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.2.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_2_5.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_2_3.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="versions_2_2_4" itemprop="headline">2.2.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_253" data-menu-target="autoid_253">Changes on the Java side</a></li><li><a class="page-menu-link" href="#autoid_254" data-menu-target="autoid_254">Other changes</a></li></ul> </div><p>Date of release: 2003-09-03</p><p>Maintenance and bugfix release.</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_253">Changes on the Java side</h2>
-
-
- <ul>
- <li>
- <p>Improvements to JSP taglib support. If some third party
- taglib didn't work for you with FreeMarker, maybe now it
- will.</p>
-
- <ul>
- <li>
- <p>The JSP <code class="inline-code">PageContext</code> now implements
- <code class="inline-code">forward</code> and <code class="inline-code">include</code>
- methods.</p>
- </li>
-
- <li>
- <p>Accepting <code class="inline-code">EVAL_PAGE</code> as an alias to
- <code class="inline-code">SKIP_BODY</code> in return values from
- <code class="inline-code">doStartTag</code>. It's a common bug in some
- widespread tag libraries, and now FreeMarker is less strict
- and accepts it.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Fixes for some rare problems regarding namespaces of
- macros.</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_254">Other changes</h2>
-
-
- <ul>
- <li>
- <p>Minor improvements to the documentation.</p>
- </li>
- </ul>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_2_5.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_2_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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/versions_2_2_5.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_2_5.html b/builds/2.3.26-nightly/versions_2_2_5.html
deleted file mode 100644
index 07a1d7a..0000000
--- a/builds/2.3.26-nightly/versions_2_2_5.html
+++ /dev/null
@@ -1,68 +0,0 @@
-<!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.2.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.2.5">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/versions_2_2_5.html">
-<link rel="canonical" href="http://freemarker.org/docs/versions_2_2_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_2_5.html"><span itemprop="name">2.2.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.2.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_2_6.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_2_4.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="versions_2_2_5" itemprop="headline">2.2.5</h1>
-</div></div><p>Date of release: 2003-09-19</p><p>Maintenance and bugfix release.</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_252">Changes on the Java side</h2>
-
-
- <ul>
- <li>
- <p>Creating a <code class="inline-code">Configuration</code> instance using
- the default constructor no longer fails if the current directory
- is unreadable due to I/O problems, lack of security permissions,
- or any other exception.</p>
- </li>
- </ul>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_2_6.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_2_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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/versions_2_2_6.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_2_6.html b/builds/2.3.26-nightly/versions_2_2_6.html
deleted file mode 100644
index 8f5fdd2..0000000
--- a/builds/2.3.26-nightly/versions_2_2_6.html
+++ /dev/null
@@ -1,144 +0,0 @@
-<!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.2.6 - 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.2.6">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/versions_2_2_6.html">
-<link rel="canonical" href="http://freemarker.org/docs/versions_2_2_6.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_2_6.html"><span itemprop="name">2.2.6</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.2.6"];</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_2_7.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_2_5.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="versions_2_2_6" itemprop="headline">2.2.6</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_249" data-menu-target="autoid_249">Changes on the FTL side</a></li><li><a class="page-menu-link" href="#autoid_250" data-menu-target="autoid_250">Changes on the Java side</a></li><li><a class="page-menu-link" href="#autoid_251" data-menu-target="autoid_251">Other changes</a></li></ul> </div><p>Date of release: 2004-March-13</p><p>Maintenance and bugfix release. Some of improvements are
- back-portings from FreeMarker 2.3rc1.</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_249">Changes on the FTL side</h2>
-
-
- <ul>
- <li>
- <p>New <a href="ref_specvar.html">special variable</a>:
- <code class="inline-code">.vars</code>. This is useful to read top-level
- variables with square bracket syntax, for example
- <code class="inline-code">.vars["name-with-hyphens"]</code> and
- <code class="inline-code">.vars[dynamicName]</code>.</p>
- </li>
-
- <li>
- <p>New built-ins for Java and JavaScript string escaping:
- <a href="ref_builtins_string.html#ref_builtin_j_string">j_string</a> and <a href="ref_builtins_string.html#ref_builtin_js_string">js_string</a></p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_250">Changes on the Java side</h2>
-
-
- <ul>
- <li>
- <p>Bugfix: The template cache didn't reload the template when
- it was replaced with an older version.</p>
- </li>
-
- <li>
- <p>Bugfix:
- <code class="inline-code">freemarker.template.utility.DeepUnwrap</code>
- unwrapped sequences to empty
- <code class="inline-code">ArrayList</code>-s.</p>
- </li>
-
- <li>
- <p>Bugfix: In error messages, when the quoted FTL directive
- had nested content, that was quoted as well, so the quotation
- could be very long and expose nested lines needlessly.</p>
- </li>
-
- <li>
- <p><code class="inline-code">freemarker.template.TemplateExceptionHandler.HTML_DEBUG_HANDLER</code>
- now prints more HTML-context-proof messages.</p>
- </li>
-
- <li>
- <p>You can query the FreeMarker version number with static
- method <code class="inline-code">Configuration.getVersionNumber()</code>.
- Also, the <code class="inline-code">Manifest.mf</code> included in
- <code class="inline-code">freemarker.jar</code> now contains the FreeMarker
- version number, furthermore, executing it with <code class="inline-code">java
- -jar freemarker.jar</code> will print the version number to
- the stdout.</p>
- </li>
-
- <li>
- <p>Date support is now labeled as final. (It was experimental
- earlier.) There was no change since FreeMarker 2.2.1.</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_251">Other changes</h2>
-
-
- <ul>
- <li>
- <p>Fixes and improvements in the Manual and in the API
- JavaDoc. The documentation now works with the Eclipse help
- plugin (accessible in the "Editor/IDE plugins"
- section of the FreeMarker Web page).</p>
- </li>
-
- <li>
- <p>Minor site improvements.</p>
- </li>
- </ul>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_2_7.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_2_5.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/versions_2_2_7.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_2_7.html b/builds/2.3.26-nightly/versions_2_2_7.html
deleted file mode 100644
index f251449..0000000
--- a/builds/2.3.26-nightly/versions_2_2_7.html
+++ /dev/null
@@ -1,70 +0,0 @@
-<!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.2.7 - 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.2.7">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/versions_2_2_7.html">
-<link rel="canonical" href="http://freemarker.org/docs/versions_2_2_7.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_2_7.html"><span itemprop="name">2.2.7</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.2.7"];</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_2_8.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_2_6.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="versions_2_2_7" itemprop="headline">2.2.7</h1>
-</div></div><p>Date of release: 2004-March-17</p><p>Important bugfix release.</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_248">Changes on the Java side</h2>
-
-
- <ul>
- <li>
- <p>Bugfix: Fixing a fatal bug in the template cache that was
- introduced with the latest cache "bugfix". The
- template cache has always reloaded the unchanged template when
- the update delay has been elapsed, until the template has been
- actually changed, in which case it has never reloaded the
- template anymore.</p>
- </li>
- </ul>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_2_8.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_2_6.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/versions_2_2_8.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_2_8.html b/builds/2.3.26-nightly/versions_2_2_8.html
deleted file mode 100644
index f582884..0000000
--- a/builds/2.3.26-nightly/versions_2_2_8.html
+++ /dev/null
@@ -1,112 +0,0 @@
-<!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.2.8 - 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.2.8">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/versions_2_2_8.html">
-<link rel="canonical" href="http://freemarker.org/docs/versions_2_2_8.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_2_8.html"><span itemprop="name">2.2.8</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.2.8"];</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.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_2_7.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="versions_2_2_8" itemprop="headline">2.2.8</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_245" data-menu-target="autoid_245">Changes on the FTL side</a></li><li><a class="page-menu-link" href="#autoid_246" data-menu-target="autoid_246">Changes on the Java side</a></li><li><a class="page-menu-link" href="#autoid_247" data-menu-target="autoid_247">Other changes</a></li></ul> </div><p>Date of release: 2004-June-15</p><p>Bugfix and maintenance release.</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_245">Changes on the FTL side</h2>
-
-
- <ul>
- <li>
- <p>Added a new special variable to print the FreeMarker
- version number: <code class="inline-code">version</code>. See more <a href="ref_specvar.html">in the reference...</a></p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_246">Changes on the Java side</h2>
-
-
- <ul>
- <li>
- <p>The <code class="inline-code">BeansWrapper</code> has been improved to
- prevent some security exceptions when introspecting.</p>
- </li>
-
- <li>
- <p>Bugfix: The <code class="inline-code">FileTemplateLoader</code> is now
- more robust when it receives paths that are malformed according
- the native file system. In the earlier version such paths
- sometimes caused unexpected <code class="inline-code">IOException</code> that
- aborted the searching for the template in further
- <code class="inline-code">FileTemplateLoader</code>-s when you use the
- <code class="inline-code">MultiTemplateLoader</code>.</p>
- </li>
-
- <li>
- <p>Some parts of the FreeMarker code has been marked as
- privileged code section, so you can grant extra privileges to
- FreeMarker when you use a security manager (this is a
- backporting from 2.3). See more <a href="pgui_misc_secureenv.html">here...</a></p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_247">Other changes</h2>
-
-
- <ul>
- <li>
- <p>Minor documentation fixes and improvements.</p>
- </li>
- </ul>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_3.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_2_7.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>\u20132017
-<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>
[16/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/versions_2_0.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_0.html b/builds/2.3.26-nightly/versions_2_0.html
deleted file mode 100644
index ba13c93..0000000
--- a/builds/2.3.26-nightly/versions_2_0.html
+++ /dev/null
@@ -1,147 +0,0 @@
-<!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.0 - 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.0">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/versions_2_0.html">
-<link rel="canonical" href="http://freemarker.org/docs/versions_2_0.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_0.html"><span itemprop="name">2.0</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.0"];</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_01.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_0RC3.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="versions_2_0" itemprop="headline">2.0</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_281" data-menu-target="autoid_281">Bugfixes</a></li><li><a class="page-menu-link" href="#autoid_282" data-menu-target="autoid_282">Changes to the Template language</a></li><li><a class="page-menu-link" href="#autoid_283" data-menu-target="autoid_283">Changes to the API</a></li><li><a class="page-menu-link" href="#autoid_284" data-menu-target="autoid_284">Miscellany</a></li></ul> </div><p>FreeMarker 2.0 final was released on 18 April 2002. The changes
- with respect to the previous release, 2.0 RC3 are fairly minor.</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_281">Bugfixes</h2>
-
-
- <ul>
- <li>
- <p>There were a couple of bugs in handling null values, where
- Lazarus did not do the same thing as FreeMarker Classic.
- Traditionally, in FreeMarker, nulls were treated as being
- equivalent to an empty string in the appropriate context. At
- this point, to the best of our knowledge, there is backward
- compatibility with FreeMarker Classic in this respect.</p>
- </li>
-
- <li>
- <p>Literal strings can now include line breaks. This was a
- backward compatibility issue with FreeMarker Classic that has
- been fixed.</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_282">Changes to the Template language</h2>
-
-
- <ul>
- <li>
- <p>You can use the extra built-in of
- <code class="inline-code">myString?web_safe</code> to convert a string to its
- "web-safe" equivalent, where problematic characters such as
- '<' are converted to &lt;.</p>
- </li>
-
- <li>
- <p>In displaying numbers with a fractional part, the
- rendering apparatus now respects the decimal separator of the
- template's locale, so that, for example, in continental Europe,
- you would see 1,1 and in the U.S. locale, 1.1.</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_283">Changes to the API</h2>
-
-
- <ul>
- <li>
- <p>The <code class="inline-code">getAsString()</code> method in the
- <code class="inline-code">TemplateScalarModel</code> interface now takes a
- <code class="inline-code">java.util.Locale</code> as a parameter. For the most
- part, this is a hook for later use. In the default
- implementation, <code class="inline-code">SimpleScalar</code>, this parameter
- is unused. If you are implementing this interface yourself, your
- implementation may ignore the parameter. However, it will be
- appealing for certain implementations.</p>
- </li>
-
- <li>
- <p>The constructors of <code class="inline-code">FileTemplateCache</code>
- have changed. If you are using an absolute directory on the file
- system as the location of your templates, you need to pass in an
- instance of <code class="inline-code">java.io.File</code> to indicate the
- location. If you use the constructors that take a string, this
- is taken to mean relative to the classloader classpath.</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_284">Miscellany</h2>
-
-
- <p>The ant build script build.xml now contains a target that
- builds a .war file containing the Hello, World and Guestbook
- examples. It builds a fmexamples.war. For example, if you are using
- Tomcat in its out-of-the-box configuration, you would place this
- under <TOMCAT_HOME>/webapps and then you would use
- http://localhost:8080/fmexamples/servlet/hello and
- http://localhost:8080/fmexamples/servlet/guestbook for the Hello,
- World and Guestbook examples respectively.</p>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_01.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_0RC3.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/versions_2_01.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_01.html b/builds/2.3.26-nightly/versions_2_01.html
deleted file mode 100644
index d9f68f1..0000000
--- a/builds/2.3.26-nightly/versions_2_01.html
+++ /dev/null
@@ -1,59 +0,0 @@
-<!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.01 - 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.01">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/versions_2_01.html">
-<link rel="canonical" href="http://freemarker.org/docs/versions_2_01.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_01.html"><span itemprop="name">2.01</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.01"];</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_1.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_0.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="versions_2_01" itemprop="headline">2.01</h1>
-</div></div><p>The main improvement is in error reporting. Now exceptions are
- much more informative since they come with complete line number and
- column information.</p><p>The only API change between 2.0 and 2.01 was the elimination of
- the CacheListener/CacheEvent API. Now, if the updating of a template
- file fails, the exception is thrown back to the caller to handle. If
- you want logging to occur when a template file is updated
- successfully, you can override the logFileUpdate() method in
- FileTemplateCache.</p><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_1.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_0.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/versions_2_0RC1.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_0RC1.html b/builds/2.3.26-nightly/versions_2_0RC1.html
deleted file mode 100644
index c6de54a..0000000
--- a/builds/2.3.26-nightly/versions_2_0RC1.html
+++ /dev/null
@@ -1,268 +0,0 @@
-<!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.0 RC1 - 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.0 RC1">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/versions_2_0RC1.html">
-<link rel="canonical" href="http://freemarker.org/docs/versions_2_0RC1.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_0RC1.html"><span itemprop="name">2.0 RC1</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.0 RC1"];</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_0RC2.html"><span>Previous</span></a><a class="paging-arrow next" href="app_install.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="versions_2_0RC1" itemprop="headline">2.0 RC1</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_290" data-menu-target="autoid_290">Support for Numerical operations, both arithmetic and
-boolean, as well as numerical ranges.</a></li><li><a class="page-menu-link" href="#autoid_291" data-menu-target="autoid_291">API Changes</a></li><li><a class="page-menu-link" href="#autoid_292" data-menu-target="autoid_292">Syntactical Miscellany</a></li></ul> </div><p>The first public release of FreeMarker 2.0 was on 18 March 2002.
- Here is a summary of the changes in the Lazarus release, with respect
- to the last stable release of FreeMarker Classic.</p><p><em>NOTA BENE</em>:</p><p>Despite the changes delineated above, the Lazarus release is
- almost entirely backward-compatible with FreeMarker Classic. We
- believe that <em>most</em> existing code and templates
- that work under FreeMarker Classic will continue working under
- Lazarus, with at most minimal changes. In practice, the most common
- cases where legacy template code is broken will be where assumptions
- were made about numbers and strings being equivalent. Note that in
- FreeMarker 2, 2 + 2 does not result in "22". The String "1" and the
- number 1 are entirely different animals and thus, any code will be
- broken if it relies on the boolean expression ("1"==1) being true.
- There is a "classic compatibility mode" that can be set via:
- <code class="inline-code">Template.setClassCompatibility()</code> that can be set so
- that Lazarus emulates some of the quirky behavior of FreeMarker
- Classic. However, any code that relied on the above "features" of
- FreeMarker classic really should be reworked. You are less likely to
- run into the other incompatibilities that are listed above. If you
- come across any other anomalies, please do tell us about them.</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_290">Support for Numerical operations, both arithmetic and
- boolean, as well as numerical ranges.</h2>
-
-
- <ul>
- <li>
- <p>Scalars can now be either strings or numbers. (In
- FreeMarker Classic all scalars were strings.) The basic
- operations allowed are addition, subtraction, multiplication,
- division, and modulus using the <code class="inline-code">+</code>,
- <code class="inline-code">-</code>, <code class="inline-code">*</code>,
- <code class="inline-code">/</code>, and <code class="inline-code">%</code> operators
- respectively. Arbitrary-precision arithmetic with integers and
- floating point numbers are provided. Though our goal is
- definitely to follow the principle of least surprise, for
- backward compatibility, the <code class="inline-code">+</code> operator still
- is used for string concatenation. If either the left hand side
- or the right hand side of <code class="inline-code">lhs + rhs</code> is
- non-numerical, we revert to interpreting this as string
- concatenation. Thus, in FreeMarker 2, 2+2 evaluates to the
- number 4, while any of "2"+2 or 2+"2" or "2"+"2" evaluate to the
- string "22". In FreeMarker Classic, rather embarrassingly, all
- of the above, including 2+2, evaluated to the string "22". An
- attempt to use any other arithmetic operator besides the
- <code class="inline-code">+</code> with non-numerical operands will cause an
- exception to be thrown.</p>
- </li>
-
- <li>
- <p>Output of a numerical expression can be made explicit via
- the alternative <code class="inline-code">#{....}</code> syntax. If the
- expression within the curly parentheses does not evaluate to a
- numerical value, an exception is thrown. The older ${....}
- syntax can evaluate to either a number or a string. In general,
- if, for logical reasons, the output <em>must</em> be
- numerical, it is preferable to use the #{...} syntax, since it
- adds an extra sanity check. Note that if, by some miracle, the
- character sequence "#{" occurs in your template, you will have
- to use a workaround to prevent problems. (The <noparse>
- directive is one possibility.)</p>
- </li>
-
- <li>
- <p>In this release, there is a facility for specifying the
- number of digits to show after the decimal point. The following
- code specifies to show at least 3 digits after the decimal point
- but not more than 6. This is optional. This option is only
- available if you use the #{...} syntax.</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">#{foo + bar ; m3M6} </pre></div>
-
- <p>(Note that the above is something of a stopgap measure.
- Future releases will move toward supporting fully
- internationalization and localization of number and currency
- formatting.</p>
- </li>
-
- <li>
- <p>Numerical expressions can be used in boolean expressions
- via the comparison operators: <code class="inline-code">lt</code>,
- <code class="inline-code">gt</code>, <code class="inline-code">lte</code>, and
- <code class="inline-code">gte</code>. In the web space, where FreeMarker is
- most used in practice, using the more natural operators such as
- < and > would tend to confuse HTML-oriented editors. An
- attempt to compare non-numerical expressions using these
- operators leads to a <code class="inline-code">TemplateException</code> being
- thrown. If, by some coincidence, you have variables named "lt",
- "gt", "lte", or "gte", you will have to change their names,
- since they are now keywords in the language.</p>
- </li>
-
- <li>
- <p>Numerical ranges are supported.</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list 1990..2001 as year>
- blah blah in the year ${year} blah
-</#list> </pre></div>
-
- <p>The left hand and right hand sides of the
- <code class="inline-code">..</code> operator must be numerical, or an
- exception is thrown. They also need not be literal numbers, but
- can be more complex expressions that evaluate to a numerical
- scalar value. Note that it is also possible to write a range
- that descends in value:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list 2001..1990 as year>
- blah blah in the year ${year} blah blah
-</#list> </pre></div>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_291">API Changes</h2>
-
-
- <ul>
- <li>
- <p>The <code class="inline-code">TemplateNumberModel</code> interface and
- the <code class="inline-code">SimpleNumber</code> implementation were added to
- support exposing numerical values.</p>
- </li>
-
- <li>
- <p>The <code class="inline-code">TemplateListModel</code> API in FreeMarker
- Classic had some design problems -- particularly in terms of
- supporting thread-safe code. It has been deprecated in favor of
- the following API's: <code class="inline-code">TemplateCollectionModel</code>
- and <code class="inline-code">TemplateSequenceModel</code>. The
- <code class="inline-code">SimpleList</code> class was refactored to implement
- the above interfaces (and paradoxically, does not implement the
- TemplateListModel interface.) Code that uses the deprecated
- <code class="inline-code">TemplateListModel</code> should be
- refactored.</p>
- </li>
-
- <li>
- <p>The Expose Package by Attila Szegedi has been made an
- integral part of the FreeMarker distribution and is now under
- the freemarker.ext.* hierarchy. This package provides advanced
- models for representing arbitrary Java objects as template
- models, for representing XML documents as template models, as
- well as classes to facilitate the integration of FreeMarker with
- servlets and Ant.</p>
- </li>
-
- <li>
- <p>In FreeMarker Classic, there were some utility classes
- such as <code class="inline-code">freemarker.template.utility.Addition</code>
- etcetera that existed as workarounds for the lack of numerical
- operations in FreeMarker. Those have been removed and will
- probably not be missed.</p>
- </li>
-
- <li>
- <p>In FreeMarker Classic, the <code class="inline-code">SimpleScalar</code>
- object was mutable, it had a <code class="inline-code">setValue</code> method.
- This was fairly obviously a design mistake. Any code that relied
- on this must be refactored. Note that in this release, both
- <code class="inline-code">SimpleScalar</code> and the newly introduced
- <code class="inline-code">SimpleNumber</code> are both immutable and
- final.</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_292">Syntactical Miscellany</h2>
-
-
- <ul>
- <li>
- <p>The if-elseif-else syntax was introduced. FreeMarker
- classic only had if-else. This construct should probably (in the
- opinion of the author of this document -- Revusky) be used in
- preference to switch-case since the switch-case with
- fall-through is a notoriously error-prone construct for most
- mortal men.</p>
- </li>
-
- <li>
- <p>You can now do a multiple assignment in one
- <assign...> directive. For example: <code class="inline-code"><assign x
- = 1, y = price*items, message="foo"></code></p>
- </li>
-
- <li>
- <p>A scalar will no longer be interpreted as a one-item list
- in a <list...> or <#foreach...> block. If you have
- code that relied on this feature, there is an easy workaround,
- since you can simply define a list literal with exactly one
- item.</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"> <assign y=[x]>
- <strong>and then...</strong>
- <list y as item>...</list> </pre></div>
- </li>
- </ul>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_0RC2.html"><span>Previous</span></a><a class="paging-arrow next" href="app_install.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/versions_2_0RC2.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_0RC2.html b/builds/2.3.26-nightly/versions_2_0RC2.html
deleted file mode 100644
index 618427e..0000000
--- a/builds/2.3.26-nightly/versions_2_0RC2.html
+++ /dev/null
@@ -1,219 +0,0 @@
-<!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.0 RC2 - 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.0 RC2">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/versions_2_0RC2.html">
-<link rel="canonical" href="http://freemarker.org/docs/versions_2_0RC2.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_0RC2.html"><span itemprop="name">2.0 RC2</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.0 RC2"];</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_0RC3.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_0RC1.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="versions_2_0RC2" itemprop="headline">2.0 RC2</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_288" data-menu-target="autoid_288">Changes to Template Language</a></li><li><a class="page-menu-link" href="#autoid_289" data-menu-target="autoid_289">API Changes</a></li></ul> </div><p>FreeMarker 2.0 RC 2 was released on 4 April 2002. Here is a
- summary of changes wrt to the first release.</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_288">Changes to Template Language</h2>
-
-
- <ul>
- <li>
- <p>Certain built-in functionality is provided via a new
- operator, '?'. Thus, <code class="inline-code">myList?size</code> provides the
- number of elements in a list. Similarly,
- <code class="inline-code">myString?length</code> provides the length of a
- string, <code class="inline-code">myString?upper_case</code> puts the string
- all in capital letters, and <code class="inline-code">myHash?keys</code>
- provides a sequence containing the keys in the hash. See <a href="ref_builtins.html">Template Language Reference/Built-in Reference</a> for list of all available
- built-ins.</p>
- </li>
-
- <li>
- <p>Numerical comparisons can now be made using the "natural"
- operators < and > but there are also "web-safe"
- alternatives, such as <em>\lt</em> and
- <em>\gt</em>, since the use of these characters may
- confuse HTML editors and parsers. Note that these changed
- between rc1 and rc2, they now start with a backslash. A little
- asymmetry is the fact that if you use the natural greater-than
- or greater-than-or-equals operators (i.e. > or >=) the
- expression must be in parentheses. With any other operator, the
- parentheses are optional.</p>
- </li>
-
- <li>
- <p>Within an iteration loop -- i.e. a
- <code class="inline-code">foreach</code> or a <code class="inline-code">list</code> block --
- the current count in the loop is available as the special
- variable
- <code class="inline-code"><em class="code-color">index</em>_count</code>. where
- <em>index</em> is the name of the variable in
- the iteration. A boolean variable called
- <code class="inline-code"><em class="code-color">index</em>_has_next</code> is
- also defined that indicates whether there are any more items in
- the iteration after this one. Note that the index starts at
- zero, so you will often be adding one to it in practice.</p>
- </li>
-
- <li>
- <p>The <code class="inline-code"><#break></code> directive can now be
- used to break out of a <code class="inline-code"><#foreach...></code> or
- a <code class="inline-code"><list...></code> loop. (Prior to this
- version, it only worked within a switch-case block.) There is a
- new directive called <code class="inline-code"><#stop></code> that, when
- encountered, simply halts processing of the template. This can
- be useful for debugging purposes.</p>
- </li>
-
- <li>
- <p>When invoking java methods that have been exposed to the
- page, using the code in freemarker.ext.*, there are built-ins
- that allow you to indicate the numerical type that you wish to
- pass as the value. For instance, if you had two methods, one
- that takes an int and another that takes a long, and you wanted
- to pass in a value, you would have to specify which method.
- <code class="inline-code">myMethod(1?int)</code> or
- <code class="inline-code">myMethod(1?long)</code>. This is unnecessary if
- there is only one method of the given name.</p>
- </li>
-
- <li>
- <p>Ranges can be used to get the sublist from a list or the
- substring of a string. For example:
- <code class="inline-code">myList[0..3]</code> will return items 0 through 3 of
- the list in question. Or, for example, you could get all the
- elements of the list except for the first and last ones via:
- <code class="inline-code">myList[1..(myList?size-2)]</code></p>
- </li>
-
- <li>
- <p>Or we could get the first 6 characters of a string via
- <code class="inline-code">myString[0..5]</code></p>
- </li>
-
- <li>
- <p>Lists can be concatenated using the '+' operator.
- Previously, this overloading of '+' only applied to
- strings.</p>
- </li>
-
- <li>
- <p>An attempt to compare a number to a string now throws an
- exception, since it is indicative of a coding error. Note that
- there is a backward compatibility mode that can be set (see
- below) that loosens this up in order to be able to process
- legacy templates.</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_289">API Changes</h2>
-
-
- <ul>
- <li>
- <p>The <code class="inline-code">TemplateSequenceModel</code> interface now
- has a <code class="inline-code">size()</code> method for getting the number of
- elements in the sequence in question.</p>
- </li>
-
- <li>
- <p>The <code class="inline-code">TemplateModelIterator</code> interface now
- has a <code class="inline-code">hasNext()</code> method.</p>
- </li>
-
- <li>
- <p>The default sequence and hash implementations,
- <code class="inline-code">freemarker.template.SimpleSequence</code> and
- <code class="inline-code">freemarker.template.SimpleHash</code> are now
- unsynchronized. If you need the methods to be synchronized, you
- can get a synchronized wrapper via the
- <code class="inline-code">synchronizedWrapper()</code> in either class.</p>
- </li>
-
- <li>
- <p>The <code class="inline-code">freemarker.utility.ExtendedList</code> and
- <code class="inline-code">freemarker.utility.ExtendedHash</code> classes were
- removed, since all of the extra keys that it defined are now
- available using the appropriate '?' built-in operation, i.e.
- <code class="inline-code">myHash?keys</code> or <code class="inline-code">myList?size</code>
- or <code class="inline-code">myList?last</code>.</p>
- </li>
-
- <li>
- <p>There is a method in
- <code class="inline-code">java.freemarker.Configuration</code> named
- <code class="inline-code">setDebugMode()</code> which allows you to decide
- whether stack traces are simply output to the web client (the
- best situation in development) or thrown back to the caller to
- be handled more gracefully (the best situation in
- production).</p>
- </li>
-
- <li>
- <p>There is a flag that can be set to turn on a processing
- mode that is more backward-compatible with FreeMarker Classic.
- This is off by default, but you can set it via
- <code class="inline-code">Template.setClassicCompatibility(true)</code>. What
- this does is that it allows scalars to be treated as a
- single-item list in a list directive. Also, it allows somewhat
- more looseness about types. In FreeMarker 1.x, <code class="inline-code"><#if
- x=="1"></code> and <code class="inline-code"><#if x==1></code>
- were in fact equivalent. This meant that legacy templates might
- tend to be slack about this. If classic compatibility is not
- set, an attempt to compare the string "1" with the number 1 will
- result in an exception being thrown. (Note that it is preferable
- to get your templates working without the backward compatibility
- flag, since it usually will require only minor changes. However,
- for people with a lot of templates and no time to check over
- them, this flag may be of use.)</p>
- </li>
- </ul>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_0RC3.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_0RC1.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/versions_2_0RC3.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_0RC3.html b/builds/2.3.26-nightly/versions_2_0RC3.html
deleted file mode 100644
index a378259..0000000
--- a/builds/2.3.26-nightly/versions_2_0RC3.html
+++ /dev/null
@@ -1,138 +0,0 @@
-<!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.0 RC3 - 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.0 RC3">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/versions_2_0RC3.html">
-<link rel="canonical" href="http://freemarker.org/docs/versions_2_0RC3.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_0RC3.html"><span itemprop="name">2.0 RC3</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.0 RC3"];</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_0.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_0RC2.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="versions_2_0RC3" itemprop="headline">2.0 RC3</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_285" data-menu-target="autoid_285">Bug Fixes</a></li><li><a class="page-menu-link" href="#autoid_286" data-menu-target="autoid_286">Changes to the Template Language</a></li><li><a class="page-menu-link" href="#autoid_287" data-menu-target="autoid_287">API changes</a></li></ul> </div><p>FreeMarker 2.0 RC3 was released on 11 April 2002. This release
- was primarily devoted to fixing bugs that were reported in RC2.</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_285">Bug Fixes</h2>
-
-
- <ul>
- <li>
- <p>Variables defined in an <include...> were not
- available in the enclosing page. This has been fixed.</p>
- </li>
-
- <li>
- <p>The JavaCC parser was not configured to handle Unicode
- input correctly. Now, Unicode support is working.</p>
- </li>
-
- <li>
- <p>There was a bug when comparing a number with null. It
- should have returned false, but threw an exception instead. This
- has been fixed.</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_286">Changes to the Template Language</h2>
-
-
- <ul>
- <li>
- <p>The syntax of the include directive has changed. To
- indicate an unparsed include file, you do as follows:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><include "included.html" ; parsed="n" ></pre></div>
-
- <p>You can also indicate the encoding of the included file
- this way:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"> <include "included.html" ; encoding="ISO-8859-5"></pre></div>
- </li>
-
- <li>
- <p>The built-in myString?trim was added for trimming the
- leading and trailing white-space from strings.</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_287">API changes</h2>
-
-
- <ul>
- <li>
- <p>The TemplateEventAdapter machinery was taken out. This was
- never set up in a very useful manner and we anticipate that
- version 2.1 will have more complete support for logging
- events.</p>
- </li>
-
- <li>
- <p>The template caching mechanism was streamlined and
- simplified.</p>
- </li>
-
- <li>
- <p>The FileTemplateCache can now be configured to load files
- relative to a class loader, using the Class.getResource() call.
- This allows templates to be bundled up in .jar files or in a
- .war file for easy deployment of web-based apps.</p>
- </li>
- </ul>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_0.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_0RC2.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>\u20132017
-<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>
[50/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/alphaidx.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/alphaidx.html b/builds/2.3.26-nightly/alphaidx.html
deleted file mode 100644
index cd5df16..0000000
--- a/builds/2.3.26-nightly/alphaidx.html
+++ /dev/null
@@ -1,1695 +0,0 @@
-<!doctype html>
-<!-- Generated by FreeMarker/Docgen from DocBook -->
-<html lang="en" class="page-type-index">
-<head prefix="og: http://ogp.me/ns#">
-<meta charset="utf-8">
-<title>Alphabetical Index - 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="Alphabetical Index">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/alphaidx.html">
-<link rel="canonical" href="http://freemarker.org/docs/alphaidx.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="alphaidx.html"><span itemprop="name">Alphabetical Index</span></a></li></ul><div class="bookmarks" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul class="bookmark-list"><li>Alpha. index</li><li><a href="gloss.html">Glossary</a></li><li><a href="dgui_template_exp.html#exp_cheatsheet">Expre
ssions</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","Alphabetical Index"];</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="gloss.html"><span>Previous</span></a><span class="paging-arrow disabled next"><span>Next</span></span></div><div class="title-wrapper">
-<h1 class="content-header header-part" id="alphaidx" itemprop="headline">Alphabetical Index</h1>
-</div></div>
- <p>
-<a href="#idx_x24">$</a> | <a href="#idx_x23">#</a> | <a href="#idx_x3C"><</a> | <a href="#idx_A">A</a> | <a href="#idx_B">B</a> | <a href="#idx_C">C</a> | <a href="#idx_D">D</a> | <a href="#idx_E">E</a> | <a href="#idx_F">F</a> | <a href="#idx_G">G</a> | <a href="#idx_H">H</a> | <a href="#idx_I">I</a> | <a href="#idx_J">J</a> | <a href="#idx_K">K</a> | <a href="#idx_L">L</a> | <a href="#idx_M">M</a> | <a href="#idx_N">N</a> | <a href="#idx_O">O</a> | <a href="#idx_P">P</a> | <a href="#idx_R">R</a> | <a href="#idx_S">S</a> | <a href="#idx_T">T</a> | <a href="#idx_U">U</a> | <a href="#idx_V">V</a> | <a href="#idx_W">W</a> | <a href="#idx_X">X</a> </p>
-
-<div class="indexdiv">
-<a name="idx_x24"></a>
-<h2 class="indexLabel">$</h2>
-<dl>
- <dt>
- ${...}, <a href="dgui_template_valueinsertion.html">Interpolations</a>
- </dt>
-</dl></div>
-<div class="indexdiv">
-<a name="idx_x23"></a>
-<h2 class="indexLabel">#</h2>
-<dl>
- <dt>
- #, <a href="dgui_template_overallstructure.html">Overall structure</a>,
-<a href="dgui_template_directives.html">Directives</a>
- </dt>
- <dt>
- #{...}, <a href="ref_depr_numerical_interpolation.html">#{...}: Numerical interpolation</a>
- </dt>
-</dl></div>
-<div class="indexdiv">
-<a name="idx_x3C"></a>
-<h2 class="indexLabel"><</h2>
-<dl>
- <dt>
- <#...>, <a href="dgui_template_directives.html">Directives</a>
- </dt>
- <dt>
- <#--...-->, <a href="dgui_template_overallstructure.html">Overall structure</a>
- </dt>
-</dl></div>
-<div class="indexdiv">
-<a name="idx_A"></a>
-<h2 class="indexLabel">A</h2>
-<dl>
- <dt>
- ABC, <a href="ref_builtins_number.html#ref_builtin_lower_abc">lower_abc</a>,
-<a href="ref_builtins_number.html#ref_builtin_upper_abc">upper_abc</a>
- </dt>
- <dt>
- abs built-in, <a href="ref_builtins_number.html#ref_builtin_abs">abs</a>
- </dt>
- <dt>
- absolute value, <a href="ref_builtins_number.html#ref_builtin_abs">abs</a>
- </dt>
- <dt>
- acquisition, <a href="ref_directive_include.html#ref_directive_include_acquisition">Using acquisition</a>
- </dt>
- <dt>
- adding hashes, <a href="dgui_template_exp.html#dgui_template_exp_hashop_cat">Concatenation</a>
- </dt>
- <dt>
- adding sequences, <a href="dgui_template_exp.html#dgui_template_exp_sequenceop_cat">Concatenation</a>
- </dt>
- <dt>
- adding strings, <a href="dgui_template_exp.html#dgui_template_exp_stringop_interpolation">Interpolation and concatenation</a>
- </dt>
- <dt>
- addition, <a href="dgui_template_exp.html#dgui_template_exp_arit">Arithmetical calculations</a>
- </dt>
- <dt>
- alphabetical ordinals, <a href="ref_builtins_number.html#ref_builtin_lower_abc">lower_abc</a>,
-<a href="ref_builtins_number.html#ref_builtin_upper_abc">upper_abc</a>
- </dt>
- <dt>
- alternative syntax, <a href="dgui_misc_alternativesyntax.html">Alternative (square bracket) syntax</a>
- </dt>
- <dt>
- ancestors built-in, <a href="ref_builtins_node.html#ref_builtin_ancestors">ancestors</a>
- </dt>
- <dt>
- and, <a href="dgui_template_exp.html#dgui_template_exp_logicalop">Logical operations</a>
- </dt>
- <dt>
- ant task, <a href="pgui_misc_ant.html">Using FreeMarker with Ant</a>
- </dt>
- <dt>
- api built-in, <a href="ref_builtins_expert.html#ref_buitin_api_and_has_api">api, has_api</a>
- </dt>
- <dt>
- arithmetic, <a href="dgui_template_exp.html#dgui_template_exp_arit">Arithmetical calculations</a>
- </dt>
- <dt>
- assign directive, <a href="ref_directive_assign.html">assign</a>
- </dt>
- <dt>
- attempt directive, <a href="ref_directive_attempt.html">attempt, recover</a>
- </dt>
- <dt>
- auto_esc, <a href="ref_specvar.html">Special Variable Reference</a>
- </dt>
- <dt>
- auto-escaping, <a href="dgui_misc_autoescaping.html">Auto-escaping and output formats</a>,
-<a href="pgui_config_outputformatsautoesc.html">Associating output formats with templates</a>,
-<a href="ref_directive_autoesc.html">autoesc</a>,
-<a href="ref_directive_noautoesc.html">noautoesc</a>,
-<a href="ref_directive_outputformat.html">outputformat</a>
- </dt>
- <dt>
- autoesc directive, <a href="ref_directive_autoesc.html">autoesc</a>
- </dt>
-</dl></div>
-<div class="indexdiv">
-<a name="idx_B"></a>
-<h2 class="indexLabel">B</h2>
-<dl>
- <dt>
- backward compatibility, <a href="pgui_config_incompatible_improvements.html">The "incompatible improvements" setting</a>
- </dt>
- <dt>
- beans </dt>
- <dd><dl>
- <dt>wrapping, <a href="pgui_misc_beanwrapper.html">Bean wrapper</a></dt>
- </dl></dd>
- <dt>
- BeansWrapper, <a href="pgui_misc_beanwrapper.html">Bean wrapper</a>
- </dt>
- <dt>
- boolean </dt>
- <dd><dl>
- <dt>built-ins, <a href="ref_builtins_boolean.html">Built-ins for booleans</a></dt>
- <dt>Java side, <a href="pgui_datamodel_scalar.html">Scalars</a></dt>
- <dt>literal, <a href="dgui_template_exp.html#dgui_template_exp_direct_boolean">Booleans</a></dt>
- <dt>operations, <a href="dgui_template_exp.html#dgui_template_exp_logicalop">Logical operations</a></dt>
- <dt>printing, <a href="ref_builtins_boolean.html#ref_builtin_string_for_boolean">string (when used with a boolean value)</a></dt>
- <dt>the FTL value type, <a href="dgui_datamodel_types.html#dgui_datamodel_scalar">Scalars</a></dt>
- </dl></dd>
- <dt>
- boolean_format, <a href="ref_directive_setting.html#autoid_125">setting</a>
- </dt>
- <dt>
- boolean built-in, <a href="ref_builtins_string.html#ref_builtin_boolean">boolean</a>
- </dt>
- <dt>
- break directive, <a href="ref_directive_list.html#autoid_106">list, else, items, sep, break</a>,
-<a href="ref_directive_switch.html">switch, case, default, break</a>
- </dt>
- <dt>
- built-in, <a href="dgui_template_exp.html#dgui_template_exp_builtin">Built-ins</a>,
-<a href="ref_builtins.html">Built-in Reference</a>,
-<a href="ref_builtins_alphaidx.html">Alphabetical index</a>
- </dt>
- <dt>
- byte built-in, <a href="ref_builtins_expert.html#ref_builtin_numType">byte, double, float, int, long, short</a>
- </dt>
-</dl></div>
-<div class="indexdiv">
-<a name="idx_C"></a>
-<h2 class="indexLabel">C</h2>
-<dl>
- <dt>
- caching, <a href="pgui_config_templateloading.html#pgui_config_templateloading_caching">Template caching</a>
- </dt>
- <dt>
- call a method, <a href="dgui_template_exp.html#dgui_template_exp_methodcall">Method call</a>
- </dt>
- <dt>
- cap_first built-in, <a href="ref_builtins_string.html#ref_builtin_cap_first">cap_first</a>
- </dt>
- <dt>
- capitalize built-in, <a href="ref_builtins_string.html#ref_builtin_capitalize">capitalize</a>
- </dt>
- <dt>
- case directive, <a href="ref_directive_switch.html">switch, case, default, break</a>
- </dt>
- <dt>
- catch-all parameter, <a href="ref_directive_macro.html#autoid_112">macro, nested, return</a>
- </dt>
- <dt>
- c built-in, <a href="ref_builtins_number.html#ref_builtin_c">c (when used with numerical value)</a>,
-<a href="ref_builtins_boolean.html#ref_builtin_c_boolean">c (when used with boolean)</a>
- </dt>
- <dt>
- ceiling built-in, <a href="ref_builtins_number.html#ref_builtin_rounding">round, floor, ceiling</a>
- </dt>
- <dt>
- charAt, <a href="dgui_template_exp.html#dgui_template_exp_get_character">Getting a character</a>
- </dt>
- <dt>
- charset, <a href="pgui_misc_charset.html">Charset issues</a>,
-<a href="ref_directive_ftl.html">ftl</a>
- </dt>
- <dt>
- children built-in, <a href="ref_builtins_node.html#ref_builtin_children">children</a>
- </dt>
- <dt>
- chop_linebreak built-in, <a href="ref_builtins_string.html#ref_builtin_chop_linebreak">chop_linebreak</a>
- </dt>
- <dt>
- chunk built-in, <a href="ref_builtins_sequence.html#ref_builtin_chunk">chunk</a>
- </dt>
- <dt>
- classic_compatible, <a href="ref_directive_setting.html#autoid_125">setting</a>
- </dt>
- <dt>
- collection </dt>
- <dd><dl>
- <dt>Java side, <a href="pgui_datamodel_parent.html#autoid_34">Containers</a></dt>
- <dt>the FTL value type, <a href="dgui_datamodel_types.html#dgui_datamodel_container">Containers</a></dt>
- </dl></dd>
- <dt>
- columnar printing of sequences, <a href="ref_builtins_sequence.html#ref_builtin_chunk">chunk</a>
- </dt>
- <dt>
- command-line, <a href="pgui_misc_ant.html">Using FreeMarker with Ant</a>
- </dt>
- <dt>
- comment, <a href="dgui_template_overallstructure.html">Overall structure</a>
- </dt>
- <dt>
- comparison operators, <a href="dgui_template_exp.html#dgui_template_exp_comparison">Comparison</a>
- </dt>
- <dt>
- compress directive, <a href="ref_directive_compress.html">compress</a>
- </dt>
- <dt>
- concatenate hashes, <a href="dgui_template_exp.html#dgui_template_exp_hashop_cat">Concatenation</a>
- </dt>
- <dt>
- concatenate sequences, <a href="dgui_template_exp.html#dgui_template_exp_sequenceop_cat">Concatenation</a>
- </dt>
- <dt>
- concatenate strings, <a href="dgui_template_exp.html#dgui_template_exp_stringop_interpolation">Interpolation and concatenation</a>
- </dt>
- <dt>
- configuration, <a href="pgui_quickstart_createconfiguration.html">Create a configuration instance</a>
- </dt>
- <dt>
- Configuration, <a href="pgui_config.html">The Configuration</a>
- </dt>
- <dt>
- constant, <a href="dgui_template_exp.html#dgui_template_exp_direct">Specify values directly</a>
- </dt>
- <dt>
- containers </dt>
- <dd><dl>
- <dt>Java side, <a href="pgui_datamodel_parent.html">Containers</a></dt>
- </dl></dd>
- <dt>
- contains built-in, <a href="ref_builtins_string.html#ref_builtin_contains">contains</a>
- </dt>
- <dt>
- converting between types, <a href="ref_builtins_string.html#ref_builtin_boolean">boolean</a>,
-<a href="ref_builtins_string.html#ref_builtin_string_date">date, time, datetime</a>,
-<a href="ref_builtins_string.html#ref_builtin_number">number</a>,
-<a href="ref_builtins_number.html#ref_builtin_c">c (when used with numerical value)</a>,
-<a href="ref_builtins_number.html#ref_builtin_string_for_number">string (when used with a numerical value)</a>,
-<a href="ref_builtins_date.html#ref_builtin_date_datetype">date, time, datetime (when used with a date/time/date-time
- value)</a>,
-<a href="ref_builtins_date.html#ref_builtin_string_for_date">string (when used with a date/time/date-time value)</a>,
-<a href="ref_builtins_boolean.html#ref_builtin_c_boolean">c (when used with boolean)</a>,
-<a href="ref_builtins_boolean.html#ref_builtin_string_for_boolean">string (when used with a boolean value)</a>,
-<a href="ref_builtins_expert.html#ref_builtin_numType">byte, double, float, int, long, short</a>,
-<a href="ref_builtins_expert.html#ref_builtin_numToDate">number_to_date, number_to_time, number_to_datetime</a>
- </dt>
- <dt>
- converting date to long, <a href="ref_builtins_expert.html#ref_builtin_numType">byte, double, float, int, long, short</a>
- </dt>
- <dt>
- converting date to string, <a href="ref_builtins_date.html#ref_builtin_string_for_date">string (when used with a date/time/date-time value)</a>
- </dt>
- <dt>
- converting long to date, <a href="ref_builtins_expert.html#ref_builtin_numToDate">number_to_date, number_to_time, number_to_datetime</a>
- </dt>
- <dt>
- converting string to boolean, <a href="ref_builtins_string.html#ref_builtin_boolean">boolean</a>
- </dt>
- <dt>
- converting string to date, <a href="ref_builtins_string.html#ref_builtin_string_date">date, time, datetime</a>
- </dt>
- <dt>
- converting string to number, <a href="ref_builtins_string.html#ref_builtin_number">number</a>
- </dt>
- <dt>
- converting string to time, <a href="ref_builtins_string.html#ref_builtin_string_date">date, time, datetime</a>
- </dt>
- <dt>
- converting time to string, <a href="ref_builtins_date.html#ref_builtin_string_for_date">string (when used with a date/time/date-time value)</a>
- </dt>
- <dt>
- counter built-in, <a href="ref_builtins_loop_var.html#ref_builtin_counter">counter</a>
- </dt>
- <dt>
- current_template_name, <a href="ref_specvar.html">Special Variable Reference</a>
- </dt>
- <dt>
- current date-time, <a href="ref_specvar.html">Special Variable Reference</a>
- </dt>
- <dt>
- custom directive, <a href="dgui_misc_userdefdir.html">Defining your own directives</a>
- </dt>
- <dt>
- custom object wrapper, <a href="pgui_datamodel_objectWrapper.html#pgui_datamodel_customObjectWrappingExample">Custom object wrapping example</a>
- </dt>
- <dt>
- custom tags, <a href="pgui_misc_servlet.html#autoid_63">Using FreeMarker with servlets</a>
- </dt>
-</dl></div>
-<div class="indexdiv">
-<a name="idx_D"></a>
-<h2 class="indexLabel">D</h2>
-<dl>
- <dt>
- data-model, <a href="dgui_quickstart_basics.html">Template + data-model = output</a>
- </dt>
- <dd><dl>
- <dt>assembling with Java, <a href="pgui_quickstart_createdatamodel.html">Create a data-model</a></dt>
- <dt>assembling with Java, without object wrapper, <a href="pgui_datamodel_basics.html">Basics</a></dt>
- </dl></dd>
- <dt>
- date </dt>
- <dd><dl>
- <dt>built-ins, <a href="ref_builtins_date.html">Built-ins for date/time/date-time values</a></dt>
- <dt>Java API related difficulties, <a href="pgui_datamodel_scalar.html#autoid_31">Scalars</a></dt>
- <dt>Java side, <a href="pgui_datamodel_scalar.html">Scalars</a></dt>
- <dt>the FTL value type, <a href="dgui_datamodel_types.html#dgui_datamodel_scalar">Scalars</a></dt>
- </dl></dd>
- <dt>
- date_format, <a href="ref_directive_setting.html#topic_date_format_settings">setting</a>
- </dt>
- <dt>
- date built-in, <a href="ref_builtins_string.html#ref_builtin_string_date">date, time, datetime</a>,
-<a href="ref_builtins_date.html#ref_builtin_date_datetype">date, time, datetime (when used with a date/time/date-time
- value)</a>
- </dt>
- <dt>
- datetime </dt>
- <dd><dl>
- <dt>built-ins, <a href="ref_builtins_date.html">Built-ins for date/time/date-time values</a></dt>
- </dl></dd>
- <dt>
- date-time </dt>
- <dd><dl>
- <dt>the FTL value type, <a href="dgui_datamodel_types.html#dgui_datamodel_scalar">Scalars</a></dt>
- </dl></dd>
- <dt>
- datetime_format, <a href="ref_directive_setting.html#topic_date_format_settings">setting</a>
- </dt>
- <dt>
- datetime built-in, <a href="ref_builtins_string.html#ref_builtin_string_date">date, time, datetime</a>,
-<a href="ref_builtins_date.html#ref_builtin_date_datetype">date, time, datetime (when used with a date/time/date-time
- value)</a>
- </dt>
- <dt>
- date to long, <a href="ref_builtins_expert.html#ref_builtin_numType">byte, double, float, int, long, short</a>
- </dt>
- <dt>
- date to string, <a href="ref_builtins_date.html#ref_builtin_string_for_date">string (when used with a date/time/date-time value)</a>
- </dt>
- <dt>
- default built-in, <a href="ref_depr_builtin.html">List of deprecated built-ins</a>
- </dt>
- <dt>
- default directive, <a href="ref_directive_switch.html">switch, case, default, break</a>
- </dt>
- <dt>
- DefaultObjectWrapper, <a href="pgui_datamodel_objectWrapper.html#pgui_datamodel_defaultObjectWrapper">The default object wrapper</a>
- </dt>
- <dd><dl>
- <dt>extending, <a href="pgui_datamodel_objectWrapper.html#pgui_datamodel_customObjectWrappingExample">Custom object wrapping example</a></dt>
- </dl></dd>
- <dt>
- default value operator, <a href="dgui_template_exp.html#dgui_template_exp_missing_default">Default value operator</a>
- </dt>
- <dt>
- defining macro, <a href="dgui_misc_userdefdir.html#autoid_19">Defining your own directives</a>
- </dt>
- <dt>
- deprecated, <a href="ref_deprecated.html">Deprecated FTL constructs</a>
- </dt>
- <dt>
- directive, <a href="dgui_template_directives.html">Directives</a>,
-<a href="ref_directives.html">Directive Reference</a>,
-<a href="ref_directive_alphaidx.html">Alphabetical index</a>
- </dt>
- <dd><dl>
- <dt>the FTL value type, <a href="dgui_datamodel_types.html#dgui_datamodel_userdefdir">User-defined directives</a></dt>
- <dt>user-defined, <a href="dgui_misc_userdefdir.html">Defining your own directives</a></dt>
- </dl></dd>
- <dt>
- directives </dt>
- <dd><dl>
- <dt>Java side, <a href="pgui_datamodel_directive.html">Directives</a></dt>
- </dl></dd>
- <dt>
- division, <a href="dgui_template_exp.html#dgui_template_exp_arit">Arithmetical calculations</a>
- </dt>
- <dt>
- double built-in, <a href="ref_builtins_expert.html#ref_builtin_numType">byte, double, float, int, long, short</a>
- </dt>
-</dl></div>
-<div class="indexdiv">
-<a name="idx_E"></a>
-<h2 class="indexLabel">E</h2>
-<dl>
- <dt>
- else directive, <a href="ref_directive_if.html">if, else, elseif</a>
- </dt>
- <dt>
- else directive inside list, <a href="ref_directive_list.html#autoid_103">list, else, items, sep, break</a>
- </dt>
- <dt>
- elseif directive, <a href="ref_directive_if.html">if, else, elseif</a>
- </dt>
- <dt>
- encoding, <a href="pgui_misc_charset.html">Charset issues</a>,
-<a href="ref_directive_ftl.html">ftl</a>
- </dt>
- <dd><dl>
- <dt>URL, <a href="ref_builtins_string.html#ref_builtin_url">url</a></dt>
- <dt>URL path, <a href="ref_builtins_string.html#ref_builtin_url_path">url_path</a></dt>
- </dl></dd>
- <dt>
- ends_with built-in, <a href="ref_builtins_string.html#ref_builtin_ends_with">ends_with</a>
- </dt>
- <dt>
- ensure_ends_with built-in, <a href="ref_builtins_string.html#ref_builtin_ensure_ends_with">ensure_ends_with</a>,
-<a href="ref_builtins_string.html#ref_builtin_ensure_starts_with">ensure_starts_with</a>
- </dt>
- <dt>
- enum, <a href="pgui_misc_beanwrapper.html#jdk_15_enums">Accessing enums</a>
- </dt>
- <dt>
- error, <a href="ref_specvar.html">Special Variable Reference</a>
- </dt>
- <dt>
- error handling, <a href="dgui_template_exp.html#dgui_template_exp_missing">Handling missing values</a>,
-<a href="pgui_config_errorhandling.html">Error handling</a>,
-<a href="ref_directive_attempt.html">attempt, recover</a>
- </dt>
- <dt>
- escape directive, <a href="ref_directive_escape.html">escape, noescape (deprecated)</a>
- </dt>
- <dt>
- escape sequences, <a href="dgui_template_exp.html#dgui_template_exp_direct_string">Strings</a>
- </dt>
- <dt>
- escaping, <a href="dgui_misc_autoescaping.html">Auto-escaping and output formats</a>,
-<a href="ref_directive_autoesc.html">autoesc</a>,
-<a href="ref_directive_noautoesc.html">noautoesc</a>,
-<a href="ref_directive_outputformat.html">outputformat</a>
- </dt>
- <dd><dl>
- <dt>output, <a href="ref_builtins_string.html#ref_builtin_html">html (deprecated)</a>, <a href="ref_builtins_string.html#ref_builtin_rtf">rtf (deprecated)</a>, <a href="ref_builtins_string.html#ref_builtin_xhtml">xhtml (deprecated)</a>, <a href="ref_builtins_string.html#ref_builtin_xml">xml (deprecated)</a></dt>
- <dt>URL, <a href="ref_builtins_string.html#ref_builtin_url">url</a></dt>
- <dt>URL path, <a href="ref_builtins_string.html#ref_builtin_url_path">url_path</a></dt>
- </dl></dd>
- <dt>
- esc built-in, <a href="ref_builtins_string.html#ref_builtin_esc">esc</a>
- </dt>
- <dt>
- eval, <a href="ref_builtins_expert.html#ref_builtin_eval">eval</a>
- </dt>
- <dt>
- evaluate string, <a href="ref_builtins_expert.html#ref_builtin_eval">eval</a>
- </dt>
- <dt>
- exception handling, <a href="pgui_config_errorhandling.html">Error handling</a>
- </dt>
- <dt>
- existence test operator, <a href="dgui_template_exp.html#dgui_template_exp_missing_test">Missing value test operator</a>
- </dt>
- <dt>
- exists built-in, <a href="ref_depr_builtin.html">List of deprecated built-ins</a>
- </dt>
- <dt>
- expression, <a href="dgui_template_exp.html">Expressions</a>
- </dt>
- <dt>
- extended Java decimal format, <a href="ref_builtins_number.html#topic.extendedJavaDecimalFormat">Extended Java decimal format</a>
- </dt>
-</dl></div>
-<div class="indexdiv">
-<a name="idx_F"></a>
-<h2 class="indexLabel">F</h2>
-<dl>
- <dt>
- fallback directive, <a href="ref_directive_visit.html">visit, recurse, fallback</a>
- </dt>
- <dt>
- FAQ, <a href="app_faq.html">FAQ</a>
- </dt>
- <dt>
- first built-in, <a href="ref_builtins_sequence.html#ref_builtin_first">first</a>
- </dt>
- <dt>
- float built-in, <a href="ref_builtins_expert.html#ref_builtin_numType">byte, double, float, int, long, short</a>
- </dt>
- <dt>
- floor built-in, <a href="ref_builtins_number.html#ref_builtin_rounding">round, floor, ceiling</a>
- </dt>
- <dt>
- flush directive, <a href="ref_directive_flush.html">flush</a>
- </dt>
- <dt>
- format </dt>
- <dd><dl>
- <dt>boolean, <a href="ref_builtins_boolean.html#ref_builtin_c_boolean">c (when used with boolean)</a>, <a href="ref_builtins_boolean.html#ref_builtin_string_for_boolean">string (when used with a boolean value)</a>, <a href="ref_directive_setting.html#autoid_125">setting</a></dt>
- <dt>date, <a href="ref_builtins_date.html#ref_builtin_string_for_date">string (when used with a date/time/date-time value)</a>, <a href="ref_directive_setting.html#topic_date_format_settings">setting</a></dt>
- <dt>date-time, <a href="ref_builtins_date.html#ref_builtin_string_for_date">string (when used with a date/time/date-time value)</a></dt>
- <dt>number, <a href="ref_builtins_number.html#ref_builtin_c">c (when used with numerical value)</a>, <a href="ref_builtins_number.html#ref_builtin_string_for_number">string (when used with a numerical value)</a>, <a href="ref_directive_setting.html#ref.setting.number_format">setting</a></dt>
- <dt>time, <a href="ref_builtins_date.html#ref_builtin_string_for_date">string (when used with a date/time/date-time value)</a></dt>
- <dt>timestamp, <a href="ref_builtins_date.html#ref_builtin_string_for_date">string (when used with a date/time/date-time value)</a></dt>
- </dl></dd>
- <dt>
- format; boolean, <a href="ref_builtins_boolean.html#ref_builtin_then">then</a>
- </dt>
- <dt>
- FTL, <a href="dgui_template_overallstructure.html">Overall structure</a>
- </dt>
- <dt>
- ftl directive, <a href="ref_directive_ftl.html">ftl</a>
- </dt>
- <dt>
- FTL tag, <a href="dgui_template_overallstructure.html">Overall structure</a>,
-<a href="dgui_template_directives.html">Directives</a>
- </dt>
- <dt>
- function directive, <a href="ref_directive_function.html">function, return</a>
- </dt>
-</dl></div>
-<div class="indexdiv">
-<a name="idx_G"></a>
-<h2 class="indexLabel">G</h2>
-<dl>
- <dt>
- get character, <a href="dgui_template_exp.html#dgui_template_exp_get_character">Getting a character</a>
- </dt>
- <dt>
- global directive, <a href="ref_directive_global.html">global</a>
- </dt>
- <dt>
- groups built-in, <a href="ref_builtins_string.html#ref_builtin_groups">groups</a>
- </dt>
-</dl></div>
-<div class="indexdiv">
-<a name="idx_H"></a>
-<h2 class="indexLabel">H</h2>
-<dl>
- <dt>
- handling null-s, <a href="dgui_template_exp.html#dgui_template_exp_missing">Handling missing values</a>
- </dt>
- <dt>
- has_api built-in, <a href="ref_builtins_expert.html#ref_buitin_api_and_has_api">api, has_api</a>
- </dt>
- <dt>
- has_content built-in, <a href="ref_builtins_expert.html#ref_builtin_has_content">has_content</a>
- </dt>
- <dt>
- has_next built-in, <a href="ref_builtins_loop_var.html#ref_builtin_has_next">has_next</a>
- </dt>
- <dt>
- hash </dt>
- <dd><dl>
- <dt>accessing subvariable, <a href="dgui_template_exp.html#dgui_template_exp_var_hash">Retrieving data from a hash</a></dt>
- <dt>built-ins, <a href="ref_builtins_hash.html">Built-ins for hashes</a></dt>
- <dt>concatenate, <a href="dgui_template_exp.html#dgui_template_exp_hashop_cat">Concatenation</a></dt>
- <dt>Java side, <a href="pgui_datamodel_parent.html#autoid_32">Containers</a></dt>
- <dt>key type, <a href="app_faq.html#faq_nonstring_keys">FAQ</a></dt>
- <dt>literal, <a href="dgui_template_exp.html#dgui_template_exp_direct_hash">Hashes</a></dt>
- <dt>modify, <a href="app_faq.html#faq_modify_seq_and_map">FAQ</a></dt>
- <dt>operations, <a href="dgui_template_exp.html#dgui_template_exp_hashop">Hash operations</a></dt>
- <dt>the FTL value type, <a href="dgui_datamodel_types.html#dgui_datamodel_container">Containers</a></dt>
- </dl></dd>
- <dt>
- header, <a href="ref_directive_ftl.html">ftl</a>
- </dt>
- <dt>
- html built-in, <a href="ref_builtins_string.html#ref_builtin_html">html (deprecated)</a>
- </dt>
- <dt>
- HTML encoding, <a href="dgui_misc_autoescaping.html">Auto-escaping and output formats</a>
- </dt>
- <dt>
- HTML escaping, <a href="dgui_misc_autoescaping.html">Auto-escaping and output formats</a>
- </dt>
- <dt>
- HTTP, <a href="pgui_misc_servlet.html">Using FreeMarker with servlets</a>
- </dt>
-</dl></div>
-<div class="indexdiv">
-<a name="idx_I"></a>
-<h2 class="indexLabel">I</h2>
-<dl>
- <dt>
- if_exists built-in, <a href="ref_depr_builtin.html">List of deprecated built-ins</a>
- </dt>
- <dt>
- if directive, <a href="ref_directive_if.html">if, else, elseif</a>
- </dt>
- <dt>
- import directive, <a href="ref_directive_import.html">import</a>
- </dt>
- <dt>
- include </dt>
- <dd><dl>
- <dt>JSP, <a href="pgui_misc_servlet.html#pgui_misc_servlet_include">Including content from other web application
- resources</a></dt>
- <dt>servlet, <a href="pgui_misc_servlet.html#pgui_misc_servlet_include">Including content from other web application
- resources</a></dt>
- </dl></dd>
- <dt>
- include directive, <a href="ref_directive_include.html">include</a>
- </dt>
- <dt>
- incompatible_improvements, <a href="pgui_config_incompatible_improvements.html">The "incompatible improvements" setting</a>
- </dt>
- <dt>
- incompatibleImprovements, <a href="pgui_config_incompatible_improvements.html">The "incompatible improvements" setting</a>
- </dt>
- <dt>
- incompatible improvements, <a href="pgui_config_incompatible_improvements.html">The "incompatible improvements" setting</a>
- </dt>
- <dt>
- incomplatible_improvements, <a href="ref_specvar.html">Special Variable Reference</a>
- </dt>
- <dt>
- index_of built-in, <a href="ref_builtins_string.html#ref_builtin_index_of">index_of</a>
- </dt>
- <dt>
- index built-in, <a href="ref_builtins_loop_var.html#ref_builtin_index">index</a>
- </dt>
- <dt>
- infinite, <a href="ref_builtins_number.html#ref_builtin_is_infinite">is_infinite</a>
- </dt>
- <dt>
- install, <a href="app_install.html">Installing FreeMarker</a>
- </dt>
- <dt>
- instantiating variable, <a href="ref_builtins_expert.html#ref_builtin_new">new</a>
- </dt>
- <dt>
- int built-in, <a href="ref_builtins_expert.html#ref_builtin_numType">byte, double, float, int, long, short</a>
- </dt>
- <dt>
- integer division, <a href="dgui_template_exp.html#dgui_template_exp_arit">Arithmetical calculations</a>
- </dt>
- <dt>
- integer part, <a href="dgui_template_exp.html#dgui_template_exp_arit">Arithmetical calculations</a>
- </dt>
- <dt>
- interpolation, <a href="dgui_template_overallstructure.html">Overall structure</a>,
-<a href="dgui_template_exp.html#dgui_template_exp_stringop_interpolation">Interpolation and concatenation</a>,
-<a href="dgui_template_valueinsertion.html">Interpolations</a>
- </dt>
- <dt>
- interpret built-in, <a href="ref_builtins_expert.html#ref_builtin_interpret">interpret</a>
- </dt>
- <dt>
- is_... built-in, <a href="ref_builtins_expert.html#ref_builtin_isType">is_...</a>
- </dt>
- <dt>
- is_even_item built-in, <a href="ref_builtins_loop_var.html#ref_builtin_is_even_item">is_even_item</a>
- </dt>
- <dt>
- is_first built-in, <a href="ref_builtins_loop_var.html#ref_builtin_is_first">is_first</a>
- </dt>
- <dt>
- is_infinte built-in, <a href="ref_builtins_number.html#ref_builtin_is_infinite">is_infinite</a>
- </dt>
- <dt>
- is_last built-in, <a href="ref_builtins_loop_var.html#ref_builtin_is_last">is_last</a>
- </dt>
- <dt>
- is_nan built-in, <a href="ref_builtins_number.html#ref_builtin_is_nan">is_nan</a>
- </dt>
- <dt>
- is_odd_item built-in, <a href="ref_builtins_loop_var.html#ref_builtin_is_odd_item">is_odd_item</a>
- </dt>
- <dt>
- is null, <a href="dgui_template_exp.html#dgui_template_exp_missing_test">Missing value test operator</a>
- </dt>
- <dt>
- iso_... built-ins, <a href="ref_builtins_date.html#ref_builtin_date_iso">iso_...</a>
- </dt>
- <dt>
- ISO 8601, <a href="ref_directive_setting.html#topic_date_format_settings">setting</a>
- </dt>
- <dt>
- ISO 8601 parsing, <a href="ref_builtins_string.html#ref_builtin_string_date">date, time, datetime</a>
- </dt>
- <dt>
- iso built-in, <a href="ref_builtins_date.html#ref_builtin_date_iso">iso_...</a>
- </dt>
- <dt>
- item_cycle built-in, <a href="ref_builtins_loop_var.html#ref_builtin_item_cycle">item_cycle</a>
- </dt>
- <dt>
- item_parity_cap built-in, <a href="ref_builtins_loop_var.html#ref_builtin_item_parity_cap">item_parity_cap</a>
- </dt>
- <dt>
- item_parity built-in, <a href="ref_builtins_loop_var.html#ref_builtin_item_parity">item_parity</a>
- </dt>
- <dt>
- items directive, <a href="ref_directive_list.html#autoid_104">list, else, items, sep, break</a>
- </dt>
- <dt>
- iteration state, <a href="ref_directive_list.html#autoid_107">list, else, items, sep, break</a>
- </dt>
-</dl></div>
-<div class="indexdiv">
-<a name="idx_J"></a>
-<h2 class="indexLabel">J</h2>
-<dl>
- <dt>
- j_string built-in, <a href="ref_builtins_string.html#ref_builtin_j_string">j_string</a>
- </dt>
- <dt>
- JDBC time zone, <a href="ref_directive_setting.html#autoid_125">setting</a>
- </dt>
- <dt>
- join built-in, <a href="ref_builtins_sequence.html#ref_builtin_join">join</a>
- </dt>
- <dt>
- joining hashes, <a href="dgui_template_exp.html#dgui_template_exp_hashop_cat">Concatenation</a>
- </dt>
- <dt>
- joining sequences, <a href="dgui_template_exp.html#dgui_template_exp_sequenceop_cat">Concatenation</a>
- </dt>
- <dt>
- joining strings, <a href="dgui_template_exp.html#dgui_template_exp_stringop_interpolation">Interpolation and concatenation</a>
- </dt>
- <dt>
- js_string built-in, <a href="ref_builtins_string.html#ref_builtin_js_string">js_string</a>
- </dt>
- <dt>
- json_string built-in, <a href="ref_builtins_string.html#ref_builtin_json_string">json_string</a>
- </dt>
- <dt>
- JSP, <a href="pgui_misc_servlet.html">Using FreeMarker with servlets</a>,
-<a href="app_faq.html#faq_jsp_vs_freemarker">FAQ</a>
- </dt>
- <dd><dl>
- <dt>include, <a href="pgui_misc_servlet.html#pgui_misc_servlet_include">Including content from other web application
- resources</a></dt>
- <dt>taglib, <a href="pgui_misc_servlet.html#autoid_63">Using FreeMarker with servlets</a>, <a href="pgui_misc_servlet.html#autoid_64">Using FreeMarker with servlets</a></dt>
- </dl></dd>
- <dt>
- jython </dt>
- <dd><dl>
- <dt>wrapping, <a href="pgui_misc_jythonwrapper.html">Jython wrapper</a></dt>
- </dl></dd>
-</dl></div>
-<div class="indexdiv">
-<a name="idx_K"></a>
-<h2 class="indexLabel">K</h2>
-<dl>
- <dt>
- keep_after_last built-in, <a href="ref_builtins_string.html#ref_builtin_keep_after_last">keep_after_last</a>
- </dt>
- <dt>
- keep_after built-in, <a href="ref_builtins_string.html#ref_builtin_keep_after">keep_after</a>
- </dt>
- <dt>
- keep_before_last built-in, <a href="ref_builtins_string.html#ref_builtin_keep_before_last">keep_before_last</a>
- </dt>
- <dt>
- keep_before built-in, <a href="ref_builtins_string.html#ref_builtin_keep_before">keep_before</a>
- </dt>
- <dt>
- keys built-in, <a href="ref_builtins_hash.html#ref_builtin_keys">keys</a>
- </dt>
-</dl></div>
-<div class="indexdiv">
-<a name="idx_L"></a>
-<h2 class="indexLabel">L</h2>
-<dl>
- <dt>
- lang, <a href="ref_specvar.html">Special Variable Reference</a>
- </dt>
- <dt>
- language, <a href="ref_specvar.html">Special Variable Reference</a>
- </dt>
- <dt>
- last_index_of built-in, <a href="ref_builtins_string.html#ref_builtin_last_index_of">last_index_of</a>
- </dt>
- <dt>
- last built-in, <a href="ref_builtins_sequence.html#ref_builtin_last">last</a>
- </dt>
- <dt>
- left_pad built-in, <a href="ref_builtins_string.html#ref_builtin_left_pad">left_pad</a>
- </dt>
- <dt>
- length built-in, <a href="ref_builtins_string.html#ref_builtin_length">length</a>
- </dt>
- <dt>
- libraries, <a href="dgui_misc_namespace.html">Namespaces</a>
- </dt>
- <dt>
- license, <a href="app_license.html">License</a>
- </dt>
- <dt>
- list directive, <a href="ref_directive_list.html">list, else, items, sep, break</a>
- </dt>
- <dt>
- listing state, <a href="ref_directive_list.html#autoid_107">list, else, items, sep, break</a>
- </dt>
- <dt>
- literal, <a href="dgui_template_exp.html#dgui_template_exp_direct">Specify values directly</a>
- </dt>
- <dd><dl>
- <dt>boolean, <a href="dgui_template_exp.html#dgui_template_exp_direct_boolean">Booleans</a></dt>
- <dt>hash, <a href="dgui_template_exp.html#dgui_template_exp_direct_hash">Hashes</a></dt>
- </dl></dd>
- <dt>
- loading templates, <a href="pgui_config_templateloading.html">Template loading</a>
- </dt>
- <dt>
- local directive, <a href="ref_directive_local.html">local</a>
- </dt>
- <dt>
- locale, <a href="ref_directive_setting.html#autoid_125">setting</a>,
-<a href="ref_specvar.html">Special Variable Reference</a>
- </dt>
- <dt>
- locale_object, <a href="ref_specvar.html">Special Variable Reference</a>
- </dt>
- <dt>
- localization, <a href="ref_directive_include.html#ref_directive_include_localized">Localized lookup</a>
- </dt>
- <dt>
- local variable, <a href="dgui_misc_var.html">Defining variables in the template</a>
- </dt>
- <dt>
- Log4j2, <a href="pgui_misc_logging.html">Logging</a>
- </dt>
- <dt>
- logging, <a href="pgui_misc_logging.html">Logging</a>
- </dt>
- <dt>
- logical operations, <a href="dgui_template_exp.html#dgui_template_exp_logicalop">Logical operations</a>
- </dt>
- <dt>
- long built-in, <a href="ref_builtins_expert.html#ref_builtin_numType">byte, double, float, int, long, short</a>
- </dt>
- <dt>
- long to date, <a href="ref_builtins_expert.html#ref_builtin_numToDate">number_to_date, number_to_time, number_to_datetime</a>
- </dt>
- <dt>
- loop variable, <a href="dgui_misc_userdefdir.html#dgui_misc_userdefdir_loopvar">Macros with loop variables</a>,
-<a href="dgui_misc_var.html">Defining variables in the template</a>
- </dt>
- <dt>
- lower_abc built-in, <a href="ref_builtins_number.html#ref_builtin_lower_abc">lower_abc</a>
- </dt>
- <dt>
- lower_case built-in, <a href="ref_builtins_string.html#ref_builtin_lower_case">lower_case</a>
- </dt>
- <dt>
- lt directive, <a href="ref_directive_t.html">t, lt, rt</a>
- </dt>
-</dl></div>
-<div class="indexdiv">
-<a name="idx_M"></a>
-<h2 class="indexLabel">M</h2>
-<dl>
- <dt>
- macro, <a href="dgui_misc_userdefdir.html">Defining your own directives</a>
- </dt>
- <dd><dl>
- <dt>the FTL value type, <a href="dgui_datamodel_types.html#dgui_datamodel_userdefdir">User-defined directives</a></dt>
- </dl></dd>
- <dt>
- macro directive, <a href="ref_directive_macro.html">macro, nested, return</a>
- </dt>
- <dt>
- main_template_name, <a href="ref_specvar.html">Special Variable Reference</a>
- </dt>
- <dt>
- markup_string built-in, <a href="ref_builtins_expert.html#ref_builtin_markup_string">markup_string</a>
- </dt>
- <dt>
- markup output </dt>
- <dd><dl>
- <dt>the FTL value type, <a href="dgui_datamodel_types.html#dgui_datamodel_markupoutput">Markup output</a></dt>
- </dl></dd>
- <dt>
- matches built-in, <a href="ref_builtins_string.html#ref_builtin_matches">matches</a>
- </dt>
- <dt>
- math, <a href="dgui_template_exp.html#dgui_template_exp_arit">Arithmetical calculations</a>
- </dt>
- <dt>
- merging, <a href="pgui_quickstart_merge.html">Merging the template with the data-model</a>
- </dt>
- <dt>
- method </dt>
- <dd><dl>
- <dt>call, <a href="dgui_template_exp.html#dgui_template_exp_methodcall">Method call</a></dt>
- <dt>defining with FTL, <a href="ref_directive_function.html">function, return</a></dt>
- <dt>Java side, <a href="pgui_datamodel_method.html">Methods</a></dt>
- <dt>the FTL value type, <a href="dgui_datamodel_types.html#dgui_datamodel_method">Methods and functions</a></dt>
- </dl></dd>
- <dt>
- MIME type, <a href="dgui_misc_autoescaping.html">Auto-escaping and output formats</a>
- </dt>
- <dt>
- missing value test operator, <a href="dgui_template_exp.html#dgui_template_exp_missing_test">Missing value test operator</a>
- </dt>
- <dt>
- missing variable, <a href="dgui_template_exp.html#dgui_template_exp_missing">Handling missing values</a>
- </dt>
- <dt>
- Model 2, <a href="pgui_misc_servlet.html">Using FreeMarker with servlets</a>
- </dt>
- <dt>
- modify hashes, <a href="app_faq.html#faq_modify_seq_and_map">FAQ</a>
- </dt>
- <dt>
- modify sequences, <a href="app_faq.html#faq_modify_seq_and_map">FAQ</a>
- </dt>
- <dt>
- modulus, <a href="dgui_template_exp.html#dgui_template_exp_arit">Arithmetical calculations</a>
- </dt>
- <dt>
- multithreading, <a href="pgui_misc_multithreading.html">Multithreading</a>
- </dt>
- <dt>
- Multi-typed value, <a href="dgui_datamodel_basics.html#topic.multitype">Basics</a>
- </dt>
-</dl></div>
-<div class="indexdiv">
-<a name="idx_N"></a>
-<h2 class="indexLabel">N</h2>
-<dl>
- <dt>
- namespace built-in, <a href="ref_builtins_expert.html#ref_builtin_namespace">namespace</a>
- </dt>
- <dt>
- namespaces, <a href="dgui_misc_namespace.html">Namespaces</a>
- </dt>
- <dt>
- NaN, <a href="ref_builtins_number.html#ref_builtin_is_nan">is_nan</a>
- </dt>
- <dt>
- nested directive, <a href="ref_directive_macro.html">macro, nested, return</a>
- </dt>
- <dt>
- new built-in, <a href="ref_builtins_expert.html#ref_builtin_new">new</a>
- </dt>
- <dt>
- new FTL syntax, <a href="ref_depr_oldsyntax.html">Old FTL syntax</a>
- </dt>
- <dt>
- next_sibling built-in, <a href="ref_builtins_node.html#ref_builtin_next_sibling">next_sibling</a>
- </dt>
- <dt>
- no_esc built-in, <a href="ref_builtins_string.html#ref_builtin_no_esc">no_esc</a>
- </dt>
- <dt>
- noautoesc directive, <a href="ref_directive_noautoesc.html">noautoesc</a>
- </dt>
- <dt>
- node </dt>
- <dd><dl>
- <dt>built-ins, <a href="ref_builtins_node.html">Built-ins for nodes (for XML)</a></dt>
- <dt>Java side, <a href="pgui_datamodel_node.html">Node variables</a></dt>
- <dt>the FTL value type, <a href="dgui_datamodel_types.html#dgui_datamodel_node">Nodes</a></dt>
- </dl></dd>
- <dt>
- node_name built-in, <a href="ref_builtins_node.html#ref_builtin_node_name">node_name</a>
- </dt>
- <dt>
- node_namespace built-in, <a href="ref_builtins_node.html#ref_builtin_node_namespace">node_namespace</a>
- </dt>
- <dt>
- node_type built-in, <a href="ref_builtins_node.html#ref_builtin_node_type">node_type</a>
- </dt>
- <dt>
- noescape directive, <a href="ref_directive_escape.html">escape, noescape (deprecated)</a>
- </dt>
- <dt>
- noparse directive, <a href="ref_directive_noparse.html">noparse</a>
- </dt>
- <dt>
- not, <a href="dgui_template_exp.html#dgui_template_exp_logicalop">Logical operations</a>
- </dt>
- <dt>
- now, <a href="ref_specvar.html">Special Variable Reference</a>
- </dt>
- <dt>
- nt directive, <a href="ref_directive_nt.html">nt</a>
- </dt>
- <dt>
- null, <a href="dgui_template_exp.html#dgui_template_exp_missing">Handling missing values</a>,
-<a href="app_faq.html#faq_null">FAQ</a>
- </dt>
- <dt>
- number </dt>
- <dd><dl>
- <dt>built-ins, <a href="ref_builtins_number.html">Built-ins for numbers</a></dt>
- <dt>Java side, <a href="pgui_datamodel_scalar.html">Scalars</a></dt>
- <dt>literal, <a href="dgui_template_exp.html#dgui_template_exp_direct_number">Numbers</a></dt>
- <dt>the FTL value type, <a href="dgui_datamodel_types.html#dgui_datamodel_scalar">Scalars</a></dt>
- </dl></dd>
- <dt>
- number_format, <a href="ref_directive_setting.html#ref.setting.number_format">setting</a>
- </dt>
- <dt>
- number_to_date built-in, <a href="ref_builtins_expert.html#ref_builtin_numToDate">number_to_date, number_to_time, number_to_datetime</a>
- </dt>
- <dt>
- number_to_datetime built-in, <a href="ref_builtins_expert.html#ref_builtin_numToDate">number_to_date, number_to_time, number_to_datetime</a>
- </dt>
- <dt>
- number_to_time built-in, <a href="ref_builtins_expert.html#ref_builtin_numToDate">number_to_date, number_to_time, number_to_datetime</a>
- </dt>
- <dt>
- number built-in, <a href="ref_builtins_string.html#ref_builtin_number">number</a>
- </dt>
- <dt>
- numerical range expression, <a href="dgui_template_exp.html#dgui_template_exp_direct_seuqence">Sequences</a>
- </dt>
- <dt>
- numerical sequence, <a href="dgui_template_exp.html#dgui_template_exp_direct_seuqence">Sequences</a>
- </dt>
-</dl></div>
-<div class="indexdiv">
-<a name="idx_O"></a>
-<h2 class="indexLabel">O</h2>
-<dl>
- <dt>
- object wrapper, <a href="pgui_datamodel_basics.html">Basics</a>,
-<a href="pgui_datamodel_objectWrapper.html">Object wrappers</a>
- </dt>
- <dd><dl>
- <dt>custom, <a href="pgui_datamodel_objectWrapper.html#pgui_datamodel_customObjectWrappingExample">Custom object wrapping example</a></dt>
- <dt>default, <a href="pgui_datamodel_objectWrapper.html#pgui_datamodel_defaultObjectWrapper">The default object wrapper</a></dt>
- </dl></dd>
- <dt>
- old FTL syntax, <a href="ref_depr_oldsyntax.html">Old FTL syntax</a>
- </dt>
- <dt>
- operator precedence, <a href="dgui_template_exp.html#dgui_template_exp_precedence">Operator precedence</a>
- </dt>
- <dt>
- or, <a href="dgui_template_exp.html#dgui_template_exp_logicalop">Logical operations</a>
- </dt>
- <dt>
- output </dt>
- <dd><dl>
- <dt>generate with Java, <a href="pgui_quickstart_merge.html">Merging the template with the data-model</a></dt>
- </dl></dd>
- <dt>
- output_encoding, <a href="ref_directive_setting.html#autoid_125">setting</a>
- </dt>
- <dt>
- output_format, <a href="ref_specvar.html">Special Variable Reference</a>
- </dt>
- <dt>
- output charset, <a href="pgui_misc_charset.html#autoid_53">Charset issues</a>,
-<a href="ref_builtins_string.html#ref_builtin_url">url</a>,
-<a href="ref_specvar.html">Special Variable Reference</a>
- </dt>
- <dt>
- output encoding, <a href="pgui_misc_charset.html#autoid_53">Charset issues</a>,
-<a href="ref_builtins_string.html#ref_builtin_url">url</a>,
-<a href="ref_specvar.html">Special Variable Reference</a>
- </dt>
- <dt>
- output format, <a href="dgui_misc_autoescaping.html#dgui_misc_autoescaping_outputformat">Output formats</a>,
-<a href="pgui_config_outputformatsautoesc.html">Associating output formats with templates</a>,
-<a href="ref_specvar.html">Special Variable Reference</a>
- </dt>
- <dt>
- outputformat directive, <a href="ref_directive_outputformat.html">outputformat</a>
- </dt>
-</dl></div>
-<div class="indexdiv">
-<a name="idx_P"></a>
-<h2 class="indexLabel">P</h2>
-<dl>
- <dt>
- padding, <a href="ref_builtins_string.html#ref_builtin_left_pad">left_pad</a>,
-<a href="ref_builtins_string.html#ref_builtin_right_pad">right_pad</a>
- </dt>
- <dt>
- parent built-in, <a href="ref_builtins_node.html#ref_builtin_parent">parent</a>
- </dt>
- <dt>
- parentheses, <a href="dgui_template_exp.html#dgui_template_exp_parentheses">Parentheses</a>
- </dt>
- <dt>
- parse string as boolean, <a href="ref_builtins_string.html#ref_builtin_boolean">boolean</a>
- </dt>
- <dt>
- parse string as number, <a href="ref_builtins_string.html#ref_builtin_number">number</a>
- </dt>
- <dt>
- parsing string as date, <a href="ref_builtins_string.html#ref_builtin_string_date">date, time, datetime</a>
- </dt>
- <dt>
- parsing string as time, <a href="ref_builtins_string.html#ref_builtin_string_date">date, time, datetime</a>
- </dt>
- <dt>
- path, <a href="pgui_config_templateloading.html#autoid_42">Template loading</a>
- </dt>
- <dt>
- positional parameter passing, <a href="ref_directive_userDefined.html#ref_directive_userDefined_positionalParam">Positional parameter passing</a>
- </dt>
- <dt>
- precedence, <a href="dgui_template_exp.html#dgui_template_exp_precedence">Operator precedence</a>
- </dt>
- <dt>
- previous_sibling built-in, <a href="ref_builtins_node.html#ref_builtin_previous_sibling">previous_sibling</a>
- </dt>
-</dl></div>
-<div class="indexdiv">
-<a name="idx_R"></a>
-<h2 class="indexLabel">R</h2>
-<dl>
- <dt>
- range expression, <a href="dgui_template_exp.html#dgui_template_exp_direct_seuqence">Sequences</a>
- </dt>
- <dt>
- raw string literal, <a href="dgui_template_exp.html#dgui_template_exp_direct_string">Strings</a>
- </dt>
- <dt>
- recover directive, <a href="ref_directive_attempt.html">attempt, recover</a>
- </dt>
- <dt>
- recurse directive, <a href="ref_directive_visit.html">visit, recurse, fallback</a>
- </dt>
- <dt>
- recursion </dt>
- <dd><dl>
- <dt>iterate, <a href="ref_directive_visit.html">visit, recurse, fallback</a></dt>
- </dl></dd>
- <dt>
- regular expression </dt>
- <dd><dl>
- <dt>built-ins, <a href="ref_builtins_string.html#ref_builtin_string_flags">Common flags</a></dt>
- </dl></dd>
- <dt>
- remove_beginning built-in, <a href="ref_builtins_string.html#ref_builtin_remove_beginning">remove_beginning</a>
- </dt>
- <dt>
- remove_ending built-in, <a href="ref_builtins_string.html#ref_builtin_remove_ending">remove_ending</a>
- </dt>
- <dt>
- replace built-in, <a href="ref_builtins_string.html#ref_builtin_replace">replace</a>
- </dt>
- <dt>
- reserved name, <a href="ref_reservednames.html">Reserved names in FTL</a>
- </dt>
- <dt>
- return directive, <a href="ref_directive_function.html">function, return</a>,
-<a href="ref_directive_macro.html">macro, nested, return</a>
- </dt>
- <dt>
- reverse built-in, <a href="ref_builtins_sequence.html#ref_builtin_reverse">reverse</a>
- </dt>
- <dt>
- right_pad built-in, <a href="ref_builtins_string.html#ref_builtin_right_pad">right_pad</a>
- </dt>
- <dt>
- root built-in, <a href="ref_builtins_node.html#ref_builtin_root">root</a>
- </dt>
- <dt>
- round built-in, <a href="ref_builtins_number.html#ref_builtin_rounding">round, floor, ceiling</a>
- </dt>
- <dt>
- rounding, <a href="ref_builtins_number.html#ref_builtin_rounding">round, floor, ceiling</a>
- </dt>
- <dt>
- rt directive, <a href="ref_directive_t.html">t, lt, rt</a>
- </dt>
- <dt>
- rtf built-in, <a href="ref_builtins_string.html#ref_builtin_rtf">rtf (deprecated)</a>
- </dt>
-</dl></div>
-<div class="indexdiv">
-<a name="idx_S"></a>
-<h2 class="indexLabel">S</h2>
-<dl>
- <dt>
- scalar </dt>
- <dd><dl>
- <dt>Java side, <a href="pgui_datamodel_scalar.html">Scalars</a></dt>
- </dl></dd>
- <dt>
- scopes, <a href="pgui_misc_var.html">Variables, scopes</a>
- </dt>
- <dt>
- security, <a href="pgui_misc_secureenv.html">Configuring security policy for FreeMarker</a>
- </dt>
- <dd><dl>
- <dt>user-provided templates, <a href="app_faq.html#faq_template_uploading_security">FAQ</a></dt>
- </dl></dd>
- <dt>
- sep directive, <a href="ref_directive_list.html#autoid_105">list, else, items, sep, break</a>
- </dt>
- <dt>
- seq_contains built-in, <a href="ref_builtins_sequence.html#ref_builtin_seq_contains">seq_contains</a>
- </dt>
- <dt>
- seq_index_of built-in, <a href="ref_builtins_sequence.html#ref_builtin_seq_index_of">seq_index_of</a>
- </dt>
- <dt>
- seq_last_index_of built-in, <a href="ref_builtins_sequence.html#ref_builtin_seq_last_index_of">seq_last_index_of</a>
- </dt>
- <dt>
- sequence </dt>
- <dd><dl>
- <dt>accessing subvariable, <a href="dgui_template_exp.html#dgui_template_exp_var_sequence">Retrieving data from a sequence</a></dt>
- <dt>built-ins, <a href="ref_builtins_sequence.html">Built-ins for sequences</a></dt>
- <dt>concatenate, <a href="dgui_template_exp.html#dgui_template_exp_sequenceop_cat">Concatenation</a></dt>
- <dt>iterate, <a href="ref_directive_list.html">list, else, items, sep, break</a></dt>
- <dt>Java side, <a href="pgui_datamodel_parent.html#autoid_33">Containers</a></dt>
- <dt>literal, <a href="dgui_template_exp.html#dgui_template_exp_direct_seuqence">Sequences</a></dt>
- <dt>modify, <a href="app_faq.html#faq_modify_seq_and_map">FAQ</a></dt>
- <dt>operations, <a href="dgui_template_exp.html#dgui_template_exp_sequenceop">Sequence operations</a></dt>
- <dt>slice, <a href="dgui_template_exp.html#dgui_template_exp_seqenceop_slice">Sequence slicing</a></dt>
- <dt>sorting, <a href="ref_builtins_sequence.html#ref_builtin_sort">sort</a>, <a href="ref_builtins_sequence.html#ref_builtin_sort_by">sort_by</a></dt>
- <dt>the FTL value type, <a href="dgui_datamodel_types.html#dgui_datamodel_container">Containers</a></dt>
- </dl></dd>
- <dt>
- sequence slice, <a href="dgui_template_exp.html#dgui_template_exp_seqenceop_slice">Sequence slicing</a>
- </dt>
- <dt>
- servlet </dt>
- <dd><dl>
- <dt>include, <a href="pgui_misc_servlet.html#pgui_misc_servlet_include">Including content from other web application
- resources</a></dt>
- </dl></dd>
- <dt>
- Servlet, <a href="pgui_misc_servlet.html">Using FreeMarker with servlets</a>
- </dt>
- <dt>
- setting, <a href="pgui_config_settings.html">Settings</a>
- </dt>
- <dt>
- setting directive, <a href="ref_directive_setting.html">setting</a>
- </dt>
- <dt>
- shared variable, <a href="pgui_config_sharedvariables.html">Shared variables</a>
- </dt>
- <dt>
- short built-in, <a href="ref_builtins_expert.html#ref_builtin_numType">byte, double, float, int, long, short</a>
- </dt>
- <dt>
- size built-in, <a href="ref_builtins_sequence.html#ref_builtin_size">size</a>
- </dt>
- <dt>
- SLF4J, <a href="pgui_misc_logging.html">Logging</a>
- </dt>
- <dt>
- sort_by built-in, <a href="ref_builtins_sequence.html#ref_builtin_sort_by">sort_by</a>
- </dt>
- <dt>
- sort built-in, <a href="ref_builtins_sequence.html#ref_builtin_sort">sort</a>
- </dt>
- <dt>
- special variable, <a href="ref_specvar.html">Special Variable Reference</a>
- </dt>
- <dt>
- special variables, <a href="dgui_template_exp.html#dgui_template_exp_var_special">Special variables</a>
- </dt>
- <dt>
- split built-in, <a href="ref_builtins_string.html#ref_builtin_split">split</a>
- </dt>
- <dt>
- square bracket syntax, <a href="dgui_misc_alternativesyntax.html">Alternative (square bracket) syntax</a>
- </dt>
- <dt>
- starts_with built-in, <a href="ref_builtins_string.html#ref_builtin_starts_with">starts_with</a>
- </dt>
- <dt>
- static method </dt>
- <dd><dl>
- <dt>accessing from templates, <a href="pgui_misc_beanwrapper.html#autoid_60">Bean wrapper</a></dt>
- </dl></dd>
- <dt>
- stop directive, <a href="ref_directive_stop.html">stop</a>
- </dt>
- <dt>
- storing templates, <a href="pgui_config_templateloading.html">Template loading</a>
- </dt>
- <dt>
- strict syntax, <a href="ref_depr_oldsyntax.html">Old FTL syntax</a>
- </dt>
- <dt>
- string </dt>
- <dd><dl>
- <dt>built-ins, <a href="ref_builtins_string.html">Built-ins for strings</a></dt>
- <dt>concatenate, <a href="dgui_template_exp.html#dgui_template_exp_stringop_interpolation">Interpolation and concatenation</a></dt>
- <dt>interpolation, <a href="dgui_template_exp.html#dgui_template_exp_stringop_interpolation">Interpolation and concatenation</a></dt>
- <dt>Java side, <a href="pgui_datamodel_scalar.html">Scalars</a></dt>
- <dt>literal, <a href="dgui_template_exp.html#dgui_template_exp_direct_string">Strings</a></dt>
- <dt>operations, <a href="dgui_template_exp.html#dgui_template_exp_stringop">String operations</a></dt>
- <dt>slice, <a href="dgui_template_exp.html#dgui_template_exp_stringop_slice">String slicing (substrings)</a></dt>
- <dt>substring, <a href="dgui_template_exp.html#dgui_template_exp_stringop_slice">String slicing (substrings)</a></dt>
- <dt>the FTL value type, <a href="dgui_datamodel_types.html#dgui_datamodel_scalar">Scalars</a></dt>
- </dl></dd>
- <dt>
- string built-in, <a href="ref_builtins_number.html#ref_builtin_string_for_number">string (when used with a numerical value)</a>,
-<a href="ref_builtins_date.html#ref_builtin_string_for_date">string (when used with a date/time/date-time value)</a>,
-<a href="ref_builtins_boolean.html#ref_builtin_string_for_boolean">string (when used with a boolean value)</a>
- </dt>
- <dt>
- string slicing, <a href="dgui_template_exp.html#dgui_template_exp_stringop_slice">String slicing (substrings)</a>
- </dt>
- <dt>
- string to boolean, <a href="ref_builtins_string.html#ref_builtin_boolean">boolean</a>
- </dt>
- <dt>
- string to date, <a href="ref_builtins_string.html#ref_builtin_string_date">date, time, datetime</a>
- </dt>
- <dt>
- string to number, <a href="ref_builtins_string.html#ref_builtin_number">number</a>
- </dt>
- <dt>
- string to time, <a href="ref_builtins_string.html#ref_builtin_string_date">date, time, datetime</a>
- </dt>
- <dt>
- Struts, <a href="pgui_misc_servlet.html">Using FreeMarker with servlets</a>
- </dt>
- <dt>
- subsequence, <a href="dgui_template_exp.html#dgui_template_exp_seqenceop_slice">Sequence slicing</a>
- </dt>
- <dt>
- substring, <a href="dgui_template_exp.html#dgui_template_exp_stringop_slice">String slicing (substrings)</a>,
-<a href="ref_builtins_string.html#ref_builtin_substring">substring (deprecated)</a>
- </dt>
- <dt>
- substring built-in, <a href="ref_builtins_string.html#ref_builtin_substring">substring (deprecated)</a>
- </dt>
- <dt>
- subtraction, <a href="dgui_template_exp.html#dgui_template_exp_arit">Arithmetical calculations</a>
- </dt>
- <dt>
- subvariable </dt>
- <dd><dl>
- <dt>accessing, <a href="dgui_template_exp.html#dgui_template_exp_var_toplevel">Top-level variables</a>, <a href="dgui_template_exp.html#dgui_template_exp_var_hash">Retrieving data from a hash</a>, <a href="dgui_template_exp.html#dgui_template_exp_var_sequence">Retrieving data from a sequence</a></dt>
- </dl></dd>
- <dt>
- switch built-in, <a href="ref_builtins_type_independent.html#ref_builtin_switch">switch</a>
- </dt>
- <dt>
- switch directive, <a href="ref_directive_switch.html">switch, case, default, break</a>
- </dt>
- <dt>
- switch expression, <a href="ref_builtins_type_independent.html#ref_builtin_switch">switch</a>
- </dt>
-</dl></div>
-<div class="indexdiv">
-<a name="idx_T"></a>
-<h2 class="indexLabel">T</h2>
-<dl>
- <dt>
- tabular printing of sequences, <a href="ref_builtins_sequence.html#ref_builtin_chunk">chunk</a>
- </dt>
- <dt>
- tag </dt>
- <dd><dl>
- <dt>user-defined, <a href="dgui_misc_userdefdir.html">Defining your own directives</a></dt>
- </dl></dd>
- <dt>
- taglib, <a href="pgui_misc_servlet.html#autoid_63">Using FreeMarker with servlets</a>
- </dt>
- <dt>
- t directive, <a href="ref_directive_t.html">t, lt, rt</a>
- </dt>
- <dt>
- template, <a href="dgui_template.html">The Template</a>
- </dt>
- <dd><dl>
- <dt>Java side, <a href="pgui_quickstart_gettemplate.html">Get the template</a></dt>
- </dl></dd>
- <dt>
- template_name, <a href="ref_specvar.html">Special Variable Reference</a>
- </dt>
- <dt>
- template caching, <a href="pgui_config_templateloading.html#pgui_config_templateloading_caching">Template caching</a>
- </dt>
- <dt>
- template loaders, <a href="pgui_config_templateloading.html#autoid_38">Template loading</a>
- </dt>
- <dt>
- template loading, <a href="pgui_config_templateloading.html">Template loading</a>
- </dt>
- <dt>
- template name, <a href="pgui_config_templateloading.html#autoid_42">Template loading</a>
- </dt>
- <dt>
- template path, <a href="pgui_config_templateloading.html#autoid_42">Template loading</a>
- </dt>
- <dt>
- temporary variable, <a href="dgui_misc_var.html">Defining variables in the template</a>
- </dt>
- <dt>
- ternary operator, <a href="ref_builtins_boolean.html#ref_builtin_then">then</a>
- </dt>
- <dt>
- testing for missing, <a href="dgui_template_exp.html#dgui_template_exp_missing_test">Missing value test operator</a>
- </dt>
- <dt>
- testing for null, <a href="dgui_template_exp.html#dgui_template_exp_missing_test">Missing value test operator</a>
- </dt>
- <dt>
- testing for undefined, <a href="dgui_template_exp.html#dgui_template_exp_missing_test">Missing value test operator</a>
- </dt>
- <dt>
- text, <a href="dgui_template_overallstructure.html">Overall structure</a>
- </dt>
- <dt>
- then built-in, <a href="ref_builtins_boolean.html#ref_builtin_then">then</a>
- </dt>
- <dt>
- thread-safety, <a href="pgui_misc_multithreading.html">Multithreading</a>
- </dt>
- <dt>
- time </dt>
- <dd><dl>
- <dt>built-ins, <a href="ref_builtins_date.html">Built-ins for date/time/date-time values</a></dt>
- <dt>Java API related difficulties, <a href="pgui_datamodel_scalar.html#autoid_31">Scalars</a></dt>
- <dt>Java side, <a href="pgui_datamodel_scalar.html">Scalars</a></dt>
- <dt>the FTL value type, <a href="dgui_datamodel_types.html#dgui_datamodel_scalar">Scalars</a></dt>
- </dl></dd>
- <dt>
- time_format, <a href="ref_directive_setting.html#topic_date_format_settings">setting</a>
- </dt>
- <dt>
- time_zone, <a href="ref_directive_setting.html#autoid_125">setting</a>,
-<a href="ref_directive_setting.html#autoid_125">setting</a>
- </dt>
- <dt>
- time built-in, <a href="ref_builtins_string.html#ref_builtin_string_date">date, time, datetime</a>,
-<a href="ref_builtins_date.html#ref_builtin_date_datetype">date, time, datetime (when used with a date/time/date-time
- value)</a>
- </dt>
- <dt>
- timestamp </dt>
- <dd><dl>
- <dt>built-ins, <a href="ref_builtins_date.html">Built-ins for date/time/date-time values</a></dt>
- </dl></dd>
- <dt>
- time to string, <a href="ref_builtins_date.html#ref_builtin_string_for_date">string (when used with a date/time/date-time value)</a>
- </dt>
- <dt>
- transform, <a href="dgui_misc_userdefdir.html">Defining your own directives</a>
- </dt>
- <dt>
- transform directive, <a href="ref_depr_transform.html">Transform directive</a>
- </dt>
- <dt>
- tree nodes, <a href="pgui_datamodel_node.html">Node variables</a>
- </dt>
- <dt>
- trees, <a href="pgui_datamodel_node.html">Node variables</a>
- </dt>
- <dt>
- trim built-in, <a href="ref_builtins_string.html#ref_builtin_trim">trim</a>
- </dt>
- <dt>
- trimmer directives, <a href="ref_directive_nt.html">nt</a>,
-<a href="ref_directive_t.html">t, lt, rt</a>
- </dt>
- <dt>
- type-casting, <a href="ref_builtins_string.html#ref_builtin_boolean">boolean</a>,
-<a href="ref_builtins_string.html#ref_builtin_string_date">date, time, datetime</a>,
-<a href="ref_builtins_string.html#ref_builtin_number">number</a>,
-<a href="ref_builtins_number.html#ref_builtin_c">c (when used with numerical value)</a>,
-<a href="ref_builtins_number.html#ref_builtin_string_for_number">string (when used with a numerical value)</a>,
-<a href="ref_builtins_date.html#ref_builtin_date_datetype">date, time, datetime (when used with a date/time/date-time
- value)</a>,
-<a href="ref_builtins_date.html#ref_builtin_string_for_date">string (when used with a date/time/date-time value)</a>,
-<a href="ref_builtins_boolean.html#ref_builtin_c_boolean">c (when used with boolean)</a>,
-<a href="ref_builtins_boolean.html#ref_builtin_string_for_boolean">string (when used with a boolean value)</a>,
-<a href="ref_builtins_expert.html#ref_builtin_numType">byte, double, float, int, long, short</a>,
-<a href="ref_builtins_expert.html#ref_builtin_numToDate">number_to_date, number_to_time, number_to_datetime</a>
- </dt>
- <dt>
- type checking, <a href="ref_builtins_expert.html#ref_builtin_isType">is_...</a>
- </dt>
-</dl></div>
-<div class="indexdiv">
-<a name="idx_U"></a>
-<h2 class="indexLabel">U</h2>
-<dl>
- <dt>
- uncap_first built-in, <a href="ref_builtins_string.html#ref_builtin_uncap_first">uncap_first</a>
- </dt>
- <dt>
- undefined variable, <a href="dgui_template_exp.html#dgui_template_exp_missing">Handling missing values</a>
- </dt>
- <dt>
- upper_abc built-in, <a href="ref_builtins_number.html#ref_builtin_upper_abc">upper_abc</a>
- </dt>
- <dt>
- upper_case built-in, <a href="ref_builtins_string.html#ref_builtin_upper_case">upper_case</a>
- </dt>
- <dt>
- url_escaping_charset, <a href="ref_builtins_string.html#ref_builtin_url">url</a>,
-<a href="ref_directive_setting.html#autoid_125">setting</a>
- </dt>
- <dt>
- url_path built-in, <a href="ref_builtins_string.html#ref_builtin_url_path">url_path</a>
- </dt>
- <dt>
- url built-in, <a href="ref_builtins_string.html#ref_builtin_url">url</a>
- </dt>
- <dt>
- URL encoding, <a href="ref_builtins_string.html#ref_builtin_url">url</a>,
-<a href="ref_builtins_string.html#ref_builtin_url_path">url_path</a>
- </dt>
- <dt>
- URL escaping, <a href="ref_builtins_string.html#ref_builtin_url">url</a>,
-<a href="ref_builtins_string.html#ref_builtin_url_path">url_path</a>
- </dt>
- <dt>
- URL escaping charset, <a href="ref_specvar.html">Special Variable Reference</a>,
-<a href="ref_specvar.html">Special Variable Reference</a>
- </dt>
- <dt>
- user-defined directive, <a href="dgui_misc_userdefdir.html">Defining your own directives</a>,
-<a href="ref_directive_userDefined.html">User-defined directive (<@...>)</a>
- </dt>
- <dd><dl>
- <dt>the FTL value type, <a href="dgui_datamodel_types.html#dgui_datamodel_userdefdir">User-defined directives</a></dt>
- </dl></dd>
-</dl></div>
-<div class="indexdiv">
-<a name="idx_V"></a>
-<h2 class="indexLabel">V</h2>
-<dl>
- <dt>
- value, <a href="dgui_datamodel_basics.html#topic.value">What is a value?</a>
- </dt>
- <dt>
- values built-in, <a href="ref_builtins_hash.html#ref_builtin_values">values</a>
- </dt>
- <dt>
- variable, <a href="dgui_misc_var.html">Defining variables in the template</a>
- </dt>
- <dt>
- variable number of parameters, <a href="ref_directive_macro.html#autoid_112">macro, nested, return</a>
- </dt>
- <dt>
- variables, <a href="pgui_misc_var.html">Variables, scopes</a>
- </dt>
- <dd><dl>
- <dt>names, <a href="app_faq.html#faq_legal_variable_names">FAQ</a></dt>
- </dl></dd>
- <dt>
- variable scopes, <a href="pgui_misc_var.html">Variables, scopes</a>
- </dt>
- <dt>
- version, <a href="ref_specvar.html">Special Variable Reference</a>
- </dt>
- <dt>
- visit directive, <a href="ref_directive_visit.html">visit, recurse, fallback</a>
- </dt>
-</dl></div>
-<div class="indexdiv">
-<a name="idx_W"></a>
-<h2 class="indexLabel">W</h2>
-<dl>
- <dt>
- web_safe built-in, <a href="ref_depr_builtin.html">List of deprecated built-ins</a>
- </dt>
- <dt>
- Web application framework, <a href="pgui_misc_servlet.html">Using FreeMarker with servlets</a>
- </dt>
- <dt>
- white-space removal, <a href="dgui_misc_whitespace.html">White-space handling</a>
- </dt>
- <dd><dl>
- <dt>compress, <a href="dgui_misc_whitespace.html#autoid_30">White-space handling</a>, <a href="ref_directive_compress.html">compress</a></dt>
- <dt>stripping, <a href="dgui_misc_whitespace.html#dgui_misc_whitespace_stripping">White-space stripping</a>, <a href="ref_directive_ftl.html">ftl</a>, <a href="ref_directive_nt.html">nt</a></dt>
- <dt>trimming, <a href="ref_directive_nt.html">nt</a>, <a href="ref_directive_t.html">t, lt, rt</a></dt>
- </dl></dd>
- <dt>
- word_list built-in, <a href="ref_builtins_string.html#ref_builtin_word_list">word_list</a>
- </dt>
- <dt>
- wrapper, <a href="pgui_datamodel_basics.html">Basics</a>,
-<a href="pgui_datamodel_objectWrapper.html">Object wrappers</a>
- </dt>
- <dt>
- wrapping </dt>
- <dd><dl>
- <dt>beans, <a href="pgui_misc_beanwrapper.html">Bean wrapper</a></dt>
- <dt>jython, <a href="pgui_misc_jythonwrapper.html">Jython wrapper</a></dt>
- <dt>reflection, <a href="pgui_misc_beanwrapper.html">Bean wrapper</a></dt>
- </dl></dd>
-</dl></div>
-<div class="indexdiv">
-<a name="idx_X"></a>
-<h2 class="indexLabel">X</h2>
-<dl>
- <dt>
- xhtml built-in, <a href="ref_builtins_string.html#ref_builtin_xhtml">xhtml (deprecated)</a>
- </dt>
- <dt>
- XML </dt>
- <dd><dl>
- <dt>declarative processing, <a href="xgui_declarative.html">Declarative XML processing</a></dt>
- <dt>exposing, <a href="xgui_expose.html">Exposing XML documents</a></dt>
- <dt>imperative processing, <a href="xgui_imperative.html">Imperative XML processing</a></dt>
- </dl></dd>
- <dt>
- xml built-in, <a href="ref_builtins_string.html#ref_builtin_xml">xml (deprecated)</a>
- </dt>
- <dt>
- XML encoding, <a href="dgui_misc_autoescaping.html">Auto-escaping and output formats</a>
- </dt>
- <dt>
- XML escaping, <a href="dgui_misc_autoescaping.html">Auto-escaping and output formats</a>
- </dt>
- <dt>
- XML namespace </dt>
- <dd><dl>
- <dt>in imperative processing, <a href="xgui_imperative_learn.html#autoid_149">Basics</a></dt>
- </dl></dd>
- <dt>
- XML namespaces </dt>
- <dd><dl>
- <dt>in declarative processing, <a href="xgui_declarative_details.html#autoid_154">Details</a></dt>
- </dl></dd>
- <dt>
- XML Schema date parsing, <a href="ref_builtins_string.html#ref_builtin_string_date">date, time, datetime</a>
- </dt>
- <dt>
- XML Schema date rendering, <a href="ref_directive_setting.html#topic_date_format_settings">setting</a>
- </dt>
- <dt>
- XML Schema dateTime rendering, <a href="ref_directive_setting.html#topic_date_format_settings">setting</a>
- </dt>
- <dt>
- XML Schema time parsing, <a href="ref_builtins_string.html#ref_builtin_string_date">date, time, datetime</a>
- </dt>
- <dt>
- XML Schema time rendering, <a href="ref_directive_setting.html#topic_date_format_settings">setting</a>
- </dt>
- <dt>
- XSLT, <a href="xgui_declarative.html">Declarative XML processing</a>
- </dt>
-</dl></div>
-<div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="gloss.html"><span>Previous</span></a><span class="paging-arrow disabled next"><span>Next</span></span></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>\u20132017
-<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>
[06/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/versions_2_3_23.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_3_23.html b/builds/2.3.26-nightly/versions_2_3_23.html
deleted file mode 100644
index 53bbb7d..0000000
--- a/builds/2.3.26-nightly/versions_2_3_23.html
+++ /dev/null
@@ -1,423 +0,0 @@
-<!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.23 - 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.23">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/versions_2_3_23.html">
-<link rel="canonical" href="http://freemarker.org/docs/versions_2_3_23.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_23.html"><span itemprop="name">2.3.23</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.23"];</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_24.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_22.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="versions_2_3_23" itemprop="headline">2.3.23</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_164" data-menu-target="autoid_164">Changes on the FTL side</a></li><li><a class="page-menu-link" href="#autoid_165" data-menu-target="autoid_165">Changes on the Java side</a></li><li><a class="page-menu-link" href="#autoid_166" data-menu-target="autoid_166">Other changes</a></li><li><a class="page-menu-link" href="#autoid_167" data-menu-target="autoid_167">Notes</a></li></ul> </div><p>Date of release: 2015-07-05</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_164">Changes on the FTL side</h2>
-
-
- <ul>
- <li>
- <p>Listing (<code class="inline-code">#list</code>) has received some
- specialized convenience features that target typical tasks
- people do again and again in templates.</p>
-
- <ul>
- <li>
- <p>New <code class="inline-code">list</code> directive child
- directives. There are <code class="inline-code">else</code> and
- <code class="inline-code">items</code> to deal with special cases with
- 0-length lists, and <code class="inline-code">sep</code> for inserting
- separators between items. For more details, see the <a href="ref_directive_list.html"><code>list</code>
- directive in the Reference</a>.</p>
- </li>
-
- <li>
- <p><a href="ref_builtins_loop_var.html">New built-ins
- that act on loop variables</a>:
- <code class="inline-code"><em class="code-color">var</em>?index</code>
- (deprecates
- <code class="inline-code"><em class="code-color">var</em>_index</code>),
- <code class="inline-code"><em class="code-color">var</em>?counter</code>
- (1-based index),
- <code class="inline-code"><em class="code-color">var</em>?has_next</code>
- (deprecates
- <code class="inline-code"><em class="code-color">var</em>_has_next</code>),
- <code class="inline-code"><em class="code-color">var</em>?is_first</code>,
- <code class="inline-code"><em class="code-color">var</em>?is_last</code>,
- <code class="inline-code"><em class="code-color">var</em>?item_parity</code>
- (returns <code class="inline-code">"odd"</code> or
- <code class="inline-code">"even"</code>),
- <code class="inline-code"><em class="code-color">var</em>?item_parity_cap</code>,
- <code class="inline-code"><em class="code-color">var</em>?item_cycle</code><code class="inline-code">(<em class="code-color">...</em>)</code>,
- etc.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Added convenience assignment operators, which can be used
- in assignment directives (<code class="inline-code">#assign</code>,
- <code class="inline-code">#global</code> and <code class="inline-code">#local</code>
- currently) only:</p>
-
- <ul>
- <li>
- <p><code class="inline-code">++</code> and <code class="inline-code">--</code>: For
- example, <code class="inline-code"><#assign counter++></code> is
- equivalent to <code class="inline-code"><#assign counter = counter +
- 1></code>.</p>
- </li>
-
- <li>
- <p><code class="inline-code">+=</code>, <code class="inline-code">-=</code>,
- <code class="inline-code">*=</code>, <code class="inline-code">/=</code> and
- <code class="inline-code">%=</code>: For example, <code class="inline-code"><#assign
- counter += 2></code> is equivalent to
- <code class="inline-code"><#assign counter = counter +
- 2></code>.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Added the <code class="inline-code">then</code> built-in, which can be
- used like a ternary operator:
- <code class="inline-code"><em class="code-color">someBoolean</em>?then(<em class="code-color">whenTrue</em>,
- <em class="code-color">whenFalse</em>)</code>. Just like with
- the ternary operator of most other languages, only one of the
- parameter expressions will be evaluated. <a href="ref_builtins_boolean.html#ref_builtin_then">More details...</a></p>
- </li>
-
- <li>
- <p>Added the <code class="inline-code">switch</code> built-in, which can be
- used like an in-line (expression) switch-case-default statement:
- <code class="inline-code"><em class="code-color">someValue</em>?switch(<em class="code-color">case1</em>,
- <em class="code-color">result1</em>,
- <em class="code-color">case2</em>,
- <em class="code-color">result2</em>, ...
- <em class="code-color">caseN</em>,
- <em class="code-color">resultN</em>,
- <em class="code-color">defaultResult</em>)</code>, where
- <code class="inline-code"><em class="code-color">defaultResult</em></code> can
- be omitted (then it will be error if none of the cases matches).
- <a href="ref_builtins_type_independent.html#ref_builtin_switch">More details...</a></p>
- </li>
-
- <li>
- <p>Added camel case support for the identifiers that are part
- of the template language (user defined names aren't affected).
- For example, now
- <code class="inline-code"><#noEscape>${x?upperCase}</#noEscape></code>
- or <code class="inline-code"><#setting numberFormat="0.0"></code> or
- <code class="inline-code"><#ftl stripText=true></code> are valid.
- However, within the same template, FreeMarker will require you
- to use the same naming convention consistently for all
- identifiers that are part of the template language. It's also
- possible to enforce the same naming convention on all templates
- from Java via
- <code class="inline-code">Configuration.setNamingConvention(int)</code>. It's
- certain that camel case will be the recommended convention
- starting from some future version, because the Java API-s users
- call from templates use that too.</p>
- </li>
-
- <li>
- <p>Added new <a href="ref_specvar.html">special
- variables</a>, <code class="inline-code">.current_template_name</code> and
- <code class="inline-code">.main_template_name</code>. These deprecate
- <code class="inline-code">.template_name</code>, which was always broken when
- it comes to macro calls. The new
- <code class="inline-code">.current_template_name</code> always returns the
- name of the template that contains the reference to the special
- variable, and <code class="inline-code">.main_template_name</code> always
- returns the name of the topmost template.</p>
- </li>
-
- <li>
- <p>Smaller error message improvements. Like, added tip in the
- error message for the frequent issue when
- <code class="inline-code"><em class="code-color">someMap</em>[<em class="code-color">someNumber</em>]</code>
- complains that
- <code class="inline-code"><em class="code-color">someMap</em></code> is not a
- sequence nor is coercible to string.</p>
- </li>
-
- <li>
- <p>Bug fixed, activated with setting
- <code class="inline-code">incompatible_improvements</code> to 2.3.23: There's
- a long existing parse-time rule that says that
- <code class="inline-code">#break</code>, in the FTL source code itself, must
- occur nested inside a breakable directive, such as
- <code class="inline-code">#list</code> or <code class="inline-code">#switch</code>. This
- check could be circumvented with <code class="inline-code">#macro</code> or
- <code class="inline-code">#function</code>, like this: <code class="inline-code"><#list 1..1
- as x><#macro
- callMeLater><#break></#macro></#list><@callMeLater
- /></code>. After activating this fix, this will be caught
- as parse time error.</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_165">Changes on the Java side</h2>
-
-
- <ul>
- <li>
- <p>Added
- <code class="inline-code">Configuration.setNamingConvention(int)</code>. By
- default FreeMarker will auto-detect the naming convention
- (legacy VS camel case) used for the identifiers that are part of
- the template language, for each template independently. This
- setting lets you enforce a naming convention instead.</p>
- </li>
-
- <li>
- <p><code class="inline-code">Configuration</code> (and in fact any
- <code class="inline-code">Configurable</code>) setting names now can be
- written with camel case as well. For example, if you are
- configuring FreeMarker from properties file, you can have
- <code class="inline-code">defaultEncoding=utf-8</code> instead of
- <code class="inline-code">default_encoding=utf-8</code>. You can use the two
- naming conventions (camel case, and tradition snake case) mixed,
- and <code class="inline-code">Configuration.setNamingConvention(int)</code>
- does not influence this behavior.</p>
- </li>
-
- <li>
- <p>Added
- <code class="inline-code">Configuration.setTemplateUpdateDelayMilliseconds(long)</code>
- and
- <code class="inline-code">Configuration.getTemplateUpdateDelayMilliseconds()</code>.
- This deprecates <code class="inline-code">setTemplateUpdateDelay(int)</code>,
- which uses seconds resolution, hence going against Java
- conventions and often leading to misunderstandings. (Also that
- couldn't have a getter pair.)</p>
- </li>
-
- <li>
- <p>The <code class="inline-code">template_update_delay</code> setting, when
- specified as a string (as inside
- <code class="inline-code">java.util.Properties</code>), supports time units,
- like in <code class="inline-code">template_update_delay=500 ms</code>.</p>
- </li>
-
- <li>
- <p>Added <code class="inline-code">Environment.getCurrentTemplate()</code>
- method, which return the currently executed template (as opposed
- to the main template).</p>
- </li>
-
- <li>
- <p>Added
- <code class="inline-code">WebappTemplateLoader.setAttemptFileAccess(boolean)</code>,
- which can be used to disable the legacy trick where we try to
- load templates through direct file access, so that template
- updating works without restarting. Disabling URL connection
- caches
- (<code class="inline-code">someURLBasedTemplateLoader.setURLConnectionUsesCaches(false)</code>,
- which is also the default since
- <code class="inline-code">incompatible_improvements</code> 2.3.21) probably
- solves that on modern Servlet containers.</p>
- </li>
-
- <li>
- <p>In the <code class="inline-code">FreemarkerServlet</code>
- <code class="inline-code">TemplatePath</code> init-param, paths (like
- <code class="inline-code">/templates</code>) can have a
- <code class="inline-code">?settings(<em class="code-color">...</em>)</code>
- postfix, with which you can set the JavaBean properties of the
- resulting <code class="inline-code">TemplateLoader</code>. For example:
- <code class="inline-code"><param-value>/templates?settings(attemptFileAccess=false,
- URLConnectionUsesCaches=false)</param-value></code></p>
- </li>
-
- <li>
- <p>Added
- <code class="inline-code">FileTemplateLoader.setEmulateCaseSensitiveFileSystem(boolean)</code>.
- This is handy when you are developing on Windows but will deploy
- to a platform with case sensitive file system. The default is
- <code class="inline-code">false</code>, and <code class="inline-code">true</code> is only
- meant for development, not for production installations. The
- default can be overridden by setting the
- <code class="inline-code">org.freemarker.emulateCaseSensitiveFileSystem</code>
- system property to <code class="inline-code">true</code>.</p>
- </li>
-
- <li>
- <p>Bug fixed [<a href="https://sourceforge.net/p/freemarker/bugs/424">424</a>]:
- <code class="inline-code">WebappTemplateLoader</code> didn't find templates
- that are stored in
- <code class="inline-code">WEB-INF/lib/*.jar/META-INF/resources</code>. Files
- under that directory are visible as
- <code class="inline-code">ServletContext</code> resources since Servlet 3.0,
- yet <code class="inline-code">WebappTemplateLoader</code> has usually failed
- to see them because of some internal tricks.</p>
- </li>
-
- <li>
- <p>Bug fixed: If a template "file" was
- successfully opened for reading, but then there was an
- <code class="inline-code">IOException</code> during reading its content, the
- parser (JavaCC) acted like if the template "file"
- was ended there, and the exception was suppressed. It's actually
- a JavaCC quirk that affects many other JavaCC-based languages
- too, but now FreeMarker has added a workaround in the
- <code class="inline-code">Template</code> constructor, and so now an exception
- will be thrown as expected.</p>
- </li>
-
- <li>
- <p>Bug fixed:
- <code class="inline-code">InvalidReferenceException.FAST_INSTANCE</code> could
- accidentally store reference to an
- <code class="inline-code">Environment</code> instance, which hence was never
- garbage collected.</p>
- </li>
-
- <li>
- <p>Bug fixed [<a href="https://sourceforge.net/p/freemarker/bugs/426/">426</a>]:
- When setting <code class="inline-code">incompatible_improvements</code> to
- 2.3.22, the special variable reference
- <code class="inline-code">.template_name</code> in templates always returns
- the name of the main (topmost) template, due to an oversight in
- 2.3.22. Setting <code class="inline-code">incompatible_improvements</code> to
- 2.3.23 restores the old, backward compatible behavior. (Note
- that the old behavior that we emulate is itself broken, as it
- doesn't work well with macro calls; you should use
- <code class="inline-code">.current_template_name</code> or
- <code class="inline-code">.main_template_name</code> instead.)</p>
- </li>
-
- <li>
- <p>Bug fixed [<a href="https://sourceforge.net/p/freemarker/bugs/53/">53</a>]:
- Template parsing was abnormally slow for templates with very
- high number AST (abstract syntax tree) nodes on the same
- hierarchy level.</p>
- </li>
-
- <li>
- <p>Bug fixed: When the template was concurrently replaced on
- the backing store during its first loading was still ongoing,
- the older version of the template could get into the cache with
- the time stamp of the new version, hence it wasn't reloaded
- after the configured update delay.</p>
- </li>
-
- <li>
- <p>Bug fixed: The <code class="inline-code">log_template_exceptions</code>
- setting (added in 2.3.22) couldn't be set through the
- <code class="inline-code">Configurable.setSetting(String, String)</code>
- API.</p>
- </li>
-
- <li>
- <p>Bug fixed:
- <code class="inline-code">StringUtil.FTLStringLiteralEnc</code> has escaped
- <code class="inline-code">$</code> (hence generating an illegal escape) and
- haven't escaped <code class="inline-code">{</code> after <code class="inline-code">$</code>
- and <code class="inline-code">#</code>. While this function is only used for
- generating error messages by FreeMarker, it's a public methods
- so anyone could use it.</p>
- </li>
-
- <li>
- <p>Bugs fixed: Various canonical form glitches (they only
- affect error messages as far as FreeMarker is concerned).</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_166">Other changes</h2>
-
-
- <ul>
- <li>
- <p>Modernized Manual and site design with improved
- functionality (always visible navigation tree, search inside the
- Manual, etc.), thanks to Evangelia Dendramis. (Also now the Site
- uses the same format and HTML generator as the Manual.)</p>
- </li>
-
- <li>
- <p>Many smaller Manual and site content
- updates/improvements.</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_167">Notes</h2>
-
-
- <p>Changes compared to 2.3.23 RC1:</p>
-
- <ul>
- <li>
- <p><code class="inline-code">.current_name_name</code> and
- <code class="inline-code">.main_template_name</code> is now missing
- (<code class="inline-code">null</code>) instead of <code class="inline-code">""</code> if
- the template has no name</p>
- </li>
-
- <li>
- <p>Some minor error message improvements</p>
- </li>
-
- <li>
- <p>Documentation refinements</p>
- </li>
- </ul>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_3_24.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_22.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/versions_2_3_24.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_3_24.html b/builds/2.3.26-nightly/versions_2_3_24.html
deleted file mode 100644
index da73713..0000000
--- a/builds/2.3.26-nightly/versions_2_3_24.html
+++ /dev/null
@@ -1,925 +0,0 @@
-<!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.24 (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.24 (incubating at Apache)">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/versions_2_3_24.html">
-<link rel="canonical" href="http://freemarker.org/docs/versions_2_3_24.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_24.html"><span itemprop="name">2.3.24 (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.24 (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_25.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_23.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="versions_2_3_24" itemprop="headline">2.3.24 (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_160" data-menu-target="autoid_160">Legal changes</a></li><li><a class="page-menu-link" href="#autoid_161" data-menu-target="autoid_161">Changes on the FTL side</a></li><li><a class="page-menu-link" href="#autoid_162" data-menu-target="autoid_162">Changes on the Java side</a></li><li><a class="page-menu-link" href="#autoid_163" data-menu-target="autoid_163">Changes compared to 2.3.24 Release Candidate 1</a></li></ul> </div><p>Release date: 2016-03-28</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. See disclaimer below.</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_160">Legal changes</h2>
-
-
- <p>The owner of FreeMarker is now the Apache Software Foundation.
- The license is still Apache License Version 2.0, just like earlier,
- but the owner is different. The official full product name has
- changed to Apache FreeMarker.</p>
-
- <p><strong>Disclaimer:</strong><em> Apache
- FreeMarker is an effort undergoing incubation at The Apache Software
- Foundation (ASF), sponsored by the <a href="http://incubator.apache.org">Apache Incubator</a>.
- Incubation is required of all newly accepted projects until a
- further review indicates that the infrastructure, communications,
- and decision making process have stabilized in a manner consistent
- with other successful ASF projects. While incubation status is not
- necessarily a reflection of the completeness or stability of the
- code, it does indicate that the project has yet to be fully endorsed
- by the ASF.</em></p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_161">Changes on the FTL side</h2>
-
-
- <ul>
- <li>
- <p>The most important new feature of this release is the
- <a href="dgui_misc_autoescaping.html">auto-escaping and output
- formats mechanism</a>, which deprecates escaping with the
- <a href="ref_directive_escape.html"><code>escape</code>
- directive</a>. These are the changes related to this new
- mechanism (see earlier link for a guide):</p>
-
- <ul>
- <li>
- <p>New <code class="inline-code">ftl</code> header options,
- <code class="inline-code">ouput_format</code> and
- <code class="inline-code">auto_esc</code> to override the
- <code class="inline-code">output_format</code> and
- <code class="inline-code">auto_escaping</code> settings of the template,
- like <code class="inline-code"><#ftl
- output_format='HTML'</code><code class="inline-code">
- auto_esc=false></code>.</p>
- </li>
-
- <li>
- <p>New built-in: <a href="ref_builtins_string.html#ref_builtin_no_esc"><code>no_esc</code></a>.
- Used to prevent auto-escaping, like
- <code class="inline-code">${descriptionInHtml?no_esc}</code>. This doesn't
- work with <code class="inline-code"><#escape
- <em class="code-color">...</em>></code>, only with the
- new auto-escaping mechanism.</p>
- </li>
-
- <li>
- <p>New FTL type, "markup output". This is
- somewhat similar to string, but values of this type aren't
- auto-escaped by the new escaping mechanism, because they are
- known to already hold markup. (For example,
- <code class="inline-code">?esc</code> and <code class="inline-code">?no_esc</code>
- returns a value of this type, hence their results are
- protected from double-escaping problems.)</p>
- </li>
-
- <li>
- <p>New built-in: <a href="ref_builtins_string.html#ref_builtin_esc"><code>esc</code></a>.
- Used for escaping with the current output format when
- auto-escaping is disabled.</p>
- </li>
-
- <li>
- <p>New built-in: <code class="inline-code">markup_string</code>. This
- returns the markup of a <a href="dgui_misc_autoescaping.html#dgui_misc_autoescaping_movalues">markup output
- value</a> as string.</p>
- </li>
-
- <li>
- <p>New built-in: <code class="inline-code">is_markup_output</code>,
- returns <code class="inline-code">true</code> if the value is of type
- "markup output".</p>
- </li>
-
- <li>
- <p>New directive: <code class="inline-code">outputformat</code>, used
- to change the output format for a section of a template,
- like <code class="inline-code"><#outputformat
- "XML"><em class="code-color">...</em></#outputformat></code></p>
- </li>
-
- <li>
- <p>New directives: <code class="inline-code">noautoesc</code> and
- <code class="inline-code">autoesc</code>, used to turn auto-escaping off
- and on for a section of a template, like
- <code class="inline-code"><#noautoesc><em class="code-color">...</em></#noautoesc></code>.</p>
- </li>
-
- <li>
- <p>New built-in variable,
- <code class="inline-code">.output_format</code>, returns the current
- output format at the place of invocation.</p>
- </li>
-
- <li>
- <p>New built-in variable, <code class="inline-code">.auto_esc</code>,
- returns the boolean that tells if auto-escaping is active at
- the place of invocation.</p>
- </li>
-
- <li>
- <p>Block assignments, like <code class="inline-code"><#assign
- <em class="code-color">captured</em>><em class="code-color">...</em></#assign></code>,
- when the current <code class="inline-code">output_format</code> is some
- kind of markup (like HTML), will store the captured output
- not with string type, but with "markup output"
- type. Thus
- <code class="inline-code">${<em class="code-color">captured</em>}</code>
- will not get unwanted escaping.</p>
- </li>
-
- <li>
- <p>The <code class="inline-code">+</code> operator (concatenation)
- works with the new "markup output" type as
- well. Like <code class="inline-code">someMarkup + somePlainText</code>
- will result in markup where <code class="inline-code">somePlainText</code>
- is escaped automatically before it's appended to the
- markup.</p>
- </li>
-
- <li>
- <p>The <code class="inline-code">has_content</code> built-in now
- supports "markup output" values, considering 0
- length markup as empty.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>You can now define custom number and date/time/datetime
- formatters. These are defined by the programmers (and thus can
- implement any kind of exotic formatting rules) when configuring
- FreeMarker, and can be referred with strings starting with
- <code class="inline-code">"@"</code>, like in <code class="inline-code"><#setting
- number_format='@foo'></code>, or
- <code class="inline-code">${n?string.@foo_params}</code>,
- <code class="inline-code"><#setting number_format='@foo params'></code>,
- or <code class="inline-code">${n?string.@foo}</code>,
- <code class="inline-code">${n?string.@foo_params}</code>. For backward
- compatibility, the initial <code class="inline-code">@</code> only has this
- special meaning if either you have any custom formats or <a href="pgui_config_incompatible_improvements.html">the
- <code>incompatible_improvements</code> setting</a> is
- at lest 2.3.24.</p>
- </li>
-
- <li>
- <p>Everywhere where Java <code class="inline-code">DecimalFormat</code>
- patterns are used (like in <code class="inline-code">?string('0.##')</code> or
- <code class="inline-code"><#setting number_format="0.##"></code>), now
- it's possible to specify options like rounding mode or the
- symbols used, with a FreeMarker-specific <a href="ref_builtins_number.html#topic.extendedJavaDecimalFormat">extension to the
- <code>DecimalFormat</code> pattern syntax</a>.</p>
- </li>
-
- <li>
- <p>Added new special variable:
- <code class="inline-code">.incompatible_improvements</code>, which returns the
- <a href="pgui_config_incompatible_improvements.html"><code>incompatbile_improvements</code>
- setting</a> of the current FreeMarker configuration, as a
- string.</p>
- </li>
-
- <li>
- <p><code class="inline-code">?date</code>, <code class="inline-code">?time</code> and
- <code class="inline-code">?datetime</code> now can be called as 0 argument
- method, like <code class="inline-code">?date()</code>, etc., which returns the
- exact object that <code class="inline-code">TemplateDateFormat.parse</code>
- returns, instead of the tricky multi-type object that just using
- <code class="inline-code">?date</code> returns. Because custom
- <code class="inline-code">TemplateDateFormat</code> implementations may return
- custom <code class="inline-code">TemplateDateModel</code> implementations,
- keeping the exact class can be important in some
- applications.</p>
- </li>
-
- <li>
- <p><code class="inline-code"><@</code> and <code class="inline-code"></@</code> is
- now allowed in string literals that contain
- <code class="inline-code">${<em class="code-color">exp</em>}</code>, and will
- be part of the literal as is. Earlier it was a syntactical
- error.</p>
- </li>
-
- <li>
- <p>Bug fixed: With
- <code class="inline-code">incompatible_improvements</code> set to 2.3.24
- (<a href="pgui_datamodel_objectWrapper.html#topic.defaultObjectWrapperIcI">see how
- here...</a>),
- <code class="inline-code"><em class="code-color">m</em>?is_sequence</code>
- doesn't return <code class="inline-code">true</code> for Java methods wrapped
- by <code class="inline-code">BeansWrapper</code> and its subclasses (most
- notably <code class="inline-code">DefaultObjectWrapper</code>) anymore, as
- they only implement the
- <code class="inline-code">[<em class="code-color">index</em>]</code> operator,
- but not <code class="inline-code">?size</code>, which causes
- <code class="inline-code"><#list <em class="code-color">...</em>></code>
- to fail, among others.</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_162">Changes on the Java side</h2>
-
-
- <ul>
- <li>
- <p><em>Attention!</em> FreeMarker
- now requires at least Java 1.5 (aka. Java 5). 2.3.24 has only
- required Java 1.4. (Reason: Without this, new public API-s
- couldn't use generics, which affect negatively the majority of
- users, while old installations that are still using 1.4 are
- unlikely to update FreeMarker anyway.)</p>
- </li>
-
- <li>
- <p><em>Attention!</em> FreeMarker's
- JSP support (if it's used) now requires at least JSP 2.0.
- Earlier it only required JSP 1.1. (Reason: The
- <code class="inline-code">jsp-api</code> dependency for JSP 1.x, which was
- needed for building, can't be legally present in the Maven
- Central Repository, nor be provided by freemarker.org.)</p>
- </li>
-
- <li>
- <p>Added new configuration setting:
- <code class="inline-code">template_configurations</code>. This allows
- overriding the settings coming from the shared
- <code class="inline-code">Configuration</code> object for individual
- templates, based on template name patterns. <a href="pgui_config_templateconfigurations.html">See more
- here...</a></p>
- </li>
-
- <li>
- <p>Related to the <a href="dgui_misc_autoescaping.html">new
- auto-escaping mechanism</a>:</p>
-
- <ul>
- <li>
- <p>As FTL has now a new type, "markup
- output", there's also a corresponding new model
- interface, <code class="inline-code">TemplateMarkupOutputModel</code>.
- This also means that you can prevent the auto-escaping of
- values coming from the data-model by returning a
- <code class="inline-code">TemplateMarkupOutputModel</code> instead of a
- <code class="inline-code">String</code>. Like the template author can just
- write <code class="inline-code">${messages.foo}</code>, and it will be
- auto-escaped or not depending on if the message is known to
- be markup or not.</p>
- </li>
-
- <li>
- <p>Added new configuration setting:
- <code class="inline-code">recognize_standard_file_extensions</code>. When
- <code class="inline-code">true</code>, templates whose source name ends
- with <code class="inline-code">".ftlh"</code> will get
- <code class="inline-code">HTML</code> <code class="inline-code">output_format</code>,
- and those whose name ends with <code class="inline-code">".ftlx"</code>
- get <code class="inline-code">XML</code> <code class="inline-code">output_format</code>,
- in both cases with auto-escaping on. 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.24 (or higher) then this setting defaults to
- <code class="inline-code">true</code>. Otherwise it's default is
- <code class="inline-code">false</code>, but enabling it is highly
- recommended.</p>
- </li>
-
- <li>
- <p>Added new configuration setting:
- <code class="inline-code">output_format</code>. This specifies the <a href="dgui_misc_autoescaping.html#dgui_misc_autoescaping_outputformat">output
- format</a> object to use (such as
- <code class="inline-code">HTMLOutputFormat.INSTANCE</code>,
- <code class="inline-code">XMLOutputFormat.INSTANCE</code>, etc.) that
- governs auto-escaping. The output format can be different
- for different templates, using the
- <code class="inline-code">template_configurations</code> setting (<a href="pgui_config_outputformatsautoesc.html">see here
- how...</a>).</p>
- </li>
-
- <li>
- <p>Added new configuration setting:
- <code class="inline-code">registered_custom_output_formats</code>. With
- this you can add new <code class="inline-code">OutputFormat</code>-s that
- templates can refer to by name (like in <code class="inline-code"><#ftl
- output_format="foo"></code>).</p>
- </li>
-
- <li>
- <p>Added new configuration setting:
- <code class="inline-code">auto_escaping_policy</code>. This decides when
- auto-escaping should be enabled depending on the current
- output format.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Changes related to the custom number and
- date/time/datetime formating feature:</p>
-
- <ul>
- <li>
- <p>Added new classes for implementing custom formatters:
- <code class="inline-code">freemarker.core.TemplateNumberFormat</code>,
- <code class="inline-code">TemplateNumberFormatFactory</code>,
- <code class="inline-code">TemplateDateFormat</code>,
- <code class="inline-code">TemplateDateFormatFactory</code>, also the
- exceptions these can throw. These allow implementing any
- kind of formatting rule that's doable in Java (i.e., they
- aren't restricted to any <code class="inline-code">java.text</code>
- formatters). Furthermore these formatters get the
- <code class="inline-code">TemplateModel</code> instead of a the bare
- <code class="inline-code">java.lang.Number</code> or
- <code class="inline-code">java.util.Date</code>, which lets you use the
- extra application-specific meta information that you may
- pack into the <code class="inline-code">TemplateModel</code>-s, such as
- physical unit, preferred precision, and so on.</p>
- </li>
-
- <li>
- <p>Added <code class="inline-code">custom_number_formats</code> and
- <code class="inline-code">custom_date_formats</code> settings
- (<code class="inline-code">Configurable.setCustomNumberFormats(Map<String,
- TemplateNumberFormatFactory>)</code> and
- <code class="inline-code">Configurable.setCustomDateFormats(Map<String,
- TemplateDateFormatFactory>)</code>) with which you can
- register your own formats. These formats can be referred
- from everywhere where you can use a string to define a
- format, with a format string like <code class="inline-code">"@foo"</code>
- or <code class="inline-code">"@foo params"</code>, where
- <code class="inline-code">"foo"</code> is the key in the
- <code class="inline-code">Map<String, ...></code> parameter of the
- earlier shown methods, and the parameters (if any) are
- interpreted by the
- <code class="inline-code">Template<em class="code-color">Xxx</em>FormatFactory</code>
- implementation that you provide. Like, you can issue
- <code class="inline-code">cfg.setNumberFormat("@foo params")</code>, or
- <code class="inline-code"><#setting number_format='@foo
- params'></code>, or
- <code class="inline-code">${n?string.@foo_params}</code>, similarly as you
- can issue <code class="inline-code">cfg.setNumberFormat("0.##")</code>,
- etc. For backward compatibility, the initial
- <code class="inline-code">@</code> only has this special meaning if either
- you have any custom formats or <a href="pgui_config_incompatible_improvements.html">the
- <code>incompatible_improvements</code> setting</a>
- is at least 2.3.24. Note that the
- <code class="inline-code">custom_number_formats</code> and
- <code class="inline-code">custom_date_formats</code> settings can be set
- per-template (via the new
- <code class="inline-code">template_configurations</code> settings) or
- per-<code class="inline-code">Environment</code> too, thus
- <code class="inline-code">@foo</code> can mean something different in
- different templates.</p>
- </li>
-
- <li>
- <p>Added new <code class="inline-code">Environment</code> methods
- returning <code class="inline-code">TemplateNumberFormat</code> and
- <code class="inline-code">TemplateDateFormat</code> objects. See the
- <code class="inline-code">getTemplateNumberFormat(<em class="code-color">...</em>)</code>
- and
- <code class="inline-code">getTemplateDateFormat(<em class="code-color">...</em>)</code>
- variations in the API.</p>
- </li>
-
- <li>
- <p>Added
- <code class="inline-code">freemarker.core.AliasTemplateNumberFormatFactory</code>
- and <code class="inline-code">AliasTemplateDateFormatFactory</code>, which
- can be used to create custom formats that are aliases to
- other formats. For example, instead of writing
- <code class="inline-code">${n?string["0.00"]}</code> again and again, you
- can define the custom format <code class="inline-code">"price"</code> as
- the alias to the format string <code class="inline-code">"0.00"</code> in
- the configuration, and then use
- <code class="inline-code">${n?string.@price}</code>. Thus, you can control
- at a central place how prices look. Furthermore, the alias
- can chose a different target format string depending on the
- current locale; this is especially useful for dates, where
- conventions can significantly differ in different
- countries.</p>
- </li>
-
- <li>
- <p>It's now possible to have HTML or other markup in
- number and date/time/datetime formatting results, like
- <code class="inline-code">1.23*10<sup>6</sup></code>, which
- won't be accidentally auto-escaped, as FreeMarker knows that
- it's already HTML. This is done by returning a
- <code class="inline-code">TemplateMarkupOutputModel</code> instead of a
- <code class="inline-code">String</code>; see the new auto-escaping
- mechanism earlier. Note that no out-of-the-box format
- utilizes this (at the moment), but you could write such
- custom format.</p>
- </li>
-
- <li>
- <p>The internal format object caching architecture has
- been reworked, so that it can handle custom formats too.
- This reworking also fixes some bottlenecks under highly
- concurrent load, and some (otherwise unlikely) memory leak
- possibilities.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>In the <code class="inline-code">number_format</code> configuration
- setting, when it holds a Java <code class="inline-code">DecimalFormat</code>
- pattern (like <code class="inline-code">"0.##"</code>), it's now possible to
- specify options like rounding mode or the symbols used, with a
- FreeMarker-specific <a href="ref_builtins_number.html#topic.extendedJavaDecimalFormat">extension to the
- pattern syntax</a>.</p>
- </li>
-
- <li>
- <p>New <code class="inline-code">FreemarkerServlet</code> init-params (see
- <a href="http://freemarker.org/docs/api/freemarker/ext/servlet/FreemarkerServlet.html">the
- <code>FreemarkerSerlvet</code> API documentation</a>
- for details):</p>
-
- <ul>
- <li>
- <p><code class="inline-code">OverrideResponseContentType</code>:
- Specifies when should we override the
- <code class="inline-code">contentType</code> that's already set (i.e.,
- non-<code class="inline-code">null</code>) in the
- <code class="inline-code">HttpServletResponse</code>. Earlier, we have
- always set it, and that's still the default behavior. But
- now that this init-param exists, you can change that
- behavior, so that the <code class="inline-code">contentType</code> you
- have specified before forwarding to
- <code class="inline-code">FreemarkerServlet</code> matters.</p>
- </li>
-
- <li>
- <p><code class="inline-code">OverrideResponseLocale</code>: Specifies
- if we should override the <code class="inline-code">locale</code> that's
- already set (i.e., non-<code class="inline-code">null</code>) in the
- <code class="inline-code">HttpServletResponse</code>. Earlier, we have
- always set it, but now this behavior can be changed so that
- we only set it if it wasn't already set.</p>
- </li>
-
- <li>
- <p><code class="inline-code">ResponseCharacterEncoding</code>:
- Deprecates the old (and quirky) logic of specifying the
- output charset, which is putting it into the
- <code class="inline-code">ContentType</code> init-param after the MIME
- type, otherwise falling back to the template file charset.
- The possible values are <code class="inline-code">legacy</code> (the
- default for backward compatibility),
- <code class="inline-code">fromTemplate</code> (which is
- <code class="inline-code">legacy</code> without quirks, and is aware of
- the <code class="inline-code">outputEncoding</code> setting),
- <code class="inline-code">doNotSet</code> (keeps what the caller has
- already set in the <code class="inline-code">ServletRespone</code>) and
- <code class="inline-code">force</code> followed by a charset name (forces
- a specific output charset).</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Added
- <code class="inline-code">freemarker.cache.ByteArrayTemplateLoader</code>,
- which is similar to <code class="inline-code">StringTemplateLoader</code>, but
- stores the templates as <code class="inline-code">byte[]</code>-s instead of
- as <code class="inline-code">String</code>-s.</p>
- </li>
-
- <li>
- <p>Upgraded JavaCC (used during build to generate the FTL
- parser) from 3.2 to 6.1.2.</p>
- </li>
-
- <li>
- <p>Added <code class="inline-code">Configurable.getSettingNames(boolean
- camelCase)</code>, which returns the set of valid setting
- names. This can be useful for auto-completion and such.</p>
- </li>
-
- <li>
- <p>Fixes and improvements in the "object
- builder" mini-language used for configuring FreeMarker
- from <code class="inline-code">java.util.Properties</code> or other
- string-only sources (not used in templates). This is
- <em>not to be confused with the template language
- syntax</em>, which has nothing to do with the
- "object builder" syntax we are writing about here.
- The improvements are:</p>
-
- <ul>
- <li>
- <p>Bug fixed: For nested builder expressions, the
- top-level result class restriction were applied
- accidentally.</p>
- </li>
-
- <li>
- <p>When resolving an expression like
- <code class="inline-code">com.example.Foo()</code>, if there's a builder
- class (<code class="inline-code">com.example.FooBuilder</code>), the
- non-builder class (<code class="inline-code">com.example.Foo</code>) need
- not exist anymore. After all,
- <code class="inline-code">FooBuilder.build()</code> instantiates from any
- class it wants to anyway.</p>
- </li>
-
- <li>
- <p><code class="inline-code">TimeZone</code> objects can be created
- like <code class="inline-code">TimeZone("UTC")</code>, despite that
- there's no a such constructor.</p>
- </li>
-
- <li>
- <p>Added support for creating lists with <code class="inline-code">[
- <em class="code-color">item1</em>,
- <em class="code-color">item2</em>,
- <em class="code-color">...</em>
- <em class="code-color">itemN</em> ]</code> syntax.</p>
- </li>
-
- <li>
- <p>Added support for creating maps with <code class="inline-code">{
- <em class="code-color">key1</em>:
- <em class="code-color">value1</em>,
- <em class="code-color">key2</em>:
- <em class="code-color">value2</em>,
- <em class="code-color">...</em>
- <em class="code-color">keyN</em>:
- <em class="code-color">valueN</em> }</code> syntax.</p>
- </li>
-
- <li>
- <p>A number without decimal point will now be parsed to
- <code class="inline-code">Integer</code>, <code class="inline-code">Long</code>, or
- <code class="inline-code">BigInteger</code>, depending on the size of the
- number. Earlier all numbers were parsed to
- <code class="inline-code">BigDecimal</code>-s, but that had little
- importance before lists and maps were added, as the number
- was converted to the constructor or setter parameter type
- anyway.</p>
- </li>
-
- <li>
- <p>Number literals can have Java type suffixes
- (<code class="inline-code">f</code>, <code class="inline-code">d</code>,
- <code class="inline-code">l</code>), plus <code class="inline-code">bd</code> for
- <code class="inline-code">BigDecimal</code> and <code class="inline-code">bi</code> for
- <code class="inline-code">BigInteger</code>.</p>
- </li>
-
- <li>
- <p>Public static fields can be referred, like
- <code class="inline-code">com.example.MyClass.MY_CONSTANT</code> or
- <code class="inline-code">Configuration.AUTO_DETECT_TAG_SYNTAX</code>.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Decreased the stack usage of template execution, which can
- have importance if you have very very deeply nested
- templates.</p>
- </li>
-
- <li>
- <p>Added
- <code class="inline-code">MultiTemplateLoader.setSticky(boolean)</code> and
- <code class="inline-code">MultiTemplateLoader.isSticky()</code>, with which
- you can disable the default behavior, where once a template was
- found in a child <code class="inline-code">TemplateLoader</code>, it will be
- searched there first next time (typically, when the template
- update delay is expired). With the <code class="inline-code">sticky</code>
- property set to <code class="inline-code">false</code>, the child
- <code class="inline-code">TemplateLoader</code>-s will be always searched in
- the order as they were added to the
- <code class="inline-code">MultiTemplateLoader</code>.</p>
- </li>
-
- <li>
- <p>Added
- <code class="inline-code">StringTemplateLoader.removeTemplate(String)</code>
- method.</p>
- </li>
-
- <li>
- <p>Bug fixed, only with
- <code class="inline-code">incompatible_improvements</code> set to 2.3.24
- (<a href="pgui_datamodel_objectWrapper.html#topic.defaultObjectWrapperIcI">see how
- here...</a>): Expressions inside interpolations that were
- inside <em>string literal expressions</em> (not
- <code class="inline-code">${<em class="code-color">...</em>}</code>-s in
- general), like in <code class="inline-code"><#assign s="Hello
- ${name}!"></code>, always used
- <code class="inline-code">incompatibleImprovements</code> 0 (2.3.0 in effect).
- This means that expressions inside string literals had missed
- the <code class="inline-code">?html</code>,
- <code class="inline-code">?iso_<em class="code-color">...</em></code>,
- <code class="inline-code">?is_enumerable</code>, <code class="inline-code">?c</code>, etc.
- fixes/improvements.</p>
- </li>
-
- <li>
- <p>Bug fixed [<a href="https://sourceforge.net/p/freemarker/bugs/439/">439</a>]:
- <code class="inline-code">FileTemplateLoader</code> with
- <code class="inline-code">emulateCaseSensitiveFileSystem</code> set to
- <code class="inline-code">true</code> (used for development) wasn't properly
- synchronized, leading to random
- <code class="inline-code">NullPointerException</code>-s or other
- misbehavior.</p>
- </li>
-
- <li>
- <p>Bug fixed: It wasn't well defined when a Java
- <code class="inline-code">Iterator</code> counts as empty. Depending on what
- <code class="inline-code">ObjectWrapper</code> you are using, one of these
- fixes apply:</p>
-
- <ul>
- <li>
- <p><code class="inline-code">DefaultObjectWrapper</code> (fix is always
- active): Operations on the <code class="inline-code">Iterator</code> that
- only check if it's empty without reading an element from it,
- such as <code class="inline-code">?has_content</code>, won't cause a later
- iteration (or further emptiness check) to fail anymore.
- Earlier, in certain situations, the second operation has
- failed saying that the iterator "can be listed only
- once".</p>
- </li>
-
- <li>
- <p><code class="inline-code">BeansWrapper</code> (when it's not
- extended by <code class="inline-code">DefaultObjectWrapper</code>), if
- it's <code class="inline-code">incompatibleImprovements</code> property is
- set to 2.3.24 (or higher): <code class="inline-code">Iterator</code>-s
- were always said to be non-empty when using
- <code class="inline-code">?has_content</code> and such (i.e., operators
- that check emptiness without reading any elements). Now an
- <code class="inline-code">Iterator</code> counts as empty exactly if it
- has no elements left. (Note that this bug has never affected
- basic functionality, like <code class="inline-code"><#list
- ...></code>.)</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Bug fixed: The (rarely used) cause exception of
- <code class="inline-code">ParseException</code>-s wasn't set</p>
- </li>
-
- <li>
- <p>Bug fixed: When the
- <code class="inline-code">incomaptible_improvements</code> setting of an
- existing <code class="inline-code">Configuration</code> was changed, the
- template cache sometimes wasn't recreated, hence old templates
- could survive.</p>
- </li>
-
- <li>
- <p>Bug fixed, with
- <code class="inline-code">incompatible_improvements</code> set to 2.3.24
- (<a href="pgui_datamodel_objectWrapper.html#topic.defaultObjectWrapperIcI">see how
- here...</a>): The <code class="inline-code">#import</code> directive meant
- to copy the library variable into a global variable if it's
- executed in the main namespace, but that haven't happened when
- the imported template was already imported earlier in another
- namespace.</p>
- </li>
-
- <li>
- <p>Fixes in the XML processing feature
- (<code class="inline-code">freemarker.ext.dom</code>):</p>
-
- <ul>
- <li>
- <p>Bug fixed: XPath queries that has only contained
- characters that are valid in XML element names and has also
- contained <code class="inline-code">::</code> (which is valid in names in
- namespace-unware documents), like
- <code class="inline-code">e['following-sibling::foo']</code>, were
- interpreted as literal element names (giving 0 hits) rather
- than as XPath expressions. Note that there were no such
- problem with <code class="inline-code">e['following-sibling::*']</code>
- for example, as it's not a valid XML element name according
- the XML specification. This fix can actually break
- applications that has processed namespace unaware XML that
- use <code class="inline-code">::</code> as part of element or attribute
- names, but such an application is highly unlikely, unlike
- running into the fixed problem. (Unfortunately, using
- <code class="inline-code">incompatible_improvements</code> wasn't
- technically possible here.)</p>
- </li>
-
- <li>
- <p>Bug fixed: The <code class="inline-code">@@qname</code> of elements
- that belong to the XML namespace declared as the default via
- <code class="inline-code"><#ftl ns_prefixes={'D':'...', ...
- }></code> no longer starts with <code class="inline-code">D:</code>,
- instead they just start with no name space prefix.</p>
- </li>
-
- <li>
- <p>Bug fixed: In the markup returned by the
- <code class="inline-code">@@markup</code> key, when there were multiple
- namespaces for which there was no prefix associated with via
- <code class="inline-code"><#ftl
- ns_prefixes=<em class="code-color">...</em>></code>,
- all those namespaces were assigned to the same
- auto-generated <code class="inline-code">xmlns</code> prefix (usually
- "a"). Now they will get "a",
- "b", "c", etc. prefixes.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>JSP TLD loading now quotes the location of
- <code class="inline-code">jar</code>-s (and other <code class="inline-code">zip</code>-s)
- which can't be loaded due to zip format errors in the error
- message.</p>
- </li>
-
- <li>
- <p>Added an overload to
- <code class="inline-code">Configuration.getSupportedBuiltInNames</code> and
- <code class="inline-code">Configuration.getSupportedBuiltInDirectiveNames</code>
- that has a <code class="inline-code">namingConvention</code> parameter. This
- is useful for tooling as since 2.3.23 we support both camel case
- naming convention (like
- <code class="inline-code"><em class="code-color">s</em>?upperCase</code>) and
- the legacy one (like
- <code class="inline-code"><em class="code-color">s</em>?upper_case</code>).
- Furthermore the old 0 argument overload will now utilize
- <code class="inline-code">Configuration.getNamingConvention()</code> to only
- return the relevant names if it's not
- <code class="inline-code">AUTO_DETECT_NAMING_CONVENTION</code>.</p>
- </li>
-
- <li>
- <p>Internal reworking to simplify the AST (the
- <code class="inline-code">TemplateElement</code> structure). The related
- technically public API was marked as internal for a good while.
- For those who still use that API, the visible change is that
- <code class="inline-code">TemplateElement</code>-s now almost never has a
- <code class="inline-code">MixedContent</code> parent, instead, the parent is
- directly whatever element the child element indeed belongs under
- when you look at the source code (like the enclosing
- <code class="inline-code">#list</code> for example, while earlier you often
- had to go through a <code class="inline-code">MixedContent</code> first whose
- parent was the <code class="inline-code">#list</code>). Note that when you
- have moved downwards, i.e., towards the child elements, these
- <code class="inline-code">MixedContent</code> parents weren't visible and were
- silently skipped, so the tree traversal API was inconsistent.
- Now it's consistent.</p>
- </li>
-
- <li>
- <p>Due to the above change again, the return type of
- <code class="inline-code">freemarker.core.DebugBreak.accept()</code> and
- <code class="inline-code">freemarker.core.TextBlock.accept()</code> has
- changed from <code class="inline-code">void</code> to
- <code class="inline-code">TemplateElement[]</code>. This again is highly
- unlikely to affect anyone, and these meant to be internal API-s
- anyway, but as these two <code class="inline-code">accept</code> methods has
- wider than package visibility for historical reasons, we mention
- this change.</p>
- </li>
-
- <li>
- <p>The non-public AST API of
- <code class="inline-code">freemarker.core.StringLiteral</code>-s has been
- changed. In principle it doesn't mater as it isn't a public API,
- but some might used these regardless to introspect templates.
- Earlier it had an "embedded template" parameter
- inside, now it has 0 (for purely static string literals), one or
- more "value part"-s, which are
- <code class="inline-code">String</code>-s and
- <code class="inline-code">Interpolation</code>-s.</p>
- </li>
-
- <li>
- <p>Internal code cleanup: Mostly for consistent source code
- formatting, also many parser construction/setup cleanup</p>
- </li>
-
- <li>
- <p>Source code changes to conform to Apache source release
- policy, such as adding copyright headers and getting rid of test
- <code class="inline-code">jar</code>-s committed into the source code. Eclipse
- project files were also removed, instead the
- <code class="inline-code">README</code> describes how to set up the
- project.</p>
- </li>
-
- <li>
- <p>Build script and distribution artifact changes to conform
- to Apache release policy, most notably it produces separate
- source and binary releases.</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_163">Changes compared to 2.3.24 Release Candidate 1</h2>
-
-
- <ul>
- <li>
- <p>Added
- <code class="inline-code">MultiTemplateLoader.setSticky(boolean)</code> and
- <code class="inline-code">MultiTemplateLoader.isSticky()</code>, with which
- you can disable the default behavior, where once a template was
- found in a child <code class="inline-code">TemplateLoader</code>, it will be
- searched there first next time (typically, when the template
- update delay is expired). With the <code class="inline-code">sticky</code>
- property set to <code class="inline-code">false</code>, the child
- <code class="inline-code">TemplateLoader</code>-s will be always searched in
- the order as they were added to the
- <code class="inline-code">MultiTemplateLoader</code>.</p>
- </li>
-
- <li>
- <p>Added
- <code class="inline-code">StringTemplateLoader.removeTemplate(String)</code>
- method.</p>
- </li>
-
- <li>
- <p>Source code changes to conform to Apache release policy
- and recommendations:</p>
-
- <ul>
- <li>
- <p>No more binary test <code class="inline-code">jar</code>-s committed
- into the source code (instead, they are generated
- on-the-fly)</p>
- </li>
-
- <li>
- <p>Eclipse project files were removed, instead, the
- <code class="inline-code">README</code> describes how to set up the
- project.</p>
- </li>
- </ul>
- </li>
- </ul>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_3_25.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_23.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>\u20132017
-<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>
[07/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/versions_2_3_22.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_3_22.html b/builds/2.3.26-nightly/versions_2_3_22.html
deleted file mode 100644
index 15a52c2..0000000
--- a/builds/2.3.26-nightly/versions_2_3_22.html
+++ /dev/null
@@ -1,1197 +0,0 @@
-<!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.22 - 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.22">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/versions_2_3_22.html">
-<link rel="canonical" href="http://freemarker.org/docs/versions_2_3_22.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_22.html"><span itemprop="name">2.3.22</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.22"];</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_23.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_21.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="versions_2_3_22" itemprop="headline">2.3.22</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_168" data-menu-target="autoid_168">Changes on the FTL side</a></li><li><a class="page-menu-link" href="#autoid_169" data-menu-target="autoid_169">Changes on the Java side</a></li><li><a class="page-menu-link" href="#autoid_170" data-menu-target="autoid_170">Notes</a></li></ul> </div><p>Date of release: 2015-03-01</p><p>Note that since 2.3.22 is designed to be fully backward
- compatible with the previous 2.3.x releases, <em>some of the
- improvements and fixes described below are only activated when you
- specifically ask for 2.3.22 "incompatible
- improvements"</em> (it's always clearly indicated),
- because they could, with very small chance, break existing
- applications. For actively maintained applications it's probably
- better to allow them. See <a href="pgui_config_incompatible_improvements.html#pgui_config_incompatible_improvements_how_to_set">how to set
- "incomplatible improvements" here</a>.</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_168">Changes on the FTL side</h2>
-
-
- <ul>
- <li>
- <p>New built-ins: <code class="inline-code">api</code> and
- <code class="inline-code">has_api</code>.
- <code class="inline-code"><em class="code-color">value</em>?api</code> provides
- access to the API (usually, the Java API) of
- <code class="inline-code"><em class="code-color">value</em></code>, like
- <code class="inline-code"><em class="code-color">value</em>?api.<em class="code-color">someJavaMethod()</em></code>
- or
- <code class="inline-code"><em class="code-color">value</em>?api.<em class="code-color">someBeanProperty</em></code>),
- if the value itself supports exposing its API. This meant to be
- used rarely, when you need to call a Java method of an object,
- but the by-design simplistic view of the value that FreeMarker
- exposes to the templates hides that, and there's no equivalent
- built-in either. For example, when you put a
- <code class="inline-code">Map</code> into the data-model (and you are using
- the default object wrapper), <code class="inline-code">myMap.myMethod()</code>
- in a template basically translates to <code class="inline-code">((Method)
- myMap.get("myMethod")).invoke(...)</code> in Java, thus you
- can't call <code class="inline-code">myMethod</code>. If, however, you write
- <code class="inline-code">myMap?api.myMethod()</code> instead, that means
- <code class="inline-code">myMap.myMethod()</code> in Java. Similarly,
- <code class="inline-code">myMap?api.myProperty</code> translates to
- <code class="inline-code">myMap.getMyProperty()</code> in Java, instead of to
- <code class="inline-code">myMap.get("myProperty")</code>.</p>
-
- <p><em>If you can, rely on the capabilities of the FTL
- types and the related built-ins as far as possible. Using
- <code class="inline-code">?api</code> is only the last
- resort.</em></p>
-
- <p>Using <code class="inline-code">?api</code> also happens to offer a
- workaround for the lack of non-<code class="inline-code">String</code>
- <code class="inline-code">Map</code> key support in FTL's
- <code class="inline-code">[]</code> operator (as in
- <code class="inline-code">myMap[key]</code>), because now you can write
- <code class="inline-code">myMap?api.get(nonStringKey)</code>.</p>
-
- <p><code class="inline-code">?api</code> is not enabled by default and
- isn't available for all values. <a href="ref_builtins_expert.html#ref_buitin_api_and_has_api">See more
- here...</a></p>
- </li>
-
- <li>
- <p>Identifiers (like <code class="inline-code">someVariable</code>) can now
- contain minus (<code class="inline-code">-</code>), dot
- (<code class="inline-code">.</code>), and colon (<code class="inline-code">:</code>) at any
- position, but those characters <em>must be escaped with a
- preceding backslash</em> (<code class="inline-code">\</code>), or else
- they would be interpreted as operators. For example, to read the
- variable whose name is "data-id", the correct
- expression is <code class="inline-code">data\-id</code>, as
- <code class="inline-code">data-id</code> would be interpreted as "data
- minus id". This also works for named macro parameters,
- which is useful when you want to accept arbitrary HTML
- attributes in a catch-all parameter, like in <code class="inline-code"><@box
- class="someCssClass" data\-id=product.id /></code>. (When
- you enumerate the catch-all parameter names inside the macro,
- the key string you get is <code class="inline-code">"data-id"</code> without
- <code class="inline-code">\</code> of course.)</p>
- </li>
-
- <li>
- <p>Added <code class="inline-code">?lower_abc</code> and
- <code class="inline-code">?upper_abc</code>. This converts
- <code class="inline-code">1</code>, <code class="inline-code">2</code>,
- <code class="inline-code">3</code>, etc., to the string
- <code class="inline-code">"a"</code>, <code class="inline-code">"b"</code>,
- <code class="inline-code">"c"</code>, etc. (or for <code class="inline-code">"A"</code>,
- <code class="inline-code">"B"</code>, <code class="inline-code">"C"</code>, etc.). When
- reaching <code class="inline-code">"z"</code>, it continues like
- <code class="inline-code">"aa"</code>, <code class="inline-code">"ab"</code>, etc. This is
- the same logic that you can see in column labels in spreadsheet
- applications (like Excel or Calc). <a href="ref_builtins_number.html#ref_builtin_lower_abc">More details...</a></p>
- </li>
-
- <li>
- <p>Added <code class="inline-code">?keep_before_last</code> and
- <code class="inline-code">?keep_after_last</code>. Example:
- <code class="inline-code">"foo.bar.txt"?keep_before_last(".")</code> returns
- <code class="inline-code">"foo.bar"</code>,
- <code class="inline-code">"foo.bar.txt"?keep_after_last(".")</code> returns
- <code class="inline-code">"txt"</code>. (These work like
- <code class="inline-code">?keep_before</code> and
- <code class="inline-code">?keep_after</code>, but those look for the first
- occurrence of the separator.)</p>
- </li>
-
- <li>
- <p>Added many missing UNICODE letters and digits to the set
- of legal identifier characters, like Korean letters (bug fixed:
- [<a href="https://sourceforge.net/p/freemarker/bugs/129/">129</a>])</p>
- </li>
-
- <li>
- <p>Error message quality improvements:</p>
-
- <ul>
- <li>
- <p>Several improvements when calling custom JSP tags; see
- them in its own section later.</p>
- </li>
-
- <li>
- <p>Bug fixed: When localized lookup or template
- acquisition has kicked in, error messages have still quoted
- the name used for requesting the template, rather that the
- actual template source name (like <code class="inline-code">foo.ftl</code>
- instead of <code class="inline-code">foo_en.ftl</code>, when the template
- was get as <code class="inline-code">foo.ftl</code>, but behind the scenes
- was loaded from <code class="inline-code">foo_en.ftl</code>).</p>
- </li>
-
- <li>
- <p>"Template not found" errors are now more
- detailed, giving hints about accidentally using
- <code class="inline-code">\</code> instead of <code class="inline-code">/</code>, or
- backing out of the <code class="inline-code">TemplateLoader</code>'s root
- directory.</p>
- </li>
-
- <li>
- <p>The <code class="inline-code">#setting</code> directive gives more
- helpful error message when the setting name is not
- recognized, and lists the allowed setting names or a
- correction suggestion.</p>
- </li>
-
- <li>
- <p>When a bad special variable name
- (<code class="inline-code">.<em class="code-color">name</em></code>) is
- encountered, the list of available names is shown in the
- error message.</p>
- </li>
-
- <li>
- <p>When <code class="inline-code">Map.get</code> or
- <code class="inline-code">Map.containsKey</code> of a wrapped
- <code class="inline-code">Map</code> throws a
- <code class="inline-code">ClassCastException</code> or
- <code class="inline-code">NullPointerException</code>, the error will
- point to the causing FTL expression (with some explanation),
- rather than bubbling up as low level runtime error.</p>
- </li>
- </ul>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_169">Changes on the Java side</h2>
-
-
- <ul>
- <li>
- <p>Object wrapping improvements:</p>
-
- <ul>
- <li>
- <p><code class="inline-code">DefaultObjectWrapper</code>, only with its
- <code class="inline-code">incompatible_improvements</code> set to 2.3.22
- (<a href="pgui_datamodel_objectWrapper.html#topic.defaultObjectWrapperIcI">see how
- here...</a>), or more precisely, with its new
- <code class="inline-code">useAdaptersForContainers</code> setting set to
- <code class="inline-code">true</code> (which defaults to
- <code class="inline-code">true</code> when
- <code class="inline-code">incompatible_improvements</code> is set to
- 2.3.22): It doesn't copy <code class="inline-code">Map</code>-s,
- <code class="inline-code">List</code>-s, and arrays anymore when wrapping
- them into <code class="inline-code">TemplateModel</code>-s (which is the
- interface through with templates access all values), just
- wraps them into thin <code class="inline-code">TemplateModel</code>
- adapters, that will reach the original object for all
- operations. The wrapped values will be instances of the new
- <code class="inline-code">DefaultMapAdapter</code>,
- <code class="inline-code">DefaultListAdapter</code> and
- <code class="inline-code">DefaultArrayAdapter</code> classes, instead of
- the legacy (copying) <code class="inline-code">SimpleHash</code> and
- <code class="inline-code">SimpleSequence</code> classes. (Note that many
- projects use pure <code class="inline-code">BeansWrapper</code> instead of
- <code class="inline-code">DefaultObjectWrapper</code>, which has always
- used the adapter approach, albeit a different implementation
- of it. As the shortcomings of
- <code class="inline-code">DefaultObjectWrapper</code> are fixed now, it's
- always recommended over <code class="inline-code">BeansWrapper</code>, as
- <code class="inline-code">BeansWrapper</code> gives quite confusing
- multi-typed values and is substantially slower.)</p>
-
- <p>While keeping backward compatibility as much as
- possible was an important factor in this change, this is a
- quite deep change, so you may want to <a href="#topic.defaultObjectWrapperSwitchToAdapters">review
- the consequences and reasons here...</a> (But again, this
- change is <em>not</em> active by default, so
- merely updating FreeMarker wont risk the stability of
- existing applications)</p>
- </li>
-
- <li>
- <p>Added <code class="inline-code">TemplateMethodModelEx
- BeansWrapper.wrap(Object object, Method method)</code>
- for wrapping methods without wrapping their parent object
- and without going through overloaded method selection on
- invocation time.</p>
- </li>
-
- <li>
- <p>Bug fixed [<a href="http://sourceforge.net/p/freemarker/bugs/372/">372</a>]:
- <code class="inline-code">ClassCastException</code> when a
- <code class="inline-code">SortedMap</code> (typically, a
- <code class="inline-code">TreeMap</code>) is wrapped with
- <code class="inline-code">DefaultObjectWrapper</code> and then a 1
- character long string is get from it that doesn't exist. To
- fix the issue, if the wrapped <code class="inline-code">Map</code> is a
- <code class="inline-code">SortedMap</code> and it's wrapped by
- <code class="inline-code">DefaultObjectWrapper</code>, it won't try to
- fall back to a <code class="inline-code">Character</code> key after with
- the <code class="inline-code">String</code> key has got
- <code class="inline-code">null</code>. (This change should be backward
- compatible, because when a <code class="inline-code">SortedMap</code> has
- <code class="inline-code">Character</code> keys, the initial attempt with
- <code class="inline-code">String</code> key causes
- <code class="inline-code">ClassCastException</code>, thus, such
- <code class="inline-code">SortedMap</code>-s were never usable as FTL
- hashes.)</p>
- </li>
-
- <li>
- <p>Bug fixed [<a href="http://sourceforge.net/p/freemarker/bugs/368/">368</a>]:
- Only with <code class="inline-code">incompatible_improvements</code> set
- to 2.3.22 or with its new
- <code class="inline-code">useAdaptersForContainers</code> setting set to
- <code class="inline-code">true</code>: Key order and other behavioral
- peculiarities of "custom"
- <code class="inline-code">Map</code> types isn't lost anymore. The same
- stands for <code class="inline-code">List</code>-s too.</p>
- </li>
-
- <li>
- <p>Added new setting,
- <code class="inline-code">forceLegacyNonListCollections</code>. This only
- matters when <code class="inline-code">useAdaptersForContainers</code> is
- <code class="inline-code">true</code>. Then, unless you set this to
- <code class="inline-code">true</code>,
- <code class="inline-code">java.util.Collection</code>-s that aren't
- <code class="inline-code">List</code>-s (like <code class="inline-code">Set</code>-s)
- will continue using <code class="inline-code">SimpleSequence</code> (i.e.,
- the copying approach) instead of the adapter approach. The
- default is <code class="inline-code">false</code>, at least until
- <code class="inline-code">incompatible_improvements</code> 2.4.0, because
- <code class="inline-code">SimpleSequence</code> gave indexed access to
- these non-<code class="inline-code">List</code>-s, like in
- <code class="inline-code">mySet[2]</code>, which is strange but some
- existing templates may utilize this, even if only
- accidentally. With
- <code class="inline-code">forceLegacyNonListCollections</code> set to
- <code class="inline-code">false</code>, indexed access won't be possible
- for <code class="inline-code">Set</code>-s and such anymore (nor will
- <code class="inline-code">?first</code> and <code class="inline-code">?last</code> work,
- but <code class="inline-code">?size</code> will still do), so you may want
- to retest old templates. On the other hand, you get the
- advantages of the adapter approach. Hence, in new projects
- it's highly recommended to set
- <code class="inline-code">forceLegacyNonListCollections</code> to
- <code class="inline-code">false</code>. (The adapter approach is
- implemented by
- <code class="inline-code">DefaultNonListCollectionAdapter</code>.)</p>
- </li>
-
- <li>
- <p>Added new, <em>experimental</em> FTL type
- interface,
- <code class="inline-code">freemarker.template.TemplateCollectionModelEx</code>,
- which adds the <code class="inline-code">size()</code>,
- <code class="inline-code">isEmpty()</code>, and <code class="inline-code">boolean
- contains(TemplateModel)</code> methods to the
- <code class="inline-code">TemplateCollectionModel</code> interface. This
- was added because when wrapping
- <code class="inline-code">java.util.Collections</code> these extra
- capabilities area available anyway, but FTL couldn't tap on
- them till now. While the exact interface details are marked
- as experimental, the feature itself is already utilized for
- <code class="inline-code">?size</code> when setting the
- <code class="inline-code">forceLegacyNonListCollections</code> property of
- <code class="inline-code">DefaultObjectWrapper</code> to
- <code class="inline-code">false</code> (see earlier).</p>
- </li>
-
- <li>
- <p>Added new <em>experimental</em> interface,
- <code class="inline-code">freemarker.template.ObjectWrapperAndUnwrapper</code>.
- This extends <code class="inline-code">ObjectWrapper</code> with
- unwrapping functionality. This functionality has already
- existed for a long time in <code class="inline-code">BeansWrapper</code>
- and its subclasses, like in
- <code class="inline-code">DefaultObjectWrapper</code>, but it wasn't
- "factored out" into its own published interface
- that other <code class="inline-code">ObjectWrapper</code>-s could
- implement. This is useful for
- <code class="inline-code">TemplateModel</code> implementations that don't
- want to require a <code class="inline-code">BeansWrapper</code> (or its
- subclass), only the availability of the unwrapping
- functionality.</p>
- </li>
-
- <li>
- <p>Added new <em>experimental</em> interfaces
- to implement <code class="inline-code">?api</code> (see it in the FTL
- section): <code class="inline-code">TemplateModelWithAPISupport</code>,
- <code class="inline-code">ObjectAPIWrapper</code>,
- <code class="inline-code">RichObjectWrapper</code>. Note that while the
- interfaces are experimental, <code class="inline-code">?api</code> itself
- isn't.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p><code class="inline-code">FreemarkerServlet</code> improvements:</p>
-
- <ul>
- <li>
- <p><code class="inline-code">FreemarkerServlet</code> now supports
- custom JSP EL functions (defined in TLD-s with
- <code class="inline-code">function</code> XML elements). Earlier it has
- ignored them. The custom EL function can be called like a
- Java method, for example: <code class="inline-code"><#assign
- u=JspTaglibs["/WEB-INF/utils.tld"]> ...
- ${u.truncate(title, 25)}</code>.</p>
- </li>
-
- <li>
- <p>Bug fixed: Error message was unhelpful when there was
- a type mismatch between the actual and the expected type of
- a custom tag parameter. This was a very frequent problem of
- users who call JSP taglibs from FTL (the typical
- "java.lang.IllegalArgumentException: argument type
- mismatch", without any FTL context). Now it's a proper error
- with explanation, solution tip, and FTL error
- position/quotation.</p>
- </li>
-
- <li>
- <p>RFE resolved [<a href="https://sourceforge.net/p/freemarker/feature-requests/113/">113</a>]
- [<a href="https://sourceforge.net/p/freemarker/feature-requests/114/">114</a>]:
- <code class="inline-code">FreemarkerServlet</code> can now discover
- <code class="inline-code">META-INF/**/*.tld</code>-s that are visible for
- the class loader but aren't in
- <code class="inline-code">WEB-INF/lib/*.jar</code>-s. For this feature to
- be active, you must setup the extra TLD lookup with the
- <code class="inline-code">MetaInfTldSources</code> and/or
- <code class="inline-code">ClasspathTlds</code>
- <code class="inline-code">FreemarkerServlet</code> init-params (see the
- <a href="http://freemarker.org/docs/api/freemarker/ext/servlet/FreemarkerServlet.html">Java
- API documentation of
- <code>FreemarkerServlet</code></a> for the
- description of these). For example, if you run your
- application from Eclipse with an embedded Servlet container,
- and thus the tag library jar-s aren't on the standard
- locations but are in the classpath like any other
- dependencies, now you can just write:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified"><init-param>
- <param-name>MetaInfTldSources</param-name>
- <param-value>classpath</param-value>
-</init-param></pre></div>
-
- <p>and then all the <code class="inline-code">META-INF</code>
- directories that are visible for the class loader will be
- searched for TLD-s.</p>
- </li>
-
- <li>
- <p><code class="inline-code">MetaInfTldSources</code> and
- <code class="inline-code">ClasspathTlds</code> can also be appended to or
- replaced by the values of Java system properties
- <code class="inline-code">org.freemarker.jsp.metaInfTldSources</code> and
- <code class="inline-code">org.freemarker.jsp.classpathTlds</code>,
- respectively. Thus one can adjust these in the Eclipse run
- configuration without modifying the
- <code class="inline-code">web.xml</code>. (See the <a href="http://freemarker.org/docs/api/freemarker/ext/servlet/FreemarkerServlet.html">Java
- API documentation of
- <code>FreemarkerServlet</code></a> for
- more.)</p>
- </li>
-
- <li>
- <p><code class="inline-code">FreemarkerServlet</code> now recognizes
- the
- <code class="inline-code">org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern</code>
- servlet context attribute, and adds entries to
- <code class="inline-code">MetaInfTldSources</code> (introduced above) from
- it.</p>
- </li>
-
- <li>
- <p>Added <code class="inline-code">protected
- FreemarkerServlet.createTaglibFactory()</code> to allow
- fine tuning the settings of the
- <code class="inline-code">TaglibFactory</code>. It now have a few setters,
- like <code class="inline-code">setObjectWrapper</code>,
- <code class="inline-code">setMetaInfTldSource</code>, etc.</p>
- </li>
-
- <li>
- <p>Added new servlet init-param,
- <code class="inline-code">BufferSize</code>. This sets the buffer size via
- <code class="inline-code">HTTPServletResponse.setBufferSize()</code> if
- the response state still allows that, ignores it
- otherwise.</p>
- </li>
-
- <li>
- <p>The <code class="inline-code">TemplatePath</code> servlet init-param
- now supports a new kind of path, that looks like
- <code class="inline-code">classpath:com/example/myapp/templates</code>.
- This is similar to the old
- <code class="inline-code">class://com/example/myapp/templates</code>, but
- it uses the Thread Context Class Loader of the thread that
- initializes <code class="inline-code">FreemarkerSerlvet</code>, and thus
- will work even if <code class="inline-code">freemarker.jar</code> is not
- local to the web application. <code class="inline-code">class://</code>
- has the problem that it uses the defining class loader of
- <code class="inline-code">FreemarkerSerlvet</code> itself (or of its
- subclass).</p>
- </li>
-
- <li>
- <p>If <code class="inline-code">incompatible_improvements</code> is set
- to 2.3.22 (or higher), the <code class="inline-code">TemplatePath</code>
- servlet init-param supports specifying multiple comma
- separated paths inside
- <code class="inline-code">[<em class="code-color">...</em>]</code>, like
- <code class="inline-code"><param-value>[ WEB-INF/templates,
- classpath:com/example/myapp/templates
- ]</param-value></code>. This internally creates a
- <code class="inline-code">freemarker.cache.MultiTemplateLoader</code>.</p>
- </li>
-
- <li>
- <p>Added new servlet <code class="inline-code">init-param</code>,
- <code class="inline-code">ExceptionOnMissingTemplate</code>. Setting this
- to <code class="inline-code">true</code> changes the behavior on
- template-not-found errors to similar to what you experience
- with other kind of template exceptions (a HTTP 500
- "Internal Server error" response on most
- setups). When it's <code class="inline-code">false</code> (the legacy
- behavior), you only get a HTTP 404 "Not found".
- While that's also how JSP views work, this turns out to be a
- problem, because some frameworks give 404 to the visitor too
- if the MVC view gives 404. But to get to the point where you
- forward to the MVC View, the visitor had to visit a valid
- URL, only that page misses its View, so its broken on the
- server side, so it should be a 500.</p>
- </li>
-
- <li>
- <p>Added new overridable method:
- <code class="inline-code">FreemarkerServlet.createDefaultObjectWrapper()</code>.
- This can be used for what
- <code class="inline-code">createObjectWrapper()</code> is usually
- overridden for, but without unwillingly disabling the
- processing of the related init-params (like of
- <code class="inline-code">object_wrapper</code>).</p>
- </li>
-
- <li>
- <p>Improved (or fixed) error logging: Now logs will
- always get into FreeMarker's own log, not only into the
- servlet container log. Also, earlier template-not-found and
- template parsing error details logs were sometimes lost,
- depending on the servlet container.</p>
- </li>
-
- <li>
- <p>Bug fixed, only active with
- <code class="inline-code">incompatible_improvements</code> set to 2.3.22
- (or higher): Some kind of values, when put into the JSP
- <em>page</em> scope (via
- <code class="inline-code">#global</code> or via the JSP
- <code class="inline-code">PageContext</code> API) and later read back with
- the JSP <code class="inline-code">PageContext</code> API (typically in a
- custom JSP tag), might come back as FreeMarker
- <code class="inline-code">TemplateModel</code> objects instead of as
- objects with a standard Java type. Other Servlet scopes
- aren't affected. It's highly unlikely that something expects
- the presence of this bug. The affected values are of the FTL
- types listed below, and to trigger the bug, they either had
- to be created directly in the template (like as an FTL
- literal or with
- <code class="inline-code">?date</code>/<code class="inline-code">time</code>/<code class="inline-code">datetime</code>),
- or you had to use <code class="inline-code">DefaultObjectWrapper</code> or
- <code class="inline-code">SimpleObjectWrapper</code> (or a subclass of
- them):</p>
-
- <ul>
- <li>
- <p>FTL date/time/date-time values may came back as
- <code class="inline-code">freemarker.template.SimpleDate</code>-s, now
- they come back as <code class="inline-code">java.util.Date</code>-s
- instead.</p>
- </li>
-
- <li>
- <p>FTL sequence values may came back as
- <code class="inline-code">SimpleSequence</code>-s, now they come back
- as <code class="inline-code">java.util.List</code>-s as expected. This
- stands assuming that the
- <code class="inline-code">object_wrapper</code> configuration setting
- is a subclass of <code class="inline-code">BeansWrapper</code> (such
- as <code class="inline-code">DefaultObjectWrapper</code>), but that's
- practically always the case in applications that use
- FreeMarker's JSP extension (otherwise it can still work,
- but it depends on the quality and capabilities of the
- <code class="inline-code">ObjectWrapper</code> implementation).</p>
- </li>
-
- <li>
- <p>FTL hash values may came back as
- <code class="inline-code">SimpleHash</code>-es, now they come back as
- <code class="inline-code">java.util.Map</code>-s as expected (again,
- assuming that the object wrapper is a subclass of
- <code class="inline-code">BeansWrapper</code>).</p>
- </li>
-
- <li>
- <p>FTL collection values may came back as
- <code class="inline-code">SimpleCollection</code>-s, now they come
- back as <code class="inline-code">java.util.Collection</code>-s as
- expected (again, assuming that the object wrapper is a
- subclass of <code class="inline-code">BeansWrapper</code>).</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Bug fixed: Now <code class="inline-code">*.tld</code> files are
- searched in <code class="inline-code">WEB-INF/</code> and in all its
- subdirectories recursively. Earlier they were only searched
- directly under <code class="inline-code">WEB-INF/</code> and
- <code class="inline-code">WEB-INF/lib/</code>.</p>
- </li>
-
- <li>
- <p>Bug fixed: Leading and trailing whitespace in TLD-s
- inside the <code class="inline-code">name</code> and
- <code class="inline-code">tag-class</code> elements is now removed.</p>
- </li>
-
- <li>
- <p>Unwanted behavior fixed: In case multiple TLD-s map to
- the same tag library URI, now
- <code class="inline-code">WEB-INF/**/*.tld</code>-s has priority over
- <code class="inline-code">META-INF/**/*.tld</code>-s coming from jar-s or
- classpath directories. Earlier, it was the other way around,
- except that <code class="inline-code">META-INF/lib/*.tld</code>-s could
- still take precedence randomly. While the JSP specification
- (2.2) explicitly states that the order is not defined and
- shouldn't be relied upon, it's just logical that if someone
- puts a TLD directly under <code class="inline-code">WEB-INF</code>, he
- meant that to be used in that particular web application,
- rather than the TLD-s coming from the dependency jars which
- are often shared by multiple web applications.</p>
- </li>
-
- <li>
- <p>Bug fixed: Defaults set in an overridden
- <code class="inline-code">FreemarkerServlet.createConfiguration</code>
- won't be accidentally overwritten by
- <code class="inline-code">FreemarkerServlet</code>'s factory defaults
- anymore. This was a problem with theses settings only:
- <code class="inline-code">template_exception_handler</code>,
- <code class="inline-code">log_template_exceptions</code>,
- <code class="inline-code">object_wrapper</code>,
- <code class="inline-code">template_loader</code>.</p>
- </li>
-
- <li>
- <p>Bug fixed: If you had multiple
- <code class="inline-code">FreemarkerServlet</code>-s with different
- configuration settings in the same servlet context, that
- could lead to malfunction. (Normally, you only have one,
- just like there's only one servlet that processes
- <code class="inline-code">*.jsp</code>.)</p>
- </li>
-
- <li>
- <p>Removed all the <code class="inline-code">xsd</code> files
- (<code class="inline-code">web-app</code> and <code class="inline-code">taglib</code>
- schemas) from the FreeMarker artifact and from the XML
- entity resolver, as they were unused during XML
- parsing.</p>
- </li>
-
- <li>
- <p>Generally improved implementation quality
- (maintainability, error messages, performance bug fixes,
- test coverage) and better API documentation.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Logging facility improvements:</p>
-
- <ul>
- <li>
- <p>Just like earlier, when auto-selecting the logger
- library (the default behavior), FreeMarker choses Log4j if
- it's available. But now, if that turns out to be
- <code class="inline-code">log4j-over-slf4j</code>, FreeMarker will use
- SLF4J directly instead. (This fixes the issue where the
- logged location points to FreeMarker's log adapter class
- instead of the real call place.)</p>
- </li>
-
- <li>
- <p>FreeMarker now recognizes the
- <code class="inline-code">org.freemarker.loggerLibrary</code> system
- property, which specifies which logger to use, like
- <code class="inline-code">java <em class="code-color">...</em>
- -Dorg.freemarker.loggerLibrary=SLF4J</code>. This option
- deprecates
- <code class="inline-code">Logger.selectLoggerLibrary(int)</code> as that
- was inherently unreliable (because you usually can't control
- class initialization order very well). The system property
- has precedence over
- <code class="inline-code">Logger.selectLoggerLibrary</code>.</p>
- </li>
-
- <li>
- <p>Generally improved implementation quality (more info
- printed when something fails, etc.).</p>
- </li>
-
- <li>
- <p>New configuration setting:
- <code class="inline-code">log_template_exceptions</code>
- (<code class="inline-code">Configuration.setLogTemplateExceptions(boolean)</code>).
- This specifies if <code class="inline-code">TemplateException</code>-s
- thrown by template processing are logged by FreeMarker or
- not. The default is <code class="inline-code">true</code> for backward
- compatibility, but that results in logging the exception
- twice in properly written applications, because there the
- <code class="inline-code">TemplateException</code> thrown by the public
- FreeMarker API is also logged by the caller (even if only as
- the cause exception of a higher level exception). Hence, in
- modern applications it should be set to
- <code class="inline-code">false</code>. (Note that this setting has no
- effect on the logging of exceptions caught by
- <code class="inline-code">#attempt</code>/<code class="inline-code">#recover</code>;
- those are always logged.)</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p><code class="inline-code">Environment</code> and custom directive
- related improvements:</p>
-
- <ul>
- <li>
- <p>Added
- <code class="inline-code">Environment.getCurrentDirectiveCallPlace()</code>,
- which returns a <code class="inline-code">DirectiveCallPlace</code> object
- when called from a custom directive (i.e., from
- <code class="inline-code">TemplateDirectiveModel.execute()</code>). The
- <code class="inline-code">DirectiveCallPlace</code> objects lets you
- associate an arbitrary object to the directive invocation
- inside the template, which can be used for call-place-bound
- caching (like the minification of non-dynamic nested
- content). See <code class="inline-code">DirectiveCallPlace</code> in the
- Java API documentation for more.</p>
- </li>
-
- <li>
- <p>Added
- <code class="inline-code">Environment.getMainTemplate()</code>. Deprecated
- the ambiguous (and often broken: [<a href="https://sourceforge.net/p/freemarker/bugs/145/">145</a>])
- <code class="inline-code">Environment.getTemplate()</code>.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Template loading:</p>
-
- <ul>
- <li>
- <p>Added new <code class="inline-code">Configuration</code> setting,
- <code class="inline-code">template_lookup_strategy</code>
- (<code class="inline-code">Configuration.setTemplateLookupStrategy(TemplateLookupStrategy)</code>).
- This allows customizing what
- <code class="inline-code">TemplateLoader</code>-level names will be tried
- when a template is requested. With this you can, for
- example, define a custom localized lookup sequence instead
- of the default (which looks like:
- <code class="inline-code">foo_de_LU_MAC.ftl, foo_de_LU.ftl,
- foo_de.ftl,</code><code class="inline-code"> foo.ftl</code>).</p>
- </li>
-
- <li>
- <p>Added new
- <code class="inline-code">Configuration.getTemplate(<em class="code-color">...</em>)</code>
- parameter, <code class="inline-code">Object customLookupCondition</code>.
- This parameter can be used by custom a
- <code class="inline-code">TemplateLookupStrategy</code> to deduce the
- actual template name(s) from the requested name (similarly
- to as the default lookup strategy does that based on the
- locale). For example, on a multi-domain Web site, one may
- want to define some templates that are specialized to a
- domain, and thus use the domain name as the custom lookup
- condition. Then, when <code class="inline-code">foo.ftl</code> is
- requested, a custom
- <code class="inline-code">TemplateLookupStrategy</code> could first look
- for <code class="inline-code">@somedomain.com/foo.ftl</code>, and then for
- <code class="inline-code">@default/foo.ftl</code>. See the JavaDoc of the
- relevant
- <code class="inline-code">Configuration.getTemplate(<em class="code-color">...</em>)</code>
- overload for more details; note there the requirements
- regarding the <code class="inline-code">hashCode</code> and
- <code class="inline-code">equals</code> of the
- <code class="inline-code">customLookupCondition</code>.</p>
- </li>
-
- <li>
- <p>Added new <code class="inline-code">Configuration</code> setting,
- <code class="inline-code">template_name_format</code>
- (<code class="inline-code">Configuration.setTemplateNameFormat(TemplateNameFormat)</code>).
- This allows specifying the naming rules used by FreeMarker.
- For now, custom implementations aren't allowed, and you can
- only chose between
- <code class="inline-code">TemplateNameFormat.DEFAULT_2_3_0</code> (the
- default) and <code class="inline-code">DEFAULT_2_4_0</code> (recommended,
- at least for new projects). <code class="inline-code">DEFAULT_2_4_0</code>
- has several advantages, but isn't fully backward compatible
- (though most applications won't be affected). For typical
- mistakes like using backslash instead of slash, or backing
- out of the root, it gives
- <code class="inline-code">MalformedTemplateNameFormatException</code>
- instead of <code class="inline-code">TempalteNotFoundException</code>. It
- allows scheme names to be terminated with
- <code class="inline-code">:</code> alone, instead of a
- <code class="inline-code">://</code> (which is also supported), like in
- <code class="inline-code">classpath:foo/bar.ftl</code>. It fixes numerous
- legacy glitches (bugs), mostly related to the interpretation
- of <code class="inline-code">..</code> after special steps like
- <code class="inline-code">.</code> or <code class="inline-code">*</code>. See the full
- list of differences in the <a href="http://freemarker.org/docs/api/freemarker/cache/TemplateNameFormat.html#DEFAULT_2_4_0">Java
- API documentation of
- <code>TemplateNameFormat.DEFAULT_2_4_0</code></a>.</p>
- </li>
-
- <li>
- <p><code class="inline-code">ClassTemplateLoader</code> now can be
- created by specifying a <code class="inline-code">ClassLoader</code>
- directly, rather than by specifying a base
- <code class="inline-code">Class</code>. That is, now there's
- <code class="inline-code">ClassTemplateLoader(ClassLoader, String)</code>
- constructor, and also a
- <code class="inline-code">Configuration.setClassLoaderForTemplateLoading(ClassLoader,
- String)</code> method.</p>
- </li>
-
- <li>
- <p>Added new exception,
- <code class="inline-code">TemplateNotFoundException</code>, which is now
- used instead of <code class="inline-code">TemplateNotFoundException</code>
- when getting a template. As it extends
- <code class="inline-code">TemplateNotFoundException</code>, this change is
- backward compatible. The main goal was to counter the common
- misunderstanding that template paths are real file paths.
- However, the new exception also has the benefit that it can
- give additional FreeMarker-specific information about the
- error, like right now it has
- <code class="inline-code">getTemplateName()</code> and
- <code class="inline-code">getCustomLookupCondition()</code>
- methods.</p>
- </li>
-
- <li>
- <p><code class="inline-code">Template</code>-s now have a
- <code class="inline-code">getSourceName()</code> method, in additionally
- to <code class="inline-code">getName()</code>. These two return the same
- as far as no localized lookup or acquisition
- (<code class="inline-code">*</code> in the name) or other lookup strategy
- was actively involved. But when it was,
- <code class="inline-code">getSourceName()</code> gives the name with which
- the template was actually loaded from the
- <code class="inline-code">TemplateLoader</code>, while
- <code class="inline-code">getName()</code> returns (and had always
- returned) the name with which the template was requested (in
- canonicalized form). <code class="inline-code">getName()</code> is used
- for everything (like for relative inclusion resolution),
- except for location information in error messages, which now
- uses <code class="inline-code">getSourceName()</code>. Also,
- <code class="inline-code">TemplateException</code> now has a
- <code class="inline-code">getSourceName()</code> method.</p>
- </li>
-
- <li>
- <p><code class="inline-code">Configuration.getTemplate(<em class="code-color">...</em>)</code>
- overloads now accept <code class="inline-code">null</code> for the
- <code class="inline-code">locale</code> and <code class="inline-code">encoding</code>
- parameters, in which case they use the same defaults as the
- overloads where the parameter is omitted.</p>
- </li>
-
- <li>
- <p>Debugger SPI implementators, attention: The
- <code class="inline-code">DebugBreak</code> instruction will now send the
- <code class="inline-code">sourceName</code> of the template to the
- <code class="inline-code">suspendEnvironmentSpi</code> callback, rather
- than its <code class="inline-code">name</code>. You should also use the
- <code class="inline-code">sourceName</code> in
- <code class="inline-code">registerTemplateSpi</code> and such, not the
- <code class="inline-code">name</code>.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Configuration:</p>
-
- <ul>
- <li>
- <p>Added
- <code class="inline-code">Configuration.unset<em class="code-color">Xxx</em></code>
- and
- <code class="inline-code">is<em class="code-color">Xxx</em>ExplicitlySet</code>
- methods for several settings. Unsetting a setting makes it
- behave as if
- <code class="inline-code">set<em class="code-color">Xxx</em></code> was
- never called, thus the setting will use the default value
- that fits the current
- <code class="inline-code">incompatible_improvements</code> value and will
- be adjusted as <code class="inline-code">incompatible_improvements</code>
- is changed later.</p>
- </li>
-
- <li>
- <p>When configuring FreeMarker from
- <code class="inline-code">java.util.Properties</code> (or with
- <code class="inline-code">String</code>-<code class="inline-code">String</code>
- name-value pairs in general):</p>
-
- <ul>
- <li>
- <p>The <code class="inline-code">default</code> setting value is
- now recognized by
- <code class="inline-code">template_exception_handler</code>,
- <code class="inline-code">template_storage</code>,
- <code class="inline-code">template_loader</code> (and by the new
- <code class="inline-code">template_lookup_strategy</code> and
- <code class="inline-code">template_name_format</code>) settings, and
- it causes
- <code class="inline-code">Configuration.unset<em class="code-color">Xxx</em>()</code>
- to be called.</p>
- </li>
-
- <li>
- <p>Bug fixed: When setting
- <code class="inline-code">object_wrapper</code> to
- <code class="inline-code">default</code> (as opposed to not specifying
- it), it has ignored the
- <code class="inline-code">incompatible_improvements</code> and has
- always used
- <code class="inline-code">ObjectWrapper.DEFAULT_WRAPPER</code>. This
- fix only matters when
- <code class="inline-code">incompatible_improvements</code> is exactly
- 2.3.21, as that's when the default object wrapper was
- changed from
- <code class="inline-code">ObjectWrapper.DEFAULT_WRAPPER</code> to the
- result of <code class="inline-code">new
- DefaultObjectWrapperBuilder(Configuration.VERSION_2_3_21).build()</code>,
- which is a bit different singleton, as it has read-only
- configuration settings and bug fixed overloaded method
- selection rules. To use
- <code class="inline-code">ObjectWrapper.DEFAULT_WRAPPER</code>
- regardless of the value of the
- <code class="inline-code">incompatible_improvements</code> setting,
- use the new <code class="inline-code">default_2_3_0</code>
- value.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Bug fixed: Changing the value of the
- <code class="inline-code">localized_lookup</code> setting now empties the
- template cache, so that old lookup results won't be reused.
- (This of course only matters if you change this setting
- under an already running service, which is very
- unlikely.)</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Miscellaneous:</p>
-
- <ul>
- <li>
- <p>Bug fixed [<a href="https://sourceforge.net/p/freemarker/bugs/145/">145</a>],
- active only with
- <code class="inline-code">incompatible_improvements</code> set to 2.3.22
- (or higher): <code class="inline-code">#include</code> and
- <code class="inline-code">#nested</code> doesn't change the parent
- <code class="inline-code">Template</code> (see
- <code class="inline-code">Configurable.getParent()</code>) of the
- <code class="inline-code">Environment</code> anymore to the
- <code class="inline-code">Template</code> that's included or where
- <code class="inline-code">#nested</code> "returns" to. Thus,
- the parent of <code class="inline-code">Environment</code> will be now
- always the main <code class="inline-code">Template</code>. (The main
- <code class="inline-code">Template</code> is the
- <code class="inline-code">Template</code> whose <code class="inline-code">process</code>
- or <code class="inline-code">createProcessingEnvironment</code> method was
- called to initiate the output generation.) Note that this
- only matters if you have set settings directly on
- <code class="inline-code">Template</code> objects (not to be confused with
- setting settings in templates via
- <code class="inline-code">#setting</code>, which just modifies the
- <code class="inline-code">Environment</code>, and so isn't affected by
- this fix), and almost nobody does that. Also note that macro
- calls have never changed the <code class="inline-code">Environment</code>
- parent to the <code class="inline-code">Template</code> that contains the
- macro definition, so there's no change there now.</p>
- </li>
-
- <li>
- <p>Bug fixed [<a href="https://sourceforge.net/p/freemarker/bugs/419/">419</a>]:
- FreeMarker doesn't fail anymore when it has no permission to
- read Java system properties, like when used in unsigned
- applets. It just logs some warnings.</p>
- </li>
-
- <li>
- <p><code class="inline-code">HTML_DEBUG</code> and
- <code class="inline-code">DEBUG</code>
- <code class="inline-code">TemplateExceptionHandler</code> output now
- contains a warning like "HTML_DEBUG mode; use RETHROW
- in production!", due to frequent misuse.</p>
- </li>
-
- <li>
- <p>Some fixes and improvements in template canonical form
- output, and as a consequence of that, in FTL stack trace
- instruction displaying.</p>
- </li>
-
- <li>
- <p>Marked some historically public but otherwise internal
- API-s as deprecated, so that the disclaimer is more apparent
- in IDE-s.</p>
- </li>
- </ul>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_170">Notes</h2>
-
-
- <p><a name="topic.defaultObjectWrapperSwitchToAdapters"></a>The
- consequences and reasons of introducing adapter approach for
- container types in <code class="inline-code">DefaultObjectWrapper</code> when its
- incompatibleImprovements is set to 2.3.22:</p>
-
- <ul>
- <li>
- <p>With the new approach (the adapter approach), the key
- order of <code class="inline-code">Map</code>-s is never lost. The copying
- approach could only keep that for <code class="inline-code">HashMap</code>
- subclasses (such as <code class="inline-code">LinkedHashMap</code>) and
- <code class="inline-code">SortedMap</code>-s (such as
- <code class="inline-code">TreeMap</code>), but not for more exotic
- <code class="inline-code">Map</code>-s, like Guava's
- <code class="inline-code">ImmutableMap</code>. Also, any other behavioral
- peculiarities of the original <code class="inline-code">Map</code> (e.g., case
- insensitive key lookup) is kept now.</p>
- </li>
-
- <li>
- <p>The exact type and identity of the
- <code class="inline-code">Map</code>/<code class="inline-code">List</code> is kept when the
- wrapped value is passed back to a Java method from the template.
- With the legacy approach the Java methods have received a
- <code class="inline-code">Map</code> or <code class="inline-code">List</code> of a special
- FreeMarker specific type (that acted as an adapter for the
- <code class="inline-code">TemplateModel</code>).</p>
- </li>
-
- <li>
- <p>Performance characteristics change, mostly for the better,
- but it depends on the application. If the template reads the
- <em>same(!)</em> entry <em>from the data
- model</em> roughly once or twice (or not at all), which is
- typical, them the adapter approach gives better results,
- otherwise the legacy copying approach is faster (as it can reuse
- the wrapped entry from the previous read), though this slowdown
- certainly not a concern for most applications. The performance
- of the new adapter approach is more predictable, because it has
- no initial "spike" to set up the container copy
- (especially painful for huge collections), instead the
- performance is linearly proportional to the number of data model
- reads (and not to the number of collection entries).</p>
- </li>
-
- <li>
- <p>If the
- <code class="inline-code">Map</code>/<code class="inline-code">List</code>/array is changed
- after it was wrapped, the change will now become visible in the
- data-model. With the copying approach, the wrapped value was a
- shallow-snapshot of the original
- <code class="inline-code">Map</code>/<code class="inline-code">List</code>/array. While it's
- unlikely that someone has deliberately utilized this, it's a
- risk factor when switching to adapters.</p>
- </li>
-
- <li>
- <p>It's theoretically possible that some code (mostly
- <code class="inline-code">TemplateDirectiveModel</code> implementations)
- mistakenly assumed that wrapped <code class="inline-code">Map</code>-s are
- <code class="inline-code">SimpleHash</code>-es, and wrapped
- <code class="inline-code">List</code>-s are
- <code class="inline-code">SimpleSequence</code>-s, etc., instead of them just
- being <code class="inline-code">TemplateHashModel</code>-s and
- <code class="inline-code">TemplateSequenceModel</code>-s. Such code was always
- wrong, but now it will indeed break, so it's a risk
- factor.</p>
- </li>
-
- <li>
- <p>As now the exact type of the wrapped original object is
- used for overloaded method selection, the choice can be
- different (and similar to what it would be with pure
- <code class="inline-code">BeansWrapper</code>). It's difficult to find cases
- where this matters. A change is most probable around arrays, as
- with the copying approach they were unwrapped to
- <code class="inline-code">List</code>-s, not to the original array. As the
- overloaded method mechanism can convert between arrays and lists
- (in both directions), it's usually not a problem. But, it
- doesn't do conversion between different array types when the
- overloaded method has various types on the parameter position of
- the array, so that's a risk factor.</p>
- </li>
-
- <li>
- <p><code class="inline-code">SimpleHash</code> and
- <code class="inline-code">SimpleSequence</code> haven't become deprecated.
- They are still used for hashes and sequences created in FTL, and
- are recommended for values that are built specifically to be
- used from templates, rather than wrapping an already existing
- <code class="inline-code">Map</code> or <code class="inline-code">List</code> or
- array.</p>
- </li>
-
- <li>
- <p><code class="inline-code">List</code>-s and <code class="inline-code">Map</code>-s
- that are exposed to templates in multiple threads are now under
- greater stress regarding their correct operation under
- multi-threaded read-only access. This is because the adapters
- won't copy their contents into well known
- <code class="inline-code">List</code> and <code class="inline-code">Map</code>
- implementations (<code class="inline-code">HashMap</code>,
- <code class="inline-code">ArrayList</code>, etc.) before accessing them from
- multiple threads. So this is mostly a concern with custom
- <code class="inline-code">List</code> and <code class="inline-code">Map</code>
- implementations, which aren't as mature as the standard Java
- classes. Note that this was always like so with pure
- <code class="inline-code">BeansWrapper</code>, which is used by a lot of
- projects/frameworks (like by Struts) for a long time, so it's
- not an uncharted territory.</p>
- </li>
-
- <li>
- <p>When the wrapped <code class="inline-code">List</code> is a
- <code class="inline-code">AbstractSequentialList</code> (like a
- <code class="inline-code">LinkedList</code>), the resulting adapter will
- implement <code class="inline-code">TemplateCollectionModel</code> for more
- efficient enumeration (<code class="inline-code">#list</code>-ing), in
- additionally to <code class="inline-code">TemplateSequenceModel</code> of
- course. <code class="inline-code">TemplateCollectionModel</code> allows FTL to
- traverse the list without accessing elements by index. With the
- legacy copying approach
- <code class="inline-code">TemplateCollectionModel</code> wasn't implemented as
- it wasn't needed for efficient enumeration there.</p>
- </li>
-
- <li>
- <p>Iterators (when you put them directly into the data-model)
- are wrapped into <code class="inline-code">DefaultIteratorAdapter</code>
- instead of <code class="inline-code">SimpleCollection</code>. This has two
- consequences:</p>
-
- <ul>
- <li>
- <p>The wrapped <code class="inline-code">Iterator</code> is now
- unwrapped properly to the original Java object when it's
- passed to Java method from the template.</p>
- </li>
-
- <li>
- <p>Wrapped <code class="inline-code">Iterator</code>-s (not to be
- confused with <code class="inline-code">Iterable</code>) aren't
- thread-safe anymore, to spare some synchronizations, after
- all, exposing the same <code class="inline-code">Iterator</code> to
- multiple parallel template executions doesn't make much
- sense. This shouldn't be a migration concern, as even
- earlier, only one of those template executions could succeed
- (the "content" of <code class="inline-code">Iterator</code>-s
- wasn't copied, so the one who first accessed it become the
- exclusive owner). The change is just that earlier it was
- guaranteed that the other threads will fail (that was the
- thread-safe about it), while now there are no such
- guarantees.</p>
- </li>
- </ul>
- </li>
- </ul>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_3_23.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_21.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>\u20132017
-<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>
[35/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/pgui_config_sharedvariables.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/pgui_config_sharedvariables.html b/builds/2.3.26-nightly/pgui_config_sharedvariables.html
deleted file mode 100644
index d90f624..0000000
--- a/builds/2.3.26-nightly/pgui_config_sharedvariables.html
+++ /dev/null
@@ -1,143 +0,0 @@
-<!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>Shared variables - 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="Shared variables">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/pgui_config_sharedvariables.html">
-<link rel="canonical" href="http://freemarker.org/docs/pgui_config_sharedvariables.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="pgui.html"><span itemprop="name">Programmer's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_config.html"><span itemprop="name">The Configuration</span></a></li><li class="step-3" itempr
op="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_config_sharedvariables.html"><span itemprop="name">Shared variables</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","Programmer\'s Guide","The Configuration","Shared variables"];</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="pgui_config_basics.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_config_settings.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="pgui_config_sharedvariables" itemprop="headline">Shared variables</h1>
-</div></div><p><strong>Shared variables</strong> are variables
- that are defined for all templates. You can add shared variables to
- the configuration with the <code class="inline-code">setSharedVariable</code>
- methods:</p>
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">Configuration cfg = new Configuration(Configuration.VERSION_2_3_25);
-<em>..</em>.
-cfg.setSharedVariable("warp", new WarpDirective());
-cfg.setSharedVariable("company", "Foo Inc.");</pre></div><p>In all templates that use this configuration, an user-defined
- directive with name <code class="inline-code">wrap</code> and a string with name
- <code class="inline-code">company</code> will be visible in the data-model root, so
- you don't have to add them to the root hash again and again. A
- variable in the root object that you pass to the
- <code class="inline-code">Template.process</code> will hide the shared variable with
- the same name.</p> <div class="callout warning">
- <strong class="callout-label">Warning!</strong>
-
- <p>Never use <code class="inline-code">TemplateModel</code> implementation that
- is not <a href="gloss.html#gloss.threadSafe">thread-safe</a> for
- shared variables, if the configuration is used by multiple threads!
- This is the typical situation for Servlet based applications.</p>
- </div>
-<p>Due to backward compatibility heritage, the set of shared
- variables is initially (i.e., for a new
- <code class="inline-code">Configuration</code> instance) not empty. It contains the
- following user-defined directives (they are "user-defined" in the
- sense that you use <code class="inline-code">@</code> to call them instead of
- <code class="inline-code">#</code>):</p> <div class="table-responsive">
- <table class="table">
-
- <thead>
- <tr>
- <th>name</th>
-
-
- <th>class</th>
-
- </tr>
-
- </thead>
-
-
- <tbody>
- <tr>
- <td><code class="inline-code">capture_output</code></td>
-
-
- <td><code class="inline-code">freemarker.template.utility.CaptureOutput</code></td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">compress</code></td>
-
-
- <td><code class="inline-code">freemarker.template.utility.StandardCompress</code></td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">html_escape</code></td>
-
-
- <td><code class="inline-code">freemarker.template.utility.HtmlEscape</code></td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">normalize_newlines</code></td>
-
-
- <td><code class="inline-code">freemarker.template.utility.NormalizeNewlines</code></td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">xml_escape</code></td>
-
-
- <td><code class="inline-code">freemarker.template.utility.XmlEscape</code></td>
-
- </tr>
-
- </tbody>
-
- </table>
- </div>
-<div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="pgui_config_basics.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_config_settings.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/pgui_config_templateconfigurations.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/pgui_config_templateconfigurations.html b/builds/2.3.26-nightly/pgui_config_templateconfigurations.html
deleted file mode 100644
index 2c2f86c..0000000
--- a/builds/2.3.26-nightly/pgui_config_templateconfigurations.html
+++ /dev/null
@@ -1,314 +0,0 @@
-<!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>Template configurations - 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="Template configurations">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/pgui_config_templateconfigurations.html">
-<link rel="canonical" href="http://freemarker.org/docs/pgui_config_templateconfigurations.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="pgui.html"><span itemprop="name">Programmer's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_config.html"><span itemprop="name">The Configuration</span></a></li><li class="step-3" itempr
op="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_config_templateconfigurations.html"><span itemprop="name">Template configurations</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","Programmer\'s Guide","The Configuration","Template configurations"];</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="pgui_config_errorhandling.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_config_outputformatsautoesc.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="pgui_config_templateconfigurations" itemprop="headline">Template configurations</h1>
-</div></div><p>"Template configurations" refers to the
- <code class="inline-code">template_configurations</code> setting of
- <code class="inline-code">Configuration</code>
- (<code class="inline-code">Configuration.setTemplateConfigurations(<em class="code-color">...</em>)</code>).
- This setting lets you override individual settings coming from the
- common <code class="inline-code">Configuration</code> object, depending on the name
- (path) of the template.</p><p>It's important to understand, however, that this setting only
- has effect if you get templates with
- <code class="inline-code">Configuration.getTemplate(<em class="code-color">...</em>)</code>,
- not when you create templates directly with the
- <code class="inline-code">Template</code> constructors. In that case it's up to you
- to invoke this mechanism (see <code class="inline-code">TemplateCache</code> source
- code as an example).</p><p>You will use these kind of objects to declare your template
- configuration rules:</p><ul>
- <li>
- <p><code class="inline-code">TemplateConfiguration</code>-s: These store the
- actual setting assignments that you want to apply. For example,
- this <code class="inline-code">TemplateConfiguration</code> will set the
- encoding and the output format of the matched template (and leave
- all other settings of it alone):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">TemplateConfiguration tcUTF8XML = new TemplateConfiguration();
-tc.setEncoding("utf-8");
-tc.setOutputFormat(XMLOutputFormat.INSTANCE);</pre></div>
- </li>
-
- <li>
- <p><code class="inline-code">TemplateSourceMatcher</code> (abstract)
- subclasses: These define a rule that matches templates based on
- their source name (their source path; as in
- <code class="inline-code">Template.getSourceName()</code>), and possibly on
- other <code class="inline-code">TemplateLoader</code>-dependent properties. For
- example, <code class="inline-code">new FileExtensionMatcher("xml")</code>
- matches templates that has <code class="inline-code">xml</code> file extension.
- See all the subclasses in the Java API documentation.</p>
- </li>
-
- <li>
- <p><code class="inline-code">TemplateConfigurationFactory</code>-es: This is
- what connects <code class="inline-code">TemplateConfiguration</code>-s and
- <code class="inline-code">TemplateSourceMatcher</code>-s together. This is the
- Java type of the <code class="inline-code">template_configurations</code>
- setting. See the examples below for more.</p>
- </li>
- </ul>
-
-
-
-
-<h2 class="content-header header-simplesect" id="autoid_47">Example 1</h2>
-
-
- <p>This setup combines our earlier two example objects with a
- <code class="inline-code">ConditionalTemplateConfigurationFactory</code>, causing
- all templates with <code class="inline-code">xml</code> extension to get UTF-8
- encoding and XML output format:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">cfg.setTemplateConfigurations(
- new ConditionalTemplateConfigurationFactory(
- new FileExtensionMatcher("xml"),
- tcUTF8XML));</pre></div>
-
- <p>The same configuring is also doable if you don't have access
- to the configuring Java code, but only to a Java
- <code class="inline-code">*.properties</code> file or other kind of string-string
- key value pairs (the <code class="inline-code">\</code>-s are prescribed by the
- Java Properties file format for multi-line values):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">templateConfigurations = \
- ConditionalTemplateConfigurationFactory( \
- FileExtensionMatcher("xml"), \
- TemplateConfiguration( \
- encoding = "utf-8", \
- outputFormat = XMLOutputFormat() \
- ) \
- )</pre></div>
-
-
-
-
-
-<h2 class="content-header header-simplesect" id="autoid_48">Example 2</h2>
-
-
- <p>Let's say you only need to handle templates in the
- <code class="inline-code">mail</code> directory specially, other templates can use
- the setting coming from the shared <code class="inline-code">Configuration</code>
- singleton. The names of templates there must contain
- <code class="inline-code">".subject."</code> or <code class="inline-code">".body."</code>.
- Subject templates must get <code class="inline-code">plainText</code> output
- format, while body templates must get <code class="inline-code">HTML</code> output
- format. So we have to make a choice here, and that's when you need a
- <code class="inline-code">FirstMatchTemplateConfigurationFactory</code>.</p>
-
- <p>Assuming <code class="inline-code">cfg</code> stores the shared
- <code class="inline-code">Configuration</code> singleton, you set this up like
- this:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">cfg.setTemplateConfigurations(
- new ConditionalTemplateConfigurationFactory(
- new PathGlobMatcher("mail/**"),
- new FirstMatchTemplateConfigurationFactory(
- new ConditionalTemplateConfigurationFactory(
- new FileNameGlobMatcher("*.subject.*"),
- tcSubject),
- new ConditionalTemplateConfigurationFactory(
- new FileNameGlobMatcher("*.body.*"),
- tcBody)
- )
- .noMatchErrorDetails(
- "Mail template names must contain \".subject.\" or \".body.\"!")
- ));</pre></div>
-
- <p>The equivalent configuration using a Java
- <code class="inline-code">*.properties</code> file or other kind of string-string
- key value pairs (the <code class="inline-code">\</code>-s are prescribed by the
- Java Properties file format only):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">templateConfigurations = \
- ConditionalTemplateConfigurationFactory( \
- PathGlobMatcher("mail/**"), \
- FirstMatchTemplateConfigurationFactory( \
- ConditionalTemplateConfigurationFactory( \
- FileNameGlobMatcher("*.subject.*"), \
- TemplateConfiguration(outputFormat = PlainTextOutputFormat()) \
- ), \
- ConditionalTemplateConfigurationFactory( \
- FileNameGlobMatcher("*.body.*"), \
- TemplateConfiguration(outputFormat = HTMLOutputFormat()) \
- ), \
- noMatchErrorDetails = 'Mail template names must contain ".subject." or ".body."!' \
- ) \
- )</pre></div>
-
-
-
-
-
-<h2 class="content-header header-simplesect" id="autoid_49">Example 3</h2>
-
-
- <p>Let's say you want the following deviations from the shared
- <code class="inline-code">Configuration</code> settings in your
- application:</p>
-
- <ul>
- <li>
- <p>All templates whose name contains
- <code class="inline-code">".stats."</code> should use ISO date/time format and
- UTC time zone</p>
- </li>
-
- <li>
- <p>All templates inside the <code class="inline-code">mail</code> directory
- should use UTF-8 encoding</p>
- </li>
-
- <li>
- <p>Templates with <code class="inline-code">xml</code> file extension
- should use XML <code class="inline-code">output_format</code>, templates with
- <code class="inline-code">html</code> or <code class="inline-code">htm</code> extension
- should use HTML output format. For other templates, the shared
- <code class="inline-code">Configuration</code> can dictate the
- <code class="inline-code">output_format</code>.</p>
- </li>
- </ul>
-
- <p>Here we have 3 independent concerns, and possibly multiple (or
- none) of those apply to a template; that's when you need a
- <code class="inline-code">MergingTemplateConfigurationFactory</code>. The last
- point describes a rule where you have mutually exclusive choices;
- that's when you need a
- <code class="inline-code">FirstMatchTemplateConfigurationFactory</code>, but this
- time no choice is also allowed. Here's the source code, assuming
- <code class="inline-code">cfg</code> stores the shared
- <code class="inline-code">Configuration</code> instance:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">TemplateConfiguration tcStats = new TemplateConfiguration();
-tcStats.setDateTimeFormat("iso");
-tcStats.setDateFormat("iso");
-tcStats.setTimeFormat("iso");
-tcStats.setTimeZone(DateUtil.UTC);
-
-TemplateConfiguration tcMail = new TemplateConfiguration();
-tcMail.setEncoding("utf-8");
-
-TemplateConfiguration tcHTML = new TemplateConfiguration();
-tcHTML.setOutputFormat(HTMLOutputFormat.INSTANCE);
-
-TemplateConfiguration tcXML = new TemplateConfiguration();
-tcXML.setOutputFormat(XMLOutputFormat.INSTANCE);
-
-cfg.setTemplateConfigurations(
- new MergingTemplateConfigurationFactory(
- new ConditionalTemplateConfigurationFactory(
- new FileNameGlobMatcher("*.stats.*"),
- tcStats),
- new ConditionalTemplateConfigurationFactory(
- new PathGlobMatcher("mail/**"),
- tcMail),
- new FirstMatchTemplateConfigurationFactory(
- new ConditionalTemplateConfigurationFactory(
- new FileExtensionMatcher("xml"),
- tcXML),
- new ConditionalTemplateConfigurationFactory(
- new OrMatcher(
- new FileExtensionMatcher("html"),
- new FileExtensionMatcher("htm")),
- tcHTML)
- ).allowNoMatch(true)
- )
-);</pre></div>
-
- <p>The equivalent configuration using a Java
- <code class="inline-code">*.properties</code> file or other kind of string-string
- key value pairs (the <code class="inline-code">\</code>-s are prescribed by the
- Java Properties file format only):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">templateConfigurations = \
- MergingTemplateConfigurationFactory( \
- ConditionalTemplateConfigurationFactory( \
- FileNameGlobMatcher("*.stats.*"), \
- TemplateConfiguration( \
- dateTimeFormat = "iso", \
- dateFormat = "iso", \
- timeFormat = "iso", \
- timeZone = TimeZone("UTC") \
- ) \
- ), \
- ConditionalTemplateConfigurationFactory( \
- PathGlobMatcher("mail/**"), \
- TemplateConfiguration(encoding = "utf-8") \
- ), \
- FirstMatchTemplateConfigurationFactory( \
- ConditionalTemplateConfigurationFactory( \
- FileExtensionMatcher("xml"), \
- TemplateConfiguration(outputFormat = XMLOutputFormat()) \
- ), \
- ConditionalTemplateConfigurationFactory( \
- OrMatcher( \
- FileExtensionMatcher("html"), \
- FileExtensionMatcher("htm") \
- ), \
- TemplateConfiguration(outputFormat = HTMLOutputFormat()) \
- ), \
- allowNoMatch = true \
- ) \
- )</pre></div>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="pgui_config_errorhandling.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_config_outputformatsautoesc.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/pgui_config_templateloading.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/pgui_config_templateloading.html b/builds/2.3.26-nightly/pgui_config_templateloading.html
deleted file mode 100644
index 62595bb..0000000
--- a/builds/2.3.26-nightly/pgui_config_templateloading.html
+++ /dev/null
@@ -1,364 +0,0 @@
-<!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>Template loading - 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="Template loading">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/pgui_config_templateloading.html">
-<link rel="canonical" href="http://freemarker.org/docs/pgui_config_templateloading.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="pgui.html"><span itemprop="name">Programmer's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_config.html"><span itemprop="name">The Configuration</span></a></li><li class="step-3" itempr
op="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_config_templateloading.html"><span itemprop="name">Template loading</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","Programmer\'s Guide","The Configuration","Template loading"];</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="pgui_config_settings.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_config_errorhandling.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="pgui_config_templateloading" itemprop="headline">Template loading</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_38" data-menu-target="autoid_38">Template loaders</a><ul><li><a class="page-menu-link" href="#autoid_39" data-menu-target="autoid_39">Built-in template loaders</a></li><li><a class="page-menu-link" href="#autoid_40" data-menu-target="autoid_40">Loading templates from multiple locations</a></li><li><a class="page-menu-link" href="#autoid_41" data-menu-target="autoid_41">Loading templates from other sources</a></li><li><a class="page-menu-link" href="#autoid_42" data-menu-target="autoid_42">The template name (template path)</a></li></ul></li><li><a class="page-menu-link" href="#pgui_config_templateloading_caching" data-menu-target="pgui_config_templateloading_caching">Template caching</a></li></ul> </div>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_38">Template loaders</h2>
-
-
-
-
- <p>Template loaders are objects that load raw textual data based
- on abstract template paths like <code class="inline-code">"index.ftl"</code> or
- <code class="inline-code">"products/catalog.ftl"</code>. It's up to the concrete
- template loader if from where and how the template
- "files" are loaded. They could be real files inside a
- specified directory, or values in a data base table, or
- <code class="inline-code">String</code>-s in a Java Map, etc. When you call
- <code class="inline-code">cfg.getTemplate</code> (where <code class="inline-code">cfg</code> is
- a <code class="inline-code">Configuration</code> instance), FreeMarker asks the
- template loader (<code class="inline-code">cfg.getTemplateLoader</code>) to return
- the text for the given template path, and then FreeMarker parses
- that text as template. It doesn't care or even know if the template
- is a real file or not, and where it is physically; those details are
- only known by the template loader.</p>
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_39">Built-in template loaders</h3>
-
-
- <p>You can set up the three most common template loading
- mechanism in the <code class="inline-code">Configuration</code> using the
- following <em>convenience</em> methods:</p>
-
- <ul>
- <li>
- <p><code class="inline-code">void setDirectoryForTemplateLoading(File
- dir)</code>: Sets a directory on the file system from which
- to load templates. Template names (template paths) will be
- interpreted relatively to this physical directory. It won't
- let you load files outside this directory.</p>
- </li>
-
- <li>
- <p><code class="inline-code">void setClassForTemplateLoading(Class cl,
- String basePackagePath)</code> and <code class="inline-code">void
- setClassLoaderForTemplateLoading(ClassLoader classLoader,
- String basePackagePath)</code>: These are for when you want
- to load templates via the same mechanism with which Java loads
- classes (from the class-path, as they used to say vaguely).
- This is very likely be the preferred means of loading
- templates for production code, as it allows you to keep
- everything inside the deployment <code class="inline-code">jar</code> files.
- The first parameter decides which Java
- <code class="inline-code">ClassLoader</code> will be used. The second
- parameter specifies the package that contains the templates,
- in <code class="inline-code">/</code>-separated format. Note that if you
- don't start it with <code class="inline-code">/</code>, it will be
- interpreted relatively to the package of the
- <code class="inline-code">Class</code> parameter.</p>
- </li>
-
- <li>
- <p><code class="inline-code">void setServletContextForTemplateLoading(Object
- servletContext, String path)</code>: Takes the context of
- your Servlet-based web application, and a base path, which is
- interpreted relative to the web application root directory
- (that's the parent of the <code class="inline-code">WEB-INF</code>
- directory). Note that we refer to "directory" here although
- this loading method works even for unpacked
- <code class="inline-code">.war</code> files, since it uses
- <code class="inline-code">ServletContext.getResource()</code> to access the
- templates. If you omit the second parameter (or use
- <code class="inline-code">""</code>), you can simply store the static files
- (<code class="inline-code">.html</code>, <code class="inline-code">.jpg</code>, etc.)
- mixed with the <code class="inline-code">.ftl</code> files. Of course, you
- must set up a Servlet for the <code class="inline-code">*.ftl</code>,
- <code class="inline-code">*.ftlh</code>, <code class="inline-code">*.ftlx</code>
- uri-patterns in <code class="inline-code">WEB-INF/web.xml</code> for this,
- otherwise the client will get the raw templates as is! To
- avoid a such accident, many prefers storing the templates
- somewhere inside the <code class="inline-code">WEB-INF</code> directory,
- which is never visitable directly. This mechanism will very
- likely be the preferred means of loading templates for servlet
- applications, since the templates can be updated without
- restarting the web application, while this often doesn't work
- with the class-loader mechanism.</p>
- </li>
- </ul>
-
- <p>If you want to use a custom
- <code class="inline-code">TemplateLoader</code> implementation, or need to set
- up some extra settings of a built-in template loader, you need to
- instantiate the <code class="inline-code">TemplateLoader</code> object yourself,
- and then call
- <code class="inline-code">Configuration.setTemplateLoader(TemplateLoader)</code>:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">WebappTemplateLoader templateLoader = new WebappTemplateLoader(servletContext, "WEB-INF/templates");
-templateLoader.setURLConnectionUsesCaches(false);
-templateLoader.setAttemptFileAccess(false);
-cfg.setTemplateLoader(templateLoader);</pre></div>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_40">Loading templates from multiple locations</h3>
-
-
- <p>If you need to load templates from multiple locations, you
- have to instantiate the template loader objects for every
- location, wrap them into a <code class="inline-code">MultiTemplateLoader</code>,
- and finally pass that loader to the
- <code class="inline-code">setTemplateLoader(TemplateLoader loader)</code> method
- of <code class="inline-code">Configuration</code>. Here's an example for loading
- templates from two distinct directories and with the
- class-loader:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">import freemarker.cache.*; // template loaders live in this package
-
-<em>...</em>
-
-FileTemplateLoader ftl1 = new FileTemplateLoader(new File("/tmp/templates"));
-FileTemplateLoader ftl2 = new FileTemplateLoader(new File("/usr/data/templates"));
-ClassTemplateLoader ctl = new ClassTemplateLoader(getClass(), "/com/example/templates");
-
-MultiTemplateLoader mtl = new MultiTemplateLoader(new TemplateLoader[] { ftl1, ftl2, ctl });
-
-cfg.setTemplateLoader(mtl);</pre></div>
-
- <p>Now FreeMarker will try to load templates from
- <code class="inline-code">/tmp/templates</code> directory, and if it does not
- find the requested template there, it will try to load that from
- <code class="inline-code">/usr/data/templates</code>, and if it still does not
- find the requested template, then it tries to load it from the
- <code class="inline-code">com.example.templates</code> Java package.</p>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_41">Loading templates from other sources</h3>
-
-
- <p>If none of the built-in class loaders fit your needs, you
- can write your own class that implements the
- <code class="inline-code">freemarker.cache.TemplateLoader</code> interface and
- pass it to the <code class="inline-code">setTemplateLoader(TemplateLoader
- loader)</code> method of <code class="inline-code">Configuration</code>.
- Please read the API JavaDoc for more information.</p>
-
- <p>If your template source accesses the templates through an
- URL, you needn't implement a <code class="inline-code">TemplateLoader</code>
- from scratch; you can choose to subclass
- <code class="inline-code">freemarker.cache.URLTemplateLoader</code> instead and
- just implement the <code class="inline-code">URL getURL(String
- templateName)</code> method.</p>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_42">The template name (template path)</h3>
-
-
-
-
-
-
-
-
- <p>It is up to the template loader how it interprets template
- names (also known as template paths). But to work together with
- other components there are restrictions regarding the format of
- the path. In general, it is strongly recommended that template
- loaders use URL-style paths. The path must not use
- <code class="inline-code">/</code> (path step separator) character, nor the
- <code class="inline-code">.</code> (same-directory) and <code class="inline-code">..</code>
- (parent directory) path steps with other meaning than they have in
- URL paths (or in UN*X paths). The <code class="inline-code">*</code> (asterisk)
- step is also reserved, and used for "template
- acquisition" feature of FreeMarker.</p>
-
- <p><code class="inline-code">://</code> (or with
- <code class="inline-code">template_name_format</code> setting set to
- <code class="inline-code">DEFAULT_2_4_0</code>, the <code class="inline-code">:</code> (colon)
- character) is reserved for specifying a scheme part, similarly as
- it works with URI-s. For example
- <code class="inline-code">someModule://foo/bar.ftl</code> uses the
- <code class="inline-code">someModule</code>, or assuming the
- <code class="inline-code">DEFAULT_2_4_0</code> format,
- <code class="inline-code">classpath:foo/bar.ftl</code> uses the
- <code class="inline-code">classpath</code> scheme. Interpreting the scheme part
- is completely up to the <code class="inline-code">TemplateLoader</code>. (The
- FreeMarker core is only aware of the idea of schemes because
- otherwise it couldn't resolve relative template names
- properly.)</p>
-
- <p>FreeMarker always normalizes the paths before passing them
- to the <code class="inline-code">TemplateLoader</code>, so the paths don't
- contain <code class="inline-code">/../</code> or such, and are relative to the
- imaginary template root directory (that is, they don't start with
- <code class="inline-code">/</code>). They don't contain the <code class="inline-code">*</code>
- step either, as template acquisition happens in an earlier stage.
- Furthermore, with <code class="inline-code">template_name_format</code> setting
- set to <code class="inline-code">DEFAULT_2_4_0</code>, multiple consecutive
- <code class="inline-code">/</code>-s will be normalized to a single
- <code class="inline-code">/</code> (unless they are part of the
- <code class="inline-code">://</code> scheme separator).</p>
-
- <p>Note that FreeMarker template path should always uses slash
- (not backslash) regardless of the host OS.</p>
-
-
-
-
-
-
-<h2 class="content-header header-section2" id="pgui_config_templateloading_caching">Template caching</h2>
-
-
-
-
-
-
- <p>FreeMarker caches templates (assuming you use the
- <code class="inline-code">Configuration</code> methods to create
- <code class="inline-code">Template</code> objects). This means that when you call
- <code class="inline-code">getTemplate</code>, FreeMarker not only returns the
- resulting <code class="inline-code">Template</code> object, but stores it in a
- cache, so when next time you call <code class="inline-code">getTemplate</code>
- with the same (or equivalent) path, it just returns the cached
- <code class="inline-code">Template</code> instance, and will not load and parse
- the template file again.</p>
-
- <p>If you change the template file, then FreeMarker will re-load
- and re-parse the template automatically when you get the template
- next time. However, since always checking for changes can be burden
- for a system that processes lot of templates, there is a
- <code class="inline-code">Configuration</code> level setting called "update
- delay" (defaults is 5 seconds). Until this much time has
- elapsed since the last checking for a newer version, FreeMarker will
- not check again if the template was changed. If you want to see the
- changes without delay, set this setting to 0. Note that some
- template loaders won't see that a template was changed because of
- the underlying storage mechanism doesn't support that; for example,
- class-loader based template loaders may have this problem.</p>
-
- <p>A template will be removed from the cache if you call
- <code class="inline-code">getTemplate</code> and FreeMarker realizes that the
- template file has been removed meanwhile. Also, if the JVM thinks
- that it begins to run out of memory, by default it can arbitrarily
- drop templates from the cache. Furthermore, you can empty the cache
- manually with the <code class="inline-code">clearTemplateCache</code> method of
- <code class="inline-code">Configuration</code>. You can also drop selected
- template from the cache with
- <code class="inline-code">removeTemplateFromCache</code>; this can be also
- utilized to force re-loading a template regardless of the
- "update delay" setting.</p>
-
- <p>The actual strategy of when a cached template should be thrown
- away is pluggable with the <code class="inline-code">cache_storage</code> setting,
- by which you can plug any <code class="inline-code">CacheStorage</code>
- implementation. For most users
- <code class="inline-code">freemarker.cache.MruCacheStorage</code> will be
- sufficient. This cache storage implements a two-level Most Recently
- Used cache. In the first level, items are strongly referenced up to
- the specified maximum (strongly referenced items can't be dropped by
- the JVM, as opposed to softly referenced items). When the maximum is
- exceeded, the least recently used item is moved into the second
- level cache, where they are softly referenced, up to another
- specified maximum. The size of the strong and soft parts can be
- specified with the constructor. For example, set the size of the
- strong part to 20, and the size of soft part to 250:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">cfg.setCacheStorage(new freemarker.cache.MruCacheStorage(20, 250))</pre></div>
-
- <p>Or, since <code class="inline-code">MruCacheStorage</code> is the default
- cache storage implementation:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">cfg.setSetting(Configuration.CACHE_STORAGE_KEY, "strong:20, soft:250");</pre></div>
-
- <p>When you create a new <code class="inline-code">Configuration</code> object,
- initially it uses an <code class="inline-code">MruCacheStorage</code> where
- <code class="inline-code">strongSizeLimit</code> is 0, and
- <code class="inline-code">softSizeLimit</code> is
- <code class="inline-code">Integer.MAX_VALUE</code> (that is, in practice,
- infinite). Depending on how smart the JVM is, using non-0
- <code class="inline-code">strongSizeLimit</code> is maybe a safer option, as with
- only softly referenced items the JVM could even throw the most
- frequently used templates when there's a resource shortage, which
- then have to be re-loaded and re-parsed, burdening the system even
- more.</p>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="pgui_config_settings.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_config_errorhandling.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/pgui_datamodel.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/pgui_datamodel.html b/builds/2.3.26-nightly/pgui_datamodel.html
deleted file mode 100644
index d660cee..0000000
--- a/builds/2.3.26-nightly/pgui_datamodel.html
+++ /dev/null
@@ -1,55 +0,0 @@
-<!doctype html>
-<!-- Generated by FreeMarker/Docgen from DocBook -->
-<html lang="en" class="page-type-chapter">
-<head prefix="og: http://ogp.me/ns#">
-<meta charset="utf-8">
-<title>The Data Model - 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="The Data Model">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/pgui_datamodel.html">
-<link rel="canonical" href="http://freemarker.org/docs/pgui_datamodel.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="pgui.html"><span itemprop="name">Programmer's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_datamodel.html"><span itemprop="name">The Data Model</span></a></li></ul><div class="bookmark
s" 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","Programmer\'s Guide","The Data Model"];</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="pgui_quickstart_all.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_datamodel_basics.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-chapter" id="pgui_datamodel" itemprop="headline">The Data Model</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Section Contents</div>
-<ul><li><a class="page-menu-link" href="pgui_datamodel_basics.html" data-menu-target="pgui_datamodel_basics">Basics</a></li><li><a class="page-menu-link" href="pgui_datamodel_scalar.html" data-menu-target="pgui_datamodel_scalar">Scalars</a></li><li><a class="page-menu-link" href="pgui_datamodel_parent.html" data-menu-target="pgui_datamodel_parent">Containers</a></li><li><a class="page-menu-link" href="pgui_datamodel_method.html" data-menu-target="pgui_datamodel_method">Methods</a></li><li><a class="page-menu-link" href="pgui_datamodel_directive.html" data-menu-target="pgui_datamodel_directive">Directives</a></li><li><a class="page-menu-link" href="pgui_datamodel_node.html" data-menu-target="pgui_datamodel_node">Node variables</a></li><li><a class="page-menu-link" href="pgui_datamodel_objectWrapper.html" data-menu-target="pgui_datamodel_objectWrapper">Object wrappers</a></li></ul> </div><p>This is just an introductory explanation. See the <a href="api/index.html">FreeMarker Java API
documentation</a> for more
- detailed information.</p><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="pgui_quickstart_all.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_datamodel_basics.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/pgui_datamodel_basics.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/pgui_datamodel_basics.html b/builds/2.3.26-nightly/pgui_datamodel_basics.html
deleted file mode 100644
index eae2c70..0000000
--- a/builds/2.3.26-nightly/pgui_datamodel_basics.html
+++ /dev/null
@@ -1,105 +0,0 @@
-<!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>Basics - 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="Basics">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/pgui_datamodel_basics.html">
-<link rel="canonical" href="http://freemarker.org/docs/pgui_datamodel_basics.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="pgui.html"><span itemprop="name">Programmer's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_datamodel.html"><span itemprop="name">The Data Model</span></a></li><li class="step-3" itempr
op="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_datamodel_basics.html"><span itemprop="name">Basics</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","Programmer\'s Guide","The Data Model","Basics"];</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="pgui_datamodel.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_datamodel_scalar.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="pgui_datamodel_basics" itemprop="headline">Basics</h1>
-</div></div><p>You have seen how to build a data-model in the <a href="pgui_quickstart.html">Getting Started</a> using the standard
- Java classes (<code class="inline-code">Map</code>, <code class="inline-code">String</code>,
- etc.). Internally, the variables available in the template are Java
- objects that implement the
- <code class="inline-code">freemarker.template.TemplateModel</code> interface. But
- you could use standard Java collections as variables in your
- data-model, because these were replaced with the appropriate
- <code class="inline-code">TemplateModel</code> instances behind the scenes. This
- facility is called <strong>object wrapping</strong>.
- The object wrapping facility can convert <em>any</em> kind
- of object transparently to the instances of classes that implement
- <code class="inline-code">TemplateModel</code> interface. This makes it possible,
- for example, to access <code class="inline-code">java.sql.ResultSet</code> as
- sequence variable in templates, or to access
- <code class="inline-code">javax.servlet.ServletRequest</code> objects as a hash
- variable that contains the request attributes, or even to traverse XML
- documents as FTL variables (<a href="xgui.html">see here</a>). To
- wrap (convert) these objects, however, you need to plug the proper
- <code class="inline-code">ObjectWrapper</code> implementation (possibly your custom
- implementation); this will be discussed <a href="pgui_datamodel_objectWrapper.html">later</a>. The point for now
- is that any object that you want to access from the templates, sooner
- or later must be converted to an object that implements
- <code class="inline-code">TemplateModel</code> interface. So first you should
- familiarize yourself with writing of <code class="inline-code">TemplateModel</code>
- implementations.</p><p>There is roughly one
- <code class="inline-code">freemarker.template.TemplateModel</code> descendant
- interface corresponding to each basic type of variable
- (<code class="inline-code">TemplateHashModel</code> for hashes,
- <code class="inline-code">TemplateSequenceModel</code> sequences,
- <code class="inline-code">TemplateNumberModel</code> for numbers, etc.). For
- example, if you want to expose a <code class="inline-code">java.sql.ResultSet</code>
- as a sequence for the templates, then you have to write a
- <code class="inline-code">TemplateSequenceModel</code> implementation that can read
- <code class="inline-code">java.sql.ResultSet</code>-s. We used to say on this, that
- you <em>wrap</em> the
- <code class="inline-code">java.sql.ResultSet</code> with your
- <code class="inline-code">TemplateModel</code> implementation, as basically you just
- encapsulate the <code class="inline-code">java.sql.ResultSet</code> to provide
- access to it with the common <code class="inline-code">TemplateSequenceModel</code>
- interface. Note that a class can implement multiple
- <code class="inline-code">TemplateModel</code> interfaces; this is why FTL variables
- can have multiple types (see: <a href="dgui_datamodel_basics.html">Template Author's Guide/Values, Types/Basics</a>)</p><p>Note that a trivial implementation of these interfaces is
- provided with the <code class="inline-code">freemarker.template</code> package. For
- example, to convert a <code class="inline-code">String</code> to FTL string
- variable, you can use <code class="inline-code">SimpleScalar</code>, to convert a
- <code class="inline-code">java.util.Map</code> to FTL hash variable, you can use
- <code class="inline-code">SimpleHash</code>, etc.</p><p>An easy way to try your own <code class="inline-code">TemplateModel</code>
- implementation, is to create an instance of that, and drop it directly
- into the data-model (as <code class="inline-code">put</code> it into the root hash).
- The object wrapper will expose it untouched for the template, as it
- already implements <code class="inline-code">TemplateModel</code>, so no conversion
- (wrapping) needed. (This trick is also useful in cases when you do not
- want the object wrapper to try to wrap (convert) a certain
- object.)</p><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="pgui_datamodel.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_datamodel_scalar.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>\u20132017
-<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>
[02/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/xgui_imperative_formal.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/xgui_imperative_formal.html b/builds/2.3.26-nightly/xgui_imperative_formal.html
deleted file mode 100644
index 324910a..0000000
--- a/builds/2.3.26-nightly/xgui_imperative_formal.html
+++ /dev/null
@@ -1,545 +0,0 @@
-<!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>Details - 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="Details">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/xgui_imperative_formal.html">
-<link rel="canonical" href="http://freemarker.org/docs/xgui_imperative_formal.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="xgui.html"><span itemprop="name">XML Processing Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="xgui_imperative.html"><span itemprop="name">Imperative XML processing</span></a></li><li class="step
-3" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="xgui_imperative_formal.html"><span itemprop="name">Details</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","XML Processing Guide","Imperative XML processing","Details"];</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="xgui_imperative_learn.html"><span>Previous</span></a><a class="paging-arrow next" href="xgui_declarative.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="xgui_imperative_formal" itemprop="headline">Details</h1>
-</div></div><p>Every variable that corresponds to a single node in the DOM tree
- is a multi-type variable of type node and type hash (for programmers:
- implements both <code class="inline-code">TemplateNodeModel</code> and
- <code class="inline-code">TemplateHashModel</code>). Thus, you can use the <a href="ref_builtins_node.html">node built-ins</a> with them. Hash keys
- are interpreted as XPath expressions, except the special keys shown in
- the table below. Some of the node variables also have string type, so
- you can use them as string variables (for programmers: they implement
- <code class="inline-code">TemplateScalarModel</code>).</p><a name="misc.xguiTable"></a> <div class="table-responsive">
- <table class="table">
-
- <thead>
- <tr>
- <th>Node type (<code class="inline-code">?node_type</code>)</th>
-
-
- <th>Node name (<code class="inline-code">?node_name</code>)</th>
-
-
- <th>String value (e.g.�<code class="inline-code"><p>${node}</code>)</th>
-
-
- <th>Special hash keys</th>
-
- </tr>
-
- </thead>
-
-
- <tbody>
- <tr>
- <td><code class="inline-code">"document"</code></td>
-
-
- <td><code class="inline-code">"@document"</code></td>
-
-
- <td>No string value. (Error when you try to use it as
- string.)</td>
-
-
- <td><code class="inline-code"><em class="code-color">elementName</em></code>,
- <code class="inline-code">"<em class="code-color">prefix</em>:<em class="code-color">elementName</em>"</code>,
- <code class="inline-code">*</code>, <code class="inline-code">**</code>,
- <code class="inline-code">@@markup</code>, <code class="inline-code">@@nested_markup</code>,
- <code class="inline-code">@@text</code>, <code class="inline-code">@@local_name</code>,
- <code class="inline-code">@@qname</code>, <code class="inline-code">@@namespace</code></td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">"element"</code></td>
-
-
- <td><code class="inline-code">"<em class="code-color">name</em>"</code>: the
- name of the element. This is the local name (i.e. name without
- namespace prefix).</td>
-
-
- <td>If it has no element children, the text of all text node
- children concatenated together. Error otherwise, when you try to
- use it as string.</td>
-
-
- <td><code class="inline-code"><em class="code-color">elementName</em></code>,
- <code class="inline-code">"<em class="code-color">prefix</em>:<em class="code-color">elementName</em>"</code>,
- <code class="inline-code">*</code>, <code class="inline-code">**</code>,
- <code class="inline-code">@<em class="code-color">attrName</em></code>,
- <code class="inline-code">"@<em class="code-color">prefix</em>:<em class="code-color">attrName</em>"</code>,
- <code class="inline-code">@@</code>, <code class="inline-code">"@*"</code>,
- <code class="inline-code">@@start_tag</code>, <code class="inline-code">@@end_tag</code>,
- <code class="inline-code">@@attributes_markup</code>,
- <code class="inline-code">@@next_sibling_element</code>,
- <code class="inline-code">@@previous_sibling_element</code>,
- <code class="inline-code">@@markup</code>, <code class="inline-code">@@nested_markup</code>,
- <code class="inline-code">@@text</code>, <code class="inline-code">@@local_name</code>,
- <code class="inline-code">@@qname</code>, <code class="inline-code">@@namespace</code></td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">"text"</code></td>
-
-
- <td><code class="inline-code">"@text"</code></td>
-
-
- <td>The text itself.</td>
-
-
- <td><code class="inline-code">@@markup</code>,
- <code class="inline-code">@@nested_markup</code>, <code class="inline-code">@@text</code>,
- <code class="inline-code">@@local_name</code>, <code class="inline-code">@@qname</code>,
- <code class="inline-code">@@namespace</code></td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">"pi"</code></td>
-
-
- <td><code class="inline-code">"@pi$<em class="code-color">target</em>"</code></td>
-
-
- <td>The part between the target name and the
- <code class="inline-code">?></code>.</td>
-
-
- <td><code class="inline-code">@@markup</code>,
- <code class="inline-code">@@nested_markup</code>, <code class="inline-code">@@text</code>,
- <code class="inline-code">@@local_name</code>, <code class="inline-code">@@qname</code>,
- <code class="inline-code">@@namespace</code></td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">"comment"</code></td>
-
-
- <td><code class="inline-code">"@comment"</code></td>
-
-
- <td>The text of the comment, without the delimiters
- <code class="inline-code"><!--</code> and <code class="inline-code">--></code>.</td>
-
-
- <td><code class="inline-code">@@markup</code>,
- <code class="inline-code">@@nested_markup</code>, <code class="inline-code">@@text</code>,
- <code class="inline-code">@@local_name</code>, <code class="inline-code">@@qname</code>,
- <code class="inline-code">@@namespace</code></td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">"attribute"</code></td>
-
-
- <td><code class="inline-code">"<em class="code-color">name</em>"</code>: the
- name of the attribute. This is the local name (i.e. name without
- namespace prefix).</td>
-
-
- <td>The value of the attribute.</td>
-
-
- <td><code class="inline-code">@@markup</code>,
- <code class="inline-code">@@nested_markup</code>, <code class="inline-code">@@text</code>,
- <code class="inline-code">@@qname</code>, <code class="inline-code">@@local_name</code>,
- <code class="inline-code">@@qname</code>, <code class="inline-code">@@namespace</code></td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">"document_type"</code></td>
-
-
- <td><code class="inline-code">"@document_type$<em class="code-color">name</em>"</code>:
- <code class="inline-code"><em class="code-color">name</em></code> is the name
- of the document element.</td>
-
-
- <td>No string value. (Error when you try to use it as
- string.)</td>
-
-
- <td><code class="inline-code">@@markup</code>,
- <code class="inline-code">@@nested_markup</code>, <code class="inline-code">@@text</code>,
- <code class="inline-code">@@local_name</code>, <code class="inline-code">@@qname</code>,
- <code class="inline-code">@@namespace</code></td>
-
- </tr>
-
- </tbody>
-
- </table>
- </div>
-<p>Notes:</p><ul>
- <li>
- <p>There is no CDATA type. CDATA nodes are transparently
- considered as text nodes.</p>
- </li>
-
- <li>
- <p>These variables do <em>not</em> support
- <code class="inline-code">?keys</code> and <code class="inline-code">?values</code>.</p>
- </li>
-
- <li>
- <p>Element and attribute node names are local names, that is,
- they do not contain the namespace prefix. The URI of the namespace
- the node belongs to can be queried with the
- <code class="inline-code">?node_namespace</code> built-in.</p>
- </li>
-
- <li>
- <p>XPath expression needs Jaxen (recommended, but please use
- 1.1-beta-8 or later; <a href="http://jaxen.org/">download
- it here</a>) or Apache Xalan classes available, or an error
- will stop template execution. Note, however, that as some special
- hash keys hide the XPath expressions of the same meaning, those
- XPath expressions will work even if there is no XPath
- implementation available. <span class="marked-for-programmers">If both
- Xalan and Jaxen is available, FreeMarker will use Xalan, unless
- you choose Jaxen by calling
- <code class="inline-code">freemarker.ext.dom.NodeModel.useJaxenXPathSupport()</code>
- from Java.</span></p>
- </li>
-
- <li>
- <p>If Jaxen is used for the XPath support (not Xalan), then
- FreeMarker variables are visible with XPath variable references
- (e.g.
- <code class="inline-code">doc["book/chapter[title=$currentTitle]"]</code>).</p>
- </li>
- </ul><p>Meaning of special hash keys:</p><ul>
- <li>
- <p><code class="inline-code"><em class="code-color">elementName</em></code>,
- <code class="inline-code">"<em class="code-color">prefix</em>:<em class="code-color">elementName</em>"</code>:
- Returns the sequence of child nodes that are elements of name
- <code class="inline-code"><em class="code-color">elementName</em></code>. (Note
- that the term "child" means
- <em>immediate</em> descendant.) The selection is XML
- name-space aware, unless the XML document was persed with an XML
- parser that was not in namespace aware mode. In XML name-space
- aware mode, names without prefix
- (<em>elementName</em>) selects only elements
- that doesn't belong to any XML name-space (unless you have
- registered a default XML namespace), and names with prefix
- (<em>prefix</em>:<em>elementName</em>)
- selects only elements that are belonging to the XML namespace
- denoted by the prefix. The registration of prefixes and the
- setting of the default XML namespace is done with the
- <code class="inline-code">ns_prefixes</code> parameter of the <a href="ref_directive_ftl.html#ref.directive.ftl"><code>ftl</code>
- directive</a>.</p>
- </li>
-
- <li>
- <p><code class="inline-code">*</code>: Returns the sequence of all child
- (direct descendant) <em>element</em> nodes. The
- sequence will contain the elements in the "document
- order", that is, in the order in which the first character
- of the XML representation of each node occurs (after expansion of
- general entities).</p>
- </li>
-
- <li>
- <p><code class="inline-code">**</code>: Returns the sequence of all
- descendant <em>element</em> nodes. The sequence will
- contain the elements in the document order.</p>
- </li>
-
- <li>
- <p><code class="inline-code">@<em class="code-color">attName</em></code>,
- <code class="inline-code">"@<em class="code-color">prefix</em>:<em class="code-color">attrName</em>"</code>:
- Returns the attribute
- <code class="inline-code"><em class="code-color">attName</em></code> of the
- element as a sequence of size 1 that contains the attribute node,
- or as an empty sequence if the attribute does not exist (so to
- check if an attribute exists use
- <code class="inline-code">foo.@<em class="code-color">attName</em>[0]??</code>,
- <em>not</em>
- <code class="inline-code">foo.@<em class="code-color">attName</em>??</code>). As
- with special key
- <code class="inline-code">"<em class="code-color">elementName</em>"</code>, if
- the length of the sequence is 1, then it also acts as its first
- subvariable. If no
- <code class="inline-code"><em class="code-color">prefix</em></code> is used, then
- it returns only attribute that does not use XML namespace (even if
- you have set a default XML namespace). If a
- <code class="inline-code"><em class="code-color">prefix</em></code> is used, it
- returns only the attribute that belongs to the XML namespace
- associated with the
- <code class="inline-code"><em class="code-color">prefix</em></code>. The
- registration of prefixes is done with the
- <code class="inline-code">ns_prefixes</code> parameter of the <a href="ref_directive_ftl.html#ref.directive.ftl"><code>ftl</code>
- directive</a>.</p>
- </li>
-
- <li>
- <p><code class="inline-code">@@</code> or <code class="inline-code">"@*"</code>: Returns
- the sequence of attribute nodes belonging to the parent element.
- This is the same as XPath <code class="inline-code">@*</code>.</p>
- </li>
-
- <li>
- <p><code class="inline-code">@@qname</code>: Returns the full-qualified name
- of the element (such as <code class="inline-code">e:book</code>, in contrast to
- the local name returned by <code class="inline-code">?node_name</code> that is
- <code class="inline-code">book</code>) . The prefix used (as
- <code class="inline-code">e</code>) is chosen based on the prefix registered in
- the current namespace with the <code class="inline-code">ns_prefixes</code>
- parameter of the <code class="inline-code">ftl</code> directive, and not
- influenced by the prefix used in the source XML document. If you
- have set a default XML namespace, then for nodes that use that,
- prefix <code class="inline-code">D</code> will be used. For nodes that does not
- belong to an XML namespace, no prefix is used (even if you have
- set a default namespace). If there is no prefix registered for the
- namespace of the node, the result is a non-existent variable
- (<code class="inline-code">node.@@qname??</code> is
- <code class="inline-code">false</code>).</p>
- </li>
-
- <li>
- <p><code class="inline-code">@@local_mame</code>: The name of the node
- without the namespace prefix.</p>
- </li>
-
- <li>
- <p><code class="inline-code">@@namespace</code>: The namespace URL (not the
- namespace prefix) of the node.</p>
- </li>
-
- <li>
- <p><code class="inline-code">@@markup</code>: This returns the full XML
- markup of a node, as a string. (Full XML markup means that it also
- contains the markup of the child nodes, and the markup of the
- children of the child nodes, and so on.) The markup you get is not
- necessary the same as the markup in the source XML file, it's just
- semantically identical. Especially, note that CDATA sections will
- become to plain text. Also note that depending on how did you
- wrapped the original XML document with FreeMarker, comment or
- processing instruction nodes may were removed, and then they will
- be missing from the output of course. The first outputted start
- tag will contain
- <code class="inline-code">xmlns:<em class="code-color">prefix</em></code>
- attributes for each XML name-spaces used in the outputted XML
- fragment, and those prefixes will be used in the outputted element
- and attribute names. These prefixes will be the same as the
- prefixes registered with the <code class="inline-code">ns_prefixes</code>
- parameter of the <code class="inline-code">ftl</code> directive (no prefix will
- be used for <code class="inline-code">D</code>, as it will be registered as the
- default name-space with an <code class="inline-code">xmlns</code> attribute), or
- if no prefix was assigned for a XML name-space with that, then an
- arbitrary chosen unused prefix is used.</p>
- </li>
-
- <li>
- <p><code class="inline-code">@@nested_markup</code>: This is similar to
- <code class="inline-code">@@markup</code>, but it returns the XML markup of an
- element without its opening and closing tags. For the document
- node, it returns the same as <code class="inline-code">@@markup</code>. For
- other node types (text, processing instruction, etc.), it returns
- an empty string. Unlike with <code class="inline-code">@@markup</code>, no
- <code class="inline-code">xmlns:<em class="code-color">prefix</em></code>
- attributes will be placed into the output, but regarding the
- prefixes used in element and attribute names the rules are the
- same.</p>
- </li>
-
- <li>
- <p><code class="inline-code">@@text</code>: This returns the value of all
- text nodes that occur within the node (all descendant text nodes,
- not just direct children), concatenated together into a single
- string. If the node has no text node children, then the result is
- an empty string.</p>
- </li>
-
- <li>
- <p><code class="inline-code">@@start_tag</code>: Returns the markup of the
- <a href="gloss.html#gloss.startTag">start-tag</a> of the element
- node. As with <code class="inline-code">@@markup</code>, the output is not
- necessary the same as in the original XML document, but it is
- semantically equivalent with that. Regarding the XML name-spaces
- (<code class="inline-code">xmlns:<em class="code-color">prefix</em></code>
- attributes in the output, etc.) the rules are the same as with
- <code class="inline-code">"@@markup"</code></p>
- </li>
-
- <li>
- <p><code class="inline-code">@@end_tag</code>: Returns the markup of the
- <a href="gloss.html#gloss.endTag">end-tag</a> of the element node.
- As with <code class="inline-code">@@markup</code>, the output is not necessary
- the same as in the original XML document, but it is semantically
- equivalent with that.</p>
- </li>
-
- <li>
- <p><code class="inline-code">@@attributes_markup</code>: Returns the markup
- of the <a href="gloss.html#gloss.attribute">attributes</a> of the
- element node. As with <code class="inline-code">@@markup</code>, the output is
- not necessary the same as in the original XML document, but it is
- semantically equivalent with that.</p>
- </li>
-
- <li>
- <p><code class="inline-code">@@next_sibling_element</code> (since 2.3.26):
- The following sibling element of an element node or an empty node
- sequence if there's no such element. An element counts as a
- sibling of another element if they are on the same hierarchical
- level, and there's no other element or non-whitespace character
- data (text or CDATA) between the two elements. For example in
- <code class="inline-code"><a/><!-- comment
- -->#&x20;<b/></code> the two elements are
- siblings, but not in <code class="inline-code"><a/>text<b/></code>
- or <code class="inline-code"><a/><x/><b/></code>.</p>
- </li>
-
- <li>
- <p><code class="inline-code">@@previous_sibling_element</code> (since
- 2.3.26): The previous sibling element of an element node or an
- empty node sequence if there's no such element. See the last point
- for the meaning of sibling.</p>
- </li>
- </ul>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_151">Node sequences</h2>
-
-
- <p>Many of the special hash keys (indicated in the above list),
- and XPath expressions that result in node-sets (see the <a href="http://www.w3.org/TR/xpath">XPath recommendation</a>)
- return a sequence of nodes.</p>
-
- <p>These node sequences, if they store exactly 1 subvariable,
- will also act as the subvariable itself. For example,
- <code class="inline-code">${book.title[0]}</code> will do the same as
- <code class="inline-code">${book.title}</code>, if there is only one
- <code class="inline-code">title</code> element child of element
- <code class="inline-code">book</code>.</p>
-
- <p>Returning an empty node sequence is a normal situation. For
- example, if in a concrete XML document, element
- <code class="inline-code">book</code> has no child element
- <code class="inline-code">chapter</code>, then <code class="inline-code">book.chapter</code>
- results in an empty node sequence. Beware! This also means, that
- <code class="inline-code">book.chaptre</code> (note the typo) will also return
- empty node sequence, and will not stop with error. Also,
- <code class="inline-code">book.chaptre??</code> (note the typo) will return
- <code class="inline-code">true</code> because the empty sequence exists, so you
- have to use <code class="inline-code">book.chaptre[0]??</code> for the
- check.</p>
-
- <p>Node sequences that store not 1 nodes (but 0 or more than 1
- nodes) also support some of the hash keys described above. Namely,
- the following special keys are supported:</p>
-
- <ul>
- <li>
- <p><code class="inline-code"><em class="code-color">elementName</em></code>,
- <code class="inline-code">"<em class="code-color">prefix</em>:<em class="code-color">elementName</em>"</code></p>
- </li>
-
- <li>
- <p><code class="inline-code">@<em class="code-color">attrName</em></code>,
- <code class="inline-code">"@<em class="code-color">prefix</em>:<em class="code-color">attrName</em>"</code></p>
- </li>
-
- <li>
- <p><code class="inline-code">@@markup</code>,
- <code class="inline-code">@@nested_markup</code></p>
- </li>
-
- <li>
- <p><code class="inline-code">@@text</code></p>
- </li>
-
- <li>
- <p><code class="inline-code">*</code>, <code class="inline-code">**</code></p>
- </li>
-
- <li>
- <p><code class="inline-code">@@</code>, <code class="inline-code">"@*"</code></p>
- </li>
- </ul>
-
- <p>When you apply one of the above special keys on a node
- sequence that contains more than 1 or 0 nodes, then for each node in
- the sequence (where the special key does make sense, e.g. text nodes
- will be skipped for key <code class="inline-code">*</code> or
- <code class="inline-code">@foo</code>), the special key will be applied as it was
- explained for single nodes, and the results will be concatenated to
- form the final result. The results will be concatenated in the order
- as the corresponding nodes occur in the node sequence. The
- concatenation means string or sequence concatenation depending on
- the type of the results. If the special key would result in a string
- for a single node, then for multiple nodes the result is a single
- string too (the results for the single nodes concatenated), and if
- the special key would return a sequence for a single node, then for
- multiple nodes the result is a single sequence too. If there are 0
- nodes in the sequence you apply the special key on, the string
- result is an empty string or an empty sequence respectively.</p>
-
- <p>XPath expressions can be used with node sequences. However,
- for 0 or more than 1 nodes it will work only if you use Jaxen
- instead of Xalan, because of the limitations of the Xalan XPath
- implementation.</p>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="xgui_imperative_learn.html"><span>Previous</span></a><a class="paging-arrow next" href="xgui_declarative.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/xgui_imperative_learn.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/xgui_imperative_learn.html b/builds/2.3.26-nightly/xgui_imperative_learn.html
deleted file mode 100644
index 05c3205..0000000
--- a/builds/2.3.26-nightly/xgui_imperative_learn.html
+++ /dev/null
@@ -1,656 +0,0 @@
-<!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>Basics - 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="Basics">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/xgui_imperative_learn.html">
-<link rel="canonical" href="http://freemarker.org/docs/xgui_imperative_learn.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="xgui.html"><span itemprop="name">XML Processing Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="xgui_imperative.html"><span itemprop="name">Imperative XML processing</span></a></li><li class="step
-3" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="xgui_imperative_learn.html"><span itemprop="name">Basics</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","XML Processing Guide","Imperative XML processing","Basics"];</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="xgui_imperative.html"><span>Previous</span></a><a class="paging-arrow next" href="xgui_imperative_formal.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="xgui_imperative_learn" itemprop="headline">Basics</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_145" data-menu-target="autoid_145">Accessing elements by name</a></li><li><a class="page-menu-link" href="#autoid_146" data-menu-target="autoid_146">Accessing attributes</a></li><li><a class="page-menu-link" href="#autoid_147" data-menu-target="autoid_147">Exploring the tree</a></li><li><a class="page-menu-link" href="#autoid_148" data-menu-target="autoid_148">Using XPath expressions</a></li><li><a class="page-menu-link" href="#autoid_149" data-menu-target="autoid_149">XML namespaces</a></li><li><a class="page-menu-link" href="#autoid_150" data-menu-target="autoid_150">Don't forget escaping!</a></li></ul> </div> <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This section uses the DOM tree and the variable made in the
- <a href="xgui_expose.html">previous chapter</a>.</p>
- </div>
-<p>Assume that the programmer has put the XML document into the
- data-model as variable <code class="inline-code">doc</code>. This variable
- corresponds to the root of the <a href="xgui_expose_dom.html">DOM
- tree</a>, the "document". The actual variable
- structure behind <code class="inline-code">doc</code> is wily enough, and only
- roughly resembles the DOM tree. So instead of getting lost in the
- details, let's see how to use it by example.</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_145">Accessing elements by name</h2>
-
-
- <p>This FTL prints the title of the book:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><h1>${doc.book.title}</h1></pre></div>
-
- <p>The output will be:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"><h1>Test Book</h1></pre></div>
-
- <p>As you see, both <code class="inline-code">doc</code> and
- <code class="inline-code">book</code> can be used as hashes; you get their child
- nodes as sub variables. Basically, you describe the path by which
- you reach the target (element <code class="inline-code">title</code>) in the DOM
- tree. You may notice that there was some swindle above: with
- <code class="inline-code">${doc.book.title}</code>, it seems that we instruct
- FreeMarker to print the <code class="inline-code">title</code> element itself, but
- we should print its child text node (check the <a href="xgui_expose_dom.html">DOM tree</a>). It still works, because
- elements are not only hash variables, but string variables as well.
- The scalar value of an element node is the string resulting from the
- concatenation of all its text child nodes. However, trying to use an
- element as scalar will cause error if the element has child
- elements. For example <code class="inline-code">${doc.book}</code> would stop with
- error.</p>
-
- <p>This FTL prints the titles of the two chapters:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><h2>${doc.book.chapter[0].title}</h2>
-<h2>${doc.book.chapter[1].title}</h2></pre></div>
-
- <p>Here, as <code class="inline-code">book</code> has 2
- <code class="inline-code">chapter</code> element children,
- <code class="inline-code">doc.book.chapter</code> is a sequence that stores the
- two element nodes. Thus, we can generalize the above FTL, so it
- works with any number of chapters:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list doc.book.chapter as ch>
- <h2>${ch.title}</h2>
-</#list></pre></div>
-
- <p>But what's if there is only one chapter? Actually, when you
- access an element as hash subvariable, it is
- <em>always</em> a sequence as well (not only hash and
- string), but if the sequence contains exactly 1 item, then the
- variable also acts as that item itself. So, returning to the first
- example, this would print the book title as well:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><h1>${doc.book[0].title[0]}</h1></pre></div>
-
- <p>But you know that there is exactly 1 <code class="inline-code">book</code>
- element, and that a book has exactly 1 title, so you can omit the
- <code class="inline-code">[0]</code>-s.
- <code class="inline-code">${doc.book.chapter.title}</code> would work too, if the
- book happen to have only 1 <code class="inline-code">chapter</code>-s (otherwise
- it is ambiguous: how is it to know if the <code class="inline-code">title</code>
- of which <code class="inline-code">chapter</code> you want? So it stops with an
- error.). But since a book can have multiple chapters, you don't use
- this form. If the element <code class="inline-code">book</code> has no
- <code class="inline-code">chapter</code> child, then
- <code class="inline-code">doc.book.chapter</code> will be a 0 length sequence, so
- the FTL with <code class="inline-code"><#list ...></code> will still
- work.</p>
-
- <p>It is important to realize the consequence that, for example,
- if <code class="inline-code">book</code> has no <code class="inline-code">chapter</code>-s then
- <code class="inline-code">book.chapter</code> is an empty sequence, so
- <code class="inline-code">doc.book.chapter??</code> will <em>not</em>
- be <code class="inline-code">false</code>, it will be always
- <code class="inline-code">true</code>! Similarly,
- <code class="inline-code">doc.book.somethingTotallyNonsense??</code> will not be
- <code class="inline-code">false</code> either. To check if there was no children
- found, use <code class="inline-code">doc.book.chapter[0]??</code> (or
- <code class="inline-code">doc.book.chapter?size == 0</code>). Of course you can
- use similarly all the <a href="dgui_template_exp.html#dgui_template_exp_missing">missing value handler
- operators</a> (e.g.
- <code class="inline-code">doc.book.author[0]!"Anonymous"</code>), just don't
- forget that <code class="inline-code">[0]</code>.</p>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>The rule with sequences of size 1 is a convenience feature
- of the XML wrapper (implemented via multi-type FTL variables). It
- will not work with other sequences in general.</p>
- </div>
-
-
- <p>Now we finish the example by printing all the
- <code class="inline-code">para</code>-s of each chapter:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><h1>${doc.book.title}</h1>
-<#list doc.book.chapter as ch>
- <h2>${ch.title}</h2>
- <#list ch.para as p>
- <p>${p}
- </#list>
-</#list></pre></div>
-
- <p>this will print:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"><h1>Test</h1>
- <h2>Ch1</h2>
- <p>p1.1
- <p>p1.2
- <p>p1.3
- <h2>Ch2</h2>
- <p>p2.1
- <p>p2.2</pre></div>
-
- <p>The above FTL could be written more nicely as:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign book = doc.book>
-<h1>${book.title}</h1>
-<#list book.chapter as ch>
- <h2>${ch.title}</h2>
- <#list ch.para as p>
- <p>${p}
- </#list>
-</#list></pre></div>
-
- <p>Finally, a generalized usage of the child selector mechanism:
- this template lists all <code class="inline-code">para</code>-s of the example XML
- document:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list doc.book.chapter.para as p>
- <p>${p}
-</#list></pre></div>
-
- <p>The output will be:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> <p>p1.1
- <p>p1.2
- <p>p1.3
- <p>p2.1
- <p>p2.2
- </pre></div>
-
- <p>This example shows that hash sub variables select the children
- of a sequence of notes (just in the earlier examples that sequence
- happened to be of size 1). In this concrete case, subvariable
- <code class="inline-code">chapter</code> returns a sequence of size 2 (since there
- are two <code class="inline-code">chapter</code>-s), and then subvariable
- <code class="inline-code">para</code> selects the <code class="inline-code">para</code> child
- nodes of all nodes in that sequence.</p>
-
- <p>A negative consequence of this mechanism is that things like
- <code class="inline-code">doc.somethingNonsense.otherNonsesne.totalNonsense</code>
- will just evaluate to an empty sequence, and you don't get any error
- messages.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_146">Accessing attributes</h2>
-
-
- <p>This XML is the same as the original, except that it uses
- attributes for the titles, instead of elements:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified"><!-- THIS XML IS USED FOR THE "Accessing attributes" CHAPTER ONLY! -->
-<!-- Outside this chapter examples use the XML from earlier. -->
-
-<book title="Test">
- <chapter title="Ch1">
- <para>p1.1</para>
- <para>p1.2</para>
- <para>p1.3</para>
- </chapter>
- <chapter title="Ch2">
- <para>p2.1</para>
- <para>p2.2</para>
- </chapter>
-</book></pre></div>
-
- <p>The attributes of an element can be accessed in the same way
- as the child elements of the element, except that you put an at-sign
- (@) before the name of the attribute:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign book = doc.book>
-<h1>${book.@title}</h1>
-<#list book.chapter as ch>
- <h2>${ch.@title}</h2>
- <#list ch.para as p>
- <p>${p}
- </#list>
-</#list></pre></div>
-
- <p>This will print exactly the same as the previous
- example.</p>
-
- <p>Getting attributes follows the same logic as getting child
- elements, so the result of <code class="inline-code">ch.@title</code> above is a
- sequence of size 1. If there were no <code class="inline-code">title</code>
- attribute, then the result would be a sequence of size 0. So be
- ware, using existence built-ins is tricky here too: if you are
- curious if <code class="inline-code">foo</code> has attribute
- <code class="inline-code">bar</code> then you have to write
- <code class="inline-code">foo.@bar[0]??</code>. (<code class="inline-code">foo.@bar??</code> is
- wrong, because it always returns <code class="inline-code">true</code>.)
- Similarly, if you want a default value for the
- <code class="inline-code">bar</code> attribute, then you have to write
- <code class="inline-code">foo.@bar[0]!"theDefaultValue"</code>.</p>
-
- <p>As with child elements, you can select the attributes of
- multiple nodes. For example, this template prints the titles of all
- chapters:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list doc.book.chapter.@title as t>
- ${t}
-</#list></pre></div>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_147">Exploring the tree</h2>
-
-
- <p>This FTL will enumerate all child nodes of the book
- element:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list doc.book?children as c>
-- ${c?node_type} <#if c?node_type == 'element'>${c?node_name}</#if>
-</#list></pre></div>
-
- <p>this will print:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">- text
-- element title
-- text
-- element chapter
-- text
-- element chapter
-- text</pre></div>
-
- <p>The meaning of <code class="inline-code">?node_type</code> is probably clear
- without explanation. There are several node types that can occur in
- a DOM tree, such as <code class="inline-code">"element"</code>,
- <code class="inline-code">"text"</code>, <code class="inline-code">"comment"</code>,
- <code class="inline-code">"pi"</code>, ...etc.</p>
-
- <p>The <code class="inline-code">?node_name</code> returns the name of element
- for element nodes. For other node types, it also returns something,
- but that's mainly useful for declarative XML processing, which will
- be discussed in a <a href="xgui_declarative.html">later
- chapter</a>.</p>
-
- <p>If the book element had attributes, they would
- <em>not</em> appear in the above list, for practical
- reasons. But you can get a list that contains all attributes of the
- element, with subvariable <code class="inline-code">@@</code> of the element
- variable. If you modify the first line of the XML to this:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified"><book foo="Foo" bar="Bar" baaz="Baaz"></pre></div>
-
- <p>and run this FTL:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list doc.book.@@ as attr>
-- ${attr?node_name} = ${attr}
-</#list></pre></div>
-
- <p>then you get this output (or something similar):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">- baaz = Baaz
-- bar = Bar
-- foo = Foo</pre></div>
-
- <p>Returning to the listing of children, there is a convenience
- subvariable to list only the element children of an element:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list doc.book.* as c>
-- ${c?node_name}
-</#list></pre></div>
-
- <p>This will print:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">- title
-- chapter
-- chapter</pre></div>
-
- <p>You get the parent of an element with the
- <code class="inline-code">parent</code> built-in:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign e = doc.book.chapter[0].para[0]>
-<#-- Now e is the first para of the first chapter -->
-${e?node_name}
-${e?parent?node_name}
-${e?parent?parent?node_name}
-${e?parent?parent?parent?node_name}</pre></div>
-
- <p>This will print:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">para
-chapter
-book
-@document</pre></div>
-
- <p>In the last line you have reached the root of the DOM tree,
- the document node. It's not an element, and this is why it has that
- strange name; don't deal with it now. Obviously, the document node
- has no parent.</p>
-
- <p>You can quickly go back to the document node using the
- <code class="inline-code">root</code> built-in:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign e = doc.book.chapter[0].para[0]>
-${e?root?node_name}
-${e?root.book.title}</pre></div>
-
- <p>This will print:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">@document
-Test Book</pre></div>
-
- <p>For the complete list of built-ins you can use to navigate in
- the DOM tree, read the <a href="ref_builtins_node.html">reference
- of node built-ins</a>.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_148">Using XPath expressions</h2>
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>XPath expressions work only if <a href="http://jaxen.org/">Jaxen</a> (recommended, but use
- at least Jaxen 1.1-beta-8, not older) or <a href="http://xml.apache.org/xalan/">Apache Xalan</a>
- classes are available. (Apache Xalan classes are included in Sun
- J2SE 1.4, 1.5 and 1.6 (and maybe later too); no separate Xalan jar
- is needed.)</p>
- </div>
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>Don't use the sample XML from the previous section, where
- <code class="inline-code">title</code> is an attribute; that applies only to
- that section.</p>
- </div>
-
-
- <p>If a hash key used with a node variable can't be interpreted
- otherwise (see the <a href="xgui_imperative_formal.html">next
- section</a> for the precise definition), then it will by
- interpreted as an XPath expression. For more information on XPath,
- please visit <a href="http://www.w3.org/TR/xpath">http://www.w3.org/TR/xpath</a>.</p>
-
- <p>For example, here we list the <code class="inline-code">para</code> elements
- of the chapter with <code class="inline-code">title</code> element (not
- attribute!) content "Ch1'':</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list doc["book/chapter[title='Ch1']/para"] as p>
- <p>${p}
-</#list></pre></div>
-
- <p>It will print:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> <p>p1.1
- <p>p1.2
- <p>p1.3</pre></div>
-
- <p>The rule with sequences of length 1 (explained in earlier
- sections) stands for XPath results as well. That is, if the
- resulting sequence contains exactly 1 node, it also acts as the node
- itself. For example, print the first paragraph of chapter
- "Ch1":</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${doc["book/chapter[title='Ch1']/para[1]"]}</pre></div>
-
- <p>which prints the same as:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${doc["book/chapter[title='Ch1']/para[1]"][0]}</pre></div>
-
- <p>The context node of the XPath expression is the node (or
- sequence of nodes) whose hash subvariable is used to issue the XPath
- expression. Thus, this prints the same as the previous
- example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${doc.book["chapter[title='Ch1']/para[1]"]}</pre></div>
-
- <p>Note that currently you can use a sequence of 0 or multiple
- (more than 1) nodes as context only if the programmer has set up
- FreeMarker to use Jaxen instead of Xalan.</p>
-
- <p>Also note that XPath indexes sequence items from 1, while FTL
- indexes sequence items from 0. Thus, to select the first chapter,
- the XPath expression is <code class="inline-code">"/book/chapter[1]"</code>, while
- the FTL expression is <code class="inline-code">book.chapter[0]</code>.</p>
-
- <p>If the programmer has set up FreeMarker to use Jaxen instead
- of Xalan, then FreeMarker variables are visible with XPath variable
- references:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign <strong>currentTitle</strong> = "Ch1">
-<#list doc["book/chapter[title=<strong>$currentTitle</strong>]/para"] as p>
-<em>...</em></pre></div>
-
- <p>Note that <code class="inline-code">$currentTitle</code> is not a FreeMarker
- interpolation, as there are no <code class="inline-code">{</code> and
- <code class="inline-code">}</code> there. That's an XPath expression.</p>
-
- <p>The result of some XPath expressions is not a node-set, but a
- string, a number, or a boolean. For those XPath expressions, the
- result is an FTL string, number, or boolean variable respectively.
- For example, the following will count the total number of
- <code class="inline-code">para</code> elements in the XML document, so the result
- is a number:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${x["count(//para)"]}</pre></div>
-
- <p>The output will be:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">5</pre></div>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_149">XML namespaces</h2>
-
-
-
-
- <p>Be default, when you write something like
- <code class="inline-code">doc.book</code>, then it will select the element with
- name <code class="inline-code">book</code> that does not belongs to any XML
- namespace (similarly to XPath). If you want to select an element
- that is inside an XML namespace, you must register a prefix and use
- that. For example, if element <code class="inline-code">book</code> is in XML
- namespace <code class="inline-code">http://example.com/ebook</code>, then you have
- to associate a prefix with it at the top of the template with the
- <code class="inline-code">ns_prefixes</code> parameter of the <a href="ref_directive_ftl.html#ref.directive.ftl"><code>ftl</code>
- directive</a>:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#ftl ns_prefixes={"e":"http://example.com/ebook"}></pre></div>
-
- <p>And now you can write expressions as
- <code class="inline-code">doc["e:book"]</code>. (The usage of square bracket
- syntax was required because the colon would confuse FreeMarker
- otherwise.)</p>
-
- <p>As the value of <code class="inline-code">ns_prefixes</code> is a hash, you
- can register multiple prefixes:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#ftl ns_prefixes={
- "e":"http://example.com/ebook",
- "f":"http://example.com/form",
- "vg":"http://example.com/vectorGraphics"}
-></pre></div>
-
- <p>The <code class="inline-code">ns_prefixes</code> parameter affects the whole
- <a href="dgui_misc_namespace.html">FTL namespace</a>. This means
- in practice that the prefixes you have registered in the main page
- template will be visible in all <code class="inline-code"><#include
- ...></code>-d templates, but not in <code class="inline-code"><#imported
- ...></code>-d templates (often referred as FTL libraries). Or
- from another point of view, an FTL library can register XML
- namespace prefixes for it's own use, without interfering with the
- prefix registrations of the main template and other
- libraries.</p>
-
- <p>Note that, if an input document is dominated by a given XML
- namespace, you can set that as the default namespace for
- convenience. This means that if you don't use prefix, as in
- <code class="inline-code">doc.book</code>, then it selects element that belongs to
- the default namespace. The setting of the default namespace happens
- with reserved prefix <code class="inline-code">D</code>, for example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#ftl ns_prefixes={"D":"http://example.com/ebook"}></pre></div>
-
- <p>Now expression <code class="inline-code">doc.book</code> select the
- <code class="inline-code">book</code> element that belongs to XML namespace
- <code class="inline-code">http://example.com/ebook</code>. Unfortunately, XPath
- does not support this idea of a default namespace. Thus, in XPath
- expressions, element names without prefixes always select the
- elements that does not belong to any XML namespace. However, to
- access elements in the default namespace you can directly use prefix
- <code class="inline-code">D</code>, for example:
- <code class="inline-code">doc["D:book/D:chapter[title='Ch1']"]</code>.</p>
-
- <p>Note that when you use a default namespace, then you can
- select elements that does not belong to any node namespace with
- reserved prefix <code class="inline-code">N</code>, for example
- <code class="inline-code">doc.book["N:foo"]</code>. It doesn't go for XPath
- expressions, where the above can be witten as
- <code class="inline-code">doc["D:book/foo"]</code>.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_150">Don't forget escaping!</h2>
-
-
- <p>As we generate output of HTML format in these examples, and
- HTML format reserves characters as <code class="inline-code"><</code>,
- <code class="inline-code">&</code>, etc., we have to ensure that those will be
- escaped. For that, either FreeMarker has to be <a href="pgui_config_outputformatsautoesc.html">properly
- configured</a>, or add <code class="inline-code">output_format="HTML"</code> in
- the template to the <code class="inline-code">ftl</code> directive calls.</p>
-
- <p>So if the book title is "Romeo & Juliet", the resulting
- HTML output will be correctly:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"><em>...</em>
-<h1>Romeo &amp; Juliet</h1>
-<em>...</em></pre></div>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="xgui_imperative.html"><span>Previous</span></a><a class="paging-arrow next" href="xgui_imperative_formal.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/xgui_preface.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/xgui_preface.html b/builds/2.3.26-nightly/xgui_preface.html
deleted file mode 100644
index 8e1ad39..0000000
--- a/builds/2.3.26-nightly/xgui_preface.html
+++ /dev/null
@@ -1,74 +0,0 @@
-<!doctype html>
-<!-- Generated by FreeMarker/Docgen from DocBook -->
-<html lang="en" class="page-type-preface">
-<head prefix="og: http://ogp.me/ns#">
-<meta charset="utf-8">
-<title>Preface - 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="Preface">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/xgui_preface.html">
-<link rel="canonical" href="http://freemarker.org/docs/xgui_preface.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="xgui.html"><span itemprop="name">XML Processing Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="xgui_preface.html"><span itemprop="name">Preface</span></a></li></ul><div class="bookmarks" title="B
ookmarks"><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","XML Processing Guide","Preface"];</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="xgui.html"><span>Previous</span></a><a class="paging-arrow next" href="xgui_expose.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-chapter" id="xgui_preface" itemprop="headline">Preface</h1>
-</div></div><p>Although FreeMarker was originally designed as a web page template
- engine, as of version 2.3 it also targets another application domain:
- transforming XML into arbitrary textual output (e.g. HTML files). Thus,
- in many cases, FreeMarker is an XSLT alternative.</p><p>Technically, there is nothing special in transforming XML
- documents. It's just like when you do anything else with FreeMarker: you
- drop the XML document into the data-model (and possibly other
- variables), and then you merge the data-model with the FTL template(s)
- that generate the output text. The extra features introduced for better
- XML processing are the node FTL variable type (symbolizes a node in
- generic tree structures, usable not only for XML) and the built-ins and
- directives dealing with them, and the XML wrapper you get out-of-the-box
- that exposes XML documents as FTL variables for the templates.</p><p>What's the difference between using FreeMarker or XSLT? The FTL
- language has the usual imperative/procedural logic. On the other hand,
- XSLT is a language with declarative style, designed by "too clever"
- people, so it's not easy to adopt its logic, nor to use it in many
- cases. Also its syntax is terribly verbose. However, XSLT's
- "apply-templates" method can be very handy when you process XML
- documents, thus FreeMarker supports something similar called the
- "visitor pattern". So in many applications, it is much
- easier to write FTL stylesheets than XSLT style-sheets. Another
- fundamental difference is that FTL "transforms" the node tree to text,
- while XSLT transforms the tree to another tree. So you cannot always use
- FreeMarker where you can use XSLT.</p><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="xgui.html"><span>Previous</span></a><a class="paging-arrow next" href="xgui_expose.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>\u20132017
-<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>
[49/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/app.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/app.html b/builds/2.3.26-nightly/app.html
deleted file mode 100644
index 7529506..0000000
--- a/builds/2.3.26-nightly/app.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<!doctype html>
-<!-- Generated by FreeMarker/Docgen from DocBook -->
-<html lang="en" class="page-type-part">
-<head prefix="og: http://ogp.me/ns#">
-<meta charset="utf-8">
-<title>Appendixes - 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="Appendixes">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/app.html">
-<link rel="canonical" href="http://freemarker.org/docs/app.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></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_ch
eatsheet">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"];</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="xgui_declarative_details.html"><span>Previous</span></a><a class="paging-arrow next" href="app_faq.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-part" id="app" itemprop="headline">Appendixes</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Section Contents</div>
-<ul><li><a class="page-menu-link" href="app_faq.html" data-menu-target="app_faq">FAQ</a></li><li><a class="page-menu-link" href="app_versions.html" data-menu-target="app_versions">Version history</a><ul><li><a class="page-menu-link" href="versions_2_3_26.html" data-menu-target="versions_2_3_26">2.3.26 (incubating at Apache)</a></li><li><a class="page-menu-link" href="versions_2_3_25.html" data-menu-target="versions_2_3_25">2.3.25 (incubating at Apache)</a></li><li><a class="page-menu-link" href="versions_2_3_24.html" data-menu-target="versions_2_3_24">2.3.24 (incubating at Apache)</a></li><li><a class="page-menu-link" href="versions_2_3_23.html" data-menu-target="versions_2_3_23">2.3.23</a></li><li><a class="page-menu-link" href="versions_2_3_22.html" data-menu-target="versions_2_3_22">2.3.22</a></li><li><a class="page-menu-link" href="versions_2_3_21.html" data-menu-target="versions_2_3_21">2.3.21</a></li><li><a class="page-menu-link" href="versions_2_3_20.html" data-menu-target="v
ersions_2_3_20">2.3.20</a></li><li><a class="page-menu-link" href="versions_2_3_19.html" data-menu-target="versions_2_3_19">2.3.19</a></li><li><a class="page-menu-link" href="versions_2_3_18.html" data-menu-target="versions_2_3_18">2.3.18</a></li><li><a class="page-menu-link" href="versions_2_3_17.html" data-menu-target="versions_2_3_17">2.3.17</a></li><li><a class="page-menu-link" href="versions_2_3_16.html" data-menu-target="versions_2_3_16">2.3.16</a></li><li><a class="page-menu-link" href="versions_2_3_15.html" data-menu-target="versions_2_3_15">2.3.15</a></li><li><a class="page-menu-link" href="versions_2_3_14.html" data-menu-target="versions_2_3_14">2.3.14</a></li><li><a class="page-menu-link" href="versions_2_3_13.html" data-menu-target="versions_2_3_13">2.3.13</a></li><li><a class="page-menu-link" href="versions_2_3_12.html" data-menu-target="versions_2_3_12">2.3.12</a></li><li><a class="page-menu-link" href="versions_2_3_11.html" data-menu-target="versions_2_3_11">2.3.11</a
></li><li><a class="page-menu-link" href="versions_2_3_10.html" data-menu-target="versions_2_3_10">2.3.10</a></li><li><a class="page-menu-link" href="versions_2_3_9.html" data-menu-target="versions_2_3_9">2.3.9</a></li><li><a class="page-menu-link" href="versions_2_3_8.html" data-menu-target="versions_2_3_8">2.3.8</a></li><li><a class="page-menu-link" href="versions_2_3_7.html" data-menu-target="versions_2_3_7">2.3.7</a></li><li><a class="page-menu-link" href="versions_2_3_7rc1.html" data-menu-target="versions_2_3_7rc1">2.3.7 RC1</a></li><li><a class="page-menu-link" href="versions_2_3_6.html" data-menu-target="versions_2_3_6">2.3.6</a></li><li><a class="page-menu-link" href="versions_2_3_5.html" data-menu-target="versions_2_3_5">2.3.5</a></li><li><a class="page-menu-link" href="versions_2_3_4.html" data-menu-target="versions_2_3_4">2.3.4</a></li><li><a class="page-menu-link" href="versions_2_3_3.html" data-menu-target="versions_2_3_3">2.3.3</a></li><li><a class="page-menu-link" hre
f="versions_2_3_2.html" data-menu-target="versions_2_3_2">2.3.2</a></li><li><a class="page-menu-link" href="versions_2_3_1.html" data-menu-target="versions_2_3_1">2.3.1</a></li><li><a class="page-menu-link" href="versions_2_3.html" data-menu-target="versions_2_3">2.3</a></li><li><a class="page-menu-link" href="versions_2_2_8.html" data-menu-target="versions_2_2_8">2.2.8</a></li><li><a class="page-menu-link" href="versions_2_2_7.html" data-menu-target="versions_2_2_7">2.2.7</a></li><li><a class="page-menu-link" href="versions_2_2_6.html" data-menu-target="versions_2_2_6">2.2.6</a></li><li><a class="page-menu-link" href="versions_2_2_5.html" data-menu-target="versions_2_2_5">2.2.5</a></li><li><a class="page-menu-link" href="versions_2_2_4.html" data-menu-target="versions_2_2_4">2.2.4</a></li><li><a class="page-menu-link" href="versions_2_2_3.html" data-menu-target="versions_2_2_3">2.2.3</a></li><li><a class="page-menu-link" href="versions_2_2_2.html" data-menu-target="versions_2_2_2">
2.2.2</a></li><li><a class="page-menu-link" href="versions_2_2_1.html" data-menu-target="versions_2_2_1">2.2.1</a></li><li><a class="page-menu-link" href="versions_2_2.html" data-menu-target="versions_2_2">2.2</a></li><li><a class="page-menu-link" href="versions_2_1_5.html" data-menu-target="versions_2_1_5">2.1.5</a></li><li><a class="page-menu-link" href="versions_2_1_4.html" data-menu-target="versions_2_1_4">2.1.4</a></li><li><a class="page-menu-link" href="versions_2_1_3.html" data-menu-target="versions_2_1_3">2.1.3</a></li><li><a class="page-menu-link" href="versions_2_1_2.html" data-menu-target="versions_2_1_2">2.1.2</a></li><li><a class="page-menu-link" href="versions_2_1_1.html" data-menu-target="versions_2_1_1">2.1.1</a></li><li><a class="page-menu-link" href="versions_2_1.html" data-menu-target="versions_2_1">2.1</a></li><li><a class="page-menu-link" href="versions_2_01.html" data-menu-target="versions_2_01">2.01</a></li><li><a class="page-menu-link" href="versions_2_0.html
" data-menu-target="versions_2_0">2.0</a></li><li><a class="page-menu-link" href="versions_2_0RC3.html" data-menu-target="versions_2_0RC3">2.0 RC3</a></li><li><a class="page-menu-link" href="versions_2_0RC2.html" data-menu-target="versions_2_0RC2">2.0 RC2</a></li><li><a class="page-menu-link" href="versions_2_0RC1.html" data-menu-target="versions_2_0RC1">2.0 RC1</a></li></ul></li><li><a class="page-menu-link" href="app_install.html" data-menu-target="app_install">Installing FreeMarker</a></li><li><a class="page-menu-link" href="app_legal.html" data-menu-target="app_legal">Legal</a><ul><li><a class="page-menu-link" href="app_license.html" data-menu-target="app_license">License</a></li><li><a class="page-menu-link" href="app_eccn.html" data-menu-target="app_eccn">Export Control</a></li></ul></li></ul> </div><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="xgui_declarative_details.html"><span>Previous</span></a><a class="paging-arrow
next" href="app_faq.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/app_eccn.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/app_eccn.html b/builds/2.3.26-nightly/app_eccn.html
deleted file mode 100644
index da45673..0000000
--- a/builds/2.3.26-nightly/app_eccn.html
+++ /dev/null
@@ -1,56 +0,0 @@
-<!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>Export Control - 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="Export Control">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/app_eccn.html">
-<link rel="canonical" href="http://freemarker.org/docs/app_eccn.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_legal.html"><span itemprop="name">Legal</span></a></li><li class="step-3" itemprop="itemListElement" itemsc
ope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="app_eccn.html"><span itemprop="name">Export Control</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","Legal","Export Control"];</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_license.html"><span>Previous</span></a><a class="paging-arrow next" href="gloss.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="app_eccn" itemprop="headline">Export Control</h1>
-</div></div><p>The FreeMarker source code doesn't include cryptography.
- Furthermore its binary (downloadable) forms don't include any
- cryptography software. Hence, FreeMarker has no Export Control
- Classification Number (ECCN). Where an ECCN should be filled, the
- label "not subject to EAR" could be used.</p><p>FreeMarker itself doesn't add any exporting limitations.</p><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="app_license.html"><span>Previous</span></a><a class="paging-arrow next" href="gloss.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>\u20132017
-<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>
[29/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/ref_builtins_alphaidx.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_builtins_alphaidx.html b/builds/2.3.26-nightly/ref_builtins_alphaidx.html
deleted file mode 100644
index 08c1ad4..0000000
--- a/builds/2.3.26-nightly/ref_builtins_alphaidx.html
+++ /dev/null
@@ -1,503 +0,0 @@
-<!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>Alphabetical index - 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="Alphabetical index">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_builtins_alphaidx.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_builtins_alphaidx.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_builtins.html"><span itemprop="name">Built-in Reference</span></a></li><li class="step-3"
itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_builtins_alphaidx.html"><span itemprop="name">Alphabetical index</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>?builtins</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","Template Language Reference","Built-in Reference","Alphabetical index"];</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="ref_builtins.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_builtins_string.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="ref_builtins_alphaidx" itemprop="headline">Alphabetical index</h1>
-</div></div> <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>As of FreeMarker 2.3.23, you can use camel case instead of
- snake case for directive names, like <code class="inline-code">startsWith</code>
- instead of <code class="inline-code">starts_with</code>. But know that then within
- the same template, FreeMarker will enforce the usage of camel case
- for all identifiers that are part of the template language (user
- defined names are not affected).</p>
- </div>
-<ul>
- <li>
- <a href="ref_builtins_number.html#ref_builtin_abs">abs</a>
- </li>
-
- <li>
- <a href="ref_builtins_node.html#ref_builtin_ancestors">ancestors</a>
- </li>
-
- <li>
- <a href="ref_builtins_expert.html#ref_buitin_api_and_has_api">api</a>
- </li>
-
- <li>
- <a href="ref_builtins_string.html#ref_builtin_boolean">boolean</a>
- </li>
-
- <li>
- <a href="ref_builtins_expert.html#ref_builtin_numType">byte</a>
- </li>
-
- <li>
- c <a href="ref_builtins_number.html#ref_builtin_c">for strings</a>, <a href="ref_builtins_boolean.html#ref_builtin_c_boolean">for booleans</a>
- </li>
-
- <li>
- <a href="ref_builtins_string.html#ref_builtin_cap_first">cap_first</a>
- </li>
-
- <li>
- <a href="ref_builtins_string.html#ref_builtin_capitalize">capitalize</a>
- </li>
-
- <li>
- <a href="ref_builtins_number.html#ref_builtin_rounding">ceiling</a>
- </li>
-
- <li>
- <a href="ref_builtins_node.html#ref_builtin_children">children</a>
- </li>
-
- <li>
- <a href="ref_builtins_string.html#ref_builtin_chop_linebreak">chop_linebreak</a>
- </li>
-
- <li>
- <a href="ref_builtins_sequence.html#ref_builtin_chunk">chunk</a>
- </li>
-
- <li>
- <a href="ref_builtins_string.html#ref_builtin_contains">contains</a>
- </li>
-
- <li>
- <a href="ref_builtins_loop_var.html#ref_builtin_counter">counter</a>
- </li>
-
- <li>
- date <a href="ref_builtins_date.html#ref_builtin_date_datetype">for
- dates</a>, <a href="ref_builtins_string.html#ref_builtin_string_date">for
- strings</a>
- </li>
-
- <li>
- <a href="ref_builtins_date.html#ref_builtin_date_if_unknown">date_if_unknown</a>
- </li>
-
- <li>
- datetime <a href="ref_builtins_date.html#ref_builtin_date_datetype">for
- dates</a>, <a href="ref_builtins_string.html#ref_builtin_string_date">for
- strings</a>
- </li>
-
- <li>
- <a href="ref_builtins_date.html#ref_builtin_date_if_unknown">datetime_if_unknown</a>
- </li>
-
- <li>
- <a href="ref_builtins_expert.html#ref_builtin_numType">double</a>
- </li>
-
- <li>
- <a href="ref_builtins_string.html#ref_builtin_esc">esc</a>
- </li>
-
- <li>
- <a href="ref_builtins_string.html#ref_builtin_ends_with">ends_with</a>
- </li>
-
- <li>
- <a href="ref_builtins_string.html#ref_builtin_ensure_ends_with">ensure_ends_with</a>
- </li>
-
- <li>
- <a href="ref_builtins_string.html#ref_builtin_ensure_starts_with">ensure_starts_with</a>
- </li>
-
- <li>
- <a href="ref_builtins_expert.html#ref_builtin_eval">eval</a>
- </li>
-
- <li>
- <a href="ref_builtins_sequence.html#ref_builtin_first">first</a>
- </li>
-
- <li>
- <a href="ref_builtins_number.html#ref_builtin_rounding">floor</a>
- </li>
-
- <li>
- <a href="ref_builtins_string.html#ref_builtin_groups">groups</a>
- </li>
-
- <li>
- <a href="ref_builtins_expert.html#ref_builtin_numType">float</a>
- </li>
-
- <li>
- <a href="ref_builtins_expert.html#ref_buitin_api_and_has_api">has_api</a>
- </li>
-
- <li>
- <a href="ref_builtins_expert.html#ref_builtin_has_content">has_content</a>
- </li>
-
- <li>
- <a href="ref_builtins_loop_var.html#ref_builtin_has_next">has_next</a>
- </li>
-
- <li>
- <a href="ref_builtins_string.html#ref_builtin_html">html</a>
- </li>
-
- <li>
- <a href="ref_builtins_loop_var.html#ref_builtin_index">index</a>
- </li>
-
- <li>
- <a href="ref_builtins_string.html#ref_builtin_index_of">index_of</a>
- </li>
-
- <li>
- <a href="ref_builtins_expert.html#ref_builtin_numType">int</a>
- </li>
-
- <li>
- <a href="ref_builtins_expert.html#ref_builtin_interpret">interpret</a>
- </li>
-
- <li>
- <a href="ref_builtins_loop_var.html#ref_builtin_item_cycle">item_cycle</a>
- </li>
-
- <li>
- <a href="ref_builtins_loop_var.html#ref_builtin_item_parity">item_parity</a>
- </li>
-
- <li>
- <a href="ref_builtins_loop_var.html#ref_builtin_item_parity_cap">item_parity_cap</a>
- </li>
-
- <li>
- <a href="ref_builtins_loop_var.html#ref_builtin_is_even_item">is_even_item</a>
- </li>
-
- <li>
- <a href="ref_builtins_sequence.html#ref_builtin_first">is_first</a>
- </li>
-
- <li>
- <a href="ref_builtins_number.html#ref_builtin_is_infinite">is_infinite</a>
- </li>
-
- <li>
- <a href="ref_builtins_loop_var.html#ref_builtin_is_last">is_last</a>
- </li>
-
- <li>
- <a href="ref_builtins_number.html#ref_builtin_is_nan">is_nan</a>
- </li>
-
- <li>
- <a href="ref_builtins_loop_var.html#ref_builtin_is_odd_item">is_odd_item</a>
- </li>
-
- <li>
- <a href="ref_builtins_expert.html#ref_builtin_isType">is_<em>type</em></a>
- </li>
-
- <li>
- <a href="ref_builtins_date.html#ref_builtin_date_iso">iso,
- iso_...</a>
- </li>
-
- <li>
- <a href="ref_builtins_string.html#ref_builtin_j_string">j_string</a>
- </li>
-
- <li>
- <a href="ref_builtins_sequence.html#ref_builtin_join">join</a>
- </li>
-
- <li>
- <a href="ref_builtins_string.html#ref_builtin_js_string">js_string</a>
- </li>
-
- <li>
- <a href="ref_builtins_string.html#ref_builtin_keep_after">keep_after</a>
- </li>
-
- <li>
- <a href="ref_builtins_string.html#ref_builtin_keep_after_last">keep_after_last</a>
- </li>
-
- <li>
- <a href="ref_builtins_string.html#ref_builtin_keep_before">keep_before</a>
- </li>
-
- <li>
- <a href="ref_builtins_string.html#ref_builtin_keep_before_last">keep_before_last</a>
- </li>
-
- <li>
- <a href="ref_builtins_hash.html#ref_builtin_keys">keys</a>
- </li>
-
- <li>
- <a href="ref_builtins_sequence.html#ref_builtin_last">last</a>
- </li>
-
- <li>
- <a href="ref_builtins_string.html#ref_builtin_last_index_of">last_index_of</a>
- </li>
-
- <li>
- <a href="ref_builtins_string.html#ref_builtin_left_pad">left_pad</a>
- </li>
-
- <li>
- <a href="ref_builtins_string.html#ref_builtin_length">length</a>
- </li>
-
- <li>
- <a href="ref_builtins_expert.html#ref_builtin_numType">long</a>
- </li>
-
- <li>
- <a href="ref_builtins_number.html#ref_builtin_lower_abc">lower_abc</a>
- </li>
-
- <li>
- <a href="ref_builtins_string.html#ref_builtin_lower_case">lower_case</a>
- </li>
-
- <li>
- <a href="ref_builtins_expert.html#ref_builtin_markup_string">markup_string</a>
- </li>
-
- <li>
- <a href="ref_builtins_string.html#ref_builtin_matches">matches</a>
- </li>
-
- <li>
- <a href="ref_builtins_expert.html#ref_builtin_namespace">namespace</a>
- </li>
-
- <li>
- <a href="ref_builtins_expert.html#ref_builtin_new">new</a>
- </li>
-
- <li>
- <a href="ref_builtins_node.html#ref_builtin_next_sibling">next_sibling</a>
- </li>
-
- <li>
- <a href="ref_builtins_string.html#ref_builtin_no_esc">no_esc</a>
- </li>
-
- <li>
- <a href="ref_builtins_node.html#ref_builtin_node_namespace">node_namespace</a>
- </li>
-
- <li>
- <a href="ref_builtins_node.html#ref_builtin_node_name">node_name</a>
- </li>
-
- <li>
- <a href="ref_builtins_node.html#ref_builtin_node_type">node_type</a>
- </li>
-
- <li>
- <a href="ref_builtins_string.html#ref_builtin_number">number</a>
- </li>
-
- <li>
- <a href="ref_builtins_expert.html#ref_builtin_numToDate">number_to_date,
- number_to_datetime, number_to_time</a>
- </li>
-
- <li>
- <a href="ref_builtins_node.html#ref_builtin_parent">parent</a>
- </li>
-
- <li>
- <a href="ref_builtins_node.html#ref_builtin_previous_sibling">previous_sibling</a>
- </li>
-
- <li>
- <a href="ref_builtins_string.html#ref_builtin_replace">replace</a>
- </li>
-
- <li>
- <a href="ref_builtins_string.html#ref_builtin_remove_beginning">remove_beginning</a>
- </li>
-
- <li>
- <a href="ref_builtins_string.html#ref_builtin_remove_ending">remove_ending</a>
- </li>
-
- <li>
- <a href="ref_builtins_sequence.html#ref_builtin_reverse">reverse</a>
- </li>
-
- <li>
- <a href="ref_builtins_string.html#ref_builtin_right_pad">right_pad</a>
- </li>
-
- <li>
- <a href="ref_builtins_number.html#ref_builtin_rounding">round</a>
- </li>
-
- <li>
- <a href="ref_builtins_node.html#ref_builtin_root">root</a>
- </li>
-
- <li>
- <a href="ref_builtins_string.html#ref_builtin_rtf">rtf</a>
- </li>
-
- <li>
- <a href="ref_builtins_expert.html#ref_builtin_numType">short</a>
- </li>
-
- <li>
- <a href="ref_builtins_sequence.html#ref_builtin_size">size</a>
- </li>
-
- <li>
- <a href="ref_builtins_sequence.html#ref_builtin_sort">sort</a>
- </li>
-
- <li>
- <a href="ref_builtins_sequence.html#ref_builtin_seq_contains">seq_contains</a>
- </li>
-
- <li>
- <a href="ref_builtins_sequence.html#ref_builtin_seq_index_of">seq_index_of</a>
- </li>
-
- <li>
- <a href="ref_builtins_sequence.html#ref_builtin_seq_last_index_of">seq_last_index_of</a>
- </li>
-
- <li>
- <a href="ref_builtins_sequence.html#ref_builtin_sort_by">sort_by</a>
- </li>
-
- <li>
- <a href="ref_builtins_string.html#ref_builtin_split">split</a>
- </li>
-
- <li>
- <a href="ref_builtins_string.html#ref_builtin_starts_with">starts_with</a>
- </li>
-
- <li>
- string: <a href="ref_builtins_string.html#ref_builtin_string_for_string">for
- strings</a>, <a href="ref_builtins_number.html#ref_builtin_string_for_number">for
- numbers</a>, <a href="ref_builtins_boolean.html#ref_builtin_string_for_boolean">for
- booleans</a>, <a href="ref_builtins_date.html#ref_builtin_string_for_date">for
- date/time/date-time</a>
- </li>
-
- <li>
- <a href="ref_builtins_string.html#ref_builtin_substring">substring</a>
- (deprecated)
- </li>
-
- <li>
- <a href="ref_builtins_type_independent.html#ref_builtin_switch">switch</a>
- </li>
-
- <li>
- <a href="ref_builtins_boolean.html#ref_builtin_then">then</a>
- </li>
-
- <li>
- time <a href="ref_builtins_date.html#ref_builtin_date_datetype">for
- date/time/date-time</a>, <a href="ref_builtins_string.html#ref_builtin_string_date">for strings</a>
- </li>
-
- <li>
- <a href="ref_builtins_date.html#ref_builtin_date_if_unknown">time_if_unknown</a>
- </li>
-
- <li>
- <a href="ref_builtins_string.html#ref_builtin_trim">trim</a>
- </li>
-
- <li>
- <a href="ref_builtins_string.html#ref_builtin_uncap_first">uncap_first</a>
- </li>
-
- <li>
- <a href="ref_builtins_number.html#ref_builtin_upper_abc">upper_abc</a>
- </li>
-
- <li>
- <a href="ref_builtins_string.html#ref_builtin_upper_case">upper_case</a>
- </li>
-
- <li>
- <a href="ref_builtins_string.html#ref_builtin_url">url</a>
- </li>
-
- <li>
- <a href="ref_builtins_hash.html#ref_builtin_values">values</a>
- </li>
-
- <li>
- <a href="ref_builtins_string.html#ref_builtin_word_list">word_list</a>
- </li>
-
- <li>
- <a href="ref_builtins_string.html#ref_builtin_xhtml">xhtml</a>
- </li>
-
- <li>
- <a href="ref_builtins_string.html#ref_builtin_xml">xml</a>
- </li>
- </ul><p>See the built-ins filtered by left-hand-value type <a href="ref_builtins.html">here</a>.</p><p>If you don't find a built-in here that you have seen in a
- working template, probably you will find it here: <a href="ref_deprecated.html">Deprecated FTL constructs</a></p><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_builtins.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_builtins_string.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/ref_builtins_boolean.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_builtins_boolean.html b/builds/2.3.26-nightly/ref_builtins_boolean.html
deleted file mode 100644
index 5bdd23c..0000000
--- a/builds/2.3.26-nightly/ref_builtins_boolean.html
+++ /dev/null
@@ -1,229 +0,0 @@
-<!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>Built-ins for booleans - 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="Built-ins for booleans">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_builtins_boolean.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_builtins_boolean.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_builtins.html"><span itemprop="name">Built-in Reference</span></a></li><li class="step-3"
itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_builtins_boolean.html"><span itemprop="name">Built-ins for booleans</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","Template Language Reference","Built-in Reference","Built-ins for booleans"];</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="ref_builtins_date.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_builtins_sequence.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="ref_builtins_boolean" itemprop="headline">Built-ins for booleans</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#ref_builtin_c_boolean" data-menu-target="ref_builtin_c_boolean">c (when used with boolean)</a></li><li><a class="page-menu-link" href="#ref_builtin_string_for_boolean" data-menu-target="ref_builtin_string_for_boolean">string (when used with a boolean value)</a></li><li><a class="page-menu-link" href="#ref_builtin_then" data-menu-target="ref_builtin_then">then</a></li></ul> </div>
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_c_boolean">c (when used with boolean)</h2>
-
-
-
-
-
-
-
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in exists since FreeMarker 2.3.20.</p>
- </div>
-
-
- <p>This built-in converts a boolean to string for a
- "computer language" as opposed to for human audience.
- The result will be <code class="inline-code">"true"</code> or
- <code class="inline-code">"false"</code>, regardless of the
- <code class="inline-code">boolean_format</code> setting. When generating
- JavaScript and such, this should be used, as otherwise changing the
- <code class="inline-code">boolean_format</code> can break the generated
- computer-language output.</p>
-
- <p>Note that this built-in <a href="ref_builtins_number.html#ref_builtin_c">also
- works on strings</a>.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_string_for_boolean">string (when used with a boolean value)</h2>
-
-
-
-
-
-
-
-
-
-
-
-
- <p><em>All usages of this built-in has been deprecated; see
- below.</em></p>
-
- <p>Converts a boolean to a string. You can use it in two
- ways:</p>
-
- <ul>
- <li>
- <p>As <code class="inline-code">foo?string("yes", "no")</code>:
- <em>Deprecated starting from FreeMarker 2.3.23: use <a href="#ref_builtin_then"><code>?then("yes",
- "no")</code></a> instead. </em>This will return the
- first parameter (here: <code class="inline-code">"yes"</code>) if the boolean
- is true, otherwise the second parameter (here:
- <code class="inline-code">"no"</code>). Note that the return value is always a
- string; if the parameters were numbers, they would be converted
- to strings first. Also note that both parameters are evaluated,
- despite that only one of them will be used; this might have
- negative impact if the parameters aren't just literals.</p>
- </li>
-
- <li>
- <p><code class="inline-code">foo?string</code>: <em>Deprecated
- starting from FreeMarker 2.3.20: use <a href="#ref_builtin_c_boolean"><code>?c</code></a>
- instead, or set the <code class="inline-code">boolean_format</code> <a href="ref_directive_setting.html">setting</a> to something like
- <code class="inline-code">"yes,no"</code> and then the conversion can happen
- automatically</em>. If you still need to know about this,
- this will convert the boolean to string using the default
- strings for representing true and false values. By default, true
- is rendered as <code class="inline-code">"true"</code> and false is rendered
- as <code class="inline-code">"false"</code>. This is mostly useful if you
- generate source code with FreeMarker <em>(but use
- <code class="inline-code">?c</code> for that starting from 2.3.20)</em>,
- since the values are not locale (language, country) sensitive.
- To change these default strings, you can use the
- <code class="inline-code">boolean_format</code> <a href="ref_directive_setting.html">setting</a>.</p>
-
- <p class="programmers-note">Note, that in the very rare case
- when a value is multi-typed and is both a boolean and a string,
- then the string value of the variable will be returned, and so
- the <code class="inline-code">boolean_format</code> setting will have no
- effect.</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_then">then</h2>
-
-
-
-
-
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in exists since FreeMarker 2.3.23.</p>
- </div>
-
-
- <p>Used like
- <code class="inline-code"><em class="code-color">booleanExp</em>?then(<em class="code-color">whenTrue</em>,
- <em class="code-color">whenFalse</em>)</code>, fills the same role
- as the ternary operator in C-like languages (i.e.,
- <code class="inline-code"><em class="code-color">booleanExp</em> ?
- <em class="code-color">whenTrue</em> :
- <em class="code-color">whenFalse</em></code>). If
- <code class="inline-code"><em class="code-color">booleanExp</em></code> evaluates
- to boolean true then it evaluates and returns its first argument, or
- else if <code class="inline-code"><em class="code-color">booleanExp</em></code>
- evaluates to boolean false then it evaluates and return its second
- argument. Off course, all three expression can be arbitrary complex.
- The argument expressions can have any type, even different
- types.</p>
-
- <p>An important special property of this built-in is that only
- one of the argument expressions will be evaluated. This is unlike
- with normal method calls, where all argument expressions are
- evaluated, regardless if the method will need them. This also means
- that the argument that's not needed can even refer to missing
- variables without causing error. (It still can't be syntactically
- invalid of course.)</p>
-
- <p>Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign foo = true>
-${foo?then('Y', 'N')}
-
-<#assign foo = false>
-${foo?then('Y', 'N')}
-
-<#assign x = 10>
-<#assign y = 20>
-<#-- Prints 100 plus the maximum of x and y: -->
-${100 + (x > y)?then(x, y)}</pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">Y
-
-N
-
-120</pre></div>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>If you need to choose based on a non-boolean value, you
- should use the <a href="ref_builtins_type_independent.html#ref_builtin_switch"><code>switch</code>
- built-in</a> instead of nesting multiple
- <code class="inline-code">then</code>-s into each other, like
- <code class="inline-code">priority?switch(1, "low", 2, "medium", 3,
- "high")</code>, or even <code class="inline-code">true?switch(priority <= 1,
- "low", priority == 2, "medium", priority >= 3,
- "high")</code>.</p>
- </div>
-
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_builtins_date.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_builtins_sequence.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/ref_builtins_date.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_builtins_date.html b/builds/2.3.26-nightly/ref_builtins_date.html
deleted file mode 100644
index 1548cdd..0000000
--- a/builds/2.3.26-nightly/ref_builtins_date.html
+++ /dev/null
@@ -1,545 +0,0 @@
-<!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>Built-ins for date/time/date-time values - 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="Built-ins for date/time/date-time values">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_builtins_date.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_builtins_date.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_builtins.html"><span itemprop="name">Built-in Reference</span></a></li><li class="step-3"
itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_builtins_date.html"><span itemprop="name">Built-ins for date/time/date-time values</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","Template Language Reference","Built-in Reference","Built-ins for date/time/date-time values"];</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="ref_builtins_number.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_builtins_boolean.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="ref_builtins_date" itemprop="headline">Built-ins for date/time/date-time values</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#ref_builtin_date_datetype" data-menu-target="ref_builtin_date_datetype">date, time, datetime (when used with a date/time/date-time
-value)</a></li><li><a class="page-menu-link" href="#ref_builtin_date_if_unknown" data-menu-target="ref_builtin_date_if_unknown">date_if_unknown, time_if_unknown, datetime_if_unknown</a></li><li><a class="page-menu-link" href="#ref_builtin_date_iso" data-menu-target="ref_builtin_date_iso">iso_...</a></li><li><a class="page-menu-link" href="#ref_builtin_string_for_date" data-menu-target="ref_builtin_string_for_date">string (when used with a date/time/date-time value)</a></li></ul> </div>
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_date_datetype">date, time, datetime (when used with a date/time/date-time
- value)</h2>
-
-
-
-
-
-
-
-
-
-
-
-
- <p>These built-ins can be used to specify which parts of the
- date-like variable are in use:</p>
-
- <ul>
- <li>
- <p><code class="inline-code">date</code>: Date only, no time of the
- day.</p>
- </li>
-
- <li>
- <p><code class="inline-code">time</code>: Only the time of the day, no date
- part</p>
- </li>
-
- <li>
- <p><code class="inline-code">datetime</code>: Both date and time</p>
- </li>
- </ul>
-
- <p>Ideally, you do not need to use these built-ins.
- Unfortunately, because of the technical limitations of the Java
- platform, FreeMarker sometimes can't find out which parts of a
- date-like value is a date, a time or a date-time; ask the
- programmers which variables has this problem. If FreeMarker has to
- execute an operation where this information is needed -- such as
- displaying the value as text -- but it does not know which parts are
- in use, it will stop with error. This is when you have to use these
- built-ins. For example, assume <code class="inline-code">openingTime</code> is a
- such problematic variable:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign x = openingTime> <#-- no problem can occur here -->
-${openingTime?time} <#-- without ?time it would fail -->
-<#-- For the sake of better understanding, consider this: -->
-<#assign openingTime = openingTime?time>
-${openingTime} <#-- this will work now --></pre></div>
-
- <p>These built-ins can also be used to convert date-time values
- to date or time. For example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">Last updated: ${lastUpdated} <#-- assume that lastUpdated is a date-time value -->
-Last updated date: ${lastUpdated?date}
-Last updated time: ${lastUpdated?time}</pre></div>
-
- <p>will output something like:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">Last updated: 04/25/2003 08:00:54 PM
-Last updated date: 04/25/2003
-Last updated time: 08:00:54 PM</pre></div>
-
- <p>If the left side of the <code class="inline-code">?</code> is string, then
- these built-ins <a href="ref_builtins_string.html#ref_builtin_string_date">convert
- strings to date/time/date-time</a>.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_date_if_unknown">date_if_unknown, time_if_unknown, datetime_if_unknown</h2>
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in exists since FreeMarker 2.3.21.</p>
- </div>
-
-
- <p>The <code class="inline-code">date_if_unknown</code>,
- <code class="inline-code">time_if_unknown</code>,
- <code class="inline-code">datetime_if_unknown</code> built-ins mark a date-like
- value with some of the sub-types: date without time, time, or
- date-time, respectively. However, if the value already holds this
- information, the built-in has no effect. That is, it will never
- convert the sub-type of a value, it only adds the sub-type if it was
- unknown.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_date_iso">iso_...</h2>
-
-
-
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p><em>These built-ins are deprecated</em> since
- FreeMarker 2.3.21, where the <code class="inline-code">date_format</code>,
- <code class="inline-code">time_format</code> and
- <code class="inline-code">datetime_format</code> settings understand
- <code class="inline-code">"iso"</code> (for ISO 8601:2004 format) and
- <code class="inline-code">"xs"</code> (for XML Schema format) in additionally to
- the Java <code class="inline-code">SimpleDateFormat</code> patterns. Thus the
- default format can be set to ISO 8601, or for one time ISO
- formatting you can use <code class="inline-code">myDate?string.iso</code>. <a href="ref_directive_setting.html#topic.dateTimeFormatSettings">See more
- here...</a></p>
- </div>
-
-
- <p>These built-ins convert a date, time or date-time value to
- string that follows ISO 8601:2004 "extended" format.</p>
-
- <p>This built-in has several variations:
- <code class="inline-code">iso_utc</code>, <code class="inline-code">iso_local</code>,
- <code class="inline-code">iso_utc_nz</code>, <code class="inline-code">iso_local_nz</code>,
- <code class="inline-code">iso_utc_m</code>, <code class="inline-code">iso_utc_m_nz</code>, etc.
- The name is constructed from the following words in this order, each
- separated with a <code class="inline-code">_</code> from the next:</p>
-
- <div class="orderedlist"><ol type="1">
- <li>
- <p><code class="inline-code">iso</code> (required)</p>
- </li>
-
- <li>
- <p>Either <code class="inline-code">utc</code> or <code class="inline-code">local</code>
- (required (except when it's given with a parameter, but see that
- later)): Specifies whether you want to print the
- date/time/date-time according to UTC or according the current
- time zone. The current time zone is decided by the
- <code class="inline-code">time_zone</code> FreeMarker setting and is normally
- configured by the programmers outside the templates (but it can
- also be set in a template, like <code class="inline-code"><#setting
- time_zone="America/New_York"></code> for example). Note
- that if the <code class="inline-code">sql_date_and_time_time_zone</code>
- FreeMarker setting is set and non-<code class="inline-code">null</code>, then
- for <code class="inline-code">java.sql.Date</code> and
- <code class="inline-code">java.sql.Time</code> values (i.e., for date-only and
- time-only values that are coming from database via SQL)
- <code class="inline-code">local</code> will mean that time zone instead of the
- value of the <code class="inline-code">time_zone</code> setting.</p>
- </li>
-
- <li>
- <p>Either <code class="inline-code">h</code> or <code class="inline-code">m</code> or
- <code class="inline-code">ms</code> (optional): The accuracy of the time part.
- When omitted, it defaults to seconds accuracy (like
- <code class="inline-code">12:30:18</code>). <code class="inline-code">h</code> means hours
- accuracy (like <code class="inline-code">12</code>), <code class="inline-code">m</code>
- means minutes accuracy (<code class="inline-code">12:30</code>), and
- <code class="inline-code">ms</code> means milliseconds accuracy
- (<code class="inline-code">12:30:18.25</code>, where we have 250 ms). Note
- that when using <code class="inline-code">ms</code>, the milliseconds are
- displayed as fraction seconds (following the standard) and will
- not have trailing <code class="inline-code">0</code>-s. Thus, if the the
- millisecond part happens to be <code class="inline-code">0</code>, the whole
- fraction second part will be omitted. Also note that the
- fraction seconds are always separated with a dot , not with
- comma (to follow the Web conventions and XML Schema
- time/dateTime canonical format).</p>
- </li>
-
- <li>
- <p><code class="inline-code">nz</code> (optional): <code class="inline-code">nz</code>
- (like in <code class="inline-code">${foo?utc_local_nz}</code>) stands for
- "no zone", which means that the time zone offset
- (like <code class="inline-code">+02:00</code> or or <code class="inline-code">-04:30</code>
- or <code class="inline-code">Z</code>) will not be displayed. If this part is
- omitted (like in <code class="inline-code">${foo?utc_local}</code>) the zone
- will be displayed, except in two cases:</p>
-
- <ul>
- <li>
- <p>If the value is a date (no time part) value (again,
- ISO 8901 doesn't allow it then)</p>
- </li>
-
- <li>
- <p>If the value is a <code class="inline-code">java.sql.Time</code> and
- the <code class="inline-code">incompatible_improvements</code> (often set
- via the Java <code class="inline-code">Configuration</code> constructor
- parameter) FreeMarker configuration setting is at least
- 2.3.21 (or 2.3.24 when you are inside a string literal).
- This is because most databases store time values that aren't
- in any time zone, but just store hour, minute, second, and
- decimal second field values, so showing the time zone
- doesn't make sense.</p>
- </li>
- </ul>
-
- <p>Note that since FreeMarker 2.3.19, the offset always
- contains the minutes for XML Schema date/time/dateTime format
- compliance. (However, if you primarily generate for the XML
- Schema format, use the xs format.)</p>
- </li>
- </ol></div>
-
- <p>Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign aDateTime = .now>
-<#assign aDate = aDateTime?date>
-<#assign aTime = aDateTime?time>
-
-Basic formats:
-${aDate?iso_utc}
-${aTime?iso_utc}
-${aDateTime?iso_utc}
-
-Different accuracies:
-${aTime?iso_utc_ms}
-${aDateTime?iso_utc_m}
-
-Local time zone:
-${aDateTime?iso_local}</pre></div>
-
- <p>A possible output (depends on current time and time
- zone):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">Basic formats:
-2011-05-16
-21:32:13Z
-2011-05-16T21:32:13Z
-
-Different accuracies:
-21:32:13.868Z
-2011-05-16T21:32Z
-
-Local time zone:
-2011-05-16T23:32:13+02:00</pre></div>
-
- <p>There is yet another group of <code class="inline-code">iso_...</code>
- built-in variants, where you omit the <code class="inline-code">local</code> or
- <code class="inline-code">utc</code> word from the name and instead specify the
- time zone as a parameter to the built-in. Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign aDateTime = .now>
-${aDateTime?iso("UTC")}
-${aDateTime?iso("GMT-02:30")}
-${aDateTime?iso("Europe/Rome")}
-
-The usual variations are supported:
-${aDateTime?iso_m("GMT+02")}
-${aDateTime?iso_m_nz("GMT+02")}
-${aDateTime?iso_nz("GMT+02")}</pre></div>
-
- <p>A possible output (depends on current time and time
- zone):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">2011-05-16T21:43:58Z
-2011-05-16T19:13:58-02:30
-2011-05-16T23:43:58+02:00
-
-The usual variations are supported:
-2011-05-16T23:43+02:00
-2011-05-16T23:43
-2011-05-16T23:43:58</pre></div>
-
- <p>If the time zone parameter can't be interpreted, the template
- processing will be terminated with error.</p>
-
- <p class="programmers-note">The parameter can be a
- <code class="inline-code">java.util.TimeZone</code> object too (which is possibly
- the return value of a Java method, or it's in the data-model), not
- just a string.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_string_for_date">string (when used with a date/time/date-time value)</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <p>This built-in converts a date to a string, with the specified
- formatting.</p>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>You should need this built-in rarely, as the default format
- of date/time/date-time values can be specified globally <a href="ref_directive_setting.html#topic.dateTimeFormatSettings">with the
- <code>date_format</code>, <code>time_format</code> and
- <code>datetime_format</code> settings</a> of FreeMarker.
- Use this built-in only at the places where the desired format
- differs from the one normally used. For the other places the
- default format should be set properly by the programmers, outside
- the templates.</p>
- </div>
-
-
- <p>The desired format can be specified like
- <code class="inline-code">?string.<em class="code-color">format</em></code> or
- <code class="inline-code">?string["<em class="code-color">format</em>"]</code>(or
- the historical equivalent,
- <code class="inline-code">?string("<em class="code-color">format</em>")</code>).
- These are equivalent, except that with the quoted formats you can
- include any characters in the
- <code class="inline-code"><em class="code-color">format</em></code>, like spaces.
- The syntax of <code class="inline-code"><em class="code-color">format</em></code>
- is exactly the same as of the <code class="inline-code">date_format</code>,
- <code class="inline-code">time_format</code> and
- <code class="inline-code">datetime_format</code> configuration settings; <a href="ref_directive_setting.html#topic.dateTimeFormatSettings">see the documentation of the
- possible values there</a>.</p>
-
- <p>Example: If the locale of the output is U.S. English, and the
- time zone is the U.S. Pacific Time zone, and
- <code class="inline-code">openingTime</code> is a
- <code class="inline-code">java.sql.Time</code>, <code class="inline-code">nextDiscountDay</code>
- is <code class="inline-code">java.sql.Date</code> and
- <code class="inline-code">lastUpdated</code> is
- <code class="inline-code">java.sql.Timestamp</code> or
- <code class="inline-code">java.util.Date</code> then this:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#-- Predefined format names: -->
-
-${openingTime?string.short}
-${openingTime?string.medium}
-${openingTime?string.long}
-${openingTime?string.full}
-${openingTime?string.xs} <#-- XSD xs:time -->
-${openingTime?string.iso} <#-- ISO 8601 time -->
-
-${nextDiscountDay?string.short}
-${nextDiscountDay?string.medium}
-${nextDiscountDay?string.long}
-${nextDiscountDay?string.full}
-${nextDiscountDay?string.xs} <#-- XSD xs:date -->
-${nextDiscountDay?string.iso} <#-- ISO 8601 date -->
-
-${lastUpdated?string.short}
-${lastUpdated?string.medium}
-${lastUpdated?string.long}
-${lastUpdated?string.full}
-${lastUpdated?string.medium_short} <#-- medium date, short time -->
-${lastUpdated?string.xs} <#-- XSD xs:dateTime -->
-${lastUpdated?string.iso} <#-- ISO 8601 combined date and time -->
-
-<#-- <a href="pgui_config_custom_formats.html">Programmer-defined named format</a> (@ + name): -->
-${lastUpdated?string.@fileDate}
-
-<#-- Advanced ISO 8601 and XSD formatting: -->
-${lastUpdated?string.iso_m_u}
-${lastUpdated?string.xs_ms_nz}
-
-<#-- SimpleDateFormat patterns: -->
-${lastUpdated?string["dd.MM.yyyy, HH:mm"]}
-${lastUpdated?string["EEEE, MMMM dd, yyyy, hh:mm a '('zzz')'"]}
-${lastUpdated?string["EEE, MMM d, ''yy"]}
-${lastUpdated?string.yyyy} <#-- Same as ${lastUpdated?string["yyyy"]} --></pre></div>
-
- <p>will print something like this:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">01:45 PM
-01:45:09 PM
-01:45:09 PM PST
-01:45:09 PM PST
-13:45:09-08:00
-13:45:09-08:00
-
-2/20/07
-Apr 20, 2007
-April 20, 2007
-Friday, April 20, 2007
-2007-02-20-08:00
-2007-02-20
-
-2/20/07 01:45 PM
-Feb 20, 2007 01:45:09 PM
-February 20, 2007 01:45:09 PM PST
-Friday, February 20, 2007 01:45:09 PM PST
-Feb 8, 2003 9:24 PM
-2007-02-20T13:45:09-08:00
-2007-02-20T13:45:09-08:00
-
-Apr/20/2007 13:45
-
-2007-02-20T21:45Z
-2007-02-20T13:45:09.000
-
-08.04.2003 21:24
-Tuesday, April 08, 2003, 09:24 PM (PDT)
-Tue, Apr 8, '03
-2003</pre></div>
-
- <p>Note that with custom formats like in
- <code class="inline-code">lastUpdated?string.@fileDate</code> above, templates can
- just refer to the application-domain meaning, and the exact format
- can be specified outside the templates, on a central place.
- (Programmers can read about <a href="pgui_config_custom_formats.html">defining such named formats
- here...</a>)</p>
-
- <div class="callout warning">
- <strong class="callout-label">Warning!</strong>
-
- <p>Unfortunately, because of the limitations of the Java
- platform, it can happen that you have date-like variables in the
- data-model, where FreeMarker can't decide if the variable is a
- date (year, month, day), or a time (hour, minute, second,
- millisecond) or a date-time. In this case, FreeMarker doesn't know
- how to display the value when you write something like
- <code class="inline-code">${lastUpdated?string.short}</code> or
- <code class="inline-code">${lastUpdated?string.xs}</code>, i.e., a format that
- doesn't specify the exact fields to display, or if you simply use
- <code class="inline-code">${lastUpdated}</code>. Then it will have to stop with
- error. To prevent this, you can help FreeMarker with the <a href="#ref_builtin_date_datetype"><code>?date</code>,
- <code>?time</code> and <code>?datetime</code>
- built-ins</a>. For example:
- <code class="inline-code">${lastUpdated?datetime?string.short}</code>. Ask the
- programmers if certain variables of the data-model have this
- problem, or always use <code class="inline-code">?date</code>,
- <code class="inline-code">?time</code> and <code class="inline-code">?datetime</code>
- built-ins to be on the safe side.</p>
- </div>
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>You never need to use <code class="inline-code">?date</code>,
- <code class="inline-code">?time</code> or <code class="inline-code">?datetime</code> with
- format patterns like <code class="inline-code">"yyyy.MM.dd HH:mm"</code>, since
- with the pattern you tell FreeMarker what parts of the date to
- show. However, FreeMarker will trust you blindly, so you can show
- "noise" if you display parts that are actually not stored in the
- variable. For example, <code class="inline-code">${openingTime?string["yyyy-MM-dd
- hh:mm:ss a"]}</code>, where <code class="inline-code">openingTime</code>
- stores only time, will display <code class="inline-code">1970-01-01 09:24:44
- PM</code>.</p>
- </div>
-
-
- <p>To prevent misunderstandings, the format need not be a string
- literal, it can be a variable or any other expression as far as it
- evaluates to a string. For example, it can be like
- <code class="inline-code">"<em class="code-color">...</em>"?string[myFormat]</code>.</p>
-
- <p>See also: <a href="dgui_template_valueinsertion.html#dgui_template_valueinserion_universal_date">the
- interpolation of dates</a></p>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_builtins_number.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_builtins_boolean.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>\u20132017
-<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>
[47/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/app_install.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/app_install.html b/builds/2.3.26-nightly/app_install.html
deleted file mode 100644
index fba475f..0000000
--- a/builds/2.3.26-nightly/app_install.html
+++ /dev/null
@@ -1,97 +0,0 @@
-<!doctype html>
-<!-- Generated by FreeMarker/Docgen from DocBook -->
-<html lang="en" class="page-type-appendix">
-<head prefix="og: http://ogp.me/ns#">
-<meta charset="utf-8">
-<title>Installing FreeMarker - 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="Installing FreeMarker">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/app_install.html">
-<link rel="canonical" href="http://freemarker.org/docs/app_install.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_install.html"><span itemprop="name">Installing FreeMarker</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","Installing FreeMarker"];</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_0RC1.html"><span>Previous</span></a><a class="paging-arrow next" href="app_legal.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-chapter" id="app_install" itemprop="headline">Installing FreeMarker</h1>
-</div></div><p>No real installation is needed. Simply ensure that
- <code class="inline-code">freemarker.jar</code> is somewhere where your Java
- application's class-loader will find it. In web application this usually
- means putting <code class="inline-code">freemarker.jar</code> into the
- <code class="inline-code">WEB-INF/lib</code> directory of your web application. (If
- you want to use FreeMarker with JSP Model-2 style (which also means that
- you can use custom JSP taglibs in the templates), some extra steps
- needed. For more information please see <a href="pgui_misc_servlet.html">the chapter about servlets</a>.)</p><p>FreeMarker has no required dependencies. But to use certain
- <em>optional</em> FreeMarker features, the related party
- libraries have to be available for the class-loader:</p><ul>
- <li>
- <p>Jaxen (recommended, <a href="http://jaxen.org/">download here</a>) or Apache Xalan
- is needed for XML XPath support. Please use at least Jaxen
- 1.1-beta-8, not older versions! Apache Xalan classes are included in
- a package-relocated form in Sun/Oracle J2SE 1.4-1.8 (maybe later
- too), and FreeMarker will use those if it doesn't find Jaxen or
- Xalan elsewhere. But as Oracle can change these internal packages
- anytime, it's still recommended to use an external Jaxen or
- Xalan.</p>
- </li>
-
- <li>
- <p>Obviously, <code class="inline-code">javax.servlet</code> classes are needed
- for <code class="inline-code">FreemarkerServlet</code>. Servlet version 2.2 or
- later is needed.</p>
- </li>
-
- <li>
- <p>For the custom JSP taglib support, you will need JSP 2.0 API
- or later avilable. No JSP implementation is needed, just the API.
- This is already present in pretty much every servlet container. For
- more information please see <a href="pgui_misc_servlet.html">the
- chapter about servlets</a>.</p>
- </li>
-
- <li>
- <p>Jython 2.0 or later classes are needed for the Jython
- wrapper.</p>
- </li>
-
- <li>
- <p>Pre-1.0 JDOM is needed for the long deprecated
- <code class="inline-code">freemarker.ext.jdom</code> package. (When it was
- created, there was no JDOM 1.0 yet.)</p>
- </li>
- </ul><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_0RC1.html"><span>Previous</span></a><a class="paging-arrow next" href="app_legal.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/app_legal.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/app_legal.html b/builds/2.3.26-nightly/app_legal.html
deleted file mode 100644
index 575d8ed..0000000
--- a/builds/2.3.26-nightly/app_legal.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<!doctype html>
-<!-- Generated by FreeMarker/Docgen from DocBook -->
-<html lang="en" class="page-type-appendix">
-<head prefix="og: http://ogp.me/ns#">
-<meta charset="utf-8">
-<title>Legal - 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="Legal">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/app_legal.html">
-<link rel="canonical" href="http://freemarker.org/docs/app_legal.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_legal.html"><span itemprop="name">Legal</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","Legal"];</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_install.html"><span>Previous</span></a><a class="paging-arrow next" href="app_license.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-chapter" id="app_legal" itemprop="headline">Legal</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Section Contents</div>
-<ul><li><a class="page-menu-link" href="app_license.html" data-menu-target="app_license">License</a></li><li><a class="page-menu-link" href="app_eccn.html" data-menu-target="app_eccn">Export Control</a></li></ul> </div><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="app_install.html"><span>Previous</span></a><a class="paging-arrow next" href="app_license.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/app_license.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/app_license.html b/builds/2.3.26-nightly/app_license.html
deleted file mode 100644
index 9c16de6..0000000
--- a/builds/2.3.26-nightly/app_license.html
+++ /dev/null
@@ -1,275 +0,0 @@
-<!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>License - 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="License">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/app_license.html">
-<link rel="canonical" href="http://freemarker.org/docs/app_license.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_legal.html"><span itemprop="name">Legal</span></a></li><li class="step-3" itemprop="itemListElement" itemsc
ope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="app_license.html"><span itemprop="name">License</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","Legal","License"];</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_legal.html"><span>Previous</span></a><a class="paging-arrow next" href="app_eccn.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="app_license" itemprop="headline">License</h1>
-</div></div>
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-==============================================================================
-END LICENSE
-
-
-Historical notes
-----------------
-
-FreeMarker 1.x was released under the LGPL license. Later, by
-community consensus, we have switched over to a BSD-style license. As
-of FreeMarker 2.2pre1, the original author, Benjamin Geer, has
-relinquished the copyright in behalf of Visigoth Software Society.
-
-With FreeMarker 2.3.21 the license has changed to Apache License,
-Version 2.0, and the owner has changed from Visigoth Software Society
-to three of the FreeMarker 2.x developers, Attila Szegedi, Daniel
-Dekany, and Jonathan Revusky.
-
-After FreeMarker 2.3.24-pre01 (2015-09-02), the owner changes to the
-Apache Software Foundation.</pre></div><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="app_legal.html"><span>Previous</span></a><a class="paging-arrow next" href="app_eccn.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/app_versions.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/app_versions.html b/builds/2.3.26-nightly/app_versions.html
deleted file mode 100644
index 68af610..0000000
--- a/builds/2.3.26-nightly/app_versions.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<!doctype html>
-<!-- Generated by FreeMarker/Docgen from DocBook -->
-<html lang="en" class="page-type-appendix">
-<head prefix="og: http://ogp.me/ns#">
-<meta charset="utf-8">
-<title>Version history - 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="Version history">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/app_versions.html">
-<link rel="canonical" href="http://freemarker.org/docs/app_versions.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></ul><div class="bookmarks" title="Book
marks"><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"];</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_faq.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_26.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-chapter" id="app_versions" itemprop="headline">Version history</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Section Contents</div>
-<ul><li><a class="page-menu-link" href="versions_2_3_26.html" data-menu-target="versions_2_3_26">2.3.26 (incubating at Apache)</a></li><li><a class="page-menu-link" href="versions_2_3_25.html" data-menu-target="versions_2_3_25">2.3.25 (incubating at Apache)</a></li><li><a class="page-menu-link" href="versions_2_3_24.html" data-menu-target="versions_2_3_24">2.3.24 (incubating at Apache)</a></li><li><a class="page-menu-link" href="versions_2_3_23.html" data-menu-target="versions_2_3_23">2.3.23</a></li><li><a class="page-menu-link" href="versions_2_3_22.html" data-menu-target="versions_2_3_22">2.3.22</a></li><li><a class="page-menu-link" href="versions_2_3_21.html" data-menu-target="versions_2_3_21">2.3.21</a></li><li><a class="page-menu-link" href="versions_2_3_20.html" data-menu-target="versions_2_3_20">2.3.20</a></li><li><a class="page-menu-link" href="versions_2_3_19.html" data-menu-target="versions_2_3_19">2.3.19</a></li><li><a class="page-menu-link" href="versions_2_3_18.html" da
ta-menu-target="versions_2_3_18">2.3.18</a></li><li><a class="page-menu-link" href="versions_2_3_17.html" data-menu-target="versions_2_3_17">2.3.17</a></li><li><a class="page-menu-link" href="versions_2_3_16.html" data-menu-target="versions_2_3_16">2.3.16</a></li><li><a class="page-menu-link" href="versions_2_3_15.html" data-menu-target="versions_2_3_15">2.3.15</a></li><li><a class="page-menu-link" href="versions_2_3_14.html" data-menu-target="versions_2_3_14">2.3.14</a></li><li><a class="page-menu-link" href="versions_2_3_13.html" data-menu-target="versions_2_3_13">2.3.13</a></li><li><a class="page-menu-link" href="versions_2_3_12.html" data-menu-target="versions_2_3_12">2.3.12</a></li><li><a class="page-menu-link" href="versions_2_3_11.html" data-menu-target="versions_2_3_11">2.3.11</a></li><li><a class="page-menu-link" href="versions_2_3_10.html" data-menu-target="versions_2_3_10">2.3.10</a></li><li><a class="page-menu-link" href="versions_2_3_9.html" data-menu-target="versions_2
_3_9">2.3.9</a></li><li><a class="page-menu-link" href="versions_2_3_8.html" data-menu-target="versions_2_3_8">2.3.8</a></li><li><a class="page-menu-link" href="versions_2_3_7.html" data-menu-target="versions_2_3_7">2.3.7</a></li><li><a class="page-menu-link" href="versions_2_3_7rc1.html" data-menu-target="versions_2_3_7rc1">2.3.7 RC1</a></li><li><a class="page-menu-link" href="versions_2_3_6.html" data-menu-target="versions_2_3_6">2.3.6</a></li><li><a class="page-menu-link" href="versions_2_3_5.html" data-menu-target="versions_2_3_5">2.3.5</a></li><li><a class="page-menu-link" href="versions_2_3_4.html" data-menu-target="versions_2_3_4">2.3.4</a></li><li><a class="page-menu-link" href="versions_2_3_3.html" data-menu-target="versions_2_3_3">2.3.3</a></li><li><a class="page-menu-link" href="versions_2_3_2.html" data-menu-target="versions_2_3_2">2.3.2</a></li><li><a class="page-menu-link" href="versions_2_3_1.html" data-menu-target="versions_2_3_1">2.3.1</a></li><li><a class="page-men
u-link" href="versions_2_3.html" data-menu-target="versions_2_3">2.3</a></li><li><a class="page-menu-link" href="versions_2_2_8.html" data-menu-target="versions_2_2_8">2.2.8</a></li><li><a class="page-menu-link" href="versions_2_2_7.html" data-menu-target="versions_2_2_7">2.2.7</a></li><li><a class="page-menu-link" href="versions_2_2_6.html" data-menu-target="versions_2_2_6">2.2.6</a></li><li><a class="page-menu-link" href="versions_2_2_5.html" data-menu-target="versions_2_2_5">2.2.5</a></li><li><a class="page-menu-link" href="versions_2_2_4.html" data-menu-target="versions_2_2_4">2.2.4</a></li><li><a class="page-menu-link" href="versions_2_2_3.html" data-menu-target="versions_2_2_3">2.2.3</a></li><li><a class="page-menu-link" href="versions_2_2_2.html" data-menu-target="versions_2_2_2">2.2.2</a></li><li><a class="page-menu-link" href="versions_2_2_1.html" data-menu-target="versions_2_2_1">2.2.1</a></li><li><a class="page-menu-link" href="versions_2_2.html" data-menu-target="version
s_2_2">2.2</a></li><li><a class="page-menu-link" href="versions_2_1_5.html" data-menu-target="versions_2_1_5">2.1.5</a></li><li><a class="page-menu-link" href="versions_2_1_4.html" data-menu-target="versions_2_1_4">2.1.4</a></li><li><a class="page-menu-link" href="versions_2_1_3.html" data-menu-target="versions_2_1_3">2.1.3</a></li><li><a class="page-menu-link" href="versions_2_1_2.html" data-menu-target="versions_2_1_2">2.1.2</a></li><li><a class="page-menu-link" href="versions_2_1_1.html" data-menu-target="versions_2_1_1">2.1.1</a></li><li><a class="page-menu-link" href="versions_2_1.html" data-menu-target="versions_2_1">2.1</a></li><li><a class="page-menu-link" href="versions_2_01.html" data-menu-target="versions_2_01">2.01</a></li><li><a class="page-menu-link" href="versions_2_0.html" data-menu-target="versions_2_0">2.0</a></li><li><a class="page-menu-link" href="versions_2_0RC3.html" data-menu-target="versions_2_0RC3">2.0 RC3</a></li><li><a class="page-menu-link" href="versions
_2_0RC2.html" data-menu-target="versions_2_0RC2">2.0 RC2</a></li><li><a class="page-menu-link" href="versions_2_0RC1.html" data-menu-target="versions_2_0RC1">2.0 RC1</a></li></ul> </div><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="app_faq.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_26.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>\u20132017
-<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>
[17/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/toc.js
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/toc.js b/builds/2.3.26-nightly/toc.js
deleted file mode 100644
index 505fb87..0000000
--- a/builds/2.3.26-nightly/toc.js
+++ /dev/null
@@ -1,4945 +0,0 @@
-
-var toc = {
-"title": "Apache FreeMarker Manual",
-"url": "index.html",
-"isFile": true,
-"children": [
-{
-"title": "Template Author's Guide",
-"url": "dgui.html",
-"isFile": true,
-"children": [
-{
-"title": "Getting Started",
-"url": "dgui_quickstart.html",
-"isFile": true,
-"children": [
-{
-"title": "Template + data-model = output",
-"url": "dgui_quickstart_basics.html",
-"isFile": true,
-"children": [
-]
-}
-,
-{
-"title": "The data-model at a glance",
-"url": "dgui_quickstart_datamodel.html",
-"isFile": true,
-"children": [
-]
-}
-,
-{
-"title": "The template at a glance",
-"url": "dgui_quickstart_template.html",
-"isFile": true,
-"children": [
-{
-"title": "Some basic directives",
-"url": "dgui_quickstart_template.html#autoid_2",
-"isFile": false,
-"children": [
-{
-"title": "The if directive",
-"url": "dgui_quickstart_template.html#autoid_3",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "The list directive",
-"url": "dgui_quickstart_template.html#autoid_4",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "The include directive",
-"url": "dgui_quickstart_template.html#autoid_5",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "Using directives together",
-"url": "dgui_quickstart_template.html#autoid_6",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Using built-ins",
-"url": "dgui_quickstart_template.html#autoid_7",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Dealing with missing variables",
-"url": "dgui_quickstart_template.html#autoid_8",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Escaping for HTML, XML and other markup",
-"url": "dgui_quickstart_template.html#dgui_quickstart_template_autoescaping",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-]
-}
-,
-{
-"title": "Values, Types",
-"url": "dgui_datamodel.html",
-"isFile": true,
-"children": [
-{
-"title": "Basics",
-"url": "dgui_datamodel_basics.html",
-"isFile": true,
-"children": [
-{
-"title": "What is a value?",
-"url": "dgui_datamodel_basics.html#topic.value",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "What is type?",
-"url": "dgui_datamodel_basics.html#autoid_9",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "The data-model is a hash",
-"url": "dgui_datamodel_basics.html#autoid_10",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "The types",
-"url": "dgui_datamodel_types.html",
-"isFile": true,
-"children": [
-{
-"title": "Scalars",
-"url": "dgui_datamodel_types.html#dgui_datamodel_scalar",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Containers",
-"url": "dgui_datamodel_types.html#dgui_datamodel_container",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Subroutines",
-"url": "dgui_datamodel_types.html#autoid_11",
-"isFile": false,
-"children": [
-{
-"title": "Methods and functions",
-"url": "dgui_datamodel_types.html#dgui_datamodel_method",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "User-defined directives",
-"url": "dgui_datamodel_types.html#dgui_datamodel_userdefdir",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Function/method versus user-defined directive",
-"url": "dgui_datamodel_types.html#autoid_12",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "Miscellaneous",
-"url": "dgui_datamodel_types.html#autoid_13",
-"isFile": false,
-"children": [
-{
-"title": "Nodes",
-"url": "dgui_datamodel_types.html#dgui_datamodel_node",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Markup output",
-"url": "dgui_datamodel_types.html#dgui_datamodel_markupoutput",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-]
-}
-]
-}
-,
-{
-"title": "The Template",
-"url": "dgui_template.html",
-"isFile": true,
-"children": [
-{
-"title": "Overall structure",
-"url": "dgui_template_overallstructure.html",
-"isFile": true,
-"children": [
-]
-}
-,
-{
-"title": "Directives",
-"url": "dgui_template_directives.html",
-"isFile": true,
-"children": [
-]
-}
-,
-{
-"title": "Expressions",
-"url": "dgui_template_exp.html",
-"isFile": true,
-"children": [
-{
-"title": "Quick overview (cheat sheet)",
-"url": "dgui_template_exp.html#exp_cheatsheet",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Specify values directly",
-"url": "dgui_template_exp.html#dgui_template_exp_direct",
-"isFile": false,
-"children": [
-{
-"title": "Strings",
-"url": "dgui_template_exp.html#dgui_template_exp_direct_string",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Numbers",
-"url": "dgui_template_exp.html#dgui_template_exp_direct_number",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Booleans",
-"url": "dgui_template_exp.html#dgui_template_exp_direct_boolean",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Sequences",
-"url": "dgui_template_exp.html#dgui_template_exp_direct_seuqence",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Ranges",
-"url": "dgui_template_exp.html#dgui_template_exp_direct_ranges",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Hashes",
-"url": "dgui_template_exp.html#dgui_template_exp_direct_hash",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "Retrieving variables",
-"url": "dgui_template_exp.html#dgui_template_exp_var",
-"isFile": false,
-"children": [
-{
-"title": "Top-level variables",
-"url": "dgui_template_exp.html#dgui_template_exp_var_toplevel",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Retrieving data from a hash",
-"url": "dgui_template_exp.html#dgui_template_exp_var_hash",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Retrieving data from a sequence",
-"url": "dgui_template_exp.html#dgui_template_exp_var_sequence",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Special variables",
-"url": "dgui_template_exp.html#dgui_template_exp_var_special",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "String operations",
-"url": "dgui_template_exp.html#dgui_template_exp_stringop",
-"isFile": false,
-"children": [
-{
-"title": "Interpolation and concatenation",
-"url": "dgui_template_exp.html#dgui_template_exp_stringop_interpolation",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Getting a character",
-"url": "dgui_template_exp.html#dgui_template_exp_get_character",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "String slicing (substrings)",
-"url": "dgui_template_exp.html#dgui_template_exp_stringop_slice",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "Sequence operations",
-"url": "dgui_template_exp.html#dgui_template_exp_sequenceop",
-"isFile": false,
-"children": [
-{
-"title": "Concatenation",
-"url": "dgui_template_exp.html#dgui_template_exp_sequenceop_cat",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Sequence slicing",
-"url": "dgui_template_exp.html#dgui_template_exp_seqenceop_slice",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "Hash operations",
-"url": "dgui_template_exp.html#dgui_template_exp_hashop",
-"isFile": false,
-"children": [
-{
-"title": "Concatenation",
-"url": "dgui_template_exp.html#dgui_template_exp_hashop_cat",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "Arithmetical calculations",
-"url": "dgui_template_exp.html#dgui_template_exp_arit",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Comparison",
-"url": "dgui_template_exp.html#dgui_template_exp_comparison",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Logical operations",
-"url": "dgui_template_exp.html#dgui_template_exp_logicalop",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Built-ins",
-"url": "dgui_template_exp.html#dgui_template_exp_builtin",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Method call",
-"url": "dgui_template_exp.html#dgui_template_exp_methodcall",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Handling missing values",
-"url": "dgui_template_exp.html#dgui_template_exp_missing",
-"isFile": false,
-"children": [
-{
-"title": "Default value operator",
-"url": "dgui_template_exp.html#dgui_template_exp_missing_default",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Missing value test operator",
-"url": "dgui_template_exp.html#dgui_template_exp_missing_test",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "Assignment Operators",
-"url": "dgui_template_exp.html#dgui_template_exp_assignment",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Parentheses",
-"url": "dgui_template_exp.html#dgui_template_exp_parentheses",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "White-space in expressions",
-"url": "dgui_template_exp.html#dgui_template_exp_whitespace",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Operator precedence",
-"url": "dgui_template_exp.html#dgui_template_exp_precedence",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "Interpolations",
-"url": "dgui_template_valueinsertion.html",
-"isFile": true,
-"children": [
-{
-"title": "Overview",
-"url": "dgui_template_valueinsertion.html#autoid_14",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Automatic escaping",
-"url": "dgui_template_valueinsertion.html#autoid_15",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Guide to inserting numerical values",
-"url": "dgui_template_valueinsertion.html#autoid_16",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Guide to inserting date/time/date-time values",
-"url": "dgui_template_valueinsertion.html#dgui_template_valueinserion_universal_date",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Guide to inserting boolean values",
-"url": "dgui_template_valueinsertion.html#autoid_17",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Exact conversion rules",
-"url": "dgui_template_valueinsertion.html#autoid_18",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-]
-}
-,
-{
-"title": "Miscellaneous",
-"url": "dgui_misc.html",
-"isFile": true,
-"children": [
-{
-"title": "Defining your own directives",
-"url": "dgui_misc_userdefdir.html",
-"isFile": true,
-"children": [
-{
-"title": "Basics",
-"url": "dgui_misc_userdefdir.html#autoid_19",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Parameters",
-"url": "dgui_misc_userdefdir.html#autoid_20",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Nested content",
-"url": "dgui_misc_userdefdir.html#autoid_21",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Macros with loop variables",
-"url": "dgui_misc_userdefdir.html#dgui_misc_userdefdir_loopvar",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "More about user-defined directives and macros",
-"url": "dgui_misc_userdefdir.html#autoid_22",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "Defining variables in the template",
-"url": "dgui_misc_var.html",
-"isFile": true,
-"children": [
-]
-}
-,
-{
-"title": "Namespaces",
-"url": "dgui_misc_namespace.html",
-"isFile": true,
-"children": [
-{
-"title": "Creating a library",
-"url": "dgui_misc_namespace.html#autoid_23",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Writing the variables of imported namespaces",
-"url": "dgui_misc_namespace.html#autoid_24",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Namespaces and data-model",
-"url": "dgui_misc_namespace.html#autoid_25",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "The life-cycle of namespaces",
-"url": "dgui_misc_namespace.html#autoid_26",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Auto-importing",
-"url": "dgui_misc_namespace.html#autoid_27",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "Auto-escaping and output formats",
-"url": "dgui_misc_autoescaping.html",
-"isFile": true,
-"children": [
-{
-"title": "Output formats",
-"url": "dgui_misc_autoescaping.html#dgui_misc_autoescaping_outputformat",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Overriding the output format in templates",
-"url": "dgui_misc_autoescaping.html#dgui_misc_autoescaping_overrideoformat",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Disabling auto escaping",
-"url": "dgui_misc_autoescaping.html#dgui_misc_autoescaping_disableautoesc",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "\u201cMarkup output\u201d values",
-"url": "dgui_misc_autoescaping.html#dgui_misc_autoescaping_movalues",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Further details and tricky cases",
-"url": "dgui_misc_autoescaping.html#autoid_28",
-"isFile": false,
-"children": [
-{
-"title": "Non-markup output formats",
-"url": "dgui_misc_autoescaping.html#dgui_misc_autoescaping_nonmarkupof",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Inserting markup output values from other markups",
-"url": "dgui_misc_autoescaping.html#dgui_misc_autoescaping_mixingoutputformats",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "\u201c+\u201d\n operator",
-"url": "dgui_misc_autoescaping.html#dgui_misc_autoescaping_concatenation",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "${...} inside string literals",
-"url": "dgui_misc_autoescaping.html#dgui_misc_autoescaping_stringliteral",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Combined output formats",
-"url": "dgui_misc_autoescaping.html#autoid_29",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-]
-}
-,
-{
-"title": "White-space handling",
-"url": "dgui_misc_whitespace.html",
-"isFile": true,
-"children": [
-{
-"title": "White-space stripping",
-"url": "dgui_misc_whitespace.html#dgui_misc_whitespace_stripping",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Using compress directive",
-"url": "dgui_misc_whitespace.html#autoid_30",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "Alternative (square bracket) syntax",
-"url": "dgui_misc_alternativesyntax.html",
-"isFile": true,
-"children": [
-]
-}
-]
-}
-]
-}
-,
-{
-"title": "Programmer's Guide",
-"url": "pgui.html",
-"isFile": true,
-"children": [
-{
-"title": "Getting Started",
-"url": "pgui_quickstart.html",
-"isFile": true,
-"children": [
-{
-"title": "Create a configuration instance",
-"url": "pgui_quickstart_createconfiguration.html",
-"isFile": true,
-"children": [
-]
-}
-,
-{
-"title": "Create a data-model",
-"url": "pgui_quickstart_createdatamodel.html",
-"isFile": true,
-"children": [
-]
-}
-,
-{
-"title": "Get the template",
-"url": "pgui_quickstart_gettemplate.html",
-"isFile": true,
-"children": [
-]
-}
-,
-{
-"title": "Merging the template with the data-model",
-"url": "pgui_quickstart_merge.html",
-"isFile": true,
-"children": [
-]
-}
-,
-{
-"title": "Putting all together",
-"url": "pgui_quickstart_all.html",
-"isFile": true,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "The Data Model",
-"url": "pgui_datamodel.html",
-"isFile": true,
-"children": [
-{
-"title": "Basics",
-"url": "pgui_datamodel_basics.html",
-"isFile": true,
-"children": [
-]
-}
-,
-{
-"title": "Scalars",
-"url": "pgui_datamodel_scalar.html",
-"isFile": true,
-"children": [
-{
-"title": "\u201cdate-like\u201d types",
-"url": "pgui_datamodel_scalar.html#autoid_31",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "Containers",
-"url": "pgui_datamodel_parent.html",
-"isFile": true,
-"children": [
-{
-"title": "Hashes",
-"url": "pgui_datamodel_parent.html#autoid_32",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Sequences",
-"url": "pgui_datamodel_parent.html#autoid_33",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Collections",
-"url": "pgui_datamodel_parent.html#autoid_34",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "Methods",
-"url": "pgui_datamodel_method.html",
-"isFile": true,
-"children": [
-]
-}
-,
-{
-"title": "Directives",
-"url": "pgui_datamodel_directive.html",
-"isFile": true,
-"children": [
-{
-"title": "Example 1",
-"url": "pgui_datamodel_directive.html#autoid_35",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Example 2",
-"url": "pgui_datamodel_directive.html#autoid_36",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Notices",
-"url": "pgui_datamodel_directive.html#autoid_37",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "Node variables",
-"url": "pgui_datamodel_node.html",
-"isFile": true,
-"children": [
-]
-}
-,
-{
-"title": "Object wrappers",
-"url": "pgui_datamodel_objectWrapper.html",
-"isFile": true,
-"children": [
-{
-"title": "The default object wrapper",
-"url": "pgui_datamodel_objectWrapper.html#pgui_datamodel_defaultObjectWrapper",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Custom object wrapping example",
-"url": "pgui_datamodel_objectWrapper.html#pgui_datamodel_customObjectWrappingExample",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-]
-}
-,
-{
-"title": "The Configuration",
-"url": "pgui_config.html",
-"isFile": true,
-"children": [
-{
-"title": "Basics",
-"url": "pgui_config_basics.html",
-"isFile": true,
-"children": [
-]
-}
-,
-{
-"title": "Shared variables",
-"url": "pgui_config_sharedvariables.html",
-"isFile": true,
-"children": [
-]
-}
-,
-{
-"title": "Settings",
-"url": "pgui_config_settings.html",
-"isFile": true,
-"children": [
-]
-}
-,
-{
-"title": "Template loading",
-"url": "pgui_config_templateloading.html",
-"isFile": true,
-"children": [
-{
-"title": "Template loaders",
-"url": "pgui_config_templateloading.html#autoid_38",
-"isFile": false,
-"children": [
-{
-"title": "Built-in template loaders",
-"url": "pgui_config_templateloading.html#autoid_39",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Loading templates from multiple locations",
-"url": "pgui_config_templateloading.html#autoid_40",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Loading templates from other sources",
-"url": "pgui_config_templateloading.html#autoid_41",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "The template name (template path)",
-"url": "pgui_config_templateloading.html#autoid_42",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "Template caching",
-"url": "pgui_config_templateloading.html#pgui_config_templateloading_caching",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "Error handling",
-"url": "pgui_config_errorhandling.html",
-"isFile": true,
-"children": [
-{
-"title": "The possible exceptions",
-"url": "pgui_config_errorhandling.html#autoid_43",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Customizing the behavior regarding TemplatException-s",
-"url": "pgui_config_errorhandling.html#autoid_44",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "TemplateException logging",
-"url": "pgui_config_errorhandling.html#autoid_45",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Explicit error handling in templates",
-"url": "pgui_config_errorhandling.html#autoid_46",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "Template configurations",
-"url": "pgui_config_templateconfigurations.html",
-"isFile": true,
-"children": [
-]
-}
-,
-{
-"title": "Associating output formats with templates",
-"url": "pgui_config_outputformatsautoesc.html",
-"isFile": true,
-"children": [
-]
-}
-,
-{
-"title": "Custom number and date/time formats",
-"url": "pgui_config_custom_formats.html",
-"isFile": true,
-"children": [
-{
-"title": "Overview",
-"url": "pgui_config_custom_formats.html#autoid_50",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Simple custom number format example",
-"url": "pgui_config_custom_formats.html#pgui_config_custom_formats_ex_cust_alg_simple",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Advanced custom number format example",
-"url": "pgui_config_custom_formats.html#pgui_config_custom_formats_ex_cust_algo_advanced",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Custom date/time format example",
-"url": "pgui_config_custom_formats.html#pgui_config_custom_formats_ex_cust_algo_date",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Alias format example",
-"url": "pgui_config_custom_formats.html#pgui_config_custom_formats_ex_alias",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Model-aware format example",
-"url": "pgui_config_custom_formats.html#pgui_config_custom_formats_ex_model_aware",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "The \"incompatible improvements\" setting",
-"url": "pgui_config_incompatible_improvements.html",
-"isFile": true,
-"children": [
-{
-"title": "What does it do",
-"url": "pgui_config_incompatible_improvements.html#autoid_51",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "How to set it",
-"url": "pgui_config_incompatible_improvements.html#pgui_config_incompatible_improvements_how_to_set",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-]
-}
-,
-{
-"title": "Miscellaneous",
-"url": "pgui_misc.html",
-"isFile": true,
-"children": [
-{
-"title": "Variables, scopes",
-"url": "pgui_misc_var.html",
-"isFile": true,
-"children": [
-]
-}
-,
-{
-"title": "Charset issues",
-"url": "pgui_misc_charset.html",
-"isFile": true,
-"children": [
-{
-"title": "The charset of the input",
-"url": "pgui_misc_charset.html#autoid_52",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "The charset of the output",
-"url": "pgui_misc_charset.html#autoid_53",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "Multithreading",
-"url": "pgui_misc_multithreading.html",
-"isFile": true,
-"children": [
-]
-}
-,
-{
-"title": "Bean wrapper",
-"url": "pgui_misc_beanwrapper.html",
-"isFile": true,
-"children": [
-{
-"title": "TemplateHashModel functionality",
-"url": "pgui_misc_beanwrapper.html#beanswrapper_hash",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "A word on security",
-"url": "pgui_misc_beanwrapper.html#autoid_54",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "TemplateScalarModel functionality",
-"url": "pgui_misc_beanwrapper.html#autoid_55",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "TemplateNumberModel functionality",
-"url": "pgui_misc_beanwrapper.html#autoid_56",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "TemplateCollectionModel functionality",
-"url": "pgui_misc_beanwrapper.html#autoid_57",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "TemplateSequenceModel functionality",
-"url": "pgui_misc_beanwrapper.html#autoid_58",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "TemplateMethodModel functionality",
-"url": "pgui_misc_beanwrapper.html#beanswrapper_method",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Unwrapping rules",
-"url": "pgui_misc_beanwrapper.html#autoid_59",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Accessing static methods",
-"url": "pgui_misc_beanwrapper.html#autoid_60",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Accessing enums",
-"url": "pgui_misc_beanwrapper.html#jdk_15_enums",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "Logging",
-"url": "pgui_misc_logging.html",
-"isFile": true,
-"children": [
-{
-"title": "Logging library selection",
-"url": "pgui_misc_logging.html#autoid_61",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Logging categories",
-"url": "pgui_misc_logging.html#autoid_62",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "Using FreeMarker with servlets",
-"url": "pgui_misc_servlet.html",
-"isFile": true,
-"children": [
-{
-"title": "\u201cModel 2\u201d",
-"url": "pgui_misc_servlet.html#pgui_misc_servlet_model2",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Including content from other web application\n resources",
-"url": "pgui_misc_servlet.html#pgui_misc_servlet_include",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Using JSP custom tags in FTL",
-"url": "pgui_misc_servlet.html#autoid_63",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Embed FTL into JSP pages",
-"url": "pgui_misc_servlet.html#autoid_64",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "Configuring security policy for FreeMarker",
-"url": "pgui_misc_secureenv.html",
-"isFile": true,
-"children": [
-]
-}
-,
-{
-"title": "Legacy XML wrapper implementation",
-"url": "pgui_misc_xml_legacy.html",
-"isFile": true,
-"children": [
-{
-"title": "TemplateScalarModel",
-"url": "pgui_misc_xml_legacy.html#autoid_65",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "TemplateCollectionModel",
-"url": "pgui_misc_xml_legacy.html#autoid_66",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "TemplateSequenceModel",
-"url": "pgui_misc_xml_legacy.html#autoid_67",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "TemplateHashModel",
-"url": "pgui_misc_xml_legacy.html#autoid_68",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "TemplateMethodModel",
-"url": "pgui_misc_xml_legacy.html#autoid_69",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Namespace handling",
-"url": "pgui_misc_xml_legacy.html#autoid_70",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "Using FreeMarker with Ant",
-"url": "pgui_misc_ant.html",
-"isFile": true,
-"children": [
-]
-}
-,
-{
-"title": "Jython wrapper",
-"url": "pgui_misc_jythonwrapper.html",
-"isFile": true,
-"children": [
-{
-"title": "TemplateHashModel functionality",
-"url": "pgui_misc_jythonwrapper.html#autoid_71",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "TemplateScalarModel functionality",
-"url": "pgui_misc_jythonwrapper.html#autoid_72",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "TemplateBooleanModel functionality",
-"url": "pgui_misc_jythonwrapper.html#autoid_73",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "TemplateNumberModel functionality",
-"url": "pgui_misc_jythonwrapper.html#autoid_74",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "TemplateSequenceModel functionality",
-"url": "pgui_misc_jythonwrapper.html#autoid_75",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-]
-}
-]
-}
-,
-{
-"title": "Template Language Reference",
-"url": "ref.html",
-"isFile": true,
-"children": [
-{
-"title": "Built-in Reference",
-"url": "ref_builtins.html",
-"isFile": true,
-"children": [
-{
-"title": "Alphabetical index",
-"url": "ref_builtins_alphaidx.html",
-"isFile": true,
-"children": [
-]
-}
-,
-{
-"title": "Built-ins for strings",
-"url": "ref_builtins_string.html",
-"isFile": true,
-"children": [
-{
-"title": "boolean",
-"url": "ref_builtins_string.html#ref_builtin_boolean",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "cap_first",
-"url": "ref_builtins_string.html#ref_builtin_cap_first",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "capitalize",
-"url": "ref_builtins_string.html#ref_builtin_capitalize",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "chop_linebreak",
-"url": "ref_builtins_string.html#ref_builtin_chop_linebreak",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "contains",
-"url": "ref_builtins_string.html#ref_builtin_contains",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "date, time, datetime",
-"url": "ref_builtins_string.html#ref_builtin_string_date",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "ends_with",
-"url": "ref_builtins_string.html#ref_builtin_ends_with",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "ensure_ends_with",
-"url": "ref_builtins_string.html#ref_builtin_ensure_ends_with",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "ensure_starts_with",
-"url": "ref_builtins_string.html#ref_builtin_ensure_starts_with",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "esc",
-"url": "ref_builtins_string.html#ref_builtin_esc",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "groups",
-"url": "ref_builtins_string.html#ref_builtin_groups",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "html (deprecated)",
-"url": "ref_builtins_string.html#ref_builtin_html",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "index_of",
-"url": "ref_builtins_string.html#ref_builtin_index_of",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "j_string",
-"url": "ref_builtins_string.html#ref_builtin_j_string",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "js_string",
-"url": "ref_builtins_string.html#ref_builtin_js_string",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "json_string",
-"url": "ref_builtins_string.html#ref_builtin_json_string",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "keep_after",
-"url": "ref_builtins_string.html#ref_builtin_keep_after",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "keep_after_last",
-"url": "ref_builtins_string.html#ref_builtin_keep_after_last",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "keep_before",
-"url": "ref_builtins_string.html#ref_builtin_keep_before",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "keep_before_last",
-"url": "ref_builtins_string.html#ref_builtin_keep_before_last",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "last_index_of",
-"url": "ref_builtins_string.html#ref_builtin_last_index_of",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "left_pad",
-"url": "ref_builtins_string.html#ref_builtin_left_pad",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "length",
-"url": "ref_builtins_string.html#ref_builtin_length",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "lower_case",
-"url": "ref_builtins_string.html#ref_builtin_lower_case",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "matches",
-"url": "ref_builtins_string.html#ref_builtin_matches",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "no_esc",
-"url": "ref_builtins_string.html#ref_builtin_no_esc",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "number",
-"url": "ref_builtins_string.html#ref_builtin_number",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "replace",
-"url": "ref_builtins_string.html#ref_builtin_replace",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "right_pad",
-"url": "ref_builtins_string.html#ref_builtin_right_pad",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "remove_beginning",
-"url": "ref_builtins_string.html#ref_builtin_remove_beginning",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "remove_ending",
-"url": "ref_builtins_string.html#ref_builtin_remove_ending",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "rtf (deprecated)",
-"url": "ref_builtins_string.html#ref_builtin_rtf",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "split",
-"url": "ref_builtins_string.html#ref_builtin_split",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "starts_with",
-"url": "ref_builtins_string.html#ref_builtin_starts_with",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "string (when used with a string value)",
-"url": "ref_builtins_string.html#ref_builtin_string_for_string",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "substring (deprecated)",
-"url": "ref_builtins_string.html#ref_builtin_substring",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "trim",
-"url": "ref_builtins_string.html#ref_builtin_trim",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "uncap_first",
-"url": "ref_builtins_string.html#ref_builtin_uncap_first",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "upper_case",
-"url": "ref_builtins_string.html#ref_builtin_upper_case",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "url",
-"url": "ref_builtins_string.html#ref_builtin_url",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "url_path",
-"url": "ref_builtins_string.html#ref_builtin_url_path",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "word_list",
-"url": "ref_builtins_string.html#ref_builtin_word_list",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "xhtml (deprecated)",
-"url": "ref_builtins_string.html#ref_builtin_xhtml",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "xml (deprecated)",
-"url": "ref_builtins_string.html#ref_builtin_xml",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Common flags",
-"url": "ref_builtins_string.html#ref_builtin_string_flags",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "Built-ins for numbers",
-"url": "ref_builtins_number.html",
-"isFile": true,
-"children": [
-{
-"title": "abs",
-"url": "ref_builtins_number.html#ref_builtin_abs",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "c (when used with numerical value)",
-"url": "ref_builtins_number.html#ref_builtin_c",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "is_infinite",
-"url": "ref_builtins_number.html#ref_builtin_is_infinite",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "is_nan",
-"url": "ref_builtins_number.html#ref_builtin_is_nan",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "lower_abc",
-"url": "ref_builtins_number.html#ref_builtin_lower_abc",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "round, floor, ceiling",
-"url": "ref_builtins_number.html#ref_builtin_rounding",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "string (when used with a numerical value)",
-"url": "ref_builtins_number.html#ref_builtin_string_for_number",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "upper_abc",
-"url": "ref_builtins_number.html#ref_builtin_upper_abc",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "Built-ins for date/time/date-time values",
-"url": "ref_builtins_date.html",
-"isFile": true,
-"children": [
-{
-"title": "date, time, datetime (when used with a date/time/date-time\n value)",
-"url": "ref_builtins_date.html#ref_builtin_date_datetype",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "date_if_unknown, time_if_unknown, datetime_if_unknown",
-"url": "ref_builtins_date.html#ref_builtin_date_if_unknown",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "iso_...",
-"url": "ref_builtins_date.html#ref_builtin_date_iso",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "string (when used with a date/time/date-time value)",
-"url": "ref_builtins_date.html#ref_builtin_string_for_date",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "Built-ins for booleans",
-"url": "ref_builtins_boolean.html",
-"isFile": true,
-"children": [
-{
-"title": "c (when used with boolean)",
-"url": "ref_builtins_boolean.html#ref_builtin_c_boolean",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "string (when used with a boolean value)",
-"url": "ref_builtins_boolean.html#ref_builtin_string_for_boolean",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "then",
-"url": "ref_builtins_boolean.html#ref_builtin_then",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "Built-ins for sequences",
-"url": "ref_builtins_sequence.html",
-"isFile": true,
-"children": [
-{
-"title": "chunk",
-"url": "ref_builtins_sequence.html#ref_builtin_chunk",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "first",
-"url": "ref_builtins_sequence.html#ref_builtin_first",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "join",
-"url": "ref_builtins_sequence.html#ref_builtin_join",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "last",
-"url": "ref_builtins_sequence.html#ref_builtin_last",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "reverse",
-"url": "ref_builtins_sequence.html#ref_builtin_reverse",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "seq_contains",
-"url": "ref_builtins_sequence.html#ref_builtin_seq_contains",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "seq_index_of",
-"url": "ref_builtins_sequence.html#ref_builtin_seq_index_of",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "seq_last_index_of",
-"url": "ref_builtins_sequence.html#ref_builtin_seq_last_index_of",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "size",
-"url": "ref_builtins_sequence.html#ref_builtin_size",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "sort",
-"url": "ref_builtins_sequence.html#ref_builtin_sort",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "sort_by",
-"url": "ref_builtins_sequence.html#ref_builtin_sort_by",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "Built-ins for hashes",
-"url": "ref_builtins_hash.html",
-"isFile": true,
-"children": [
-{
-"title": "keys",
-"url": "ref_builtins_hash.html#ref_builtin_keys",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "values",
-"url": "ref_builtins_hash.html#ref_builtin_values",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "Built-ins for nodes (for XML)",
-"url": "ref_builtins_node.html",
-"isFile": true,
-"children": [
-{
-"title": "ancestors",
-"url": "ref_builtins_node.html#ref_builtin_ancestors",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "children",
-"url": "ref_builtins_node.html#ref_builtin_children",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "node_name",
-"url": "ref_builtins_node.html#ref_builtin_node_name",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "next_sibling",
-"url": "ref_builtins_node.html#ref_builtin_next_sibling",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "node_namespace",
-"url": "ref_builtins_node.html#ref_builtin_node_namespace",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "node_type",
-"url": "ref_builtins_node.html#ref_builtin_node_type",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "parent",
-"url": "ref_builtins_node.html#ref_builtin_parent",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "previous_sibling",
-"url": "ref_builtins_node.html#ref_builtin_previous_sibling",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "root",
-"url": "ref_builtins_node.html#ref_builtin_root",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "Loop variable built-ins",
-"url": "ref_builtins_loop_var.html",
-"isFile": true,
-"children": [
-{
-"title": "counter",
-"url": "ref_builtins_loop_var.html#ref_builtin_counter",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "has_next",
-"url": "ref_builtins_loop_var.html#ref_builtin_has_next",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "index",
-"url": "ref_builtins_loop_var.html#ref_builtin_index",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "is_even_item",
-"url": "ref_builtins_loop_var.html#ref_builtin_is_even_item",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "is_first",
-"url": "ref_builtins_loop_var.html#ref_builtin_is_first",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "is_last",
-"url": "ref_builtins_loop_var.html#ref_builtin_is_last",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "is_odd_item",
-"url": "ref_builtins_loop_var.html#ref_builtin_is_odd_item",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "item_cycle",
-"url": "ref_builtins_loop_var.html#ref_builtin_item_cycle",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "item_parity",
-"url": "ref_builtins_loop_var.html#ref_builtin_item_parity",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "item_parity_cap",
-"url": "ref_builtins_loop_var.html#ref_builtin_item_parity_cap",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "Type independent built-ins",
-"url": "ref_builtins_type_independent.html",
-"isFile": true,
-"children": [
-{
-"title": "switch",
-"url": "ref_builtins_type_independent.html#ref_builtin_switch",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "Seldom used and expert built-ins",
-"url": "ref_builtins_expert.html",
-"isFile": true,
-"children": [
-{
-"title": "api, has_api",
-"url": "ref_builtins_expert.html#ref_buitin_api_and_has_api",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "byte, double, float, int, long, short",
-"url": "ref_builtins_expert.html#ref_builtin_numType",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "eval",
-"url": "ref_builtins_expert.html#ref_builtin_eval",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "has_content",
-"url": "ref_builtins_expert.html#ref_builtin_has_content",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "interpret",
-"url": "ref_builtins_expert.html#ref_builtin_interpret",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "is_...",
-"url": "ref_builtins_expert.html#ref_builtin_isType",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "markup_string",
-"url": "ref_builtins_expert.html#ref_builtin_markup_string",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "namespace",
-"url": "ref_builtins_expert.html#ref_builtin_namespace",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "new",
-"url": "ref_builtins_expert.html#ref_builtin_new",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "number_to_date, number_to_time, number_to_datetime",
-"url": "ref_builtins_expert.html#ref_builtin_numToDate",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-]
-}
-,
-{
-"title": "Directive Reference",
-"url": "ref_directives.html",
-"isFile": true,
-"children": [
-{
-"title": "Alphabetical index",
-"url": "ref_directive_alphaidx.html",
-"isFile": true,
-"children": [
-]
-}
-,
-{
-"title": "assign",
-"url": "ref_directive_assign.html",
-"isFile": true,
-"children": [
-{
-"title": "Synopsis",
-"url": "ref_directive_assign.html#autoid_76",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Description",
-"url": "ref_directive_assign.html#autoid_77",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "attempt, recover",
-"url": "ref_directive_attempt.html",
-"isFile": true,
-"children": [
-{
-"title": "Synopsis",
-"url": "ref_directive_attempt.html#autoid_78",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Description",
-"url": "ref_directive_attempt.html#autoid_79",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "autoesc",
-"url": "ref_directive_autoesc.html",
-"isFile": true,
-"children": [
-{
-"title": "Synopsis",
-"url": "ref_directive_autoesc.html#autoid_80",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Description",
-"url": "ref_directive_autoesc.html#autoid_81",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "compress",
-"url": "ref_directive_compress.html",
-"isFile": true,
-"children": [
-{
-"title": "Synopsis",
-"url": "ref_directive_compress.html#autoid_82",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Description",
-"url": "ref_directive_compress.html#autoid_83",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "escape, noescape (deprecated)",
-"url": "ref_directive_escape.html",
-"isFile": true,
-"children": [
-{
-"title": "Synopsis",
-"url": "ref_directive_escape.html#autoid_84",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Description",
-"url": "ref_directive_escape.html#autoid_85",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "flush",
-"url": "ref_directive_flush.html",
-"isFile": true,
-"children": [
-{
-"title": "Synopsis",
-"url": "ref_directive_flush.html#autoid_86",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Description",
-"url": "ref_directive_flush.html#autoid_87",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "ftl",
-"url": "ref_directive_ftl.html",
-"isFile": true,
-"children": [
-{
-"title": "Synopsis",
-"url": "ref_directive_ftl.html#autoid_88",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Description",
-"url": "ref_directive_ftl.html#autoid_89",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "function, return",
-"url": "ref_directive_function.html",
-"isFile": true,
-"children": [
-{
-"title": "Synopsis",
-"url": "ref_directive_function.html#autoid_90",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Description",
-"url": "ref_directive_function.html#autoid_91",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "global",
-"url": "ref_directive_global.html",
-"isFile": true,
-"children": [
-{
-"title": "Synopsis",
-"url": "ref_directive_global.html#autoid_92",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Description",
-"url": "ref_directive_global.html#autoid_93",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "if, else, elseif",
-"url": "ref_directive_if.html",
-"isFile": true,
-"children": [
-{
-"title": "Synopsis",
-"url": "ref_directive_if.html#autoid_94",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Description",
-"url": "ref_directive_if.html#autoid_95",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "import",
-"url": "ref_directive_import.html",
-"isFile": true,
-"children": [
-{
-"title": "Synopsis",
-"url": "ref_directive_import.html#autoid_96",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Description",
-"url": "ref_directive_import.html#autoid_97",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "include",
-"url": "ref_directive_include.html",
-"isFile": true,
-"children": [
-{
-"title": "Synopsis",
-"url": "ref_directive_include.html#autoid_98",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Description",
-"url": "ref_directive_include.html#autoid_99",
-"isFile": false,
-"children": [
-{
-"title": "Using acquisition",
-"url": "ref_directive_include.html#ref_directive_include_acquisition",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Localized lookup",
-"url": "ref_directive_include.html#ref_directive_include_localized",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-]
-}
-,
-{
-"title": "list, else, items, sep, break",
-"url": "ref_directive_list.html",
-"isFile": true,
-"children": [
-{
-"title": "Synopsis",
-"url": "ref_directive_list.html#autoid_100",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Description",
-"url": "ref_directive_list.html#autoid_101",
-"isFile": false,
-"children": [
-{
-"title": "Simplest form",
-"url": "ref_directive_list.html#autoid_102",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "else directive",
-"url": "ref_directive_list.html#autoid_103",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "items directive",
-"url": "ref_directive_list.html#autoid_104",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "sep directive",
-"url": "ref_directive_list.html#autoid_105",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "break directive",
-"url": "ref_directive_list.html#autoid_106",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Accessing iteration state",
-"url": "ref_directive_list.html#autoid_107",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Nesting loops into each other",
-"url": "ref_directive_list.html#autoid_108",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Notes for Java programmers",
-"url": "ref_directive_list.html#autoid_109",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-]
-}
-,
-{
-"title": "local",
-"url": "ref_directive_local.html",
-"isFile": true,
-"children": [
-{
-"title": "Synopsis",
-"url": "ref_directive_local.html#autoid_110",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Description",
-"url": "ref_directive_local.html#autoid_111",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "macro, nested, return",
-"url": "ref_directive_macro.html",
-"isFile": true,
-"children": [
-{
-"title": "Synopsis",
-"url": "ref_directive_macro.html#autoid_112",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Description",
-"url": "ref_directive_macro.html#autoid_113",
-"isFile": false,
-"children": [
-{
-"title": "nested",
-"url": "ref_directive_macro.html#autoid_114",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "return",
-"url": "ref_directive_macro.html#autoid_115",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-]
-}
-,
-{
-"title": "noautoesc",
-"url": "ref_directive_noautoesc.html",
-"isFile": true,
-"children": [
-{
-"title": "Synopsis",
-"url": "ref_directive_noautoesc.html#autoid_116",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Description",
-"url": "ref_directive_noautoesc.html#autoid_117",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "noparse",
-"url": "ref_directive_noparse.html",
-"isFile": true,
-"children": [
-{
-"title": "Synopsis",
-"url": "ref_directive_noparse.html#autoid_118",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Description",
-"url": "ref_directive_noparse.html#autoid_119",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "nt",
-"url": "ref_directive_nt.html",
-"isFile": true,
-"children": [
-{
-"title": "Synopsis",
-"url": "ref_directive_nt.html#autoid_120",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Description",
-"url": "ref_directive_nt.html#autoid_121",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "outputformat",
-"url": "ref_directive_outputformat.html",
-"isFile": true,
-"children": [
-{
-"title": "Synopsis",
-"url": "ref_directive_outputformat.html#autoid_122",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Description",
-"url": "ref_directive_outputformat.html#autoid_123",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "setting",
-"url": "ref_directive_setting.html",
-"isFile": true,
-"children": [
-{
-"title": "Synopsis",
-"url": "ref_directive_setting.html#autoid_124",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Description",
-"url": "ref_directive_setting.html#autoid_125",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "stop",
-"url": "ref_directive_stop.html",
-"isFile": true,
-"children": [
-{
-"title": "Synopsis",
-"url": "ref_directive_stop.html#autoid_126",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Description",
-"url": "ref_directive_stop.html#autoid_127",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "switch, case, default, break",
-"url": "ref_directive_switch.html",
-"isFile": true,
-"children": [
-{
-"title": "Synopsis",
-"url": "ref_directive_switch.html#autoid_128",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Description",
-"url": "ref_directive_switch.html#autoid_129",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "t, lt, rt",
-"url": "ref_directive_t.html",
-"isFile": true,
-"children": [
-{
-"title": "Synopsis",
-"url": "ref_directive_t.html#autoid_130",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Description",
-"url": "ref_directive_t.html#autoid_131",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "User-defined directive (<@...>)",
-"url": "ref_directive_userDefined.html",
-"isFile": true,
-"children": [
-{
-"title": "Synopsis",
-"url": "ref_directive_userDefined.html#autoid_132",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Description",
-"url": "ref_directive_userDefined.html#autoid_133",
-"isFile": false,
-"children": [
-{
-"title": "End-tag",
-"url": "ref_directive_userDefined.html#ref_directive_userDefined_entTag",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Loop variables",
-"url": "ref_directive_userDefined.html#ref_directive_userDefined_loopVar",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Positional parameter passing",
-"url": "ref_directive_userDefined.html#ref_directive_userDefined_positionalParam",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-]
-}
-,
-{
-"title": "visit, recurse, fallback",
-"url": "ref_directive_visit.html",
-"isFile": true,
-"children": [
-{
-"title": "Synopsis",
-"url": "ref_directive_visit.html#autoid_134",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Description",
-"url": "ref_directive_visit.html#autoid_135",
-"isFile": false,
-"children": [
-{
-"title": "Visit",
-"url": "ref_directive_visit.html#autoid_136",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Recurse",
-"url": "ref_directive_visit.html#autoid_137",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Fallback",
-"url": "ref_directive_visit.html#autoid_138",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-]
-}
-]
-}
-,
-{
-"title": "Special Variable Reference",
-"url": "ref_specvar.html",
-"isFile": true,
-"children": [
-]
-}
-,
-{
-"title": "Reserved names in FTL",
-"url": "ref_reservednames.html",
-"isFile": true,
-"children": [
-]
-}
-,
-{
-"title": "Deprecated FTL constructs",
-"url": "ref_deprecated.html",
-"isFile": true,
-"children": [
-{
-"title": "List of deprecated directives",
-"url": "ref_depr_directive.html",
-"isFile": true,
-"children": [
-]
-}
-,
-{
-"title": "List of deprecated built-ins",
-"url": "ref_depr_builtin.html",
-"isFile": true,
-"children": [
-]
-}
-,
-{
-"title": "Old-style macro and call directives",
-"url": "ref_depr_oldmacro.html",
-"isFile": true,
-"children": [
-{
-"title": "Synopsis",
-"url": "ref_depr_oldmacro.html#autoid_139",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Description",
-"url": "ref_depr_oldmacro.html#autoid_140",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "Transform directive",
-"url": "ref_depr_transform.html",
-"isFile": true,
-"children": [
-{
-"title": "Synopsis",
-"url": "ref_depr_transform.html#autoid_141",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Description",
-"url": "ref_depr_transform.html#autoid_142",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "Old FTL syntax",
-"url": "ref_depr_oldsyntax.html",
-"isFile": true,
-"children": [
-]
-}
-,
-{
-"title": "#{...}: Numerical interpolation",
-"url": "ref_depr_numerical_interpolation.html",
-"isFile": true,
-"children": [
-{
-"title": "Synopsis",
-"url": "ref_depr_numerical_interpolation.html#autoid_143",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Description",
-"url": "ref_depr_numerical_interpolation.html#autoid_144",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-]
-}
-]
-}
-,
-{
-"title": "XML Processing Guide",
-"url": "xgui.html",
-"isFile": true,
-"children": [
-{
-"title": "Preface",
-"url": "xgui_preface.html",
-"isFile": true,
-"children": [
-]
-}
-,
-{
-"title": "Exposing XML documents",
-"url": "xgui_expose.html",
-"isFile": true,
-"children": [
-{
-"title": "The DOM tree",
-"url": "xgui_expose_dom.html",
-"isFile": true,
-"children": [
-]
-}
-,
-{
-"title": "Putting the XML into the data-model",
-"url": "xgui_expose_put.html",
-"isFile": true,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "Imperative XML processing",
-"url": "xgui_imperative.html",
-"isFile": true,
-"children": [
-{
-"title": "Basics",
-"url": "xgui_imperative_learn.html",
-"isFile": true,
-"children": [
-{
-"title": "Accessing elements by name",
-"url": "xgui_imperative_learn.html#autoid_145",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Accessing attributes",
-"url": "xgui_imperative_learn.html#autoid_146",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Exploring the tree",
-"url": "xgui_imperative_learn.html#autoid_147",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Using XPath expressions",
-"url": "xgui_imperative_learn.html#autoid_148",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "XML namespaces",
-"url": "xgui_imperative_learn.html#autoid_149",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Don't forget escaping!",
-"url": "xgui_imperative_learn.html#autoid_150",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "Details",
-"url": "xgui_imperative_formal.html",
-"isFile": true,
-"children": [
-{
-"title": "Node sequences",
-"url": "xgui_imperative_formal.html#autoid_151",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-]
-}
-,
-{
-"title": "Declarative XML processing",
-"url": "xgui_declarative.html",
-"isFile": true,
-"children": [
-{
-"title": "Basics",
-"url": "xgui_declarative_basics.html",
-"isFile": true,
-"children": [
-]
-}
-,
-{
-"title": "Details",
-"url": "xgui_declarative_details.html",
-"isFile": true,
-"children": [
-{
-"title": "Default handlers",
-"url": "xgui_declarative_details.html#autoid_152",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Visiting a single node",
-"url": "xgui_declarative_details.html#autoid_153",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "XML namespaces",
-"url": "xgui_declarative_details.html#autoid_154",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-]
-}
-]
-}
-,
-{
-"title": "Appendixes",
-"url": "app.html",
-"isFile": true,
-"children": [
-{
-"title": "FAQ",
-"url": "app_faq.html",
-"isFile": true,
-"children": [
-]
-}
-,
-{
-"title": "Version history",
-"url": "app_versions.html",
-"isFile": true,
-"children": [
-{
-"title": "2.3.26 (incubating at Apache)",
-"url": "versions_2_3_26.html",
-"isFile": true,
-"children": [
-{
-"title": "Changes on the FTL side",
-"url": "versions_2_3_26.html#autoid_155",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Changes on the Java side",
-"url": "versions_2_3_26.html#autoid_156",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Other changes",
-"url": "versions_2_3_26.html#autoid_157",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "2.3.25 (incubating at Apache)",
-"url": "versions_2_3_25.html",
-"isFile": true,
-"children": [
-{
-"title": "Changes on the FTL side",
-"url": "versions_2_3_25.html#autoid_158",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Changes on the Java side",
-"url": "versions_2_3_25.html#autoid_159",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "2.3.24 (incubating at Apache)",
-"url": "versions_2_3_24.html",
-"isFile": true,
-"children": [
-{
-"title": "Legal changes",
-"url": "versions_2_3_24.html#autoid_160",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Changes on the FTL side",
-"url": "versions_2_3_24.html#autoid_161",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Changes on the Java side",
-"url": "versions_2_3_24.html#autoid_162",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Changes compared to 2.3.24 Release Candidate 1",
-"url": "versions_2_3_24.html#autoid_163",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "2.3.23",
-"url": "versions_2_3_23.html",
-"isFile": true,
-"children": [
-{
-"title": "Changes on the FTL side",
-"url": "versions_2_3_23.html#autoid_164",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Changes on the Java side",
-"url": "versions_2_3_23.html#autoid_165",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Other changes",
-"url": "versions_2_3_23.html#autoid_166",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Notes",
-"url": "versions_2_3_23.html#autoid_167",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "2.3.22",
-"url": "versions_2_3_22.html",
-"isFile": true,
-"children": [
-{
-"title": "Changes on the FTL side",
-"url": "versions_2_3_22.html#autoid_168",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Changes on the Java side",
-"url": "versions_2_3_22.html#autoid_169",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Notes",
-"url": "versions_2_3_22.html#autoid_170",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "2.3.21",
-"url": "versions_2_3_21.html",
-"isFile": true,
-"children": [
-{
-"title": "Changes on the FTL side",
-"url": "versions_2_3_21.html#autoid_171",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Changes on the Java side",
-"url": "versions_2_3_21.html#autoid_172",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Other changes",
-"url": "versions_2_3_21.html#autoid_173",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "2.3.20",
-"url": "versions_2_3_20.html",
-"isFile": true,
-"children": [
-{
-"title": "Changes on the FTL side",
-"url": "versions_2_3_20.html#autoid_174",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Changes on the Java side",
-"url": "versions_2_3_20.html#autoid_175",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Other changes",
-"url": "versions_2_3_20.html#autoid_176",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "2.3.19",
-"url": "versions_2_3_19.html",
-"isFile": true,
-"children": [
-{
-"title": "Changes on the FTL side",
-"url": "versions_2_3_19.html#autoid_177",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Changes on the Java side",
-"url": "versions_2_3_19.html#autoid_178",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "2.3.18",
-"url": "versions_2_3_18.html",
-"isFile": true,
-"children": [
-{
-"title": "Changes on the Java side",
-"url": "versions_2_3_18.html#autoid_179",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Other changes",
-"url": "versions_2_3_18.html#autoid_180",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "2.3.17",
-"url": "versions_2_3_17.html",
-"isFile": true,
-"children": [
-{
-"title": "Changes on the FTL side",
-"url": "versions_2_3_17.html#autoid_181",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Changes on the Java side",
-"url": "versions_2_3_17.html#autoid_182",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Other changes",
-"url": "versions_2_3_17.html#autoid_183",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "2.3.16",
-"url": "versions_2_3_16.html",
-"isFile": true,
-"children": [
-{
-"title": "Changes on the Java side",
-"url": "versions_2_3_16.html#autoid_184",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Changes on the FTL side",
-"url": "versions_2_3_16.html#autoid_185",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "2.3.15",
-"url": "versions_2_3_15.html",
-"isFile": true,
-"children": [
-{
-"title": "Changes on the FTL side",
-"url": "versions_2_3_15.html#autoid_186",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Changes on the Java side",
-"url": "versions_2_3_15.html#autoid_187",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "2.3.14",
-"url": "versions_2_3_14.html",
-"isFile": true,
-"children": [
-{
-"title": "Changes on the FTL side",
-"url": "versions_2_3_14.html#autoid_188",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Changes on the Java side",
-"url": "versions_2_3_14.html#autoid_189",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "2.3.13",
-"url": "versions_2_3_13.html",
-"isFile": true,
-"children": [
-{
-"title": "Changes on the FTL side",
-"url": "versions_2_3_13.html#autoid_190",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Changes on the Java side",
-"url": "versions_2_3_13.html#autoid_191",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "2.3.12",
-"url": "versions_2_3_12.html",
-"isFile": true,
-"children": [
-{
-"title": "Changes on the Java side",
-"url": "versions_2_3_12.html#autoid_192",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "2.3.11",
-"url": "versions_2_3_11.html",
-"isFile": true,
-"children": [
-{
-"title": "Changes on the FTL side",
-"url": "versions_2_3_11.html#autoid_193",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Changes on the Java side",
-"url": "versions_2_3_11.html#autoid_194",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Documentation changes",
-"url": "versions_2_3_11.html#autoid_195",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "2.3.10",
-"url": "versions_2_3_10.html",
-"isFile": true,
-"children": [
-{
-"title": "Changes on the Java side",
-"url": "versions_2_3_10.html#autoid_196",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Changes on the FTL side",
-"url": "versions_2_3_10.html#autoid_197",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "2.3.9",
-"url": "versions_2_3_9.html",
-"isFile": true,
-"children": [
-{
-"title": "Changes on the Java side",
-"url": "versions_2_3_9.html#autoid_198",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "2.3.8",
-"url": "versions_2_3_8.html",
-"isFile": true,
-"children": [
-{
-"title": "Changes on the Java side",
-"url": "versions_2_3_8.html#autoid_199",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "2.3.7",
-"url": "versions_2_3_7.html",
-"isFile": true,
-"children": [
-{
-"title": "Changes on the Java side",
-"url": "versions_2_3_7.html#autoid_200",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Changes on the FTL side",
-"url": "versions_2_3_7.html#autoid_201",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "2.3.7 RC1",
-"url": "versions_2_3_7rc1.html",
-"isFile": true,
-"children": [
-{
-"title": "Changes on the Java side",
-"url": "versions_2_3_7rc1.html#autoid_202",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Changes on the FTL side",
-"url": "versions_2_3_7rc1.html#autoid_203",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "2.3.6",
-"url": "versions_2_3_6.html",
-"isFile": true,
-"children": [
-{
-"title": "Changes on the Java side",
-"url": "versions_2_3_6.html#autoid_204",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "2.3.5",
-"url": "versions_2_3_5.html",
-"isFile": true,
-"children": [
-{
-"title": "Changes on the FTL side",
-"url": "versions_2_3_5.html#autoid_205",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Changes on the Java side",
-"url": "versions_2_3_5.html#autoid_206",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "2.3.4",
-"url": "versions_2_3_4.html",
-"isFile": true,
-"children": [
-{
-"title": "Changes on the FTL side",
-"url": "versions_2_3_4.html#autoid_207",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Changes on the Java side",
-"url": "versions_2_3_4.html#autoid_208",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Other changes",
-"url": "versions_2_3_4.html#autoid_209",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "2.3.3",
-"url": "versions_2_3_3.html",
-"isFile": true,
-"children": [
-{
-"title": "Changes on the FTL side",
-"url": "versions_2_3_3.html#autoid_210",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Changes on the Java side",
-"url": "versions_2_3_3.html#autoid_211",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Other changes",
-"url": "versions_2_3_3.html#autoid_212",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "2.3.2",
-"url": "versions_2_3_2.html",
-"isFile": true,
-"children": [
-{
-"title": "Changes on the Java side",
-"url": "versions_2_3_2.html#autoid_213",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "2.3.1",
-"url": "versions_2_3_1.html",
-"isFile": true,
-"children": [
-{
-"title": "Possible backward compatibility issue",
-"url": "versions_2_3_1.html#autoid_214",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Changes on the FTL side",
-"url": "versions_2_3_1.html#autoid_215",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Changes on the Java side",
-"url": "versions_2_3_1.html#autoid_216",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Other changes",
-"url": "versions_2_3_1.html#autoid_217",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "The history of the releases before the final version",
-"url": "versions_2_3_1.html#autoid_218",
-"isFile": false,
-"children": [
-{
-"title": "Differences between the preview release and final\n release",
-"url": "versions_2_3_1.html#autoid_219",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-]
-}
-,
-{
-"title": "2.3",
-"url": "versions_2_3.html",
-"isFile": true,
-"children": [
-{
-"title": "Non backward-compatible changes!",
-"url": "versions_2_3.html#autoid_220",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Changes on the FTL side",
-"url": "versions_2_3.html#autoid_221",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Changes on the Java side",
-"url": "versions_2_3.html#autoid_222",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Other changes",
-"url": "versions_2_3.html#autoid_223",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "The history of the releases before the final version",
-"url": "versions_2_3.html#autoid_224",
-"isFile": false,
-"children": [
-{
-"title": "Differences between the final release and Release Candidate\n 4",
-"url": "versions_2_3.html#autoid_225",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Differences between the Release Candidate 4 and Release\n Candidate 3",
-"url": "versions_2_3.html#autoid_226",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Differences between the Release Candidate 3 and Release\n Candidate 2",
-"url": "versions_2_3.html#autoid_227",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Differences between the Release Candidate 2 and Release\n Candidate 1",
-"url": "versions_2_3.html#autoid_228",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Differences between the Release Candidate 1 and Preview 16\n releases",
-"url": "versions_2_3.html#autoid_229",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Differences between the Preview 16 and Preview 15\n releases",
-"url": "versions_2_3.html#autoid_230",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Differences between the Preview 15 and Preview 14\n releases",
-"url": "versions_2_3.html#autoid_231",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Differences between the Preview 14 and Preview 13\n releases",
-"url": "versions_2_3.html#autoid_232",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Differences between the Preview 13 and Preview 12\n releases",
-"url": "versions_2_3.html#autoid_233",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Differences between the Preview 12 and Preview 11\n releases",
-"url": "versions_2_3.html#autoid_234",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Differences between the Preview 11 and Preview 10\n releases",
-"url": "versions_2_3.html#autoid_235",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Differences between the Preview 10 and Preview 9\n releases",
-"url": "versions_2_3.html#autoid_236",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Differences between the Preview 9 and Preview 8\n releases",
-"url": "versions_2_3.html#autoid_237",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Differences between the Preview 8 and Preview 7\n releases",
-"url": "versions_2_3.html#autoid_238",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Differences between the Preview 7 and Preview 6\n releases",
-"url": "versions_2_3.html#autoid_239",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Differences between the Preview 6 and Preview 5\n releases",
-"url": "versions_2_3.html#autoid_240",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Differences between the Preview 5 and Preview 4\n releases",
-"url": "versions_2_3.html#autoid_241",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Differences between the Preview 4 and Preview 3\n releases",
-"url": "versions_2_3.html#autoid_242",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Differences between the Preview 3 and Preview 2\n releases",
-"url": "versions_2_3.html#autoid_243",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Differences between the Preview 2 and Preview 1\n releases",
-"url": "versions_2_3.html#autoid_244",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-]
-}
-,
-{
-"title": "2.2.8",
-"url": "versions_2_2_8.html",
-"isFile": true,
-"children": [
-{
-"title": "Changes on the FTL side",
-"url": "versions_2_2_8.html#autoid_245",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Changes on the Java side",
-"url": "versions_2_2_8.html#autoid_246",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Other changes",
-"url": "versions_2_2_8.html#autoid_247",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "2.2.7",
-"url": "versions_2_2_7.html",
-"isFile": true,
-"children": [
-{
-"title": "Changes on the Java side",
-"url": "versions_2_2_7.html#autoid_248",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "2.2.6",
-"url": "versions_2_2_6.html",
-"isFile": true,
-"children": [
-{
-"title": "Changes on the FTL side",
-"url": "versions_2_2_6.html#autoid_249",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Changes on the Java side",
-"url": "versions_2_2_6.html#autoid_250",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Other changes",
-"url": "versions_2_2_6.html#autoid_251",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "2.2.5",
-"url": "versions_2_2_5.html",
-"isFile": true,
-"children": [
-{
-"title": "Changes on the Java side",
-"url": "versions_2_2_5.html#autoid_252",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "2.2.4",
-"url": "versions_2_2_4.html",
-"isFile": true,
-"children": [
-{
-"title": "Changes on the Java side",
-"url": "versions_2_2_4.html#autoid_253",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Other changes",
-"url": "versions_2_2_4.html#autoid_254",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "2.2.3",
-"url": "versions_2_2_3.html",
-"isFile": true,
-"children": [
-{
-"title": "Changes on the FTL side",
-"url": "versions_2_2_3.html#autoid_255",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Changes on the Java side",
-"url": "versions_2_2_3.html#autoid_256",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "2.2.2",
-"url": "versions_2_2_2.html",
-"isFile": true,
-"children": [
-{
-"title": "Changes on the Java side",
-"url": "versions_2_2_2.html#autoid_257",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "2.2.1",
-"url": "versions_2_2_1.html",
-"isFile": true,
-"children": [
-{
-"title": "Changes on the FTL side",
-"url": "versions_2_2_1.html#autoid_258",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Changes on the Java side",
-"url": "versions_2_2_1.html#autoid_259",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "2.2",
-"url": "versions_2_2.html",
-"isFile": true,
-"children": [
-{
-"title": "Non backward-compatible changes!",
-"url": "versions_2_2.html#autoid_260",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Changes in FTL (FreeMarker Template Language)",
-"url": "versions_2_2.html#autoid_261",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Changes on the Java side",
-"url": "versions_2_2.html#autoid_262",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Other changes",
-"url": "versions_2_2.html#autoid_263",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "The history of the releases before the final version",
-"url": "versions_2_2.html#autoid_264",
-"isFile": false,
-"children": [
-{
-"title": "Differences between the final and RC2 releases",
-"url": "versions_2_2.html#autoid_265",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Differences between the RC2 and RC1 releases",
-"url": "versions_2_2.html#autoid_266",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Differences between the Preview 2 and RC1 releases",
-"url": "versions_2_2.html#autoid_267",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Differences between the Preview 1 and Preview 2\n releases",
-"url": "versions_2_2.html#autoid_268",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-]
-}
-,
-{
-"title": "2.1.5",
-"url": "versions_2_1_5.html",
-"isFile": true,
-"children": [
-{
-"title": "Changes on the Java side",
-"url": "versions_2_1_5.html#autoid_269",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "2.1.4",
-"url": "versions_2_1_4.html",
-"isFile": true,
-"children": [
-{
-"title": "Changes on the Java side",
-"url": "versions_2_1_4.html#autoid_270",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "2.1.3",
-"url": "versions_2_1_3.html",
-"isFile": true,
-"children": [
-{
-"title": "Changes on the FTL side",
-"url": "versions_2_1_3.html#autoid_271",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Other changes",
-"url": "versions_2_1_3.html#autoid_272",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "2.1.2",
-"url": "versions_2_1_2.html",
-"isFile": true,
-"children": [
-{
-"title": "Changes in FTL (FreeMarker Template Language)",
-"url": "versions_2_1_2.html#autoid_273",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Other changes",
-"url": "versions_2_1_2.html#autoid_274",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "2.1.1",
-"url": "versions_2_1_1.html",
-"isFile": true,
-"children": [
-{
-"title": "Changes in FTL (FreeMarker Template Language)",
-"url": "versions_2_1_1.html#autoid_275",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Changes on the Java side",
-"url": "versions_2_1_1.html#autoid_276",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "2.1",
-"url": "versions_2_1.html",
-"isFile": true,
-"children": [
-{
-"title": "Changes in FTL (FreeMarker Template Language)",
-"url": "versions_2_1.html#autoid_277",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Changes on the Java side",
-"url": "versions_2_1.html#autoid_278",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Other changes",
-"url": "versions_2_1.html#autoid_279",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Differences between the RC1 and final release",
-"url": "versions_2_1.html#autoid_280",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "2.01",
-"url": "versions_2_01.html",
-"isFile": true,
-"children": [
-]
-}
-,
-{
-"title": "2.0",
-"url": "versions_2_0.html",
-"isFile": true,
-"children": [
-{
-"title": "Bugfixes",
-"url": "versions_2_0.html#autoid_281",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Changes to the Template language",
-"url": "versions_2_0.html#autoid_282",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Changes to the API",
-"url": "versions_2_0.html#autoid_283",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Miscellany",
-"url": "versions_2_0.html#autoid_284",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "2.0 RC3",
-"url": "versions_2_0RC3.html",
-"isFile": true,
-"children": [
-{
-"title": "Bug Fixes",
-"url": "versions_2_0RC3.html#autoid_285",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Changes to the Template Language",
-"url": "versions_2_0RC3.html#autoid_286",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "API changes",
-"url": "versions_2_0RC3.html#autoid_287",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "2.0 RC2",
-"url": "versions_2_0RC2.html",
-"isFile": true,
-"children": [
-{
-"title": "Changes to Template Language",
-"url": "versions_2_0RC2.html#autoid_288",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "API Changes",
-"url": "versions_2_0RC2.html#autoid_289",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-,
-{
-"title": "2.0 RC1",
-"url": "versions_2_0RC1.html",
-"isFile": true,
-"children": [
-{
-"title": "Support for Numerical operations, both arithmetic and\n boolean, as well as numerical ranges.",
-"url": "versions_2_0RC1.html#autoid_290",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "API Changes",
-"url": "versions_2_0RC1.html#autoid_291",
-"isFile": false,
-"children": [
-]
-}
-,
-{
-"title": "Syntactical Miscellany",
-"url": "versions_2_0RC1.html#autoid_292",
-"isFile": false,
-"children": [
-]
-}
-]
-}
-]
-}
-,
-{
-"title": "Installing FreeMarker",
-"url": "app_install.html",
-"isFile": true,
-"children": [
-]
-}
-,
-{
-"title": "Legal",
-"url": "app_legal.html",
-"isFile": true,
-"children": [
-{
-"title": "License",
-"url": "app_license.html",
-"isFile": true,
-"children": [
-]
-}
-,
-{
-"title": "Export Control",
-"url": "app_eccn.html",
-"isFile": true,
-"children": [
-]
-}
-]
-}
-]
-}
-,
-{
-"title": "Glossary",
-"url": "gloss.html",
-"isFile": true,
-"children": [
-]
-}
-,
-{
-"title": "Alphabetical Index",
-"url": "alphaidx.html",
-"isFile": true,
-"children": [
-]
-}
-]
-}
-;
[40/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/dgui_template_exp.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/dgui_template_exp.html b/builds/2.3.26-nightly/dgui_template_exp.html
deleted file mode 100644
index 8a33c71..0000000
--- a/builds/2.3.26-nightly/dgui_template_exp.html
+++ /dev/null
@@ -1,2331 +0,0 @@
-<!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>Expressions - 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="Expressions">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/dgui_template_exp.html">
-<link rel="canonical" href="http://freemarker.org/docs/dgui_template_exp.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="dgui.html"><span itemprop="name">Template Author's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="dgui_template.html"><span itemprop="name">The Template</span></a></li><li class="step-3" item
prop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="dgui_template_exp.html"><span itemprop="name">Expressions</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="#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","Template Author\'s Guide","The Template","Expressions"];</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="dgui_template_directives.html"><span>Previous</span></a><a class="paging-arrow next" href="dgui_template_valueinsertion.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="dgui_template_exp" itemprop="headline">Expressions</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#exp_cheatsheet" data-menu-target="exp_cheatsheet">Quick overview (cheat sheet)</a></li><li><a class="page-menu-link" href="#dgui_template_exp_direct" data-menu-target="dgui_template_exp_direct">Specify values directly</a><ul><li><a class="page-menu-link" href="#dgui_template_exp_direct_string" data-menu-target="dgui_template_exp_direct_string">Strings</a></li><li><a class="page-menu-link" href="#dgui_template_exp_direct_number" data-menu-target="dgui_template_exp_direct_number">Numbers</a></li><li><a class="page-menu-link" href="#dgui_template_exp_direct_boolean" data-menu-target="dgui_template_exp_direct_boolean">Booleans</a></li><li><a class="page-menu-link" href="#dgui_template_exp_direct_seuqence" data-menu-target="dgui_template_exp_direct_seuqence">Sequences</a></li><li><a class="page-menu-link" href="#dgui_template_exp_direct_ranges" data-menu-target="dgui_template_exp_direct_ranges">Ranges</a></li><li><a class="page-menu-link" href="#d
gui_template_exp_direct_hash" data-menu-target="dgui_template_exp_direct_hash">Hashes</a></li></ul></li><li><a class="page-menu-link" href="#dgui_template_exp_var" data-menu-target="dgui_template_exp_var">Retrieving variables</a><ul><li><a class="page-menu-link" href="#dgui_template_exp_var_toplevel" data-menu-target="dgui_template_exp_var_toplevel">Top-level variables</a></li><li><a class="page-menu-link" href="#dgui_template_exp_var_hash" data-menu-target="dgui_template_exp_var_hash">Retrieving data from a hash</a></li><li><a class="page-menu-link" href="#dgui_template_exp_var_sequence" data-menu-target="dgui_template_exp_var_sequence">Retrieving data from a sequence</a></li><li><a class="page-menu-link" href="#dgui_template_exp_var_special" data-menu-target="dgui_template_exp_var_special">Special variables</a></li></ul></li><li><a class="page-menu-link" href="#dgui_template_exp_stringop" data-menu-target="dgui_template_exp_stringop">String operations</a><ul><li><a class="page-men
u-link" href="#dgui_template_exp_stringop_interpolation" data-menu-target="dgui_template_exp_stringop_interpolation">Interpolation and concatenation</a></li><li><a class="page-menu-link" href="#dgui_template_exp_get_character" data-menu-target="dgui_template_exp_get_character">Getting a character</a></li><li><a class="page-menu-link" href="#dgui_template_exp_stringop_slice" data-menu-target="dgui_template_exp_stringop_slice">String slicing (substrings)</a></li></ul></li><li><a class="page-menu-link" href="#dgui_template_exp_sequenceop" data-menu-target="dgui_template_exp_sequenceop">Sequence operations</a><ul><li><a class="page-menu-link" href="#dgui_template_exp_sequenceop_cat" data-menu-target="dgui_template_exp_sequenceop_cat">Concatenation</a></li><li><a class="page-menu-link" href="#dgui_template_exp_seqenceop_slice" data-menu-target="dgui_template_exp_seqenceop_slice">Sequence slicing</a></li></ul></li><li><a class="page-menu-link" href="#dgui_template_exp_hashop" data-menu-ta
rget="dgui_template_exp_hashop">Hash operations</a><ul><li><a class="page-menu-link" href="#dgui_template_exp_hashop_cat" data-menu-target="dgui_template_exp_hashop_cat">Concatenation</a></li></ul></li><li><a class="page-menu-link" href="#dgui_template_exp_arit" data-menu-target="dgui_template_exp_arit">Arithmetical calculations</a></li><li><a class="page-menu-link" href="#dgui_template_exp_comparison" data-menu-target="dgui_template_exp_comparison">Comparison</a></li><li><a class="page-menu-link" href="#dgui_template_exp_logicalop" data-menu-target="dgui_template_exp_logicalop">Logical operations</a></li><li><a class="page-menu-link" href="#dgui_template_exp_builtin" data-menu-target="dgui_template_exp_builtin">Built-ins</a></li><li><a class="page-menu-link" href="#dgui_template_exp_methodcall" data-menu-target="dgui_template_exp_methodcall">Method call</a></li><li><a class="page-menu-link" href="#dgui_template_exp_missing" data-menu-target="dgui_template_exp_missing">Handling miss
ing values</a><ul><li><a class="page-menu-link" href="#dgui_template_exp_missing_default" data-menu-target="dgui_template_exp_missing_default">Default value operator</a></li><li><a class="page-menu-link" href="#dgui_template_exp_missing_test" data-menu-target="dgui_template_exp_missing_test">Missing value test operator</a></li></ul></li><li><a class="page-menu-link" href="#dgui_template_exp_assignment" data-menu-target="dgui_template_exp_assignment">Assignment Operators</a></li><li><a class="page-menu-link" href="#dgui_template_exp_parentheses" data-menu-target="dgui_template_exp_parentheses">Parentheses</a></li><li><a class="page-menu-link" href="#dgui_template_exp_whitespace" data-menu-target="dgui_template_exp_whitespace">White-space in expressions</a></li><li><a class="page-menu-link" href="#dgui_template_exp_precedence" data-menu-target="dgui_template_exp_precedence">Operator precedence</a></li></ul> </div><p>When you supply values for interpolations or directive
- parameters you can use variables or more complex expressions. For
- example, if x is the number 8 and y is 5, the value of <code class="inline-code">(x +
- y)/2</code> resolves to the numerical value 6.5.</p><p>Before we go into details, let's see some concrete
- examples:</p><ul>
- <li>
- <p>When you supply value for interpolations: The usage of
- interpolations is
- <code class="inline-code">${<em class="code-color">expression</em>}</code> where
- expression gives the value you want to insert into the output as
- text. So <code class="inline-code">${(5 + 8)/2}</code> prints "6.5"
- to the output (or possibly "6,5" if the language of
- your output is not US English).</p>
- </li>
-
- <li>
- <p>When you supply a value for the directive parameter: You
- have already seen the <code class="inline-code">if</code> directive in the
- Getting Started section. The syntax of this directive is:
- <code class="inline-code"><#if
- <em class="code-color">expression</em>><em class="code-color">...</em></#if></code>.
- The expression here must evaluate to a boolean value. For example
- in <code class="inline-code"><#if 2 < 3></code> the <code class="inline-code">2 <
- 3</code> (2 is less than 3) is an expression which evaluates to
- <code class="inline-code">true</code>.</p>
- </li>
- </ul>
-
-
-
-
-<h2 class="content-header header-section2" id="exp_cheatsheet">Quick overview (cheat sheet)</h2>
-
-
- <p>This is a reminder for those of you who already know
- FreeMarker or are just experienced programmers:</p>
-
- <ul>
- <li>
- <a href="#dgui_template_exp_direct">Specify values
- directly</a>
-
- <ul>
- <li>
- <a href="#dgui_template_exp_direct_string">Strings</a>:
- <code class="inline-code">"Foo"</code> or <code class="inline-code">'Foo'</code> or
- <code class="inline-code">"It's \"quoted\""</code> or <code class="inline-code">'It\'s
- "quoted"'</code> or
- <code class="inline-code">r"C:\raw\string"</code>
- </li>
-
- <li>
- <a href="#dgui_template_exp_direct_number">Numbers</a>:
- <code class="inline-code">123.45</code>
- </li>
-
- <li>
- <a href="#dgui_template_exp_direct_boolean">Booleans</a>:
- <code class="inline-code">true</code>, <code class="inline-code">false</code>
- </li>
-
- <li>
- <a href="#dgui_template_exp_direct_seuqence">Sequences</a>:
- <code class="inline-code">["foo", "bar", 123.45]</code>; Ranges:
- <code class="inline-code">0..9</code>, <code class="inline-code">0..<10</code> (or
- <code class="inline-code">0..!10</code>), <code class="inline-code">0..</code>
- </li>
-
- <li>
- <a href="#dgui_template_exp_direct_hash">Hashes</a>:
- <code class="inline-code">{"name":"green�mouse",
- "price":150}</code>
- </li>
- </ul>
- </li>
-
- <li>
- <a href="#dgui_template_exp_var">Retrieving
- variables</a>
-
- <ul>
- <li>
- <a href="#dgui_template_exp_var_toplevel">Top-level
- variables</a>: <code class="inline-code">user</code>
- </li>
-
- <li>
- <a href="#dgui_template_exp_var_hash">Retrieving
- data from a hash</a>: <code class="inline-code">user.name</code>,
- <code class="inline-code">user["name"]</code>
- </li>
-
- <li>
- <a href="#dgui_template_exp_var_sequence">Retrieving data
- from a sequence</a>:
- <code class="inline-code">products[5]</code>
- </li>
-
- <li>
- <a href="#dgui_template_exp_var_special">Special
- variable</a>: <code class="inline-code">.main</code>
- </li>
- </ul>
- </li>
-
- <li>
- <a href="#dgui_template_exp_stringop">String
- operations</a>
-
- <ul>
- <li>
- <a href="#dgui_template_exp_stringop_interpolation">Interpolation
- and concatenation</a>:
- <code class="inline-code">"Hello�${user}!"</code> (or <code class="inline-code">"Hello
- "�+�user + "!"</code>)
- </li>
-
- <li>
- <a href="#dgui_template_exp_get_character">Getting a
- character</a>: <code class="inline-code">name[0]</code>
- </li>
-
- <li>
- <a href="#dgui_template_exp_stringop_slice">String
- slice:</a> Inclusive end: <code class="inline-code">name[0..4]</code>,
- Exclusive end: <code class="inline-code">name[0..<5]</code>,
- Length-based (lenient): <code class="inline-code">name[0..*5]</code>,
- Remove starting: <code class="inline-code">name[5..]</code>
- </li>
- </ul>
- </li>
-
- <li>
- <a href="#dgui_template_exp_sequenceop">Sequence
- operations</a>
-
- <ul>
- <li>
- <a href="#dgui_template_exp_sequenceop_cat">Concatenation</a>:
- <code class="inline-code">users + ["guest"]</code>
- </li>
-
- <li>
- <a href="#dgui_template_exp_seqenceop_slice">Sequence
- slice</a>: Inclusive end:
- <code class="inline-code">products[20..29]</code>, Exclusive end:
- <code class="inline-code">products[20..<30]</code>, Length-based
- (lenient): <code class="inline-code">products[20..*10]</code>, Remove
- starting: <code class="inline-code">products[20..]</code>
- </li>
- </ul>
- </li>
-
- <li>
- <a href="#dgui_template_exp_hashop">Hash
- operations</a>
-
- <ul>
- <li>
- <a href="#dgui_template_exp_hashop_cat">Concatenation</a>:
- <code class="inline-code">passwords + { "joe": "secret42" }</code>
- </li>
- </ul>
- </li>
-
- <li>
- <a href="#dgui_template_exp_arit">Arithmetical
- calculations</a>: <code class="inline-code">(x * 1.5 + 10) / 2 - y %
- 100</code>
- </li>
-
- <li>
- <a href="#dgui_template_exp_comparison">Comparison</a>:
- <code class="inline-code">x�==�y</code>, <code class="inline-code">x�!=�y</code>,
- <code class="inline-code">x�<�y</code>, <code class="inline-code">x�>�y</code>,
- <code class="inline-code">x�>=�y</code>, <code class="inline-code">x�<=�y</code>,
- <code class="inline-code">x�lt�y</code>, <code class="inline-code">x�lte�y</code>,
- <code class="inline-code">x gt y</code>, <code class="inline-code">x gte y</code>,
- ...etc.
- </li>
-
- <li>
- <a href="#dgui_template_exp_logicalop">Logical
- operations</a>: <code class="inline-code">!registered && (firstVisit
- || fromEurope)</code>
- </li>
-
- <li>
- <a href="#dgui_template_exp_builtin">Built-ins</a>:
- <code class="inline-code">name?upper_case</code>,
- <code class="inline-code">path?ensure_starts_with('/')</code>
- </li>
-
- <li>
- <a href="#dgui_template_exp_methodcall">Method
- call</a>: <code class="inline-code">repeat("What", 3)</code>
- </li>
-
- <li>
- <a href="#dgui_template_exp_missing">Missing value
- handler operators</a>:
-
- <ul>
- <li>
- <a href="#dgui_template_exp_missing_default">Default
- value</a>: <code class="inline-code">name!"unknown"</code> or
- <code class="inline-code">(user.name)!"unknown"</code> or
- <code class="inline-code">name!</code> or
- <code class="inline-code">(user.name)!</code>
- </li>
-
- <li>
- <a href="#dgui_template_exp_missing_test">Missing
- value test</a>: <code class="inline-code">name??</code> or
- <code class="inline-code">(user.name)??</code>
- </li>
- </ul>
- </li>
-
- <li>
- <a href="#dgui_template_exp_assignment">Assignment
- operators</a>: <code class="inline-code">=</code>, <code class="inline-code">+=</code>,
- <code class="inline-code">-=</code>, <code class="inline-code">*=</code>,
- <code class="inline-code">/=</code>, <code class="inline-code">%=</code>,
- <code class="inline-code">++</code>, <code class="inline-code">--</code>
- </li>
- </ul>
-
- <p>See also: <a href="#dgui_template_exp_precedence">Operator
- precedence</a></p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="dgui_template_exp_direct">Specify values directly</h2>
-
-
-
-
-
-
- <p>Often you want to specify a value directly and not as a result
- of some calculations.</p>
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="dgui_template_exp_direct_string">Strings</h3>
-
-
-
-
- <p>To specify a string value directly you give the text in
- quotation marks, e.g.: <code class="inline-code">"some text"</code> or in
- apostrophe-quote, e.g. <code class="inline-code">'some text'</code>. The two
- forms are equivalent. If the text itself contains the character
- used for the quoting (either <code class="inline-code">"</code> or
- <code class="inline-code">'</code>) or backslashes, you have to precede them
- with a backslash; this is called escaping. You can type any other
- character, including <a href="gloss.html#gloss.lineBreak">line
- breaks</a>, in the text directly. Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${"It's \"quoted\" and
-this is a backslash: \\"}
-
-${'It\'s "quoted" and
-this is a backslash: \\'}</pre></div>
-
- <p>will print:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">It's "quoted" and
-this is a backslash: \
-
-It's "quoted" and
-this is a backslash: \</pre></div>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>Of course, you could simply type the above text into the
- template, without using
- <code class="inline-code">${<em class="code-color">...</em>}</code>. But we do
- it here just for the sake of example, to demonstrate
- expressions.</p>
- </div>
-
-
- <a name="topic.escapeSequence"></a>
-
-
-
- <p>This is the list of all supported escape sequences. All
- other usage of backlash in string literals is an error and any
- attempt to use the template will fail.</p>
-
- <div class="table-responsive">
- <table class="table">
-
- <thead>
- <tr>
- <th>Escape sequence</th>
-
-
- <th>Meaning</th>
-
- </tr>
-
- </thead>
-
-
- <tbody>
- <tr>
- <td><code class="inline-code">\"</code></td>
-
-
- <td>Quotation mark (u0022)</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">\'</code></td>
-
-
- <td>Apostrophe (a.k.a. apostrophe-quote) (u0027)</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">\{</code></td>
-
-
- <td>Opening curly brace: <code class="inline-code">{</code></td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">\\</code></td>
-
-
- <td>Back slash (u005C)</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">\n</code></td>
-
-
- <td>Line feed (u000A)</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">\r</code></td>
-
-
- <td>Carriage return (u000D)</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">\t</code></td>
-
-
- <td>Horizontal tabulation (a.k.a. tab) (u0009)</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">\b</code></td>
-
-
- <td>Backspace (u0008)</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">\f</code></td>
-
-
- <td>Form feed (u000C)</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">\l</code></td>
-
-
- <td>Less-than sign: <code class="inline-code"><</code></td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">\g</code></td>
-
-
- <td>Greater-than sign: <code class="inline-code">></code></td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">\a</code></td>
-
-
- <td>Ampersand: <code class="inline-code">&</code></td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">\x<em class="code-color">Code</em></code></td>
-
-
- <td>Character given with its hexadecimal <a href="gloss.html#gloss.unicode">Unicode</a> code (<a href="gloss.html#gloss.UCS">UCS</a> code)</td>
-
- </tr>
-
- </tbody>
-
- </table>
- </div>
-
-
- <p>The <code class="inline-code"><em class="code-color">Code</em></code> after
- the <code class="inline-code">\x</code> is 1 to 4 hexadecimal digits. For
- example this all put a copyright sign into the string:
- <code class="inline-code">"\xA9�1999-2001"</code>,
- <code class="inline-code">"\x0A9�1999-2001"</code>,
- <code class="inline-code">"\x00A9�1999-2001"</code>. When the character directly
- after the last hexadecimal digit can be interpreted as hexadecimal
- digit, you must use all 4 digits or else FreeMarker will
- misunderstand you.</p>
-
- <p>Note that the character sequence <code class="inline-code">${</code> (and
- <code class="inline-code">#{</code>) has special meaning. It's used to insert
- the value of expressions (typically: the value of variables, as in
- <code class="inline-code">"Hello�${user}!"</code>). This will be explained <a href="#dgui_template_exp_stringop_interpolation">later</a>.
- If you want to print <code class="inline-code">${</code> or
- <code class="inline-code">#{</code>, you should either use raw string literals
- as explained below, or escape the <code class="inline-code">{</code> like in
- <code class="inline-code">"foo $\{bar}"</code>.</p>
-
-
-
- <p>A special kind of string literals is the raw string
- literals. In raw string literals, backslash and
- <code class="inline-code">${</code> have no special meaning, they are considered
- as plain characters. To indicate that a string literal is a raw
- string literal, you have to put an <code class="inline-code">r</code> directly
- before the opening quotation mark or apostrophe-quote.
- Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${r"${foo}"}
-${r"C:\foo\bar"}</pre></div>
-
- <p>will print:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">${foo}
-C:\foo\bar</pre></div>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="dgui_template_exp_direct_number">Numbers</h3>
-
-
-
-
- <p>To specify a numerical value directly you type the number
- without quotation marks. You have to use the dot as your decimal
- separator and must not use any grouping separator symbols. You can
- use <code class="inline-code">-</code> or <code class="inline-code">+</code> to indicate the
- sign (<code class="inline-code">+</code> is redundant). Scientific notation is
- not yet supported (so <code class="inline-code">1E3</code> is wrong). Also, you
- cannot omit the 0 before the decimal separator (so
- <code class="inline-code">.5</code> is wrong).</p>
-
- <p>Examples of valid number literals: <code class="inline-code">0.08</code>,
- <code class="inline-code">-5.013</code>, <code class="inline-code">8</code>,
- <code class="inline-code">008</code>, <code class="inline-code">11</code>,
- <code class="inline-code">+11</code></p>
-
- <p>Note that numerical literals like <code class="inline-code">08</code>,
- <code class="inline-code">+8</code>, <code class="inline-code">8.00</code> and
- <code class="inline-code">8</code> are totally equivalent as they all symbolize
- the number eight. Thus, <code class="inline-code">${08}</code>,
- <code class="inline-code">${+8}</code>, <code class="inline-code">${8.00}</code> and
- <code class="inline-code">${8}</code> will all print exactly same.</p>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="dgui_template_exp_direct_boolean">Booleans</h3>
-
-
-
-
-
-
- <p>To specify a boolean value you write <code class="inline-code">true</code>
- or <code class="inline-code">false</code>. Don't use quotation marks.</p>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="dgui_template_exp_direct_seuqence">Sequences</h3>
-
-
-
-
-
-
-
-
-
-
- <p>To specify a literal sequence, you list the <a href="dgui_quickstart_datamodel.html#topic.dataModel.subVar">sub variables</a> separated by
- commas, and put the whole list into square brackets. For
- example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list <strong>["foo", "bar", "baz"]</strong> as x>
-${x}
-</#list></pre></div>
-
- <p>will print:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">foo
-bar
-baz
- </pre></div>
-
- <p>The items in the list are expressions, so you can do this
- for example: <code class="inline-code">[2 + 2, [1, 2, 3, 4], "foo"]</code>. Here
- the first subvariable will be the number 4, the second will be
- another sequence, and the third subvariable will be the string
- "foo".</p>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="dgui_template_exp_direct_ranges">Ranges</h3>
-
-
- <p>Ranges are just sequences, but they are created by
- specifying what range of whole numbers they contain, instead of
- specifying their items one by one. For example,
- <code class="inline-code">0..<m</code>, assuming the <code class="inline-code">m</code>
- variable stores 5, will give a sequence that contains <code class="inline-code">[0,
- 1, 2, 3, 4]</code>. Ranges are primarily used for iterating
- over a range of numbers with <code class="inline-code"><#list
- <em class="code-color">...</em>></code> and for <a href="#dgui_template_exp_seqenceop_slice">slicing
- sequences</a> and <a href="#dgui_template_exp_stringop_slice">slicing
- strings</a>.</p>
-
- <p>The generic forms of range expressions are (where
- <code class="inline-code"><em class="code-color">start</em></code> and
- <code class="inline-code"><em class="code-color">end</em></code> can be any
- expression that evaluates to a number):</p>
-
- <ul>
- <li>
- <p><code class="inline-code"><em class="code-color">start</em>..<em class="code-color">end</em></code>:
- Range with inclusive end. For example, <code class="inline-code">1..4</code>
- gives <code class="inline-code">[1, 2, 3, 4]</code>, and
- <code class="inline-code">4..1</code> gives <code class="inline-code">[4, 3, 2, 1]</code>.
- Beware, ranges with inclusive end never give an empty
- sequence, so <code class="inline-code">0..length-1</code> is
- <em>WRONG</em>, because when length is
- <code class="inline-code">0</code> it gives <code class="inline-code">[0,
- -1]</code>.</p>
- </li>
-
- <li>
- <p><code class="inline-code"><em class="code-color">start</em>..<<em class="code-color">end</em></code>
- or
- <code class="inline-code"><em class="code-color">start</em>..!<em class="code-color">end</em></code>:
- Range with exclusive end. For example,
- <code class="inline-code">1..<4</code> gives <code class="inline-code">[1, 2,
- 3]</code>, <code class="inline-code">4..<1</code> gives <code class="inline-code">[4,
- 3, 2]</code>, and <code class="inline-code">1..<1</code> gives
- <code class="inline-code">[]</code>. Note the last example; the result can
- be an empty sequence. There's no difference between
- <code class="inline-code">..<</code> and <code class="inline-code">..!</code>; the last
- form is used in applications where using the
- <code class="inline-code"><</code> character causes problems (for HTML
- editors and such).</p>
- </li>
-
- <li>
- <p><code class="inline-code"><em class="code-color">start</em>..*<em class="code-color">length</em></code>:
- Length limited range. For example, <code class="inline-code">10..*4</code>
- gives <code class="inline-code">[10, 11, 12, 13]</code>,
- <code class="inline-code">10..*-4</code> gives <code class="inline-code">[10, 9, 8,
- 7]</code>, and <code class="inline-code">10..*0</code> gives
- <code class="inline-code">[]</code>. When these kind of ranges are used for
- slicing, the slice will end without error if the end of the
- sliced sequence or string is reached before the specified
- range length was reached; see <a href="#dgui_template_exp_seqenceop_slice">slicing
- sequences</a> for more.</p>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>Length limited ranges were introduced in FreeMarker
- 2.3.21.</p>
- </div>
-
- </li>
-
- <li>
- <p><code class="inline-code"><em class="code-color">start</em>..</code>:
- Right-unbounded range. This are like length limited ranges
- with infinite length. For example <code class="inline-code">1..</code> gives
- <code class="inline-code">[1, 2, 3, 4, 5, 6, ... ]</code>, up to infinity.
- Be careful when processing (like listing) such ranges, as
- processing all items of it it would take forever or until the
- application runs out of memory and crashes. Just like with
- length limited ranges, when these kind of ranges are used for
- slicing, the slice will end when the end of the sliced
- sequence or string is reached.</p>
-
- <div class="callout warning">
- <strong class="callout-label">Warning!</strong>
-
- <p>Right-unbounded ranges before FreeMarker 2.3.21 were
- only used for slicing, and behaved like an empty sequence
- for other purposes. To activate the new behavior, it's not
- enough to use FreeMarker 2.3.21, the programmer also have to
- set the <code class="inline-code">incompatible_improvements</code>
- configuration setting to at least 2.3.21.</p>
- </div>
-
- </li>
- </ul>
-
- <p>Further notes on ranges:</p>
-
- <ul>
- <li>
- <p>Range expressions themselves don't have square brackets,
- for example, you write <code class="inline-code"><#assign myRange =
- 0..<x</code>, NOT <code class="inline-code"><#assign myRange =
- [0..<x]></code>. The last would create a sequence
- that contains an item that's a range. The square brackets are
- part of the slicing syntax, like
- <code class="inline-code"><em class="code-color">seq</em>[<em class="code-color">myRange</em>]</code>.</p>
- </li>
-
- <li>
- <p>You can write arithmetical expression on the sides of
- the <code class="inline-code">..</code> without parenthesis, like <code class="inline-code">n
- + 1 ..< m / 2 - 1</code>.</p>
- </li>
-
- <li>
- <p><code class="inline-code">..</code>, <code class="inline-code">..<</code>,
- <code class="inline-code">..!</code> and <code class="inline-code">..*</code> are
- operators, so you can't have space inside them. Like
- <code class="inline-code">n .. <m</code> is WRONG, but <code class="inline-code">n ..<
- m</code> is good.</p>
- </li>
-
- <li>
- <p>The reported size of right-unbounded ranges is
- 2147483647 (or 0 if
- <code class="inline-code">incompatible_improvements</code> is less than
- 2.3.21) due to a technical limitation (32 bits). However, when
- listing them, their actual size is infinite.</p>
- </li>
-
- <li>
- <p>Ranges don't really store the numbers they consist of,
- thus for example <code class="inline-code">0..1</code> and
- <code class="inline-code">0..100000000</code> is equally fast to create and
- takes the same amount of memory.</p>
- </li>
- </ul>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="dgui_template_exp_direct_hash">Hashes</h3>
-
-
-
-
-
-
- <p>To specify a hash in a template, you list the key/value
- pairs separated by commas, and put the list into curly brackets.
- The key and value within a key/value pair are separated with a
- colon. Here is an example: <code class="inline-code">{ "name": "green�mouse",
- "price": 150 }</code>. Note that both the names and the values
- are expressions. The keys must be strings. The values can be if
- any type.</p>
-
-
-
-
-
-
-<h2 class="content-header header-section2" id="dgui_template_exp_var">Retrieving variables</h2>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="dgui_template_exp_var_toplevel">Top-level variables</h3>
-
-
-
-
- <p>To access a top-level variable, you simply use the variable
- name. For example, the expression <code class="inline-code">user</code> will
- evaluate to the value of variable stored with name
- "user" in the root. So this will print what you store
- there:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${user}</pre></div>
-
- <p>If there is no such top-level variable, then an error will
- result when FreeMarker tries to evaluate the expression, and it
- aborts template processing (unless programmers has configured
- FreeMarker differently).</p>
-
- <p>In this kind of expression, the variable name can only
- contain letters (including non-Latin letters), digits (including
- non-Latin digits), underline (<code class="inline-code">_</code>), dollar
- (<code class="inline-code">$</code>), at sign (<code class="inline-code">@</code>).
- Furthermore, the first character can't be a ASCII digit
- (<code class="inline-code">0</code>-<code class="inline-code">9</code>). Starting from
- FreeMarker 2.3.22, the variable name can also contain minus
- (<code class="inline-code">-</code>), dot (<code class="inline-code">.</code>), and colon
- (<code class="inline-code">:</code>) at any position, but these must be escaped
- with a preceding backslash (<code class="inline-code">\</code>), or else they
- would be interpreted as operators. For example, to read the
- variable whose name is "data-id", the expression is
- <code class="inline-code">data\-id</code>, as <code class="inline-code">data-id</code> would
- be interpreted as "data minus id". (Note that these
- escapes only work in identifiers, not in string literals.)</p>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="dgui_template_exp_var_hash">Retrieving data from a hash</h3>
-
-
-
-
-
-
- <p>If we already have a hash as a result of an expression, then
- we can get its subvariable with a dot and the name of the
- subvariable. Assume that we have this data-model:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-data-model">(root)
- |
- +- book
- | |
- | +- title = "Breeding green mouses"
- | |
- | +- author
- | |
- | +- name = "Julia Smith"
- | |
- | +- info = "Biologist, 1923-1985, Canada"
- |
- +- test = "title"</pre></div>
-
- <p>Now we can read the <code class="inline-code">title</code> with
- <code class="inline-code">book.title</code>, since the book expression will
- return a hash (as explained in the last chapter). Applying this
- logic further, we can read the name of the author with this
- expression: <code class="inline-code">book.author.name</code>.</p>
-
- <p>There is an alternative syntax if we want to specify the
- subvariable name with an expression:
- <code class="inline-code">book["title"]</code>. In the square brackets you can
- give any expression as long as it evaluates to a string. So with
- this data-model you can also read the title with
- <code class="inline-code">book[test]</code>. More examples; these are all
- equivalent: <code class="inline-code">book.author.name</code>,
- <code class="inline-code">book["author"].name</code>,
- <code class="inline-code">book.author.["name"]</code>,
- <code class="inline-code">book["author"]["name"]</code>.</p>
-
- <p>When you use the dot syntax, the same restrictions apply
- regarding the variable name as with top-level variables (name can
- contain only letters, digits, <code class="inline-code">_</code>,
- <code class="inline-code">$</code>, <code class="inline-code">@</code> but can't start with
- <code class="inline-code">0</code>-<code class="inline-code">9</code>, also starting from
- 2.3.22 you can also use <code class="inline-code">\-</code>,
- <code class="inline-code">\.</code> and <code class="inline-code">\:</code>). There are no
- such restrictions when you use the square bracket syntax, since
- the name is the result of an arbitrary expression. (Note, that to
- help the FreeMarker XML support, if the subvariable name is
- <code class="inline-code">*</code> (asterisk) or <code class="inline-code">**</code>, then you
- do not have to use square bracket syntax.)</p>
-
- <p>As with the top-level variables, trying to access a
- non-existent subvariable causes an error and aborts the processing
- of the template (unless programmers has configured FreeMarker
- differently).</p>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="dgui_template_exp_var_sequence">Retrieving data from a sequence</h3>
-
-
-
-
-
-
- <p>This is the same as for hashes, but you can use the square
- bracket syntax only, and the expression in the brackets must
- evaluate to a number, not a string. For example to get the name of
- the first animal of the <a href="dgui_datamodel_basics.html#example.stdDataModel">example data-model</a> (remember
- that the number of the first item is 0, not 1):
- <code class="inline-code">animals[0].name</code></p>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="dgui_template_exp_var_special">Special variables</h3>
-
-
-
-
- <p>Special variables are variables defined by the FreeMarker
- engine itself. To access them, you use the
- <code class="inline-code">.<em class="code-color">variable_name</em></code>
- syntax.</p>
-
- <p>Normally you don't need to use special variables. They are
- for expert users. The complete list of special variables can be
- found in the <a href="ref_specvar.html">reference</a>.</p>
-
-
-
-
-
-
-<h2 class="content-header header-section2" id="dgui_template_exp_stringop">String operations</h2>
-
-
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="dgui_template_exp_stringop_interpolation">Interpolation and concatenation</h3>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <p>If you want to insert the value of an expression into a
- string, you can use
- <code class="inline-code">${<em class="code-color">...</em>}</code> (and the
- deprecated <code class="inline-code">#{<em class="code-color">...</em>}</code>)
- in string literals.
- <code class="inline-code">${<em class="code-color">...</em>}</code> in string
- literals <a href="dgui_template_valueinsertion.html">behaves
- similarly as in <span class="marked-text">text</span>
- sections</a> (so it goes through the same <em>locale
- sensitive</em> number and date/time formatting).</p>
-
- <p>Example (assume that user is "Big Joe"):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign s = "Hello ${user}!">
-${s} <#-- Just to see what the value of s is --></pre></div>
-
- <p>This will print:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">Hello Big Joe!</pre></div>
-
- <div class="callout warning">
- <strong class="callout-label">Warning!</strong>
-
- <p>A frequent mistake of users is the usage of interpolations
- in places where they needn't/shouldn't/can't be used.
- Interpolations work <em>only</em> in <a href="dgui_template_overallstructure.html"><span class="marked-text">text</span> sections</a> (e.g.
- <code class="inline-code"><h1>Hello ${name}!</h1></code>) and in
- string literals (e.g. <code class="inline-code"><#include
- "/footer/${company}.html"></code>). A typical
- <em>WRONG</em> usage is <code class="inline-code"><#if
- ${big}>...</#if></code>, which will cause a
- syntactical error. You should simply write <code class="inline-code"><#if
- big>...</#if></code>. Also, <code class="inline-code"><#if
- "${big}">...</#if></code> is
- <em>WRONG</em>, since it converts the parameter
- value to string and the <code class="inline-code">if</code> directive wants a
- boolean value, so it will cause a runtime error.</p>
- </div>
-
-
- <p><a name="dgui_template_exp_stringop_concatenation"></a>Alternatively,
- you can use the <code class="inline-code">+</code> operator to achieve similar
- result:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign s = "Hello " + user + "!"></pre></div>
-
- <p>This gives the same result as the earlier example with the
- <code class="inline-code">${<em class="code-color">...</em>}</code>.</p>
-
- <div class="callout warning">
- <strong class="callout-label">Warning!</strong>
-
- <p>Because <code class="inline-code">+</code> follows similar rules as
- <code class="inline-code">${<em class="code-color">...</em>}</code>, the
- appended string is influenced by the <code class="inline-code">locale</code>,
- <code class="inline-code">number_format</code>,
- <code class="inline-code">date_format</code>, <code class="inline-code">time_format</code>,
- <code class="inline-code">datetime_format</code> and
- <code class="inline-code">boolean_format</code>, etc. settings, and thus the
- result targets humans and isn't in generally machine parseable.
- This mostly leads to problems with numbers, as many locales use
- grouping (thousands separators) by default, and so
- <code class="inline-code">"someUrl?id=" + id</code> becomes to something like
- <code class="inline-code">"someUrl?id=1�234"</code>. To prevent this, use the
- <code class="inline-code">?c</code> (for Computer audience) built-in, like in
- <code class="inline-code">"someUrl?id=" + id?c</code> or
- <code class="inline-code">"someUrl?id=${id?c}"</code>, which will evaluate to
- something like <code class="inline-code">"someUrl?id=1234"</code>, regardless
- of locale and format settings.</p>
- </div>
-
-
- <p>As when <code class="inline-code">${<em class="code-color">...</em>}</code>
- is used inside string <em>expressions</em> it's just a
- shorthand of using the <code class="inline-code">+</code> operator, <a href="dgui_misc_autoescaping.html">auto-escaping</a> is not
- applied on it.</p>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="dgui_template_exp_get_character">Getting a character</h3>
-
-
-
-
-
-
- <p>You can get a single character of a string at a given index
- similarly as you can <a href="#dgui_template_exp_var_sequence">read the subvariable of a
- sequence</a>, e.g. <code class="inline-code">user[0]</code>. The result will
- be a string whose length is 1; FTL doesn't have a separate
- character type. As with sequence sub variables, the index must be
- a number that is at least 0 and less than the length of the
- string, or else an error will abort the template
- processing.</p>
-
- <p>Since the sequence subvariable syntax and the character
- getter syntax clashes, you can use the character getter syntax
- only if the variable is not a sequence as well (which is possible
- because FTL supports multi-typed values), since in that case the
- sequence behavior prevails. (To work this around, you can use
- <a href="ref_builtins_string.html#ref_builtin_string_for_string">the
- <code>string</code> built-in</a>, e.g.
- <code class="inline-code">user?string[0]</code>. Don't worry if you don't
- understand this yet; built-ins will be discussed later.)</p>
-
- <p>Example (assume that user is "Big Joe"):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${user[0]}
-${user[4]}</pre></div>
-
- <p>will print (note that the index of the first character is
- 0):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">B
-J</pre></div>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="dgui_template_exp_stringop_slice">String slicing (substrings)</h3>
-
-
-
-
-
-
-
-
-
-
- <p>You can a slice a string in the same way as you <a href="#dgui_template_exp_seqenceop_slice">slice a
- sequence</a> (see there), only here instead of sequence items
- you work with characters. Some differences are:</p>
-
- <ul>
- <li>
- <p>Decreasing ranges aren't allowed for string slicing.
- (That's because unlike sequences, you seldom if ever want to
- show a string reversed, so if that happens, that's almost
- always the result of an oversight.)</p>
- </li>
-
- <li>
- <p>If a value is both a string and a sequence (a
- multi-typed value), then slicing will slice the sequence
- instead of the string. When you are processing XML, such
- values are common. In such cases you can use
- <code class="inline-code"><em class="code-color">someXMLnode</em>?string[<em class="code-color">range</em>]</code>.</p>
- </li>
-
- <li>
- <p>There's a legacy bug where a range with
- <em>inclusive</em> end that's one less than the
- starting index and is non-negative (like in
- <code class="inline-code">"abc"[1..0]</code>) will give an empty string
- instead of an error. (It should be an error as it's a
- decreasing range.) Currently this bug is emulated for backward
- compatibility, but you shouldn't utilize it, as in the future
- it will be certainly an error.</p>
- </li>
- </ul>
-
- <p>Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign s = "ABCDEF">
-${s[2..3]}
-${s[2..<4]}
-${s[2..*3]}
-${s[2..*100]}
-${s[2..]}</pre></div>
-
- <p>will print:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">CD
-CD
-CDE
-CDEF
-CDEF</pre></div>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>Some of the typical use-cases of string slicing is covered
- by convenient built-ins: <a href="ref_builtins_string.html#ref_builtin_remove_beginning"><code>remove_beginning</code></a>,
- <a href="ref_builtins_string.html#ref_builtin_remove_ending"><code>remove_ending</code></a>,
- <a href="ref_builtins_string.html#ref_builtin_keep_before"><code>keep_before</code></a>,
- <a href="ref_builtins_string.html#ref_builtin_keep_after"><code>keep_after</code></a>,
- <a href="ref_builtins_string.html#ref_builtin_keep_before_last"><code>keep_before_last</code></a>,
- <a href="ref_builtins_string.html#ref_builtin_keep_after_last"><code>keep_after_last</code></a></p>
- </div>
-
-
-
-
-
-
-
-<h2 class="content-header header-section2" id="dgui_template_exp_sequenceop">Sequence operations</h2>
-
-
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="dgui_template_exp_sequenceop_cat">Concatenation</h3>
-
-
-
-
-
-
-
-
-
-
- <p>You can concatenate sequences in the same way as strings,
- with <code class="inline-code">+</code>. Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list ["Joe", "Fred"] + ["Julia", "Kate"] as user>
-- ${user}
-</#list></pre></div>
-
- <p>will print:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">- Joe
-- Fred
-- Julia
-- Kate
- </pre></div>
-
- <p>Note that sequence concatenation is not to be used for many
- repeated concatenations, like for appending items to a sequence
- inside a loop. It's just for things like <code class="inline-code"><#list users
- + admins as person></code>. Although concatenating sequences
- is fast and its speed is independently of the size of the
- concatenated sequences, the resulting sequence will be always a
- little bit slower to read than the original two sequences were.
- This way the result of many repeated concatenations is a sequence
- that is slow to read.</p>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="dgui_template_exp_seqenceop_slice">Sequence slicing</h3>
-
-
-
-
-
-
-
-
- <p>With
- <code class="inline-code"><em class="code-color">seq</em>[<em class="code-color">range</em>]</code>,
- were <code class="inline-code"><em class="code-color">range</em></code> is a
- range value <a href="#dgui_template_exp_direct_ranges">as
- described here</a>, you can take a slice of the sequence. The
- resulting sequence will contain the items from the original
- sequence (<code class="inline-code"><em class="code-color">seq</em></code>) whose
- indexes are in the range. For example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assert seq = ["A", "B", "C", "D", "E"]>
-<#list seq[1..3] as i>${i}</#list></pre></div>
-
- <p>will print</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">BCD </pre></div>
-
- <p>Furthermore, the items in the slice will be in the same
- order as in the range. Thus for example the above example with the
- <code class="inline-code">3..1</code> range would print
- <code class="inline-code">DCB</code>.</p>
-
- <p>The numbers in the range must be valid indexes in the
- sequence, or else the processing of the template will be aborted
- with error. Like in the last example,
- <code class="inline-code">seq[-1..0]</code> would be an error as
- <code class="inline-code">seq[-1]</code> is invalid, also
- <code class="inline-code">seq[1..5]</code> would be because
- <code class="inline-code">seq[5]</code> is invalid. (Note that
- <code class="inline-code">seq[100..<100]</code> or
- <code class="inline-code">seq[100..*0]</code> would be valid despite that 100 is
- out of bounds, because those ranges are empty.)</p>
-
- <p>Length limited ranges
- (<code class="inline-code"><em class="code-color">start</em>..*<em class="code-color">length</em></code>)
- and right-unbounded ranges
- (<code class="inline-code"><em class="code-color">start</em>..</code>) adapt to
- the length of the sliced sequence. They will slice out at most as
- many items as there is available:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign seq = ["A", "B", "C"]>
-
-Slicing with length limited ranges:
-- <#list seq[0..*2] as i>${i}</#list>
-- <#list seq[1..*2] as i>${i}</#list>
-- <#list seq[2..*2] as i>${i}</#list> <#-- Not an error -->
-- <#list seq[3..*2] as i>${i}</#list> <#-- Not an error -->
-
-Slicing with right-unlimited ranges:
-- <#list seq[0..] as i>${i}</#list>
-- <#list seq[1..] as i>${i}</#list>
-- <#list seq[2..] as i>${i}</#list>
-- <#list seq[3..] as i>${i}</#list></pre></div>
-
- <p>This will print:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">Slicing with length limited ranges:
-- AB
-- BC
-- C
--
-
-Slicing with right-unlimited ranges:
-- ABC
-- BC
-- C
--</pre></div>
-
- <p>Note above that slicing with length limited and right
- unbounded ranges allow the starting index to be past the last item
- <em>by one</em> (but no more).</p>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>To split a sequence to slices of a given size, you should
- use the <a href="ref_builtins_sequence.html#ref_builtin_chunk"><code>chunk</code></a>
- built-in.</p>
- </div>
-
-
-
-
-
-
-
-<h2 class="content-header header-section2" id="dgui_template_exp_hashop">Hash operations</h2>
-
-
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="dgui_template_exp_hashop_cat">Concatenation</h3>
-
-
-
-
-
-
-
-
-
-
- <p>You can concatenate hashes in the same way as strings, with
- <code class="inline-code">+</code>. If both hashes contain the same key, the
- hash on the right-hand side of the <code class="inline-code">+</code> takes
- precedence. Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign ages = {"Joe":23, "Fred":25} + {"Joe":30, "Julia":18}>
-- Joe is ${ages.Joe}
-- Fred is ${ages.Fred}
-- Julia is ${ages.Julia}</pre></div>
-
- <p>will print:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">- Joe is 30
-- Fred is 25
-- Julia is 18</pre></div>
-
- <p>Note that hash concatenation is not to be used for many
- repeated concatenations, like for adding items to a hash inside a
- loop. It's the same as with the <a href="#dgui_template_exp_sequenceop_cat">sequence
- concatenation</a>.</p>
-
-
-
-
-
-
-<h2 class="content-header header-section2" id="dgui_template_exp_arit">Arithmetical calculations</h2>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <p>This is the basic 4-function calculator arithmetic plus the
- modulus operator. So the operators are:</p>
-
- <ul>
- <li>
- Addition: <code class="inline-code">+</code>
- </li>
-
- <li>
- Subtraction: <code class="inline-code">-</code>
- </li>
-
- <li>
- Multiplication: <code class="inline-code">*</code>
- </li>
-
- <li>
- Division: <code class="inline-code">/</code>
- </li>
-
- <li>
- Modulus (remainder) of integer operands:
- <code class="inline-code">%</code>
- </li>
- </ul>
-
-
-
- <p>Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${100 - x * x}
-${x / 2}
-${12 % 10}</pre></div>
-
- <p>Assuming that <code class="inline-code">x</code> is 5, it will print:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">75
-2.5
-2</pre></div>
-
- <p>Both operands must be expressions which evaluate to a
- numerical value. So the example below will cause an error when
- FreeMarker tries to evaluate it, since <code class="inline-code">"5"</code> is a
- string and not the number 5:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${3 * "5"} <#-- WRONG! --></pre></div>
-
- <p>There is an exception to the above rule. The
- <code class="inline-code">+</code> operator, is used to <a href="#dgui_template_exp_stringop_interpolation">concatenate
- strings</a> as well. If on one side of <code class="inline-code">+</code> is a
- string and on the other side of <code class="inline-code">+</code> is a numerical
- value, then it will convert the numerical value to string (using the
- format appropriate for language of the page) and then use the
- <code class="inline-code">+</code> as string concatenation operator.
- Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${3 + "5"}</pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">35</pre></div>
-
- <p>Generally, FreeMarker never converts a string to a number
- automatically, but it may convert a number to a string
- automatically.</p>
-
- <p> People often want only the integer part of the result
- of a division (or of other calculations). This is possible with the
- <code class="inline-code">int</code> built-in. (Built-ins are explained <a href="#dgui_template_exp_builtin">later</a>):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${(x/2)?int}
-${1.1?int}
-${1.999?int}
-${-1.1?int}
-${-1.999?int}</pre></div>
-
- <p>Assuming that <code class="inline-code">x</code> is 5, it will print:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">2
-1
-1
--1
--1</pre></div>
-
- <p>Due to historical reasons, the <code class="inline-code">%</code> operator
- works by first truncating the operands to an integer number, and
- then returning the remainder of the division:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${12 % 5} <#-- Prints 2 -->
-${12.9 % 5} <#-- Prints 2 -->
-${12.1 % 5} <#-- Prints 2 -->
-
-${12 % 6} <#-- Prints 0 -->
-${12 % 6.9} <#-- Prints 0 --></pre></div>
-
- <p>The sign of the result of <code class="inline-code">%</code> is the same as
- the sign of the left hand operand, and its absolute value is the
- same as if both operands where positive:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${-12 % -5} <#-- Prints -2 -->
-${-12 % 5} <#-- Prints -2 -->
-${12 % -5} <#-- Prints 2 --></pre></div>
-
-
-
-
-
-<h2 class="content-header header-section2" id="dgui_template_exp_comparison">Comparison</h2>
-
-
-
-
- <p>Sometimes you want to know if two values are equal or not, or
- which value is the greater.</p>
-
- <p>To show concrete examples I will use the <code class="inline-code">if</code>
- directive here. The usage of <code class="inline-code">if</code> directive is:
- <code class="inline-code"><#if
- <em class="code-color">expression</em>>...</#if></code>,
- where expression must evaluate to a boolean value or else an error
- will abort the processing of the template. If the value of
- expression is <code class="inline-code">true</code> then the things between the
- begin and end-tag will be processed, otherwise they will be
- skipped.</p>
-
- <p>To test two values for equality you use <code class="inline-code">==</code>
- (or <code class="inline-code">=</code> as a <em>deprecated</em>
- alternative) To test two values for inequality you use
- <code class="inline-code">!=</code>. For example, assume that
- <code class="inline-code">user</code> is "Big Joe":</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#if <strong>user == "Big Joe"</strong>>
- It is Big Joe
-</#if>
-<#if <strong>user != "Big Joe"</strong>>
- It is not Big Joe
-</#if></pre></div>
-
- <p>The <code class="inline-code">user == "Big Joe"</code> expression in the
- <code class="inline-code"><#if ...></code> will evaluate to the boolean
- <code class="inline-code">true</code>, so the above will say "It is Big
- Joe".</p>
-
- <p>The expressions on both sides of the <code class="inline-code">==</code> or
- <code class="inline-code">!=</code> must evaluate to a scalar (not a sequence or
- hash). Furthermore, the two scalars must have the same type (i.e.
- strings can only be compared to strings and numbers can only be
- compared to numbers, etc.) or else an error will abort template
- processing. For example <code class="inline-code"><#if 1 == "1"></code> will
- cause an error. Note that FreeMarker does exact comparison, so
- string comparisons are case and white-space sensitive:
- <code class="inline-code">"x"</code> and <code class="inline-code">"x�"</code> and
- <code class="inline-code">"X"</code> are not equal values.</p>
-
- <p>For numerical and date, time and date-time values you can also
- use <code class="inline-code"><</code>, <code class="inline-code"><=</code>,
- <code class="inline-code">>=</code> and <code class="inline-code">></code>. You can't use
- them for strings! Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#if x <strong><=</strong> 12>
- x is less or equivalent with 12
-</#if></pre></div>
-
- <p>There's a problem with <code class="inline-code">>=</code> and
- <code class="inline-code">></code>. FreeMarker interprets the
- <code class="inline-code">></code> character as the closing character of the
- FTL tag. To prevent this, you can use <code class="inline-code">lt</code> instead
- of <code class="inline-code"><</code>, <code class="inline-code">lte</code> instead of
- <code class="inline-code"><=</code>, <code class="inline-code">gt</code> instead of
- <code class="inline-code">></code> and <code class="inline-code">gte</code> instead of
- <code class="inline-code">>=</code>, like in <code class="inline-code"><#if x gt
- y></code>. Another trick it to put the expression into <a href="#dgui_template_exp_parentheses">parentheses</a> like in
- <code class="inline-code"><#if (x > y)></code>, although it's considered
- to be less elegant.</p>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>FreeMarker supports some other alternatives too, but these
- are deprecated:</p>
-
- <ul>
- <li>
- <p>Writing <code class="inline-code">&gt;</code> and
- <code class="inline-code">&lt;</code> on the place of the problematic
- relation marks, like in: <code class="inline-code"><#if x &gt;
- y></code> or <code class="inline-code"><#if x &gt;=
- y></code> . Note that in general FTL does not support
- entity references (the
- <code class="inline-code">&<em class="code-color">...</em>;</code>
- things) in FTL tags; it's just an exception with the
- arithmetical comparisons.</p>
- </li>
-
- <li>
- <p><code class="inline-code">\lt</code>, <code class="inline-code">\lte</code>,
- <code class="inline-code">\gt</code> and <code class="inline-code">\gte</code> which are
- the same as the ones without the backslash</p>
- </li>
- </ul>
- </div>
-
-
-
-
-
-
-<h2 class="content-header header-section2" id="dgui_template_exp_logicalop">Logical operations</h2>
-
-
-
-
-
-
-
-
-
-
-
-
- <p>Just the usual logical operators:</p>
-
- <ul>
- <li>
- Logical or: <code class="inline-code">||</code>
- </li>
-
- <li>
- Logical and: <code class="inline-code">&&</code>
- </li>
-
- <li>
- Logical not: <code class="inline-code">!</code>
- </li>
- </ul>
-
- <p>The operators will work with boolean values only. Otherwise an
- error will abort the template processing.</p>
-
- <p>Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#if x < 12 <strong>&&</strong> color == "green">
- We have less than 12 things, and they are green.
-</#if>
-<#if <strong>!</strong>hot> <#-- here hot must be a boolean -->
- It's not hot.
-</#if></pre></div>
-
-
-
-
-
-<h2 class="content-header header-section2" id="dgui_template_exp_builtin">Built-ins</h2>
-
-
-
-
- <p>Built-ins are like methods that are added to the objects by
- FreeMarker. To prevent name clashes with actual methods and other
- sub-variables, instead of dot (<code class="inline-code">.</code>), you separate
- them from the parent object with question mark
- (<code class="inline-code">?</code>). For example, if you want to ensure that
- <code class="inline-code">path</code> has an initial <code class="inline-code">/</code> then you
- could write <code class="inline-code">path?ensure_starts_with('/')</code>. The
- Java object behind <code class="inline-code">path</code> (a
- <code class="inline-code">String</code> most certainly) doesn't have such method,
- FreeMarker adds it. For brevity, if the method has no parameters,
- you <em>must</em> omit the <code class="inline-code">()</code>, like,
- to get the length of <code class="inline-code">path</code>, you have to write
- <code class="inline-code">path?length</code>, <em>not</em>
- <code class="inline-code">path?length()</code>.</p>
-
- <p>The other reason why built-ins are crucial is that normally
- (though it depends on configuration settings), FreeMarker doesn't
- expose the Java API of the objects. So despite that Java's
- <code class="inline-code">String</code> has a <code class="inline-code">length()</code> method,
- it's hidden from the template, you <em>have to</em> use
- <code class="inline-code">path?length</code> instead. The advantage of that is
- that thus the template doesn't depend on the exactly type of the
- underlying Java objects. (Like <code class="inline-code">path</code> is maybe a
- <code class="inline-code">java.nio.Path</code> behind the scenes, but if the
- programmers has configure FreeMarker to expose
- <code class="inline-code">Path</code> objects as FTL strings, the template won't
- be aware of that, and <code class="inline-code">?length</code> will work, despite
- that <code class="inline-code">java.nio.Path</code> has no similar method.)</p>
-
- <p>You can find some of the <a href="dgui_quickstart_template.html#topic.commonlyUsedBuiltIns">most commonly used built-ins
- mentioned here</a>, and the <a href="ref_builtins.html">complete
- list of built-ins in the Reference</a>. For now, just a few of
- the more important ones:</p>
-
- <p>Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${testString?upper_case}
-${testString?html}
-${testString?upper_case?html}
-
-${testSequence?size}
-${testSequence?join(", ")}</pre></div>
-
- <p>Assuming that <code class="inline-code">testString</code> stores the string
- "Tom & Jerry", and testSequnce stores the strings
- "foo", "bar" and "baz", the
- output will be:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">TOM & JERRY
-Tom &amp; Jerry
-TOM &amp; JERRY
-
-3
-foo, bar, baz</pre></div>
-
- <p>Note the <code class="inline-code">test?upper_case?html</code> above. Since
- the result of <code class="inline-code">test?upper_case</code> is a string, you
- can apply the <code class="inline-code">html</code> built-in on it.</p>
-
- <p>Naturally, the left side of the built-in can be arbitrary
- expression, not just a variable name:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${testSeqence[1]?cap_first}
-${"horse"?cap_first}
-${(testString + " & Duck")?html}</pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">Bar
-Horse
-Tom &amp; Jerry &amp; Duck</pre></div>
-
-
-
-
-
-<h2 class="content-header header-section2" id="dgui_template_exp_methodcall">Method call</h2>
-
-
-
-
-
-
- <p>If you have a method then you can use the method call
- operation on it. The method call operation is a comma-separated list
- of expressions in parentheses. These values are called parameters.
- The method call operation passes these values to the method which
- will in turn return a result. This result will be the value of the
- whole method call expression.</p>
-
- <p>For example, assume the programmers have made available a
- method variable called <code class="inline-code">repeat</code>. You give a string
- as the first parameter, and a number as the second parameter, and it
- returns a string which repeats the first parameter the number of
- times specified by the second parameter.</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${repeat("Foo", 3)}</pre></div>
-
- <p>will print:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">FooFooFoo</pre></div>
-
- <p>Here <code class="inline-code">repeat</code> was evaluated to the method
- variable (according to how you <a href="#dgui_template_exp_var_toplevel">access top-level
- variables</a>) and then <code class="inline-code">("What", 3)</code> invoked
- that method.</p>
-
- <p>I would like to emphasize that method calls are just plain
- expressions, like everything else. So this:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${repeat(repeat("x", 2), 3) + repeat("Foo", 4)?upper_case}</pre></div>
-
- <p>will print this:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">xxxxxxFOOFOOFOOFOO</pre></div>
-
-
-
-
-
-<h2 class="content-header header-section2" id="dgui_template_exp_missing">Handling missing values</h2>
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>These operators exist since FreeMarker 2.3.7 (replacing the
- <code class="inline-code">default</code>, <code class="inline-code">exists</code> and
- <code class="inline-code">if_exists</code> built-ins).</p>
- </div>
-
-
-
-
-
-
-
-
-
-
-
-
- <p>As we explained earlier, an error will occur and abort the
- template processing if you try to access a missing variable. However
- two special operators can suppress this error, and handle the
- problematic situation. The handled variable can be top-level
- variable, hash subvariable, or sequence subvariable as well.
- Furthermore these operators handle the situation when a method call
- doesn't return a value <span class="marked-for-programmers">(from the
- viewpoint of Java programmers: it returns <code class="inline-code">null</code> or
- it's return type is <code class="inline-code">void</code>)</span>, so it's more
- correct to say that these operators handle missing values in
- general, rather than just missing variables.</p>
-
- <p><span class="marked-for-programmers">For those who know what's Java
- <code class="inline-code">null</code>, FreeMarker 2.3.<em>x</em>
- treats them as missing values. Simply, the template language doesn't
- know the concept of <code class="inline-code">null</code>. For example, if you
- have a bean that has a <code class="inline-code">maidenName</code> property, and
- the value of that property is <code class="inline-code">null</code>, then that's
- the same as if there were no such property at all, as far as the
- template is concerned (assuming you didn't configured FreeMarker to
- use some extreme object wrapper, that is). The result of a method
- call that returns <code class="inline-code">null</code> is also treated as a
- missing variable (again, assuming that you use some usual object
- wrapper). See more <a href="app_faq.html#faq_null">in the
- FAQ</a>.</span></p>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>If you wonder why is FreeMarker so picky about missing
- variables, <a href="app_faq.html#faq_picky_about_missing_vars">read this
- FAQ entry</a>.</p>
- </div>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="dgui_template_exp_missing_default">Default value operator</h3>
-
-
-
-
- <p>Synopsis:
- <code class="inline-code"><em class="code-color">unsafe_expr</em>!<em class="code-color">default_expr</em></code>
- or <code class="inline-code"><em class="code-color">unsafe_expr</em>!</code> or
- <code class="inline-code">(<em class="code-color">unsafe_expr</em>)!<em class="code-color">default_expr</em></code>
- or
- <code class="inline-code">(<em class="code-color">unsafe_expr</em>)!</code></p>
-
- <p>This operator allows you to specify a default value for the
- case when the value is missing.</p>
-
- <p>Example. Assume no variable called <code class="inline-code">mouse</code>
- is present:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${mouse!"No mouse."}
-<#assign mouse="Jerry">
-${mouse!"No mouse."}</pre></div>
-
- <p>The output will be:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">No mouse.
-Jerry</pre></div>
-
- <p>The default value can be any kind of expression, so it
- doesn't have to be a string. For example you can write
- <code class="inline-code">hits!0</code> or <code class="inline-code">colors!["red", "green",
- "blue"]</code>. There is no restriction regarding the
- complexity of the expression that specifies the default value, for
- example you can write: <code class="inline-code">cargo.weight!(item.weight *
- itemCount + 10)</code>.</p>
-
- <div class="callout warning">
- <strong class="callout-label">Warning!</strong>
-
- <p>If you have a composite expression after the
- <code class="inline-code">!</code>, like <code class="inline-code">1 + x</code>,
- <em>always</em> use parenthesses, like
- <code class="inline-code">${x!(1 + y)}</code> or <code class="inline-code">${(x!1) +
- y)}</code>, depending on which interpretation you meant.
- That's needed because due to a programming mistake in FreeMarker
- 2.3.x, the precedence of <code class="inline-code">!</code> (when it's used as
- default value operator) is very low at its right side. This
- means that, for example, <code class="inline-code">${x!1 + y}</code> is
- misinterpreted by FreeMarker as <code class="inline-code">${x!(1 + y)}</code>
- while it should mean <code class="inline-code">${(x!1) + y}</code>. This
- programming error will be fixed in FreeMarker 2.4, so you should
- not utilize this wrong behavior, or else your templates will
- break with FreeMarker 2.4!</p>
- </div>
-
-
- <p>If the default value is omitted, then it will be empty
- string and empty sequence and empty hash at the same time. (This
- is possible because FreeMarker allows multi-type values.) Note the
- consequence that you can't omit the default value if you want it
- to be <code class="inline-code">0</code> or <code class="inline-code">false</code>.
- Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">(${mouse!})
-<#assign mouse = "Jerry">
-(${mouse!})</pre></div>
-
- <p>The output will be:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">()
-(Jerry)</pre></div>
-
- <div class="callout warning">
- <strong class="callout-label">Warning!</strong>
-
- <p>Due to syntactical ambiguities <code class="inline-code"><@something
- a=x! b=y /></code> will be interpreted as
- <code class="inline-code"><@something a=x!(b=y) /></code>, that is, the
- <code class="inline-code">b=y</code> will be interpreted as a comparison that
- gives the default value for <code class="inline-code">x</code>, rather than
- the specification of the <code class="inline-code">b</code> parameter. To
- prevent this, write: <code class="inline-code"><@something a=(x!) b=y
- /></code></p>
- </div>
-
-
- <p>You can use this operator in two ways with non-top-level
- variables:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">product.color!"red"</pre></div>
-
- <p>This will handle if <code class="inline-code">color</code> is missing
- inside <code class="inline-code">product</code> (and returns
- <code class="inline-code">"red"</code> if so), but will not handle if
- <code class="inline-code">product</code> is missing. That is, the
- <code class="inline-code">product</code> variable itself must exist, otherwise
- the template processing will die with error.</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">(product.color)!&
<TRUNCATED>
[31/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/pgui_misc_servlet.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/pgui_misc_servlet.html b/builds/2.3.26-nightly/pgui_misc_servlet.html
deleted file mode 100644
index d75da3a..0000000
--- a/builds/2.3.26-nightly/pgui_misc_servlet.html
+++ /dev/null
@@ -1,691 +0,0 @@
-<!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>Using FreeMarker with servlets - 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="Using FreeMarker with servlets">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/pgui_misc_servlet.html">
-<link rel="canonical" href="http://freemarker.org/docs/pgui_misc_servlet.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="pgui.html"><span itemprop="name">Programmer's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_misc.html"><span itemprop="name">Miscellaneous</span></a></li><li class="step-3" itemprop="it
emListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_misc_servlet.html"><span itemprop="name">Using FreeMarker with servlets</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","Programmer\'s Guide","Miscellaneous","Using FreeMarker with servlets"];</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="pgui_misc_logging.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_misc_secureenv.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="pgui_misc_servlet" itemprop="headline">Using FreeMarker with servlets</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#pgui_misc_servlet_model2" data-menu-target="pgui_misc_servlet_model2">Using FreeMarker for "Model 2"</a></li><li><a class="page-menu-link" href="#pgui_misc_servlet_include" data-menu-target="pgui_misc_servlet_include">Including content from other web application
-resources</a></li><li><a class="page-menu-link" href="#autoid_63" data-menu-target="autoid_63">Using JSP custom tags in FTL</a></li><li><a class="page-menu-link" href="#autoid_64" data-menu-target="autoid_64">Embed FTL into JSP pages</a></li></ul> </div><a name="topic.servlet"></a><p>In a fundamental sense, using FreeMarker in the web application
- space is no different from anywhere else; FreeMarker writes its output
- to a <code class="inline-code">Writer</code> that you pass to the
- <code class="inline-code">Template.process</code> method, and it does not care if
- that <code class="inline-code">Writer</code> prints to the console or to a file or
- to the output stream of <code class="inline-code">HttpServletResponse</code>.
- FreeMarker knows nothing about servlets and Web; it just merges Java
- object with template files and generates text output from them. From
- here, it is up to you how to build a Web application around
- this.</p><p>But, probably you want to use FreeMarker with some already
- existing Web application framework. Many frameworks rely on the
- "Model 2" architecture, where JSP pages handle
- presentation. If you use such a framework (for example, <a href="http://jakarta.apache.org/struts">Apache Struts</a>),
- then read on. For other frameworks please refer to the documentation
- of the framework.</p>
-
-
-
-
-<h2 class="content-header header-section2" id="pgui_misc_servlet_model2">Using FreeMarker for "Model 2"</h2>
-
-
- <p>Many frameworks follow the strategy that the HTTP request is
- dispatched to user-defined "action" classes that put
- data into <code class="inline-code">ServletContext</code>,
- <code class="inline-code">HttpSession</code> and
- <code class="inline-code">HttpServletRequest</code> objects as attributes, and
- then the request is forwarded by the framework to a JSP page (the
- view) that will generate the HTML page using the data sent with the
- attributes. This is often referred as Model 2.</p>
-
- <p class="center-img"> <img src="figures/model2sketch.png" alt="Figure"> </p>
-
-
- <p>With these frameworks you can simply use FTL files instead of
- JSP files. But, since your servlet container (Web application
- server), unlike with JSP files, does not know out-of-the-box what to
- do with FTL files, a little extra configuring is needed for your Web
- application:</p>
-
- <div class="orderedlist"><ol type="1">
- <li>
- <p>Copy <code class="inline-code">freemarker.jar</code> (from the
- <code class="inline-code">lib</code> directory of the FreeMarker distribution)
- into the <code class="inline-code">WEB-INF/lib</code> directory of your Web
- application.</p>
- </li>
-
- <li>
- <p>Insert the following section to the
- <code class="inline-code">WEB-INF/web.xml</code> file of your Web application
- (and adjust it if required):</p>
- </li>
- </ol></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified"><servlet>
- <servlet-name>freemarker</servlet-name>
- <servlet-class><strong>freemarker.ext.servlet.FreemarkerServlet</strong></servlet-class>
-
- <!--
- Init-param documentation:
- <a href="http://freemarker.org/docs/api/freemarker/ext/servlet/FreemarkerServlet.html">http://freemarker.org/docs/api/freemarker/ext/servlet/FreemarkerServlet.html</a>
- -->
-
- <!-- FreemarkerServlet settings: -->
- <init-param>
- <param-name>TemplatePath</param-name>
- <param-value>/</param-value>
- </init-param>
- <init-param>
- <param-name>NoCache</param-name>
- <param-value>true</param-value>
- </init-param>
- <init-param>
- <param-name>ResponseCharacterEncoding</param-name>
- <!-- Use the output_encoding setting of FreeMarker: -->
- <param-value>fromTemplate</param-value>
- </init-param>
- <init-param>
- <param-name>ExceptionOnMissingTemplate</param-name>
- <!-- true => HTTP 500 on missing template, instead of HTTP 404. -->
- <param-value>true</param-value>
- </init-param>
-
- <!-- FreeMarker engine settings: -->
- <init-param>
- <param-name>incompatible_improvements</param-name>
- <param-value>2.3.25</param-value>
- <!--
- Recommended to set to a high value.
- See: http://freemarker.org/docs/pgui_config_incompatible_improvements.html
- -->
- </init-param>
- <init-param>
- <param-name>template_exception_handler</param-name>
- <!-- Use "html_debug" during development! -->
- <param-value>rethrow</param-value>
- </init-param>
- <init-param>
- <param-name>template_update_delay</param-name>
- <!-- Use 0 during development! Consider what value you need otherwise. -->
- <param-value>30 s</param-value>
- </init-param>
- <init-param>
- <param-name>default_encoding</param-name>
- <!-- The encoding of the template files: -->
- <param-value>UTF-8</param-value>
- </init-param>
- <init-param>
- <param-name>output_encoding</param-name>
- <!-- The encoding of the template output; Note that you must set
- "ResponseCharacterEncodring" to "fromTemplate" for this to work! -->
- <param-value>UTF-8</param-value>
- </init-param>
- <init-param>
- <param-name>locale</param-name>
- <!-- Influences number and date/time formatting, etc. -->
- <param-value>en_US</param-value>
- </init-param>
- <init-param>
- <param-name>number_format</param-name>
- <param-value>0.##########</param-value>
- </init-param>
-
- <load-on-startup>1</load-on-startup>
-</servlet>
-
-<servlet-mapping>
- <servlet-name>freemarker</servlet-name>
- <url-pattern><strong>*.ftl</strong></url-pattern>
- <!-- HTML and XML auto-escaped if incompatible_improvements >= 2.3.24: -->
- <url-pattern><strong>*.ftlh</strong></url-pattern>
- <url-pattern><strong>*.ftl</strong>x</url-pattern>
-</servlet-mapping>
-
-<em>...</em>
-
-<!--
- Prevent the visiting of MVC Views from outside the servlet container.
- RequestDispatcher.forward/include should, and will still work.
- Removing this may open security holes!
--->
-<security-constraint>
- <web-resource-collection>
- <web-resource-name>FreeMarker MVC Views</web-resource-name>
- <url-pattern>*.ftl</url-pattern>
- <url-pattern>*.ftlh</url-pattern>
- <url-pattern>*.ftlx</url-pattern>
- </web-resource-collection>
- <auth-constraint>
- <!-- Nobody is allowed to visit these directly. -->
- </auth-constraint>
-</security-constraint></pre></div>
-
- <p>After this, you can use FTL files (<code class="inline-code">*.ftl</code>)
- in the same manner as JSP (<code class="inline-code">*.jsp</code>) files. (Of
- course you can choose another extension besides
- <code class="inline-code">ftl</code>; it is just the convention)</p>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>How does it work? Let's examine how JSP-s work. Many servlet
- container handles JSP-s with a servlet that is mapped to the
- <code class="inline-code">*.jsp</code> request URL pattern. That servlet will
- receive all requests where the request URL ends with
- <code class="inline-code">.jsp</code>, find the JSP file based on the request
- URL, and internally compiles it to a <code class="inline-code">Servlet</code>,
- and then call the generated servlet to generate the page. The
- <code class="inline-code">FreemarkerServlet</code> mapped here to the
- <code class="inline-code">*.ftl</code> URL pattern does the same, except that
- FTL files are not compiled to <code class="inline-code">Servlet</code>-s, but to
- <code class="inline-code">Template</code> objects, and then the
- <code class="inline-code">process</code> method of <code class="inline-code">Template</code>
- will be called to generate the page.</p>
- </div>
-
-
- <p><a name="topic.servlet.scopeAttr"></a>For example, instead
- of this JSP file (note that it heavily uses Struts tag-libs to save
- designers from embedded Java monsters):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
-<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
-
-<html>
-<head><title>Acmee Products International</title>
-<body>
- <h1>Hello <bean:write name="user"/>!</h1>
- <p>These are our latest offers:
- <ul>
- <logic:iterate name="latestProducts" id="prod">
- <li><bean:write name="prod" property="name"/>
- for <bean:write name="prod" property="price"/> Credits.
- </logic:iterate>
- </ul>
-</body>
-</html></pre></div>
-
- <p>you can use this FTL file (use <code class="inline-code">ftl</code> file
- extension instead of <code class="inline-code">jsp</code>):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><html>
-<head><title>Acmee Products International</title>
-<body>
- <h1>Hello ${user}!</h1>
- <p>These are our latest offers:
- <ul>
- <#list latestProducts as prod>
- <li>${prod.name} for ${prod.price} Credits.
- </#list>
- </ul>
-</body>
-</html></pre></div>
-
- <div class="callout warning">
- <strong class="callout-label">Warning!</strong>
-
- <p>In FreeMarker <code class="inline-code"><html:form
- action="/query"><em class="code-color">...</em></html:form></code>
- is just static text, so it is printed to the output as is, like
- any other XML or HTML markup. JSP tags are just FreeMarker
- directives, nothing special, so you <em>use FreeMarker
- syntax</em> for calling them, not JSP syntax:
- <code class="inline-code"><@html.form
- action="/query"><em class="code-color">...</em></@html.form></code>.
- Note that in the FreeMarker syntax you <em>don't use
- <code class="inline-code">${<em class="code-color">...</em>}</code> in
- parameters</em> as in JSP, and you <em>don't quote the
- parameter values</em>. So this is
- <em>WRONG</em>:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#-- WRONG: -->
-<@my.jspTag color="${aVariable}" name="aStringLiteral"
- width="100" height=${a+b} /></pre></div>
-
- <p>and this is good:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#-- Good: -->
-<@my.jspTag color=aVariable name="aStringLiteral"
- width=100 height=a+b /></pre></div>
- </div>
-
-
- <p>In both templates, when you refer to <code class="inline-code">user</code>
- and <code class="inline-code">latestProduct</code>, it will first try to find a
- variable with that name that was created in the template (like
- <code class="inline-code">prod</code>; if you master JSP: a page scope attribute).
- If that fails, it will try to look up an attribute with that name in
- the <code class="inline-code">HttpServletRequest</code>, and if it is not there
- then in the <code class="inline-code">HttpSession</code>, and if it still doesn't
- find it then in the <code class="inline-code">ServletContext</code>. In the case
- of FTL this works because <code class="inline-code">FreemarkerServlet</code>
- builds the data-model from the attributes of the mentioned 3
- objects. That is, in this case the root hash is not a
- <code class="inline-code">java.util.Map</code> (as it was in some example codes in
- this manual), but
- <code class="inline-code">ServletContext</code>+<code class="inline-code">HttpSession</code>+<code class="inline-code">HttpServletRequest</code>;
- FreeMarker is pretty flexible about what the data-model is. So if
- you want to put variable <code class="inline-code">"name"</code> into the
- data-model, then you call
- <code class="inline-code">servletRequest.setAttribute("name", "Fred")</code>; this
- is the logic of Model 2, and FreeMarker adapts itself to it.</p>
-
- <p><code class="inline-code">FreemarkerServlet</code> also puts 3 hashes into
- the data-model, by which you can access the attributes of the 3
- objects directly. The hash variables are:
- <code class="inline-code">Request</code>, <code class="inline-code">Session</code>,
- <code class="inline-code">Application</code> (corresponds to
- <code class="inline-code">ServletContext</code>). It also exposes another hash
- named <code class="inline-code">RequestParameters</code> that provides access to
- the parameters of the HTTP request.</p>
-
- <p><code class="inline-code">FreemarkerServlet</code> has various init-params.
- It can be set up to load templates from an arbitrary directory, from
- the classpath, or relative to the Web application directory. You can
- set the charset used for templates, the default locale used by
- templates, what object wrapper do you want to use, etc.</p>
-
- <p><code class="inline-code">FreemarkerServlet</code> is easily tailored to
- special needs through subclassing. Say, if you need to have
- additional variables available in your data-model for all templates,
- subclass the servlet and override the
- <code class="inline-code">preTemplateProcess()</code> method to shove any
- additional data you need into the model before the template gets
- processed. Or subclass the servlet, and set these globally available
- variables as <a href="pgui_config_sharedvariables.html">shared
- variables</a> in the <code class="inline-code">Configuration</code>.</p>
-
- <p>For more information please read the Java API documentation of
- the class.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="pgui_misc_servlet_include">Including content from other web application
- resources</h2>
-
-
-
-
-
-
-
-
-
-
- <p>You can use the <code class="inline-code"><@include_page
- path="..."/></code> custom directive provided by the
- <code class="inline-code">FreemarkerServlet</code> (since 2.3.15) to include the
- contents of another web application resource into the output; this
- is often useful to integrate output of JSP pages (living alongside
- the FreeMarker templates in the same web server) into the FreeMarker
- template output. Using:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><@include_page path="path/to/some.jsp"/></pre></div>
-
- <p>is identical to using this tag in JSP:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><jsp:include page="path/to/some.jsp"></pre></div>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p><code class="inline-code"><@include_page ...></code> is not to be
- confused with <code class="inline-code"><#include ...></code>, as the last
- is for including FreeMarker templates without involving the
- Servlet container. An <code class="inline-code"><#include ...></code>-ed
- template shares the template processing state with the including
- template, such as the data-model and the template-language
- variables, while <code class="inline-code"><@include_page ...></code>
- starts an independent HTTP request processing.</p>
- </div>
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>Some Web Application Frameworks provide their own solution
- for this, in which case you possibly should use that instead. Also
- some Web Application Frameworks don't use
- <code class="inline-code">FreemarkerServlet</code>, so
- <code class="inline-code">include_page</code> is not available.</p>
- </div>
-
-
- <p>The path can be relative or absolute. Relative paths are
- interpreted relative to the URL of the current HTTP request (one
- that triggered the template processing), while absolute paths are
- absolute in the current servlet context (current web application).
- You can not include pages from outside the current web application.
- Note that you can include any page, not just a JSP page; we just
- used page with path ending in <code class="inline-code">.jsp</code> as an
- illustration.</p>
-
- <p>In addition to the <code class="inline-code">path</code> parameter, you can
- also specify an optional parameter named
- <code class="inline-code">inherit_params</code> with a boolean value (defaults to
- true when not specified) that specifies whether the included page
- will see the HTTP request parameters of the current request or
- not.</p>
-
- <p>Finally, you can specify an optional parameter named
- <code class="inline-code">params</code> that specifies new request parameters that
- the included page will see. In case inherited parameters are passed
- too, the values of specified parameters will get prepended to the
- values of inherited parameters of the same name. The value of
- <code class="inline-code">params</code> must be a hash, with each value in it
- being either a string, or a sequence of strings (if you need
- multivalued parameters). Here's a full example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><@include_page path="path/to/some.jsp" inherit_params=true params={"foo": "99", "bar": ["a", "b"]}/></pre></div>
-
- <p>This will include the page
- <code class="inline-code">path/to/some.jsp</code>, pass it all request parameters
- of the current request, except for "foo" and "bar", which will be
- set to "99" and multi-value of "a", "b", respectively. In case the
- original request already had values for these parameters, the new
- values will be prepended to the existing values. I.e. if "foo" had
- values "111" and "123", then it will now have values "99", "111",
- "123".</p>
-
- <p><span class="marked-for-programmers">It is in fact possible to pass
- non-string values for parameter values within
- <code class="inline-code">params</code>. Such a value will be converted to a
- suitable Java object first (i.e. a Number, a Boolean, a Date, etc.),
- and then its Java <code class="inline-code">toString()</code> method will be used
- to obtain the string value. It is better to not rely on this
- mechanism, though, and instead explicitly ensure that parameter
- values that aren't strings are converted to strings on the template
- level where you have control over formatting using the
- <code class="inline-code">?string</code> and <code class="inline-code">?c</code> built-ins.
- </span></p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_63">Using JSP custom tags in FTL</h2>
-
-
-
-
-
-
-
-
- <p><code class="inline-code">FreemarkerServlet</code> puts the
- <code class="inline-code">JspTaglibs</code> hash into the data-model, which you
- can use to access JSP taglibs. The JSP custom tags will be
- accessible as plain user-defined directives, and the custom EL
- functions (since FreeMarker 2.3.22) as methods. For example, for
- this JSP file:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><%@ page contentType="text/html;charset=ISO-8859-2" language="java"%>
-<%@ taglib prefix="e" uri="/WEB-INF/example.tld" %>
-<%@ taglib prefix="oe" uri="/WEB-INF/other-example.tld" %>
-<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
-<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
-
-<%-- Custom JSP tags and functions: --%>
-
-<e:someTag numParam="123" boolParam="true" strParam="Example" anotherParam="${someVar}">
- ...
-</e:someTag>
-
-<oe:otherTag />
-
-${e:someELFunction(1, 2)}
-
-
-<%-- JSTL: --%>
-
-<c:if test="${foo}">
- Do this
-</c:if>
-
-<c:choose>
- <c:when test="${x == 1}">
- Do this
- </c:when>
- <c:otherwise>
- Do that
- </c:otherwise>
-</c:choose>
-
-<c:forEach var="person" items="${persons}">
- ${person.name}
-</c:forEach>
-
-${fn:trim(bar)}</pre></div>
-
- <p>the about equivalent FTL is:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign e=JspTaglibs["/WEB-INF/example.tld"]>
-<#assign oe=JspTaglibs["/WEB-INF/other-example.tld"]>
-
-<#-- Custom JSP tags and functions: --#>
-
-<@e.someTag numParam=123 boolParam=true strParam="Example" anotherParam=someVar>
- ...
-</@e.someTag>
-
-<@oe.otherTag />
-
-${e.someELFunction(1, 2)}
-
-
-<#-- JSTL - Instead, use native FTL constructs: -->
-
-<#if foo>
- Do this
-</#if>
-
-<#if x == 1>
- Do this
-<#else>
- Do that
-</#if>
-
-<#list persons as person>
- ${person.name}
-</#list>
-
-${bar?trim}</pre></div>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>Parameter values don't use quotation and
- <code class="inline-code">"${<em class="code-color">...</em>}"</code> like in
- JSP. See more explanation later.</p>
- </div>
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p><code class="inline-code">JspTaglibs</code> is not a core FreeMarker
- feature; it only exists when the template is called through the
- <code class="inline-code">FreemarkerServlet</code>. That's because JSP
- tags/functions assume a servlet environment (FreeMarker doesn't),
- plus some Servlet concepts have to be emulated in the special
- FreeMarker data-model that <code class="inline-code">FreemarkerServlet</code>
- builds. Many modern frameworks use FreeMarker on a pure way, not
- through <code class="inline-code">FreemarkerServlet</code>.</p>
- </div>
-
-
- <p>Since JSP custom tags are written to operate in JSP
- environment, they assume that variables (often referred as
- "beans" in JSP world) are stored in 4 scopes: page
- scope, request scope, session scope and application scope. FTL has
- no such notation (the 4 scopes), but
- <code class="inline-code">FreemarkerServlet</code> provides emulated JSP
- environment for the custom JSP tags, which maintains correspondence
- between the "beans" of JSP scopes and FTL variables.
- For the custom JSP tags, the request, session and application scopes
- are exactly the same as with real JSP: the attributes of the
- <code class="inline-code">javax.servlet.ServletContext</code>,
- <code class="inline-code">HttpSession</code> and <code class="inline-code">ServletRequest</code>
- objects. From the FTL side you see these 3 scopes together as the
- data-model, as it was explained earlier. The page scope corresponds
- to the FTL global variables (see the <a href="ref_directive_global.html#ref.directive.global"><code>global</code>
- directive</a>). That is, if you create a variable with the
- <code class="inline-code">global</code> directive, it will be visible for the
- custom tags as page scope variable through the emulated JSP
- environment. Also, if a JSP-tag creates a new page scope variable,
- the result will be the same as if you create a variable with the
- <code class="inline-code">global</code> directive. Note that the variables in the
- data-model are not visible as page-scope attributes for the JSP
- tags, despite that they are globally visible, since the data-model
- corresponds to the request, session and application scopes, not the
- page-scope.</p>
-
- <p>On JSP pages you quote all attribute values, it does not mater
- if the type of the parameter is string or boolean or number. But
- since custom tags are accessible in FTL templates as user-defined
- FTL directives, you have to use the FTL syntax rules inside the
- custom tags, not the JSP rules. So when you specify the value of an
- "attribute", then on the right side of the
- <code class="inline-code">=</code> there is an <a href="dgui_template_exp.html">FTL expression</a>. Thus,
- <em>you must not quote boolean and numerical parameter
- values</em> (e.g. <code class="inline-code"><@tiles.insert
- page="/layout.ftl" flush=true/></code>), or they are
- interpreted as string values, and this will cause a type mismatch
- error when FreeMarker tries to pass the value to the custom tag that
- expects non-string value. Also note that, naturally, you can use any
- FTL expression as attribute value, such as variables, calculated
- values, etc. (e.g. <code class="inline-code"><@tiles.insert page=layoutName
- flush=foo && bar/></code>).</p>
-
- <p>FreeMarker does not rely on the JSP support of the servlet
- container in which it is run when it uses JSP taglibs since it
- implements its own lightweight JSP runtime environment. There is
- only one small detail to pay attention to: to enable the FreeMarker
- JSP runtime environment to dispatch events to JSP taglibs that
- register event listeners in their TLD files, you should add this to
- the <code class="inline-code">WEB-INF/web.xml</code> of your Web
- application:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified"><listener>
- <listener-class>freemarker.ext.jsp.EventForwarding</listener-class>
-</listener></pre></div>
-
- <p>Note that you can use JSP taglibs with FreeMarker even if the
- servlet container has no native JSP support, just make sure that the
- <code class="inline-code">javax.servlet.jsp.*</code> packages for JSP 2.0 (or
- later) are available to your Web application.</p>
-
- <p>As of this writing, JSP features up to JSP 2.1 are
- implemented, except the "tag files" feature of JSP 2 (i.e., custom
- JSP tags <em>implemented</em> in JSP language). The tag
- files had to be compiled to Java classes to be usable under
- FreeMarker.</p>
-
- <p><code class="inline-code">JspTaglibs[<em class="code-color">uri</em>]</code>
- will have to find the TLD for the URI specified, just like JSP's
- <code class="inline-code">@taglib</code> directive has to. For this, it implements
- the TLD discovery mechanism described in the JSP specification. See
- more there, but in a nutshell, it searches TLD-s in
- <code class="inline-code">WEB-INF/web.xml</code> <code class="inline-code">taglib</code>
- elements, at <code class="inline-code">WEB-INF/**/*.tld</code>, and in
- <code class="inline-code">WEB-INF/lib/*.{jar,zip}/META-INF/**/*.tld</code>.
- Additionally, it can discover TLD-s that are visible for the class
- loader even if they are outside the WAR structure, when you set that
- up with the <code class="inline-code">MetaInfTldSources</code> and/or
- <code class="inline-code">ClasspathTlds</code>
- <code class="inline-code">FreemarkerServlet</code> init-params (since 2.3.22). See
- the Java API documentation of <code class="inline-code">FreemarkerServlet</code>
- for the description of these. It's also possible to set these from
- Java system properties, which can be handy when you want to change
- these in the Eclipse run configuration without modifying the
- <code class="inline-code">web.xml</code>; again, see the
- <code class="inline-code">FreemarkerServlet</code> API docs.
- <code class="inline-code">FreemarkerServlet</code> also recognizes the
- <code class="inline-code">org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern</code>
- servlet context attribute, and adds the entries from it to
- <code class="inline-code">MetaInfTldSources</code>.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_64">Embed FTL into JSP pages</h2>
-
-
-
-
- <p>There is a taglib that allows you to put FTL fragments into
- JSP pages. The embedded FTL fragment can access the attributes
- (Beans) of the 4 JSP scopes. You can find a working example and the
- taglib in the FreeMarker distribution.</p>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="pgui_misc_logging.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_misc_secureenv.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/pgui_misc_var.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/pgui_misc_var.html b/builds/2.3.26-nightly/pgui_misc_var.html
deleted file mode 100644
index 2d36821..0000000
--- a/builds/2.3.26-nightly/pgui_misc_var.html
+++ /dev/null
@@ -1,113 +0,0 @@
-<!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>Variables, scopes - 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="Variables, scopes">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/pgui_misc_var.html">
-<link rel="canonical" href="http://freemarker.org/docs/pgui_misc_var.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="pgui.html"><span itemprop="name">Programmer's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_misc.html"><span itemprop="name">Miscellaneous</span></a></li><li class="step-3" itemprop="it
emListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_misc_var.html"><span itemprop="name">Variables, scopes</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","Programmer\'s Guide","Miscellaneous","Variables, scopes"];</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="pgui_misc.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_misc_charset.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="pgui_misc_var" itemprop="headline">Variables, scopes</h1>
-</div></div><p>This chapter explains what happens when a template tries to
- access a variable, and how the variables are stored.</p><p>When you call <code class="inline-code">Template.process</code> it will
- internally create an <code class="inline-code">Environment</code> object that will
- be in use until <code class="inline-code">process</code> returns. This object stores
- the runtime state of template processing. Among other things, it
- stores the variables created by the template with directives like
- <code class="inline-code">assign</code>, <code class="inline-code">macro</code>,
- <code class="inline-code">local</code> or <code class="inline-code">global</code>. It never tries
- to modify the data-model object that you pass to the
- <code class="inline-code">process</code> call, nor does it create or replace shared
- variables stored in the configuration.</p><p>When you try to read a variable, FreeMarker will seek the
- variable in this order, and stops when it finds a variable with the
- right name:</p><div class="orderedlist"><ol type="1">
- <li>
- <p>In the Environment:</p>
-
- <div class="orderedlist"><ol type="1">
- <li>
- <p>If you are in a loop, in the set of loop variables. Loop
- variables are the variables created by directives like
- <code class="inline-code">list</code>.</p>
- </li>
-
- <li>
- <p>If you are inside a macro, in the local variable set of
- the macro. Local variables can be created with the
- <code class="inline-code">local</code> directive. Also, the parameters of
- macros are local variables.</p>
- </li>
-
- <li>
- <p>In the current <a href="dgui_misc_namespace.html">namespace</a>. You can put
- variables into a namespace with the <code class="inline-code">assign</code>
- directive.</p>
- </li>
-
- <li>
- <p>In the set of variables created with
- <code class="inline-code">global</code> directive. FTL handles these
- variables as if they were normal members of the data-model.
- That is, they are visible in all namespaces, and you can
- access them as if they would be in the data-model.</p>
- </li>
- </ol></div>
- </li>
-
- <li>
- <p>In the data-model object you have passed to the
- <code class="inline-code">process</code> method</p>
- </li>
-
- <li>
- <p>In the set of shared variables stored in the
- <code class="inline-code">Configuration</code></p>
- </li>
- </ol></div><p>In practice, from the viewpoint of template authors these 6
- layers are only 4 layers, since from that viewpoint the last 3 layers
- (variables created with <code class="inline-code">global</code>, the actual
- data-model object, shared variables) together constitute the set of
- global variables.</p><p>Note that it is possible to get variables from a specific layer
- in FTL with <a href="ref_specvar.html">special
- variables</a>.</p><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="pgui_misc.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_misc_charset.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/pgui_misc_xml_legacy.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/pgui_misc_xml_legacy.html b/builds/2.3.26-nightly/pgui_misc_xml_legacy.html
deleted file mode 100644
index 6adc019..0000000
--- a/builds/2.3.26-nightly/pgui_misc_xml_legacy.html
+++ /dev/null
@@ -1,505 +0,0 @@
-<!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>Legacy XML wrapper implementation - 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="Legacy XML wrapper implementation">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/pgui_misc_xml_legacy.html">
-<link rel="canonical" href="http://freemarker.org/docs/pgui_misc_xml_legacy.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="pgui.html"><span itemprop="name">Programmer's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_misc.html"><span itemprop="name">Miscellaneous</span></a></li><li class="step-3" itemprop="it
emListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_misc_xml_legacy.html"><span itemprop="name">Legacy XML wrapper implementation</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","Programmer\'s Guide","Miscellaneous","Legacy XML wrapper implementation"];</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="pgui_misc_secureenv.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_misc_ant.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="pgui_misc_xml_legacy" itemprop="headline">Legacy XML wrapper implementation</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_65" data-menu-target="autoid_65">TemplateScalarModel</a></li><li><a class="page-menu-link" href="#autoid_66" data-menu-target="autoid_66">TemplateCollectionModel</a></li><li><a class="page-menu-link" href="#autoid_67" data-menu-target="autoid_67">TemplateSequenceModel</a></li><li><a class="page-menu-link" href="#autoid_68" data-menu-target="autoid_68">TemplateHashModel</a></li><li><a class="page-menu-link" href="#autoid_69" data-menu-target="autoid_69">TemplateMethodModel</a></li><li><a class="page-menu-link" href="#autoid_70" data-menu-target="autoid_70">Namespace handling</a></li></ul> </div> <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p><em>The legacy XML wrapper is deprecated.</em>
- FreeMarker 2.3 has introduced support for a new XML processing
- model. To support this, a new XML wrapper package was introduced,
- <code class="inline-code">freemarker.ext.dom</code>. For new usage, we encourage
- you to use that. It is documented in the part <a href="xgui.html">XML Processing Guide</a>.</p>
- </div>
-<p>The class <code class="inline-code">freemarker.ext.xml.NodeListModel</code>
- provides a template model for wrapping XML documents represented as
- node trees. Every node list can contain zero or more XML nodes
- (documents, elements, texts, processing instructions, comments, entity
- references, CDATA sections, etc.). The node list implements the
- following template model interfaces with the following
- semantics:</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_65">TemplateScalarModel</h2>
-
-
- <p>When used as a scalar, the node list will render the XML
- fragment that represents its contained nodes. This makes it handy
- for use in XML-to-XML transforming templates.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_66">TemplateCollectionModel</h2>
-
-
- <p>When used as a collection with <code class="inline-code">list</code>
- directive, it will simply enumerate its nodes. Every node will be
- returned as a new node list consisting of a single node.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_67">TemplateSequenceModel</h2>
-
-
- <p>When used as a sequence, it will return the i-th node as a new
- node list consisting of the single requested node. I.e. to return
- the 3rd <code class="inline-code"><chapter></code> element of the
- <code class="inline-code"><book></code> element, you'd use the following
- (note indexes are zero-based):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign thirdChapter = xmldoc.book.chapter[2]></pre></div>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_68">TemplateHashModel</h2>
-
-
- <p>When used as a hash, it is basically used to traverse
- children. That is, if you have a node list named
- <code class="inline-code">book</code> that wraps an element node with several
- chapters, then the <code class="inline-code">book.chapter</code> will yield a node
- list with all chapter elements of that book element. The at sign is
- used to refer to attributes: <code class="inline-code">book.@title</code> yields a
- node list with a single attribute node, that is the title attribute
- of the book element.</p>
-
- <p>It is important to realize the consequence that, for example,
- if <code class="inline-code">book</code> has no <code class="inline-code">chapter</code>-s then
- <code class="inline-code">book.chapter</code> is an empty sequence, so
- <code class="inline-code">xmldoc.book.chapter??</code> will
- <em>not</em> be <code class="inline-code">false</code>, it will be
- always <code class="inline-code">true</code>! Similarly,
- <code class="inline-code">xmldoc.book.somethingTotallyNonsense??</code> will not
- be <code class="inline-code">false</code> either. To check if there was no
- children found, use <code class="inline-code">xmldoc.book.chapter?size ==
- 0</code>.</p>
-
- <p>The hash defines several "magic keys" as well. All these keys
- start with an underscore. The most notable is the
- <code class="inline-code">_text</code> key which retrieves the text of the node:
- <code class="inline-code">${book.@title._text}</code> will render the value of the
- attribute into the template. Similarly, <code class="inline-code">_name</code>
- will retrieve the name of the element or attribute.
- <code class="inline-code">*</code> or <code class="inline-code">_allChildren</code> returns all
- direct children elements of all elements in the node list, while
- <code class="inline-code">@*</code> or <code class="inline-code">_allAttributes</code> returns
- all attributes of the elements in the node list. There are many more
- such keys; here's a detailed summary of all the hash keys:</p>
-
- <div class="table-responsive">
- <table class="table">
-
- <thead>
- <tr>
- <th>Key name</th>
-
-
- <th>Evaluates to</th>
-
- </tr>
-
- </thead>
-
-
- <tbody>
- <tr>
- <td><code class="inline-code">*</code> or <code class="inline-code">_children</code></td>
-
-
- <td>all direct element children of current nodes
- (non-recursive). Applicable to element and document
- nodes.</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">@*</code> or
- <code class="inline-code">_attributes</code></td>
-
-
- <td>all attributes of current nodes. Applicable to elements
- only.</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">@<em class="code-color">attributeName</em></code></td>
-
-
- <td>named attributes of current nodes. Applicable to elements,
- doctypes and processing instructions. On doctypes it supports
- attributes <code class="inline-code">publicId</code>,
- <code class="inline-code">systemId</code> and
- <code class="inline-code">elementName</code>. On processing instructions, it
- supports attributes <code class="inline-code">target</code> and
- <code class="inline-code">data</code>, as well as any other attribute name
- specified in data as <code class="inline-code">name="value"</code> pair. The
- attribute nodes for doctype and processing instruction are
- synthetic, and as such have no parent. Note, however that
- <code class="inline-code">@*</code> does NOT operate on doctypes or
- processing instructions.</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">_ancestor</code></td>
-
-
- <td>all ancestors up to root element (recursive) of current
- nodes. Applicable to same node types as
- <code class="inline-code">_parent</code>.</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">_ancestorOrSelf</code></td>
-
-
- <td>all ancestors of current nodes plus current nodes.
- Applicable to same node types as
- <code class="inline-code">_parent</code>.</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">_cname</code></td>
-
-
- <td>the canonical names of current nodes (namespace URI +
- local name), one string per node (non-recursive). Applicable
- to elements and attributes</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">_content</code></td>
-
-
- <td>the complete content of current nodes, including children
- elements, text, entity references, and processing instructions
- (non-recursive). Applicable to elements and documents.</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">_descendant</code></td>
-
-
- <td>all recursive descendant element children of current
- nodes. Applicable to document and element nodes.</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">_descendantOrSelf</code></td>
-
-
- <td>all recursive descendant element children of current nodes
- plus current nodes. Applicable to document and element
- nodes.</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">_document</code></td>
-
-
- <td>all documents the current nodes belong to. Applicable to
- all nodes except text.</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">_doctype</code></td>
-
-
- <td>doctypes of the current nodes. Applicable to document
- nodes only.</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">_filterType</code></td>
-
-
- <td>is a filter-by-type template method model. When called, it
- will yield a node list that contains only those current nodes
- whose type matches one of types passed as argument. You should
- pass arbitrary number of strings to this method containing the
- names of types to keep. Valid type names are: "attribute",
- "cdata", "comment", "document", "documentType", "element",
- "entity", "entityReference", "processingInstruction",
- "text".</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">_name</code></td>
-
-
- <td>the names of current nodes, one string per node
- (non-recursive). Applicable to elements and attributes
- (returns their local names), entities, processing instructions
- (returns its target), doctypes (returns its public ID)</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">_nsprefix</code></td>
-
-
- <td>the namespace prefixes of current nodes, one string per
- node (non-recursive). Applicable to elements and
- attributes</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">_nsuri</code></td>
-
-
- <td>the namespace URIs of current nodes, one string per node
- (non-recursive). Applicable to elements and attributes</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">_parent</code></td>
-
-
- <td>parent elements of current nodes. Applicable to element,
- attribute, comment, entity, processing instruction.</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">_qname</code></td>
-
-
- <td>the qualified names of current nodes in
- <code class="inline-code">[namespacePrefix:]localName</code> form, one
- string per node (non-recursive). Applicable to elements and
- attributes</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">_registerNamespace(prefix, uri)</code></td>
-
-
- <td>register a XML namespace with the specified prefix and URI
- for the current node list and all node lists that are derived
- from the current node list. After registering, you can use the
- <code class="inline-code">nodelist["prefix:localname"]</code> or
- <code class="inline-code">nodelist["@prefix:localname"]</code> syntaxes to
- reach elements and attributes whose names are
- namespace-scoped. Note that the namespace prefix need not
- match the actual prefix used by the XML document itself since
- namespaces are compared solely by their URI.</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">_text</code></td>
-
-
- <td>the text of current nodes, one string per node
- (non-recursive). Applicable to elements, attributes, comments,
- processing instructions (returns its data) and CDATA sections.
- The reserved XML characters ('<' and '&') are not
- escaped.</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">_type</code></td>
-
-
- <td>Returns a node list containing one string per node
- describing the type of the node. Possible node type names are:
- "attribute", "cdata", "comment", "document", "documentType",
- "element", "entity", "entityReference",
- "processingInstruction", "text". If the type of the node is
- unknown, returns "unknown".</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">_unique</code></td>
-
-
- <td>a copy of the current nodes that keeps only the first
- occurrence of every node, eliminating duplicates. Duplicates
- can occur in the node list by applying uptree-traversals
- <code class="inline-code">_parent</code>, <code class="inline-code">_ancestor</code>,
- <code class="inline-code">_ancestorOrSelf</code>, and
- <code class="inline-code">_document</code>. I.e.
- <code class="inline-code">foo._children._parent</code> will return a node
- list that has duplicates of nodes in foo - each node will have
- the number of occurrences equal to the number of its children.
- In these cases, use
- <code class="inline-code">foo._children._parent._unique</code> to eliminate
- duplicates. Applicable to all node types.</td>
-
- </tr>
-
-
- <tr>
- <td>any other key</td>
-
-
- <td>element children of current nodes with name matching the
- key. This allows for convenience child traversal in
- <code class="inline-code">book.chapter.title</code> style syntax. Note that
- <code class="inline-code">nodeset.childname</code> is technically equivalent
- to <code class="inline-code">nodeset("childname")</code>, but is both
- shorter to write and evaluates faster. Applicable to document
- and element nodes.</td>
-
- </tr>
-
- </tbody>
-
- </table>
- </div>
-
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_69">TemplateMethodModel</h2>
-
-
- <p>When used as a method model, it returns a node list that is
- the result of evaluating an XPath expression on the current contents
- of the node list. For this feature to work, you must have the
- <code class="inline-code">Jaxen</code> library in your classpath. For
- example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign firstChapter=xmldoc("//chapter[first()]")></pre></div>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_70">Namespace handling</h2>
-
-
- <p>For purposes of traversal of children elements that have
- namespace-scoped names, you can register namespace prefixes with the
- node list. You can do it either in Java, calling the</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">public void registerNamespace(String prefix, String uri);</pre></div>
-
- <p>method, or inside a template using the</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${<em>nodelist</em>._registerNamespace(<em>prefix</em>, <em>uri</em>)}</pre></div>
-
- <p>syntax. From there on, you can refer to children elements in
- the namespace denoted by the particular URI through the
- syntax</p>
-
-
-<pre class="metaTemplate"><code class="inline-code"><em class="code-color">nodelist</em>["<em class="code-color">prefix</em>:<em class="code-color">localName</em>"]</code></pre>
-
-
- <p>and</p>
-
-
-<pre class="metaTemplate"><code class="inline-code"><em class="code-color">nodelist</em>["@<em class="code-color">prefix</em>:<em class="code-color">localName</em>"]</code></pre>
-
-
- <p>as well as use these namespace prefixes in XPath expressions.
- Namespaces registered with a node list are propagated to all node
- lists that are derived from the original node list. Note also that
- namespaces are matched by their URI only, so you can safely use a
- prefix for a namespace inside your template that differs from the
- prefix in the actual XML document - a prefix is just a local alias
- for the URI both in the template and in the XML document.</p>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="pgui_misc_secureenv.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_misc_ant.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/pgui_quickstart.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/pgui_quickstart.html b/builds/2.3.26-nightly/pgui_quickstart.html
deleted file mode 100644
index b1188e8..0000000
--- a/builds/2.3.26-nightly/pgui_quickstart.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<!doctype html>
-<!-- Generated by FreeMarker/Docgen from DocBook -->
-<html lang="en" class="page-type-chapter">
-<head prefix="og: http://ogp.me/ns#">
-<meta charset="utf-8">
-<title>Getting Started with the Java API - 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="Getting Started with the Java API">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/pgui_quickstart.html">
-<link rel="canonical" href="http://freemarker.org/docs/pgui_quickstart.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="pgui.html"><span itemprop="name">Programmer's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_quickstart.html"><span itemprop="name">Getting Started</span></a></li></ul><div class="bookma
rks" 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","Programmer\'s Guide","Getting Started"];</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="pgui.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_quickstart_createconfiguration.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-chapter" id="pgui_quickstart" itemprop="headline">Getting Started</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Section Contents</div>
-<ul><li><a class="page-menu-link" href="pgui_quickstart_createconfiguration.html" data-menu-target="pgui_quickstart_createconfiguration">Create a configuration instance</a></li><li><a class="page-menu-link" href="pgui_quickstart_createdatamodel.html" data-menu-target="pgui_quickstart_createdatamodel">Create a data-model</a></li><li><a class="page-menu-link" href="pgui_quickstart_gettemplate.html" data-menu-target="pgui_quickstart_gettemplate">Get the template</a></li><li><a class="page-menu-link" href="pgui_quickstart_merge.html" data-menu-target="pgui_quickstart_merge">Merging the template with the data-model</a></li><li><a class="page-menu-link" href="pgui_quickstart_all.html" data-menu-target="pgui_quickstart_all">Putting all together</a></li></ul> </div><p>If you are new to FreeMarker, you should read at least the <a href="dgui_quickstart_basics.html">Template Author's Guide/Getting Started/Template + data-model = output</a> before this chapter.</p><div class="bottom-pagers-
wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="pgui.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_quickstart_createconfiguration.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>\u20132017
-<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>
[32/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/pgui_misc_charset.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/pgui_misc_charset.html b/builds/2.3.26-nightly/pgui_misc_charset.html
deleted file mode 100644
index 1958707..0000000
--- a/builds/2.3.26-nightly/pgui_misc_charset.html
+++ /dev/null
@@ -1,172 +0,0 @@
-<!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>Charset issues - 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="Charset issues">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/pgui_misc_charset.html">
-<link rel="canonical" href="http://freemarker.org/docs/pgui_misc_charset.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="pgui.html"><span itemprop="name">Programmer's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_misc.html"><span itemprop="name">Miscellaneous</span></a></li><li class="step-3" itemprop="it
emListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_misc_charset.html"><span itemprop="name">Charset issues</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","Programmer\'s Guide","Miscellaneous","Charset issues"];</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="pgui_misc_var.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_misc_multithreading.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="pgui_misc_charset" itemprop="headline">Charset issues</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_52" data-menu-target="autoid_52">The charset of the input</a></li><li><a class="page-menu-link" href="#autoid_53" data-menu-target="autoid_53">The charset of the output</a></li></ul> </div><p>FreeMarker, as most Java applications, works with "<a href="gloss.html#gloss.unicode">UNICODE</a> text" (UTF-16). Nonetheless,
- there are situations when it must deal with <a href="gloss.html#gloss.charset">charsets</a>, because it has to exchange
- data with the outer world that may uses various other charsets.</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_52">The charset of the input</h2>
-
-
- <p>When FreeMarker has to load a template file (or an unparsed
- text file), then it must know the charset of the file, since files
- are just raw byte sequences. You can use the
- <code class="inline-code">encoding</code> <a href="pgui_config_settings.html">setting</a> to specify the
- charset. This setting takes effect only when FreeMarker loads a
- template (parsed or unparsed) with the
- <code class="inline-code">getTemplate</code> method of
- <code class="inline-code">Configuration</code>. Note that the <a href="ref_directive_include.html#ref.directive.include"><code>include</code>
- directive</a> uses this method internally, so the value of the
- <code class="inline-code">encoding</code> setting is significant for an already
- loaded template if the template contains <code class="inline-code">include</code>
- directive call.</p>
-
- <p>The getter and setter method of the
- <code class="inline-code">encoding</code> setting is special in the first
- (configuration) layer. The getter method guesses the return value
- based on a <code class="inline-code">Locale</code> passed as parameter; it looks
- up the encoding in a table that maps locales to encodings (called
- encoding map), and if the locale was not found there, it returns the
- default encoding. You can fill the encoding map with the
- <code class="inline-code">setEncoding(Locale locale, String encoding)</code>
- method of the configuration; the encoding map is initially empty.
- The default encoding is initially the value of the
- <code class="inline-code">file.encoding</code> system property, but you always
- should set a default default with the
- <code class="inline-code">setDefaultEncoding</code> method, rather than relying on
- that. For new projects, a popular default encoding is
- <code class="inline-code">utf-8</code>.</p>
-
- <p>You can give the charset directly by overriding the
- <code class="inline-code">encoding</code> setting in the template layer or runtime
- environment layer (When you specify an encoding as the parameter of
- <code class="inline-code">getTemplate</code> method, you override the
- <code class="inline-code">encoding</code> setting in the template layer.). If you
- don't override it, the effective value will be what the
- <code class="inline-code">configuration.getEncoding(Locale)</code> method returns
- for the effective value of the <code class="inline-code">locale</code>
- setting.</p>
-
- <p>Also, instead of relying on this charset guessing mechanism,
- you can specify the charset of the template in the template file
- itself, with the <a href="ref_directive_ftl.html#ref.directive.ftl"><a href="ref_directive_ftl.html#ref.directive.ftl"><code>ftl</code></a>
- directive</a>, like <code class="inline-code"><#ftl
- encoding="utf-8"></code>.</p>
-
- <p>Note that the charset of the template is independent from the
- charset of the output that the tempalte generates (unless the
- enclosing software deliberately sets the output charset to the same
- as the template charset).</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_53">The charset of the output</h2>
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>The <code class="inline-code">output_encoding</code> setting/variable and
- the <a href="ref_builtins_string.html#ref_builtin_url"><code>url</code>
- built-in</a> is available since FreeMarker 2.3.1. It doesn't
- exist in 2.3.</p>
- </div>
-
-
- <p>In principle FreeMarker does not deal with the charset
- of the output, since it writes the output to a
- <code class="inline-code">java.io.Writer</code>. Since the
- <code class="inline-code">Writer</code> is made by the software that encapsulates
- FreeMarker (such as a Web application framework), the output charset
- is controlled by the encapsulating software. Still, FreeMarker has a
- setting called <code class="inline-code">output_encoding</code> (starting from
- FreeMarker version 2.3.1). The enclosing software should set this
- setting (to the charset that the <code class="inline-code">Writer</code> uses), to
- inform FreeMarker what charset is used for the output (otherwise
- FreeMarker can't find it out). Some features, such as the <a href="ref_builtins_string.html#ref_builtin_url"><code>url</code> built-in</a>,
- and the <a href="ref_specvar.html"><code>output_encoding</code> special
- variable</a> utilize this information. Thus, if the enclosing
- software doesn't set this setting then FreeMarker features that need
- to know the output charset can't be used.</p>
-
- <p>If you write software that will use FreeMarker, you may wonder
- what output charset should you choose. Of course it depends on the
- consumer of the FreeMarker output, but if the consumer is flexible
- regarding this question, then the common practice is either using
- the charset of the template file for the output, or using UTF-8.
- Using UTF-8 is usually a better practice, because arbitrary text may
- comes from the data-model, which then possibly contains characters
- that couldn't be encoded with the charset of the template.</p>
-
- <p>FreeMarker settings can be set for each individual template
- processing if you use
- <code class="inline-code">Template.createProcessingEnvironment(<em class="code-color">...</em>)</code>
- plus
- <code class="inline-code">Environment.process(<em class="code-color">...</em>)</code>
- instead of
- <code class="inline-code">Template.process(<em class="code-color">...</em>)</code>.
- Thus, you can set the <code class="inline-code">output_encoding</code> setting for
- each template execution independently:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">Writer w = new OutputStreamWriter(out, outputCharset);
-Environment env = template.createProcessingEnvironment(dataModel, w);
-env.setOutputEncoding(outputCharset);
-env.process();</pre></div>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="pgui_misc_var.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_misc_multithreading.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/pgui_misc_jythonwrapper.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/pgui_misc_jythonwrapper.html b/builds/2.3.26-nightly/pgui_misc_jythonwrapper.html
deleted file mode 100644
index b29ad5b..0000000
--- a/builds/2.3.26-nightly/pgui_misc_jythonwrapper.html
+++ /dev/null
@@ -1,133 +0,0 @@
-<!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>Jython wrapper - 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="Jython wrapper">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/pgui_misc_jythonwrapper.html">
-<link rel="canonical" href="http://freemarker.org/docs/pgui_misc_jythonwrapper.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="pgui.html"><span itemprop="name">Programmer's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_misc.html"><span itemprop="name">Miscellaneous</span></a></li><li class="step-3" itemprop="it
emListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_misc_jythonwrapper.html"><span itemprop="name">Jython wrapper</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","Programmer\'s Guide","Miscellaneous","Jython wrapper"];</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="pgui_misc_ant.html"><span>Previous</span></a><a class="paging-arrow next" href="ref.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="pgui_misc_jythonwrapper" itemprop="headline">Jython wrapper</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_71" data-menu-target="autoid_71">TemplateHashModel functionality</a></li><li><a class="page-menu-link" href="#autoid_72" data-menu-target="autoid_72">TemplateScalarModel functionality</a></li><li><a class="page-menu-link" href="#autoid_73" data-menu-target="autoid_73">TemplateBooleanModel functionality</a></li><li><a class="page-menu-link" href="#autoid_74" data-menu-target="autoid_74">TemplateNumberModel functionality</a></li><li><a class="page-menu-link" href="#autoid_75" data-menu-target="autoid_75">TemplateSequenceModel functionality</a></li></ul> </div><p>The <code class="inline-code">freemarker.ext.jython</code> package consists of
- models that enable any Jython object to be used as a
- <code class="inline-code">TemplateModel</code>. In the very basic case, you only
- need to call the</p>
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">public TemplateModel wrap(Object obj);</pre></div><p>method of the
- <code class="inline-code">freemarker.ext.jython.JythonWrapper</code> class. This
- method will wrap the passed object into an appropriate
- <code class="inline-code">TemplateModel</code>. Below is a summary of the properties
- of returned model wrappers. Let's assume that the model that resulted
- from the <code class="inline-code">JythonWrapper</code> call on object
- <code class="inline-code">obj</code> is named <code class="inline-code">model</code> in the
- template model root for the sake of the following discussion.</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_71">TemplateHashModel functionality</h2>
-
-
- <p><code class="inline-code">PyDictionary</code> and
- <code class="inline-code">PyStringMap</code> will be wrapped into a hash model.
- Key lookups are mapped to the <code class="inline-code">__finditem__</code>
- method; if an item is not found, a model for <code class="inline-code">None</code>
- is returned.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_72">TemplateScalarModel functionality</h2>
-
-
- <p>Every python object will implement
- <code class="inline-code">TemplateScalarModel</code> whose
- <code class="inline-code">getAsString()</code> method simply delegates to
- <code class="inline-code">toString()</code>.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_73">TemplateBooleanModel functionality</h2>
-
-
- <p>Every python object will implement
- <code class="inline-code">TemplateBooleanModel</code> whose
- <code class="inline-code">getAsBoolean()</code> method simply delegates to
- <code class="inline-code">__nonzero__()</code> in accordance with Python semantics
- of true/false.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_74">TemplateNumberModel functionality</h2>
-
-
- <p>Model wrappers for <code class="inline-code">PyInteger</code>,
- <code class="inline-code">PyLong</code>, and <code class="inline-code">PyFloat</code> objects
- implement <code class="inline-code">TemplateNumberModel</code> whose
- <code class="inline-code">getAsNumber()</code> method returns
- <code class="inline-code">__tojava__(java.lang.Number.class)</code>.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_75">TemplateSequenceModel functionality</h2>
-
-
- <p>Model wrappers for all classes that extend
- <code class="inline-code">PySequence</code> will implement
- <code class="inline-code">TemplateSequenceModel</code> and thus their elements
- will be accessible by index using the <code class="inline-code">model[i]</code>
- syntax, which will delegate to <code class="inline-code">__finditem__(i)</code>.
- You can also query the length of the array or the size of the list
- using the <code class="inline-code">model?size</code> built-in, which will
- delegate to <code class="inline-code">__len__()</code>.</p>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="pgui_misc_ant.html"><span>Previous</span></a><a class="paging-arrow next" href="ref.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/pgui_misc_logging.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/pgui_misc_logging.html b/builds/2.3.26-nightly/pgui_misc_logging.html
deleted file mode 100644
index 6a0fce1..0000000
--- a/builds/2.3.26-nightly/pgui_misc_logging.html
+++ /dev/null
@@ -1,239 +0,0 @@
-<!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>Logging - 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="Logging">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/pgui_misc_logging.html">
-<link rel="canonical" href="http://freemarker.org/docs/pgui_misc_logging.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="pgui.html"><span itemprop="name">Programmer's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_misc.html"><span itemprop="name">Miscellaneous</span></a></li><li class="step-3" itemprop="it
emListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_misc_logging.html"><span itemprop="name">Logging</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","Programmer\'s Guide","Miscellaneous","Logging"];</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="pgui_misc_beanwrapper.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_misc_servlet.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="pgui_misc_logging" itemprop="headline">Logging</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_61" data-menu-target="autoid_61">Logging library selection</a></li><li><a class="page-menu-link" href="#autoid_62" data-menu-target="autoid_62">Logging categories</a></li></ul> </div>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_61">Logging library selection</h2>
-
-
- <p>Is short, the recommended setup in contemporary application
- (as of 2015) is using SLF4J API for logging everywhere. To get
- FreeMarker 2.3.x. to use SLF4J, simply add the
- <code class="inline-code">org.slf4j:log4j-over-slf4j</code> dependency to your
- project, and ensure that <code class="inline-code">log4j:log4j</code> isn't
- present. (Starting from FreeMarker 2.4.x you don't need
- <code class="inline-code">log4j-over-slf4j</code> anymore, though it does no harm
- either.)</p>
-
- <p>Read on if you are curious about the details, or if you can't
- use SLF4J...</p>
-
- <p>FreeMarker integrates with the following logging libraries:
- <a href="http://www.slf4j.org/">SLF4J</a>, <a href="http://commons.apache.org/logging/">Apache Commons
- Logging</a>, <a href="http://jakarta.apache.org/log4j">Log4J</a> 1.x, <a href="http://jakarta.apache.org/avalon/logkit">Avalon
- LogKit</a>, and <a href="http://java.sun.com/j2se/1.4/docs/api/java/util/logging/package-summary.html"><code>java.util.logging</code></a>.
- By default, FreeMarker will look for the these logging libraries in
- the following order, and will automatically use the first one it
- finds (in 2.3.x): Log4J (will use SLF4J instead if it's a
- properly installed <code class="inline-code">log4j-over-slf4j</code>, since
- 2.3.22), Apache Avalon LogKit, <code class="inline-code">java.util.logging</code>.
- As you can see, Log4j has the highest priority. The presence of
- Log4j is simply detected from the presence of the
- <code class="inline-code">org.apache.log4j.Logger</code> class, which means that
- Log4j redirections like <code class="inline-code">log4j-over-slf4j</code> or
- <code class="inline-code">log4j-1.2-api</code> will also get the highest
- priority.</p>
-
- <p>Prior to FreeMarker 2.4, SLF4J and Apache Commons Logging
- aren't searched automatically due to backward compatibility
- constraints. But if you have
- <code class="inline-code">org.slf4j:log4j-over-slf4j</code> properly installed
- (means, you have no real Log4j in your class path, and SLF4J has a
- backing implementation like <code class="inline-code">logback-classic</code>),
- then FreeMarker will use the SLF4J API directly instead of the Log4j
- API (since FreeMarker 2.3.22).</p>
-
- <p>Note that a similar trick can be applied for logging into
- Log4j2: If <code class="inline-code">org.apache.logging.log4j:log4j-1.2-api</code>
- is present, FreeMarker 2.3.x will pick that as it looks like Log4j,
- but all the messages will actually go to Log4j2.</p>
-
- <p>If the auto detection doesn't give you the result that you
- want, you can set the
- <code class="inline-code">org.freemarker.loggerLibrary</code> system property to
- select a logger library explicitly (since 2.3.22), like:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">java <em>...</em> -Dorg.freemarker.loggerLibrary=SLF4J</pre></div>
-
- <p>The supported system property values are:
- <code class="inline-code">SLF4J</code>, <code class="inline-code">CommonsLogging</code>,
- <code class="inline-code">JUL</code> (for <code class="inline-code">java.util.logging</code>),
- <code class="inline-code">Avalon</code>, <code class="inline-code">auto</code> (the default
- behavior), <code class="inline-code">none</code> (disables logging).</p>
-
- <p>Note that for reliable operation, the system property should
- be set when the JVM starts (like above), not later from Java
- code.</p>
-
- <p>Using SLF4J is recommended, as it works best with FreeMarker,
- and also because it will be the highest priority auto detected
- logger starting from FreeMarker 2.4.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_62">Logging categories</h2>
-
-
- <p>All log messages produced by FreeMarker are logged with a
- logger category that starts with <code class="inline-code">freemarker.</code>. The
- currently used logger categories are:</p>
-
- <div class="table-responsive">
- <table class="table">
-
- <thead>
- <tr>
- <th>Log category name</th>
-
-
- <th>Purpose</th>
-
- </tr>
-
- </thead>
-
-
- <tbody>
- <tr>
- <td><code class="inline-code">freemarker.beans</code></td>
-
-
- <td>Logs messages of the Beans wrapper module.</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">freemarker.cache</code></td>
-
-
- <td>Logs messages related to template loading and
- caching.</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">freemarker.runtime</code></td>
-
-
- <td>Logs messages related to template execution that doesn't
- fit any of the more specific categories. Most importantly, it
- logs template exceptions thrown during template processing
- (however that should be disabled in modern application; see
- later).</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">freemarker.runtime.attempt</code></td>
-
-
- <td>Logs template exceptions thrown during template processing
- and caught by
- <code class="inline-code">attempt</code>/<code class="inline-code">recover</code>
- directives, with DEBUG severity. Note that such exceptions
- will be still also logged with their normal logger (like
- <code class="inline-code">freemarker.runtime</code>).</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">freemarker.servlet</code></td>
-
-
- <td>Logs messages of the <code class="inline-code">FreemarkerServlet</code>
- class.</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">freemarker.jsp</code></td>
-
-
- <td>Logs messages of the FreeMarker JSP support.</td>
-
- </tr>
-
- </tbody>
-
- </table>
- </div>
-
-
- <p>One quirk relating this is that FreeMarker will log exceptions
- during template execution under the
- <code class="inline-code">freemarker.runtime</code> category even if the exception
- continues propagating and so eventually will be thrown by
- <code class="inline-code">Template.process</code> or
- <code class="inline-code">Environment.process</code> anyway. (Those are the API
- calls with which the template was invoked from the application or
- the application framework.) Well behaving applications log the
- exceptions thrown at them, or rarely, handle them and deliberately
- don't want to log them. But as FreeMarker has already logged that
- exception, you will end up one more log entry than expected. To fix
- that (since 2.3.22), set the
- <code class="inline-code">log_template_exceptions</code>
- (<code class="inline-code">Configurable.setLogTemplateExceptions(boolean)</code>)
- setting to <code class="inline-code">false</code>.</p>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="pgui_misc_beanwrapper.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_misc_servlet.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/pgui_misc_multithreading.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/pgui_misc_multithreading.html b/builds/2.3.26-nightly/pgui_misc_multithreading.html
deleted file mode 100644
index 1e6d2f0..0000000
--- a/builds/2.3.26-nightly/pgui_misc_multithreading.html
+++ /dev/null
@@ -1,73 +0,0 @@
-<!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>Multithreading - 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="Multithreading">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/pgui_misc_multithreading.html">
-<link rel="canonical" href="http://freemarker.org/docs/pgui_misc_multithreading.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="pgui.html"><span itemprop="name">Programmer's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_misc.html"><span itemprop="name">Miscellaneous</span></a></li><li class="step-3" itemprop="it
emListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_misc_multithreading.html"><span itemprop="name">Multithreading</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","Programmer\'s Guide","Miscellaneous","Multithreading"];</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="pgui_misc_charset.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_misc_beanwrapper.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="pgui_misc_multithreading" itemprop="headline">Multithreading</h1>
-</div></div><p>In a multithreaded environment <code class="inline-code">Configuration</code>
- instances, <code class="inline-code">Template</code> instances and data-models
- should be handled as immutable (read-only) objects. That is, you
- create and initialize them (for example with
- <code class="inline-code">set<em class="code-color">...</em></code> methods), and
- then you don't modify them later (e.g. you don't call
- <code class="inline-code">set<em class="code-color">...</em></code>). This allows us
- to avoid expensive synchronized blocks in a multithreaded environment.
- Beware with <code class="inline-code">Template</code> instances; when you get a
- <code class="inline-code">Template</code> instance with
- <code class="inline-code">Configuration.getTemplate</code>, you may get an instance
- from the template cache that is already used by other threads, so do
- not call its <code class="inline-code">set<em class="code-color">...</em></code>
- methods (calling <code class="inline-code">process</code> is of course fine).</p><p>The above restrictions do not apply if you access all objects
- from the <em>same</em> single thread only.</p><p>It is impossible to modify the data-model object or a <a href="pgui_config_sharedvariables.html">shared variable</a> with FTL,
- unless you put methods (or other objects) into the data-model that do
- that. We discourage you from writing methods that modify the
- data-model object or the shared variables. Try to use variables that
- are stored in the environment object instead (this object is created
- for a single <code class="inline-code">Template.process</code> call to store the
- runtime state of processing), so you don't modify data that are
- possibly used by multiple threads. For more information read: <a href="pgui_misc_var.html">Variables, scopes</a></p><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="pgui_misc_charset.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_misc_beanwrapper.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/pgui_misc_secureenv.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/pgui_misc_secureenv.html b/builds/2.3.26-nightly/pgui_misc_secureenv.html
deleted file mode 100644
index 3f5a966..0000000
--- a/builds/2.3.26-nightly/pgui_misc_secureenv.html
+++ /dev/null
@@ -1,85 +0,0 @@
-<!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>Configuring security policy for FreeMarker - 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="Configuring security policy for FreeMarker">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/pgui_misc_secureenv.html">
-<link rel="canonical" href="http://freemarker.org/docs/pgui_misc_secureenv.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="pgui.html"><span itemprop="name">Programmer's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_misc.html"><span itemprop="name">Miscellaneous</span></a></li><li class="step-3" itemprop="it
emListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_misc_secureenv.html"><span itemprop="name">Configuring security policy for FreeMarker</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","Programmer\'s Guide","Miscellaneous","Configuring security policy for FreeMarker"];</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="pgui_misc_servlet.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_misc_xml_legacy.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="pgui_misc_secureenv" itemprop="headline">Configuring security policy for FreeMarker</h1>
-</div></div><p>When FreeMarker is used in a Java virtual machine with a
- security manager installed, you have to grant it few permissions to
- ensure it operates properly. Most notably, you need these entries to
- your security policy file for
- <code class="inline-code">freemarker.jar</code>:</p>
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">grant codeBase "file:/path/to/freemarker.jar"
-{
- permission java.util.PropertyPermission "file.encoding", "read";
- permission java.util.PropertyPermission "freemarker.*", "read";
-}</pre></div><p>Additionally, if you are loading templates from a directory, you
- need to give FreeMarker permissions to read files from that directory
- using the following permission:</p>
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">grant codeBase "file:/path/to/freemarker.jar"
-{
- ...
- permission java.io.FilePermission "/path/to/templates/-", "read";
-}</pre></div><p>Finally, if you're just using the default template loading
- mechanism which loads templates from the current directory, then
- specify these permissions additionally: (note that the expression
- <code class="inline-code">${user.dir}</code> will be evaluated at run time by the
- policy interpreter, pretty much as if it were a FreeMarker
- template)</p>
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">
-grant codeBase "file:/path/to/freemarker.jar"
-{
- ...
- permission java.util.PropertyPermission "user.dir", "read";
- permission java.io.FilePermission "${user.dir}/-", "read";
-}</pre></div><p>Naturally, if you're running under Windows, use double backslash
- instead of a single slash for separating directory components in
- paths.</p><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="pgui_misc_servlet.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_misc_xml_legacy.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>\u20132017
-<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>
[30/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/pgui_quickstart_all.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/pgui_quickstart_all.html b/builds/2.3.26-nightly/pgui_quickstart_all.html
deleted file mode 100644
index 608bead..0000000
--- a/builds/2.3.26-nightly/pgui_quickstart_all.html
+++ /dev/null
@@ -1,142 +0,0 @@
-<!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>Putting all together - 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="Putting all together">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/pgui_quickstart_all.html">
-<link rel="canonical" href="http://freemarker.org/docs/pgui_quickstart_all.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="pgui.html"><span itemprop="name">Programmer's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_quickstart.html"><span itemprop="name">Getting Started</span></a></li><li class="step-3" item
prop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_quickstart_all.html"><span itemprop="name">Putting all together</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","Programmer\'s Guide","Getting Started","Putting all together"];</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="pgui_quickstart_merge.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_datamodel.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="pgui_quickstart_all" itemprop="headline">Putting all together</h1>
-</div></div><p>This is a working source file assembled from the previous
- fragments. Don't forget to put <code class="inline-code">freemarker.jar</code> into
- the <code class="inline-code">CLASSPATH</code>.</p>
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">import freemarker.template.*;
-import java.util.*;
-import java.io.*;
-
-public class Test {
-
- public static void main(String[] args) throws Exception {
-
- /* ------------------------------------------------------------------------ */
- /* You should do this ONLY ONCE in the whole application life-cycle: */
-
- /* Create and adjust the configuration singleton */
- Configuration cfg = new Configuration(Configuration.VERSION_2_3_25);
- cfg.setDirectoryForTemplateLoading(new File("<em>/where/you/store/templates</em>"));
- cfg.setDefaultEncoding("UTF-8");
- cfg.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);
- cfg.setLogTemplateExceptions(false);
-
- /* ------------------------------------------------------------------------ */
- /* You usually do these for MULTIPLE TIMES in the application life-cycle: */
-
- /* Create a data-model */
- Map root = new HashMap();
- root.put("user", "Big Joe");
- Product latest = new Product();
- latest.setUrl("products/greenmouse.html");
- latest.setName("green mouse");
- root.put("latestProduct", latest);
-
- /* Get the template (uses cache internally) */
- Template temp = cfg.getTemplate("test.ftlh");
-
- /* Merge data-model with template */
- Writer out = new OutputStreamWriter(System.out);
- temp.process(root, out);
- // Note: Depending on what `out` is, you may need to call `out.close()`.
- // This is usually the case for file output, but not for servlet output.
- }
-}</pre></div> <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>I have suppressed the exceptions for the sake of simplicity.
- Don't do it in real products.</p>
- </div>
-<p>For the sake completeness, here's the the Product class used in
- the data model:</p>
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">/**
- * Product bean; note that it must be a public class!
- */
-public class Product {
-
- private String url;
- private String name;
-
- // As per the JavaBeans spec., this defines the "url" bean property
- // It must be public!
- public String getUrl() {
- return url;
- }
-
- public void setUrl(String url) {
- this.url = url;
- }
-
- // As per the JavaBean spec., this defines the "name" bean property
- // It must be public!
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
-}</pre></div><p>and the template:</p>
-
-<div class="code-wrapper"><pre class="code-block code-template"><html>
-<head>
- <title>Welcome!</title>
-</head>
-<body>
- <h1>Welcome ${user}!</h1>
- <p>Our latest product:
- <a href="${latestProduct.url}">${latestProduct.name}</a>!
-</body>
-</html></pre></div><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="pgui_quickstart_merge.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_datamodel.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/pgui_quickstart_createconfiguration.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/pgui_quickstart_createconfiguration.html b/builds/2.3.26-nightly/pgui_quickstart_createconfiguration.html
deleted file mode 100644
index df95747..0000000
--- a/builds/2.3.26-nightly/pgui_quickstart_createconfiguration.html
+++ /dev/null
@@ -1,100 +0,0 @@
-<!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>Create a configuration instance - 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="Create a configuration instance">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/pgui_quickstart_createconfiguration.html">
-<link rel="canonical" href="http://freemarker.org/docs/pgui_quickstart_createconfiguration.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="pgui.html"><span itemprop="name">Programmer's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_quickstart.html"><span itemprop="name">Getting Started</span></a></li><li class="step-3" item
prop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_quickstart_createconfiguration.html"><span itemprop="name">Create a configuration instance</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","Programmer\'s Guide","Getting Started","Create a configuration instance"];</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="pgui_quickstart.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_quickstart_createdatamodel.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="pgui_quickstart_createconfiguration" itemprop="headline">Create a configuration instance</h1>
-</div></div><p>First you have to create a
- <code class="inline-code">freemarker.template.Configuration</code> instance and
- adjust its settings. A <code class="inline-code">Configuration</code> instance is
- the central place to store the application level settings of
- FreeMarker. Also, it deals with the creation and
- <em>caching</em> of pre-parsed templates (i.e.,
- <code class="inline-code">Template</code> objects).</p><p>Normally you will <em>do this only once</em> at the
- beginning of the application (possibly servlet) life-cycle:</p>
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">// Create your Configuration instance, and specify if up to what FreeMarker
-// version (here 2.3.25) do you want to apply the fixes that are not 100%
-// backward-compatible. See the Configuration JavaDoc for details.
-Configuration cfg = new Configuration(Configuration.VERSION_2_3_25);
-
-// Specify the source where the template files come from. Here I set a
-// plain directory for it, but non-file-system sources are possible too:
-cfg.setDirectoryForTemplateLoading(new File("<em>/where/you/store/templates</em>"));
-
-// Set the preferred charset template files are stored in. UTF-8 is
-// a good choice in most applications:
-cfg.setDefaultEncoding("UTF-8");
-
-// Sets how errors will appear.
-// During web page *development* TemplateExceptionHandler.HTML_DEBUG_HANDLER is better.
-cfg.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);
-
-// Don't log exceptions inside FreeMarker that it will thrown at you anyway:
-cfg.setLogTemplateExceptions(false);</pre></div><p>From now you should use this <em>single</em>
- configuration instance (i.e., its a singleton). Note however that if a
- system has multiple independent components that use FreeMarker, then
- of course they will use their own private
- <code class="inline-code">Configuration</code> instances.</p> <div class="callout warning">
- <strong class="callout-label">Warning!</strong>
-
- <p>Do not needlessly re-create <code class="inline-code">Configuration</code>
- instances; it's expensive, among others because you lose the
- template cache. <code class="inline-code">Configuration</code> instances meant to
- be application-level singletons.</p>
- </div>
-<p>In multi-threaded applications (like Web sites) the settings in
- the <code class="inline-code">Configuration</code> instance must not be modified
- anymore after this point. Thus it can be treated as "effectively
- immutable" object, so you can continue with <em>safe
- publishing</em> techniques (see JSR 133 and related literature)
- to make the instance available for other threads. Like, publish the
- instance through a final or volatile filed, or through a thread-safe
- IoC container (like the one provided by Spring).
- <code class="inline-code">Configuration</code> methods that don't deal with
- modifying settings are thread-safe.</p><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="pgui_quickstart.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_quickstart_createdatamodel.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/pgui_quickstart_createdatamodel.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/pgui_quickstart_createdatamodel.html b/builds/2.3.26-nightly/pgui_quickstart_createdatamodel.html
deleted file mode 100644
index 1aec301..0000000
--- a/builds/2.3.26-nightly/pgui_quickstart_createdatamodel.html
+++ /dev/null
@@ -1,170 +0,0 @@
-<!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>Create a data-model - 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="Create a data-model">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/pgui_quickstart_createdatamodel.html">
-<link rel="canonical" href="http://freemarker.org/docs/pgui_quickstart_createdatamodel.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="pgui.html"><span itemprop="name">Programmer's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_quickstart.html"><span itemprop="name">Getting Started</span></a></li><li class="step-3" item
prop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_quickstart_createdatamodel.html"><span itemprop="name">Create a data-model</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","Programmer\'s Guide","Getting Started","Create a data-model"];</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="pgui_quickstart_createconfiguration.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_quickstart_gettemplate.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="pgui_quickstart_createdatamodel" itemprop="headline">Create a data-model</h1>
-</div></div><p>In simple cases you can build data-models using
- <code class="inline-code">java.lang</code> and <code class="inline-code">java.util</code> classes
- and custom JavaBeans:</p><ul>
- <li>
- <p>Use <code class="inline-code">java.lang.String</code> for strings.</p>
- </li>
-
- <li>
- <p>Use <code class="inline-code">java.lang.Number</code> subclasses for
- numbers.</p>
- </li>
-
- <li>
- <p>Use <code class="inline-code">java.lang.Boolean</code> for boolean
- values.</p>
- </li>
-
- <li>
- <p>Use <code class="inline-code">java.util.Date</code> and its subclasses for
- date/time values</p>
- </li>
-
- <li>
- <p>Use <code class="inline-code">java.util.List</code> or Java arrays for
- sequences.</p>
- </li>
-
- <li>
- <p>Use <code class="inline-code">java.util.Map</code> with
- <code class="inline-code">String</code> keys for hashes.</p>
- </li>
-
- <li>
- <p>Use your custom bean class for hashes where the items
- correspond to the bean properties. For example the
- <code class="inline-code">price</code> property (<code class="inline-code">getPrice()</code>)
- of <code class="inline-code">product</code> can be get as
- <code class="inline-code">product.price</code>. (The actions of the beans can be
- exposed as well; see much later <a href="pgui_misc_beanwrapper.html">here</a>)</p>
- </li>
- </ul><p>For example, let's build the data-model of the <a href="dgui_quickstart_basics.html#example.first">first example of the Template Author's
- Guide</a>. For convenience, here it is again:</p>
-
-<div class="code-wrapper"><pre class="code-block code-data-model">(root)
- |
- +- user = "Big Joe"
- |
- +- latestProduct
- |
- +- url = "products/greenmouse.html"
- |
- +- name = "green mouse"</pre></div><p>This Java code fragment that builds this data-model:</p>
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">// Create the root hash. We use a Map here, but it could be a JavaBean too.
-Map<String, Object> root = new HashMap<>();
-
-// Put string "user" into the root
-root.put("user", "Big Joe");
-
-// Create the "latestProduct" hash. We use a JavaBean here, but it could be a Map too.
-Product latest = new Product();
-latest.setUrl("products/greenmouse.html");
-latest.setName("green mouse");
-// and put it into the root
-root.put("latestProduct", latest);</pre></div><p>As demonstrated above, for hashes (something that stores other
- named items) you can use either a <code class="inline-code">Map</code> or any kind
- of public class that has public
- <code class="inline-code">get<em class="code-color">Xxx</em></code>/<code class="inline-code">is<em class="code-color">Xxx</em></code>
- methods as prescribed by the JavaBeans specification. Like the above
- <code class="inline-code">Product</code> class could be something like:</p>
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">/**
- * Product bean; note that it must be a public class!
- */
-public class Product {
-
- private String url;
- private String name;
-
- // As per the JavaBeans spec., this defines the "url" bean property
- // It must be public!
- public String getUrl() {
- return url;
- }
-
- public void setUrl(String url) {
- this.url = url;
- }
-
- // As per the JavaBean spec., this defines the "name" bean property
- // It must be public!
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
-}</pre></div><p>Regardless if <code class="inline-code">latestProduct</code> is a
- <code class="inline-code">Map</code> that contains the <code class="inline-code">"name"</code> and
- <code class="inline-code">"url"</code> keys, or it's a JavaBean as shown above, in
- the template you can use <code class="inline-code">${latestProduct.name}</code>. The
- root itself need not be a <code class="inline-code">Map</code> either; it could be
- an object with <code class="inline-code">getUser()</code> and
- <code class="inline-code">getLastestProduct()</code> methods too.</p> <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>The behavior described here only stands if the value of the
- <code class="inline-code">object_wrapper</code> configuration setting is something
- that's used in almost all real world setups anyway. Anything that
- the <code class="inline-code">ObjectWrapper</code> wraps to be a hash (something
- that implements the <code class="inline-code">TemplateHashModel</code> interface)
- can be used as the root, and can be traversed in templates with the
- dot and <code class="inline-code">[]</code> operators. Something that it doesn't
- wrap to be a hash can't be used as the root or be traversed like
- that.</p>
- </div>
-<div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="pgui_quickstart_createconfiguration.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_quickstart_gettemplate.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/pgui_quickstart_gettemplate.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/pgui_quickstart_gettemplate.html b/builds/2.3.26-nightly/pgui_quickstart_gettemplate.html
deleted file mode 100644
index 5f8846d..0000000
--- a/builds/2.3.26-nightly/pgui_quickstart_gettemplate.html
+++ /dev/null
@@ -1,70 +0,0 @@
-<!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>Get the template - 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="Get the template">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/pgui_quickstart_gettemplate.html">
-<link rel="canonical" href="http://freemarker.org/docs/pgui_quickstart_gettemplate.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="pgui.html"><span itemprop="name">Programmer's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_quickstart.html"><span itemprop="name">Getting Started</span></a></li><li class="step-3" item
prop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_quickstart_gettemplate.html"><span itemprop="name">Get the template</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","Programmer\'s Guide","Getting Started","Get the template"];</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="pgui_quickstart_createdatamodel.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_quickstart_merge.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="pgui_quickstart_gettemplate" itemprop="headline">Get the template</h1>
-</div></div><p>Templates are represented by
- <code class="inline-code">freemarker.template.Template</code> instances. Typically
- you obtain a <code class="inline-code">Template</code> instance from the
- <code class="inline-code">Configuration</code> instance, using its.
- <code class="inline-code">getTemplate</code> method. If you store <a href="dgui_quickstart_basics.html#example.first">the example template</a> in the
- <code class="inline-code">test.ftlh</code> file of the <a href="pgui_quickstart_createconfiguration.html">earlier</a> set
- directory, then you can do this:</p>
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">Template temp = cfg.getTemplate("test.ftlh");</pre></div><p>This gives you a <code class="inline-code">Template</code> instance that was
- created by reading
- <code class="inline-code"><em class="code-color">/where/you/store/templates/</em>test.ftlh</code>
- and parsing it. The <code class="inline-code">Template</code> instance stores the
- template in parsed form, and not as text. If the template is missing
- or syntactically incorrect, <code class="inline-code">getTemplate</code> will throw
- exception instead.</p><p><code class="inline-code">Configuration</code> caches
- <code class="inline-code">Template</code> instances, so when you call
- <code class="inline-code">cfg.getTemplate("test.ftlh")</code> next time, it probably
- won't read and parse the template file again, just returns the same
- <code class="inline-code">Template</code> instance as for the first time.</p><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="pgui_quickstart_createdatamodel.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_quickstart_merge.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/pgui_quickstart_merge.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/pgui_quickstart_merge.html b/builds/2.3.26-nightly/pgui_quickstart_merge.html
deleted file mode 100644
index c295aa2..0000000
--- a/builds/2.3.26-nightly/pgui_quickstart_merge.html
+++ /dev/null
@@ -1,78 +0,0 @@
-<!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>Merging the template with the data-model - 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="Merging the template with the data-model">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/pgui_quickstart_merge.html">
-<link rel="canonical" href="http://freemarker.org/docs/pgui_quickstart_merge.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="pgui.html"><span itemprop="name">Programmer's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_quickstart.html"><span itemprop="name">Getting Started</span></a></li><li class="step-3" item
prop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_quickstart_merge.html"><span itemprop="name">Merging the template with the data-model</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","Programmer\'s Guide","Getting Started","Merging the template with the data-model"];</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="pgui_quickstart_gettemplate.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_quickstart_all.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="pgui_quickstart_merge" itemprop="headline">Merging the template with the data-model</h1>
-</div></div><p>As you might already know, data-model + template = output. We
- already have a data-model (<code class="inline-code">root</code>) and a template
- (<code class="inline-code">temp</code>), so to get the output we have to merge them.
- This is done by the <code class="inline-code">process</code> method of the template.
- It takes the data-model root and a <code class="inline-code">Writer</code> as
- parameters. It writes the produced output to the
- <code class="inline-code">Writer</code>. For the sake of simplicity here I write to
- the standard output:</p>
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">Writer out = new OutputStreamWriter(System.out);
-temp.process(root, out);</pre></div><p>This will print to your terminal the output you have seen in the
- <a href="dgui_quickstart_basics.html#example.first">first example</a> of the Template
- Author's Guide.</p><p>Java I/O related notes: Depending on what <code class="inline-code">out</code>
- is, you may need to ensure that <code class="inline-code">out.close()</code> is
- called. This is typically needed when <code class="inline-code">out</code> writes
- into a file that was opened to store the output of the template. In
- other times, like in typical Web applications, you must
- <em>not</em> close <code class="inline-code">out</code>. FreeMarker
- calls <code class="inline-code">out.flush()</code> after a successful template
- execution (but tis can be disabled in
- <code class="inline-code">Configuration</code>), so you don't need to worry about
- that.</p><p>Note that once you have obtained a <code class="inline-code">Template</code>
- instance, you can merge it with different data-models for unlimited
- times (<code class="inline-code">Template</code> instances are stateless). Also, the
- <code class="inline-code">test.ftlh</code> file is accessed only while the
- <code class="inline-code">Template</code> instance is created, not when you call the
- process method.</p><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="pgui_quickstart_gettemplate.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_quickstart_all.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/ref.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref.html b/builds/2.3.26-nightly/ref.html
deleted file mode 100644
index 56c7c78..0000000
--- a/builds/2.3.26-nightly/ref.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<!doctype html>
-<!-- Generated by FreeMarker/Docgen from DocBook -->
-<html lang="en" class="page-type-part">
-<head prefix="og: http://ogp.me/ns#">
-<meta charset="utf-8">
-<title>Template Language Reference - 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="Template Language Reference">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref.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="ref.html"><span itemprop="name">Template Language Reference</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_templat
e_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","Template Language Reference"];</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="pgui_misc_jythonwrapper.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_builtins.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-part" id="ref" itemprop="headline">Template Language Reference</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Section Contents</div>
-<ul><li><a class="page-menu-link" href="ref_builtins.html" data-menu-target="ref_builtins">Built-in Reference</a><ul><li><a class="page-menu-link" href="ref_builtins_alphaidx.html" data-menu-target="ref_builtins_alphaidx">Alphabetical index</a></li><li><a class="page-menu-link" href="ref_builtins_string.html" data-menu-target="ref_builtins_string">Built-ins for strings</a></li><li><a class="page-menu-link" href="ref_builtins_number.html" data-menu-target="ref_builtins_number">Built-ins for numbers</a></li><li><a class="page-menu-link" href="ref_builtins_date.html" data-menu-target="ref_builtins_date">Built-ins for date/time/date-time values</a></li><li><a class="page-menu-link" href="ref_builtins_boolean.html" data-menu-target="ref_builtins_boolean">Built-ins for booleans</a></li><li><a class="page-menu-link" href="ref_builtins_sequence.html" data-menu-target="ref_builtins_sequence">Built-ins for sequences</a></li><li><a class="page-menu-link" href="ref_builtins_hash.html" data-menu
-target="ref_builtins_hash">Built-ins for hashes</a></li><li><a class="page-menu-link" href="ref_builtins_node.html" data-menu-target="ref_builtins_node">Built-ins for nodes (for XML)</a></li><li><a class="page-menu-link" href="ref_builtins_loop_var.html" data-menu-target="ref_builtins_loop_var">Loop variable built-ins</a></li><li><a class="page-menu-link" href="ref_builtins_type_independent.html" data-menu-target="ref_builtins_type_independent">Type independent built-ins</a></li><li><a class="page-menu-link" href="ref_builtins_expert.html" data-menu-target="ref_builtins_expert">Seldom used and expert built-ins</a></li></ul></li><li><a class="page-menu-link" href="ref_directives.html" data-menu-target="ref_directives">Directive Reference</a><ul><li><a class="page-menu-link" href="ref_directive_alphaidx.html" data-menu-target="ref_directive_alphaidx">Alphabetical index</a></li><li><a class="page-menu-link" href="ref_directive_assign.html" data-menu-target="ref_directive_assign">assig
n</a></li><li><a class="page-menu-link" href="ref_directive_attempt.html" data-menu-target="ref_directive_attempt">attempt, recover</a></li><li><a class="page-menu-link" href="ref_directive_autoesc.html" data-menu-target="ref_directive_autoesc">autoesc</a></li><li><a class="page-menu-link" href="ref_directive_compress.html" data-menu-target="ref_directive_compress">compress</a></li><li><a class="page-menu-link" href="ref_directive_escape.html" data-menu-target="ref_directive_escape">escape, noescape (deprecated)</a></li><li><a class="page-menu-link" href="ref_directive_flush.html" data-menu-target="ref_directive_flush">flush</a></li><li><a class="page-menu-link" href="ref_directive_ftl.html" data-menu-target="ref_directive_ftl">ftl</a></li><li><a class="page-menu-link" href="ref_directive_function.html" data-menu-target="ref_directive_function">function, return</a></li><li><a class="page-menu-link" href="ref_directive_global.html" data-menu-target="ref_directive_global">global</a></
li><li><a class="page-menu-link" href="ref_directive_if.html" data-menu-target="ref_directive_if">if, else, elseif</a></li><li><a class="page-menu-link" href="ref_directive_import.html" data-menu-target="ref_directive_import">import</a></li><li><a class="page-menu-link" href="ref_directive_include.html" data-menu-target="ref_directive_include">include</a></li><li><a class="page-menu-link" href="ref_directive_list.html" data-menu-target="ref_directive_list">list, else, items, sep, break</a></li><li><a class="page-menu-link" href="ref_directive_local.html" data-menu-target="ref_directive_local">local</a></li><li><a class="page-menu-link" href="ref_directive_macro.html" data-menu-target="ref_directive_macro">macro, nested, return</a></li><li><a class="page-menu-link" href="ref_directive_noautoesc.html" data-menu-target="ref_directive_noautoesc">noautoesc</a></li><li><a class="page-menu-link" href="ref_directive_noparse.html" data-menu-target="ref_directive_noparse">noparse</a></li><li>
<a class="page-menu-link" href="ref_directive_nt.html" data-menu-target="ref_directive_nt">nt</a></li><li><a class="page-menu-link" href="ref_directive_outputformat.html" data-menu-target="ref_directive_outputformat">outputformat</a></li><li><a class="page-menu-link" href="ref_directive_setting.html" data-menu-target="ref_directive_setting">setting</a></li><li><a class="page-menu-link" href="ref_directive_stop.html" data-menu-target="ref_directive_stop">stop</a></li><li><a class="page-menu-link" href="ref_directive_switch.html" data-menu-target="ref_directive_switch">switch, case, default, break</a></li><li><a class="page-menu-link" href="ref_directive_t.html" data-menu-target="ref_directive_t">t, lt, rt</a></li><li><a class="page-menu-link" href="ref_directive_userDefined.html" data-menu-target="ref_directive_userDefined">User-defined directive (<@...>)</a></li><li><a class="page-menu-link" href="ref_directive_visit.html" data-menu-target="ref_directive_visit">visit, recurse,
fallback</a></li></ul></li><li><a class="page-menu-link" href="ref_specvar.html" data-menu-target="ref_specvar">Special Variable Reference</a></li><li><a class="page-menu-link" href="ref_reservednames.html" data-menu-target="ref_reservednames">Reserved names in FTL</a></li><li><a class="page-menu-link" href="ref_deprecated.html" data-menu-target="ref_deprecated">Deprecated FTL constructs</a><ul><li><a class="page-menu-link" href="ref_depr_directive.html" data-menu-target="ref_depr_directive">List of deprecated directives</a></li><li><a class="page-menu-link" href="ref_depr_builtin.html" data-menu-target="ref_depr_builtin">List of deprecated built-ins</a></li><li><a class="page-menu-link" href="ref_depr_oldmacro.html" data-menu-target="ref_depr_oldmacro">Old-style macro and call directives</a></li><li><a class="page-menu-link" href="ref_depr_transform.html" data-menu-target="ref_depr_transform">Transform directive</a></li><li><a class="page-menu-link" href="ref_depr_oldsyntax.html"
data-menu-target="ref_depr_oldsyntax">Old FTL syntax</a></li><li><a class="page-menu-link" href="ref_depr_numerical_interpolation.html" data-menu-target="ref_depr_numerical_interpolation">#{...}: Numerical interpolation</a></li></ul></li></ul> </div><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="pgui_misc_jythonwrapper.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_builtins.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/ref_builtins.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_builtins.html b/builds/2.3.26-nightly/ref_builtins.html
deleted file mode 100644
index 9d783b9..0000000
--- a/builds/2.3.26-nightly/ref_builtins.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<!doctype html>
-<!-- Generated by FreeMarker/Docgen from DocBook -->
-<html lang="en" class="page-type-chapter">
-<head prefix="og: http://ogp.me/ns#">
-<meta charset="utf-8">
-<title>Built-in Reference - 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="Built-in Reference">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_builtins.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_builtins.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_builtins.html"><span itemprop="name">Built-in Reference</span></a></li></ul><div class="bo
okmarks" 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","Template Language Reference","Built-in Reference"];</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="ref.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_builtins_alphaidx.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-chapter" id="ref_builtins" itemprop="headline">Built-in Reference</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Section Contents</div>
-<ul><li><a class="page-menu-link" href="ref_builtins_alphaidx.html" data-menu-target="ref_builtins_alphaidx">Alphabetical index</a></li><li><a class="page-menu-link" href="ref_builtins_string.html" data-menu-target="ref_builtins_string">Built-ins for strings</a></li><li><a class="page-menu-link" href="ref_builtins_number.html" data-menu-target="ref_builtins_number">Built-ins for numbers</a></li><li><a class="page-menu-link" href="ref_builtins_date.html" data-menu-target="ref_builtins_date">Built-ins for date/time/date-time values</a></li><li><a class="page-menu-link" href="ref_builtins_boolean.html" data-menu-target="ref_builtins_boolean">Built-ins for booleans</a></li><li><a class="page-menu-link" href="ref_builtins_sequence.html" data-menu-target="ref_builtins_sequence">Built-ins for sequences</a></li><li><a class="page-menu-link" href="ref_builtins_hash.html" data-menu-target="ref_builtins_hash">Built-ins for hashes</a></li><li><a class="page-menu-link" href="ref_builtins_node.ht
ml" data-menu-target="ref_builtins_node">Built-ins for nodes (for XML)</a></li><li><a class="page-menu-link" href="ref_builtins_loop_var.html" data-menu-target="ref_builtins_loop_var">Loop variable built-ins</a></li><li><a class="page-menu-link" href="ref_builtins_type_independent.html" data-menu-target="ref_builtins_type_independent">Type independent built-ins</a></li><li><a class="page-menu-link" href="ref_builtins_expert.html" data-menu-target="ref_builtins_expert">Seldom used and expert built-ins</a></li></ul> </div><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_builtins_alphaidx.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>\u20132017
-<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>
[19/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/ref_directive_visit.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_directive_visit.html b/builds/2.3.26-nightly/ref_directive_visit.html
deleted file mode 100644
index c95e861..0000000
--- a/builds/2.3.26-nightly/ref_directive_visit.html
+++ /dev/null
@@ -1,384 +0,0 @@
-<!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>visit, recurse, fallback - 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="visit, recurse, fallback">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_directive_visit.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_directive_visit.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directives.html"><span itemprop="name">Directive Reference</span></a></li><li class="step-
3" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directive_visit.html"><span itemprop="name">visit, recurse, fallback</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","Template Language Reference","Directive Reference","visit, recurse, fallback"];</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="ref_directive_userDefined.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_specvar.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="ref_directive_visit" itemprop="headline">visit, recurse, fallback</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_134" data-menu-target="autoid_134">Synopsis</a></li><li><a class="page-menu-link" href="#autoid_135" data-menu-target="autoid_135">Description</a><ul><li><a class="page-menu-link" href="#autoid_136" data-menu-target="autoid_136">Visit</a></li><li><a class="page-menu-link" href="#autoid_137" data-menu-target="autoid_137">Recurse</a></li><li><a class="page-menu-link" href="#autoid_138" data-menu-target="autoid_138">Fallback</a></li></ul></li></ul> </div><a name="ref.directive.visit"></a>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_134">Synopsis</h2>
-
-
-
-<pre class="metaTemplate"><code class="inline-code"><#visit <em class="code-color">node</em> using <em class="code-color">namespace</em>></code>
-or
-<code class="inline-code"><#visit <em class="code-color">node</em>></code></pre>
-
-
-
-<pre class="metaTemplate"><code class="inline-code"><#recurse <em class="code-color">node</em> using <em class="code-color">namespace</em>></code>
-or
-<code class="inline-code"><#recurse <em class="code-color">node</em>></code>
-or
-<code class="inline-code"><#recurse using <em class="code-color">namespace</em>></code>
-or
-<code class="inline-code"><#recurse></code></pre>
-
-
-
-<pre class="metaTemplate"><code class="inline-code"><#fallback></code></pre>
-
-
- <p>Where:</p>
-
- <ul>
- <li>
- <code class="inline-code"><em class="code-color">node</em></code>:
- Expression evaluates to a <a href="xgui_expose_dom.html">node
- variable</a>.
- </li>
-
- <li>
- <code class="inline-code"><em class="code-color">namespace</em></code>: A
- <a href="dgui_misc_namespace.html">namespace</a>, or a
- sequence of namespaces. A namespace can be given with the
- namespace hash (a.k.a. gate hash), or with a string literal that
- store the path of template that could be imported. Instead of
- namespace hashes, you can use plain hashes as well.
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_135">Description</h2>
-
-
- <p>The <code class="inline-code">visit</code> and <code class="inline-code">recurse</code>
- directives are used for the recursive processing of trees. In
- practice, this will mostly be used for <a href="xgui.html">processing XML.</a></p>
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_136">Visit</h3>
-
-
- <p>When you call <code class="inline-code"><#visit
- <em class="code-color">node</em>></code>, it looks for a
- user-defined directive (like a macro) to invoke that has the name
- deducted from the node's name
- (<code class="inline-code"><em class="code-color">node</em>?node_name</code>) and
- namespace
- (<code class="inline-code"><em class="code-color">node</em>?node_namesoace</code>).
- The rules of name deduction:</p>
-
- <ul>
- <li>
- <p>If the node doesn't support node namespaces (as text
- nodes in XML), then the directive name is simply the name of
- the node
- (<code class="inline-code"><em class="code-color">node</em>?node_name</code>).
- <span class="marked-for-programmers">A node does not support node
- namespaces if the <code class="inline-code">getNodeNamespace</code> method
- returns <code class="inline-code">null</code>.</span></p>
- </li>
-
- <li>
- <p>If the node does support node namespaces (as element
- nodes in XML), then a prefix deduced from the node namespace
- maybe appended before the node name with a colon used as
- separator (e.g. <code class="inline-code">e:book</code>). The prefix, and if
- there is a prefix used at all, depends on what prefixes has
- been registered with the <code class="inline-code">ns_prefixes</code>
- parameter of the <code class="inline-code">ftl</code> directive in the <a href="dgui_misc_namespace.html">FTL namespace</a> where
- <code class="inline-code">visit</code> looks for the handler directive
- (which is not necessary the same as the FTL namespace where
- <code class="inline-code">visit</code> was called from, as you will see
- later). Concretely, if there was no default namespace
- registered with <code class="inline-code">ns_prefixes</code> then for nodes
- that does not belong to any namespace (<span class="marked-for-programmers">when <code class="inline-code">getNodeNamespace</code>
- returns <code class="inline-code">""</code></span>) no prefix is used. If
- there was a default namespace registered with
- <code class="inline-code">ns_prefixes</code> then for nodes that does not
- belong to any namespace prefix <code class="inline-code">N</code> is used,
- and for nodes that belong to the default node namespace no
- prefix is used. Otherwise, in both case, the prefix associated
- to the node namespace with the <code class="inline-code">ns_prefixes</code>
- is used. If there is not prefix associated to the node
- namespace of the node, then <code class="inline-code">visit</code> simply
- behave as if there was no directive found with the proper
- name.</p>
- </li>
- </ul>
-
- <p>The node for which the user-defined directive was invoked is
- available for it as special variable <code class="inline-code">.node</code>.
- Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#-- Assume that nodeWithNameX?node_name is "x" -->
-<#visit nodeWithNameX>
-Done.
-<#macro x>
- Now I'm handling a node that has the name "x".
- Just to show how to access this node: this node has ${.node?children?size} children.
-</#macro></pre></div>
-
- <p>The output will be something like:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> Now I'm handling a node that has the name "x".
- Just to show how to access this node: this node has 3 children.
-Done.</pre></div>
-
- <p>If one or more namespaces is specified using the optional
- <code class="inline-code">using</code> clause, then <code class="inline-code">visit</code>
- will look for the directives in those namespaces only, with the
- earlier specified namespaces in the list getting priority. If no
- <code class="inline-code">using</code> clause is specified, the namespace or
- sequence of namespaces specified with the <code class="inline-code">using</code>
- clause of the last uncompleted <code class="inline-code">visit</code> call is
- reused. If there is no such pending <code class="inline-code">visit</code> call,
- then the current namespace is used. For example, if you execute
- this template:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#import "n1.ftl" as n1>
-<#import "n2.ftl" as n2>
-
-<#-- This will call n2.x (because there is no n1.x): -->
-<#visit nodeWithNameX using [n1, n2]>
-
-<#-- This will call the x of the current namespace: -->
-<#visit nodeWithNameX>
-
-<#macro x>
- Simply x
-</#macro></pre></div>
-
- <p>and this is <code class="inline-code">n1.ftl</code>:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#macro y>
- n1.y
-</#macro></pre></div>
-
- <p>and this is <code class="inline-code">n2.ftl</code>:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#macro x>
- n2.x
- <#-- This callc n1.y as it inherits the "using [n1, n2]" from the pending visit call: -->
- <#visit nodeWithNameY>
- <#-- This will call n2.y: -->
- <#visit nodeWithNameY using .namespace>
-</#macro>
-
-<#macro y>
- n2.y
-</#macro></pre></div>
-
- <p>then this will print:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">
- n2.x
- n1.y
- n2.y
-
- Simply x
- </pre></div>
-
- <p>If <code class="inline-code">visit</code> doesn't find a user-defined
- directive in either FTL namespaces with the name identical to the
- name deduced with the rules described earlier, then it tries to
- find an user-defined directive with name
- <code class="inline-code">@<em class="code-color">node_type</em></code>, or if
- the node does not support node type property (i.e.
- <code class="inline-code"><em class="code-color">node</em>?node_type</code>
- returns undefined variable), then with name
- <code class="inline-code">@default</code>. For the lookup, it uses the same
- mechanism as was explained earlier. If it still doesn't find an
- user-defined directive to handle the node, then
- <code class="inline-code">visit</code> stops template processing with error.
- Some XML specific node types have special handling in this regard;
- see: <a href="xgui_declarative_details.html">XML Processing Guide/Declarative XML processing/Details</a>. Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#-- Assume that nodeWithNameX?node_name is "x" -->
-<#visit nodeWithNameX>
-
-<#-- Assume that nodeWithNameY?node_type is "foo" -->
-<#visit nodeWithNameY>
-
-<#macro x>
-Handling node x
-</#macro>
-
-<#macro @foo>
-There was no specific handler for node ${node?node_name}
-</#macro></pre></div>
-
- <p>This would print:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">Handling node x
-
-There was no specific handler for node y
-
- </pre></div>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_137">Recurse</h3>
-
-
- <a name="ref.directive.recurse"></a>
-
- <p>The <code class="inline-code"><#recurse></code> directive is really
- syntactic sugar. It visits all children nodes of the node (and not
- the node itself). So, to write:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#recurse <em>someNode</em> using <em>someLib</em>></pre></div>
-
- <p>is equivalent to writing:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list <em>someNode</em>?children as <em>child</em>><#visit <em>child</em> using <em>someLib</em>></#list></pre></div>
-
- <p>However, target node is optional in the
- <code class="inline-code">recurse</code> directive. If the target node is
- unspecified, it simply uses the <code class="inline-code">.node</code>. Thus,
- the terse instruction <code class="inline-code"><#recurse></code> is
- equivalent to:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list .node?children as child><#visit child></#list></pre></div>
-
- <p>As a side comment for those who are familiar with XSLT,
- <code class="inline-code"><#recurse></code> is pretty much exactly
- analogous to the <code class="inline-code"><xsl:apply-templates/></code>
- instruction in XSLT.</p>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_138">Fallback</h3>
-
-
- <a name="ref.directive.fallback"></a>
-
- <p>As you could learn earlier, in the documentation of the
- <code class="inline-code">visit</code> directive, the user-defined directive
- that handles the node is maybe searched in multiple FTL
- name-spaces. The <code class="inline-code">fallback</code> directive can be used
- in a user-defined directive that was invoked to handle a node. It
- directs FreeMarker to continue the searching for the user-defined
- directive in the further name-spaces (that is, in the name-spaces
- that are after the name-space of the currently invoked
- user-defined directive in the list of name-spaces). If a handler
- for the node is found then it is invoked, otherwise
- <code class="inline-code">fallback</code> does nothing.</p>
-
- <p>A typical usage of this to write customization layer over a
- handler library, that sometimes passes the handling to the
- customized library:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#import "/lib/docbook.ftl" as docbook>
-
-<#--
- We use the docbook library, but we override some handlers
- in this namespace.
--->
-<#visit document using [.namespace, docbook]>
-
-<#--
- Override the "programlisting" handler, but only in the case if
- its "role" attribute is "java"
--->
-<#macro programlisting>
- <#if .node.@role[0]!"" == "java">
- <#-- Do something special here... -->
- ...
- <#else>
- <#-- Just use the original (overidden) handler -->
- <#fallback>
- </#if>
-</#macro></pre></div>
-
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_directive_userDefined.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_specvar.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/ref_directives.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_directives.html b/builds/2.3.26-nightly/ref_directives.html
deleted file mode 100644
index 8551220..0000000
--- a/builds/2.3.26-nightly/ref_directives.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<!doctype html>
-<!-- Generated by FreeMarker/Docgen from DocBook -->
-<html lang="en" class="page-type-chapter">
-<head prefix="og: http://ogp.me/ns#">
-<meta charset="utf-8">
-<title>Directive Reference - 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="Directive Reference">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_directives.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_directives.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directives.html"><span itemprop="name">Directive Reference</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","Template Language Reference","Directive Reference"];</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="ref_builtins_expert.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_alphaidx.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-chapter" id="ref_directives" itemprop="headline">Directive Reference</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Section Contents</div>
-<ul><li><a class="page-menu-link" href="ref_directive_alphaidx.html" data-menu-target="ref_directive_alphaidx">Alphabetical index</a></li><li><a class="page-menu-link" href="ref_directive_assign.html" data-menu-target="ref_directive_assign">assign</a></li><li><a class="page-menu-link" href="ref_directive_attempt.html" data-menu-target="ref_directive_attempt">attempt, recover</a></li><li><a class="page-menu-link" href="ref_directive_autoesc.html" data-menu-target="ref_directive_autoesc">autoesc</a></li><li><a class="page-menu-link" href="ref_directive_compress.html" data-menu-target="ref_directive_compress">compress</a></li><li><a class="page-menu-link" href="ref_directive_escape.html" data-menu-target="ref_directive_escape">escape, noescape (deprecated)</a></li><li><a class="page-menu-link" href="ref_directive_flush.html" data-menu-target="ref_directive_flush">flush</a></li><li><a class="page-menu-link" href="ref_directive_ftl.html" data-menu-target="ref_directive_ftl">ftl</a></li><
li><a class="page-menu-link" href="ref_directive_function.html" data-menu-target="ref_directive_function">function, return</a></li><li><a class="page-menu-link" href="ref_directive_global.html" data-menu-target="ref_directive_global">global</a></li><li><a class="page-menu-link" href="ref_directive_if.html" data-menu-target="ref_directive_if">if, else, elseif</a></li><li><a class="page-menu-link" href="ref_directive_import.html" data-menu-target="ref_directive_import">import</a></li><li><a class="page-menu-link" href="ref_directive_include.html" data-menu-target="ref_directive_include">include</a></li><li><a class="page-menu-link" href="ref_directive_list.html" data-menu-target="ref_directive_list">list, else, items, sep, break</a></li><li><a class="page-menu-link" href="ref_directive_local.html" data-menu-target="ref_directive_local">local</a></li><li><a class="page-menu-link" href="ref_directive_macro.html" data-menu-target="ref_directive_macro">macro, nested, return</a></li><li><a
class="page-menu-link" href="ref_directive_noautoesc.html" data-menu-target="ref_directive_noautoesc">noautoesc</a></li><li><a class="page-menu-link" href="ref_directive_noparse.html" data-menu-target="ref_directive_noparse">noparse</a></li><li><a class="page-menu-link" href="ref_directive_nt.html" data-menu-target="ref_directive_nt">nt</a></li><li><a class="page-menu-link" href="ref_directive_outputformat.html" data-menu-target="ref_directive_outputformat">outputformat</a></li><li><a class="page-menu-link" href="ref_directive_setting.html" data-menu-target="ref_directive_setting">setting</a></li><li><a class="page-menu-link" href="ref_directive_stop.html" data-menu-target="ref_directive_stop">stop</a></li><li><a class="page-menu-link" href="ref_directive_switch.html" data-menu-target="ref_directive_switch">switch, case, default, break</a></li><li><a class="page-menu-link" href="ref_directive_t.html" data-menu-target="ref_directive_t">t, lt, rt</a></li><li><a class="page-menu-link"
href="ref_directive_userDefined.html" data-menu-target="ref_directive_userDefined">User-defined directive (<@...>)</a></li><li><a class="page-menu-link" href="ref_directive_visit.html" data-menu-target="ref_directive_visit">visit, recurse, fallback</a></li></ul> </div><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_builtins_expert.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_alphaidx.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/ref_reservednames.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_reservednames.html b/builds/2.3.26-nightly/ref_reservednames.html
deleted file mode 100644
index 3e80bbc..0000000
--- a/builds/2.3.26-nightly/ref_reservednames.html
+++ /dev/null
@@ -1,96 +0,0 @@
-<!doctype html>
-<!-- Generated by FreeMarker/Docgen from DocBook -->
-<html lang="en" class="page-type-chapter">
-<head prefix="og: http://ogp.me/ns#">
-<meta charset="utf-8">
-<title>Reserved names in FTL - 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="Reserved names in FTL">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_reservednames.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_reservednames.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_reservednames.html"><span itemprop="name">Reserved names in FTL</span></a></li></ul><div c
lass="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","Template Language Reference","Reserved names in FTL"];</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="ref_specvar.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_deprecated.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-chapter" id="ref_reservednames" itemprop="headline">Reserved names in FTL</h1>
-</div></div><p>The following names cannot be used for top-level variables without
- square-bracket syntax (as <code class="inline-code">.vars["in"]</code>), since they
- are keywords in FTL:</p><ul>
- <li>
- <code class="inline-code">true</code>: boolean value
- "true"
- </li>
-
- <li>
- <code class="inline-code">false</code>: boolean value
- "false"
- </li>
-
- <li>
- <code class="inline-code">gt</code>: comparison operator "greater
- than"
- </li>
-
- <li>
- <code class="inline-code">gte</code>: comparison operator "greater
- than or equivalent"
- </li>
-
- <li>
- <code class="inline-code">lt</code>: comparison operator "less
- than"
- </li>
-
- <li>
- <code class="inline-code">lte</code>: comparison operator "less than
- or equivalent"
- </li>
-
- <li>
- <code class="inline-code">as</code>: used by a few directives
- </li>
-
- <li>
- <code class="inline-code">in</code>: used by a few directives
- </li>
-
- <li>
- <code class="inline-code">using</code>: used by a few directives
- </li>
- </ul><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_specvar.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_deprecated.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/ref_specvar.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_specvar.html b/builds/2.3.26-nightly/ref_specvar.html
deleted file mode 100644
index f10bf42..0000000
--- a/builds/2.3.26-nightly/ref_specvar.html
+++ /dev/null
@@ -1,290 +0,0 @@
-<!doctype html>
-<!-- Generated by FreeMarker/Docgen from DocBook -->
-<html lang="en" class="page-type-chapter">
-<head prefix="og: http://ogp.me/ns#">
-<meta charset="utf-8">
-<title>Special Variable Reference - 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="Special Variable Reference">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_specvar.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_specvar.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_specvar.html"><span itemprop="name">Special Variable Reference</span></a></li></ul><div cl
ass="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>.spec_vars</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","Template Language Reference","Special Variable Reference"];</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="ref_directive_visit.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_reservednames.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-chapter" id="ref_specvar" itemprop="headline">Special Variable Reference</h1>
-</div></div><p>Special variables are variables defined by the FreeMarker engine
- itself. To access them, you use the
- <code class="inline-code">.<em class="code-color">variable_name</em></code> syntax. For
- example, you can't write simply <code class="inline-code">version</code>; you have to
- write <code class="inline-code">.version</code>.</p> <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>As of FreeMarker 2.3.23, you can use camel case instead of snake
- case for special variable names, like <code class="inline-code">dataModel</code>
- instead of <code class="inline-code">data_model</code>. But know that then within
- the same template, FreeMarker will enforce the usage of camel case for
- all identifiers that are part of the template language (user defined
- names are not affected).</p>
- </div>
-<p>The supported special variables are:</p><ul>
- <li>
- <code class="inline-code">auto_esc</code> (since 2.3.24): Boolean
- value that tells if auto-escaping (based on output format) is on or
- off at the place where this variable is referred (resolved
- statically). This is <em>not</em> affected by the
- deprecated <code class="inline-code">escape</code> directive. This only deals with
- automatic escaping based on the output format mechanism.
- </li>
-
- <li>
- <code class="inline-code">current_template_name</code>: The name of
- the template where we are now (available since FreeMarker 2.3.23).
- This can be missing (<code class="inline-code">null</code>) if the template was
- created on-the-fly in Java <span class="marked-for-programmers">(via
- <code class="inline-code">new Template(null,
- <em class="code-color">...</em>)</code>)</span>, rather than
- loaded from a backing store by name <span class="marked-for-programmers">(via
- <code class="inline-code"><em class="code-color">cfg</em>.getTemplate(name,
- <em class="code-color">...</em>)</code>)</span>. Migration
- notice: If you replace the deprecated
- <code class="inline-code">template_name</code> with this, note that the later is a
- 0-length string instead of missing (<code class="inline-code">null</code>) if the
- template has no name, so you might want to write
- <code class="inline-code">current_template_name!''</code> in legacy
- templates.
- </li>
-
- <li>
- <code class="inline-code">data_model</code>: A hash that you can use to
- access the data-model directly. That is, variables you did with
- <code class="inline-code">global</code> directive are not visible here.
- </li>
-
- <li>
- <code class="inline-code">error</code> (available since FreeMarker
- 2.3.1): This variable accessible in the body of the <a href="ref_directive_attempt.html#ref.directive.attempt"><code>recover</code>
- directive</a>, where it stores the error message of the error we
- recover from.
- </li>
-
- <li>
- <code class="inline-code">globals</code>: A hash that you can use to access
- the globally accessible variables: the data-model and the variables
- created with <code class="inline-code">global</code> directive. Note that
- variables created with <code class="inline-code">assign</code> or
- <code class="inline-code">macro</code> are not globals, thus they never hide the
- variables when you use <code class="inline-code">globals</code>.
- </li>
-
- <li>
- <code class="inline-code">incompatible_improvements</code> (since
- FreeMarker 2.3.24): The <a href="pgui_config_incompatible_improvements.html"><code>incompatbile_improvements</code>
- setting</a> of the current FreeMarker configuration, as a
- string.
- </li>
-
- <li>
- <code class="inline-code">lang</code>: Returns the language part of
- the current value of the locale setting. For example if
- <code class="inline-code">.locale</code> is <code class="inline-code">en_US</code>, then
- <code class="inline-code">.lang</code> is <code class="inline-code">en</code>.
- </li>
-
- <li>
- <code class="inline-code">locale</code>: Returns the current value
- of the locale setting. This is a string, for example
- <code class="inline-code">en_US</code>. For more information about locale strings
- <a href="ref_directive_setting.html#ref.directive.setting">see the
- <code>setting</code> directive</a>.
- </li>
-
- <li>
- <code class="inline-code">locale_object</code> (available since
- FreeMarker 2.3.21): Returns the current value of the locale setting
- as a <code class="inline-code">java.util.Locale</code> object, rather than as a
- string. This meant to be used instead of <code class="inline-code">.locale</code>
- when you want to pass it as a <code class="inline-code">java.util.Locale</code>
- object to a Java method. (The <code class="inline-code">Locale</code> object will
- be wrapped according the <code class="inline-code">object_wrapper</code> setting
- value. Whether you can actually pass this value to a Java method as
- a <code class="inline-code">Locale</code> object depends on the object wrapper,
- but an object wrapper that let you call Java methods directly is
- very unlikely to not support that.)
- </li>
-
- <li>
- <code class="inline-code">locals</code>: A hash that you can use to access
- the local variables (the variables created with the
- <code class="inline-code">local</code> directive, and the parameters of
- macro).
- </li>
-
- <li>
- <code class="inline-code">main</code>: A hash that you can use to access the
- main <a href="dgui_misc_namespace.html">namespace</a>. Note that
- global variables like the variables of data-model are
- <em>not</em> visible through this hash.
- </li>
-
- <li>
- <code class="inline-code">main_template_name</code>: The name of the
- top level template (available since FreeMarker 2.3.23). <span class="marked-for-programmers">(In Java, this is the template for which
- <code class="inline-code">Template.process</code> was called.) </span>This can
- be missing (<code class="inline-code">null</code>) if the template was created
- on-the-fly in Java <span class="marked-for-programmers">(via <code class="inline-code">new
- Template(null, <em class="code-color">...</em>)</code>)</span>,
- rather than loaded from a backing store by name <span class="marked-for-programmers">(via
- <code class="inline-code"><em class="code-color">cfg</em>.getTemplate(name,
- <em class="code-color">...</em>)</code>)</span>. Migration
- notice: If you replace the deprecated
- <code class="inline-code">template_name</code> with this, note that the later is a
- 0-length string instead of missing (<code class="inline-code">null</code>) if the
- template has no name, so you might want to write
- <code class="inline-code">main_template_name!''</code> in legacy templates.
- </li>
-
- <li>
- <code class="inline-code">namespace</code>: A hash that you can use to
- access the current <a href="dgui_misc_namespace.html">namespace</a>. Note that global
- variables like the variables of data-model are
- <em>not</em> visible through this hash.
- </li>
-
- <li>
- <code class="inline-code">node</code> (alias <code class="inline-code">current_node</code>
- for historical reasons): The node you are currently processing with
- the visitor pattern (i.e. with the <a href="ref_directive_visit.html"><code>visit</code>,
- <code>recurse</code>, ...etc. directives</a>). Also, it
- initially stores the root node when you use the <a href="pgui_misc_ant.html">FreeMarker XML Ant task</a>.
- </li>
-
- <li>
- <code class="inline-code">now</code>: Returns the current date-time.
- Usage examples: "<code class="inline-code">Page generated: ${.now}</code>",
- "<code class="inline-code">Today is ${.now?date}</code>", "<code class="inline-code">The current
- time is ${.now?time}</code>".
- </li>
-
- <li>
- Returns the name of the current <a href="dgui_misc_autoescaping.html#dgui_misc_autoescaping_outputformat">output format</a>.
- This value is never missing/null. It's maybe the string
- <code class="inline-code">"undefined"</code>, which is just the name of the
- default output format.
- </li>
-
- <li>
- <code class="inline-code">output_encoding</code> (available since
- FreeMarker 2.3.1): Returns the name of the current output charset.
- This special variable is not existent if the framework that
- encapsulates FreeMarker doesn't specify the output charset for
- FreeMarker. <span class="marked-for-programmers">(Programmers can read more
- about charset issues <a href="pgui_misc_charset.html">here...</a>)</span>
- </li>
-
- <li>
- <code class="inline-code">pass</code>: This is a macro that does nothing. It
- has no parameters. Mostly used as no-op node handler in XML
- processing.
- </li>
-
- <li>
- <code class="inline-code">template_name</code>: <em>Don't use
- it, because its behavior is strange when macros are used; use
- <code class="inline-code">current_template_name</code> or
- <code class="inline-code">main_template_name</code> instead (see migration notices
- there).</em> Gives the name of the main template, or if we are
- running an included or imported template, the name of that template.
- When calling macros, it becomes rather confusing: the macro call
- won't change the value of this special variable, but when
- <code class="inline-code">nested</code> is called, it changes it to the name of
- the template that belongs to the current namespace. (Available since
- FreeMarker 2.3.14.)
- </li>
-
- <li>
- <code class="inline-code">url_escaping_charset</code> (available
- since FreeMarker 2.3.1): If exists, it stores the name of the
- charset that should be used for URL escaping. If this variable
- doesn't exist that means that nobody has specified what charset
- should be used for URL encoding yet. In this case the <a href="ref_builtins_string.html#ref_builtin_url"><code>url</code> built-in</a>
- uses the charset specified by the <code class="inline-code">output_encoding</code>
- special variable for URL encoding; custom mechanism may follow the
- same logic. <span class="marked-for-programmers">(Programmers can read more
- about charset issues <a href="pgui_misc_charset.html">here...</a>)</span>
- </li>
-
- <li>
- <code class="inline-code">output_format</code> (since 2.3.24): The
- name of output format at the place where this variable is referred
- (resolved statically), such as <code class="inline-code">"HTML"</code>,
- <code class="inline-code">"XML"</code>, <code class="inline-code">"RTF"</code>,
- <code class="inline-code">"plainText"</code>, <code class="inline-code">"undefined"</code>, etc.
- <span class="marked-for-programmers">(The available names can be extended
- by the programmers, by the
- <code class="inline-code">registered_custom_output_formats</code>
- setting.)</span>
- </li>
-
- <li>
- <code class="inline-code">vars</code>: Expression
- <code class="inline-code">.vars.foo</code> returns the same variable as expression
- <code class="inline-code">foo</code>. It's useful if for some reasons you have to
- use square bracket syntax, since that works only for hash sub
- variables, so you need an artificial parent hash. For example, to
- read a top-level variable that has a strange name that would confuse
- FreeMarker, you can write
- <code class="inline-code">.vars["A�strange�name!"]</code>. Or, to access a
- top-level variable with dynamic name given with variable
- <code class="inline-code">varName</code> you can write
- <code class="inline-code">.vars[varName]</code>. Note that the hash returned by
- <code class="inline-code">.vars</code> does not support <code class="inline-code">?keys</code>
- and <code class="inline-code">?values</code>.
- </li>
-
- <li>
- <code class="inline-code">version</code>: Returns the FreeMarker
- version number as string, for example <code class="inline-code">2.2.8</code>. This
- can be used to check which FreeMarker version does your application
- use, but note that this special variable does not exist prior to the
- 2.3.0 or 2.2.8 versions. The version number of non-final releases
- contains dash and further info after the numbers, like in
- 2.3.21-nightly_20140726T151800Z.
- </li>
- </ul><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_directive_visit.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_reservednames.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/search-results.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/search-results.html b/builds/2.3.26-nightly/search-results.html
deleted file mode 100644
index bef3650..0000000
--- a/builds/2.3.26-nightly/search-results.html
+++ /dev/null
@@ -1,65 +0,0 @@
-<!doctype html>
-<!-- Generated by FreeMarker/Docgen from DocBook -->
-<html lang="en" class="page-type-docgen-search-results">
-<head prefix="og: http://ogp.me/ns#">
-<meta charset="utf-8">
-<title>Search results - 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="Search results">
-<meta property="og:locale" content="en_US">
-<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="index.html#searchresults"><span itemprop="name">Search results</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_temp
late_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","Search results"];</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="title-wrapper">
-<h2 class="content-header header-section" id="searchresults">Search results</h2>
-</div></div> <div class="search-results">
- <script>
- (function() {
- var cx = '003127866208504630097:arjqbv_znfw';
- var gcse = document.createElement('script');
- gcse.type = 'text/javascript';
- gcse.async = true;
- gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
- '//cse.google.com/cse.js?cx=' + cx;
- var s = document.getElementsByTagName('script')[0];
- s.parentNode.insertBefore(gcse, s);
- })();
- </script>
- <gcse:searchresults-only>Loading\u2026</gcse:searchresults-only>
- </div>
-<div class="bottom-pagers-wrapper"></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>\u20132017
-<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>
[24/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/ref_depr_transform.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_depr_transform.html b/builds/2.3.26-nightly/ref_depr_transform.html
deleted file mode 100644
index 3e5974c..0000000
--- a/builds/2.3.26-nightly/ref_depr_transform.html
+++ /dev/null
@@ -1,163 +0,0 @@
-<!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>Transform directive - 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="Transform directive">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_depr_transform.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_depr_transform.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_deprecated.html"><span itemprop="name">Deprecated FTL constructs</span></a></li><li class=
"step-3" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_depr_transform.html"><span itemprop="name">Transform directive</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","Template Language Reference","Deprecated FTL constructs","Transform directive"];</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="ref_depr_oldmacro.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_depr_oldsyntax.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="ref_depr_transform" itemprop="headline">Transform directive</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_141" data-menu-target="autoid_141">Synopsis</a></li><li><a class="page-menu-link" href="#autoid_142" data-menu-target="autoid_142">Description</a></li></ul> </div><a name="ref.directive.transform"></a>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_141">Synopsis</h2>
-
-
-
-<pre class="metaTemplate">
-<code class="inline-code"><transform <em class="code-color">transVar</em>>
- <em class="code-color">...</em>
-</transform></code>
-or
-<code class="inline-code"><transform <em class="code-color">transVar</em> <em class="code-color">name1</em>=<em class="code-color">value1</em> <em class="code-color">name2</em>=<em class="code-color">value2</em> <em class="code-color">...</em> <em class="code-color">nameN</em>=<em class="code-color">valueN</em>>
- <em class="code-color">...</em>
-</transform></code>
-</pre>
-
-
- <p>Where:</p>
-
- <ul>
- <li>
- <code class="inline-code"><em class="code-color">transVar</em></code>:
- Expression evaluates to a transform
- </li>
-
- <li>
- <code class="inline-code"><em class="code-color">name1</em></code>,
- <code class="inline-code"><em class="code-color">name2</em></code>, ...
- <code class="inline-code"><em class="code-color">nameN</em></code>: Name of
- parameters. Literal value, not expression.
- </li>
-
- <li>
- <code class="inline-code"><em class="code-color">value1</em></code>,
- <code class="inline-code"><em class="code-color">value2</em></code>, ...
- <code class="inline-code"><em class="code-color">valueN</em></code>:
- Expressions evaluate to the values of parameters
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_142">Description</h2>
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This directive is still working, but deprecated. You may
- want to read about <a href="ref_directive_userDefined.html#ref.directive.userDefined">user-defined directive
- calls</a> to see the replacement.</p>
- </div>
-
-
- <p>Captures the output generated inside its body (i.e. between
- its start-tag and end-tag), and let the given transform modify it
- before it is written to the final output.</p>
-
- <p>Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><p>A very simple HTML file:
-<pre>
-<strong><transform html_escape></strong>
-<html>
- <body>
- <p>Hello word!
- </body>
-</html>
-<strong></transform></strong>
-</pre></pre></div>
-
- <p>the output will be:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"><p>A very simple HTML file:
-<pre>
-&lt;html&gt;
- &lt;body&gt;
- &lt;p&gt;Hello word!
- &lt;/body&gt;
-&lt;/html&gt;
-</pre></pre></div>
-
- <p>Some transforms may take parameters. The name and meaning of
- parameters depends on the transform in question. For example here we
- give a parameter called "var":</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#-- This transform stores the output in the variable x,
- rather than sending it to the output -->
-<transform capture_output<strong> var="x"</strong>>
-some test
-</transform></pre></div>
-
- <p>It is the task of the programmers to put the necessary
- transforms into the data-model. For the name and usage of accessible
- transforms ask the programmers. <span class="marked-for-programmers">Initially there is a <a href="pgui_config_sharedvariables.html">shared variable</a> for
- most transforms in the
- <code class="inline-code">freemarker.template.utility</code> package. For more
- information see: <a href="pgui_config_sharedvariables.html">Programmer's Guide/The Configuration/Shared variables</a></span></p>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_depr_oldmacro.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_depr_oldsyntax.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/ref_deprecated.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_deprecated.html b/builds/2.3.26-nightly/ref_deprecated.html
deleted file mode 100644
index ff1ec5d..0000000
--- a/builds/2.3.26-nightly/ref_deprecated.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<!doctype html>
-<!-- Generated by FreeMarker/Docgen from DocBook -->
-<html lang="en" class="page-type-chapter">
-<head prefix="og: http://ogp.me/ns#">
-<meta charset="utf-8">
-<title>Deprecated FTL constructs - 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="Deprecated FTL constructs">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_deprecated.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_deprecated.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_deprecated.html"><span itemprop="name">Deprecated FTL constructs</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","Template Language Reference","Deprecated FTL constructs"];</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="ref_reservednames.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_depr_directive.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-chapter" id="ref_deprecated" itemprop="headline">Deprecated FTL constructs</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Section Contents</div>
-<ul><li><a class="page-menu-link" href="ref_depr_directive.html" data-menu-target="ref_depr_directive">List of deprecated directives</a></li><li><a class="page-menu-link" href="ref_depr_builtin.html" data-menu-target="ref_depr_builtin">List of deprecated built-ins</a></li><li><a class="page-menu-link" href="ref_depr_oldmacro.html" data-menu-target="ref_depr_oldmacro">Old-style macro and call directives</a></li><li><a class="page-menu-link" href="ref_depr_transform.html" data-menu-target="ref_depr_transform">Transform directive</a></li><li><a class="page-menu-link" href="ref_depr_oldsyntax.html" data-menu-target="ref_depr_oldsyntax">Old FTL syntax</a></li><li><a class="page-menu-link" href="ref_depr_numerical_interpolation.html" data-menu-target="ref_depr_numerical_interpolation">#{...}: Numerical interpolation</a></li></ul> </div><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_reservednames.html"><span>Previous</span></a><a cl
ass="paging-arrow next" href="ref_depr_directive.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/ref_directive_alphaidx.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_directive_alphaidx.html b/builds/2.3.26-nightly/ref_directive_alphaidx.html
deleted file mode 100644
index 7adbeda..0000000
--- a/builds/2.3.26-nightly/ref_directive_alphaidx.html
+++ /dev/null
@@ -1,228 +0,0 @@
-<!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>Alphabetical index - 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="Alphabetical index">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_directive_alphaidx.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_directive_alphaidx.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directives.html"><span itemprop="name">Directive Reference</span></a></li><li class="step-
3" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directive_alphaidx.html"><span itemprop="name">Alphabetical index</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>#directives</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","Template Language Reference","Directive Reference","Alphabetical index"];</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="ref_directives.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_assign.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="ref_directive_alphaidx" itemprop="headline">Alphabetical index</h1>
-</div></div> <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>As of FreeMarker 2.3.23, you can use camel case instead of
- all-lower-case for directive names, like <code class="inline-code">noParse</code>
- instead of <code class="inline-code">noparse</code>. But know that then within the
- same template, FreeMarker will enforce the usage of camel case for
- all identifiers that are part of the template language (user defined
- names are not affected).</p>
- </div>
-<ul>
- <li>
- <a href="ref_directive_assign.html#ref.directive.assign">assign</a>
- </li>
-
- <li>
- <a href="ref_directive_attempt.html#ref.directive.attempt">attempt</a>
- </li>
-
- <li>
- <a href="ref_directive_autoesc.html">autoesc</a>
- </li>
-
- <li>
- break: <a href="ref_directive_switch.html#ref.directive.switch.break">in
- switch</a>, <a href="ref_directive_list.html#ref.directive.list.break">in
- list</a>
- </li>
-
- <li>
- <a href="ref_directive_switch.html#ref.directive.case">case</a>
- </li>
-
- <li>
- <a href="ref_directive_compress.html#ref.directive.compress">compress</a>
- </li>
-
- <li>
- <a href="ref_directive_switch.html#ref.directive.default">default</a>
- </li>
-
- <li>
- else: <a href="ref_directive_if.html#ref.directive.else">in if</a>, <a href="ref_directive_list.html#ref.directive.list.else">in list</a>
- </li>
-
- <li>
- <a href="ref_directive_if.html#ref.directive.elseif">elseif</a>
- </li>
-
- <li>
- <a href="ref_directive_escape.html#ref.directive.escape">escape</a>
- </li>
-
- <li>
- <a href="ref_directive_visit.html#ref.directive.fallback">fallback</a>
- </li>
-
- <li>
- <a href="ref_directive_function.html#ref.directive.function">function</a>
- </li>
-
- <li>
- <a href="ref_directive_flush.html#ref.directive.flush">flush</a>
- </li>
-
- <li>
- <a href="ref_directive_ftl.html#ref.directive.ftl">ftl</a>
- </li>
-
- <li>
- <a href="ref_directive_global.html#ref.directive.global">global</a>
- </li>
-
- <li>
- <a href="ref_directive_if.html#ref.directive.if">if</a>
- </li>
-
- <li>
- <a href="ref_directive_import.html#ref.directive.import">import</a>
- </li>
-
- <li>
- <a href="ref_directive_include.html#ref.directive.include">include</a>
- </li>
-
- <li>
- <a href="ref_directive_list.html#ref.directive.items">items</a>
- </li>
-
- <li>
- <a href="ref_directive_list.html#ref.directive.list">list</a>
- </li>
-
- <li>
- <a href="ref_directive_local.html#ref.directive.local">local</a>
- </li>
-
- <li>
- <a href="ref_directive_t.html#ref.directive.lt">lt</a>
- </li>
-
- <li>
- <a href="ref_directive_macro.html#ref.directive.macro">macro</a>
- </li>
-
- <li>
- <a href="ref_directive_macro.html#ref.directive.nested">nested</a>
- </li>
-
- <li>
- <a href="ref_directive_noautoesc.html">noautoesc</a>
- </li>
-
- <li>
- <a href="ref_directive_escape.html#ref.directive.noescape">noescape</a>
- </li>
-
- <li>
- <a href="ref_directive_noparse.html">noparse</a>
- </li>
-
- <li>
- <a href="ref_directive_nt.html#ref.directive.nt">nt</a>
- </li>
-
- <li>
- <a href="ref_directive_outputformat.html">outputformat</a>
- </li>
-
- <li>
- <a href="ref_directive_attempt.html#ref.directive.attempt">recover</a>
- </li>
-
- <li>
- <a href="ref_directive_visit.html#ref.directive.recurse">recurse</a>
- </li>
-
- <li>
- return: <a href="ref_directive_macro.html#ref.directive.macro.return">in
- macro</a>, <a href="ref_directive_function.html#ref.directive.function.return">in
- function</a>
- </li>
-
- <li>
- <a href="ref_directive_t.html#ref.directive.rt">rt</a>
- </li>
-
- <li>
- <a href="ref_directive_list.html#ref.directive.sep">sep</a>
- </li>
-
- <li>
- <a href="ref_directive_setting.html#ref.directive.setting">setting</a>
- </li>
-
- <li>
- <a href="ref_directive_stop.html#ref.directive.stop">stop</a>
- </li>
-
- <li>
- <a href="ref_directive_switch.html#ref.directive.switch">switch</a>
- </li>
-
- <li>
- <a href="ref_directive_t.html#ref.directive.t">t</a>
- </li>
-
- <li>
- <a href="ref_directive_userDefined.html#ref.directive.userDefined">User-defined
- directive (<@...>)</a>
- </li>
-
- <li>
- <a href="ref_directive_visit.html#ref.directive.visit">visit</a>
- </li>
- </ul><p>If you don't find a directive here that you have seen in a
- working template, probably you will find it in: <a href="ref_deprecated.html">Deprecated FTL constructs</a></p><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_directives.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_assign.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/ref_directive_assign.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_directive_assign.html b/builds/2.3.26-nightly/ref_directive_assign.html
deleted file mode 100644
index c6c3ebf..0000000
--- a/builds/2.3.26-nightly/ref_directive_assign.html
+++ /dev/null
@@ -1,212 +0,0 @@
-<!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>assign - 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="assign">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_directive_assign.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_directive_assign.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directives.html"><span itemprop="name">Directive Reference</span></a></li><li class="step-
3" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directive_assign.html"><span itemprop="name">assign</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","Template Language Reference","Directive Reference","assign"];</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="ref_directive_alphaidx.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_attempt.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="ref_directive_assign" itemprop="headline">assign</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_76" data-menu-target="autoid_76">Synopsis</a></li><li><a class="page-menu-link" href="#autoid_77" data-menu-target="autoid_77">Description</a></li></ul> </div><a name="ref.directive.assign"></a>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_76">Synopsis</h2>
-
-
-
-<pre class="metaTemplate"><code class="inline-code"><#assign <em class="code-color">name1</em>=<em class="code-color">value1</em> <em class="code-color">name2</em>=<em class="code-color">value2</em> <em class="code-color">... nameN</em>=<em class="code-color">valueN</em>></code>
-or
-<code class="inline-code"><#assign <em class="code-color">same as above...</em> in <em class="code-color">namespacehash</em>></code>
-or
-<code class="inline-code"><#assign <em class="code-color">name</em>>
- <em class="code-color">capture this</em>
-</#assign></code>
-or
-<code class="inline-code"><#assign <em class="code-color">name</em> in <em class="code-color">namespacehash</em>>
- <em class="code-color">capture this</em>
-</#assign></code></pre>
-
-
- <p>Where:</p>
-
- <ul>
- <li>
- <code class="inline-code"><em class="code-color">name</em></code>: name
- of the variable. It is not expression. However, it can be
- written as a string literal, which is useful if the variable
- name contains reserved characters, for example
- <code class="inline-code"><#assign "foo-bar" = 1></code>. Note that this
- string literal does not expand interpolations (as
- <code class="inline-code">"${foo}"</code>); if you need to assign to a
- dynamically constructed name, the you have to use <a href="app_faq.html#faq_assign_to_dynamic_variable_name">this
- trick</a>.
- </li>
-
- <li>
- <code class="inline-code">=</code>: Assignment operator. It can also be
- one of the assignment shorthand operators (since FreeMarker
- 2.3.23): <code class="inline-code">++</code>, <code class="inline-code">--</code>,
- <code class="inline-code">+=</code>, <code class="inline-code">-=</code>,
- <code class="inline-code">*=</code>, <code class="inline-code">/=</code> or
- <code class="inline-code">%=</code>. Like <code class="inline-code"><#assign
- x++></code> is similar to <code class="inline-code"><#assign x = x +
- 1></code>, and <code class="inline-code"><#assign x += 2></code>
- is the same as <code class="inline-code"><#assign x = x + 2></code>.
- Note that <code class="inline-code">++</code> always means arithmetical
- addition (an so it will fail on non-numbers), unlike
- <code class="inline-code">+</code> or <code class="inline-code">+=</code> that are
- overloaded to do string concatenation and such.
- </li>
-
- <li>
- <code class="inline-code"><em class="code-color">value</em></code>: the
- value to store. Expression.
- </li>
-
- <li>
- <code class="inline-code"><em class="code-color">namespacehash</em></code>:
- a hash that was created for a namespace (by <a href="ref_directive_import.html#ref.directive.import"><code>import</code></a>).
- Expression.
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_77">Description</h2>
-
-
- <p>With this you can create a new variable, or replace an
- existing variable. Note that only top-level variables can be
- created/replaced (i.e. you can't create/replace
- <code class="inline-code">some_hash.subvar</code>, but
- <code class="inline-code">some_hash</code>).</p>
-
- <p>For more information about variables, read this: <a href="dgui_misc_var.html">Template Author's Guide/Miscellaneous/Defining variables in the template</a></p>
-
- <p>Example: variable <code class="inline-code">seq</code> will store a
- sequence:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign seq = ["foo", "bar", "baz"]></pre></div>
-
- <p>Example: Increments the numerical value stored in variable
- <code class="inline-code">x</code>:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign x++></pre></div>
-
- <p>As a convenience feature, you can do more assignments with one
- <code class="inline-code">assign</code> tag. For example this will do the same as
- the two previous examples:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign
- seq = ["foo", "bar", "baz"]
- x++
-></pre></div>
-
- <p>If you know what namespaces are: <code class="inline-code">assign</code>
- directive creates variables in namespaces. Normally it creates the
- variable in the current namespace (i.e. in the namespace associated
- with the template where the tag is). However, if you use <code class="inline-code">in
- <em class="code-color">namespacehash</em></code> then you can
- create/replace a variable of another <a href="dgui_misc_namespace.html">namespace</a> than the current
- namespace. For example, here you create/replace variable
- <code class="inline-code">bgColor</code> of the namespace used for
- <code class="inline-code">/mylib.ftl</code>:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#import "/mylib.ftl" as my>
-<#assign bgColor="red" in my></pre></div>
-
- <p>An extreme usage of <code class="inline-code">assign</code> is when it
- captures the output generated between its start-tag and end-tag.
- That is, things that are printed between the tags will not be shown
- on the page, but will be stored in the variable. For example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#macro myMacro>foo</#macro>
-<#assign x>
- <#list 1..3 as n>
- ${n} <@myMacro />
- </#list>
-</#assign>
-Number of words: ${x?word_list?size}
-${x}</pre></div>
-
- <p>will print:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">Number of words: 6
- 1 foo
- 2 foo
- 3 foo
- </pre></div>
-
- <p>Please note that you should not to use this to insert
- variables into strings:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign x>Hello ${user}!</#assign> <#-- BAD PRACTICE! --></pre></div>
-
- <p>You should simply write:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign x="Hello ${user}!"></pre></div>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_directive_alphaidx.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_attempt.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/ref_directive_attempt.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_directive_attempt.html b/builds/2.3.26-nightly/ref_directive_attempt.html
deleted file mode 100644
index 625ff61..0000000
--- a/builds/2.3.26-nightly/ref_directive_attempt.html
+++ /dev/null
@@ -1,206 +0,0 @@
-<!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>attempt, recover - 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="attempt, recover">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_directive_attempt.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_directive_attempt.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directives.html"><span itemprop="name">Directive Reference</span></a></li><li class="step-
3" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directive_attempt.html"><span itemprop="name">attempt, recover</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","Template Language Reference","Directive Reference","attempt, recover"];</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="ref_directive_assign.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_autoesc.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="ref_directive_attempt" itemprop="headline">attempt, recover</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_78" data-menu-target="autoid_78">Synopsis</a></li><li><a class="page-menu-link" href="#autoid_79" data-menu-target="autoid_79">Description</a></li></ul> </div><a name="ref.directive.attempt"></a>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_78">Synopsis</h2>
-
-
-
-<pre class="metaTemplate">
-<code class="inline-code"><#attempt>
- <em class="code-color">attempt block</em>
-<#recover>
- <em class="code-color">recover block</em>
-</#attempt>
-</code>
-</pre>
-
-
- <p>Where:</p>
-
- <ul>
- <li>
- <code class="inline-code"><em class="code-color">attempt
- block</em></code>: Template block with any content.
- This will be always executed, but if an error occurs during
- that, all output from this block is rolled back, and the
- <code class="inline-code"><em class="code-color">recover block</em></code> will
- be executed.
- </li>
-
- <li>
- <code class="inline-code"><em class="code-color">recover
- block</em></code>: Template block with any content.
- This will be executed only if there was an error during the
- execution of the <code class="inline-code"><em class="code-color">attempt
- block</em></code>. You may print an error messages
- here and such.
- </li>
- </ul>
-
- <p>The <code class="inline-code"><em class="code-color">recover</em></code> is
- mandatory. <code class="inline-code">attempt</code>/<code class="inline-code">recover</code> can
- be nested freely into other <code class="inline-code"><em class="code-color">attempt
- block</em></code>s or <code class="inline-code"><em class="code-color">recover
- block</em></code>s.</p>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>The format shown here is supported starting from 2.3.3;
- earlier it was
- <code class="inline-code"><#attempt><em class="code-color">...</em><#recover><em class="code-color">...</em></#recover></code>,
- which is still supported for backward compatibility. Furthermore,
- these directives were introduced with FreeMarker 2.3.1, so they
- aren't exist in 2.3.</p>
- </div>
-
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_79">Description</h2>
-
-
- <p>These directives are used if you want the page successfully
- outputted even if the outputting of a certain part of the page
- fails. If an error occurs during the execution of the
- <code class="inline-code"><em class="code-color">attempt block</em></code>, then
- the template execution is not aborted, but the
- <code class="inline-code"><em class="code-color">recover block</em></code> is
- executed instead of the <code class="inline-code"><em class="code-color">attempt
- block</em></code>. If no error occurs during the
- execution of the <code class="inline-code"><em class="code-color">attempt
- block</em></code>, then the
- <code class="inline-code"><em class="code-color">recover block</em></code> is
- ignored. A simple example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">Primary content
-<#attempt>
- Optional content: ${thisMayFails}
-<#recover>
- Ops! The optional content is not available.
-</#attempt>
-Primary content continued</pre></div>
-
- <p>If the <code class="inline-code">thisMayFails</code> variable doesn't exist,
- then the output is:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">Primary content
- Ops! The optional content is not available.
-Primary content continued</pre></div>
-
- <p>If the <code class="inline-code">thisMayFails</code> variable exists and
- it's value is <code class="inline-code">123</code>, then the output is:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">Primary content
- Optional content: 123
-Primary content continued</pre></div>
-
- <p>The <code class="inline-code"><em class="code-color">attempt
- block</em></code> has an all-or-none semantic: either
- the entire content of the <code class="inline-code"><em class="code-color">attempt
- block</em></code> is output (when there was no error),
- or no output at all results from the execution of the
- <code class="inline-code"><em class="code-color">attempt block</em></code> (when
- there was an error). For example, above, the failure happens after
- "Optional content: " was printed, still it is not there
- in the output before the "Ops!". (<span class="marked-for-programmers">This is implemented with the aggressive
- buffering of the output inside the <code class="inline-code"><em class="code-color">attempt
- block</em></code>. Not even the <code class="inline-code">flush</code>
- directive will send the output to the client.</span>)</p>
-
- <p>To prevent misunderstandings coming from the above example:
- <code class="inline-code">attempt</code>/<code class="inline-code">recover</code> is not (only)
- for handling undefined variables (for that use <a href="dgui_template_exp.html#dgui_template_exp_missing">missing value handler
- operators</a>). It can handle all kind of errors that occurs when
- the block is executed (i.e. not syntactical errors, which are
- detected earlier). And it's meant to enclose bigger template
- fragments, where error can occur at various points. For example, you
- have a part in your template that deals with printing
- advertisements, but that's not the primary content of the page, so
- you don't want your whole page be down just because some error
- occurs with the printing of the advertisements (say, because of a
- temporal database server faliure). So you put the whole
- advertisement printing into an <code class="inline-code"><em class="code-color">attempt
- block</em></code>.</p>
-
- <p>In some environments programmers configure FreeMarker so that
- it doesn't abort template execution for certain errors, but
- continues execution, possibly after printing some error indicator to
- the output (<span class="marked-for-programmers">see more <a href="pgui_config_errorhandling.html">here...</a></span>). The
- <code class="inline-code">attempt</code> directive doesn't consider such
- suppressed errors as errors.</p>
-
- <p>Inside a <code class="inline-code"><em class="code-color">recover
- block</em></code> the error message of the error is
- available with the <code class="inline-code">error</code> <a href="ref_specvar.html">special variable</a>. Don't forget that
- references to special variable are started with dot (for example:
- <code class="inline-code">${.error}</code>).</p>
-
- <p><span class="marked-for-programmers">Errors occurring during template
- execution are always <a href="pgui_misc_logging.html">logged</a>, even if they occur inside
- an <code class="inline-code"><em class="code-color">attempt
- block</em></code>.</span></p>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_directive_assign.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_autoesc.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/ref_directive_autoesc.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_directive_autoesc.html b/builds/2.3.26-nightly/ref_directive_autoesc.html
deleted file mode 100644
index 6168252..0000000
--- a/builds/2.3.26-nightly/ref_directive_autoesc.html
+++ /dev/null
@@ -1,125 +0,0 @@
-<!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>autoesc - 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="autoesc">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_directive_autoesc.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_directive_autoesc.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directives.html"><span itemprop="name">Directive Reference</span></a></li><li class="step-
3" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directive_autoesc.html"><span itemprop="name">autoesc</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","Template Language Reference","Directive Reference","autoesc"];</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="ref_directive_attempt.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_compress.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="ref_directive_autoesc" itemprop="headline">autoesc</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_80" data-menu-target="autoid_80">Synopsis</a></li><li><a class="page-menu-link" href="#autoid_81" data-menu-target="autoid_81">Description</a></li></ul> </div><a name="ref.directive.autoesc"></a>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_80">Synopsis</h2>
-
-
-
-<pre class="metaTemplate"><code class="inline-code"><#autoesc>
- <em class="code-color">...</em>
-</#autoesc></code>
-</pre>
-
-
- <p>Camel case name variant: <code class="inline-code">autoEsc</code></p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_81">Description</h2>
-
-
- <p>Turns on <a href="dgui_misc_autoescaping.html">auto-escaping</a> in the nested
- section. Auto-escaping is usually enabled by default if the current
- <a href="dgui_misc_autoescaping.html#dgui_misc_autoescaping_outputformat">output
- format</a> has auto-escaping by default, so you rarely need this.
- Note that to escape just a single
- <code class="inline-code">${<em class="code-color">expression</em>}</code> where
- auto-escaping is disabled you should use
- <code class="inline-code">${<em class="code-color">expression</em>?esc}</code>
- instead.</p>
-
- <p>This directive only has effect on the section that is
- literally (as in the text editor) inside the nested bock, not on the
- parts that are called/included from there.</p>
-
- <p>Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#ftl output_format="XML" auto_esc=false>
-${"&"}
-<#autoesc>
- ${"&"}
- ...
- ${"&"}
-</#autoesc>
-${"&"}</pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">&
- &amp;
- ...
- &amp;
-&</pre></div>
-
- <p><code class="inline-code">autoesc</code> can't be used where the current
- <a href="dgui_misc_autoescaping.html#dgui_misc_autoescaping_outputformat">output
- format</a> is a <a href="dgui_misc_autoescaping.html#dgui_misc_autoescaping_nonmarkupof">non-markup output
- format</a> (and hence can't do escaping). Doing so is a <a href="gloss.html#gloss.parseTimeError">parse-time error</a>.</p>
-
- <p><code class="inline-code">autoesc</code> can also be used nested into <a href="ref_directive_noautoesc.html"><code>noautoesc</code>
- directive</a> to re-enable auto-escaping.</p>
-
- <p><code class="inline-code">autoesc</code> can be used on places where
- auto-escaping is already enabled, such as even inside another
- <code class="inline-code">autoesc</code> block. Doing so is redundant but
- allowed.</p>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_directive_attempt.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_compress.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>\u20132017
-<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>
[41/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/dgui_template_directives.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/dgui_template_directives.html b/builds/2.3.26-nightly/dgui_template_directives.html
deleted file mode 100644
index cbd5bcd..0000000
--- a/builds/2.3.26-nightly/dgui_template_directives.html
+++ /dev/null
@@ -1,136 +0,0 @@
-<!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>Directives - 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="Directives">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/dgui_template_directives.html">
-<link rel="canonical" href="http://freemarker.org/docs/dgui_template_directives.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="dgui.html"><span itemprop="name">Template Author's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="dgui_template.html"><span itemprop="name">The Template</span></a></li><li class="step-3" item
prop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="dgui_template_directives.html"><span itemprop="name">Directives</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","Template Author\'s Guide","The Template","Directives"];</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="dgui_template_overallstructure.html"><span>Previous</span></a><a class="paging-arrow next" href="dgui_template_exp.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="dgui_template_directives" itemprop="headline">Directives</h1>
-</div></div><a name="term.designer.directive"></a><p>You use FTL tags to call <strong>directives</strong>. In the example you have called the
- <code class="inline-code">list</code> directive. Syntactically you have done it with
- two tags: <code class="inline-code"><#list animals as animal></code> and
- <code class="inline-code"></#list></code>.</p><p>There are two kind of FTL tags:</p><ul>
- <li>
- <p>Start-tag:
- <code class="inline-code"><#<em class="code-color">directivename</em>
- <em class="code-color">parameters</em>></code></p>
- </li>
-
- <li>
- <p>End-tag:
- <code class="inline-code"></#<em class="code-color">directivename</em>></code></p>
- </li>
- </ul><p>This is similar to HTML or XML syntax, except that the tag name
- starts with <code class="inline-code">#</code>. If the directive doesn't have nested
- content (content between the start-tag and the end-tag), you must use
- the start-tag with no end-tag. For example you write <code class="inline-code"><#if
- <em class="code-color">something</em>><em class="code-color">...</em></#if></code>,
- but just <code class="inline-code"><#include
- <em class="code-color">something</em>></code> as FreeMarker knows
- that the <code class="inline-code">include</code> directive can't have nested
- content.</p><p>The format of the
- <code class="inline-code"><em class="code-color">parameters</em></code> depends on
- the
- <code class="inline-code"><em class="code-color">directivename</em></code>.</p><p>In fact there are two types of directives: <a href="gloss.html#gloss.predefinedDirective">predefined directives</a> and
- <a href="gloss.html#gloss.userDefinedDirective">user-defined
- directives</a>. For user-defined directives you use
- <code class="inline-code">@</code> instead of <code class="inline-code">#</code>, for example
- <code class="inline-code"><@mydirective
- <em class="code-color">parameters</em>><em class="code-color">...</em></@mydirective></code>.
- Further difference is that if the directive has no nested content, you
- must use a tag like <code class="inline-code"><@mydirective
- <em class="code-color">parameters</em> /></code>, similarly as in
- XML (e.g. <code class="inline-code"><img <em class="code-color">...</em>
- /></code>). But user-defined directives is an advanced topic
- that will be discussed <a href="dgui_misc_userdefdir.html">later</a>.</p><p>FTL tags, like HTML tags, must be properly nested. So the code
- below is wrong, as the <code class="inline-code">if</code> directive is both inside
- and outside of the nested content of the <code class="inline-code">list</code>
- directive:</p>
-
-<div class="code-wrapper"><pre class="code-block code-template"><ul>
-<strong><#list animals as animal></strong>
- <li>${animal.name} for ${animal.price} Euros
- <strong><#if user == "Big Joe"></strong>
- (except for you)
-<strong></#list></strong> <#-- WRONG! The "if" has to be closed first. -->
-<strong></#if></strong>
-</ul></pre></div><p>Note that FreeMarker doesn't care about the nesting of HTML
- tags, only about the nesting of FTL tags. It just sees HTML as flat
- text, it doesn't interpret it in any way.</p><p>If you try to use a non-existing directive (e.g., you mistype
- the directive name), FreeMarker will decline to use the template and
- produce an error message.</p><p>FreeMarker ignores superfluous <a href="gloss.html#gloss.whiteSpace">white-space</a> inside FTL tags. So you
- can write this:</p>
-
-<div class="code-wrapper"><pre class="code-block code-template"><span class="marked-text"><span class="marked-ftl-tag"><#list<em><span class="marked-invisible-text">[BR]</span></em>
-��animals�������as<em><span class="marked-invisible-text">[BR]</span></em>
-�����animal<em><span class="marked-invisible-text">[BR]</span></em>
-></span><em><span class="marked-invisible-text">[BR]</span></em>
-<span class="marked-interpolation">${animal.name}</span>�for�<span class="marked-interpolation">${animal.price}</span>�Euros<em><span class="marked-invisible-text">[BR]</span></em>
-<span class="marked-ftl-tag"></#list����></span></span></pre></div><p>You may not, however, insert white-space between the
- <code class="inline-code"><</code> or <code class="inline-code"></</code> and the directive
- name.</p><p>The complete list and description of all directives can be found
- in the <a href="ref_directives.html">Template Language Reference/Directive Reference</a> (but I recommend that you look
- at the chapter about expressions first).</p> <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>FreeMarker can be configured to 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> in the FTL tags and FTL comments, like
- <code class="inline-code">[#if user == "Big
- Joe"]<em class="code-color">...</em>[/#if]</code>. For more
- information read: <a href="dgui_misc_alternativesyntax.html">Miscellaneous/Alternative (square bracket) syntax</a>.</p>
- </div>
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>FreeMarker can be configured so that it understands predefined
- directives without <code class="inline-code">#</code> (like <code class="inline-code"><if user
- == "Big
- Joe"><em class="code-color">...</em></if></code>).
- However we don't recommend the usage of this mode. For more
- information read: <a href="ref_depr_oldsyntax.html">Template Language Reference/Deprecated FTL constructs/Old FTL syntax</a></p>
- </div>
-<div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="dgui_template_overallstructure.html"><span>Previous</span></a><a class="paging-arrow next" href="dgui_template_exp.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>\u20132017
-<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>
[46/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/detailed-toc.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/detailed-toc.html b/builds/2.3.26-nightly/detailed-toc.html
deleted file mode 100644
index 3d6ef00..0000000
--- a/builds/2.3.26-nightly/detailed-toc.html
+++ /dev/null
@@ -1,80 +0,0 @@
-<!doctype html>
-<!-- Generated by FreeMarker/Docgen from DocBook -->
-<html lang="en" class="page-type-docgen-detailed-toc">
-<head prefix="og: http://ogp.me/ns#">
-<meta charset="utf-8">
-<title>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="Apache FreeMarker Manual">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/index.html">
-<link rel="canonical" href="http://freemarker.org/docs/index.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"><span itemprop="name">Table of Contents</span></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 = [];</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"><span class="paging-arrow disabled previous"><span>Previous</span></span><a class="paging-arrow next" href="dgui.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-book" id="autoid_1" itemprop="headline">Apache FreeMarker Manual <span class="subtitle productname">For Freemarker 2.3.26</span>
-</h1>
-</div></div><div class="page-menu">
-<ul><li><a class="page-menu-link" href="dgui.html" data-menu-target="dgui">Template Author's Guide</a><ul><li><a class="page-menu-link" href="dgui_quickstart.html" data-menu-target="dgui_quickstart">Getting Started</a><ul><li><a class="page-menu-link" href="dgui_quickstart_basics.html" data-menu-target="dgui_quickstart_basics">Template + data-model = output</a></li><li><a class="page-menu-link" href="dgui_quickstart_datamodel.html" data-menu-target="dgui_quickstart_datamodel">The data-model at a glance</a></li><li><a class="page-menu-link" href="dgui_quickstart_template.html" data-menu-target="dgui_quickstart_template">The template at a glance</a><ul><li><a class="page-menu-link" href="dgui_quickstart_template.html#autoid_2" data-menu-target="autoid_2">Some basic directives</a><ul><li><a class="page-menu-link" href="dgui_quickstart_template.html#autoid_3" data-menu-target="autoid_3">The if directive</a></li><li><a class="page-menu-link" href="dgui_quickstart_template.html#autoid
_4" data-menu-target="autoid_4">The list directive</a></li><li><a class="page-menu-link" href="dgui_quickstart_template.html#autoid_5" data-menu-target="autoid_5">The include directive</a></li></ul></li><li><a class="page-menu-link" href="dgui_quickstart_template.html#autoid_6" data-menu-target="autoid_6">Using directives together</a></li><li><a class="page-menu-link" href="dgui_quickstart_template.html#autoid_7" data-menu-target="autoid_7">Using built-ins</a></li><li><a class="page-menu-link" href="dgui_quickstart_template.html#autoid_8" data-menu-target="autoid_8">Dealing with missing variables</a></li><li><a class="page-menu-link" href="dgui_quickstart_template.html#dgui_quickstart_template_autoescaping" data-menu-target="dgui_quickstart_template_autoescaping">Escaping for HTML, XML and other markup</a></li></ul></li></ul></li><li><a class="page-menu-link" href="dgui_datamodel.html" data-menu-target="dgui_datamodel">Values, Types</a><ul><li><a class="page-menu-link" href="dgui_da
tamodel_basics.html" data-menu-target="dgui_datamodel_basics">Basics</a><ul><li><a class="page-menu-link" href="dgui_datamodel_basics.html#topic.value" data-menu-target="topic.value">What is a value?</a></li><li><a class="page-menu-link" href="dgui_datamodel_basics.html#autoid_9" data-menu-target="autoid_9">What is type?</a></li><li><a class="page-menu-link" href="dgui_datamodel_basics.html#autoid_10" data-menu-target="autoid_10">The data-model is a hash</a></li></ul></li><li><a class="page-menu-link" href="dgui_datamodel_types.html" data-menu-target="dgui_datamodel_types">The types</a><ul><li><a class="page-menu-link" href="dgui_datamodel_types.html#dgui_datamodel_scalar" data-menu-target="dgui_datamodel_scalar">Scalars</a></li><li><a class="page-menu-link" href="dgui_datamodel_types.html#dgui_datamodel_container" data-menu-target="dgui_datamodel_container">Containers</a></li><li><a class="page-menu-link" href="dgui_datamodel_types.html#autoid_11" data-menu-target="autoid_11">Subro
utines</a><ul><li><a class="page-menu-link" href="dgui_datamodel_types.html#dgui_datamodel_method" data-menu-target="dgui_datamodel_method">Methods and functions</a></li><li><a class="page-menu-link" href="dgui_datamodel_types.html#dgui_datamodel_userdefdir" data-menu-target="dgui_datamodel_userdefdir">User-defined directives</a></li><li><a class="page-menu-link" href="dgui_datamodel_types.html#autoid_12" data-menu-target="autoid_12">Function/method versus user-defined directive</a></li></ul></li><li><a class="page-menu-link" href="dgui_datamodel_types.html#autoid_13" data-menu-target="autoid_13">Miscellaneous</a><ul><li><a class="page-menu-link" href="dgui_datamodel_types.html#dgui_datamodel_node" data-menu-target="dgui_datamodel_node">Nodes</a></li><li><a class="page-menu-link" href="dgui_datamodel_types.html#dgui_datamodel_markupoutput" data-menu-target="dgui_datamodel_markupoutput">Markup output</a></li></ul></li></ul></li></ul></li><li><a class="page-menu-link" href="dgui_templ
ate.html" data-menu-target="dgui_template">The Template</a><ul><li><a class="page-menu-link" href="dgui_template_overallstructure.html" data-menu-target="dgui_template_overallstructure">Overall structure</a></li><li><a class="page-menu-link" href="dgui_template_directives.html" data-menu-target="dgui_template_directives">Directives</a></li><li><a class="page-menu-link" href="dgui_template_exp.html" data-menu-target="dgui_template_exp">Expressions</a><ul><li><a class="page-menu-link" href="dgui_template_exp.html#exp_cheatsheet" data-menu-target="exp_cheatsheet">Quick overview (cheat sheet)</a></li><li><a class="page-menu-link" href="dgui_template_exp.html#dgui_template_exp_direct" data-menu-target="dgui_template_exp_direct">Specify values directly</a><ul><li><a class="page-menu-link" href="dgui_template_exp.html#dgui_template_exp_direct_string" data-menu-target="dgui_template_exp_direct_string">Strings</a></li><li><a class="page-menu-link" href="dgui_template_exp.html#dgui_template_e
xp_direct_number" data-menu-target="dgui_template_exp_direct_number">Numbers</a></li><li><a class="page-menu-link" href="dgui_template_exp.html#dgui_template_exp_direct_boolean" data-menu-target="dgui_template_exp_direct_boolean">Booleans</a></li><li><a class="page-menu-link" href="dgui_template_exp.html#dgui_template_exp_direct_seuqence" data-menu-target="dgui_template_exp_direct_seuqence">Sequences</a></li><li><a class="page-menu-link" href="dgui_template_exp.html#dgui_template_exp_direct_ranges" data-menu-target="dgui_template_exp_direct_ranges">Ranges</a></li><li><a class="page-menu-link" href="dgui_template_exp.html#dgui_template_exp_direct_hash" data-menu-target="dgui_template_exp_direct_hash">Hashes</a></li></ul></li><li><a class="page-menu-link" href="dgui_template_exp.html#dgui_template_exp_var" data-menu-target="dgui_template_exp_var">Retrieving variables</a><ul><li><a class="page-menu-link" href="dgui_template_exp.html#dgui_template_exp_var_toplevel" data-menu-target="dgu
i_template_exp_var_toplevel">Top-level variables</a></li><li><a class="page-menu-link" href="dgui_template_exp.html#dgui_template_exp_var_hash" data-menu-target="dgui_template_exp_var_hash">Retrieving data from a hash</a></li><li><a class="page-menu-link" href="dgui_template_exp.html#dgui_template_exp_var_sequence" data-menu-target="dgui_template_exp_var_sequence">Retrieving data from a sequence</a></li><li><a class="page-menu-link" href="dgui_template_exp.html#dgui_template_exp_var_special" data-menu-target="dgui_template_exp_var_special">Special variables</a></li></ul></li><li><a class="page-menu-link" href="dgui_template_exp.html#dgui_template_exp_stringop" data-menu-target="dgui_template_exp_stringop">String operations</a><ul><li><a class="page-menu-link" href="dgui_template_exp.html#dgui_template_exp_stringop_interpolation" data-menu-target="dgui_template_exp_stringop_interpolation">Interpolation and concatenation</a></li><li><a class="page-menu-link" href="dgui_template_exp.ht
ml#dgui_template_exp_get_character" data-menu-target="dgui_template_exp_get_character">Getting a character</a></li><li><a class="page-menu-link" href="dgui_template_exp.html#dgui_template_exp_stringop_slice" data-menu-target="dgui_template_exp_stringop_slice">String slicing (substrings)</a></li></ul></li><li><a class="page-menu-link" href="dgui_template_exp.html#dgui_template_exp_sequenceop" data-menu-target="dgui_template_exp_sequenceop">Sequence operations</a><ul><li><a class="page-menu-link" href="dgui_template_exp.html#dgui_template_exp_sequenceop_cat" data-menu-target="dgui_template_exp_sequenceop_cat">Concatenation</a></li><li><a class="page-menu-link" href="dgui_template_exp.html#dgui_template_exp_seqenceop_slice" data-menu-target="dgui_template_exp_seqenceop_slice">Sequence slicing</a></li></ul></li><li><a class="page-menu-link" href="dgui_template_exp.html#dgui_template_exp_hashop" data-menu-target="dgui_template_exp_hashop">Hash operations</a><ul><li><a class="page-menu-li
nk" href="dgui_template_exp.html#dgui_template_exp_hashop_cat" data-menu-target="dgui_template_exp_hashop_cat">Concatenation</a></li></ul></li><li><a class="page-menu-link" href="dgui_template_exp.html#dgui_template_exp_arit" data-menu-target="dgui_template_exp_arit">Arithmetical calculations</a></li><li><a class="page-menu-link" href="dgui_template_exp.html#dgui_template_exp_comparison" data-menu-target="dgui_template_exp_comparison">Comparison</a></li><li><a class="page-menu-link" href="dgui_template_exp.html#dgui_template_exp_logicalop" data-menu-target="dgui_template_exp_logicalop">Logical operations</a></li><li><a class="page-menu-link" href="dgui_template_exp.html#dgui_template_exp_builtin" data-menu-target="dgui_template_exp_builtin">Built-ins</a></li><li><a class="page-menu-link" href="dgui_template_exp.html#dgui_template_exp_methodcall" data-menu-target="dgui_template_exp_methodcall">Method call</a></li><li><a class="page-menu-link" href="dgui_template_exp.html#dgui_templat
e_exp_missing" data-menu-target="dgui_template_exp_missing">Handling missing values</a><ul><li><a class="page-menu-link" href="dgui_template_exp.html#dgui_template_exp_missing_default" data-menu-target="dgui_template_exp_missing_default">Default value operator</a></li><li><a class="page-menu-link" href="dgui_template_exp.html#dgui_template_exp_missing_test" data-menu-target="dgui_template_exp_missing_test">Missing value test operator</a></li></ul></li><li><a class="page-menu-link" href="dgui_template_exp.html#dgui_template_exp_assignment" data-menu-target="dgui_template_exp_assignment">Assignment Operators</a></li><li><a class="page-menu-link" href="dgui_template_exp.html#dgui_template_exp_parentheses" data-menu-target="dgui_template_exp_parentheses">Parentheses</a></li><li><a class="page-menu-link" href="dgui_template_exp.html#dgui_template_exp_whitespace" data-menu-target="dgui_template_exp_whitespace">White-space in expressions</a></li><li><a class="page-menu-link" href="dgui_tem
plate_exp.html#dgui_template_exp_precedence" data-menu-target="dgui_template_exp_precedence">Operator precedence</a></li></ul></li><li><a class="page-menu-link" href="dgui_template_valueinsertion.html" data-menu-target="dgui_template_valueinsertion">Interpolations</a><ul><li><a class="page-menu-link" href="dgui_template_valueinsertion.html#autoid_14" data-menu-target="autoid_14">Overview</a></li><li><a class="page-menu-link" href="dgui_template_valueinsertion.html#autoid_15" data-menu-target="autoid_15">Automatic escaping</a></li><li><a class="page-menu-link" href="dgui_template_valueinsertion.html#autoid_16" data-menu-target="autoid_16">Guide to inserting numerical values</a></li><li><a class="page-menu-link" href="dgui_template_valueinsertion.html#dgui_template_valueinserion_universal_date" data-menu-target="dgui_template_valueinserion_universal_date">Guide to inserting date/time/date-time values</a></li><li><a class="page-menu-link" href="dgui_template_valueinsertion.html#autoid_
17" data-menu-target="autoid_17">Guide to inserting boolean values</a></li><li><a class="page-menu-link" href="dgui_template_valueinsertion.html#autoid_18" data-menu-target="autoid_18">Exact conversion rules</a></li></ul></li></ul></li><li><a class="page-menu-link" href="dgui_misc.html" data-menu-target="dgui_misc">Miscellaneous</a><ul><li><a class="page-menu-link" href="dgui_misc_userdefdir.html" data-menu-target="dgui_misc_userdefdir">Defining your own directives</a><ul><li><a class="page-menu-link" href="dgui_misc_userdefdir.html#autoid_19" data-menu-target="autoid_19">Basics</a></li><li><a class="page-menu-link" href="dgui_misc_userdefdir.html#autoid_20" data-menu-target="autoid_20">Parameters</a></li><li><a class="page-menu-link" href="dgui_misc_userdefdir.html#autoid_21" data-menu-target="autoid_21">Nested content</a></li><li><a class="page-menu-link" href="dgui_misc_userdefdir.html#dgui_misc_userdefdir_loopvar" data-menu-target="dgui_misc_userdefdir_loopvar">Macros with loop
variables</a></li><li><a class="page-menu-link" href="dgui_misc_userdefdir.html#autoid_22" data-menu-target="autoid_22">More about user-defined directives and macros</a></li></ul></li><li><a class="page-menu-link" href="dgui_misc_var.html" data-menu-target="dgui_misc_var">Defining variables in the template</a></li><li><a class="page-menu-link" href="dgui_misc_namespace.html" data-menu-target="dgui_misc_namespace">Namespaces</a><ul><li><a class="page-menu-link" href="dgui_misc_namespace.html#autoid_23" data-menu-target="autoid_23">Creating a library</a></li><li><a class="page-menu-link" href="dgui_misc_namespace.html#autoid_24" data-menu-target="autoid_24">Writing the variables of imported namespaces</a></li><li><a class="page-menu-link" href="dgui_misc_namespace.html#autoid_25" data-menu-target="autoid_25">Namespaces and data-model</a></li><li><a class="page-menu-link" href="dgui_misc_namespace.html#autoid_26" data-menu-target="autoid_26">The life-cycle of namespaces</a></li><li><a
class="page-menu-link" href="dgui_misc_namespace.html#autoid_27" data-menu-target="autoid_27">Auto-importing</a></li></ul></li><li><a class="page-menu-link" href="dgui_misc_autoescaping.html" data-menu-target="dgui_misc_autoescaping">Auto-escaping and output formats</a><ul><li><a class="page-menu-link" href="dgui_misc_autoescaping.html#dgui_misc_autoescaping_outputformat" data-menu-target="dgui_misc_autoescaping_outputformat">Output formats</a></li><li><a class="page-menu-link" href="dgui_misc_autoescaping.html#dgui_misc_autoescaping_overrideoformat" data-menu-target="dgui_misc_autoescaping_overrideoformat">Overriding the output format in templates</a></li><li><a class="page-menu-link" href="dgui_misc_autoescaping.html#dgui_misc_autoescaping_disableautoesc" data-menu-target="dgui_misc_autoescaping_disableautoesc">Disabling auto escaping</a></li><li><a class="page-menu-link" href="dgui_misc_autoescaping.html#dgui_misc_autoescaping_movalues" data-menu-target="dgui_misc_autoescaping_mo
values">"Markup output" values</a></li><li><a class="page-menu-link" href="dgui_misc_autoescaping.html#autoid_28" data-menu-target="autoid_28">Further details and tricky cases</a><ul><li><a class="page-menu-link" href="dgui_misc_autoescaping.html#dgui_misc_autoescaping_nonmarkupof" data-menu-target="dgui_misc_autoescaping_nonmarkupof">Non-markup output formats</a></li><li><a class="page-menu-link" href="dgui_misc_autoescaping.html#dgui_misc_autoescaping_mixingoutputformats" data-menu-target="dgui_misc_autoescaping_mixingoutputformats">Inserting markup output values from other markups</a></li><li><a class="page-menu-link" href="dgui_misc_autoescaping.html#dgui_misc_autoescaping_concatenation" data-menu-target="dgui_misc_autoescaping_concatenation">Markup output values and the "+"
-operator</a></li><li><a class="page-menu-link" href="dgui_misc_autoescaping.html#dgui_misc_autoescaping_stringliteral" data-menu-target="dgui_misc_autoescaping_stringliteral">${...} inside string literals</a></li><li><a class="page-menu-link" href="dgui_misc_autoescaping.html#autoid_29" data-menu-target="autoid_29">Combined output formats</a></li></ul></li></ul></li><li><a class="page-menu-link" href="dgui_misc_whitespace.html" data-menu-target="dgui_misc_whitespace">White-space handling</a><ul><li><a class="page-menu-link" href="dgui_misc_whitespace.html#dgui_misc_whitespace_stripping" data-menu-target="dgui_misc_whitespace_stripping">White-space stripping</a></li><li><a class="page-menu-link" href="dgui_misc_whitespace.html#autoid_30" data-menu-target="autoid_30">Using compress directive</a></li></ul></li><li><a class="page-menu-link" href="dgui_misc_alternativesyntax.html" data-menu-target="dgui_misc_alternativesyntax">Alternative (square bracket) syntax</a></li></ul></li></ul></
li><li><a class="page-menu-link" href="pgui.html" data-menu-target="pgui">Programmer's Guide</a><ul><li><a class="page-menu-link" href="pgui_quickstart.html" data-menu-target="pgui_quickstart">Getting Started</a><ul><li><a class="page-menu-link" href="pgui_quickstart_createconfiguration.html" data-menu-target="pgui_quickstart_createconfiguration">Create a configuration instance</a></li><li><a class="page-menu-link" href="pgui_quickstart_createdatamodel.html" data-menu-target="pgui_quickstart_createdatamodel">Create a data-model</a></li><li><a class="page-menu-link" href="pgui_quickstart_gettemplate.html" data-menu-target="pgui_quickstart_gettemplate">Get the template</a></li><li><a class="page-menu-link" href="pgui_quickstart_merge.html" data-menu-target="pgui_quickstart_merge">Merging the template with the data-model</a></li><li><a class="page-menu-link" href="pgui_quickstart_all.html" data-menu-target="pgui_quickstart_all">Putting all together</a></li></ul></li><li><a class="p
age-menu-link" href="pgui_datamodel.html" data-menu-target="pgui_datamodel">The Data Model</a><ul><li><a class="page-menu-link" href="pgui_datamodel_basics.html" data-menu-target="pgui_datamodel_basics">Basics</a></li><li><a class="page-menu-link" href="pgui_datamodel_scalar.html" data-menu-target="pgui_datamodel_scalar">Scalars</a><ul><li><a class="page-menu-link" href="pgui_datamodel_scalar.html#autoid_31" data-menu-target="autoid_31">Difficulties with the "date-like" types</a></li></ul></li><li><a class="page-menu-link" href="pgui_datamodel_parent.html" data-menu-target="pgui_datamodel_parent">Containers</a><ul><li><a class="page-menu-link" href="pgui_datamodel_parent.html#autoid_32" data-menu-target="autoid_32">Hashes</a></li><li><a class="page-menu-link" href="pgui_datamodel_parent.html#autoid_33" data-menu-target="autoid_33">Sequences</a></li><li><a class="page-menu-link" href="pgui_datamodel_parent.html#autoid_34" data-menu-target="autoid_34">Collections</a></li></ul></li><li
><a class="page-menu-link" href="pgui_datamodel_method.html" data-menu-target="pgui_datamodel_method">Methods</a></li><li><a class="page-menu-link" href="pgui_datamodel_directive.html" data-menu-target="pgui_datamodel_directive">Directives</a><ul><li><a class="page-menu-link" href="pgui_datamodel_directive.html#autoid_35" data-menu-target="autoid_35">Example 1</a></li><li><a class="page-menu-link" href="pgui_datamodel_directive.html#autoid_36" data-menu-target="autoid_36">Example 2</a></li><li><a class="page-menu-link" href="pgui_datamodel_directive.html#autoid_37" data-menu-target="autoid_37">Notices</a></li></ul></li><li><a class="page-menu-link" href="pgui_datamodel_node.html" data-menu-target="pgui_datamodel_node">Node variables</a></li><li><a class="page-menu-link" href="pgui_datamodel_objectWrapper.html" data-menu-target="pgui_datamodel_objectWrapper">Object wrappers</a><ul><li><a class="page-menu-link" href="pgui_datamodel_objectWrapper.html#pgui_datamodel_defaultObjectWrappe
r" data-menu-target="pgui_datamodel_defaultObjectWrapper">The default object wrapper</a></li><li><a class="page-menu-link" href="pgui_datamodel_objectWrapper.html#pgui_datamodel_customObjectWrappingExample" data-menu-target="pgui_datamodel_customObjectWrappingExample">Custom object wrapping example</a></li></ul></li></ul></li><li><a class="page-menu-link" href="pgui_config.html" data-menu-target="pgui_config">The Configuration</a><ul><li><a class="page-menu-link" href="pgui_config_basics.html" data-menu-target="pgui_config_basics">Basics</a></li><li><a class="page-menu-link" href="pgui_config_sharedvariables.html" data-menu-target="pgui_config_sharedvariables">Shared variables</a></li><li><a class="page-menu-link" href="pgui_config_settings.html" data-menu-target="pgui_config_settings">Settings</a></li><li><a class="page-menu-link" href="pgui_config_templateloading.html" data-menu-target="pgui_config_templateloading">Template loading</a><ul><li><a class="page-menu-link" href="pgui_c
onfig_templateloading.html#autoid_38" data-menu-target="autoid_38">Template loaders</a><ul><li><a class="page-menu-link" href="pgui_config_templateloading.html#autoid_39" data-menu-target="autoid_39">Built-in template loaders</a></li><li><a class="page-menu-link" href="pgui_config_templateloading.html#autoid_40" data-menu-target="autoid_40">Loading templates from multiple locations</a></li><li><a class="page-menu-link" href="pgui_config_templateloading.html#autoid_41" data-menu-target="autoid_41">Loading templates from other sources</a></li><li><a class="page-menu-link" href="pgui_config_templateloading.html#autoid_42" data-menu-target="autoid_42">The template name (template path)</a></li></ul></li><li><a class="page-menu-link" href="pgui_config_templateloading.html#pgui_config_templateloading_caching" data-menu-target="pgui_config_templateloading_caching">Template caching</a></li></ul></li><li><a class="page-menu-link" href="pgui_config_errorhandling.html" data-menu-target="pgui_co
nfig_errorhandling">Error handling</a><ul><li><a class="page-menu-link" href="pgui_config_errorhandling.html#autoid_43" data-menu-target="autoid_43">The possible exceptions</a></li><li><a class="page-menu-link" href="pgui_config_errorhandling.html#autoid_44" data-menu-target="autoid_44">Customizing the behavior regarding TemplatException-s</a></li><li><a class="page-menu-link" href="pgui_config_errorhandling.html#autoid_45" data-menu-target="autoid_45">TemplateException logging</a></li><li><a class="page-menu-link" href="pgui_config_errorhandling.html#autoid_46" data-menu-target="autoid_46">Explicit error handling in templates</a></li></ul></li><li><a class="page-menu-link" href="pgui_config_templateconfigurations.html" data-menu-target="pgui_config_templateconfigurations">Template configurations</a></li><li><a class="page-menu-link" href="pgui_config_outputformatsautoesc.html" data-menu-target="pgui_config_outputformatsautoesc">Associating output formats with templates</a></li><li>
<a class="page-menu-link" href="pgui_config_custom_formats.html" data-menu-target="pgui_config_custom_formats">Custom number and date/time formats</a><ul><li><a class="page-menu-link" href="pgui_config_custom_formats.html#autoid_50" data-menu-target="autoid_50">Overview</a></li><li><a class="page-menu-link" href="pgui_config_custom_formats.html#pgui_config_custom_formats_ex_cust_alg_simple" data-menu-target="pgui_config_custom_formats_ex_cust_alg_simple">Simple custom number format example</a></li><li><a class="page-menu-link" href="pgui_config_custom_formats.html#pgui_config_custom_formats_ex_cust_algo_advanced" data-menu-target="pgui_config_custom_formats_ex_cust_algo_advanced">Advanced custom number format example</a></li><li><a class="page-menu-link" href="pgui_config_custom_formats.html#pgui_config_custom_formats_ex_cust_algo_date" data-menu-target="pgui_config_custom_formats_ex_cust_algo_date">Custom date/time format example</a></li><li><a class="page-menu-link" href="pgui_con
fig_custom_formats.html#pgui_config_custom_formats_ex_alias" data-menu-target="pgui_config_custom_formats_ex_alias">Alias format example</a></li><li><a class="page-menu-link" href="pgui_config_custom_formats.html#pgui_config_custom_formats_ex_model_aware" data-menu-target="pgui_config_custom_formats_ex_model_aware">Model-aware format example</a></li></ul></li><li><a class="page-menu-link" href="pgui_config_incompatible_improvements.html" data-menu-target="pgui_config_incompatible_improvements">The "incompatible improvements" setting</a><ul><li><a class="page-menu-link" href="pgui_config_incompatible_improvements.html#autoid_51" data-menu-target="autoid_51">What does it do</a></li><li><a class="page-menu-link" href="pgui_config_incompatible_improvements.html#pgui_config_incompatible_improvements_how_to_set" data-menu-target="pgui_config_incompatible_improvements_how_to_set">How to set it</a></li></ul></li></ul></li><li><a class="page-menu-link" href="pgui_misc.html" data-me
nu-target="pgui_misc">Miscellaneous</a><ul><li><a class="page-menu-link" href="pgui_misc_var.html" data-menu-target="pgui_misc_var">Variables, scopes</a></li><li><a class="page-menu-link" href="pgui_misc_charset.html" data-menu-target="pgui_misc_charset">Charset issues</a><ul><li><a class="page-menu-link" href="pgui_misc_charset.html#autoid_52" data-menu-target="autoid_52">The charset of the input</a></li><li><a class="page-menu-link" href="pgui_misc_charset.html#autoid_53" data-menu-target="autoid_53">The charset of the output</a></li></ul></li><li><a class="page-menu-link" href="pgui_misc_multithreading.html" data-menu-target="pgui_misc_multithreading">Multithreading</a></li><li><a class="page-menu-link" href="pgui_misc_beanwrapper.html" data-menu-target="pgui_misc_beanwrapper">Bean wrapper</a><ul><li><a class="page-menu-link" href="pgui_misc_beanwrapper.html#beanswrapper_hash" data-menu-target="beanswrapper_hash">TemplateHashModel functionality</a></li><li><a class="page-menu-lin
k" href="pgui_misc_beanwrapper.html#autoid_54" data-menu-target="autoid_54">A word on security</a></li><li><a class="page-menu-link" href="pgui_misc_beanwrapper.html#autoid_55" data-menu-target="autoid_55">TemplateScalarModel functionality</a></li><li><a class="page-menu-link" href="pgui_misc_beanwrapper.html#autoid_56" data-menu-target="autoid_56">TemplateNumberModel functionality</a></li><li><a class="page-menu-link" href="pgui_misc_beanwrapper.html#autoid_57" data-menu-target="autoid_57">TemplateCollectionModel functionality</a></li><li><a class="page-menu-link" href="pgui_misc_beanwrapper.html#autoid_58" data-menu-target="autoid_58">TemplateSequenceModel functionality</a></li><li><a class="page-menu-link" href="pgui_misc_beanwrapper.html#beanswrapper_method" data-menu-target="beanswrapper_method">TemplateMethodModel functionality</a></li><li><a class="page-menu-link" href="pgui_misc_beanwrapper.html#autoid_59" data-menu-target="autoid_59">Unwrapping rules</a></li><li><a class="p
age-menu-link" href="pgui_misc_beanwrapper.html#autoid_60" data-menu-target="autoid_60">Accessing static methods</a></li><li><a class="page-menu-link" href="pgui_misc_beanwrapper.html#jdk_15_enums" data-menu-target="jdk_15_enums">Accessing enums</a></li></ul></li><li><a class="page-menu-link" href="pgui_misc_logging.html" data-menu-target="pgui_misc_logging">Logging</a><ul><li><a class="page-menu-link" href="pgui_misc_logging.html#autoid_61" data-menu-target="autoid_61">Logging library selection</a></li><li><a class="page-menu-link" href="pgui_misc_logging.html#autoid_62" data-menu-target="autoid_62">Logging categories</a></li></ul></li><li><a class="page-menu-link" href="pgui_misc_servlet.html" data-menu-target="pgui_misc_servlet">Using FreeMarker with servlets</a><ul><li><a class="page-menu-link" href="pgui_misc_servlet.html#pgui_misc_servlet_model2" data-menu-target="pgui_misc_servlet_model2">Using FreeMarker for "Model 2"</a></li><li><a class="page-menu-link" href="pgui_misc_ser
vlet.html#pgui_misc_servlet_include" data-menu-target="pgui_misc_servlet_include">Including content from other web application
-resources</a></li><li><a class="page-menu-link" href="pgui_misc_servlet.html#autoid_63" data-menu-target="autoid_63">Using JSP custom tags in FTL</a></li><li><a class="page-menu-link" href="pgui_misc_servlet.html#autoid_64" data-menu-target="autoid_64">Embed FTL into JSP pages</a></li></ul></li><li><a class="page-menu-link" href="pgui_misc_secureenv.html" data-menu-target="pgui_misc_secureenv">Configuring security policy for FreeMarker</a></li><li><a class="page-menu-link" href="pgui_misc_xml_legacy.html" data-menu-target="pgui_misc_xml_legacy">Legacy XML wrapper implementation</a><ul><li><a class="page-menu-link" href="pgui_misc_xml_legacy.html#autoid_65" data-menu-target="autoid_65">TemplateScalarModel</a></li><li><a class="page-menu-link" href="pgui_misc_xml_legacy.html#autoid_66" data-menu-target="autoid_66">TemplateCollectionModel</a></li><li><a class="page-menu-link" href="pgui_misc_xml_legacy.html#autoid_67" data-menu-target="autoid_67">TemplateSequenceModel</a></li><li><a cl
ass="page-menu-link" href="pgui_misc_xml_legacy.html#autoid_68" data-menu-target="autoid_68">TemplateHashModel</a></li><li><a class="page-menu-link" href="pgui_misc_xml_legacy.html#autoid_69" data-menu-target="autoid_69">TemplateMethodModel</a></li><li><a class="page-menu-link" href="pgui_misc_xml_legacy.html#autoid_70" data-menu-target="autoid_70">Namespace handling</a></li></ul></li><li><a class="page-menu-link" href="pgui_misc_ant.html" data-menu-target="pgui_misc_ant">Using FreeMarker with Ant</a></li><li><a class="page-menu-link" href="pgui_misc_jythonwrapper.html" data-menu-target="pgui_misc_jythonwrapper">Jython wrapper</a><ul><li><a class="page-menu-link" href="pgui_misc_jythonwrapper.html#autoid_71" data-menu-target="autoid_71">TemplateHashModel functionality</a></li><li><a class="page-menu-link" href="pgui_misc_jythonwrapper.html#autoid_72" data-menu-target="autoid_72">TemplateScalarModel functionality</a></li><li><a class="page-menu-link" href="pgui_misc_jythonwrapper.htm
l#autoid_73" data-menu-target="autoid_73">TemplateBooleanModel functionality</a></li><li><a class="page-menu-link" href="pgui_misc_jythonwrapper.html#autoid_74" data-menu-target="autoid_74">TemplateNumberModel functionality</a></li><li><a class="page-menu-link" href="pgui_misc_jythonwrapper.html#autoid_75" data-menu-target="autoid_75">TemplateSequenceModel functionality</a></li></ul></li></ul></li></ul></li><li><a class="page-menu-link" href="ref.html" data-menu-target="ref">Template Language Reference</a><ul><li><a class="page-menu-link" href="ref_builtins.html" data-menu-target="ref_builtins">Built-in Reference</a><ul><li><a class="page-menu-link" href="ref_builtins_alphaidx.html" data-menu-target="ref_builtins_alphaidx">Alphabetical index</a></li><li><a class="page-menu-link" href="ref_builtins_string.html" data-menu-target="ref_builtins_string">Built-ins for strings</a><ul><li><a class="page-menu-link" href="ref_builtins_string.html#ref_builtin_boolean" data-menu-target="ref_bui
ltin_boolean">boolean</a></li><li><a class="page-menu-link" href="ref_builtins_string.html#ref_builtin_cap_first" data-menu-target="ref_builtin_cap_first">cap_first</a></li><li><a class="page-menu-link" href="ref_builtins_string.html#ref_builtin_capitalize" data-menu-target="ref_builtin_capitalize">capitalize</a></li><li><a class="page-menu-link" href="ref_builtins_string.html#ref_builtin_chop_linebreak" data-menu-target="ref_builtin_chop_linebreak">chop_linebreak</a></li><li><a class="page-menu-link" href="ref_builtins_string.html#ref_builtin_contains" data-menu-target="ref_builtin_contains">contains</a></li><li><a class="page-menu-link" href="ref_builtins_string.html#ref_builtin_string_date" data-menu-target="ref_builtin_string_date">date, time, datetime</a></li><li><a class="page-menu-link" href="ref_builtins_string.html#ref_builtin_ends_with" data-menu-target="ref_builtin_ends_with">ends_with</a></li><li><a class="page-menu-link" href="ref_builtins_string.html#ref_builtin_ensure
_ends_with" data-menu-target="ref_builtin_ensure_ends_with">ensure_ends_with</a></li><li><a class="page-menu-link" href="ref_builtins_string.html#ref_builtin_ensure_starts_with" data-menu-target="ref_builtin_ensure_starts_with">ensure_starts_with</a></li><li><a class="page-menu-link" href="ref_builtins_string.html#ref_builtin_esc" data-menu-target="ref_builtin_esc">esc</a></li><li><a class="page-menu-link" href="ref_builtins_string.html#ref_builtin_groups" data-menu-target="ref_builtin_groups">groups</a></li><li><a class="page-menu-link" href="ref_builtins_string.html#ref_builtin_html" data-menu-target="ref_builtin_html">html (deprecated)</a></li><li><a class="page-menu-link" href="ref_builtins_string.html#ref_builtin_index_of" data-menu-target="ref_builtin_index_of">index_of</a></li><li><a class="page-menu-link" href="ref_builtins_string.html#ref_builtin_j_string" data-menu-target="ref_builtin_j_string">j_string</a></li><li><a class="page-menu-link" href="ref_builtins_string.html#r
ef_builtin_js_string" data-menu-target="ref_builtin_js_string">js_string</a></li><li><a class="page-menu-link" href="ref_builtins_string.html#ref_builtin_json_string" data-menu-target="ref_builtin_json_string">json_string</a></li><li><a class="page-menu-link" href="ref_builtins_string.html#ref_builtin_keep_after" data-menu-target="ref_builtin_keep_after">keep_after</a></li><li><a class="page-menu-link" href="ref_builtins_string.html#ref_builtin_keep_after_last" data-menu-target="ref_builtin_keep_after_last">keep_after_last</a></li><li><a class="page-menu-link" href="ref_builtins_string.html#ref_builtin_keep_before" data-menu-target="ref_builtin_keep_before">keep_before</a></li><li><a class="page-menu-link" href="ref_builtins_string.html#ref_builtin_keep_before_last" data-menu-target="ref_builtin_keep_before_last">keep_before_last</a></li><li><a class="page-menu-link" href="ref_builtins_string.html#ref_builtin_last_index_of" data-menu-target="ref_builtin_last_index_of">last_index_of<
/a></li><li><a class="page-menu-link" href="ref_builtins_string.html#ref_builtin_left_pad" data-menu-target="ref_builtin_left_pad">left_pad</a></li><li><a class="page-menu-link" href="ref_builtins_string.html#ref_builtin_length" data-menu-target="ref_builtin_length">length</a></li><li><a class="page-menu-link" href="ref_builtins_string.html#ref_builtin_lower_case" data-menu-target="ref_builtin_lower_case">lower_case</a></li><li><a class="page-menu-link" href="ref_builtins_string.html#ref_builtin_matches" data-menu-target="ref_builtin_matches">matches</a></li><li><a class="page-menu-link" href="ref_builtins_string.html#ref_builtin_no_esc" data-menu-target="ref_builtin_no_esc">no_esc</a></li><li><a class="page-menu-link" href="ref_builtins_string.html#ref_builtin_number" data-menu-target="ref_builtin_number">number</a></li><li><a class="page-menu-link" href="ref_builtins_string.html#ref_builtin_replace" data-menu-target="ref_builtin_replace">replace</a></li><li><a class="page-menu-lin
k" href="ref_builtins_string.html#ref_builtin_right_pad" data-menu-target="ref_builtin_right_pad">right_pad</a></li><li><a class="page-menu-link" href="ref_builtins_string.html#ref_builtin_remove_beginning" data-menu-target="ref_builtin_remove_beginning">remove_beginning</a></li><li><a class="page-menu-link" href="ref_builtins_string.html#ref_builtin_remove_ending" data-menu-target="ref_builtin_remove_ending">remove_ending</a></li><li><a class="page-menu-link" href="ref_builtins_string.html#ref_builtin_rtf" data-menu-target="ref_builtin_rtf">rtf (deprecated)</a></li><li><a class="page-menu-link" href="ref_builtins_string.html#ref_builtin_split" data-menu-target="ref_builtin_split">split</a></li><li><a class="page-menu-link" href="ref_builtins_string.html#ref_builtin_starts_with" data-menu-target="ref_builtin_starts_with">starts_with</a></li><li><a class="page-menu-link" href="ref_builtins_string.html#ref_builtin_string_for_string" data-menu-target="ref_builtin_string_for_string">str
ing (when used with a string value)</a></li><li><a class="page-menu-link" href="ref_builtins_string.html#ref_builtin_substring" data-menu-target="ref_builtin_substring">substring (deprecated)</a></li><li><a class="page-menu-link" href="ref_builtins_string.html#ref_builtin_trim" data-menu-target="ref_builtin_trim">trim</a></li><li><a class="page-menu-link" href="ref_builtins_string.html#ref_builtin_uncap_first" data-menu-target="ref_builtin_uncap_first">uncap_first</a></li><li><a class="page-menu-link" href="ref_builtins_string.html#ref_builtin_upper_case" data-menu-target="ref_builtin_upper_case">upper_case</a></li><li><a class="page-menu-link" href="ref_builtins_string.html#ref_builtin_url" data-menu-target="ref_builtin_url">url</a></li><li><a class="page-menu-link" href="ref_builtins_string.html#ref_builtin_url_path" data-menu-target="ref_builtin_url_path">url_path</a></li><li><a class="page-menu-link" href="ref_builtins_string.html#ref_builtin_word_list" data-menu-target="ref_bui
ltin_word_list">word_list</a></li><li><a class="page-menu-link" href="ref_builtins_string.html#ref_builtin_xhtml" data-menu-target="ref_builtin_xhtml">xhtml (deprecated)</a></li><li><a class="page-menu-link" href="ref_builtins_string.html#ref_builtin_xml" data-menu-target="ref_builtin_xml">xml (deprecated)</a></li><li><a class="page-menu-link" href="ref_builtins_string.html#ref_builtin_string_flags" data-menu-target="ref_builtin_string_flags">Common flags</a></li></ul></li><li><a class="page-menu-link" href="ref_builtins_number.html" data-menu-target="ref_builtins_number">Built-ins for numbers</a><ul><li><a class="page-menu-link" href="ref_builtins_number.html#ref_builtin_abs" data-menu-target="ref_builtin_abs">abs</a></li><li><a class="page-menu-link" href="ref_builtins_number.html#ref_builtin_c" data-menu-target="ref_builtin_c">c (when used with numerical value)</a></li><li><a class="page-menu-link" href="ref_builtins_number.html#ref_builtin_is_infinite" data-menu-target="ref_buil
tin_is_infinite">is_infinite</a></li><li><a class="page-menu-link" href="ref_builtins_number.html#ref_builtin_is_nan" data-menu-target="ref_builtin_is_nan">is_nan</a></li><li><a class="page-menu-link" href="ref_builtins_number.html#ref_builtin_lower_abc" data-menu-target="ref_builtin_lower_abc">lower_abc</a></li><li><a class="page-menu-link" href="ref_builtins_number.html#ref_builtin_rounding" data-menu-target="ref_builtin_rounding">round, floor, ceiling</a></li><li><a class="page-menu-link" href="ref_builtins_number.html#ref_builtin_string_for_number" data-menu-target="ref_builtin_string_for_number">string (when used with a numerical value)</a></li><li><a class="page-menu-link" href="ref_builtins_number.html#ref_builtin_upper_abc" data-menu-target="ref_builtin_upper_abc">upper_abc</a></li></ul></li><li><a class="page-menu-link" href="ref_builtins_date.html" data-menu-target="ref_builtins_date">Built-ins for date/time/date-time values</a><ul><li><a class="page-menu-link" href="ref_b
uiltins_date.html#ref_builtin_date_datetype" data-menu-target="ref_builtin_date_datetype">date, time, datetime (when used with a date/time/date-time
-value)</a></li><li><a class="page-menu-link" href="ref_builtins_date.html#ref_builtin_date_if_unknown" data-menu-target="ref_builtin_date_if_unknown">date_if_unknown, time_if_unknown, datetime_if_unknown</a></li><li><a class="page-menu-link" href="ref_builtins_date.html#ref_builtin_date_iso" data-menu-target="ref_builtin_date_iso">iso_...</a></li><li><a class="page-menu-link" href="ref_builtins_date.html#ref_builtin_string_for_date" data-menu-target="ref_builtin_string_for_date">string (when used with a date/time/date-time value)</a></li></ul></li><li><a class="page-menu-link" href="ref_builtins_boolean.html" data-menu-target="ref_builtins_boolean">Built-ins for booleans</a><ul><li><a class="page-menu-link" href="ref_builtins_boolean.html#ref_builtin_c_boolean" data-menu-target="ref_builtin_c_boolean">c (when used with boolean)</a></li><li><a class="page-menu-link" href="ref_builtins_boolean.html#ref_builtin_string_for_boolean" data-menu-target="ref_builtin_string_for_boolean">strin
g (when used with a boolean value)</a></li><li><a class="page-menu-link" href="ref_builtins_boolean.html#ref_builtin_then" data-menu-target="ref_builtin_then">then</a></li></ul></li><li><a class="page-menu-link" href="ref_builtins_sequence.html" data-menu-target="ref_builtins_sequence">Built-ins for sequences</a><ul><li><a class="page-menu-link" href="ref_builtins_sequence.html#ref_builtin_chunk" data-menu-target="ref_builtin_chunk">chunk</a></li><li><a class="page-menu-link" href="ref_builtins_sequence.html#ref_builtin_first" data-menu-target="ref_builtin_first">first</a></li><li><a class="page-menu-link" href="ref_builtins_sequence.html#ref_builtin_join" data-menu-target="ref_builtin_join">join</a></li><li><a class="page-menu-link" href="ref_builtins_sequence.html#ref_builtin_last" data-menu-target="ref_builtin_last">last</a></li><li><a class="page-menu-link" href="ref_builtins_sequence.html#ref_builtin_reverse" data-menu-target="ref_builtin_reverse">reverse</a></li><li><a class="
page-menu-link" href="ref_builtins_sequence.html#ref_builtin_seq_contains" data-menu-target="ref_builtin_seq_contains">seq_contains</a></li><li><a class="page-menu-link" href="ref_builtins_sequence.html#ref_builtin_seq_index_of" data-menu-target="ref_builtin_seq_index_of">seq_index_of</a></li><li><a class="page-menu-link" href="ref_builtins_sequence.html#ref_builtin_seq_last_index_of" data-menu-target="ref_builtin_seq_last_index_of">seq_last_index_of</a></li><li><a class="page-menu-link" href="ref_builtins_sequence.html#ref_builtin_size" data-menu-target="ref_builtin_size">size</a></li><li><a class="page-menu-link" href="ref_builtins_sequence.html#ref_builtin_sort" data-menu-target="ref_builtin_sort">sort</a></li><li><a class="page-menu-link" href="ref_builtins_sequence.html#ref_builtin_sort_by" data-menu-target="ref_builtin_sort_by">sort_by</a></li></ul></li><li><a class="page-menu-link" href="ref_builtins_hash.html" data-menu-target="ref_builtins_hash">Built-ins for hashes</a><ul>
<li><a class="page-menu-link" href="ref_builtins_hash.html#ref_builtin_keys" data-menu-target="ref_builtin_keys">keys</a></li><li><a class="page-menu-link" href="ref_builtins_hash.html#ref_builtin_values" data-menu-target="ref_builtin_values">values</a></li></ul></li><li><a class="page-menu-link" href="ref_builtins_node.html" data-menu-target="ref_builtins_node">Built-ins for nodes (for XML)</a><ul><li><a class="page-menu-link" href="ref_builtins_node.html#ref_builtin_ancestors" data-menu-target="ref_builtin_ancestors">ancestors</a></li><li><a class="page-menu-link" href="ref_builtins_node.html#ref_builtin_children" data-menu-target="ref_builtin_children">children</a></li><li><a class="page-menu-link" href="ref_builtins_node.html#ref_builtin_node_name" data-menu-target="ref_builtin_node_name">node_name</a></li><li><a class="page-menu-link" href="ref_builtins_node.html#ref_builtin_next_sibling" data-menu-target="ref_builtin_next_sibling">next_sibling</a></li><li><a class="page-menu-l
ink" href="ref_builtins_node.html#ref_builtin_node_namespace" data-menu-target="ref_builtin_node_namespace">node_namespace</a></li><li><a class="page-menu-link" href="ref_builtins_node.html#ref_builtin_node_type" data-menu-target="ref_builtin_node_type">node_type</a></li><li><a class="page-menu-link" href="ref_builtins_node.html#ref_builtin_parent" data-menu-target="ref_builtin_parent">parent</a></li><li><a class="page-menu-link" href="ref_builtins_node.html#ref_builtin_previous_sibling" data-menu-target="ref_builtin_previous_sibling">previous_sibling</a></li><li><a class="page-menu-link" href="ref_builtins_node.html#ref_builtin_root" data-menu-target="ref_builtin_root">root</a></li></ul></li><li><a class="page-menu-link" href="ref_builtins_loop_var.html" data-menu-target="ref_builtins_loop_var">Loop variable built-ins</a><ul><li><a class="page-menu-link" href="ref_builtins_loop_var.html#ref_builtin_counter" data-menu-target="ref_builtin_counter">counter</a></li><li><a class="page-m
enu-link" href="ref_builtins_loop_var.html#ref_builtin_has_next" data-menu-target="ref_builtin_has_next">has_next</a></li><li><a class="page-menu-link" href="ref_builtins_loop_var.html#ref_builtin_index" data-menu-target="ref_builtin_index">index</a></li><li><a class="page-menu-link" href="ref_builtins_loop_var.html#ref_builtin_is_even_item" data-menu-target="ref_builtin_is_even_item">is_even_item</a></li><li><a class="page-menu-link" href="ref_builtins_loop_var.html#ref_builtin_is_first" data-menu-target="ref_builtin_is_first">is_first</a></li><li><a class="page-menu-link" href="ref_builtins_loop_var.html#ref_builtin_is_last" data-menu-target="ref_builtin_is_last">is_last</a></li><li><a class="page-menu-link" href="ref_builtins_loop_var.html#ref_builtin_is_odd_item" data-menu-target="ref_builtin_is_odd_item">is_odd_item</a></li><li><a class="page-menu-link" href="ref_builtins_loop_var.html#ref_builtin_item_cycle" data-menu-target="ref_builtin_item_cycle">item_cycle</a></li><li><a c
lass="page-menu-link" href="ref_builtins_loop_var.html#ref_builtin_item_parity" data-menu-target="ref_builtin_item_parity">item_parity</a></li><li><a class="page-menu-link" href="ref_builtins_loop_var.html#ref_builtin_item_parity_cap" data-menu-target="ref_builtin_item_parity_cap">item_parity_cap</a></li></ul></li><li><a class="page-menu-link" href="ref_builtins_type_independent.html" data-menu-target="ref_builtins_type_independent">Type independent built-ins</a><ul><li><a class="page-menu-link" href="ref_builtins_type_independent.html#ref_builtin_switch" data-menu-target="ref_builtin_switch">switch</a></li></ul></li><li><a class="page-menu-link" href="ref_builtins_expert.html" data-menu-target="ref_builtins_expert">Seldom used and expert built-ins</a><ul><li><a class="page-menu-link" href="ref_builtins_expert.html#ref_buitin_api_and_has_api" data-menu-target="ref_buitin_api_and_has_api">api, has_api</a></li><li><a class="page-menu-link" href="ref_builtins_expert.html#ref_builtin_nu
mType" data-menu-target="ref_builtin_numType">byte, double, float, int, long, short</a></li><li><a class="page-menu-link" href="ref_builtins_expert.html#ref_builtin_eval" data-menu-target="ref_builtin_eval">eval</a></li><li><a class="page-menu-link" href="ref_builtins_expert.html#ref_builtin_has_content" data-menu-target="ref_builtin_has_content">has_content</a></li><li><a class="page-menu-link" href="ref_builtins_expert.html#ref_builtin_interpret" data-menu-target="ref_builtin_interpret">interpret</a></li><li><a class="page-menu-link" href="ref_builtins_expert.html#ref_builtin_isType" data-menu-target="ref_builtin_isType">is_...</a></li><li><a class="page-menu-link" href="ref_builtins_expert.html#ref_builtin_markup_string" data-menu-target="ref_builtin_markup_string">markup_string</a></li><li><a class="page-menu-link" href="ref_builtins_expert.html#ref_builtin_namespace" data-menu-target="ref_builtin_namespace">namespace</a></li><li><a class="page-menu-link" href="ref_builtins_expe
rt.html#ref_builtin_new" data-menu-target="ref_builtin_new">new</a></li><li><a class="page-menu-link" href="ref_builtins_expert.html#ref_builtin_numToDate" data-menu-target="ref_builtin_numToDate">number_to_date, number_to_time, number_to_datetime</a></li></ul></li></ul></li><li><a class="page-menu-link" href="ref_directives.html" data-menu-target="ref_directives">Directive Reference</a><ul><li><a class="page-menu-link" href="ref_directive_alphaidx.html" data-menu-target="ref_directive_alphaidx">Alphabetical index</a></li><li><a class="page-menu-link" href="ref_directive_assign.html" data-menu-target="ref_directive_assign">assign</a><ul><li><a class="page-menu-link" href="ref_directive_assign.html#autoid_76" data-menu-target="autoid_76">Synopsis</a></li><li><a class="page-menu-link" href="ref_directive_assign.html#autoid_77" data-menu-target="autoid_77">Description</a></li></ul></li><li><a class="page-menu-link" href="ref_directive_attempt.html" data-menu-target="ref_directive_attem
pt">attempt, recover</a><ul><li><a class="page-menu-link" href="ref_directive_attempt.html#autoid_78" data-menu-target="autoid_78">Synopsis</a></li><li><a class="page-menu-link" href="ref_directive_attempt.html#autoid_79" data-menu-target="autoid_79">Description</a></li></ul></li><li><a class="page-menu-link" href="ref_directive_autoesc.html" data-menu-target="ref_directive_autoesc">autoesc</a><ul><li><a class="page-menu-link" href="ref_directive_autoesc.html#autoid_80" data-menu-target="autoid_80">Synopsis</a></li><li><a class="page-menu-link" href="ref_directive_autoesc.html#autoid_81" data-menu-target="autoid_81">Description</a></li></ul></li><li><a class="page-menu-link" href="ref_directive_compress.html" data-menu-target="ref_directive_compress">compress</a><ul><li><a class="page-menu-link" href="ref_directive_compress.html#autoid_82" data-menu-target="autoid_82">Synopsis</a></li><li><a class="page-menu-link" href="ref_directive_compress.html#autoid_83" data-menu-target="autoid
_83">Description</a></li></ul></li><li><a class="page-menu-link" href="ref_directive_escape.html" data-menu-target="ref_directive_escape">escape, noescape (deprecated)</a><ul><li><a class="page-menu-link" href="ref_directive_escape.html#autoid_84" data-menu-target="autoid_84">Synopsis</a></li><li><a class="page-menu-link" href="ref_directive_escape.html#autoid_85" data-menu-target="autoid_85">Description</a></li></ul></li><li><a class="page-menu-link" href="ref_directive_flush.html" data-menu-target="ref_directive_flush">flush</a><ul><li><a class="page-menu-link" href="ref_directive_flush.html#autoid_86" data-menu-target="autoid_86">Synopsis</a></li><li><a class="page-menu-link" href="ref_directive_flush.html#autoid_87" data-menu-target="autoid_87">Description</a></li></ul></li><li><a class="page-menu-link" href="ref_directive_ftl.html" data-menu-target="ref_directive_ftl">ftl</a><ul><li><a class="page-menu-link" href="ref_directive_ftl.html#autoid_88" data-menu-target="autoid_88">S
ynopsis</a></li><li><a class="page-menu-link" href="ref_directive_ftl.html#autoid_89" data-menu-target="autoid_89">Description</a></li></ul></li><li><a class="page-menu-link" href="ref_directive_function.html" data-menu-target="ref_directive_function">function, return</a><ul><li><a class="page-menu-link" href="ref_directive_function.html#autoid_90" data-menu-target="autoid_90">Synopsis</a></li><li><a class="page-menu-link" href="ref_directive_function.html#autoid_91" data-menu-target="autoid_91">Description</a></li></ul></li><li><a class="page-menu-link" href="ref_directive_global.html" data-menu-target="ref_directive_global">global</a><ul><li><a class="page-menu-link" href="ref_directive_global.html#autoid_92" data-menu-target="autoid_92">Synopsis</a></li><li><a class="page-menu-link" href="ref_directive_global.html#autoid_93" data-menu-target="autoid_93">Description</a></li></ul></li><li><a class="page-menu-link" href="ref_directive_if.html" data-menu-target="ref_directive_if">if,
else, elseif</a><ul><li><a class="page-menu-link" href="ref_directive_if.html#autoid_94" data-menu-target="autoid_94">Synopsis</a></li><li><a class="page-menu-link" href="ref_directive_if.html#autoid_95" data-menu-target="autoid_95">Description</a></li></ul></li><li><a class="page-menu-link" href="ref_directive_import.html" data-menu-target="ref_directive_import">import</a><ul><li><a class="page-menu-link" href="ref_directive_import.html#autoid_96" data-menu-target="autoid_96">Synopsis</a></li><li><a class="page-menu-link" href="ref_directive_import.html#autoid_97" data-menu-target="autoid_97">Description</a></li></ul></li><li><a class="page-menu-link" href="ref_directive_include.html" data-menu-target="ref_directive_include">include</a><ul><li><a class="page-menu-link" href="ref_directive_include.html#autoid_98" data-menu-target="autoid_98">Synopsis</a></li><li><a class="page-menu-link" href="ref_directive_include.html#autoid_99" data-menu-target="autoid_99">Description</a><ul><li
><a class="page-menu-link" href="ref_directive_include.html#ref_directive_include_acquisition" data-menu-target="ref_directive_include_acquisition">Using acquisition</a></li><li><a class="page-menu-link" href="ref_directive_include.html#ref_directive_include_localized" data-menu-target="ref_directive_include_localized">Localized lookup</a></li></ul></li></ul></li><li><a class="page-menu-link" href="ref_directive_list.html" data-menu-target="ref_directive_list">list, else, items, sep, break</a><ul><li><a class="page-menu-link" href="ref_directive_list.html#autoid_100" data-menu-target="autoid_100">Synopsis</a></li><li><a class="page-menu-link" href="ref_directive_list.html#autoid_101" data-menu-target="autoid_101">Description</a><ul><li><a class="page-menu-link" href="ref_directive_list.html#autoid_102" data-menu-target="autoid_102">Simplest form</a></li><li><a class="page-menu-link" href="ref_directive_list.html#autoid_103" data-menu-target="autoid_103">else directive</a></li><li><a
class="page-menu-link" href="ref_directive_list.html#autoid_104" data-menu-target="autoid_104">items directive</a></li><li><a class="page-menu-link" href="ref_directive_list.html#autoid_105" data-menu-target="autoid_105">sep directive</a></li><li><a class="page-menu-link" href="ref_directive_list.html#autoid_106" data-menu-target="autoid_106">break directive</a></li><li><a class="page-menu-link" href="ref_directive_list.html#autoid_107" data-menu-target="autoid_107">Accessing iteration state</a></li><li><a class="page-menu-link" href="ref_directive_list.html#autoid_108" data-menu-target="autoid_108">Nesting loops into each other</a></li><li><a class="page-menu-link" href="ref_directive_list.html#autoid_109" data-menu-target="autoid_109">Notes for Java programmers</a></li></ul></li></ul></li><li><a class="page-menu-link" href="ref_directive_local.html" data-menu-target="ref_directive_local">local</a><ul><li><a class="page-menu-link" href="ref_directive_local.html#autoid_110" data-me
nu-target="autoid_110">Synopsis</a></li><li><a class="page-menu-link" href="ref_directive_local.html#autoid_111" data-menu-target="autoid_111">Description</a></li></ul></li><li><a class="page-menu-link" href="ref_directive_macro.html" data-menu-target="ref_directive_macro">macro, nested, return</a><ul><li><a class="page-menu-link" href="ref_directive_macro.html#autoid_112" data-menu-target="autoid_112">Synopsis</a></li><li><a class="page-menu-link" href="ref_directive_macro.html#autoid_113" data-menu-target="autoid_113">Description</a><ul><li><a class="page-menu-link" href="ref_directive_macro.html#autoid_114" data-menu-target="autoid_114">nested</a></li><li><a class="page-menu-link" href="ref_directive_macro.html#autoid_115" data-menu-target="autoid_115">return</a></li></ul></li></ul></li><li><a class="page-menu-link" href="ref_directive_noautoesc.html" data-menu-target="ref_directive_noautoesc">noautoesc</a><ul><li><a class="page-menu-link" href="ref_directive_noautoesc.html#autoi
d_116" data-menu-target="autoid_116">Synopsis</a></li><li><a class="page-menu-link" href="ref_directive_noautoesc.html#autoid_117" data-menu-target="autoid_117">Description</a></li></ul></li><li><a class="page-menu-link" href="ref_directive_noparse.html" data-menu-target="ref_directive_noparse">noparse</a><ul><li><a class="page-menu-link" href="ref_directive_noparse.html#autoid_118" data-menu-target="autoid_118">Synopsis</a></li><li><a class="page-menu-link" href="ref_directive_noparse.html#autoid_119" data-menu-target="autoid_119">Description</a></li></ul></li><li><a class="page-menu-link" href="ref_directive_nt.html" data-menu-target="ref_directive_nt">nt</a><ul><li><a class="page-menu-link" href="ref_directive_nt.html#autoid_120" data-menu-target="autoid_120">Synopsis</a></li><li><a class="page-menu-link" href="ref_directive_nt.html#autoid_121" data-menu-target="autoid_121">Description</a></li></ul></li><li><a class="page-menu-link" href="ref_directive_outputformat.html" data-men
u-target="ref_directive_outputformat">outputformat</a><ul><li><a class="page-menu-link" href="ref_directive_outputformat.html#autoid_122" data-menu-target="autoid_122">Synopsis</a></li><li><a class="page-menu-link" href="ref_directive_outputformat.html#autoid_123" data-menu-target="autoid_123">Description</a></li></ul></li><li><a class="page-menu-link" href="ref_directive_setting.html" data-menu-target="ref_directive_setting">setting</a><ul><li><a class="page-menu-link" href="ref_directive_setting.html#autoid_124" data-menu-target="autoid_124">Synopsis</a></li><li><a class="page-menu-link" href="ref_directive_setting.html#autoid_125" data-menu-target="autoid_125">Description</a></li></ul></li><li><a class="page-menu-link" href="ref_directive_stop.html" data-menu-target="ref_directive_stop">stop</a><ul><li><a class="page-menu-link" href="ref_directive_stop.html#autoid_126" data-menu-target="autoid_126">Synopsis</a></li><li><a class="page-menu-link" href="ref_directive_stop.html#autoi
d_127" data-menu-target="autoid_127">Description</a></li></ul></li><li><a class="page-menu-link" href="ref_directive_switch.html" data-menu-target="ref_directive_switch">switch, case, default, break</a><ul><li><a class="page-menu-link" href="ref_directive_switch.html#autoid_128" data-menu-target="autoid_128">Synopsis</a></li><li><a class="page-menu-link" href="ref_directive_switch.html#autoid_129" data-menu-target="autoid_129">Description</a></li></ul></li><li><a class="page-menu-link" href="ref_directive_t.html" data-menu-target="ref_directive_t">t, lt, rt</a><ul><li><a class="page-menu-link" href="ref_directive_t.html#autoid_130" data-menu-target="autoid_130">Synopsis</a></li><li><a class="page-menu-link" href="ref_directive_t.html#autoid_131" data-menu-target="autoid_131">Description</a></li></ul></li><li><a class="page-menu-link" href="ref_directive_userDefined.html" data-menu-target="ref_directive_userDefined">User-defined directive (<@...>)</a><ul><li><a class="page-menu
-link" href="ref_directive_userDefined.html#autoid_132" data-menu-target="autoid_132">Synopsis</a></li><li><a class="page-menu-link" href="ref_directive_userDefined.html#autoid_133" data-menu-target="autoid_133">Description</a><ul><li><a class="page-menu-link" href="ref_directive_userDefined.html#ref_directive_userDefined_entTag" data-menu-target="ref_directive_userDefined_entTag">End-tag</a></li><li><a class="page-menu-link" href="ref_directive_userDefined.html#ref_directive_userDefined_loopVar" data-menu-target="ref_directive_userDefined_loopVar">Loop variables</a></li><li><a class="page-menu-link" href="ref_directive_userDefined.html#ref_directive_userDefined_positionalParam" data-menu-target="ref_directive_userDefined_positionalParam">Positional parameter passing</a></li></ul></li></ul></li><li><a class="page-menu-link" href="ref_directive_visit.html" data-menu-target="ref_directive_visit">visit, recurse, fallback</a><ul><li><a class="page-menu-link" href="ref_directive_visit.ht
ml#autoid_134" data-menu-target="autoid_134">Synopsis</a></li><li><a class="page-menu-link" href="ref_directive_visit.html#autoid_135" data-menu-target="autoid_135">Description</a><ul><li><a class="page-menu-link" href="ref_directive_visit.html#autoid_136" data-menu-target="autoid_136">Visit</a></li><li><a class="page-menu-link" href="ref_directive_visit.html#autoid_137" data-menu-target="autoid_137">Recurse</a></li><li><a class="page-menu-link" href="ref_directive_visit.html#autoid_138" data-menu-target="autoid_138">Fallback</a></li></ul></li></ul></li></ul></li><li><a class="page-menu-link" href="ref_specvar.html" data-menu-target="ref_specvar">Special Variable Reference</a></li><li><a class="page-menu-link" href="ref_reservednames.html" data-menu-target="ref_reservednames">Reserved names in FTL</a></li><li><a class="page-menu-link" href="ref_deprecated.html" data-menu-target="ref_deprecated">Deprecated FTL constructs</a><ul><li><a class="page-menu-link" href="ref_depr_directive.h
tml" data-menu-target="ref_depr_directive">List of deprecated directives</a></li><li><a class="page-menu-link" href="ref_depr_builtin.html" data-menu-target="ref_depr_builtin">List of deprecated built-ins</a></li><li><a class="page-menu-link" href="ref_depr_oldmacro.html" data-menu-target="ref_depr_oldmacro">Old-style macro and call directives</a><ul><li><a class="page-menu-link" href="ref_depr_oldmacro.html#autoid_139" data-menu-target="autoid_139">Synopsis</a></li><li><a class="page-menu-link" href="ref_depr_oldmacro.html#autoid_140" data-menu-target="autoid_140">Description</a></li></ul></li><li><a class="page-menu-link" href="ref_depr_transform.html" data-menu-target="ref_depr_transform">Transform directive</a><ul><li><a class="page-menu-link" href="ref_depr_transform.html#autoid_141" data-menu-target="autoid_141">Synopsis</a></li><li><a class="page-menu-link" href="ref_depr_transform.html#autoid_142" data-menu-target="autoid_142">Description</a></li></ul></li><li><a class="page
-menu-link" href="ref_depr_oldsyntax.html" data-menu-target="ref_depr_oldsyntax">Old FTL syntax</a></li><li><a class="page-menu-link" href="ref_depr_numerical_interpolation.html" data-menu-target="ref_depr_numerical_interpolation">#{...}: Numerical interpolation</a><ul><li><a class="page-menu-link" href="ref_depr_numerical_interpolation.html#autoid_143" data-menu-target="autoid_143">Synopsis</a></li><li><a class="page-menu-link" href="ref_depr_numerical_interpolation.html#autoid_144" data-menu-target="autoid_144">Description</a></li></ul></li></ul></li></ul></li><li><a class="page-menu-link" href="xgui.html" data-menu-target="xgui">XML Processing Guide</a><ul><li><a class="page-menu-link" href="xgui_preface.html" data-menu-target="xgui_preface">Preface</a></li><li><a class="page-menu-link" href="xgui_expose.html" data-menu-target="xgui_expose">Exposing XML documents</a><ul><li><a class="page-menu-link" href="xgui_expose_dom.html" data-menu-target="xgui_expose_dom">The DOM tree</a></
li><li><a class="page-menu-link" href="xgui_expose_put.html" data-menu-target="xgui_expose_put">Putting the XML into the data-model</a></li></ul></li><li><a class="page-menu-link" href="xgui_imperative.html" data-menu-target="xgui_imperative">Imperative XML processing</a><ul><li><a class="page-menu-link" href="xgui_imperative_learn.html" data-menu-target="xgui_imperative_learn">Basics</a><ul><li><a class="page-menu-link" href="xgui_imperative_learn.html#autoid_145" data-menu-target="autoid_145">Accessing elements by name</a></li><li><a class="page-menu-link" href="xgui_imperative_learn.html#autoid_146" data-menu-target="autoid_146">Accessing attributes</a></li><li><a class="page-menu-link" href="xgui_imperative_learn.html#autoid_147" data-menu-target="autoid_147">Exploring the tree</a></li><li><a class="page-menu-link" href="xgui_imperative_learn.html#autoid_148" data-menu-target="autoid_148">Using XPath expressions</a></li><li><a class="page-menu-link" href="xgui_imperative_learn.h
tml#autoid_149" data-menu-target="autoid_149">XML namespaces</a></li><li><a class="page-menu-link" href="xgui_imperative_learn.html#autoid_150" data-menu-target="autoid_150">Don't forget escaping!</a></li></ul></li><li><a class="page-menu-link" href="xgui_imperative_formal.html" data-menu-target="xgui_imperative_formal">Details</a><ul><li><a class="page-menu-link" href="xgui_imperative_formal.html#autoid_151" data-menu-target="autoid_151">Node sequences</a></li></ul></li></ul></li><li><a class="page-menu-link" href="xgui_declarative.html" data-menu-target="xgui_declarative">Declarative XML processing</a><ul><li><a class="page-menu-link" href="xgui_declarative_basics.html" data-menu-target="xgui_declarative_basics">Basics</a></li><li><a class="page-menu-link" href="xgui_declarative_details.html" data-menu-target="xgui_declarative_details">Details</a><ul><li><a class="page-menu-link" href="xgui_declarative_details.html#autoid_152" data-menu-target="autoid_152">Default handlers</a>
</li><li><a class="page-menu-link" href="xgui_declarative_details.html#autoid_153" data-menu-target="autoid_153">Visiting a single node</a></li><li><a class="page-menu-link" href="xgui_declarative_details.html#autoid_154" data-menu-target="autoid_154">XML namespaces</a></li></ul></li></ul></li></ul></li><li><a class="page-menu-link" href="app.html" data-menu-target="app">Appendixes</a><ul><li><a class="page-menu-link" href="app_faq.html" data-menu-target="app_faq">FAQ</a></li><li><a class="page-menu-link" href="app_versions.html" data-menu-target="app_versions">Version history</a><ul><li><a class="page-menu-link" href="versions_2_3_26.html" data-menu-target="versions_2_3_26">2.3.26 (incubating at Apache)</a><ul><li><a class="page-menu-link" href="versions_2_3_26.html#autoid_155" data-menu-target="autoid_155">Changes on the FTL side</a></li><li><a class="page-menu-link" href="versions_2_3_26.html#autoid_156" data-menu-target="autoid_156">Changes on the Java side</a></li><li><a class=
"page-menu-link" href="versions_2_3_26.html#autoid_157" data-menu-target="autoid_157">Other changes</a></li></ul></li><li><a class="page-menu-link" href="versions_2_3_25.html" data-menu-target="versions_2_3_25">2.3.25 (incubating at Apache)</a><ul><li><a class="page-menu-link" href="versions_2_3_25.html#autoid_158" data-menu-target="autoid_158">Changes on the FTL side</a></li><li><a class="page-menu-link" href="versions_2_3_25.html#autoid_159" data-menu-target="autoid_159">Changes on the Java side</a></li></ul></li><li><a class="page-menu-link" href="versions_2_3_24.html" data-menu-target="versions_2_3_24">2.3.24 (incubating at Apache)</a><ul><li><a class="page-menu-link" href="versions_2_3_24.html#autoid_160" data-menu-target="autoid_160">Legal changes</a></li><li><a class="page-menu-link" href="versions_2_3_24.html#autoid_161" data-menu-target="autoid_161">Changes on the FTL side</a></li><li><a class="page-menu-link" href="versions_2_3_24.html#autoid_162" data-menu-target="autoid_
162">Changes on the Java side</a></li><li><a class="page-menu-link" href="versions_2_3_24.html#autoid_163" data-menu-target="autoid_163">Changes compared to 2.3.24 Release Candidate 1</a></li></ul></li><li><a class="page-menu-link" href="versions_2_3_23.html" data-menu-target="versions_2_3_23">2.3.23</a><ul><li><a class="page-menu-link" href="versions_2_3_23.html#autoid_164" data-menu-target="autoid_164">Changes on the FTL side</a></li><li><a class="page-menu-link" href="versions_2_3_23.html#autoid_165" data-menu-target="autoid_165">Changes on the Java side</a></li><li><a class="page-menu-link" href="versions_2_3_23.html#autoid_166" data-menu-target="autoid_166">Other changes</a></li><li><a class="page-menu-link" href="versions_2_3_23.html#autoid_167" data-menu-target="autoid_167">Notes</a></li></ul></li><li><a class="page-menu-link" href="versions_2_3_22.html" data-menu-target="versions_2_3_22">2.3.22</a><ul><li><a class="page-menu-link" href="versions_2_3_22.html#autoid_168" data-
menu-target="autoid_168">Changes on the FTL side</a></li><li><a class="page-menu-link" href="versions_2_3_22.html#autoid_169" data-menu-target="autoid_169">Changes on the Java side</a></li><li><a class="page-menu-link" href="versions_2_3_22.html#autoid_170" data-menu-target="autoid_170">Notes</a></li></ul></li><li><a class="page-menu-link" href="versions_2_3_21.html" data-menu-target="versions_2_3_21">2.3.21</a><ul><li><a class="page-menu-link" href="versions_2_3_21.html#autoid_171" data-menu-target="autoid_171">Changes on the FTL side</a></li><li><a class="page-menu-link" href="versions_2_3_21.html#autoid_172" data-menu-target="autoid_172">Changes on the Java side</a></li><li><a class="page-menu-link" href="versions_2_3_21.html#autoid_173" data-menu-target="autoid_173">Other changes</a></li></ul></li><li><a class="page-menu-link" href="versions_2_3_20.html" data-menu-target="versions_2_3_20">2.3.20</a><ul><li><a class="page-menu-link" href="versions_2_3_20.html#autoid_174" data-men
u-target="autoid_174">Changes on the FTL side</a></li><li><a class="page-menu-link" href="versions_2_3_20.html#autoid_175" data-menu-target="autoid_175">Changes on the Java side</a></li><li><a class="page-menu-link" href="versions_2_3_20.html#autoid_176" data-menu-target="autoid_176">Other changes</a></li></ul></li><li><a class="page-menu-link" href="versions_2_3_19.html" data-menu-target="versions_2_3_19">2.3.19</a><ul><li><a class="page-menu-link" href="versions_2_3_19.html#autoid_177" data-menu-target="autoid_177">Changes on the FTL side</a></li><li><a class="page-menu-link" href="versions_2_3_19.html#autoid_178" data-menu-target="autoid_178">Changes on the Java side</a></li></ul></li><li><a class="page-menu-link" href="versions_2_3_18.html" data-menu-target="versions_2_3_18">2.3.18</a><ul><li><a class="page-menu-link" href="versions_2_3_18.html#autoid_179" data-menu-target="autoid_179">Changes on the Java side</a></li><li><a class="page-menu-link" href="versions_2_3_18.html#auto
id_180" data-menu-target="autoid_180">Other changes</a></li></ul></li><li><a class="page-menu-link" href="versions_2_3_17.html" data-menu-target="versions_2_3_17">2.3.17</a><ul><li><a class="page-menu-link" href="versions_2_3_17.html#autoid_181" data-menu-target="autoid_181">Changes on the FTL side</a></li><li><a class="page-menu-link" href="versions_2_3_17.html#autoid_182" data-menu-target="autoid_182">Changes on the Java side</a></li><li><a class="page-menu-link" href="versions_2_3_17.html#autoid_183" data-menu-target="autoid_183">Other changes</a></li></ul></li><li><a class="page-menu-link" href="versions_2_3_16.html" data-menu-target="versions_2_3_16">2.3.16</a><ul><li><a class="page-menu-link" href="versions_2_3_16.html#autoid_184" data-menu-target="autoid_184">Changes on the Java side</a></li><li><a class="page-menu-link" href="versions_2_3_16.html#autoid_185" data-menu-target="autoid_185">Changes on the FTL side</a></li></ul></li><li><a class="page-menu-link" href="versions_2
_3_15.html" data-menu-target="versions_2_3_15">2.3.15</a><ul><li><a class="page-menu-link" href="versions_2_3_15.html#autoid_186" data-menu-target="autoid_186">Changes on the FTL side</a></li><li><a class="page-menu-link" href="versions_2_3_15.html#autoid_187" data-menu-target="autoid_187">Changes on the Java side</a></li></ul></li><li><a class="page-menu-link" href="versions_2_3_14.html" data-menu-target="versions_2_3_14">2.3.14</a><ul><li><a class="page-menu-link" href="versions_2_3_14.html#autoid_188" data-menu-target="autoid_188">Changes on the FTL side</a></li><li><a class="page-menu-link" href="versions_2_3_14.html#autoid_189" data-menu-target="autoid_189">Changes on the Java side</a></li></ul></li><li><a class="page-menu-link" href="versions_2_3_13.html" data-menu-target="versions_2_3_13">2.3.13</a><ul><li><a class="page-menu-link" href="versions_2_3_13.html#autoid_190" data-menu-target="autoid_190">Changes on the FTL side</a></li><li><a class="page-menu-link" href="versions_
2_3_13.html#autoid_191" data-menu-target="autoid_191">Changes on the Java side</a></li></ul></li><li><a class="page-menu-link" href="versions_2_3_12.html" data-menu-target="versions_2_3_12">2.3.12</a><ul><li><a class="page-menu-link" href="versions_2_3_12.html#autoid_192" data-menu-target="autoid_192">Changes on the Java side</a></li></ul></li><li><a class="page-menu-link" href="versions_2_3_11.html" data-menu-target="versions_2_3_11">2.3.11</a><ul><li><a class="page-menu-link" href="versions_2_3_11.html#autoid_193" data-menu-target="autoid_193">Changes on the FTL side</a></li><li><a class="page-menu-link" href="versions_2_3_11.html#autoid_194" data-menu-target="autoid_194">Changes on the Java side</a></li><li><a class="page-menu-link" href="versions_2_3_11.html#autoid_195" data-menu-target="autoid_195">Documentation changes</a></li></ul></li><li><a class="page-menu-link" href="versions_2_3_10.html" data-menu-target="versions_2_3_10">2.3.10</a><ul><li><a class="page-menu-link" href=
"versions_2_3_10.html#autoid_196" data-menu-target="autoid_196">Changes on the Java side</a></li><li><a class="page-menu-link" href="versions_2_3_10.html#autoid_197" data-menu-target="autoid_197">Changes on the FTL side</a></li></ul></li><li><a class="page-menu-link" href="versions_2_3_9.html" data-menu-target="versions_2_3_9">2.3.9</a><ul><li><a class="page-menu-link" href="versions_2_3_9.html#autoid_198" data-menu-target="autoid_198">Changes on the Java side</a></li></ul></li><li><a class="page-menu-link" href="versions_2_3_8.html" data-menu-target="versions_2_3_8">2.3.8</a><ul><li><a class="page-menu-link" href="versions_2_3_8.html#autoid_199" data-menu-target="autoid_199">Changes on the Java side</a></li></ul></li><li><a class="page-menu-link" href="versions_2_3_7.html" data-menu-target="versions_2_3_7">2.3.7</a><ul><li><a class="page-menu-link" href="versions_2_3_7.html#autoid_200" data-menu-target="autoid_200">Changes on the Java side</a></li><li><a class="page-menu-link" href
="versions_2_3_7.html#autoid_201" data-menu-target="autoid_201">Changes on the FTL side</a></li></ul></li><li><a class="page-menu-link" href="versions_2_3_7rc1.html" data-menu-target="versions_2_3_7rc1">2.3.7 RC1</a><ul><li><a class="page-menu-link" href="versions_2_3_7rc1.html#autoid_202" data-menu-target="autoid_202">Changes on the Java side</a></li><li><a class="page-menu-link" href="versions_2_3_7rc1.html#autoid_203" data-menu-target="autoid_203">Changes on the FTL side</a></li></ul></li><li><a class="page-menu-link" href="versions_2_3_6.html" data-menu-target="versions_2_3_6">2.3.6</a><ul><li><a class="page-menu-link" href="versions_2_3_6.html#autoid_204" data-menu-target="autoid_204">Changes on the Java side</a></li></ul></li><li><a class="page-menu-link" href="versions_2_3_5.html" data-menu-target="versions_2_3_5">2.3.5</a><ul><li><a class="page-menu-link" href="versions_2_3_5.html#autoid_205" data-menu-target="autoid_205">Changes on the FTL side</a></li><li><a class="page-me
nu-link" href="versions_2_3_5.html#autoid_206" data-menu-target="autoid_206">Changes on the Java side</a></li></ul></li><li><a class="page-menu-link" href="versions_2_3_4.html" data-menu-target="versions_2_3_4">2.3.4</a><ul><li><a class="page-menu-link" href="versions_2_3_4.html#autoid_207" data-menu-target="autoid_207">Changes on the FTL side</a></li><li><a class="page-menu-link" href="versions_2_3_4.html#autoid_208" data-menu-target="autoid_208">Changes on the Java side</a></li><li><a class="page-menu-link" href="versions_2_3_4.html#autoid_209" data-menu-target="autoid_209">Other changes</a></li></ul></li><li><a class="page-menu-link" href="versions_2_3_3.html" data-menu-target="versions_2_3_3">2.3.3</a><ul><li><a class="page-menu-link" href="versions_2_3_3.html#autoid_210" data-menu-target="autoid_210">Changes on the FTL side</a></li><li><a class="page-menu-link" href="versions_2_3_3.html#autoid_211" data-menu-target="autoid_211">Changes on the Java side</a></li><li><a class="pag
e-menu-link" href="versions_2_3_3.html#autoid_212" data-menu-target="autoid_212">Other changes</a></li></ul></li><li><a class="page-menu-link" href="versions_2_3_2.html" data-menu-target="versions_2_3_2">2.3.2</a><ul><li><a class="page-menu-link" href="versions_2_3_2.html#autoid_213" data-menu-target="autoid_213">Changes on the Java side</a></li></ul></li><li><a class="page-menu-link" href="versions_2_3_1.html" data-menu-target="versions_2_3_1">2.3.1</a><ul><li><a class="page-menu-link" href="versions_2_3_1.html#autoid_214" data-menu-target="autoid_214">Possible backward compatibility issue</a></li><li><a class="page-menu-link" href="versions_2_3_1.html#autoid_215" data-menu-target="autoid_215">Changes on the FTL side</a></li><li><a class="page-menu-link" href="versions_2_3_1.html#autoid_216" data-menu-target="autoid_216">Changes on the Java side</a></li><li><a class="page-menu-link" href="versions_2_3_1.html#autoid_217" data-menu-target="autoid_217">Other changes</a></li><li><a cla
ss="page-menu-link" href="versions_2_3_1.html#autoid_218" data-menu-target="autoid_218">The history of the releases before the final version</a><ul><li><a class="page-menu-link" href="versions_2_3_1.html#autoid_219" data-menu-target="autoid_219">Differences between the preview release and final
-release</a></li></ul></li></ul></li><li><a class="page-menu-link" href="versions_2_3.html" data-menu-target="versions_2_3">2.3</a><ul><li><a class="page-menu-link" href="versions_2_3.html#autoid_220" data-menu-target="autoid_220">Non backward-compatible changes!</a></li><li><a class="page-menu-link" href="versions_2_3.html#autoid_221" data-menu-target="autoid_221">Changes on the FTL side</a></li><li><a class="page-menu-link" href="versions_2_3.html#autoid_222" data-menu-target="autoid_222">Changes on the Java side</a></li><li><a class="page-menu-link" href="versions_2_3.html#autoid_223" data-menu-target="autoid_223">Other changes</a></li><li><a class="page-menu-link" href="versions_2_3.html#autoid_224" data-menu-target="autoid_224">The history of the releases before the final version</a><ul><li><a class="page-menu-link" href="versions_2_3.html#autoid_225" data-menu-target="autoid_225">Differences between the final release and Release Candidate
-4</a></li><li><a class="page-menu-link" href="versions_2_3.html#autoid_226" data-menu-target="autoid_226">Differences between the Release Candidate 4 and Release
-Candidate 3</a></li><li><a class="page-menu-link" href="versions_2_3.html#autoid_227" data-menu-target="autoid_227">Differences between the Release Candidate 3 and Release
-Candidate 2</a></li><li><a class="page-menu-link" href="versions_2_3.html#autoid_228" data-menu-target="autoid_228">Differences between the Release Candidate 2 and Release
-Candidate 1</a></li><li><a class="page-menu-link" href="versions_2_3.html#autoid_229" data-menu-target="autoid_229">Differences between the Release Candidate 1 and Preview 16
-releases</a></li><li><a class="page-menu-link" href="versions_2_3.html#autoid_230" data-menu-target="autoid_230">Differences between the Preview 16 and Preview 15
-releases</a></li><li><a class="page-menu-link" href="versions_2_3.html#autoid_231" data-menu-target="autoid_231">Differences between the Preview 15 and Preview 14
-releases</a></li><li><a class="page-menu-link" href="versions_2_3.html#autoid_232" data-menu-target="autoid_232">Differences between the Preview 14 and Preview 13
-releases</a></li><li><a class="page-menu-link" href="versions_2_3.html#autoid_233" data-menu-target="autoid_233">Differences between the Preview 13 and Preview 12
-releases</a></li><li><a class="page-menu-link" href="versions_2_3.html#autoid_234" data-menu-target="autoid_234">Differences between the Preview 12 and Preview 11
-releases</a></li><li><a class="page-menu-link" href="versions_2_3.html#autoid_235" data-menu-target="autoid_235">Differences between the Preview 11 and Preview 10
-releases</a></li><li><a class="page-menu-link" href="versions_2_3.html#autoid_236" data-menu-target="autoid_236">Differences between the Preview 10 and Preview 9
-releases</a></li><li><a class="page-menu-link" href="versions_2_3.html#autoid_237" data-menu-target="autoid_237">Differences between the Preview 9 and Preview 8
-releases</a></li><li><a class="page-menu-link" href="versions_2_3.html#autoid_238" data-menu-target="autoid_238">Differences between the Preview 8 and Preview 7
-releases</a></li><li><a class="page-menu-link" href="versions_2_3.html#autoid_239" data-menu-target="autoid_239">Differences between the Preview 7 and Preview 6
-releases</a></li><li><a class="page-menu-link" href="versions_2_3.html#autoid_240" data-menu-target="autoid_240">Differences between the Preview 6 and Preview 5
-releases</a></li><li><a class="page-menu-link" href="versions_2_3.html#autoid_241" data-menu-target="autoid_241">Differences between the Preview 5 and Preview 4
-releases</a></li><li><a class="page-menu-link" href="versions_2_3.html#autoid_242" data-menu-target="autoid_242">Differences between the Preview 4 and Preview 3
-releases</a></li><li><a class="page-menu-link" href="versions_2_3.html#autoid_243" data-menu-target="autoid_243">Differences between the Preview 3 and Preview 2
-releases</a></li><li><a class="page-menu-link" href="versions_2_3.html#autoid_244" data-menu-target="autoid_244">Differences between the Preview 2 and Preview 1
-releases</a></li></ul></li></ul></li><li><a class="page-menu-link" href="versions_2_2_8.html" data-menu-target="versions_2_2_8">2.2.8</a><ul><li><a class="page-menu-link" href="versions_2_2_8.html#autoid_245" data-menu-target="autoid_245">Changes on the FTL side</a></li><li><a class="page-menu-link" href="versions_2_2_8.html#autoid_246" data-menu-target="autoid_246">Changes on the Java side</a></li><li><a class="page-menu-link" href="versions_2_2_8.html#autoid_247" data-menu-target="autoid_247">Other changes</a></li></ul></li><li><a class="page-menu-link" href="versions_2_2_7.html" data-menu-target="versions_2_2_7">2.2.7</a><ul><li><a class="page-menu-link" href="versions_2_2_7.html#autoid_248" data-menu-target="autoid_248">Changes on the Java side</a></li></ul></li><li><a class="page-menu-link" href="versions_2_2_6.html" data-menu-target="versions_2_2_6">2.2.6</a><ul><li><a class="page-menu-link" href="versions_2_2_6.html#autoid_249" data-menu-target="autoid_249">Changes on the FTL
side</a></li><li><a class="page-menu-link" href="versions_2_2_6.html#autoid_250" data-menu-target="autoid_250">Changes on the Java side</a></li><li><a class="page-menu-link" href="versions_2_2_6.html#autoid_251" data-menu-target="autoid_251">Other changes</a></li></ul></li><li><a class="page-menu-link" href="versions_2_2_5.html" data-menu-target="versions_2_2_5">2.2.5</a><ul><li><a class="page-menu-link" href="versions_2_2_5.html#autoid_252" data-menu-target="autoid_252">Changes on the Java side</a></li></ul></li><li><a class="page-menu-link" href="versions_2_2_4.html" data-menu-target="versions_2_2_4">2.2.4</a><ul><li><a class="page-menu-link" href="versions_2_2_4.html#autoid_253" data-menu-target="autoid_253">Changes on the Java side</a></li><li><a class="page-menu-link" href="versions_2_2_4.html#autoid_254" data-menu-target="autoid_254">Other changes</a></li></ul></li><li><a class="page-menu-link" href="versions_2_2_3.html" data-menu-target="versions_2_2_3">2.2.3</a><ul><li><a c
lass="page-menu-link" href="versions_2_2_3.html#autoid_255" data-menu-target="autoid_255">Changes on the FTL side</a></li><li><a class="page-menu-link" href="versions_2_2_3.html#autoid_256" data-menu-target="autoid_256">Changes on the Java side</a></li></ul></li><li><a class="page-menu-link" href="versions_2_2_2.html" data-menu-target="versions_2_2_2">2.2.2</a><ul><li><a class="page-menu-link" href="versions_2_2_2.html#autoid_257" data-menu-target="autoid_257">Changes on the Java side</a></li></ul></li><li><a class="page-menu-link" href="versions_2_2_1.html" data-menu-target="versions_2_2_1">2.2.1</a><ul><li><a class="page-menu-link" href="versions_2_2_1.html#autoid_258" data-menu-target="autoid_258">Changes on the FTL side</a></li><li><a class="page-menu-link" href="versions_2_2_1.html#autoid_259" data-menu-target="autoid_259">Changes on the Java side</a></li></ul></li><li><a class="page-menu-link" href="versions_2_2.html" data-menu-target="versions_2_2">2.2</a><ul><li><a class="pa
ge-menu-link" href="versions_2_2.html#autoid_260" data-menu-target="autoid_260">Non backward-compatible changes!</a></li><li><a class="page-menu-link" href="versions_2_2.html#autoid_261" data-menu-target="autoid_261">Changes in FTL (FreeMarker Template Language)</a></li><li><a class="page-menu-link" href="versions_2_2.html#autoid_262" data-menu-target="autoid_262">Changes on the Java side</a></li><li><a class="page-menu-link" href="versions_2_2.html#autoid_263" data-menu-target="autoid_263">Other changes</a></li><li><a class="page-menu-link" href="versions_2_2.html#autoid_264" data-menu-target="autoid_264">The history of the releases before the final version</a><ul><li><a class="page-menu-link" href="versions_2_2.html#autoid_265" data-menu-target="autoid_265">Differences between the final and RC2 releases</a></li><li><a class="page-menu-link" href="versions_2_2.html#autoid_266" data-menu-target="autoid_266">Differences between the RC2 and RC1 releases</a></li><li><a class="page-menu
-link" href="versions_2_2.html#autoid_267" data-menu-target="autoid_267">Differences between the Preview 2 and RC1 releases</a></li><li><a class="page-menu-link" href="versions_2_2.html#autoid_268" data-menu-target="autoid_268">Differences between the Preview 1 and Preview 2
-releases</a></li></ul></li></ul></li><li><a class="page-menu-link" href="versions_2_1_5.html" data-menu-target="versions_2_1_5">2.1.5</a><ul><li><a class="page-menu-link" href="versions_2_1_5.html#autoid_269" data-menu-target="autoid_269">Changes on the Java side</a></li></ul></li><li><a class="page-menu-link" href="versions_2_1_4.html" data-menu-target="versions_2_1_4">2.1.4</a><ul><li><a class="page-menu-link" href="versions_2_1_4.html#autoid_270" data-menu-target="autoid_270">Changes on the Java side</a></li></ul></li><li><a class="page-menu-link" href="versions_2_1_3.html" data-menu-target="versions_2_1_3">2.1.3</a><ul><li><a class="page-menu-link" href="versions_2_1_3.html#autoid_271" data-menu-target="autoid_271">Changes on the FTL side</a></li><li><a class="page-menu-link" href="versions_2_1_3.html#autoid_272"
<TRUNCATED>
[27/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/ref_builtins_node.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_builtins_node.html b/builds/2.3.26-nightly/ref_builtins_node.html
deleted file mode 100644
index f615ae0..0000000
--- a/builds/2.3.26-nightly/ref_builtins_node.html
+++ /dev/null
@@ -1,287 +0,0 @@
-<!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>Built-ins for nodes (for XML) - 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="Built-ins for nodes (for XML)">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_builtins_node.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_builtins_node.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_builtins.html"><span itemprop="name">Built-in Reference</span></a></li><li class="step-3"
itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_builtins_node.html"><span itemprop="name">Built-ins for nodes (for XML)</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","Template Language Reference","Built-in Reference","Built-ins for nodes (for XML)"];</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="ref_builtins_hash.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_builtins_loop_var.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="ref_builtins_node" itemprop="headline">Built-ins for nodes (for XML)</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#ref_builtin_ancestors" data-menu-target="ref_builtin_ancestors">ancestors</a></li><li><a class="page-menu-link" href="#ref_builtin_children" data-menu-target="ref_builtin_children">children</a></li><li><a class="page-menu-link" href="#ref_builtin_node_name" data-menu-target="ref_builtin_node_name">node_name</a></li><li><a class="page-menu-link" href="#ref_builtin_next_sibling" data-menu-target="ref_builtin_next_sibling">next_sibling</a></li><li><a class="page-menu-link" href="#ref_builtin_node_namespace" data-menu-target="ref_builtin_node_namespace">node_namespace</a></li><li><a class="page-menu-link" href="#ref_builtin_node_type" data-menu-target="ref_builtin_node_type">node_type</a></li><li><a class="page-menu-link" href="#ref_builtin_parent" data-menu-target="ref_builtin_parent">parent</a></li><li><a class="page-menu-link" href="#ref_builtin_previous_sibling" data-menu-target="ref_builtin_previous_sibling">previous_sibling</a></li><li><a c
lass="page-menu-link" href="#ref_builtin_root" data-menu-target="ref_builtin_root">root</a></li></ul> </div><p>Note that the variables returned by these built-ins are
- generated by the node variable implementation it is used with. This
- means that the returned variables can have extra features in
- additional to what it stated here, for example, with the <a href="xgui_expose_dom.html">XML DOM nodes</a> the sequence retuned by
- the <code class="inline-code">children</code> built-in also can be used as hash and
- maybe as string, as it is described in the <a href="xgui.html">part
- about XML processing</a>.</p>
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_ancestors">ancestors</h2>
-
-
-
-
- <p>A sequence that contains all the node's ancestors, starting
- with the immediate parent and ending with the root node. The result
- of this built-in is also a method, by which you can filter the
- result with the <a href="gloss.html#gloss.fullQualifiedName">full-qualified name</a> of the
- node. For example as <code class="inline-code">node?ancestors("section")</code> to
- get the sequence of all ancestors with name
- <code class="inline-code">section</code>.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_children">children</h2>
-
-
-
-
- <p>A sequence that contains all of this node's child nodes (i.e.
- immediate descendant nodes).</p>
-
- <p>XML: This is almost the same as special hash key
- <code class="inline-code">*</code>, except that it returns all nodes, not only
- elements. So the possible children are element nodes, text nodes,
- comment nodes, processing instruction nodes, etc. but
- <em>not</em> attribute nodes. Attribute nodes are
- excluded from the sequence.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_node_name">node_name</h2>
-
-
-
-
- <p>Returns the string that is used to determine what user-defined
- directive to invoke to handle this node when it is
- "visited". See: the <a href="ref_directive_visit.html#ref.directive.visit">visit</a> and <a href="ref_directive_visit.html#ref.directive.recurse">recurse</a> directives.</p>
-
- <p>XML: If the node is an element or attribute, then the string
- will be the local (prefix free) name of the element or attribute.
- Otherwise the name usually starts with <code class="inline-code">@</code> followed
- by the node type. See <a href="xgui_imperative_formal.html#misc.xguiTable">this
- table</a>. Note that this node name is not the same as the node
- name returned in the DOM API; the goal of FreeMarker node names is
- to give the name of the used-defined directive that will process the
- node.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_next_sibling">next_sibling</h2>
-
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in is only available since 2.3.26</p>
- </div>
-
-
- <p>Returns the following sibling node of the node. (Two nodes in
- a tree are said to be siblings if they are on the same level and are
- directly next to each other.) If there's no such node, the
- expression
- <code class="inline-code"><em class="code-color">node</em>?next_sibling??</code>
- evaluates to <code class="inline-code">false</code>.</p>
-
- <p>XML: Note that the value returned by this built-in is also a
- sequence of length 1 (same as the result of some XPath expressions),
- however if there's no next sibling, the result is a missing value
- (null) instead of an empty sequence. Also note that for XML element
- nodes you can also use
- <code class="inline-code"><em class="code-color">node</em>.@@next_sibling_element</code>,
- which is practical if you want to ignore the whitespace that
- separates two apparently sibling elements; see more <a href="xgui_imperative_formal.html">here...</a></p>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>For custom node implementations this built-in is only
- supported if that implements the
- <code class="inline-code">freemarker.template.TemplateNodeModelEx</code>
- interface.</p>
- </div>
-
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_node_namespace">node_namespace</h2>
-
-
-
-
- <p>Returns the namespace string of the node. FreeMarker does not
- define the exact meaning of node namespace; it depends on what your
- node variables are modeling. It's possible that a node doesn't have
- any node namespace defined. In this case, the built-in should
- evaluate to undefined variable (i.e.
- <code class="inline-code">node?<em class="code-color">node_namespace</em>??</code>
- is <code class="inline-code">false</code>), so you can't use the returned
- value.</p>
-
- <p>XML: In the case of XML, it's the XML namespace URI (such as
- <code class="inline-code">"http://www.w3.org/1999/xhtml"</code>). If an element or
- attribute node does not use XML namespace, then this built-in
- evaluates to an empty string. For other XML nodes this built-in
- always return undefined variable.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_node_type">node_type</h2>
-
-
-
-
- <p>A string that describes the type of the node. FreeMarker does
- not define the exact meaning of node type; it depends on what your
- variables are modeling. It's possible that a node doesn't support
- node type at all. In this case, the built-in evaluates to an
- undefined value, so you can't use the returned value. (You can still
- check if a node supports the type property with
- <code class="inline-code"><em class="code-color">node</em>?node_type??</code>.)</p>
-
- <p>XML: The possible values are: <code class="inline-code">"attribute"</code>,
- <code class="inline-code">"text"</code>, <code class="inline-code">"comment"</code>,
- <code class="inline-code">"document_fragment"</code>,
- <code class="inline-code">"document"</code>, <code class="inline-code">"document_type"</code>,
- <code class="inline-code">"element"</code>, <code class="inline-code">"entity"</code>,
- <code class="inline-code">"entity_reference"</code>,
- <code class="inline-code">"notation"</code>, <code class="inline-code">"pi"</code>. Note that a
- there is no <code class="inline-code">"cdata"</code> type, because CDATA is
- considered as plain text node.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_parent">parent</h2>
-
-
-
-
- <p>Returns the node that is this node's immediate parent in the
- node tree. The root node has no parent node, so for the root node,
- the expression
- <code class="inline-code"><em class="code-color">node</em>?parent??</code>
- evaluates to <code class="inline-code">false</code>.</p>
-
- <p>XML: Note that the value returned by this built-in is also a
- sequence (same as the result of XPath expression
- <code class="inline-code">..</code>, when you write
- <code class="inline-code">someNode[".."]</code>), however if there's no parent,
- the result is a missing value (null) instead of an empty sequence.
- Also note that for attribute nodes, it returns the element the
- attribute belongs to, despite that attribute nodes are not counted
- as children of the element.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_previous_sibling">previous_sibling</h2>
-
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in is only available since 2.3.26</p>
- </div>
-
-
- <p>Returns the previous sibling node of the node. Apart from the
- direction, this is the same as <code class="inline-code">next_sibling</code>, so
- see more details <a href="#ref_builtin_next_sibling">there...</a></p>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>For custom node implementations this built-in is only
- supported if that implements the
- <code class="inline-code">freemarker.template.TemplateNodeModelEx</code>
- interface.</p>
- </div>
-
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_root">root</h2>
-
-
-
-
- <p>The node that is the root of the tree of nodes to which this
- node belongs.</p>
-
- <p>XML: According to W3C, the root of an XML document is not the
- topmost element node, but the document itself, which is the parent
- of the topmost element. For example, if you want to get the topmost
- <em>element</em> of the XML (the so called
- "document element"; do not mix it with the
- "document"), which is called <code class="inline-code">foo</code>,
- then you have to write <code class="inline-code">someNode?root.foo</code>. If you
- write just <code class="inline-code">someNode?root</code>, then you get the
- document itself, and not the document element.</p>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_builtins_hash.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_builtins_loop_var.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/ref_builtins_number.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_builtins_number.html b/builds/2.3.26-nightly/ref_builtins_number.html
deleted file mode 100644
index 4c99464..0000000
--- a/builds/2.3.26-nightly/ref_builtins_number.html
+++ /dev/null
@@ -1,797 +0,0 @@
-<!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>Built-ins for numbers - 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="Built-ins for numbers">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_builtins_number.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_builtins_number.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_builtins.html"><span itemprop="name">Built-in Reference</span></a></li><li class="step-3"
itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_builtins_number.html"><span itemprop="name">Built-ins for numbers</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","Template Language Reference","Built-in Reference","Built-ins for numbers"];</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="ref_builtins_string.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_builtins_date.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="ref_builtins_number" itemprop="headline">Built-ins for numbers</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#ref_builtin_abs" data-menu-target="ref_builtin_abs">abs</a></li><li><a class="page-menu-link" href="#ref_builtin_c" data-menu-target="ref_builtin_c">c (when used with numerical value)</a></li><li><a class="page-menu-link" href="#ref_builtin_is_infinite" data-menu-target="ref_builtin_is_infinite">is_infinite</a></li><li><a class="page-menu-link" href="#ref_builtin_is_nan" data-menu-target="ref_builtin_is_nan">is_nan</a></li><li><a class="page-menu-link" href="#ref_builtin_lower_abc" data-menu-target="ref_builtin_lower_abc">lower_abc</a></li><li><a class="page-menu-link" href="#ref_builtin_rounding" data-menu-target="ref_builtin_rounding">round, floor, ceiling</a></li><li><a class="page-menu-link" href="#ref_builtin_string_for_number" data-menu-target="ref_builtin_string_for_number">string (when used with a numerical value)</a></li><li><a class="page-menu-link" href="#ref_builtin_upper_abc" data-menu-target="ref_builtin_upper_abc">upper_abc</a>
</li></ul> </div><p>Related FAQs: Do you have things like 1,000,000 or 1�000�000
- instead of 1000000, or something like 3.14 instead of 3,14 or vice
- versa? See <a href="app_faq.html#faq_number_grouping">this</a> and <a href="app_faq.html#faq_number_decimal_point">this</a> FAQ entry, also note
- the <code class="inline-code">c</code> built-in above.</p>
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_abs">abs</h2>
-
-
-
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in exists since FreeMarker 2.3.20.</p>
- </div>
-
-
- <p>Gives the absolute value of a number. For example
- <code class="inline-code">x?abs</code> , if <code class="inline-code">x</code> is -5, will
- evaluate to 5.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_c">c (when used with numerical value)</h2>
-
-
-
-
-
-
-
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in exists since FreeMarker 2.3.3.</p>
- </div>
-
-
- <p>This built-in converts a number to string for a
- "computer language" as opposed to for human audience.
- That is, it formats with the rules that programming languages used
- to use, which is independent of all the locale and number format
- settings of FreeMarker. It always uses dot as decimal separator, and
- it never uses grouping separators (like 3,000,000), nor exponential
- form (like 5E20), nor superfluous leading or trailing 0-s (like 03
- or 1.0), nor + sign (like +1). It will print at most 16 digits after
- the decimal dot, and thus numbers whose absolute value is less than
- 1E-16 will be shown as 0. This built-in is crucial because be
- default (like with <code class="inline-code">${x}</code>) numbers are converted to
- strings with the locale (language, country) specific number
- formatting, which is for human readers (like 3000000 is possibly
- printed as 3,000,000). When the number is printed not for human
- audience (e.g., 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) this built-in must be used to
- print the number (i.e., use <code class="inline-code">${x?c}</code> instead of
- <code class="inline-code">${x}</code>), or else the output will be possibly broken
- depending on the current number formatting settings and locale (like
- the decimal point is not dot, but comma in many countries) and the
- value of the number (like big numbers are possibly
- "damaged" by grouping separators).</p>
-
- <p>If the <code class="inline-code">incompatible_imporvements</code> FreeMarker
- configuration setting is set to 2.3.24 or higher (also if it's set
- to 2.3.20 or higher and you are outside a string literal), this
- built-in will return <code class="inline-code">"INF"</code>,
- <code class="inline-code">"-INF"</code> and <code class="inline-code">"NaN"</code> for
- positive/negative infinity and IEEE floating point Not-a-Number,
- respectively. These are the XML Schema compatible representations of
- these special values. (Earlier it has returned what
- <code class="inline-code">java.text.DecimalFormat</code> did with US locale, none
- of which is understood by any (common) computer language.)</p>
-
- <p>Note that this built-in <a href="ref_builtins_boolean.html#ref_builtin_c_boolean">also works on
- booleans</a>.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_is_infinite">is_infinite</h2>
-
-
-
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in exists since FreeMarker 2.3.20.</p>
- </div>
-
-
- <p>Tells if a number is floating point infinite (according to
- IEEE 754). For example, <code class="inline-code">someNumber?is_infinite</code>
- evaluates to <code class="inline-code">true</code> or <code class="inline-code">false</code>
- depending on if the value of <code class="inline-code">someNumber</code> is
- infinite or not. Of course, if the underlying number is not of
- floating point type, this will always return
- <code class="inline-code">false</code>.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_is_nan">is_nan</h2>
-
-
-
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in exists since FreeMarker 2.3.20.</p>
- </div>
-
-
- <p>Tells if a number is floating point NaN (according to IEEE
- 754). For example, <code class="inline-code">someNumber?is_nan</code> evaluates to
- <code class="inline-code">true</code> or <code class="inline-code">false</code> depending on if
- the value of <code class="inline-code">someNumber</code> is NaN or not. Of course,
- if the underlying number is not of floating point type, this will
- always return <code class="inline-code">false</code>.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_lower_abc">lower_abc</h2>
-
-
-
-
-
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in exists since FreeMarker 2.3.22.</p>
- </div>
-
-
- <p>Converts <code class="inline-code">1</code>, <code class="inline-code">2</code>,
- <code class="inline-code">3</code>, etc., to the string <code class="inline-code">"a"</code>,
- <code class="inline-code">"b"</code>, <code class="inline-code">"c"</code>, etc. When reaching
- <code class="inline-code">"z"</code>, it continues like <code class="inline-code">"aa"</code>,
- <code class="inline-code">"ab"</code>, etc. This is the same logic that you can
- see in column labels in spreadsheet applications (like Excel or
- Calc). The lowest allowed number is <code class="inline-code">1</code>. There's no
- upper limit. If the number is <code class="inline-code">0</code> or less or it
- isn't an integer number then the template processing will be aborted
- with error.</p>
-
- <p>Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list 1..30 as n>${n?lower_abc} </#list></pre></div>
-
- <p>Prints:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad </pre></div>
-
- <p>See also: <a href="#ref_builtin_upper_abc"><code>upper_abc</code></a></p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_rounding">round, floor, ceiling</h2>
-
-
-
-
-
-
-
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>The rounding built-ins exist since FreeMarker 2.3.13.</p>
- </div>
-
-
- <p>Converts a number to a whole number using the specified
- rounding rule:</p>
-
- <ul>
- <li>
- <p><code class="inline-code">round</code>: Rounds to the nearest whole
- number. If the number ends with .5, then it rounds upwards
- (i.e., towards positive infinity)</p>
- </li>
-
- <li>
- <p><code class="inline-code">floor</code>: Rounds the number downwards
- (i.e., towards neagative infinity)</p>
- </li>
-
- <li>
- <p><code class="inline-code">ceiling</code>: Rounds the number upwards
- (i.e., towards positive infinity)</p>
- </li>
- </ul>
-
- <p>Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign testlist=[
- 0, 1, -1, 0.5, 1.5, -0.5,
- -1.5, 0.25, -0.25, 1.75, -1.75]>
-<#list testlist as result>
- ${result} ?floor=${result?floor} ?ceiling=${result?ceiling} ?round=${result?round}
-</#list></pre></div>
-
- <p>Prints:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> 0 ?floor=0 ?ceiling=0 ?round=0
- 1 ?floor=1 ?ceiling=1 ?round=1
- -1 ?floor=-1 ?ceiling=-1 ?round=-1
- 0.5 ?floor=0 ?ceiling=1 ?round=1
- 1.5 ?floor=1 ?ceiling=2 ?round=2
- -0.5 ?floor=-1 ?ceiling=0 ?round=0
- -1.5 ?floor=-2 ?ceiling=-1 ?round=-1
- 0.25 ?floor=0 ?ceiling=1 ?round=0
- -0.25 ?floor=-1 ?ceiling=0 ?round=0
- 1.75 ?floor=1 ?ceiling=2 ?round=2
- -1.75 ?floor=-2 ?ceiling=-1 ?round=-2</pre></div>
-
- <p>These built-ins may be useful in pagination operations and
- like. If you just want to <em>display</em> numbers in
- rounded form, then you should rather use the <a href="#ref_builtin_string_for_number"><code>string</code>
- built-in</a> or the <a href="ref_directive_setting.html#ref.setting.number_format"><code>number_format</code>
- setting</a>.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_string_for_number">string (when used with a numerical value)</h2>
-
-
-
-
-
-
-
-
-
-
- <p>Converts a number to a string. In its simplest form
- (<code class="inline-code"><em class="code-color">expression</em>?string</code>) it
- uses the default format that the programmer has specified via the
- <code class="inline-code">number_format</code> and the <code class="inline-code">locale</code>
- configuration settings. You can also specify a number format
- explicitly with this built-in, as it will be shown later.</p>
-
- <p>There are four predefined number formats:
- <code class="inline-code">computer</code>, <code class="inline-code">currency</code>,
- <code class="inline-code">number</code>, and <code class="inline-code">percent</code>. The exact
- meaning of these is locale (nationality) specific, and is controlled
- by the Java platform installation, not by FreeMarker, except for
- <code class="inline-code">computer</code>, which uses the same formatting as <a href="#ref_builtin_c">the <code>c</code> built-in</a>.
- There can also be programmer-defined formats, whose name starts with
- <code class="inline-code">@</code> (programmers <a href="pgui_config_custom_formats.html">see more here...</a>). You
- can use these predefined formats like this:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign x=42>
-${x}
-${x?string} <#-- the same as ${x} -->
-${x?string.number}
-${x?string.currency}
-${x?string.percent}
-${x?string.computer}</pre></div>
-
- <p>If your locale is US English, this will print:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">42
-42
-42
-$42.00
-4,200%
-42</pre></div>
-
- <p>The output of first three expressions is identical because the
- first two expressions use the default format, which is
- "number" here. You can change this default using a
- setting:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#setting number_format="currency">
-<#assign x=42>
-${x}
-${x?string} <#-- the same as ${x} -->
-${x?string.number}
-${x?string.currency}
-${x?string.percent}</pre></div>
-
- <p>Will now output:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">$42.00
-$42.00
-42
-$42.00
-4,200%</pre></div>
-
- <p>since the default number format was set to
- "currency".</p>
-
- <p>You can also refer to named custom formats that were defined
- when configuring FreeMarker (programmers <a href="pgui_config_custom_formats.html">see more here</a>),
- like:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${x?string.@price}
-${x?string.@weight}</pre></div>
-
- <p>where the custom format names were "price" and
- "weight". This way the templates can just refer to the
- application-domain meaning, and the exact format can be specified
- outside the templates, on a single central place. (Programmers can
- read about <a href="pgui_config_custom_formats.html">defining such
- named formats here...</a>)</p>
-
- <p>Beside named formats, you can specify number format patterns
- directly, using the <a href="http://docs.oracle.com/javase/7/docs/api/java/text/DecimalFormat.html">Java
- decimal number format syntax</a> (with some FreeMarker-specific
- extensions; <a href="#topic.extendedJavaDecimalFormat">see
- later</a>):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign x = 1.234>
-${x?string["0"]}
-${x?string["0.#"]}
-${x?string["0.##"]}
-${x?string["0.###"]}
-${x?string["0.####"]}
-
-${1?string["000.00"]}
-${12.1?string["000.00"]}
-${123.456?string["000.00"]}
-
-${1.2?string["0"]}
-${1.8?string["0"]}
-${1.5?string["0"]} <-- 1.5, rounded towards even neighbor
-${2.5?string["0"]} <-- 2.5, rounded towards even neighbor
-
-${12345?string["0.##E0"]}</pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">1
-1.2
-1.23
-1.234
-1.234
-
-001.00
-012.10
-123.46
-
-1
-2
-2 <-- 1.5, rounded towards even neighbor
-2 <-- 2.5, rounded towards even neighbor
-
-1.23E4</pre></div>
-
- <p>Note that as in FreeMarker <code class="inline-code">foo.bar</code> is
- equivalent with <code class="inline-code">foo["bar"]</code>, you could also write
- <code class="inline-code">x?string.currency</code> as
- <code class="inline-code">x?string["currency"]</code>, but of course that wouldn't
- be practical. But in the above examples we have to use the square
- bracket syntax, because the characters involved (numbers, dot,
- <code class="inline-code">#</code>) aren't allowed syntactically after the dot
- operator.</p>
-
- <p>For historical reasons, you could also write things like
- <code class="inline-code">x?string("0.#")</code>, which does exactly the same as
- <code class="inline-code">x?string["0.#"]</code>.</p>
-
- <p>Following the financial and statistics practice, by default
- the rounding goes according the so called half-even rule, which
- means rounding towards the nearest "neighbor", unless
- both neighbors are equidistant, in which case, it rounds towards the
- even neighbor. This was visible in the above example if you look at
- the rounding of 1.5 and of 2.5, as both were rounded to 2, since 2
- is even, but 1 and 3 are odds. The other popular rounding rule,
- where we always round up when the neighbors are equidistant (and so
- 2.5 is rounded to 3) is called the half-up rule, and it can be
- activated as <a href="#topic.extendedJavaDecimalFormat">described
- later</a>.</p>
-
- <p>As it was shown for the predefined formats earlier, the
- default formatting of the numbers can be set in the template:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#setting number_format="0.##">
-${1.234}</pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">1.23</pre></div>
-
- <p>The default number format also can be specified outside the
- templates with the FreeMarker API (like with
- <code class="inline-code">Configuration.setNumberFormat(String)</code>).</p>
-
- <p>Note that as number formatting is locale sensitive, the locale
- setting also plays role in the formatting:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#setting number_format=",##0.00">
-<#setting locale="en_US">
-US people write: ${12345678}
-<#setting locale="hu">
-German people write: ${12345678}</pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">US people write: 12,345,678.00
-German people write: 12.345.678,00</pre></div>
-
-
-
-
-
-
-<h3 class="content-header header-simplesect" id="topic.extendedJavaDecimalFormat">Extended Java decimal format</h3>
-
-
-
-
- <p>FreeMarker extends the Java decimal format patterns with
- extra options. These options are name-value pairs, specified after
- two semicolons (<code class="inline-code">;;</code>) at the end of the format
- string, or if you had a negative pattern (which is separated from
- the normal patter with a semicolon, like in <code class="inline-code">"0.0;minus
- 0.0"</code>), the after only one semicolon. For example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">Standard decimal format: ${10002.5?string[",000"]}
-Extended decimal format: ${10002.5?string[",000<strong>;; roundingMode=halfUp groupingSeparator=_</strong>"]}</pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">Standard decimal format: 10,002
-Extended decimal format: 10<strong>_</strong>00<strong>3</strong></pre></div>
-
- <p>Above, in the extended decimal format, we have specified
- half-up rounding mode and group separator <code class="inline-code">"_"</code>.
- The table of all options follows (note that these are defined by
- <code class="inline-code">java.text.DecimalFormat</code> and
- <code class="inline-code">java.text.DecimalFormatSymbols</code>, not by
- FreeMarker):</p>
-
- <div class="table-responsive">
- <table class="table">
-
- <thead>
- <tr>
- <th>Name</th>
-
-
- <th>Meaning / value</th>
-
- </tr>
-
- </thead>
-
-
- <tbody>
- <tr>
- <td><code class="inline-code">roundingMode</code></td>
-
-
- <td>The value is one of <code class="inline-code">up</code>,
- <code class="inline-code">down</code>, <code class="inline-code">ceiling</code>,
- <code class="inline-code">floor</code>, <code class="inline-code">halfUp</code>,
- <code class="inline-code">halfDown</code>, <code class="inline-code">halfEven</code>,
- and <code class="inline-code">unnecessary</code>. The behavior that most
- people learns in school is <code class="inline-code">halfUp</code>, but
- the Java default is <code class="inline-code">halfEven</code> (also called
- bankers' rounding). (See <a href="http://docs.oracle.com/javase/7/docs/api/java/math/RoundingMode.html">the
- <code>java.math.RoundingMode</code> API</a> for
- explanations.)</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">multipier</code></td>
-
-
- <td>The number will be shown after multiplied with this
- integer number.</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">decimalSeparator</code></td>
-
-
- <td>The character separating the integer part from the
- fraction part (like <code class="inline-code">"."</code> in
- <code class="inline-code">3.14</code>).</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">monetaryDecimalSeparator</code></td>
-
-
- <td>This is used instead of
- <code class="inline-code">decimalSeparator</code> when the pattern
- contains parts that make it a monetary format. (See the
- <a href="http://docs.oracle.com/javase/7/docs/api/java/text/DecimalFormat.html">Java
- decimal number format documentation</a> for more.)</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">groupingSeparator</code></td>
-
-
- <td>The single character used for grouping the integer part
- (like <code class="inline-code">","</code> in
- <code class="inline-code">1,000,000</code>) Note that grouping is turned
- on by using <code class="inline-code">","</code> in the pattern, as shown
- in the earlier example. If it's not turned on, this option
- won't have visible effect.</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">exponentSeparator</code></td>
-
-
- <td>This string (of arbitrary length) is used to separate
- the exponent from the part before it. (like
- <code class="inline-code">"E"</code> in <code class="inline-code">1.23E6</code>). Only
- has visible effect if the pattern specifies exponential
- (also known as scientific) format, like
- <code class="inline-code">"0.##E0"</code>.</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">minusSign</code></td>
-
-
- <td>The single character used as minus sign (like
- <code class="inline-code">"-"</code> in <code class="inline-code">-1</code>).</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">infinity</code></td>
-
-
- <td>The string (of arbitrary length) used to show
- infinity.</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">nan</code></td>
-
-
- <td>The string (of arbitrary length) used to show
- not-a-number (NaN).</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">percent</code></td>
-
-
- <td>The single character used as the percent symbol (like
- <code class="inline-code">"%"</code> in <code class="inline-code">50%</code>). Only has
- visible effect if the pattern contains
- <code class="inline-code">%</code>.</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">perMill</code></td>
-
-
- <td>The single character used as the per-mill symbol (like
- <code class="inline-code">"\u2030"</code> in <code class="inline-code">50021\u2030</code>). Only
- has visible effect if the pattern contains
- <code class="inline-code">\u2030</code>.</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">zeroDigit</code></td>
-
-
- <td>The first character in the 10 character range (of
- character codes) that contains the digits to be used. For
- example, if this is <code class="inline-code">A</code>, then 1 will
- <code class="inline-code">B</code>, 2 will be <code class="inline-code">C</code>, and so
- on.</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">currencyCode</code></td>
-
-
- <td>Currency ISO 4217 code. Only has effect when the pattern
- contains parts that make it a monetary format. It's an error
- to specify a code that's not a known ISO 4217 code in the
- Java installation.</td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">currencySymbol</code></td>
-
-
- <td>Currency symbol; shown where the localized currency name
- is present in the pattern. Overrides the symbol determined
- based on the <code class="inline-code">currencyCode</code>.</td>
-
- </tr>
-
- </tbody>
-
- </table>
- </div>
-
-
- <p>Regarding the syntax of the options:</p>
-
- <ul>
- <li>
- <p>The option name and value are separated by equals
- character (<code class="inline-code">=</code>).</p>
- </li>
-
- <li>
- <p>Options are separated by whitespace and/or optional
- comma (<code class="inline-code">,</code>)</p>
- </li>
-
- <li>
- <p>The option value can be quoted with apostrophe
- (<code class="inline-code">'</code>) or normal quotation mark
- (<code class="inline-code">"</code>) , like
- <code class="inline-code">exponentSeparator='*10^'</code> or
- <code class="inline-code">exponentSeparator="*10^"</code>. If the value
- itself has to contain the character used for quotation, then
- it has to be entered twice (like <code class="inline-code">infinity='It''s
- infinite'</code>, but you could also write
- <code class="inline-code">infinity="It's infinite"</code>). Backslash has no
- special meaning.</p>
- </li>
-
- <li>
- <p>Non-string values must not be quoted. Strings only has
- to be quoted if they contain punctuation or whitespace, or any
- other non-letter non-digit non-<code class="inline-code">"_"</code>
- non-<code class="inline-code">"$"</code> characters. Thus, for example, both
- <code class="inline-code">roundingMode=down</code> and
- <code class="inline-code">roundingMode="down"</code> are legal.</p>
- </li>
- </ul>
-
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_upper_abc">upper_abc</h2>
-
-
-
-
-
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in exists since FreeMarker 2.3.22.</p>
- </div>
-
-
- <p>Same as <a href="#ref_builtin_lower_abc"><code>lower_abc</code></a>,
- but converts to upper case letters, like <code class="inline-code">"A"</code>,
- <code class="inline-code">"B"</code>, <code class="inline-code">"C"</code>, \u2026,
- <code class="inline-code">"AA"</code>, <code class="inline-code">"AB"</code>, etc.</p>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_builtins_string.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_builtins_date.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/ref_builtins_sequence.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_builtins_sequence.html b/builds/2.3.26-nightly/ref_builtins_sequence.html
deleted file mode 100644
index a3fe4ba..0000000
--- a/builds/2.3.26-nightly/ref_builtins_sequence.html
+++ /dev/null
@@ -1,577 +0,0 @@
-<!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>Built-ins for sequences - 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="Built-ins for sequences">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_builtins_sequence.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_builtins_sequence.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_builtins.html"><span itemprop="name">Built-in Reference</span></a></li><li class="step-3"
itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_builtins_sequence.html"><span itemprop="name">Built-ins for sequences</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","Template Language Reference","Built-in Reference","Built-ins for sequences"];</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="ref_builtins_boolean.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_builtins_hash.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="ref_builtins_sequence" itemprop="headline">Built-ins for sequences</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#ref_builtin_chunk" data-menu-target="ref_builtin_chunk">chunk</a></li><li><a class="page-menu-link" href="#ref_builtin_first" data-menu-target="ref_builtin_first">first</a></li><li><a class="page-menu-link" href="#ref_builtin_join" data-menu-target="ref_builtin_join">join</a></li><li><a class="page-menu-link" href="#ref_builtin_last" data-menu-target="ref_builtin_last">last</a></li><li><a class="page-menu-link" href="#ref_builtin_reverse" data-menu-target="ref_builtin_reverse">reverse</a></li><li><a class="page-menu-link" href="#ref_builtin_seq_contains" data-menu-target="ref_builtin_seq_contains">seq_contains</a></li><li><a class="page-menu-link" href="#ref_builtin_seq_index_of" data-menu-target="ref_builtin_seq_index_of">seq_index_of</a></li><li><a class="page-menu-link" href="#ref_builtin_seq_last_index_of" data-menu-target="ref_builtin_seq_last_index_of">seq_last_index_of</a></li><li><a class="page-menu-link" href="#ref_builtin_size" data
-menu-target="ref_builtin_size">size</a></li><li><a class="page-menu-link" href="#ref_builtin_sort" data-menu-target="ref_builtin_sort">sort</a></li><li><a class="page-menu-link" href="#ref_builtin_sort_by" data-menu-target="ref_builtin_sort_by">sort_by</a></li></ul> </div>
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_chunk">chunk</h2>
-
-
-
-
-
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in exists since FreeMarker 2.3.3.</p>
- </div>
-
-
- <p>This built-in splits a sequence into multiple sequences of the
- size given with the 1st parameter to the built-in (like
- <code class="inline-code">mySeq?chunk(3)</code>). The result is the sequence of
- these sequences. The last sequence is possibly shorter than the
- given size, unless the 2nd parameter is given (like
- <code class="inline-code">mySeq?chunk(3, '-')</code>), that is the item used to
- make up the size of the last sequence to the given size.
- Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign seq = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']>
-
-<#list seq?chunk(4) as row>
- <#list row as cell>${cell} </#list>
-</#list>
-
-<#list seq?chunk(4, '-') as row>
- <#list row as cell>${cell} </#list>
-</#list></pre></div>
-
- <p>The output will be:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">
- a b c d
- e f g h
- i j
-
- a b c d
- e f g h
- i j - -
- </pre></div>
-
- <p>This built in is mostly for outputting sequnces in
- tabular/columnar format. When used with HTML tables, the 2nd
- parameter is often <code class="inline-code">"\xA0"</code> (that is the code of
- the no-break space character, also known as "nbsp"), so
- the border of the empty TD-s will not be missing.</p>
-
- <p>The 1st parameter must be a number that is at least 1. If the
- number is not integer, it will be silently rounded down to integer
- (i.e. both 3.1 and 3.9 will be rounded to 3). The 2nd parameter can
- be of any type and value.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_first">first</h2>
-
-
-
-
- <p>Returns the first item of the sequence. Thus
- <code class="inline-code"><em class="code-color">value</em>?first</code> is the
- same as <code class="inline-code"><em class="code-color">value</em>[0]</code>,
- except that, since FreeMarker 2.3.26,
- <code class="inline-code"><em class="code-color">value</em>?first</code> also works
- if <code class="inline-code"><em class="code-color">value</em></code> doesn't
- support getting items with numerical index, but still supports to be
- listed (i.e., with FTL collection values).</p>
-
- <p>If the sequence or collection is empty, the result will be a
- missing value (as in
- <code class="inline-code"><em class="code-color">empty</em>?first!'No item was
- found'</code>).</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_join">join</h2>
-
-
-
-
- <p>Concatenates the items of a sequence to a single string, with
- the given separator. For example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign colors = ["red", "green", "blue"]>
-${colors?join(", ")}</pre></div>
-
- <p>will output:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">red, green, blue</pre></div>
-
- <p>Sequence items that are not strings will be converted to
- string with the same conversion rules as of
- <code class="inline-code">${<em class="code-color">...</em>}</code> (except, of
- course, no automatic escaping is applied at this stage).</p>
-
- <p><code class="inline-code">?join(<em class="code-color">...</em>)</code> can
- have up to 3 parameters:</p>
-
- <div class="orderedlist"><ol type="1">
- <li>
- <p>Separator, required: The string that is inserted between
- items</p>
- </li>
-
- <li>
- <p>Empty value, defaults to <code class="inline-code">""</code> (empty
- string): The value used if the sequence contains no
- items.</p>
- </li>
-
- <li>
- <p>List ending, defaults to <code class="inline-code">""</code> (empty
- string): The value printed after the last value, if the list
- sequence wasn't empty.</p>
- </li>
- </ol></div>
-
- <p>So this (where <code class="inline-code">[]</code> means an empty
- sequence):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${colors?join(", ", "-")}
-${[]?join(", ", "-")}
-
-${colors?join(", ", "-", ".")}
-${[]?join(", ", "-", ".")}</pre></div>
-
- <p>will output:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">red, green, blue
--
-
-red, green, blue.
--</pre></div>
-
- <p class="programmers-note">Sequences coming from Java might contain
- <code class="inline-code">null</code> values. Those values will be ignored by this
- built-in, exactly like if they were removed from the list.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_last">last</h2>
-
-
-
-
- <p>The last subvariable of the sequence. Template processing will
- die with error if the sequence is empty.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_reverse">reverse</h2>
-
-
-
-
- <p>The sequence with reversed order.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_seq_contains">seq_contains</h2>
-
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in is available since FreeMarker 2.3.1. It
- doesn't exist in 2.3.</p>
- </div>
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>The <code class="inline-code">seq_</code> prefix is required in the
- built-in name to differentiate it from the <a href="ref_builtins_string.html#ref_builtin_contains"><code>contains</code>
- built-in</a> that searches a substring in a string (since a
- variable can be both string and sequence on the same time).</p>
- </div>
-
-
- <p>Tells if the sequence contains the specified value. It has 1
- parameter, the value to find. Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign x = ["red", 16, "blue", "cyan"]>
-"blue": ${x?seq_contains("blue")?string("yes", "no")}
-"yellow": ${x?seq_contains("yellow")?string("yes", "no")}
-16: ${x?seq_contains(16)?string("yes", "no")}
-"16": ${x?seq_contains("16")?string("yes", "no")}</pre></div>
-
- <p>The output will be:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">"blue": yes
-"yellow": no
-16: yes
-"16": no</pre></div>
-
- <p>To find the value the built-in uses FreeMarker's comparison
- rules (as if you was using <a href="dgui_template_exp.html#dgui_template_exp_comparison"><code>==</code>
- operator</a>), except that comparing two values of different
- types or of types for which FreeMarker doesn't support comparison
- will not cause error, just will be evaluated as the two values are
- not equal. Thus, you can use it only to find scalar values (i.e.
- string, number, boolean or date/time values). For other types the
- result will be always <code class="inline-code">false</code>.</p>
-
- <p>For fault tolerance, this built-in also works with
- collections.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_seq_index_of">seq_index_of</h2>
-
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in is available since FreeMarker 2.3.1. It
- doesn't exist in 2.3.</p>
- </div>
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>The <code class="inline-code">seq_</code> prefix is required in the
- built-in name to differentiate it from the <a href="ref_builtins_string.html#ref_builtin_index_of"><code>index_of</code>
- built-in</a> that searches a substring in a string (since a
- variable can be both string and sequence on the same time).</p>
- </div>
-
-
- <p>Returns the index of the first occurrence of a value in the
- sequence, or <code class="inline-code">-1</code> if the sequence doesn't contain
- the specified value. The value to find is specified as the first
- parameter. For example this template:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign colors = ["red", "green", "blue"]>
-${colors?seq_index_of("blue")}
-${colors?seq_index_of("red")}
-${colors?seq_index_of("purple")}</pre></div>
-
- <p>will output this:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">2
-0
--1</pre></div>
-
- <p>To find the value the built-in uses FreeMarker's comparison
- rules (as if you was using <a href="dgui_template_exp.html#dgui_template_exp_comparison"><code>==</code>
- operator</a>), except that comparing two values of different
- types or of types for which FreeMarker doesn't support comparison
- will not cause error, just will be evaluated as the two values are
- not equal. Thus, you can use it only to find scalar values (i.e.
- string, number, boolean or date/time values). For other types the
- result will be always <code class="inline-code">-1</code>.</p>
-
- <p>The index where the searching is started can be optionally
- given as the 2nd parameter. This may be useful if the same item can
- occur for multiple times in the same sequence. There is no
- restriction on the numerical value of the second parameter: if it is
- negative, it has the same effect as if it were zero, and if it is
- greater than the length of the sequence, it has the same effect as
- if it were equal to the length of the sequence. Decimal values will
- be truncated to integers. For example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign names = ["Joe", "Fred", "Joe", "Susan"]>
-No 2nd param: ${names?seq_index_of("Joe")}
--2: ${names?seq_index_of("Joe", -2)}
--1: ${names?seq_index_of("Joe", -1)}
- 0: ${names?seq_index_of("Joe", 0)}
- 1: ${names?seq_index_of("Joe", 1)}
- 2: ${names?seq_index_of("Joe", 2)}
- 3: ${names?seq_index_of("Joe", 3)}
- 4: ${names?seq_index_of("Joe", 4)}</pre></div>
-
- <p>will output this:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">No 2nd param: 0
--2: 0
--1: 0
- 0: 0
- 1: 2
- 2: 2
- 3: -1
- 4: -1</pre></div>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_seq_last_index_of">seq_last_index_of</h2>
-
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This built-in is available since FreeMarker 2.3.1. It
- doesn't exist in 2.3.</p>
- </div>
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>The <code class="inline-code">seq_</code> prefix is required in the
- built-in name to differentiate it from the <a href="ref_builtins_string.html#ref_builtin_last_index_of"><code>last_index_of</code>
- built-in</a> that searches a substring in a string (since a
- variable can be both string and sequence on the same time).</p>
- </div>
-
-
- <p>Returns the index of the last occurrence of a value in the
- sequence, or <code class="inline-code">-1</code> if the sequence doesn't contain
- the specified value. That is, it is the same as <a href="#ref_builtin_seq_index_of"><code>seq_index_of</code></a>,
- just it searches backward starting from the last item of the
- sequence. It also supports the optional 2nd parameter that specifies
- the index where the searching is started. For example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign names = ["Joe", "Fred", "Joe", "Susan"]>
-No 2nd param: ${names?seq_last_index_of("Joe")}
--2: ${names?seq_last_index_of("Joe", -2)}
--1: ${names?seq_last_index_of("Joe", -1)}
- 0: ${names?seq_last_index_of("Joe", 0)}
- 1: ${names?seq_last_index_of("Joe", 1)}
- 2: ${names?seq_last_index_of("Joe", 2)}
- 3: ${names?seq_last_index_of("Joe", 3)}
- 4: ${names?seq_last_index_of("Joe", 4)}</pre></div>
-
- <p>will output this:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">No 2nd param: 2
--2: -1
--1: -1
- 0: 0
- 1: 0
- 2: 2
- 3: 2
- 4: 2</pre></div>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_size">size</h2>
-
-
-
-
- <p>The number of sub variables in sequence (as a numerical
- value). The highest possible index in sequence <code class="inline-code">s</code>
- is <code class="inline-code">s?size�-�1</code> (since the index of the first
- subvariable is 0) assuming that the sequence has at least one
- subvariable.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_sort">sort</h2>
-
-
-
-
-
-
- <p>Returns the sequence sorted in ascending order. (For
- descending order use this and then the <a href="#ref_builtin_reverse"><code>reverse</code> built
- in</a>.) This will work only if all sub variables are strings, or
- if all sub variables are numbers, or if all sub variables are date
- values (date, time, or date+time), or if all sub variables are
- booleans (since 2.3.17). If the sub variables are strings, it uses
- locale (language) specific lexical sorting (which is usually not
- case sensitive). For example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign ls = ["whale", "Barbara", "zeppelin", "aardvark", "beetroot"]?sort>
-<#list ls as i>${i} </#list></pre></div>
-
- <p>will print (with US locale at least):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">aardvark Barbara beetroot whale zeppelin</pre></div>
-
-
-
-
-
-<h2 class="content-header header-section2" id="ref_builtin_sort_by">sort_by</h2>
-
-
-
-
-
-
- <p>Returns the sequence of hashes sorted by the given hash
- subvariable in ascending order. (For descending order use this and
- then the <a href="#ref_builtin_reverse"><code>reverse</code> built
- in</a>.) The rules are the same as with the <a href="#ref_builtin_sort"><code>sort</code> built-in</a>,
- except that the sub variables of the sequence must be hashes, and
- you have to give the name of a hash subvariable that will decide the
- order. For example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign ls = [
- {"name":"whale", "weight":2000},
- {"name":"Barbara", "weight":53},
- {"name":"zeppelin", "weight":-200},
- {"name":"aardvark", "weight":30},
- {"name":"beetroot", "weight":0.3}
-]>
-Order by name:
-<#list ls?sort_by("name") as i>
-- ${i.name}: ${i.weight}
-</#list>
-
-Order by weight:
-<#list ls?sort_by("weight") as i>
-- ${i.name}: ${i.weight}
-</#list></pre></div>
-
- <p>will print (with US locale at least):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">Order by name:
-- aardvark: 30
-- Barbara: 53
-- beetroot: 0.3
-- whale: 2000
-- zeppelin: -200
-
-Order by weight:
-- zeppelin: -200
-- beetroot: 0.3
-- aardvark: 30
-- Barbara: 53
-- whale: 2000</pre></div>
-
- <p>If the subvariable that you want to use for the sorting is on
- a deeper level (that is, if it is a subvariable of a subvariable and
- so on), then you can use a sequence as parameter, that specifies the
- names of the sub variables that lead down to the desired
- subvariable. For example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign members = [
- {"name": {"first": "Joe", "last": "Smith"}, "age": 40},
- {"name": {"first": "Fred", "last": "Crooger"}, "age": 35},
- {"name": {"first": "Amanda", "last": "Fox"}, "age": 25}]>
-Sorted by name.last:
-<#list members?sort_by(['name', 'last']) as m>
-- ${m.name.last}, ${m.name.first}: ${m.age} years old
-</#list></pre></div>
-
- <p>will print (with US locale at least):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">Sorted by name.last:
-- Crooger, Fred: 35 years old
-- Fox, Amanda: 25 years old
-- Smith, Joe: 40 years old</pre></div>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_builtins_boolean.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_builtins_hash.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>\u20132017
-<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>
[42/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/dgui_quickstart_basics.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/dgui_quickstart_basics.html b/builds/2.3.26-nightly/dgui_quickstart_basics.html
deleted file mode 100644
index be35670..0000000
--- a/builds/2.3.26-nightly/dgui_quickstart_basics.html
+++ /dev/null
@@ -1,138 +0,0 @@
-<!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>Template + data-model = output - 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="Template + data-model = output">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/dgui_quickstart_basics.html">
-<link rel="canonical" href="http://freemarker.org/docs/dgui_quickstart_basics.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="dgui.html"><span itemprop="name">Template Author's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="dgui_quickstart.html"><span itemprop="name">Getting Started</span></a></li><li class="step-3"
itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="dgui_quickstart_basics.html"><span itemprop="name">Template + data-model = output</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","Template Author\'s Guide","Getting Started","Template + data-model = output"];</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="dgui_quickstart.html"><span>Previous</span></a><a class="paging-arrow next" href="dgui_quickstart_datamodel.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="dgui_quickstart_basics" itemprop="headline">Template + data-model = output</h1>
-</div></div><p>Let's assume that you need a HTML page on a website, similar to
- this:</p>
-
-<div class="code-wrapper"><pre class="code-block code-output"><html>
-<head>
- <title>Welcome!</title>
-</head>
-<body>
- <h1>Welcome <strong>John Doe</strong>!</h1>
- <p>Our latest product:
- <a href="<strong>products/greenmouse.html</strong>"><strong>green mouse</strong></a>!
-</body>
-</html></pre></div><p>But the user's name ("John Doe" above) depends on who the
- logged-in user is, and the latest product information should come from
- a database. Because this data changes, you cannot you cannot use
- static HTML. Instead, you can use a <strong>template</strong> of the desired output. The template is
- the same as the static HTML would be, except that it contains some
- instructions to FreeMarker that makes it dynamic:</p>
-
-<div class="code-wrapper"><pre class="code-block code-template"><a name="example.first"></a><html>
-<head>
- <title>Welcome!</title>
-</head>
-<body>
- <h1>Welcome <strong>${user}</strong>!</h1>
- <p>Our latest product:
- <a href="<strong>${latestProduct.url}</strong>"><strong>${latestProduct.name}</strong></a>!
-</body>
-</html></pre></div><p>The template is stored on the Web server, usually just like the
- static HTML page would be. But whenever someone visits this page,
- FreeMarker will step in and transform the template on-the-fly to plain
- HTML by replacing the
- <code class="inline-code">${<em class="code-color">...</em>}</code>-s with up-to-date
- content, and send the result to the visitor's Web browser. So the
- visitor's Web browser will receive something like the first example
- HTML (i.e., plain HTML without FreeMarker instructions), and it will
- not perceive that FreeMarker is used on the server. (Of course, the
- template file stored on the Web server is not changed by this; the
- substitutions only appear in the Web server's response.)</p><p>Note that the template doesn't contain the programming logic to
- find out who the current visitor is, or to query the database to get
- the latest product. The data to be displayed is prepared outside
- FreeMarker, usually by parts written in some "real"
- programming language like Java. The template author needn't know how
- these values were calculated. In fact, the way these values are
- calculated can be completely changed while the templates can remain
- exactly the same, and also, the look of the page can be completely
- changed without touching anything but the template. This separation of
- presentation logic and business logic can be especially useful when
- the template authors (designers) and the programmers are different
- individuals, but also helps managing application complexity if they
- are the same person. Keeping templates focused on presentation issues
- (visual design, layout and formatting) is a key for using template
- engines like FreeMarker efficiently.</p><p>The totality of data that was prepared for the template
- is called the <strong>data-model</strong>. As far as
- the template author is concerned, the data-model is a tree-like
- structure (like folders and files on your hard disk), which, in this
- case, could be visualized as:</p>
-
-<div class="code-wrapper"><pre class="code-block code-data-model">(root)
- |
- +- <strong>user</strong> = "Big Joe"
- |
- +- <strong>latestProduct</strong>
- |
- +- <strong>url</strong> = "products/greenmouse.html"
- |
- +- <strong>name</strong> = "green mouse"</pre></div> <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>The above is just a visualization; the data-model is not in a
- textual format, it's from Java objects. For the Java programmers,
- the root is perhaps a Java object with <code class="inline-code">getUser()</code>
- and <code class="inline-code">getLatestProduct()</code> methods, or maybe a Java
- <code class="inline-code">Map</code> with <code class="inline-code">"user"</code> and
- <code class="inline-code">"latestProducts"</code> keys. Similarly,
- <code class="inline-code">latestProduct</code> is perhaps a Java Object with
- <code class="inline-code">getUrl()</code> and <code class="inline-code">getName()</code>
- methods.</p>
- </div>
-<p>Earlier, you have picked values from this data-model, with the
- <code class="inline-code">user</code> and <code class="inline-code">latestProduct.name</code>
- expressions. If we go on with the analogy that the data model is like
- a file system, then "(root)" and
- <code class="inline-code">latestProduct</code> correspond to directories (folders),
- and <code class="inline-code">user</code>, <code class="inline-code">url</code> and
- <code class="inline-code">name</code> are files in those directories.</p><p>To recapitulate, a template and a data-model is needed for
- FreeMarker to generate the output (like the HTML shown first):</p><p><span class="marked-template">Template</span> + <span class="marked-data-model">data-model</span> = <span class="marked-output">output</span></p><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="dgui_quickstart.html"><span>Previous</span></a><a class="paging-arrow next" href="dgui_quickstart_datamodel.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/dgui_quickstart_datamodel.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/dgui_quickstart_datamodel.html b/builds/2.3.26-nightly/dgui_quickstart_datamodel.html
deleted file mode 100644
index 5f5b57e..0000000
--- a/builds/2.3.26-nightly/dgui_quickstart_datamodel.html
+++ /dev/null
@@ -1,199 +0,0 @@
-<!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>The data-model at a glance - 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="The data-model at a glance">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/dgui_quickstart_datamodel.html">
-<link rel="canonical" href="http://freemarker.org/docs/dgui_quickstart_datamodel.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="dgui.html"><span itemprop="name">Template Author's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="dgui_quickstart.html"><span itemprop="name">Getting Started</span></a></li><li class="step-3"
itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="dgui_quickstart_datamodel.html"><span itemprop="name">The data-model at a glance</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","Template Author\'s Guide","Getting Started","The data-model at a glance"];</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="dgui_quickstart_basics.html"><span>Previous</span></a><a class="paging-arrow next" href="dgui_quickstart_template.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="dgui_quickstart_datamodel" itemprop="headline">The data-model at a glance</h1>
-</div></div><p>As you have seen, the data-model is basically a tree. This tree
- can be arbitrarily complicated and deep, for example:</p>
-
-<div class="code-wrapper"><pre class="code-block code-data-model"><a name="example.qStart.dataModelWithHashes"></a>(root)
- |
- +- animals
- | |
- | +- mouse
- | | |
- | | +- size = "small"
- | | |
- | | +- price = 50
- | |
- | +- elephant
- | | |
- | | +- size = "large"
- | | |
- | | +- price = 5000
- | |
- | +- python
- | |
- | +- size = "medium"
- | |
- | +- price = 4999
- |
- +- message = "It is a test"
- |
- +- misc
- |
- +- foo = "Something"</pre></div><p>The variables that act like directories (the root,
- <code class="inline-code">animals</code>, <code class="inline-code">mouse</code>,
- <code class="inline-code">elephant</code>, <code class="inline-code">python</code>,
- <code class="inline-code">misc</code>) are called <strong>hashes</strong>. Hashes store other variables (the so
- called <a name="topic.dataModel.subVar"></a><em>sub
- variables</em>) by a lookup name (e.g., "animals",
- "mouse" or "price").</p><p>The variables that store a single value
- (<code class="inline-code">size</code>, <code class="inline-code">price</code>,
- <code class="inline-code">message</code> and <code class="inline-code">foo</code>) are called
- <strong>scalars</strong>.</p><p><a name="topic.qStart.accessVariables"></a>When you want to
- use a subvariable in a template, you specify its path from the root,
- and separate the steps with dots. To access the
- <code class="inline-code">price</code> of a <code class="inline-code">mouse</code>, you start from
- the root and go into <code class="inline-code">animals</code>, and then go into
- <code class="inline-code">mouse</code> then go into <code class="inline-code">price</code>. So you
- write <code class="inline-code">animals.mouse.price</code>.</p><p>Another important kind of variables are <strong>sequences</strong>. They store subvariables like hashes,
- but here subvariables doesn't have a name, they are just items in a
- list. For example, in this data-model, <code class="inline-code">animals</code> and
- <code class="inline-code">misc.fruits</code> are sequences:</p>
-
-<div class="code-wrapper"><pre class="code-block code-data-model"><a name="example.qStart.dataModelWithSequences"></a>(root)
- |
- +- animals
- | |
- | +- (1st)
- | | |
- | | +- name = "mouse"
- | | |
- | | +- size = "small"
- | | |
- | | +- price = 50
- | |
- | +- (2nd)
- | | |
- | | +- name = "elephant"
- | | |
- | | +- size = "large"
- | | |
- | | +- price = 5000
- | |
- | +- (3rd)
- | |
- | +- name = "python"
- | |
- | +- size = "medium"
- | |
- | +- price = 4999
- |
- +- misc
- |
- +- fruits
- |
- +- (1st) = "orange"
- |
- +- (2nd) = "banana"</pre></div><p>To access a subvariable of a sequence you use a numerical index
- in square brackets. Indexes start from 0 (it's a programmer tradition
- to start with 0), thus the index of the 1st item is 0, the index of
- the 2nd item is 1, and so on. So to get the name of the first animal
- you write <code class="inline-code">animals[0].name</code>. To get the second item
- in <code class="inline-code">misc.fruits</code> (the string
- <code class="inline-code">"banana"</code>) you write
- <code class="inline-code">misc.fruits[1]</code>. (In practice, you usually just walk
- through sequences in order, not caring about the index, but that will
- be <a href="dgui_quickstart_template.html#topic.tutorial.list">shown later</a>.)</p><p>Scalars can be further divided into these categories:</p><ul>
- <li>
- <p>String: Text, that is, an arbitrary sequence of characters
- such as ''m'', ''o'', ''u'', ''s'', ''e'' above. For example the
- <code class="inline-code">name</code>-s and <code class="inline-code">size</code>-s are
- strings above.</p>
- </li>
-
- <li>
- <p>Number: It's a numerical value, like the
- <code class="inline-code">price</code>-s above. The string
- <code class="inline-code">"50"</code> and the number <code class="inline-code">50</code> are
- two totally different things in FreeMarker. The former is just a
- sequence of two characters (which happens to be readable as a
- number for humans), while the latter is a numerical value that you
- can use in arithmetical calculations.</p>
- </li>
-
- <li>
- <p>Date-like: Either a date-time (stores a date with time of
- the day), or a date (no time of day), or a time (time of day, no
- date).</p>
- </li>
-
- <li>
- <p>Boolean: A true/false (yes/no, on/off, etc.) thing. Like
- animals could have a <code class="inline-code">protected</code> subvariable,
- which store if the animal is protected or not.</p>
- </li>
- </ul><p>Summary:</p><ul>
- <li>
- <p>The data-model can be visualized as a tree.</p>
- </li>
-
- <li>
- <p>Scalars store a single value. The value can be a string or a
- number or a date-time/date/time or a boolean.</p>
- </li>
-
- <li>
- <p>Hashes are containers that store other variables and
- associate them with a unique lookup name.</p>
- </li>
-
- <li>
- <p>Sequences are containers that store other variables in an
- ordered sequence. The stored variables can be retrieved via their
- numerical index, starting from 0.</p>
- </li>
- </ul> <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>There are other, more advanced value types that we don't cover
- here, such as methods and directives.</p>
- </div>
-<div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="dgui_quickstart_basics.html"><span>Previous</span></a><a class="paging-arrow next" href="dgui_quickstart_template.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/dgui_quickstart_template.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/dgui_quickstart_template.html b/builds/2.3.26-nightly/dgui_quickstart_template.html
deleted file mode 100644
index 9626066..0000000
--- a/builds/2.3.26-nightly/dgui_quickstart_template.html
+++ /dev/null
@@ -1,707 +0,0 @@
-<!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>The template at a glance - 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="The template at a glance">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/dgui_quickstart_template.html">
-<link rel="canonical" href="http://freemarker.org/docs/dgui_quickstart_template.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="dgui.html"><span itemprop="name">Template Author's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="dgui_quickstart.html"><span itemprop="name">Getting Started</span></a></li><li class="step-3"
itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="dgui_quickstart_template.html"><span itemprop="name">The template at a glance</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","Template Author\'s Guide","Getting Started","The template at a glance"];</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="dgui_quickstart_datamodel.html"><span>Previous</span></a><a class="paging-arrow next" href="dgui_datamodel.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="dgui_quickstart_template" itemprop="headline">The template at a glance</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_2" data-menu-target="autoid_2">Some basic directives</a><ul><li><a class="page-menu-link" href="#autoid_3" data-menu-target="autoid_3">The if directive</a></li><li><a class="page-menu-link" href="#autoid_4" data-menu-target="autoid_4">The list directive</a></li><li><a class="page-menu-link" href="#autoid_5" data-menu-target="autoid_5">The include directive</a></li></ul></li><li><a class="page-menu-link" href="#autoid_6" data-menu-target="autoid_6">Using directives together</a></li><li><a class="page-menu-link" href="#autoid_7" data-menu-target="autoid_7">Using built-ins</a></li><li><a class="page-menu-link" href="#autoid_8" data-menu-target="autoid_8">Dealing with missing variables</a></li><li><a class="page-menu-link" href="#dgui_quickstart_template_autoescaping" data-menu-target="dgui_quickstart_template_autoescaping">Escaping for HTML, XML and other markup</a></li></ul> </div><p>The simplest template is a plain HTML file (or whateve
r text
- file; FreeMarker is not confined to HTML). When the client visits that
- page, FreeMarker will send that HTML to the client as is. However if
- you want that page to be more dynamic then you begin to put special
- parts into the HTML which will be understood by FreeMarker:</p><ul>
- <li>
- <p><code class="inline-code">${<em class="code-color">...</em>}</code>:
- FreeMarker will replace it in the output with the actual value of
- the expression inside the curly brackets. They are called
- <strong>interpolation</strong>s.</p>
- </li>
-
- <li>
- <p><strong>FTL tags</strong> (for FreeMarker
- Template Language tags): FTL tags are a bit similar to HTML tags,
- but they are instructions to FreeMarker and will not be printed to
- the output. The name of these tags start with
- <code class="inline-code">#</code>. (User-defined FTL tags use
- <code class="inline-code">@</code> instead of <code class="inline-code">#</code>, but they are
- an advanced topic.)</p>
- </li>
-
- <li>
- <p><strong>Comments:</strong> Comments are
- similar to HTML comments, but they are delimited by
- <code class="inline-code"><#--</code> and <code class="inline-code">--></code>. Unlike
- HTML comments, FTL comments won't get into the output (won't be
- visible in the page source for the visitor), because FreeMarker
- skips them.</p>
- </li>
- </ul><p>Anything not an FTL tag or an interpolation or comment is
- considered static text and will not be interpreted by FreeMarker; it
- is just printed to the output as-is.</p><p>With FTL tags you refer to so-called <strong>directives</strong>. This is the same kind of
- relationship as between HTML tags (e.g.:
- <code class="inline-code"><table></code> and
- <code class="inline-code"></table></code>) and HTML elements (e.g., the
- <code class="inline-code">table</code> element) to which you refer to with the HTML
- tags. (If you don't understand this difference then consider "FTL tag"
- and "directive" synonyms.)</p> <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>You can easily try writing templates on <a href="http://freemarker-online.kenshoo.com/">http://freemarker-online.kenshoo.com/</a></p>
- </div>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_2">Some basic directives</h2>
-
-
- <p>Here we will look at some of the most commonly used directives
- (<a href="ref_directives.html">but there are much
- more</a>).</p>
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_3">The if directive</h3>
-
-
- <p>With the <code class="inline-code">if</code> directive you can
- conditionally skip a section of the template. For example, assume
- that in the <a href="dgui_quickstart_basics.html#example.first">very first
- example</a> you want to greet your boss, Big Joe, differently
- than other users:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><html>
-<head>
- <title>Welcome!</title>
-</head>
-<body>
- <h1>
- Welcome ${user}<strong><#if user == "Big Joe"></strong>, our beloved leader<strong></#if></strong>!
- </h1>
- <p>Our latest product:
- <a href="${latestProduct.url}">${latestProduct.name}</a>!
-</body>
-</html></pre></div>
-
- <p>Here you have told FreeMarker that the ", our beloved
- leader" should be there only if the value of the variable
- <code class="inline-code">user</code> is equal to the string <code class="inline-code">"Big
- Joe"</code>. In general, things between <code class="inline-code"><#if
- <em class="code-color">condition</em>></code> and
- <code class="inline-code"></#if></code> tags are skipped if
- <code class="inline-code"><em class="code-color">condition</em></code> is false
- (the boolean value).</p>
-
- <p>Let's look at
- <code class="inline-code"><em class="code-color">condition</em></code> more
- closely: <code class="inline-code">==</code> is an operator that tests if the
- values at its left and right side are equivalent, and the results
- is a boolean value, true or false accordingly. On the left side of
- <code class="inline-code">==</code> I have <a href="dgui_quickstart_datamodel.html#topic.qStart.accessVariables">referenced a
- variable</a> with the syntax that should be already familiar;
- this will be replaced with the value of the variable. In general,
- unquoted words inside directives or interpolations are treated as
- references to variables. On the right side I have specified a
- literal string. Literal strings in templates must
- <em>always</em> be put inside quotation marks.</p>
-
- <p>This will print "Pythons are free today!" if
- their price is 0:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#if animals.python.price == <strong>0</strong>>
- Pythons are free today!
-</#if></pre></div>
-
- <p>Similarly as earlier when a string was specified directly,
- here a number is specified directly (<code class="inline-code">0</code>). Note
- that the number is <em>not</em> quoted. If you quoted
- it (<code class="inline-code">"0"</code>), FreeMarker would misinterpret it as a
- string literal, and because the price to compare it to is a
- number, you get an error.</p>
-
- <p>This will print "Pythons are not free today!" if their price
- is not 0:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#if animals.python.price <strong>!=</strong> 0>
- Pythons are not free today!
-</#if></pre></div>
-
- <p>As you probably guessed, <code class="inline-code">!=</code> means
- "not equals".</p>
-
- <p>You can write things like this too (using <a href="dgui_quickstart_datamodel.html#example.qStart.dataModelWithHashes">the data-model used
- to demonstrate hashes</a>):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#if <strong>animals.python.price < animals.elephant.price</strong>>
- Pythons are cheaper than elephants today.
-</#if></pre></div>
-
- <p>With the <code class="inline-code"><#else></code> tag you can
- specify what to do if the condition is false. For example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#if animals.python.price < animals.elephant.price>
- Pythons are cheaper than elephants today.
-<strong><#else></strong>
- Pythons are not cheaper than elephants today.
-</#if></pre></div>
-
- <p>This prints "Pythons are cheaper than elephants
- today." if the price of python is less than the price of
- elephant, or else it prints "Pythons are not cheaper than
- elephants today." You can refine this further by using
- <code class="inline-code">elseif</code>:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#if animals.python.price < animals.elephant.price>
- Pythons are cheaper than elephants today.
-<strong><#elseif animals.elephant.price < animals.python.price></strong>
- Elephants are cheaper than pythons today.
-<#else>
- Elephants and pythons cost the same today.
-</#if></pre></div>
-
- <p>If you have a variable with boolean value (a true/false
- thing) then you can use it directly as the
- <code class="inline-code"><em class="code-color">condition</em></code> of
- <code class="inline-code">if</code>:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#if animals.python.protected>
- Pythons are protected animals!
-</#if></pre></div>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_4">The list directive</h3>
-
-
- <a name="topic.tutorial.list"></a>
-
- <p>This is needed when you want to list something. For example
- if you merge this template with the <a href="dgui_quickstart_datamodel.html#example.qStart.dataModelWithSequences">data-model used
- earlier to demonstrate sequences</a>:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><p>We have these animals:
-<table border=1>
- <strong><#list animals as animal></strong>
- <tr><td>${<strong>animal</strong>.name}<td>${<strong>animal</strong>.price} Euros
- <strong></#list></strong>
-</table></pre></div>
-
- <p>then the output will be:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"><p>We have these animals:
-<table border=1>
- <strong><tr><td>mouse<td>50 Euros
- <tr><td>elephant<td>5000 Euros
- <tr><td>python<td>4999 Euros</strong>
-</table></pre></div>
-
- <p>The generic form of the <code class="inline-code">list</code> directive
- is:<code class="inline-code"> <#list <em class="code-color">sequence</em> as
- <em class="code-color">loopVariable</em>><em class="code-color">repeatThis</em></#list></code>.
- The <code class="inline-code"><em class="code-color">repeatThis</em></code> part
- will be repeated for each item in the sequence that you have
- specified with
- <code class="inline-code"><em class="code-color">sequence</em></code>, one after
- the other, starting from the first item. In all repetitions
- <code class="inline-code"><em class="code-color">loopVariable</em></code> will
- hold the value of the current item. This variable exists only
- between the <code class="inline-code"><#list
- <em class="code-color">...</em>></code> and
- <code class="inline-code"></#list></code> tags.</p>
-
- <p>The <code class="inline-code"><em class="code-color">sequence</em></code>
- can be any kind of expression. For example we could list the
- fruits of the example data model like this:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><ul>
-<strong><#list misc.fruits as fruit></strong>
- <li>${fruit}
-<strong></#list></strong>
-</ul></pre></div>
-
- <p>The <code class="inline-code">misc.fruits</code> expression should be
- familiar to you; it <a href="dgui_quickstart_datamodel.html#topic.qStart.accessVariables">references a variable in
- the data-model</a>.</p>
-
- <p>A problem with the above example is that if we happen to
- have 0 fruits, it will still print an empty
- <code class="inline-code"><ul></ul></code> instead of just nothing.
- To avoid that, you can use this form of
- <code class="inline-code">list</code>:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list misc.fruits>
- <ul>
- <strong> <#items as fruit></strong>
- <li>${fruit}
- <strong> </#items></strong>
- </ul>
-</#list></pre></div>
-
- <p>Here, the <code class="inline-code">list</code> directive represents the
- listing as a whole, and only the part inside the
- <code class="inline-code">items</code> directive is repeated for each fruit. If
- we have 0 fruits, everything inside <code class="inline-code">list</code> is
- skipped, hence we will not have <code class="inline-code">ul</code> tags in
- case.</p>
-
- <p>Another frequent listing-related task: let's list the fruits
- separating them with something, like a comma:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><p>Fruits: <#list misc.fruits as fruit>${fruit}<strong><#sep>, </strong></#list></pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"><p>Fruits: orange, banana</pre></div>
-
- <p>The section covered by <code class="inline-code">sep</code> (which we
- could be written like this too:
- <code class="inline-code"><em class="code-color">...</em><#sep>,
- </#sep></#list></code>) will be only executed when
- there will be a next item. Hence there's no comma after the last
- fruit.</p>
-
- <p>Here again, what if we have 0 fruits? Just printing
- "Fruits:" and then nothing is awkward. A
- <code class="inline-code">list</code>, just like an <code class="inline-code">if</code>, can
- have an <code class="inline-code">else</code>, which is executed if there were 0
- list items:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><p>Fruits: <#list misc.fruits as fruit>${fruit}<#sep>, <strong><#else>None</strong></#list></pre></div>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>As a matter of fact, this simplistic example could be
- written like this, but it uses language devices that are off
- topic here:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><p>Fruits: ${fruits?join(", ", "None")}</pre></div>
- </div>
-
-
- <p>All these directives (<code class="inline-code">list</code>,
- <code class="inline-code">items</code>, <code class="inline-code">sep</code>,
- <code class="inline-code">else</code>) can be used together:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list misc.fruits>
- <p>Fruits:
- <ul>
- <#items as fruit>
- <li>${fruit}<#sep> and</#sep>
- </#items>
- </ul>
-<#else>
- <p>We have no fruits.
-</#list></pre></div>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>You can read more about these directives <a href="ref_directive_list.html">in the Reference</a>.</p>
- </div>
-
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_5">The include directive</h3>
-
-
- <p>With the <code class="inline-code">include</code> directive you can insert
- the content of another file into the template.</p>
-
- <p>Suppose you have to show the same copyright notice on
- several pages. You can create a file that contains the copyright
- notice only, and insert that file everywhere where you need that
- copyright notice. Say, you store this copyright notice in
- <code class="inline-code">copyright_footer.html</code>:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><hr>
-<i>
-Copyright (c) 2000 <a href="http://www.acmee.com">Acmee Inc</a>,
-<br>
-All Rights Reserved.
-</i></pre></div>
-
- <p>Whenever you need that file you simply insert it with the
- <code class="inline-code">include</code> directive:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><html>
-<head>
- <title>Test page</title>
-</head>
-<body>
- <h1>Test page</h1>
- <p>Blah blah...
-<strong> <#include "/copyright_footer.html"></strong>
-</body>
-</html></pre></div>
-
- <p>and the output will be:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"><html>
-<head>
- <title>Test page</title>
-</head>
-<body>
- <h1>Test page</h1>
- <p>Blah blah...
-<strong><hr>
-<i>
-Copyright (c) 2000 <a href="http://www.acmee.com">Acmee Inc</a>,
-<br>
-All Rights Reserved.
-</i></strong>
-</body>
-</html></pre></div>
-
- <p>If you change the <code class="inline-code">copyright_footer.html</code>,
- then the visitor will see the new copyright notice on all
- pages.</p>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>A much more powerful way of reusing snippets is using
- macros, but that's an advanced topic <a href="dgui_misc_userdefdir.html">discussed later</a>.</p>
- </div>
-
-
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_6">Using directives together</h2>
-
-
- <p>You can use directives as many times on a page as you want,
- and you can nest directives into each other freely. For example,
- here you nest <code class="inline-code">if</code> directive inside a
- <code class="inline-code">list</code> directive:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><strong><#list animals as animal></strong>
- <div<strong><#if animal.protected></strong><strong> </strong>class="protected"<strong></#if></strong>>
- ${animal.name} for ${animal.price} Euros
- </div>
-<strong></#list></strong></pre></div>
-
- <p>Note that since FreeMarker does not interpret text outside FTL
- tags, interpolations and FTL comments, above you could use the FTL
- tags inside HTML attributes without problem.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_7">Using built-ins</h2>
-
-
- <p>The so-called built-ins are like subvariables (or rather like
- methods, if you know that Java term) that aren't coming from the
- data-model, but added by FreeMarker to the values. In order to make
- it clear where subvariables comes from, you have to use
- <code class="inline-code">?</code> (question mark) instead of <code class="inline-code">.</code>
- (dot) to access them. <a name="topic.commonlyUsedBuiltIns"></a>Examples with some of the most
- commonly used built-ins:</p>
-
- <ul>
- <li>
- <p><code class="inline-code">user?upper_case</code> gives the upper case
- version of the value of <code class="inline-code">user</code> (like
- "JOHN DOE" instead of "John
- Doe")</p>
- </li>
-
- <li>
- <p><code class="inline-code">animal.name?cap_first</code> give the
- <code class="inline-code">animal.name</code> with its first letter converted
- to upper case (like "Mouse" instead of
- "mouse")</p>
- </li>
-
- <li>
- <p><code class="inline-code">user?length</code> gives the number of
- <em>characters</em> in the value of
- <code class="inline-code">user</code> (8 for "John Doe")</p>
- </li>
-
- <li>
- <p><code class="inline-code">animals?size</code> gives the number of
- <em>items</em> in the <code class="inline-code">animals</code>
- sequence (3 in our example data-model)</p>
- </li>
-
- <li>
- <p>If you are between <code class="inline-code"><#list animals as
- animal></code> and the corresponding
- <code class="inline-code"></#list></code> tag:</p>
-
- <ul>
- <li>
- <p><code class="inline-code">animal?index</code> gives the 0-based
- index of <code class="inline-code">animal</code> inside
- <code class="inline-code">animals</code></p>
- </li>
-
- <li>
- <p><code class="inline-code">animal?counter</code> is like
- <code class="inline-code">index</code>, but gives the 1-based index</p>
- </li>
-
- <li>
- <p><code class="inline-code">animal?item_parity</code> gives the
- strings "odd" or "even", depending
- on the current counter parity. This is commonly used for
- coloring rows with alternating colors, like in
- <code class="inline-code"><td
- class="${animal?item_parity}Row"></code>.</p>
- </li>
- </ul>
- </li>
- </ul>
-
- <p>Some built-ins require parameters to specify the behavior
- more, for example:</p>
-
- <ul>
- <li>
- <p><code class="inline-code">animal.protected?string("Y", "N")</code>
- return the string "Y" or "N" depending
- on the boolean value of
- <code class="inline-code">animal.protected</code>.</p>
- </li>
-
- <li>
- <p><code class="inline-code">animal?item_cycle('lightRow',
- 'darkRow')</code> is the more generic variant of
- <code class="inline-code">item_parity</code> from earlier.</p>
- </li>
-
- <li>
- <p><code class="inline-code">fruits?join(", ")</code>: converts the list to
- a string by concatenating items, and inserting the parameter
- separator between each items (like "orange,
- banana")</p>
- </li>
-
- <li>
- <p><code class="inline-code">user?starts_with("J")</code> gives boolean
- true of false depending on if <code class="inline-code">user</code> starts
- with the letter "J" or not.</p>
- </li>
- </ul>
-
- <p>Built-in applications can be chained, like
- <code class="inline-code">fruits?join(", ")?upper_case</code> will first convert
- the list a to a string, then converts it to upper case. (This is
- just like you can chain <code class="inline-code">.</code>-s (dots) too.)</p>
-
- <p>You can find the <a href="ref_builtins.html">full set of
- built-ins in the Reference</a>.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_8">Dealing with missing variables</h2>
-
-
- <p>The data-model often has variables that are optional (i.e.,
- sometimes missing). To spot some typical human mistakes, FreeMarker
- doesn't tolerate references to missing variables unless you tell
- explicitly what to do if the variable is missing. Here we will show
- the two most typical ways of doing that.</p>
-
- <p><span class="marked-for-programmers">Note for programmers: A
- non-existent variable and a variable with <code class="inline-code">null</code>
- value is the same for FreeMarker. The "missing" term used here
- covers both cases.</span></p>
-
- <p>Wherever you refer to a variable, you can specify a default
- value for the case the variable is missing by following the variable
- name with a <code class="inline-code">!</code> and the default value. Like in the
- following example, when <code class="inline-code">user</code> is missing from data
- model, the template will behave like if <code class="inline-code">user</code>'s
- value were the string <code class="inline-code">"visitor"</code>. (When
- <code class="inline-code">user</code> isn't missing, this template behaves exactly
- like with <code class="inline-code">${user}</code>):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><h1>Welcome ${user<strong>!"visitor"</strong>}!</h1></pre></div>
-
- <p>You can ask whether a variable isn't missing by putting
- <code class="inline-code">??</code> after its name. Combining this with the
- already introduced <code class="inline-code">if</code> directive you can skip the
- whole greeting if the <code class="inline-code">user</code> variable is
- missing:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#if <strong>user??</strong>><h1>Welcome ${user}!</h1></#if></pre></div>
-
- <p>Regarding variable accessing with multiple steps, like
- <code class="inline-code">animals.python.price</code>, writing
- <code class="inline-code">animals.python.price!0</code> is correct only if
- <code class="inline-code">animals.python</code> is never missing and only the last
- subvariable, <code class="inline-code">price</code>, is possibly missing (in which
- case here we assume it's <code class="inline-code">0</code>). If
- <code class="inline-code">animals</code> or <code class="inline-code">python</code> is missing,
- the template processing will stop with an "undefined variable"
- error. To prevent that, you have to write
- <code class="inline-code">(animals.python.price)!0</code>. In that case the
- expression will be <code class="inline-code">0</code> even if
- <code class="inline-code">animals</code> or <code class="inline-code">python</code> is missing.
- Same logic goes for <code class="inline-code">??</code>;
- <code class="inline-code">animals.python.price??</code> versus
- <code class="inline-code">(animals.python.price)??</code>.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="dgui_quickstart_template_autoescaping">Escaping for HTML, XML and other markup</h2>
-
-
- <p>Let's say the template generates HTML, and you insert values
- with <code class="inline-code">${<em class="code-color">...</em>}</code> that are
- plain text (not HTML), like company names coming from a database.
- Characters that has special meaning in HTML must be
- <em>escaped</em> in such values, like if
- <code class="inline-code">name</code> is "Someone & Co." then
- <code class="inline-code">${name}</code> should print "Someone
- <em>&amp;</em> Co.".</p>
-
- <p>FreeMarker automatically escapes all values printed with
- <code class="inline-code">${<em class="code-color">...</em>}</code> <em>if
- it's properly configured</em> (that's the responsibility of
- the programmers; <a href="pgui_config_outputformatsautoesc.html">see here how</a>). The
- recommended practice is using <code class="inline-code">ftlh</code> file extension
- to activate HTML auto-escaping, and <code class="inline-code">ftlx</code> file
- extension to activate XML auto-escaping.</p>
-
- <p>You can try if auto-escaping is on like
- <code class="inline-code">${"<"}</code> and then checking the raw output (for
- HTML or XML escaping). If it's not, and the configuration won't be
- adjusted, add this as the very first line of the template:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#ftl output_format="HTML"></pre></div>
-
- <p>(Use <code class="inline-code">"XML"</code> instead of
- <code class="inline-code">"HTML"</code> above if you generate XML.)</p>
-
- <p>If the string value to print deliberately contains markup,
- auto-escaping must be prevented like
- <code class="inline-code">${<em class="code-color">value</em>?no_esc}</code>.</p>
-
- <p>You can find out much more about auto-escaping and output
- formats <a href="dgui_misc_autoescaping.html">here...</a></p>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>The kind of automatic escaping described here requires at
- least FreeMarker 2.3.24. If you have to use an earlier version,
- use the deprecated <a href="ref_directive_escape.html"><code>escape</code>
- directive</a> instead.</p>
- </div>
-
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="dgui_quickstart_datamodel.html"><span>Previous</span></a><a class="paging-arrow next" href="dgui_datamodel.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/dgui_template.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/dgui_template.html b/builds/2.3.26-nightly/dgui_template.html
deleted file mode 100644
index 16c53e0..0000000
--- a/builds/2.3.26-nightly/dgui_template.html
+++ /dev/null
@@ -1,60 +0,0 @@
-<!doctype html>
-<!-- Generated by FreeMarker/Docgen from DocBook -->
-<html lang="en" class="page-type-chapter">
-<head prefix="og: http://ogp.me/ns#">
-<meta charset="utf-8">
-<title>The Template - 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="The Template">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/dgui_template.html">
-<link rel="canonical" href="http://freemarker.org/docs/dgui_template.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="dgui.html"><span itemprop="name">Template Author's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="dgui_template.html"><span itemprop="name">The Template</span></a></li></ul><div class="bookma
rks" 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","Template Author\'s Guide","The Template"];</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="dgui_datamodel_types.html"><span>Previous</span></a><a class="paging-arrow next" href="dgui_template_overallstructure.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-chapter" id="dgui_template" itemprop="headline">The Template</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Section Contents</div>
-<ul><li><a class="page-menu-link" href="dgui_template_overallstructure.html" data-menu-target="dgui_template_overallstructure">Overall structure</a></li><li><a class="page-menu-link" href="dgui_template_directives.html" data-menu-target="dgui_template_directives">Directives</a></li><li><a class="page-menu-link" href="dgui_template_exp.html" data-menu-target="dgui_template_exp">Expressions</a></li><li><a class="page-menu-link" href="dgui_template_valueinsertion.html" data-menu-target="dgui_template_valueinsertion">Interpolations</a></li></ul> </div> <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>It is assumed that you have already read the <a href="dgui_quickstart.html">Getting Started</a> and the <a href="dgui_datamodel.html">Values, Types</a>
- chapter.</p>
- </div>
-<div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="dgui_datamodel_types.html"><span>Previous</span></a><a class="paging-arrow next" href="dgui_template_overallstructure.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>\u20132017
-<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>
[34/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/pgui_datamodel_directive.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/pgui_datamodel_directive.html b/builds/2.3.26-nightly/pgui_datamodel_directive.html
deleted file mode 100644
index 80af372..0000000
--- a/builds/2.3.26-nightly/pgui_datamodel_directive.html
+++ /dev/null
@@ -1,411 +0,0 @@
-<!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>Directives - 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="Directives">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/pgui_datamodel_directive.html">
-<link rel="canonical" href="http://freemarker.org/docs/pgui_datamodel_directive.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="pgui.html"><span itemprop="name">Programmer's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_datamodel.html"><span itemprop="name">The Data Model</span></a></li><li class="step-3" itempr
op="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_datamodel_directive.html"><span itemprop="name">Directives</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","Programmer\'s Guide","The Data Model","Directives"];</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="pgui_datamodel_method.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_datamodel_node.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="pgui_datamodel_directive" itemprop="headline">Directives</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_35" data-menu-target="autoid_35">Example 1</a></li><li><a class="page-menu-link" href="#autoid_36" data-menu-target="autoid_36">Example 2</a></li><li><a class="page-menu-link" href="#autoid_37" data-menu-target="autoid_37">Notices</a></li></ul> </div><p>Java programmers can implement user-defined directives in Java
- using the <code class="inline-code">TemplateDirectiveModel</code> interface. See in
- the API documentation.</p> <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p><code class="inline-code">TemplateDirectiveModel</code> was introduced in
- FreeMarker 2.3.11, replacing the soon to be depreciated
- <code class="inline-code">TemplateTransformModel</code>.</p>
- </div>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_35">Example 1</h2>
-
-
- <p>We will implement a directive which converts all output
- between its start-tag and end-tag to upper case. Like, this
- template:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">foo
-<strong><@upper></strong>
- bar
- <#-- All kind of FTL is allowed here -->
- <#list ["red", "green", "blue"] as color>
- ${color}
- </#list>
- baaz
-<strong></@upper></strong>
-wombat</pre></div>
-
- <p>will output this:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">foo
- BAR
- RED
- GREEN
- BLUE
- BAAZ
-wombat</pre></div>
-
- <p>This is the source code of the directive class:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">package com.example;
-import java.io.IOException;
-import java.io.Writer;
-import java.util.Map;
-
-import freemarker.core.Environment;
-import freemarker.template.TemplateDirectiveBody;
-import freemarker.template.TemplateDirectiveModel;
-import freemarker.template.TemplateException;
-import freemarker.template.TemplateModel;
-import freemarker.template.TemplateModelException;
-
-/**
- * FreeMarker user-defined directive that progressively transforms
- * the output of its nested content to upper-case.
- *
- *
- * <p><b>Directive info</b></p>
- *
- * <p>Directive parameters: None
- * <p>Loop variables: None
- * <p>Directive nested content: Yes
- */
-public class UpperDirective implements TemplateDirectiveModel {
-
- public void execute(Environment env,
- Map params, TemplateModel[] loopVars,
- TemplateDirectiveBody body)
- throws TemplateException, IOException {
- // Check if no parameters were given:
- if (!params.isEmpty()) {
- throw new TemplateModelException(
- "This directive doesn't allow parameters.");
- }
- if (loopVars.length != 0) {
- throw new TemplateModelException(
- "This directive doesn't allow loop variables.");
- }
-
- // If there is non-empty nested content:
- if (body != null) {
- // Executes the nested body. Same as <#nested> in FTL, except
- // that we use our own writer instead of the current output writer.
- body.render(new UpperCaseFilterWriter(env.getOut()));
- } else {
- throw new RuntimeException("missing body");
- }
- }
-
- /**
- * A {@link Writer} that transforms the character stream to upper case
- * and forwards it to another {@link Writer}.
- */
- private static class UpperCaseFilterWriter extends Writer {
-
- private final Writer out;
-
- UpperCaseFilterWriter (Writer out) {
- this.out = out;
- }
-
- public void write(char[] cbuf, int off, int len)
- throws IOException {
- char[] transformedCbuf = new char[len];
- for (int i = 0; i < len; i++) {
- transformedCbuf[i] = Character.toUpperCase(cbuf[i + off]);
- }
- out.write(transformedCbuf);
- }
-
- public void flush() throws IOException {
- out.flush();
- }
-
- public void close() throws IOException {
- out.close();
- }
- }
-
-}</pre></div>
-
- <p>Now we still need to create an instance of this class, and
- make this directive available to the template with the name "upper"
- (or with whatever name we want) somehow. A possible solution is to
- put the directive in the data-model:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">root.put("upper", new com.example.UpperDirective());</pre></div>
-
- <p>But typically it is better practice to put commonly used
- directives into the <code class="inline-code">Configuration</code> as <a href="pgui_config_sharedvariables.html">shared
- variables</a>.</p>
-
- <p>It is also possible to put the directive into an FTL library
- (collection of macros and like in a template, that you
- <code class="inline-code">include</code> or <code class="inline-code">import</code> in other
- templates) using the <a href="ref_builtins_expert.html#ref_builtin_new"><code>new</code>
- built-in</a>:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#-- Maybe you have directives that you have implemented in FTL -->
-<#macro something>
- ...
-</#macro>
-
-<#-- Now you can't use <#macro upper>, but instead you can: -->
-<#assign upper = "com.example.UpperDirective"?new()></pre></div>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_36">Example 2</h2>
-
-
- <p>We will create a directive that executes its nested content
- again and again for the specified number of times (similarly to
- <code class="inline-code">list</code> directive), optionally separating the the
- output of the repetations with a <code class="inline-code"><hr></code>-s.
- Let's call this directive "repeat". Example template:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign x = 1>
-
-<strong><@repeat count=4></strong>
- Test ${x}
- <#assign x++>
-<strong></@repeat></strong>
-
-<strong><@repeat count=3 hr=true></strong>
- Test
-<strong></@repeat></strong>
-
-<strong><@repeat count=3; cnt></strong>
- ${cnt}. Test
-<strong></@repeat></strong></pre></div>
-
- <p>Output:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> Test 1
- Test 2
- Test 3
- Test 4
-
- Test
-<hr> Test
-<hr> Test
-
- 1. Test
- 2. Test
- 3. Test
- </pre></div>
-
- <p>The class:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">package com.example;
-import java.io.IOException;
-import java.io.Writer;
-import java.util.Iterator;
-import java.util.Map;
-
-import freemarker.core.Environment;
-import freemarker.template.SimpleNumber;
-import freemarker.template.TemplateBooleanModel;
-import freemarker.template.TemplateDirectiveBody;
-import freemarker.template.TemplateDirectiveModel;
-import freemarker.template.TemplateException;
-import freemarker.template.TemplateModel;
-import freemarker.template.TemplateModelException;
-import freemarker.template.TemplateNumberModel;
-
-/**
- * FreeMarker user-defined directive for repeating a section of a template,
- * optionally with separating the output of the repetations with
- * <tt>&lt;hr></tt>-s.
- *
- *
- * <p><b>Directive info</b></p>
- *
- * <p>Parameters:
- * <ul>
- * <li><code>count</code>: The number of repetations. Required!
- * Must be a non-negative number. If it is not a whole number then it will
- * be rounded <em>down</em>.
- * <li><code>hr</code>: Tells if a HTML "hr" element could be printed between
- * repetations. Boolean. Optional, defaults to <code>false</code>.
- * </ul>
- *
- * <p>Loop variables: One, optional. It gives the number of the current
- * repetation, starting from 1.
- *
- * <p>Nested content: Yes
- */
-public class RepeatDirective implements TemplateDirectiveModel {
-
- private static final String PARAM_NAME_COUNT = "count";
- private static final String PARAM_NAME_HR = "hr";
-
- public void execute(Environment env,
- Map params, TemplateModel[] loopVars,
- TemplateDirectiveBody body)
- throws TemplateException, IOException {
-
- // ---------------------------------------------------------------------
- // Processing the parameters:
-
- int countParam = 0;
- boolean countParamSet = false;
- boolean hrParam = false;
-
- Iterator paramIter = params.entrySet().iterator();
- while (paramIter.hasNext()) {
- Map.Entry ent = (Map.Entry) paramIter.next();
-
- String paramName = (String) ent.getKey();
- TemplateModel paramValue = (TemplateModel) ent.getValue();
-
- if (paramName.equals(PARAM_NAME_COUNT)) {
- if (!(paramValue instanceof TemplateNumberModel)) {
- throw new TemplateModelException(
- "The \"" + PARAM_NAME_HR + "\" parameter "
- + "must be a number.");
- }
- countParam = ((TemplateNumberModel) paramValue)
- .getAsNumber().intValue();
- countParamSet = true;
- if (countParam < 0) {
- throw new TemplateModelException(
- "The \"" + PARAM_NAME_HR + "\" parameter "
- + "can't be negative.");
- }
- } else if (paramName.equals(PARAM_NAME_HR)) {
- if (!(paramValue instanceof TemplateBooleanModel)) {
- throw new TemplateModelException(
- "The \"" + PARAM_NAME_HR + "\" parameter "
- + "must be a boolean.");
- }
- hrParam = ((TemplateBooleanModel) paramValue)
- .getAsBoolean();
- } else {
- throw new TemplateModelException(
- "Unsupported parameter: " + paramName);
- }
- }
- if (!countParamSet) {
- throw new TemplateModelException(
- "The required \"" + PARAM_NAME_COUNT + "\" paramter"
- + "is missing.");
- }
-
- if (loopVars.length > 1) {
- throw new TemplateModelException(
- "At most one loop variable is allowed.");
- }
-
- // Yeah, it was long and boring...
-
- // ---------------------------------------------------------------------
- // Do the actual directive execution:
-
- Writer out = env.getOut();
- if (body != null) {
- for (int i = 0; i < countParam; i++) {
- // Prints a <hr> between all repetations if the "hr" parameter
- // was true:
- if (hrParam && i != 0) {
- out.write("<hr>");
- }
-
- // Set the loop variable, if there is one:
- if (loopVars.length > 0) {
- loopVars[0] = new SimpleNumber(i + 1);
- }
-
- // Executes the nested body (same as <#nested> in FTL). In this
- // case we don't provide a special writer as the parameter:
- body.render(env.getOut());
- }
- }
- }
-
-}</pre></div>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_37">Notices</h2>
-
-
- <p>It's important that a
- <code class="inline-code">TemplateDirectiveModel</code> object usually should not
- be stateful. The typical mistake is the storing of the state of the
- directive call execution in the fields of the object. Think of
- nested calls of the same directive, or directive objects used as
- shared variables accessed by multiple threads concurrently.</p>
-
- <p>Unfortunately, <code class="inline-code">TemplateDirectiveModel</code>-s
- don't support passing parameters by position (rather than by name).
- This is fixed starting from FreeMarker 2.4.</p>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="pgui_datamodel_method.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_datamodel_node.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/pgui_datamodel_method.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/pgui_datamodel_method.html b/builds/2.3.26-nightly/pgui_datamodel_method.html
deleted file mode 100644
index 172aeed..0000000
--- a/builds/2.3.26-nightly/pgui_datamodel_method.html
+++ /dev/null
@@ -1,90 +0,0 @@
-<!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>Methods - 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="Methods">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/pgui_datamodel_method.html">
-<link rel="canonical" href="http://freemarker.org/docs/pgui_datamodel_method.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="pgui.html"><span itemprop="name">Programmer's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_datamodel.html"><span itemprop="name">The Data Model</span></a></li><li class="step-3" itempr
op="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_datamodel_method.html"><span itemprop="name">Methods</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","Programmer\'s Guide","The Data Model","Methods"];</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="pgui_datamodel_parent.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_datamodel_directive.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="pgui_datamodel_method" itemprop="headline">Methods</h1>
-</div></div><p>Method variables exposed to a template implement the
- <code class="inline-code">TemplateMethodModel</code> interface. This contains one
- method: <code class="inline-code">TemplateModel exec(java.util.List
- arguments)</code>. When you call a method with a <a href="dgui_template_exp.html#dgui_template_exp_methodcall">method call expression</a>,
- then the <code class="inline-code">exec</code> method will be called. The arguments
- parameter will contain the values of the FTL method call arguments.
- The return value of <code class="inline-code">exec</code> gives the value of the FTL
- method call expression.</p><p>The <code class="inline-code">TemplateMethodModelEx</code> interface extends
- <code class="inline-code">TemplateMethodModel</code>. It does not add any new
- methods. The fact that the object implements this
- <em>marker</em> interface indicates to the FTL engine that
- the arguments should be put to the <code class="inline-code">java.util.List</code>
- directly as <code class="inline-code">TemplateModel</code>-s. Otherwise they will be
- put to the list as <code class="inline-code">String</code>-s.</p><p>For obvious reasons there is no default implementation for these
- interfaces.</p><p>Example: This is a method, which returns the index within the
- second string of the first occurrence of the first string, or -1 if
- the second string doesn't contains the first.</p>
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">public class IndexOfMethod implements TemplateMethodModel {
-
- public TemplateModel exec(List args) throws TemplateModelException {
- if (args.size() != 2) {
- throw new TemplateModelException("Wrong arguments");
- }
- return new SimpleNumber(
- ((String) args.get(1)).indexOf((String) args.get(0)));
- }
-}</pre></div><p>If you put an instance of this, say, into the root:</p>
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">root.put("indexOf", new IndexOfMethod());</pre></div><p>then you can call it in the template:</p>
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign x = "something">
-${indexOf("met", x)}
-${indexOf("foo", x)}</pre></div><p>and then the output will be:</p>
-
-<div class="code-wrapper"><pre class="code-block code-output">2
--1</pre></div><p>If you need to access the runtime FTL environment (read/write
- variables, get the current locale, etc.), you can get it with
- <code class="inline-code">Environment.getCurrentEnvironment()</code>.</p><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="pgui_datamodel_parent.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_datamodel_directive.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/pgui_datamodel_node.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/pgui_datamodel_node.html b/builds/2.3.26-nightly/pgui_datamodel_node.html
deleted file mode 100644
index e00919a..0000000
--- a/builds/2.3.26-nightly/pgui_datamodel_node.html
+++ /dev/null
@@ -1,123 +0,0 @@
-<!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>Node variables - 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="Node variables">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/pgui_datamodel_node.html">
-<link rel="canonical" href="http://freemarker.org/docs/pgui_datamodel_node.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="pgui.html"><span itemprop="name">Programmer's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_datamodel.html"><span itemprop="name">The Data Model</span></a></li><li class="step-3" itempr
op="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_datamodel_node.html"><span itemprop="name">Node variables</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","Programmer\'s Guide","The Data Model","Node variables"];</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="pgui_datamodel_directive.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_datamodel_objectWrapper.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="pgui_datamodel_node" itemprop="headline">Node variables</h1>
-</div></div><p>A node variable embodies a node in a tree structure. Node
- variables were introduced to help <a href="xgui.html">the handling of
- XML documents in the data-model</a>, but they can be used for the
- modeling of other tree structures as well. For more information about
- nodes from the point of view of the template language <a href="dgui_datamodel_types.html#dgui_datamodel_node">read this earlier section</a>.</p><p>A node variable has the following properties, provided by the
- methods of <code class="inline-code">TemplateNodeModel</code> interface:</p><ul>
- <li>
- <p>Basic properties:</p>
-
- <ul>
- <li>
- <p><code class="inline-code">TemplateSequenceModel
- getChildNodes()</code>: A node has sequence of children
- (except if the node is a leaf node, in which case the method
- return an empty sequence or null). The child nodes should be
- node variables as well.</p>
- </li>
-
- <li>
- <p><code class="inline-code">TemplateNodeModel getParentNode()</code>: A
- node has exactly 1 parent node, except if the node is root
- node of the tree, in which case the method returns
- <code class="inline-code">null</code>.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Optional properties. If a property does not make sense in
- the concrete use case, the corresponding method should return
- <code class="inline-code">null</code>:</p>
-
- <ul>
- <li>
- <p><code class="inline-code">String getNodeName()</code>: The node name
- is the name of the macro, that handles the node when you use
- <a href="ref_directive_visit.html#ref.directive.recurse"><code>recurse</code></a>
- and <a href="ref_directive_visit.html#ref.directive.visit"><code>visit</code></a>
- directives. Thus, if you want to use these directives with the
- node, the node name is <em>required</em>.</p>
- </li>
-
- <li>
- <p><code class="inline-code">String getNodeType()</code>: In the case of
- XML: <code class="inline-code">"element"</code>, <code class="inline-code">"text"</code>,
- <code class="inline-code">"comment"</code>, ...etc. This information, if
- available, is used by the <code class="inline-code">recurse</code> and
- <code class="inline-code">visit</code> directives to find the default
- handler macro for a node. Also it can be useful for other
- application specific purposes.</p>
- </li>
-
- <li>
- <p><code class="inline-code">String getNamespaceURI()</code>: The node
- namespace (has nothing to do with FTL namespaces used for
- libraries) this node belongs to. For example, in the case of
- XML, this is the URI of the XML namespace the element or
- attribute belongs to. This information, if available, is used
- by the <code class="inline-code">recurse</code> and <code class="inline-code">visit</code>
- directives to find the FTL namespaces that store the handler
- macros.</p>
- </li>
- </ul>
- </li>
- </ul><p>On the FTL side, the direct utilization of node properties is
- done with <a href="ref_builtins_node.html">node built-ins</a>, and
- with the <code class="inline-code">visit</code> and <code class="inline-code">recurse</code>
- macros.</p><p>In most use cases, variables that implement
- <code class="inline-code">TemplateNodeModel</code>, implement other interfaces as
- well, since node variable properties just provide the basic
- infrastructure for navigating between nodes. For a concrete example,
- see <a href="xgui.html">how FreeMarker deals with XML</a>.</p><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="pgui_datamodel_directive.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_datamodel_objectWrapper.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/pgui_datamodel_objectWrapper.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/pgui_datamodel_objectWrapper.html b/builds/2.3.26-nightly/pgui_datamodel_objectWrapper.html
deleted file mode 100644
index ead2dd9..0000000
--- a/builds/2.3.26-nightly/pgui_datamodel_objectWrapper.html
+++ /dev/null
@@ -1,412 +0,0 @@
-<!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>Object wrappers - 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="Object wrappers">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/pgui_datamodel_objectWrapper.html">
-<link rel="canonical" href="http://freemarker.org/docs/pgui_datamodel_objectWrapper.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="pgui.html"><span itemprop="name">Programmer's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_datamodel.html"><span itemprop="name">The Data Model</span></a></li><li class="step-3" itempr
op="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_datamodel_objectWrapper.html"><span itemprop="name">Object wrappers</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","Programmer\'s Guide","The Data Model","Object wrappers"];</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="pgui_datamodel_node.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_config.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="pgui_datamodel_objectWrapper" itemprop="headline">Object wrappers</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#pgui_datamodel_defaultObjectWrapper" data-menu-target="pgui_datamodel_defaultObjectWrapper">The default object wrapper</a></li><li><a class="page-menu-link" href="#pgui_datamodel_customObjectWrappingExample" data-menu-target="pgui_datamodel_customObjectWrappingExample">Custom object wrapping example</a></li></ul> </div><p>The object wrapper is an object that implements the
- <code class="inline-code">freemarker.template.ObjectWrapper</code> interface. It's
- purpose is to implement a mapping between Java objects (like
- <code class="inline-code">String</code>-s, <code class="inline-code">Map</code>-s,
- <code class="inline-code">List</code>-s, instances of your application specific
- classes, etc.) and FTL's type system. With other words, it specifies
- how the templates will see the Java objects of the data-model
- (including the return value of Java methods called from the template).
- The object wrapper is plugged into the
- <code class="inline-code">Configuration</code> as its
- <code class="inline-code">object_wrapper</code> setting (or with
- <code class="inline-code">Configuration.setObjectWrapper</code>).</p><p>FTL's type system is technically represented by the
- <code class="inline-code">TemplateModel</code> sub-interfaces that were introduced
- earlier (<code class="inline-code">TemplateScalarModel</code>,
- <code class="inline-code">TemplateHashMode</code>,
- <code class="inline-code">TemplateSequenceModel</code>, etc). To map a Java object
- to FTL's type system, object wrapper's <code class="inline-code">TemplateModel
- wrap(java.lang.Object obj)</code> method will be called.</p><p>Sometimes FreeMarker needs to reverse this mapping, in which
- case the <code class="inline-code">ObjectWrapper</code>'s <code class="inline-code">Object
- unwrap(TemplateModel)</code> method is called (or some other
- variation of that, but see the API documentation for such details).
- This last operation is in
- <code class="inline-code">ObjectWrapperAndUnwrapper</code>, the subinterface of
- <code class="inline-code">ObjectWrapper</code>. Most real world object wrappers will
- implement <code class="inline-code">ObjectWrapperAndUnwrapper</code>.</p><p>Here's how wrapping Java objects that contain other objects
- (like a <code class="inline-code">Map</code>, a <code class="inline-code">List</code>, an array,
- or an object with some JavaBean properties) usually work. Let's say,
- an object wrapper wraps an <code class="inline-code">Object[]</code> array into some
- implementation of the <code class="inline-code">TemplateSquenceModel</code>
- interface. When FreeMarker needs an item from that FTL sequence, it
- will call <code class="inline-code">TemplateSquenceModel.get(int index)</code>. The
- return type of this method is <code class="inline-code">TemplateModel</code>, that
- is, the <code class="inline-code">TemplateSquenceModel</code> implementation not
- only have to get the <code class="inline-code">Object</code> from the given index of
- the array, it's also responsible for wrapping that value before
- returning it. To solve that, a typical
- <code class="inline-code">TemplateSquenceModel</code> implementation will store the
- <code class="inline-code">ObjectWrapper</code> that has cerated it, and then invoke
- that <code class="inline-code">ObjectWrapper</code> to wrap the contained value. The
- same logic stands for <code class="inline-code">TemplateHashModel</code> or for any
- other <code class="inline-code">TemplateModel</code> that's a container for further
- <code class="inline-code">TemplateModel</code>-s. Hence, usually, no mater how deep
- the value hierarchy is, all values will be wrapped by the same single
- <code class="inline-code">ObjectWrapper</code>. (To create
- <code class="inline-code">TemplateModel</code> implementations that follow this
- idiom, you can use the
- <code class="inline-code">freemarker.template.WrappingTemplateModel</code> as base
- class.)</p><p>The data-model itself (the root variable) is a
- <code class="inline-code">TemplateHashModel</code>. The root object that you specify
- to <code class="inline-code">Template.process</code> will be wrapped with the object
- wrapper specified in the <code class="inline-code">object_wrapper</code>
- configuration setting, which must yield a
- <code class="inline-code">TemplateHashModel</code>. From then on, the wrapping of
- the contained values follow the logic described earlier (i.e., the
- container is responsible for wrapping its children).</p><p>Well behaving object wrappers bypass objects that already
- implement <code class="inline-code">TemplateModel</code> as is. So if you put an
- object into the data-model that already implements
- <code class="inline-code">TemplateModel</code> (or you return as such object from a
- Java method that's called from the template, etc.), then you can avoid
- actual object wrapping. You do this usually when you are creating a
- value specifically to be accessed from a template. Thus, you avoid
- much of the object wrapping performance overhead, also you can control
- exactly what will the template see (not depending on the mapping
- strategy of the current object wrapper). A frequent application of
- this trick is using a
- <code class="inline-code">freemarker.template.SimpleHash</code> as the data-model
- root (rather than a <code class="inline-code">Map</code>), by filling it with
- <code class="inline-code">SimpleHash</code>'s <code class="inline-code">put</code> method (that's
- important, so it won't have to copy an existing <code class="inline-code">Map</code>
- that you have already filled). This speeds up top-level data-model
- variable access.</p>
-
-
-
-
-<h2 class="content-header header-section2" id="pgui_datamodel_defaultObjectWrapper">The default object wrapper</h2>
-
-
-
-
-
-
- <p>The default of the <code class="inline-code">object_wrapper</code>
- <code class="inline-code">Configuration</code> setting is a
- <code class="inline-code">freemarker.template.DefaultObjectWrapper</code>
- singleton. Unless you have very special requirements, it's
- recommended to use this object wrapper, or an instance of a
- <code class="inline-code">DefaultObjectWrapper</code> subclass of yours.</p>
-
- <p>It recognizes most basic Java types, like
- <code class="inline-code">String</code>, <code class="inline-code">Number</code>,
- <code class="inline-code">Boolean</code>, <code class="inline-code">Date</code>,
- <code class="inline-code">List</code> (and in general all kind of
- <code class="inline-code">java.util.Collection</code>-s), arrays,
- <code class="inline-code">Map</code>, etc., and wraps them into the naturally
- matching <code class="inline-code">TemplateModel</code> interfaces. It will also
- wrap W3C DOM nodes with
- <code class="inline-code">freemarker.ext.dom.NodeModel</code>, so you can
- conveniently traverse XML as <a href="xgui.html">described in its
- own chapter</a>). For Jython objects, it will delegate to
- <code class="inline-code">freemarker.ext.jython.JythonWrapper</code>. For all
- other objects, it will invoke <code class="inline-code">BeansWrapper.wrap</code>
- (the super class's method), which will expose the JavaBean
- properties of the objects as hash items (like
- <code class="inline-code">myObj.foo</code> in FTL will call
- <code class="inline-code">getFoo()</code> behind the scenes), and will also expose
- the public methods (JavaBean actions) of the object (like
- <code class="inline-code">myObj.bar(1, 2)</code> in FTL will call a method). (For
- more information about BeansWrapper, <a href="pgui_misc_beanwrapper.html">see its own section</a>.)</p>
-
- <p>Some further details that's worth mentioning about
- <code class="inline-code">DefaultObjectWrapper</code>:</p>
-
- <ul>
- <li>
- <p>You shouldn't use its constructor usually, instead create
- it using a <code class="inline-code">DefaultObjectWrapperBuilder</code>. This
- allows FreeMarker to use singletons.</p>
- </li>
-
- <li>
- <p><a name="topic.defaultObjectWrapperIcI"></a><code class="inline-code">DefaultObjectWrapper</code> has an
- <code class="inline-code">incompatibleImprovements</code> property, that's
- highly recommended to set to 2.3.22 or higher (see the <a href="http://freemarker.org/docs/api/freemarker/template/DefaultObjectWrapper.html#DefaultObjectWrapper-freemarker.template.Version-">API
- documentation</a> for the effects). How to set it:</p>
-
- <ul>
- <li>
- <p>If you have set the
- <code class="inline-code">incompatible_improvements</code> setting
- <em>of the <code class="inline-code">Configuration</code></em>
- to 2.3.22 or higher, and you didn't set the
- <code class="inline-code">object_wrapper</code> setting (so it had
- remained on its default value), then you have to do nothing,
- as it already uses a <code class="inline-code">DefaultObjectWrapper</code>
- singleton with the equivalent
- <code class="inline-code">incompatibleImprovements</code> property
- value.</p>
- </li>
-
- <li>
- <p><a name="topic.setDefaultObjectWrapperIcIIndividually"></a>Otherwise you have to set the
- <code class="inline-code">incompatibleImprovements</code> independently of
- the <code class="inline-code">Configuration</code>. Depending on how you
- create/set the <code class="inline-code">ObjectWrapper</code>, it can be
- done like this:</p>
-
- <ul>
- <li>
- <p>If you are using the builder API:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">... = new DefaultObjectWrapperBuilder(Configuration.VERSION_2_3_25).build()</pre></div>
- </li>
-
- <li>
- <p>Or, if you are using the constructor:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">... = new DefaultObjectWrapper(Configuration.VERSION_2_3_25)</pre></div>
- </li>
-
- <li>
- <p>Or, if you are using the
- <code class="inline-code">object_wrapper</code> property
- (<code class="inline-code">*.properties</code> file or
- <code class="inline-code">java.util.Properties</code> object):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">object_wrapper=DefaultObjectWrapper(2.3.25)</pre></div>
- </li>
-
- <li>
- <p>Or, if you are configuring the
- <code class="inline-code">object_wrapper</code> through a
- <code class="inline-code">FreemarkerServlet</code> with an
- <code class="inline-code">init-param</code> in
- <code class="inline-code">web.xml</code>:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified"><init-param>
- <param-name>object_wrapper</param-name>
- <param-value>DefaultObjectWrapper(2.3.25)</param-value>
-</init-param></pre></div>
- </li>
- </ul>
- </li>
- </ul>
- </li>
-
- <li>
- <p>In new or properly test-covered projects it's also
- recommended to set the
- <code class="inline-code">forceLegacyNonListCollections</code> property to
- <code class="inline-code">false</code>. If you are using
- <code class="inline-code">.properties</code> or
- <code class="inline-code">FreemarkerServlet</code> init-params or such, that
- will look like <code class="inline-code">DefaultObjectWrapper(2.3.22,
- forceLegacyNonListCollections=false)</code>, while with the
- Java API you call
- <code class="inline-code">setForceLegacyNonListCollections(false)</code> on
- the <code class="inline-code">DefaultObjectWrapperBuilder</code> object before
- calling <code class="inline-code">build()</code>.</p>
- </li>
-
- <li>
- <p>The most common way of customizing
- <code class="inline-code">DefaultObjectWrapper</code> is overriding its
- <code class="inline-code">handleUnknownType</code> method.</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="pgui_datamodel_customObjectWrappingExample">Custom object wrapping example</h2>
-
-
-
-
-
-
-
-
- <p>Let's say you have an application-specific class like
- this:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">package com.example.myapp;
-
-public class Tupple<E1, E2> {
- public Tupple(E1 e1, E2 e2) { ... }
- public E1 getE1() { ... }
- public E2 getE2() { ... }
-}</pre></div>
-
- <p>You want templates to see this as a sequence of length 2, so
- that you can do things like <code class="inline-code">someTupple[1]</code>,
- <code class="inline-code"><#list someTupple
- <em class="code-color">...</em>></code>, or
- <code class="inline-code">someTupple?size</code>. For that you need to create a
- <code class="inline-code">TemplateSequenceModel</code> implementation that adapts
- a <code class="inline-code">Tupple</code> to the
- <code class="inline-code">TempateSequenceMoldel</code> interface:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">package com.example.myapp.freemarker;
-
-...
-
-public class TuppleAdapter extends WrappingTemplateModel implements TemplateSequenceModel,
- AdapterTemplateModel {
-
- private final Tupple<?, ?> tupple;
-
- public TuppleAdapter(Tupple<?, ?> tupple, ObjectWrapper ow) {
- super(ow); // coming from WrappingTemplateModel
- this.tupple = tupple;
- }
-
- @Override // coming from TemplateSequenceModel
- public int size() throws TemplateModelException {
- return 2;
- }
-
- @Override // coming from TemplateSequenceModel
- public TemplateModel get(int index) throws TemplateModelException {
- switch (index) {
- case 0: return wrap(tupple.getE1());
- case 1: return wrap(tupple.getE2());
- default: return null;
- }
- }
-
- @Override // coming from AdapterTemplateModel
- public Object getAdaptedObject(Class hint) {
- return tupple;
- }
-
-}</pre></div>
-
- <p>Regarding the classes and interfaces:</p>
-
- <ul>
- <li>
- <p><code class="inline-code">TemplateSequenceModel</code>: This is why the
- template will see this as a sequence</p>
- </li>
-
- <li>
- <p><code class="inline-code">WrappingTemplateModel</code>: Just a
- convenience class, used for <code class="inline-code">TemplateModel</code>-s
- that do object wrapping themselves. That's normally only needed
- for objects that contain other objects. See the
- <code class="inline-code">wrap(<em class="code-color">...</em>)</code> calls
- above.</p>
- </li>
-
- <li>
- <p><code class="inline-code">AdapterTemplateModel</code>: Indicates that
- this template model adapts an already existing object to a
- <code class="inline-code">TemplateModel</code> interface, thus unwrapping
- should give back that original object.</p>
- </li>
- </ul>
-
- <p>Lastly, we tell FreeMarker to wrap <code class="inline-code">Tupple</code>-s
- with the <code class="inline-code">TuppleAdapter</code> (alternatively, you could
- wrap them manually before passing them to FreeMarker). For that,
- first we create a custom object wrapper:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">package com.example.myapp.freemarker;
-
-...
-
-public class MyAppObjectWrapper extends DefaultObjectWrapper {
-
- public MyAppObjectWrapper(Version incompatibleImprovements) {
- super(incompatibleImprovements);
- }
-
- @Override
- protected TemplateModel handleUnknownType(final Object obj) throws TemplateModelException {
- if (obj instanceof Tupple) {
- return new TuppleAdapter((Tupple<?, ?>) obj, this);
- }
-
- return super.handleUnknownType(obj);
- }
-
-}</pre></div>
-
- <p>and then where you configure FreeMarker (<a href="pgui_config.html">about configuring, see here...</a>) we plug
- our object wrapper in:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">// Where you initialize the cfg *singleton* (happens just once in the application life-cycle):
-cfg = new Configuration(Configuration.VERSION_2_3_25);
-...
-cfg.setObjectWrapper(new MyAppObjectWrapper(cfg.getIncompatibleImprovements()));</pre></div>
-
- <p>or if you are configuring FreeMarker with
- <code class="inline-code">java.util.Properties</code> instead (and let's say it's
- also a <code class="inline-code">.properties</code> file):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">object_wrapper=com.example.myapp.freemarker.MyAppObjectWrapper(2.3.25)</pre></div>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="pgui_datamodel_node.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_config.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/pgui_datamodel_parent.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/pgui_datamodel_parent.html b/builds/2.3.26-nightly/pgui_datamodel_parent.html
deleted file mode 100644
index 6c91a9b..0000000
--- a/builds/2.3.26-nightly/pgui_datamodel_parent.html
+++ /dev/null
@@ -1,129 +0,0 @@
-<!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>Containers - 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="Containers">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/pgui_datamodel_parent.html">
-<link rel="canonical" href="http://freemarker.org/docs/pgui_datamodel_parent.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="pgui.html"><span itemprop="name">Programmer's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_datamodel.html"><span itemprop="name">The Data Model</span></a></li><li class="step-3" itempr
op="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_datamodel_parent.html"><span itemprop="name">Containers</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","Programmer\'s Guide","The Data Model","Containers"];</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="pgui_datamodel_scalar.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_datamodel_method.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="pgui_datamodel_parent" itemprop="headline">Containers</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_32" data-menu-target="autoid_32">Hashes</a></li><li><a class="page-menu-link" href="#autoid_33" data-menu-target="autoid_33">Sequences</a></li><li><a class="page-menu-link" href="#autoid_34" data-menu-target="autoid_34">Collections</a></li></ul> </div><p>These are hashes, sequences, and collections.</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_32">Hashes</h2>
-
-
-
-
- <p>Hashes are java objects that implement
- <code class="inline-code">TemplateHashModel</code> interface.
- <code class="inline-code">TemplateHashModel</code> contains two methods:
- <code class="inline-code">TemplateModel get(String key)</code>, which returns the
- subvariable of the given name, and <code class="inline-code">boolean
- isEmpty()</code>, which indicates if the hash has zero
- subvariable or not. The <code class="inline-code">get</code> method returns null
- if no subvariable with the given name exists.</p>
-
- <p>The <code class="inline-code">TemplateHashModelEx</code> interface extends
- <code class="inline-code">TemplateHashModel</code>. It adds methods by which <a href="ref_builtins_hash.html#ref_builtin_values">values</a> and <a href="ref_builtins_hash.html#ref_builtin_keys">keys</a> built-ins can enumerate the
- sub variables of the hash.</p>
-
- <p>The commonly used implementation is
- <code class="inline-code">SimpleHash</code>, which implements
- <code class="inline-code">TemplateHashModelEx</code>. Internally it uses a
- <code class="inline-code">java.util.Hash</code> to store the sub variables.
- <code class="inline-code">SimpleHash</code> has methods by which you can add and
- remove subvariable. These methods should be used to initialize the
- variable directly after its creation.</p>
-
- <p>Containers are immutable within FTL. That is, you can't add,
- replace or remove the sub variables they contain.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_33">Sequences</h2>
-
-
-
-
- <p>Sequences are java objects that implement
- <code class="inline-code">TemplateSequenceModel</code>. It contains two methods:
- <code class="inline-code">TemplateModel get(int index)</code> and <code class="inline-code">int
- size()</code>.</p>
-
- <p>The commonly used implementation is
- <code class="inline-code">SimpleSequence</code>. It uses internally a
- <code class="inline-code">java.util.List</code> to store its sub variables.
- <code class="inline-code">SimpleSequence</code> has methods by which you can add
- sub variables. These methods should be used to populate the sequence
- directly after its creation.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_34">Collections</h2>
-
-
-
-
- <p>Collections are java objects that implement the
- <code class="inline-code">TemplateCollectionModel</code> interface. That interface
- has one method: <code class="inline-code">TemplateModelIterator iterator()</code>.
- The <code class="inline-code">TemplateModelIterator</code> interface is similar to
- <code class="inline-code">java.util.Iterator</code>, but it returns
- <code class="inline-code">TemplateModels</code> instead of
- <code class="inline-code">Object</code>-s, and it can throw
- <code class="inline-code">TemplateModelException</code>s.</p>
-
- <p>The commonly used implementation is
- <code class="inline-code">SimpleCollection</code>.</p>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="pgui_datamodel_scalar.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_datamodel_method.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>\u20132017
-<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>
[45/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/dgui.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/dgui.html b/builds/2.3.26-nightly/dgui.html
deleted file mode 100644
index 2a8f38d..0000000
--- a/builds/2.3.26-nightly/dgui.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<!doctype html>
-<!-- Generated by FreeMarker/Docgen from DocBook -->
-<html lang="en" class="page-type-part">
-<head prefix="og: http://ogp.me/ns#">
-<meta charset="utf-8">
-<title>Template Author's Guide - 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="Template Author's Guide">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/dgui.html">
-<link rel="canonical" href="http://freemarker.org/docs/dgui.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="dgui.html"><span itemprop="name">Template Author's Guide</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_templa
te_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","Template Author\'s Guide"];</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="index.html"><span>Previous</span></a><a class="paging-arrow next" href="dgui_quickstart.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-part" id="dgui" itemprop="headline">Template Author's Guide</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Section Contents</div>
-<ul><li><a class="page-menu-link" href="dgui_quickstart.html" data-menu-target="dgui_quickstart">Getting Started</a><ul><li><a class="page-menu-link" href="dgui_quickstart_basics.html" data-menu-target="dgui_quickstart_basics">Template + data-model = output</a></li><li><a class="page-menu-link" href="dgui_quickstart_datamodel.html" data-menu-target="dgui_quickstart_datamodel">The data-model at a glance</a></li><li><a class="page-menu-link" href="dgui_quickstart_template.html" data-menu-target="dgui_quickstart_template">The template at a glance</a></li></ul></li><li><a class="page-menu-link" href="dgui_datamodel.html" data-menu-target="dgui_datamodel">Values, Types</a><ul><li><a class="page-menu-link" href="dgui_datamodel_basics.html" data-menu-target="dgui_datamodel_basics">Basics</a></li><li><a class="page-menu-link" href="dgui_datamodel_types.html" data-menu-target="dgui_datamodel_types">The types</a></li></ul></li><li><a class="page-menu-link" href="dgui_template.html" data-menu-
target="dgui_template">The Template</a><ul><li><a class="page-menu-link" href="dgui_template_overallstructure.html" data-menu-target="dgui_template_overallstructure">Overall structure</a></li><li><a class="page-menu-link" href="dgui_template_directives.html" data-menu-target="dgui_template_directives">Directives</a></li><li><a class="page-menu-link" href="dgui_template_exp.html" data-menu-target="dgui_template_exp">Expressions</a></li><li><a class="page-menu-link" href="dgui_template_valueinsertion.html" data-menu-target="dgui_template_valueinsertion">Interpolations</a></li></ul></li><li><a class="page-menu-link" href="dgui_misc.html" data-menu-target="dgui_misc">Miscellaneous</a><ul><li><a class="page-menu-link" href="dgui_misc_userdefdir.html" data-menu-target="dgui_misc_userdefdir">Defining your own directives</a></li><li><a class="page-menu-link" href="dgui_misc_var.html" data-menu-target="dgui_misc_var">Defining variables in the template</a></li><li><a class="page-menu-link" hr
ef="dgui_misc_namespace.html" data-menu-target="dgui_misc_namespace">Namespaces</a></li><li><a class="page-menu-link" href="dgui_misc_autoescaping.html" data-menu-target="dgui_misc_autoescaping">Auto-escaping and output formats</a></li><li><a class="page-menu-link" href="dgui_misc_whitespace.html" data-menu-target="dgui_misc_whitespace">White-space handling</a></li><li><a class="page-menu-link" href="dgui_misc_alternativesyntax.html" data-menu-target="dgui_misc_alternativesyntax">Alternative (square bracket) syntax</a></li></ul></li></ul> </div><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="index.html"><span>Previous</span></a><a class="paging-arrow next" href="dgui_quickstart.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/dgui_datamodel.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/dgui_datamodel.html b/builds/2.3.26-nightly/dgui_datamodel.html
deleted file mode 100644
index ba980e9..0000000
--- a/builds/2.3.26-nightly/dgui_datamodel.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<!doctype html>
-<!-- Generated by FreeMarker/Docgen from DocBook -->
-<html lang="en" class="page-type-chapter">
-<head prefix="og: http://ogp.me/ns#">
-<meta charset="utf-8">
-<title>Values, Types - 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="Values, Types">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/dgui_datamodel.html">
-<link rel="canonical" href="http://freemarker.org/docs/dgui_datamodel.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="dgui.html"><span itemprop="name">Template Author's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="dgui_datamodel.html"><span itemprop="name">Values, Types</span></a></li></ul><div class="book
marks" 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","Template Author\'s Guide","Values, Types"];</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="dgui_quickstart_template.html"><span>Previous</span></a><a class="paging-arrow next" href="dgui_datamodel_basics.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-chapter" id="dgui_datamodel" itemprop="headline">Values, Types</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Section Contents</div>
-<ul><li><a class="page-menu-link" href="dgui_datamodel_basics.html" data-menu-target="dgui_datamodel_basics">Basics</a></li><li><a class="page-menu-link" href="dgui_datamodel_types.html" data-menu-target="dgui_datamodel_types">The types</a></li></ul> </div><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="dgui_quickstart_template.html"><span>Previous</span></a><a class="paging-arrow next" href="dgui_datamodel_basics.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/dgui_datamodel_basics.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/dgui_datamodel_basics.html b/builds/2.3.26-nightly/dgui_datamodel_basics.html
deleted file mode 100644
index 70a9a49..0000000
--- a/builds/2.3.26-nightly/dgui_datamodel_basics.html
+++ /dev/null
@@ -1,230 +0,0 @@
-<!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>Basics - 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="Basics">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/dgui_datamodel_basics.html">
-<link rel="canonical" href="http://freemarker.org/docs/dgui_datamodel_basics.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="dgui.html"><span itemprop="name">Template Author's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="dgui_datamodel.html"><span itemprop="name">Values, Types</span></a></li><li class="step-3" it
emprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="dgui_datamodel_basics.html"><span itemprop="name">Basics</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","Template Author\'s Guide","Values, Types","Basics"];</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="dgui_datamodel.html"><span>Previous</span></a><a class="paging-arrow next" href="dgui_datamodel_types.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="dgui_datamodel_basics" itemprop="headline">Basics</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#topic.value" data-menu-target="topic.value">What is a value?</a></li><li><a class="page-menu-link" href="#autoid_9" data-menu-target="autoid_9">What is type?</a></li><li><a class="page-menu-link" href="#autoid_10" data-menu-target="autoid_10">The data-model is a hash</a></li></ul> </div> <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>It is assumed that you have already read the <a href="dgui_quickstart.html">Getting Started</a> chapter.</p>
- </div>
-<p>Understanding the concept of values and types is crucial for the
- understanding of data-models. However, the concept of values and types
- is not confined to data-models, as you will see.</p>
-
-
-
-
-<h2 class="content-header header-section2" id="topic.value">What is a value?</h2>
-
-
-
-
- <p><span class="marked-for-programmers">Real programmers can safely skip
- this section.</span></p>
-
- <p>Examples of <em>values</em> as you know the term
- from the everyday math are 16, 0.5, and so on, i.e. numbers. In the
- case of computer languages the value term has a wider meaning, as a
- value needn't be a number. For example, take this data-model:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-data-model"><a name="example.stdDataModel"></a>(root)
- |
- +- user = "Big Joe"
- |
- +- today = Jul 6, 2007
- |
- +- todayHoliday = false
- |
- +- lotteryNumbers
- | |
- | +- (1st) = 20
- | |
- | +- (2st) = 14
- | |
- | +- (3rd) = 42
- | |
- | +- (4th) = 8
- | |
- | +- (5th) = 15
- |
- +- cargo
- |
- +- name = "coal"
- |
- +- weight = 40</pre></div>
-
- <p>We say that the <em>value</em> of the the
- <code class="inline-code">user</code> variable is "Big Joe" (a string), the
- <em>value</em> of <code class="inline-code">today</code> is Jul 6,
- 2007 (a date), the <em>value</em> of
- <code class="inline-code">todayHoliday</code> is false (a boolean, ie. a yes/no
- thing). The <em>value</em> of
- <code class="inline-code">lotteryNumbers</code> is the sequence that contains 20,
- 14, 42, 8, 15. Surely <code class="inline-code">lotteryNumbers</code> is multiple
- values in the sense that it <em>contains</em> multiple
- values (for example, the 2nd item in it is a the
- <em>value</em> 14), but still,
- <code class="inline-code">lotteryNumbers</code> itself is a single value. It's
- like a box that contains many other items; the whole box can be seen
- as a single item. Last not least we also have the
- <em>value</em> of <code class="inline-code">cargo</code>, which is a
- hash (a box-like thing again).So, a value is something that can be
- stored in a variable (e.g., in <code class="inline-code">user</code> or
- <code class="inline-code">cargo</code> or <code class="inline-code">cargo.name</code>). But a
- value need not be stored in a variable to be called a value, for
- example we have the value 100 here:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#if cargo.weight < <strong>100</strong>>Light cargo</#if></pre></div>
-
- <p>The temporaly result of a calculations are also called values,
- like 20 and 120 when this template is executed (it will print
- 120):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${cargo.weight / 2 + 100}</pre></div>
-
- <p>Explanation for this last: As the result of dividing the two
- values, 40 (the weight of the cargo) and 2, a new value 20 is
- created. Then 100 is added to it, so the value 120 is created. Then
- 120 is printed
- (<code class="inline-code">${<em class="code-color">...</em>}</code>), and the
- template execution goes on and all these values gone.</p>
-
- <p>Certainly now you feel what the value term means.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_9">What is type?</h2>
-
-
- <p>Values have an important aspect, their type. For example the
- type of the value of the <code class="inline-code">user</code> variable is string,
- and the type of the value of the <code class="inline-code">lotteryNumbers</code>
- variable is sequence. The type of a value is important because it
- determines to a large extent how and where you can use the value.
- Like <code class="inline-code">${user / 2}</code> is an error, but
- <code class="inline-code">${cargo.weight / 2}</code> works and prints 20, since
- division only does make sense for a number, but not for a string.
- Or, using dot like in <code class="inline-code">cargo.name</code> does make sense
- only if <code class="inline-code">cargo</code> is a hash. Or, you can list with
- <code class="inline-code"><#list <em class="code-color">...</em>></code>
- sequences only. Or, the condition of <code class="inline-code"><#if
- ...></code> must be a boolean. And so on.</p>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>A little terminology... Saying "a boolean" or "a boolean
- value" or "a value of type boolean" are all the same.</p>
- </div>
-
-
- <p><a name="topic.multitype"></a>A value can have multiple types at the same time,
- although it's rarely utilized. For example in the data-model below
- <code class="inline-code">mouse</code> is both a string and a hash:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-data-model">(root)
- |
- +- mouse = "Yerri"
- |
- +- age = 12
- |
- +- color = "brown"</pre></div>
-
- <p>If you merge this template with the above data-model:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${mouse} <#-- uses mouse as a string -->
-${mouse.age} <#-- uses mouse as a hash -->
-${mouse.color} <#-- uses mouse as a hash --></pre></div>
-
- <p>the output will be:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">Yerri
-12
-brown</pre></div>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_10">The data-model is a hash</h2>
-
-
- <p>Looking at the various data-model examples you may already
- realized: the thing marked as "(root)" is just a value of type hash.
- When you write something like <code class="inline-code">user</code>, that means
- that you want the "user" variable stored in the root hash. Like if
- you were writing <code class="inline-code">root.user</code>, except that there is
- no variable called "root" so that wouldn't work.</p>
-
- <p>Some may get confused by the fact that our example data-model,
- that is, the root hash, contains further hashes and sequences
- (<code class="inline-code">lotteryNumbers</code> and <code class="inline-code">cargo</code>).
- There is nothing special in that. A hash contains other variables,
- and those variables have a value, which can be a string, a number,
- etc., and of course it can be a hash or sequence as well. Because,
- as it was explained earlier, a sequence or a hash is just a value,
- like a string or a number is.</p>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="dgui_datamodel.html"><span>Previous</span></a><a class="paging-arrow next" href="dgui_datamodel_types.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/dgui_datamodel_types.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/dgui_datamodel_types.html b/builds/2.3.26-nightly/dgui_datamodel_types.html
deleted file mode 100644
index 348a837..0000000
--- a/builds/2.3.26-nightly/dgui_datamodel_types.html
+++ /dev/null
@@ -1,512 +0,0 @@
-<!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>The types - 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="The types">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/dgui_datamodel_types.html">
-<link rel="canonical" href="http://freemarker.org/docs/dgui_datamodel_types.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="dgui.html"><span itemprop="name">Template Author's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="dgui_datamodel.html"><span itemprop="name">Values, Types</span></a></li><li class="step-3" it
emprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="dgui_datamodel_types.html"><span itemprop="name">The types</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","Template Author\'s Guide","Values, Types","The types"];</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="dgui_datamodel_basics.html"><span>Previous</span></a><a class="paging-arrow next" href="dgui_template.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="dgui_datamodel_types" itemprop="headline">The types</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#dgui_datamodel_scalar" data-menu-target="dgui_datamodel_scalar">Scalars</a></li><li><a class="page-menu-link" href="#dgui_datamodel_container" data-menu-target="dgui_datamodel_container">Containers</a></li><li><a class="page-menu-link" href="#autoid_11" data-menu-target="autoid_11">Subroutines</a><ul><li><a class="page-menu-link" href="#dgui_datamodel_method" data-menu-target="dgui_datamodel_method">Methods and functions</a></li><li><a class="page-menu-link" href="#dgui_datamodel_userdefdir" data-menu-target="dgui_datamodel_userdefdir">User-defined directives</a></li><li><a class="page-menu-link" href="#autoid_12" data-menu-target="autoid_12">Function/method versus user-defined directive</a></li></ul></li><li><a class="page-menu-link" href="#autoid_13" data-menu-target="autoid_13">Miscellaneous</a><ul><li><a class="page-menu-link" href="#dgui_datamodel_node" data-menu-target="dgui_datamodel_node">Nodes</a></li><li><a class="page-menu-link" hr
ef="#dgui_datamodel_markupoutput" data-menu-target="dgui_datamodel_markupoutput">Markup output</a></li></ul></li></ul> </div><p>The suppored types are:</p><ul>
- <li>
- <a href="#dgui_datamodel_scalar">Scalars:</a>
-
- <ul>
- <li>
- String
- </li>
-
- <li>
- Number
- </li>
-
- <li>
- Boolean
- </li>
-
- <li>
- Date-like (date, time, or date-time)
- </li>
- </ul>
- </li>
-
- <li>
- <a href="#dgui_datamodel_container">Containers:</a>
-
- <ul>
- <li>
- Hash
- </li>
-
- <li>
- Sequence
- </li>
-
- <li>
- Collection
- </li>
- </ul>
- </li>
-
- <li>
- Subroutines:
-
- <ul>
- <li>
- <a href="#dgui_datamodel_method">Methods and
- functions</a>
- </li>
-
- <li>
- <a href="#dgui_datamodel_userdefdir">User-defined
- directives</a>
- </li>
- </ul>
- </li>
-
- <li>
- Miscellaneous/seldom used:
-
- <ul>
- <li>
- <a href="#dgui_datamodel_node">Node</a>
- </li>
-
- <li>
- <a href="#dgui_datamodel_markupoutput">Markup
- output</a>
- </li>
- </ul>
- </li>
- </ul>
-
-
-
-
-<h2 class="content-header header-section2" id="dgui_datamodel_scalar">Scalars</h2>
-
-
- <a name="topic.designer.scalarVariable"></a>
-
- <p>These are the basic, simple kind of values. They can
- be:</p>
-
- <ul>
- <li>
- <p>String: It is simple text, e.g., the name of a
- product.</p>
-
- <p>If you want to give a string value directly in the
- template, rather than use a variable that comes from the data
- model, you write the text between quotation marks, e.g.,
- <code class="inline-code">"green mouse"</code> or <code class="inline-code">'green
- mouse'</code>. (More details regarding the syntax can be
- found <a href="dgui_template_exp.html#dgui_template_exp_direct_string">later</a>.)</p>
- </li>
-
- <li>
- <p>Number: For example the price of a product.
- <span class="marked-for-programmers">Whole numbers and non-whole
- numbers are not distinguished; there is only a single number
- type. So for example 3/2 will be always 1.5, and never 1. Just
- like if you are using a calculator.</span></p>
-
- <p>If you want to give a numerical value directly in the
- template, then you write for example: <code class="inline-code">150</code> or
- <code class="inline-code">-90.05</code> or <code class="inline-code">0.001</code>. (More
- details regarding the syntax can be found <a href="dgui_template_exp.html#dgui_template_exp_direct_number">later</a>.)</p>
- </li>
-
- <li>
- <p>Boolean: A boolean value represents a logical true
- or false (yes or no). For example, if a the visitor has been
- logged in or not. Typically you use booleans as the condition of
- the <code class="inline-code">if</code> directive, like <code class="inline-code"><#if
- loggedIn
- ><em class="code-color">...</em></#if></code> or
- <code class="inline-code"><#if price ==
- 0><em class="code-color">...</em></#if></code>; in
- the last case the result of the <code class="inline-code">price == 0</code>
- part is a boolean value.</p>
-
- <p>In the templates you can directly specify a boolean with
- the reserved words <code class="inline-code">true</code> and
- <code class="inline-code">false</code>.</p>
- </li>
-
- <li>
- <p>Date: A date-like value stores date/time related
- data. It has three variations:</p>
-
- <ul>
- <li>
- <p>Date: Like April 4, 2003. Day precision, no time of
- day part.</p>
- </li>
-
- <li>
- <p>Time: Like 10:19:18 PM. Millisecond precision, no date
- part.</p>
- </li>
-
- <li>
- <p>Date-time (sometimes called "time stamp") as April 4,
- 2003 10:19:18 PM. Both date and time, with millisecond
- precision.</p>
- </li>
- </ul>
-
- <p>Unfortunately, because of the limitations of the Java
- platform, FreeMarker sometimes can't decide which parts of the
- date are in use (i.e., if it is date-time, a date or a time).
- The solution for this problem is an advanced topic that will be
- discussed <a href="ref_builtins_date.html#ref_builtin_date_datetype">later</a>.</p>
-
- <p>It is possible to define date-like values directly in
- templates, but this is an advanced topic that will be explained
- <a href="ref_builtins_string.html#ref_builtin_string_date">later</a>.</p>
- </li>
- </ul>
-
- <p>Bear in mind that FreeMarker distinguishes strings from
- numbers, booleans and date-like values. For example, while the
- string <code class="inline-code">"150"</code> looks like the number
- <code class="inline-code">150</code>, a string is still just arbitrary sequence of
- characters, and you can't do arithmetic with it, can't compare it
- with another number, etc.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="dgui_datamodel_container">Containers</h2>
-
-
-
-
- <p>These are the values whose purpose is to contain other
- variables; they are just containers. The contained variables are
- often referred as <em>sub variables</em>. The container
- types are:</p>
-
- <ul>
- <li>
- <p>Hash: Associates a unique lookup name with each of
- its sub variables. The name is an unrestricted string. A hash
- <em>doesn't define an ordering</em> for the sub
- variables in it. That is, there is no such thing as the first
- subvariable, and the second subvariable, etc.; the variables are
- just accessed by name.</p>
- </li>
-
- <li>
- <p>Sequence: Associates an integer number with each
- of its sub variables. The first subvariable is associated with
- 0, the second with 1, the third to 2, and so on; the sub
- variables are ordered. These numbers are often called the
- <em>indexes</em> of the sub variables. Sequences are
- usually dense, i.e., all indexes up to the index of the last
- subvariable have an associated subvariable, but it's not
- strictly necessary. The type of the subvariable values need not
- be the same.</p>
- </li>
-
- <li>
- <p>Collection: A collection, from the viewpoint of
- the template author, is a restricted sequence. You cannot access
- its size or retrieve its sub variables by index, but they can be
- still listed with the <a href="ref_directive_list.html#ref.directive.list"><code>list</code>
- directive</a>.</p>
- </li>
- </ul>
-
- <p>Note that since <a href="dgui_datamodel_basics.html#topic.multitype">a value can
- have multiple types</a>, it is possible for a value to be both a
- hash and a sequence, in which case it would support index-based
- access as well as access by lookup name. However, typically a
- container will be either a hash or a sequence, not both.</p>
-
- <p>As the value of the variables stored in hashes and sequences
- (and collections) can be anything, it can be a hash or sequence (or
- collection) as well. This way you can build arbitrarily deep
- structures.</p>
-
- <p>The data-model itself (or better said the root of it) is a
- hash.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_11">Subroutines</h2>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="dgui_datamodel_method">Methods and functions</h3>
-
-
- <a name="topic.designer.methodVariable"></a>
-
-
-
- <p>A value that is a method or a function is used to calculate
- another value, influenced by the parameters you give to it.</p>
-
- <p><span class="marked-for-programmers">For programmer types:
- Methods/functions are first-class values, just like in functional
- programming languages. This means that functions/methods can be
- the parameters or return values of other functions/methods, you
- can assign them to variables, and so on.</span></p>
-
- <p>Suppose that programmers have put the method variable
- <code class="inline-code">avg</code> in the data-model that can be used to
- calculate the average of numbers. If you give the 3 and 5 as
- parameters when you access <code class="inline-code">avg</code>, then you get
- the value 4.</p>
-
- <p>The usage of methods will be explained <a href="dgui_template_exp.html#dgui_template_exp_methodcall">later</a>, but perhaps
- this example helps to understand what methods are:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">The average of 3 and 5 is: ${avg(3, 5)}
-The average of 6 and 10 and 20 is: ${avg(6, 10, 20)}
-The average of the price of a python and an elephant is:
-${avg(animals.python.price, animals.elephant.price)}</pre></div>
-
- <p>this will output:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">The average of 3 and 5 is: 4
-The average of 6 and 10 and 20 is: 12
-The average of the price of a python and an elephant is:
-4999.5</pre></div>
-
- <p>What is the difference between a method and a function? As
- far as the template author is concerned, nothing. Well not really
- nothing, as methods typically come from the data-model (<span class="marked-for-programmers">as they reflect the methods of Java
- objects</span>), and functions are defined in templates (with
- the <a href="ref_directive_function.html#ref.directive.function"><code>function</code>
- directive</a> -- an advanced topic), but both can be used on
- the same way.</p>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="dgui_datamodel_userdefdir">User-defined directives</h3>
-
-
-
-
-
-
-
-
- <p>A value of this type can be used as user-defined directive
- (with other words, as FreeMarker tag). An user-defined directive
- is a subroutine, something like a little reusable template
- fragment. But this is an advanced topic that will be explained
- <a href="dgui_misc_userdefdir.html">later</a> in its own
- chapter.</p>
-
- <p><span class="marked-for-programmers">For programmer types:
- user-defined directives (such as macros), are first-class values
- too, just like functions/methods are.</span></p>
-
- <p>Just to get an idea about user-defined directives (so just
- ignore this if you won't understand), assume we have a variable,
- <code class="inline-code">box</code>, whose value is a user-defined directive
- that prints some kind of fancy HTML message box with a title bar
- and a message in it. The <code class="inline-code">box</code> variable could be
- used in the template like this (for example):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><@<strong>box</strong> title="Attention!">
- Too much copy-pasting may leads to
- maintenance headaches.
-</@<strong>box</strong>></pre></div>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_12">Function/method versus user-defined directive</h3>
-
-
- <p>This is for advanced users again (so ignore it if you don't
- understand). It's a frequent dilemma if you should use a
- function/method or an user-defined directive to implement
- something. The rule of thumb is: Implement the facility as
- user-defined directive instead of as function/method if:</p>
-
- <ul>
- <li>
- <p>... the purpose of it is generating a piece of the
- output that's not just a single value, and typically involves
- markup. The template language was designed for printing to the
- output directly, piece by piece, as it goes though
- <code class="inline-code">list</code> loops, <code class="inline-code">if</code>-s, etc.
- Building up a string value in a variable then returning it is
- much less convenient.</p>
- </li>
-
- <li>
- <p>... it's the side-effect that is important and not the
- return value. For example, a directive whose purpose is to add
- an entry to the server log is like that. (In fact you can't
- have a return value for a user-defined directive, but some
- kind of feedback is still possible by setting non-local
- variables.)</p>
- </li>
-
- <li>
- <p>... it will do flow control on the caller side (like for
- example <code class="inline-code">list</code> or <code class="inline-code">if</code>
- directives do). You just can't do that with a
- function/method.</p>
- </li>
-
- <li>
- <p>... you are using legacy escaping via the
- <code class="inline-code">escape</code> directive (instead of <a href="dgui_misc_autoescaping.html">auto-escaping</a>), and
- the result contains markup. When you print the result with
- <code class="inline-code">${<em class="code-color">...</em>}</code>, the
- markup will be escaped and thus ruined, but if it's printed by
- a directive call
- (<code class="inline-code"><@<em class="code-color">...</em>></code>),
- it won't be.</p>
- </li>
- </ul>
-
- <p>The Java methods of FreeMarker-unaware Java objects are
- normally visible as methods in templates, regardless of the nature
- of the Java method; you have no choice there.</p>
-
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_13">Miscellaneous</h2>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="dgui_datamodel_node">Nodes</h3>
-
-
-
-
- <p>Node variables represent a node in a tree structure, and are
- used mostly with <a href="xgui.html">XML processing</a>, which
- is an advanced, and specialized topic.</p>
-
- <p>Still, a quick overview <em>for advanced
- users</em>: A node is similar to a sequence that stores
- other nodes, which are often referred as the children nodes. A
- node stores a reference to its container node, which is often
- referred as the parent node. The main point of being a node is the
- topological information; other data must be stored by utilizing
- that a value can have multiple types. Like, a value may be both a
- node and a number, in which case it can store a number as the
- "pay-load". Apart from the topological information, a node can
- store some metainformation as well: a node name, a node type
- (string), and a node namespace (string). For example, if the node
- symbolizes a <code class="inline-code">h1</code> element in an XHTML document,
- then its name could be <code class="inline-code">"h1"</code>, it's node type
- could be <code class="inline-code">"element"</code>, and it's namespace could be
- <code class="inline-code">"http://www.w3.org/1999/xhtml"</code>. But it's up to
- the designer of the data-model if what meaning these
- metainformations have, and if they are used at all. The way of
- retrieving the topological and metainformations is described <a href="ref_builtins_node.html">in a later chapter</a> (that you
- don't have to understand at this point).</p>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="dgui_datamodel_markupoutput">Markup output</h3>
-
-
-
-
- <p>This type is related to <a href="dgui_misc_autoescaping.html">auto-escaping mechanism</a>
- introduced FreeMarker 2.3.24; you can <a href="dgui_misc_autoescaping.html#dgui_misc_autoescaping_movalues">read about this type
- there</a>. But in short, this is a value that stores text
- that's already in the output markup format (like HTML, XML, RTF,
- etc.), and hence must not be auto-escaped.</p>
-
- <p>Values of this type are usually produced inside the
- templates (like with <a href="ref_builtins_string.html#ref_builtin_no_esc"><code>no_esc</code>
- built-in</a> or <a href="ref_directive_assign.html">output
- capturing assignments</a>), but can also be part of the
- data-model. Such values in the data-model are useful for example
- if you have message resources that sometimes contain the message
- in HTML format, rather than in plain text. If the data-model uses
- HTML markup output values for those messages instead of strings,
- then the template author need not know which messages contain HTML
- and which plain text, as double escaping will be avoided
- automatically when the message is inserted with
- <code class="inline-code">${<em class="code-color">...</em>}</code>.</p>
-
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="dgui_datamodel_basics.html"><span>Previous</span></a><a class="paging-arrow next" href="dgui_template.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/dgui_misc.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/dgui_misc.html b/builds/2.3.26-nightly/dgui_misc.html
deleted file mode 100644
index 5964dab..0000000
--- a/builds/2.3.26-nightly/dgui_misc.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<!doctype html>
-<!-- Generated by FreeMarker/Docgen from DocBook -->
-<html lang="en" class="page-type-chapter">
-<head prefix="og: http://ogp.me/ns#">
-<meta charset="utf-8">
-<title>Miscellaneous - 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="Miscellaneous">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/dgui_misc.html">
-<link rel="canonical" href="http://freemarker.org/docs/dgui_misc.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="dgui.html"><span itemprop="name">Template Author's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="dgui_misc.html"><span itemprop="name">Miscellaneous</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","Template Author\'s Guide","Miscellaneous"];</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="dgui_template_valueinsertion.html"><span>Previous</span></a><a class="paging-arrow next" href="dgui_misc_userdefdir.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-chapter" id="dgui_misc" itemprop="headline">Miscellaneous</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Section Contents</div>
-<ul><li><a class="page-menu-link" href="dgui_misc_userdefdir.html" data-menu-target="dgui_misc_userdefdir">Defining your own directives</a></li><li><a class="page-menu-link" href="dgui_misc_var.html" data-menu-target="dgui_misc_var">Defining variables in the template</a></li><li><a class="page-menu-link" href="dgui_misc_namespace.html" data-menu-target="dgui_misc_namespace">Namespaces</a></li><li><a class="page-menu-link" href="dgui_misc_autoescaping.html" data-menu-target="dgui_misc_autoescaping">Auto-escaping and output formats</a></li><li><a class="page-menu-link" href="dgui_misc_whitespace.html" data-menu-target="dgui_misc_whitespace">White-space handling</a></li><li><a class="page-menu-link" href="dgui_misc_alternativesyntax.html" data-menu-target="dgui_misc_alternativesyntax">Alternative (square bracket) syntax</a></li></ul> </div><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="dgui_template_valueinsertion.html"><span>Previo
us</span></a><a class="paging-arrow next" href="dgui_misc_userdefdir.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/dgui_misc_alternativesyntax.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/dgui_misc_alternativesyntax.html b/builds/2.3.26-nightly/dgui_misc_alternativesyntax.html
deleted file mode 100644
index 1ed87aa..0000000
--- a/builds/2.3.26-nightly/dgui_misc_alternativesyntax.html
+++ /dev/null
@@ -1,119 +0,0 @@
-<!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>Alternative (square bracket) syntax - 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="Alternative (square bracket) syntax">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/dgui_misc_alternativesyntax.html">
-<link rel="canonical" href="http://freemarker.org/docs/dgui_misc_alternativesyntax.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="dgui.html"><span itemprop="name">Template Author's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="dgui_misc.html"><span itemprop="name">Miscellaneous</span></a></li><li class="step-3" itempro
p="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="dgui_misc_alternativesyntax.html"><span itemprop="name">Alternative (square bracket) syntax</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","Template Author\'s Guide","Miscellaneous","Alternative (square bracket) syntax"];</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="dgui_misc_whitespace.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="dgui_misc_alternativesyntax" itemprop="headline">Alternative (square bracket) syntax</h1>
-</div></div> <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This feature exists since FreeMarker 2.3.4.</p>
- </div>
-<p>FreeMarker supports an alternative syntax, where
- <code class="inline-code">[</code> and <code class="inline-code">]</code> is used instead of
- <code class="inline-code"><</code> and <code class="inline-code">></code> in FreeMarker
- directives and comments, for example:</p><ul>
- <li>
- Calling predefined directive: <code class="inline-code">[#list animals as
- animal]<em class="code-color">...</em>[/#list]</code>
- </li>
-
- <li>
- Calling user-defined directive: <code class="inline-code">[@myMacro
- /]</code>
- </li>
-
- <li>
- Comment: <code class="inline-code">[#-- the comment --]</code>
- </li>
- </ul><p>To use the alternative syntax instead of the default one, start
- the template with the <a href="ref_directive_ftl.html"><code>ftl</code> directive</a>
- using the alternative syntax. If you don't know what is the
- <code class="inline-code">ftl</code> directive, just start the template with
- <code class="inline-code">[#ftl]</code>, and remember that it should be the very
- first thing in the file (except that <a href="gloss.html#gloss.whiteSpace">white-space</a> can precede it). For
- example, this is how the last example of the <a href="dgui_quickstart_template.html">Getting Started</a> looks with
- the alternative syntax (assuming it's a complete template, not just a
- fragment):</p>
-
-<div class="code-wrapper"><pre class="code-block code-template"><strong>[#ftl]</strong>
-<p>We have these animals:
-<table border=1>
- <tr><th>Name<th>Price
- <strong>[#list animals as animal]</strong>
- <tr>
- <td>
- <strong>[#if animal.size == "large"]</strong><b><strong>[/#if]</strong>
- ${animal.name}
- <strong>[#if animal.size == "large"]</strong></b><strong>[/#if]</strong>
- <td>${animal.price} Euros
- <strong>[/#list]</strong>
-</table></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 alternative syntax, or the whole template uses the
- default syntax. If the template uses alternative syntax, things like
- <code class="inline-code"><#if <em class="code-color">...</em>></code> are
- count as static text, not as FTL tags. Similarly, if the template uses
- the default syntax, things like <code class="inline-code">[#if
- <em class="code-color">...</em>]</code> count as static text, not as
- 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 alternative (square bracket) syntax. If
- you start the file with <code class="inline-code"><#ftl
- <em class="code-color">...</em>></code> the file will surely use
- the normal (angle bracket) 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
- 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><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="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>\u20132017
-<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>
[09/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/versions_2_3_20.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/versions_2_3_20.html b/builds/2.3.26-nightly/versions_2_3_20.html
deleted file mode 100644
index 3170642..0000000
--- a/builds/2.3.26-nightly/versions_2_3_20.html
+++ /dev/null
@@ -1,691 +0,0 @@
-<!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.20 - 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.20">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/versions_2_3_20.html">
-<link rel="canonical" href="http://freemarker.org/docs/versions_2_3_20.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_20.html"><span itemprop="name">2.3.20</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.20"];</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_21.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_19.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="versions_2_3_20" itemprop="headline">2.3.20</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_174" data-menu-target="autoid_174">Changes on the FTL side</a></li><li><a class="page-menu-link" href="#autoid_175" data-menu-target="autoid_175">Changes on the Java side</a></li><li><a class="page-menu-link" href="#autoid_176" data-menu-target="autoid_176">Other changes</a></li></ul> </div><p>Date of release: 2013-06-27</p><p>If you are IDE/tools author, <a href="#version_2_3_20_ide">note these changes</a>.</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_174">Changes on the FTL side</h2>
-
-
- <ul>
- <li>
- <p>Error message quality improvements:</p>
-
- <ul>
- <li>
- <p>Many error messages are now more helpful, especially
- for users who are not experienced with FreeMarker. For
- example, some of the most common user mistakes are
- recognized and tips are shown to fix them, reducing support
- costs or the time employees spend to figure them out.</p>
- </li>
-
- <li>
- <p>It's now ensured that the error location in the
- template is included in the message returned by
- <code class="inline-code">TemplateException.getMessage()</code>. The stack
- trace always showed this information anyway, but some users
- only see the "message", not the stack trace,
- and that often didn't contained the location.</p>
- </li>
-
- <li>
- <p>The template language part of the stack trace is now
- more detailed, and easier to understand. This is especially
- helpful in applications that use a complex library of macros
- and functions.</p>
- </li>
-
- <li>
- <p>Several smaller bugs were fixed that made the error
- information wrong or lacking.</p>
- </li>
-
- <li>
- <p>The layout of the error messages is now more
- consistent, and generally easier to read.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Changes regarding boolean to string conversions and
- formatting:</p>
-
- <ul>
- <li>
- <p><code class="inline-code">?c</code> (computer-language formatting)
- now works with booleans too, always giving
- <code class="inline-code">"true"</code> or <code class="inline-code">"false"</code>
- regardless of the <code class="inline-code">boolean_format</code>. This
- way it's safe for generating JavaScript in a context where
- human-readable text is also rendered.</p>
- </li>
-
- <li>
- <p>If the <code class="inline-code">boolean_format</code> setting is
- set to anything but the default
- <code class="inline-code">"true,false"</code> value, boolean values will
- be automatically converted to string where a string value is
- expected by the template language, instead of giving an
- error. This helps you spare
- those<code class="inline-code">?string</code>-s after boolean values. This
- is the same logic as with numbers and dates, which were
- always automatically converted to string, according the
- corresponding format setting. Except, the provided default
- boolean format is useless for automatic conversion (but it's
- still there for <code class="inline-code">?string</code>, for backward
- compatibility), hence it must be set manually. (We certainly
- couldn't come up with a sensible default anyway, as for
- booleans it depends too much on the application, not to
- mention the localisation issues.)</p>
-
- <p>Exactly like with numbers and dates, automatic
- conversion doesn't happen in these cases:</p>
-
- <ul>
- <li>
- <p>Comparisons, i.e., <code class="inline-code">someBoolean ==
- 'true'</code> is still an error</p>
- </li>
-
- <li>
- <p>Method calls where the declared type of the
- parameter is <code class="inline-code">String</code> but the actual
- value is a boolean; still an error</p>
- </li>
-
- <li>
- <p>When the boolean value is used as key in
- <code class="inline-code"><em class="code-color">expr</em>[<em class="code-color">key</em>]</code>,
- it's still an error (there was no automatic conversion
- there for other types either, as numerical and string
- keys have different meaning)</p>
- </li>
-
- <li>
- <p>The opposite direction, i.e., string to boolean
- conversion; won't happen</p>
- </li>
- </ul>
- </li>
- </ul>
- </li>
-
- <li>
- <p>New built-ins for numbers: <a href="ref_builtins_number.html#ref_builtin_abs"><code>abs</code></a>, <a href="ref_builtins_number.html#ref_builtin_is_nan"><code>is_nan</code></a>,
- <a href="ref_builtins_number.html#ref_builtin_is_infinite"><code>is_infinite</code></a>.
- Like <code class="inline-code">n?abs</code> will give the absolute value of
- <code class="inline-code">n</code>.</p>
- </li>
-
- <li>
- <p>New built-in for sequences: <a href="ref_builtins_sequence.html#ref_builtin_join"><code>join</code></a>. Like
- <code class="inline-code">[1, 2, 3]?join(", ")</code> will give the string
- <code class="inline-code">"1, 2, 3"</code>.</p>
- </li>
-
- <li>
- <p>If you set the
- <code class="inline-code">incompatible_improvements</code> setting (see <a href="http://freemarker.org/docs/api/freemarker/template/Configuration.html#setIncompatibleImprovements%28freemarker.core.Version%29">here</a>)
- to <code class="inline-code">2.3.20</code> or higher, <code class="inline-code">?html</code>
- will escape apostrophe-quotes just like
- <code class="inline-code">?xhtml</code> does. Utilizing this is highly
- recommended, because otherwise if interpolations are used inside
- attribute values that use apostrophe-quotation (<code class="inline-code"><foo
- bar='${val}'></code>) instead of plain quotation mark
- (<code class="inline-code"><foo bar="${val}"></code>), they might
- produce HTML/XML that's not well-formed. Note that
- <code class="inline-code">?html</code> didn't do this because long ago there
- was no cross-browser way of doing this, but it's not a real
- concern anymore. Also note that this will be the default
- behavior starting from 2.4.</p>
- </li>
-
- <li>
- <p>Bug fix [<a href="https://sourceforge.net/p/freemarker/bugs/390/">390</a>]
- (and other improvements): <code class="inline-code">?js_string</code> and
- <code class="inline-code">?json_string</code> didn't escape the
- <code class="inline-code">u2028</code>-<code class="inline-code">u2029</code> line
- terminators (problem for JavaScript) and the
- <code class="inline-code">u007F</code>-<code class="inline-code">u009F</code> control
- characters (maybe a problem in JSON, depending on
- implementation). Furthermore, the escaping of
- <code class="inline-code">\</code>, <code class="inline-code"><</code>, and
- <code class="inline-code">></code> become safer in that now they are
- escaped whenever it can't be guaranteed that they won't be part
- of <code class="inline-code"><!</code>, <code class="inline-code">]]></code> or
- <code class="inline-code"></</code>. Earlier they were only escaped when it
- was known that they are part of these patterns, thus it was
- possible to assemble these patterns from two adjacent
- interpolations. Additionally, from now on
- <code class="inline-code"><?</code> and <code class="inline-code">--></code> also
- count as dangerous patterns, and will trigger
- <code class="inline-code"><</code> and <code class="inline-code">></code>
- escaping.</p>
- </li>
-
- <li>
- <p>Bug fixed: The following string built-ins didn't coerce
- the numerical, date (and now the boolean) left-values to string,
- instead they threw a type error: contains,
- <code class="inline-code">index_of</code>, <code class="inline-code">last_index_of</code>,
- <code class="inline-code">left_pad</code>, <code class="inline-code">right_pad</code>,
- <code class="inline-code">matches</code>, <code class="inline-code">replace</code>,
- <code class="inline-code">split</code>, <code class="inline-code">new</code>. The other
- string built-ins already did this conversion for a long time;
- this was an accidental inconsistency.</p>
- </li>
-
- <li>
- <p>Bug fixed: With the default arithmetic engine, it's now
- supported to compare infinite (positive or negative) with 0, to
- decide its sign.</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_175">Changes on the Java side</h2>
-
-
- <ul>
- <li>
- <p><code class="inline-code">BeansWrapper</code> introspection cache
- improvements:</p>
-
- <ul>
- <li>
- <p>Added public API to <code class="inline-code">BeansWrapper</code>
- for clearing the class cache:
- <code class="inline-code">clearClassIntrospecitonCache()</code>,
- <code class="inline-code">removeFromClassIntrospectionCache(Class)</code></p>
- </li>
-
- <li>
- <p>Significantly improved multi-core performance:</p>
-
- <ul>
- <li>
- <p>Uses <code class="inline-code">ConcurrentHashMap</code> when
- running on Java 5 or later.</p>
- </li>
-
- <li>
- <p>The cache won't block readers while introspecting
- a class after a cache miss</p>
- </li>
-
- <li>
- <p>If multiple threads need to introspect the same
- class that's not in the cache yet, only one of them will
- do it, the others will wait for its results.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Bug fix [<a href="https://sourceforge.net/p/freemarker/bugs/361/">361</a>]:
- There was a small chance of deadlock when class-reloading
- was detected. Locking was redesigned to prevent such
- oversights in the future.</p>
- </li>
-
- <li>
- <p>The internal package-visible
- <code class="inline-code">freemarker.ext.beans</code> API was slightly
- changed as the result of internal cleanup. Nobody but the
- FreeMarker developers should define classes in that package,
- so it shouldn't break anything. But if somebody did some
- in-house hacks there, re-compile to see if it still
- works.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Nameless templates (those directly created with
- <code class="inline-code">new Template(null,
- <em class="code-color">...</em>)</code> instead of loaded
- through <code class="inline-code">Configuration</code>) couldn't include or
- import other templates, and thrown a
- <code class="inline-code">NullPointerException</code> when they tried to. Now
- they resolve relative paths as if they were in the template root
- directory.</p>
- </li>
-
- <li>
- <p>Bug fix: Regular expression built-ins and some logger
- libraries (most importantly Log4J) were unavailable on the
- Google App Engine platform. This fix is only present in the
- GAE-compatible build, 2.3.20-gae.</p>
- </li>
-
- <li>
- <p>Added new method to <code class="inline-code">Configuration</code>:
- <code class="inline-code">CacheStorage getCacheStorage()</code></p>
- </li>
-
- <li>
- <p>Added new methods to <code class="inline-code">Environment</code> to
- make comparisons among <code class="inline-code">TemplateModel</code>-s
- according the rules of the template language operators:
- <code class="inline-code">applyEqualsOperator</code>,
- <code class="inline-code">applyEqualsOperatorLenient</code>,
- <code class="inline-code">applyLessThanOperator</code>,
- <code class="inline-code">applyLessThanOrEqualsOperator</code>,
- <code class="inline-code">applyGreaterThanOperator</code>,
- <code class="inline-code">applyWithGreaterThanOrEqualsOperator</code></p>
- </li>
-
- <li>
- <p>Added new method,
- <code class="inline-code">Environment.isInAttemptBlock()</code> to check if we
- are within an <code class="inline-code">#attempt</code> block. This can be
- useful for <code class="inline-code">TemplateExceptionHandler</code>-s, as
- then they don't need to print the error to the output since
- <code class="inline-code">#attempt</code> will roll it back anyway. This is
- already utilized by the built-in
- <code class="inline-code">TemplateExceptionHandler</code>-s
- (<code class="inline-code">DEBUG_HANDLER</code> and
- <code class="inline-code">HTML_DEBUG_HANDLER</code>).</p>
- </li>
-
- <li>
- <p>Added convenience constructor <code class="inline-code">Template(String
- name, String sourceCode, Configuration cfg)</code>.</p>
- </li>
-
- <li>
- <p><code class="inline-code">TemplateException</code>-s and
- <code class="inline-code">TemplateModelExcepton</code>-s now can have
- <code class="inline-code">Throwable</code> cause, not just
- <code class="inline-code">Exception</code> (it was an old oversight that
- somehow wasn't fixed so far).</p>
- </li>
-
- <li>
- <p>Parsing error messages under the JBoss Tools FreeMarker
- IDE now doesn't contain the usual location line, so that the
- actual error description is immediately visible in the Eclipse
- "Problems" view. (It's a "hack" in
- FreeMarler itself; it tries to detect if it runs under the
- plugin and then changes its behavior.)</p>
- </li>
-
- <li>
- <p><a name="version_2_3_20_ide"></a>Mostly concerning tool (like IDE plugin) authors:</p>
-
- <ul>
- <li>
- <p>The error message formats (what
- <code class="inline-code">Throwable.getMessage()</code> returns) were
- heavily changed for <code class="inline-code">TemplateException</code>-s,
- and somewhat for <code class="inline-code">ParseException</code>-s. It's
- unlikely that anybody depends on these, but if you tried to
- parse these messages, be aware of this.</p>
- </li>
-
- <li>
- <p>Fixed bug where <code class="inline-code">ParseException</code> has
- contained 0 as line and column number for lexical errors.
- Now it contains the correct information.</p>
- </li>
-
- <li>
- <p>Added
- <code class="inline-code">ParseException.getEditorMessage()</code>: As in
- IDE-s the error markers show the error location to the user
- already, the location should not be repeated in the error
- message. So in IDE-s you should use this method instead of
- <code class="inline-code">getMessage()</code>. (Under JBoss Tools:
- FreeMarker now <em>tries</em> to detect that it
- runs under the plugin, and then it already does this, except
- that it still shows the column number as that's missing from
- the error marker location.)</p>
- </li>
-
- <li>
- <p>Added
- <code class="inline-code">ParseException.getTemplateName()</code></p>
- </li>
-
- <li>
- <p>Added
- <code class="inline-code">Configuration.getSupportedBuiltInNames()</code>.
- As new built-ins
- (<code class="inline-code"><em class="code-color">expr</em>?<em class="code-color">builtin_name</em></code>)
- are very often added to new FreeMarker versions,
- auto-completion or syntax highlighting should use this set
- instead of a fixed set of a names.</p>
- </li>
-
- <li>
- <p>The format returned by
- <code class="inline-code">TemplateElement.getDescription()</code> was
- heavily changed. It's what FTL stack traces and maybe some
- outline views (tree-views) show. It was always for human
- reading (and till now was too inconsistent for anything
- else), so it's unlikely that this breaks anything.</p>
- </li>
-
- <li>
- <p>There were some smaller changes in
- <code class="inline-code">freemarker.debug</code>, and it's expected that
- there will be more, so it was marked as experimental. As far
- as we know, nobody used it, so it shouldn't break
- anything.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>In <em>experimental status only</em>, but
- <code class="inline-code">freemarker.jar</code> is now an OSGi bundle (see
- <code class="inline-code">freemarker.jar/META-INF/MANIFEST.MF</code>).
- Depending on user feedback, the bundle description may change in
- the future. So please give feedback, especially if you are an
- OSGi expert!</p>
- </li>
-
- <li>
- <p>Improved the HTML generated by
- <code class="inline-code">HTML_DEBUG_HANDLER</code> (the
- red-on-yellow-background error message). Most importantly, now
- it will word-wrap. Other changes are minor, like now it can
- break out of CDATA sections, or now it has less intense
- colors.</p>
- </li>
-
- <li>
- <p>New <code class="inline-code">Template</code> method,
- <code class="inline-code">getActualTagSyntax()</code>: Tells if the template
- is using traditional or square-bracket syntax. As the syntax can
- be overridden in the template, also it's possibly decided by
- auto-detection, it wasn't trivial to it tell till now.</p>
- </li>
-
- <li>
- <p>Added some utility methods that are useful for generating
- error messages in custom directives:
- <code class="inline-code">ClassUtil.getFTLTypeDescription(TemplateModel)</code>,
- <code class="inline-code">getShortClassName</code>,
- <code class="inline-code">getShortClassNameOfObject</code></p>
- </li>
-
- <li>
- <p>Bug fix [<a href="https://sourceforge.net/p/freemarker/bugs/364/">364</a>]:
- <code class="inline-code">freemarker.template.EmptyMap</code> (which is passed
- to <code class="inline-code">TemplateDirectiveModel</code>-s if there are no
- parameters) now allows <code class="inline-code">remove(key)</code>,
- <code class="inline-code">clear()</code> and
- <code class="inline-code">putAll(anyEmptyMap)</code> as these do nothing
- anyway.</p>
- </li>
-
- <li>
- <p>Bug fix [<a href="https://sourceforge.net/p/freemarker/bugs/375/">375</a>]:
- <code class="inline-code">NullPointerException</code> on IBM J9 VM (not on the
- Sun/Oracle implementation) in <code class="inline-code">BeansWrapper</code>
- when the Java implementation legally returns
- <code class="inline-code">null</code> for some <code class="inline-code">BeanInfo</code>
- getters.</p>
- </li>
-
- <li>
- <p>Bug fix: Cloning a <code class="inline-code">Configuration</code> didn't
- deep-clone the data structures storing the
- <code class="inline-code">auto_imports</code> and
- <code class="inline-code">auto_includes</code> settings, hence possibly
- leading to aliasing problems.</p>
- </li>
-
- <li>
- <p>Bug fix [<a href="https://sourceforge.net/p/freemarker/bugs/377/">377</a>]:
- After a failed method call the exception handler could fail in
- the rare occasion when
- <code class="inline-code">targetObject.toString()</code> fails, raising a
- runtime exception that not even the <code class="inline-code">attempt</code>
- directive will catch.</p>
- </li>
-
- <li>
- <p>Bug fix [<a href="https://sourceforge.net/p/freemarker/bugs/391/">391</a>]:
- If a template name has contained <code class="inline-code">*</code> that was
- not the only character in the path step, it threw
- <code class="inline-code">NegativeArraySizeException</code> instead of
- <code class="inline-code">FileNotFoundException</code>.</p>
- </li>
-
- <li>
- <p>With the default arithmetic engine, performance
- optimizations of comparison operations when some of the numbers
- is 0, and when the sign of the numbers differ.</p>
- </li>
-
- <li>
- <p>Some smaller fixes in
- <code class="inline-code">TemplateElement.getCanonicalForm()</code>, also some
- quality improvements there.</p>
- </li>
-
- <li>
- <p>Bug fixes in <code class="inline-code">classic_compatible</code> mode
- (this mode is to help migrating from FreeMarker 1), thanks to
- Information Mosaic:</p>
-
- <ul>
- <li>
- <p>When a macro was called with a
- <code class="inline-code">null</code>/missing parameter value, it has
- caused error like in FreeMarker 2.3</p>
- </li>
-
- <li>
- <p>When a hash literal contained reference to a
- <code class="inline-code">null</code>/missing variable, like in <code class="inline-code">{
- 'a': missingVar }</code>, it has caused an error like in
- 2.3</p>
- </li>
-
- <li>
- <p>When a sequence literal contained reference to a
- <code class="inline-code">null</code>/missing variable, like in
- <code class="inline-code">[1, missingVar]</code>, it has caused an error
- like in 2.3</p>
- </li>
-
- <li>
- <p>When a the left-side of the <code class="inline-code">.</code> (dot)
- or <code class="inline-code">[<em class="code-color">key</em>]</code>
- operator was <code class="inline-code">null</code> or missing variable,
- like in <code class="inline-code">missingVar.subVar</code>, it has caused
- an error like in 2.3</p>
- </li>
-
- <li>
- <p>When <code class="inline-code">BeanModel</code>-s are tried to be
- treated as strings, for most subclasses it has failed with
- type error, like in 2.3. In FreeMarker 1 all
- <code class="inline-code">BeanModel</code>-s were
- <code class="inline-code">TemplateScalarModel</code>-s, so it should
- succeed. The fix for this only works where FreeMarker
- <em>coerces</em> to string (string built-ins on
- the left-side and concatenation (<code class="inline-code">+</code>) and
- interpolation
- (<code class="inline-code">${<em class="code-color">...</em>}</code>) do
- that), otherwise unfortunately it will still fail.</p>
- </li>
-
- <li>
- <p>The <code class="inline-code">classic_compatible</code> setting now
- accepts value <code class="inline-code">2</code> along
- <code class="inline-code">true</code> (alias <code class="inline-code">1</code>) and
- <code class="inline-code">false</code> (alias <code class="inline-code">0</code>).
- <code class="inline-code">2</code> means <code class="inline-code">true</code> but with
- emulating bugs in early 2.x classic-compatibility mode.
- Currently this only affects how booleans are converted to
- string; with <code class="inline-code">1</code> it's always
- <code class="inline-code">"true"</code>/<code class="inline-code">""</code>, but with
- <code class="inline-code">2</code> it's <code class="inline-code">"true"/"false"</code>
- for values wrapped by <code class="inline-code">BeansWrapper</code> as
- then <code class="inline-code">Boolean.toString()</code> prevails. Note
- that
- <code class="inline-code"><em class="code-color">someBoolean</em>?string</code>
- will always consistently format the boolean according the
- <code class="inline-code">boolean_format</code> setting, just like in
- FreeMarker 2.3.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Bug fix [<a href="https://sourceforge.net/p/freemarker/bugs/394/">394</a>]:
- When trying to access the optional Jython (or W3C DOM) classes
- has failed in <code class="inline-code">DefaultObjectWrapper</code> with an
- <code class="inline-code">Error</code>, rather than with an
- <code class="inline-code">Exception</code>, loading the
- <code class="inline-code">DefaultObjectWrapper</code> class itself has failed,
- instead of the Jython (or W3C DOM) support being disabled. From
- now in, it will survive any kind of <code class="inline-code">Throwable</code>
- there, and if the <code class="inline-code">Throwable</code> is not an
- <code class="inline-code">ClassNotFoundException</code>, it will also log the
- <code class="inline-code">Throwable</code>.</p>
- </li>
-
- <li>
- <p>Improved the performance of
- <code class="inline-code">(thisVarIsMissing.foo)!default</code> and similar
- <em>parenthetical</em> existence operators and
- existence built-ins in the case when the
- <code class="inline-code">null</code>/missing variable is not the last step
- inside the parenthesis. In that case it's about 30 times faster
- now, measured on Java 6. In other cases (when all variables
- exists, or the the last step is missing) the performance is
- about the same (relatively fast) as before.</p>
- </li>
-
- <li>
- <p>Added interface
- <code class="inline-code">freemarker.cache.CacheStorageWithGetSize</code>
- which allows querying the current number of cache entries in a
- <code class="inline-code">CacheStorage</code> that implements it. It's
- implemented by all out-of-the-box
- <code class="inline-code">CacheStorage</code> implementations. Also added
- <code class="inline-code">getStrongSize()</code> and
- <code class="inline-code">getSoftSize()</code> to
- <code class="inline-code">MRUCacheStorage</code>.</p>
- </li>
-
- <li>
- <p>Version and build information changes:</p>
-
- <ul>
- <li>
- <p>The form of the nightly build version numbers has
- changed to be Maven/JSR 277 compliant. What earlier was
- <code class="inline-code">2.3.19mod</code> is now something like
- <code class="inline-code">2.3.20-nightly_20130605T130506Z</code> (note how
- the last points to the target release version instead of the
- last release version).</p>
- </li>
-
- <li>
- <p>The form of the Release Candidate and Preview version
- numbers where changed to be Maven/JSP 277 compliant:
- <code class="inline-code">2.4pre2</code> is now
- <code class="inline-code">2.4.0-pre02</code>, <code class="inline-code">2.4rc1</code> is
- now <code class="inline-code">2.4.0-rc01</code>.</p>
- </li>
-
- <li>
- <p>Added new static method to
- <code class="inline-code">Configuration</code> to query build date:
- <code class="inline-code">getBuildDate()</code>. This is also printed by
- the main command line class.</p>
- </li>
- </ul>
- </li>
-
- <li>
- <p>Various internal code cleanups.</p>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_176">Other changes</h2>
-
-
- <ul>
- <li>
- <p>Many JavaDoc improvements, mostly in the documentation of
- the basic (most frequently used) classes.</p>
- </li>
-
- <li>
- <p>FreeMarker source code has moved to GitHub (<a href="???">https://github.com/freemarker/freemarker</a>),
- other project resources has remained on sourceforge.net.</p>
- </li>
-
- <li>
- <p>Project structure cleanup, Ivy-based build script.</p>
- </li>
- </ul>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="versions_2_3_21.html"><span>Previous</span></a><a class="paging-arrow next" href="versions_2_3_19.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>\u20132017
-<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>
[44/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/dgui_misc_autoescaping.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/dgui_misc_autoescaping.html b/builds/2.3.26-nightly/dgui_misc_autoescaping.html
deleted file mode 100644
index f234ea6..0000000
--- a/builds/2.3.26-nightly/dgui_misc_autoescaping.html
+++ /dev/null
@@ -1,718 +0,0 @@
-<!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>Auto-escaping and output formats - 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="Auto-escaping and output formats">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/dgui_misc_autoescaping.html">
-<link rel="canonical" href="http://freemarker.org/docs/dgui_misc_autoescaping.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="dgui.html"><span itemprop="name">Template Author's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="dgui_misc.html"><span itemprop="name">Miscellaneous</span></a></li><li class="step-3" itempro
p="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="dgui_misc_autoescaping.html"><span itemprop="name">Auto-escaping and output formats</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","Template Author\'s Guide","Miscellaneous","Auto-escaping and output formats"];</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="dgui_misc_namespace.html"><span>Previous</span></a><a class="paging-arrow next" href="dgui_misc_whitespace.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="dgui_misc_autoescaping" itemprop="headline">Auto-escaping and output formats</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_autoescaping_outputformat" data-menu-target="dgui_misc_autoescaping_outputformat">Output formats</a></li><li><a class="page-menu-link" href="#dgui_misc_autoescaping_overrideoformat" data-menu-target="dgui_misc_autoescaping_overrideoformat">Overriding the output format in templates</a></li><li><a class="page-menu-link" href="#dgui_misc_autoescaping_disableautoesc" data-menu-target="dgui_misc_autoescaping_disableautoesc">Disabling auto escaping</a></li><li><a class="page-menu-link" href="#dgui_misc_autoescaping_movalues" data-menu-target="dgui_misc_autoescaping_movalues">"Markup output" values</a></li><li><a class="page-menu-link" href="#autoid_28" data-menu-target="autoid_28">Further details and tricky cases</a><ul><li><a class="page-menu-link" href="#dgui_misc_autoescaping_nonmarkupof" data-menu-target="dgui_misc_autoescaping_nonmarkupof">Non-markup output formats</a></li><li><a class="page-menu-link" href="#dgui_misc_autoescaping_m
ixingoutputformats" data-menu-target="dgui_misc_autoescaping_mixingoutputformats">Inserting markup output values from other markups</a></li><li><a class="page-menu-link" href="#dgui_misc_autoescaping_concatenation" data-menu-target="dgui_misc_autoescaping_concatenation">Markup output values and the "+"
-operator</a></li><li><a class="page-menu-link" href="#dgui_misc_autoescaping_stringliteral" data-menu-target="dgui_misc_autoescaping_stringliteral">${...} inside string literals</a></li><li><a class="page-menu-link" href="#autoid_29" data-menu-target="autoid_29">Combined output formats</a></li></ul></li></ul> </div><p>This is a <em>detailed</em> tutorial to
- auto-escaping and related concepts; for the bare minimum, <a href="dgui_quickstart_template.html#dgui_quickstart_template_autoescaping">read this
- instead</a>.</p> <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>The kind of automatic escaping described here requires at
- least FreeMarker 2.3.24. If you have to use an earlier version, use
- the deprecated <a href="ref_directive_escape.html"><code>escape</code>
- directive</a> instead.</p>
- </div>
-
-
-
-
-
-<h2 class="content-header header-section2" id="dgui_misc_autoescaping_outputformat">Output formats</h2>
-
-
-
-
- <p>Each template has an associated output format <span class="marked-for-programmers">(a
- <code class="inline-code">freemarker.core.OutputFormat</code> instance)</span>.
- The output format dictates the escaping rules, which is applied on
- all <code class="inline-code">${<em class="code-color">...</em>}</code>-s (and
- <code class="inline-code">#{<em class="code-color">...</em>}</code>-s) that aren't
- <a href="#dgui_misc_autoescaping_stringliteral">inside a string
- literal</a>. It also specifies a MIME type (e.g.
- <code class="inline-code">"text/HTML"</code>) and a canonical name (e.g.
- <code class="inline-code">"HTML"</code>) that the embedding application/framework
- can use for its own purposes.</p>
-
- <p>It's the programmer's responsibility to <a href="pgui_config_outputformatsautoesc.html">associate output format
- to templates</a>. Furthermore it's recommended that FreeMarker is
- configured so that templates with <code class="inline-code">ftlh</code> and
- <code class="inline-code">ftlx</code> file extensions are automatically associated
- with the HTML and XML output formats, respectively.</p>
-
- <p><a name="topic.predefinedOutputFormats"></a>The predefined output
- formats are:</p>
-
- <div class="table-responsive">
- <table class="table">
-
- <thead>
- <tr>
- <th>Name</th>
-
-
- <th>Description</th>
-
-
- <th>MIME Type</th>
-
-
- <th>Default implementation
- (<code class="inline-code">freemarker.core.*</code>)</th>
-
- </tr>
-
- </thead>
-
-
- <tbody>
- <tr>
- <td><code class="inline-code">HTML</code></td>
-
-
- <td>Escapes <code class="inline-code"><</code>, <code class="inline-code">></code>,
- <code class="inline-code">&</code>, <code class="inline-code">"</code>,
- <code class="inline-code">'</code> as <code class="inline-code">&lt;</code>,
- <code class="inline-code">&gt;</code>, <code class="inline-code">&amp;</code>,
- <code class="inline-code">&quot;</code>,
- <code class="inline-code">&#39;</code></td>
-
-
- <td><code class="inline-code">text/html</code></td>
-
-
- <td><code class="inline-code">HTMLOutputFormat.INSTANCE</code></td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">XHTML</code></td>
-
-
- <td>Escapes <code class="inline-code"><</code>, <code class="inline-code">></code>,
- <code class="inline-code">&</code>, <code class="inline-code">"</code>,
- <code class="inline-code">'</code> as <code class="inline-code">&lt;</code>,
- <code class="inline-code">&gt;</code>, <code class="inline-code">&amp;</code>,
- <code class="inline-code">&quot;</code>,
- <code class="inline-code">&#39;</code></td>
-
-
- <td><code class="inline-code">application/xhtml+xml</code></td>
-
-
- <td><code class="inline-code">XHTMLOutputFormat.INSTANCE</code></td>
-
- </tr>
-
- </tbody>
-
-
- <tbody>
- <tr>
- <td><code class="inline-code">XML</code></td>
-
-
- <td>Escapes <code class="inline-code"><</code>, <code class="inline-code">></code>,
- <code class="inline-code">&</code>, <code class="inline-code">"</code>,
- <code class="inline-code">'</code> as <code class="inline-code">&lt;</code>,
- <code class="inline-code">&gt;</code>, <code class="inline-code">&amp;</code>,
- <code class="inline-code">&quot;</code>,
- <code class="inline-code">&apos;</code></td>
-
-
- <td><code class="inline-code">application/xml</code></td>
-
-
- <td><code class="inline-code">XMLOutputFormat.INSTANCE</code></td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">RTF</code></td>
-
-
- <td>Escapes <code class="inline-code">{</code>, <code class="inline-code">}</code>,
- <code class="inline-code">\</code> as <code class="inline-code">\{</code>,
- <code class="inline-code">\}</code>, <code class="inline-code">\\</code></td>
-
-
- <td><code class="inline-code">application/rtf</code></td>
-
-
- <td><code class="inline-code">RTFOutputFormat.INSTANCE</code></td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">undefined</code></td>
-
-
- <td>Doesn't escape. Prints markup output values (concept
- explained <a href="#dgui_misc_autoescaping_movalues">later</a>) from
- other output formats as is. The default output format used
- when no output format was explicitly set in the
- configuration.</td>
-
-
- <td>None (<code class="inline-code">null</code>)</td>
-
-
- <td><code class="inline-code">UndefinedOutputFormat.INSTANCE</code></td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">plainText</code></td>
-
-
- <td>Doesn't escape.</td>
-
-
- <td><code class="inline-code">text/plain</code></td>
-
-
- <td><code class="inline-code">PlainTextOutputFormat.INSTANCE</code></td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">JavaScript</code></td>
-
-
- <td>Doesn't escape.</td>
-
-
- <td><code class="inline-code">application/javascript</code></td>
-
-
- <td><code class="inline-code">JavaScriptOutputFormat.INSTANCE</code></td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">JSON</code></td>
-
-
- <td>Doesn't escape.</td>
-
-
- <td><code class="inline-code">application/json</code></td>
-
-
- <td><code class="inline-code">JSONOutputFormat.INSTANCE</code></td>
-
- </tr>
-
-
- <tr>
- <td><code class="inline-code">CSS</code></td>
-
-
- <td>Doesn't escape.</td>
-
-
- <td><code class="inline-code">text/css</code></td>
-
-
- <td><code class="inline-code">CSSOutputFormat.INSTANCE</code></td>
-
- </tr>
-
- </tbody>
-
- </table>
- </div>
-
-
- <p>The programmers can add their your own output formats, so this
- is maybe not all the output formats in your application!</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="dgui_misc_autoescaping_overrideoformat">Overriding the output format in templates</h2>
-
-
- <p>Especially in legacy applications, you will often find that
- the output format is <code class="inline-code">undefined</code> (you can check
- that with <code class="inline-code">${.output_format}</code>), and so no automatic
- escaping is happening. In other cases, a common output format (like
- HTML) is set for all templates, but a few templates need a different
- output format. In any case, the output format of a template can be
- enforced in the <a href="ref_directive_ftl.html">the
- <code>ftl</code> header</a>:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#ftl output_format="XML">
-${"'"} <#-- Prints: &apos; --></pre></div>
-
- <p>Above, the output format was referred by its name shown in the
- earlier table <em>(looked up via
- <code class="inline-code">Configuration.getOutputFormat(String name)</code>,
- actually)</em>.</p>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>If escaping doesn't happen after adding the above
- <code class="inline-code">ftl</code> header, then <code class="inline-code"><#ftl
- output_format="XML" auto_esc=true></code> might helps (and
- that means that FreeMarker was configured to use
- "disable" auto-escaping <em>policy</em>,
- which is generally not recommended).</p>
- </div>
-
-
- <p>The output format can also be applied to only a section of a
- template, like:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#-- Let's assume we have "HTML" output format by default. -->
-${"'"} <#-- Prints: &#39; -->
-<#outputformat "XML">
- ${"'"} <#-- Prints: &apos; -->
-</#outputformat>
-${"'"} <#-- Prints: &#39; --></pre></div>
-
- <p>Basically, each position in a template has an associated
- output format, and as you saw above, it might not be the same
- everywhere in the template. This association sticks to the positions
- and won't change as the template executes. So if, for example, you
- call a macro from inside an <code class="inline-code">outputformat</code> block
- and the called macro is defined outside that block, it won't get the
- output format of it. Or, if you have a macro that's defined in a
- template with HTML output format, no mater from where you call it,
- that macro will always execute with HTML output format. This is like
- if you were coloring each characters of the template files by output
- format in the text editor, and then later when the templates are
- executed, it only considers the color of the statement being
- executed. This gives you firm control over the output format and
- hence escaping; you don't have to consider the possible execution
- paths that can lead to a point.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="dgui_misc_autoescaping_disableautoesc">Disabling auto escaping</h2>
-
-
- <p>For a single interpolation you can disable auto-escaping with
- <a href="ref_builtins_string.html#ref_builtin_no_esc"><code>?no_esc</code></a>:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#-- Let's assume we have "HTML" output format by default. -->
-${'<b>test</b>'} <#-- prints: &lt;b&gt;test&lt;/b&gt; -->
-${'<b>test</b>'<strong>?no_esc</strong>} <#-- prints: <b>test</b> --></pre></div>
-
- <p>You can also disable auto escaping for a whole section with
- the <a href="ref_directive_noautoesc.html"><code>noautoesc</code>
- directive</a>:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">${'&'} <#-- prints: &amp; -->
-<strong><#noautoesc></strong>
- ${'&'} <#-- prints: & -->
- ...
- ${'&'} <#-- prints: & -->
-<strong></#noautoesc></strong>
-${'&'} <#-- prints: &amp; --></pre></div>
-
- <p>Just like <code class="inline-code">outputformat</code>, this only applies
- to the part that's literally inside the block
- ("coloring" logic).</p>
-
- <p>Auto-escaping can also be disabled for the whole template in
- the <code class="inline-code">ftl</code> header. It can then be re-enabled for a
- section with the <a href="ref_directive_autoesc.html"><code>autoesc</code>
- directive</a>:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#ftl <strong>autoesc=false</strong>>
-${'&'} <#-- prints: & -->
-<strong><#autoesc></strong>
- ${'&'} <#-- prints: &amp; -->
- ...
- ${'&'} <#-- prints: &amp; -->
-<strong></#autoesc></strong>
-${'&'} <#-- prints: & --></pre></div>
-
- <p>You can also force escaping for an individual interpolation
- when escaping is disabled, with <a href="ref_builtins_string.html#ref_builtin_esc"><code>?esc</code></a>:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#ftl <strong>autoesc=false</strong>>
-${'&'} <#-- prints: & -->
-${'&'<strong>?esc</strong>} <#-- prints: &amp; --></pre></div>
-
- <p>Naturally, both <code class="inline-code">autoesc</code> and
- <code class="inline-code">?esc</code> works inside <code class="inline-code">noautoesc</code>
- blocks too.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="dgui_misc_autoescaping_movalues">"Markup output" values</h2>
-
-
- <p>In FTL, <a href="dgui_datamodel_basics.html">values have
- type</a>, like string, number, boolean, etc. One such type is
- called "markup output". A value of that type is a piece
- of text that's already in the output format (like HTML), and hence
- needs no further escaping. We have already produced such values
- earlier:</p>
-
- <ul>
- <li>
- <p><code class="inline-code"><em class="code-color">s</em>?esc</code>
- creates a markup output value out of a string value by escaping
- all special characters in it.</p>
- </li>
-
- <li>
- <p><code class="inline-code"><em class="code-color">s</em>?no_esc</code>
- creates a markup output value out of a string value by assuming
- that the string already stores markup and so needs no further
- escaping</p>
- </li>
- </ul>
-
- <p>These can be useful outside
- <code class="inline-code">${<em class="code-color">...</em>}</code> too. For
- example, here the caller of the <code class="inline-code">infoBox</code> macro can
- decide if the message is plain text (hence needs escaping) or HTML
- (hence it mustn't be escaped):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#-- We assume that we have "HTML" output format by default. -->
-
-<@infoBox "Foo & bar" />
-<@infoBox "Foo <b>bar</b>"?no_esc />
-
-<#macro infoBox message>
- <div class="infoBox">
- ${message}
- </div>
-</#macro></pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> <div class="infoBox">
- Foo &amp; bar
- </div>
- <div class="infoBox">
- Foo <b>bar</b>
- </div></pre></div>
-
- <p>Another case where you get a markup output value is output
- capturing:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#-- We assume that we have "HTML" output format by default. -->
-<#assign captured><b>Test</b></#assign>
-Just a string: ${"<b>Test</b>"}
-Captured output: ${captured}</pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">Just a string: &lt;b&gt;Test&lt;/b&gt;
-Captured output: <b>Test</b></pre></div>
-
- <p>Because the captured output is markup output, it wasn't
- auto-escaped.</p>
-
- <p>It's important that markup output values aren't strings, and
- aren't automatically coerced to strings. Thus
- <code class="inline-code">?upper_case</code>, <code class="inline-code">?starts_with</code>
- etc., will give an error with them. You won't be able to pass them
- to Java methods for <code class="inline-code">String</code> parameters either. But
- sometimes you need the markup that's behind the value as a string,
- which you can get as
- <code class="inline-code"><em class="code-color">markupOutput</em>?markup_string</code>.
- Be sure you know what you are doing though. Applying string
- operations on markup (as opposed to on plain text) can result in
- invalid markup. Also there's the danger of unintended double
- escaping.</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#-- We assume that we have "HTML" output format by default. -->
-
-<#assign markupOutput1="<b>Test</b>"?no_esc>
-<#assign markupOutput2="Foo & bar"?esc>
-
-As expected:
-${markupOutput1}
-${markupOutput2}
-
-Possibly unintended double escaping:
-${markupOutput1?markup_string}
-${markupOutput2?markup_string}</pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">As expected:
-<b>Test</b>
-Foo &amp; bar
-
-Possibly unintended double escaping:
-&lt;b&gt;Test&lt;/b&gt;
-Foo &amp;amp; bar</pre></div>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_28">Further details and tricky cases</h2>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="dgui_misc_autoescaping_nonmarkupof">Non-markup output formats</h3>
-
-
- <p>An output format is said to be a non-markup format if it
- defines no escaping rules. Examples of such output formats are the
- <code class="inline-code">undefined</code> format and the
- <code class="inline-code">plainText</code> format.</p>
-
- <p>These formats produce no <a href="#dgui_misc_autoescaping_movalues">markup output
- values</a>, hence you can't use <code class="inline-code">?esc</code> or
- <code class="inline-code">?no_esc</code> when they are the current format. You
- can use output capturing (like <code class="inline-code"><#assign
- captured><em class="code-color">...</em></#assign></code>),
- but the resulting value will be a string, not a markup output
- value.</p>
-
- <p>Furthermore, you aren't allowed to use the
- <code class="inline-code">autoesc</code> directive or <code class="inline-code"><#ftl
- auto_esc=true></code> when the current output format is
- non-markup.</p>
-
- <p>Using constructs that aren't supported by the current output
- format will give <a href="gloss.html#gloss.parseTimeError">parse-time
- error</a>.</p>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="dgui_misc_autoescaping_mixingoutputformats">Inserting markup output values from other markups</h3>
-
-
- <p>Each <a href="#dgui_misc_autoescaping_movalues">markup
- output value</a> has an associated <a href="#dgui_misc_autoescaping_outputformat">output
- format</a>. When a markup output value is inserted with
- <code class="inline-code">${<em class="code-color">...</em>}</code> (or
- <code class="inline-code">#{<em class="code-color">...</em>}</code>), it has to
- be converted to the current output format at the point of
- insertion (if they differ). As of this writing (2.3.24), such
- output format conversion will only be successful if the value to
- convert was created by escaping plain text:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#-- We assume that we have "HTML" output format by default. -->
-
-<#assign mo1 = "Foo's bar {}"?esc>
-HTLM: ${mo1}
-XML: <#outputformat 'XML'>${mo1}</#outputformat>
-RTF: <#outputformat 'RTF'>${mo1}</#outputformat>
-
-<#assign mo2><p>Test</#assign>
-HTML: ${mo2}
-XML: <#attempt><#outputformat 'XML'>${mo2}</#outputformat><#recover>Failed</#attempt>
-RTF: <#attempt><#outputformat 'RTF'>${mo2}</#outputformat><#recover>Failed</#attempt></pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">HTLM: Foo&#39;s bar {}
-XML: Foo&apos;s bar {}
-RTF: Foo's bar \{\}
-
-HTML: <p>Test
-XML: Failed
-RTF: Failed</pre></div>
-
- <p>But, an output format can also chose to insert pieces of
- other output formats as is, without converting them. Among the
- standard output formats, <code class="inline-code">undefined</code> is like
- that, which is the output format used for templates for which no
- output format was specified in the configuration:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#-- We assume that we have "undefined" output format here. -->
-
-<#outputformat "HTML"><#assign htmlMO><p>Test</#assign></#outputformat>
-<#outputformat "XML"><#assign xmlMO><p>Test</p></#assign></#outputformat>
-<#outputformat "RTF"><#assign rtfMO>\par Test</#assign></#outputformat>
-HTML: ${htmlMO}
-XML: ${xmlMO}
-RTF: ${rtfMO}</pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">HTML: <p>Test
-XML: <p>Test</p>
-RTF: \par Test</pre></div>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="dgui_misc_autoescaping_concatenation">Markup output values and the "+"
- operator</h3>
-
-
- <p>As you certainly know, if one of the sides of the
- <code class="inline-code">+</code> operator is a string then <a href="dgui_template_exp.html#dgui_template_exp_stringop_concatenation">it does
- concatenation</a>. If there's a <a href="#dgui_misc_autoescaping_movalues">markup output
- value</a> in one side, the other side gets promoted to markup
- output value of the same output format (if it's not already that),
- by escaping its string value, and finally the two markups are
- concatenated to form a new markup output value. Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#-- We assume that we have "HTML" output format by default. -->
-${"<h1>"?no_esc + "Foo & bar" + "</h1>"?no_esc}</pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"><h1>Foo &amp; bar</h1></pre></div>
-
- <p>If the two sides of the <code class="inline-code">+</code> operator are
- markup values of different output formats, the right side operand
- is converted to the output format of the left side. If that's not
- possible, then the left side operand is converted to the output
- format of the right side. If that isn't possible either, that's an
- error. (See the <a href="#dgui_misc_autoescaping_mixingoutputformats">limitations
- of conversions here</a>.)</p>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="dgui_misc_autoescaping_stringliteral">${...} inside string literals</h3>
-
-
- <p>When <code class="inline-code">${<em class="code-color">...</em>}</code> is
- used inside string <em>expressions</em> (e.g., in
- <code class="inline-code"><#assign s = "Hello ${name}!"></code>), it's
- just a shorthand of using the <code class="inline-code">+</code> operator
- (<code class="inline-code"><#assign s = "Hello" + name + "!"></code>).
- Thus, <code class="inline-code">${<em class="code-color">...</em>}</code>-s
- inside string expressions aren't auto-escaped, but of course when
- the resulting concatenated string is printed later, it will be
- possibly auto-escaped.</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#-- We assume that we have "HTML" output format by default. -->
-<#assign name = "Foo & Bar">
-
-<#assign s = "<p>Hello ${name}!">
-${s}
-<p>Hello ${name}!
-
-To prove that s didn't contain the value in escaped form:
-${s?replace('&'), 'and'}</pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">&lt;p&gt;Hello Foo &amp; Bar!
-<p>Hello Foo &amp; Bar!
-
-To prove that "s" didn't contain the value in escaped form:
-&lt;p&gt;Hello Foo and Bar!</pre></div>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_29">Combined output formats</h3>
-
-
- <p>Combined output formats are output formats that are created
- ad-hoc from other output formats by nesting them into each other,
- so that the escaping of both output formats are applied. <a href="ref_directive_outputformat.html#topic.combinedOutputFormats">They are discussed
- here...</a></p>
-
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="dgui_misc_namespace.html"><span>Previous</span></a><a class="paging-arrow next" href="dgui_misc_whitespace.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/dgui_misc_namespace.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/dgui_misc_namespace.html b/builds/2.3.26-nightly/dgui_misc_namespace.html
deleted file mode 100644
index ba514ea..0000000
--- a/builds/2.3.26-nightly/dgui_misc_namespace.html
+++ /dev/null
@@ -1,315 +0,0 @@
-<!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>Namespaces - 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="Namespaces">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/dgui_misc_namespace.html">
-<link rel="canonical" href="http://freemarker.org/docs/dgui_misc_namespace.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="dgui.html"><span itemprop="name">Template Author's Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="dgui_misc.html"><span itemprop="name">Miscellaneous</span></a></li><li class="step-3" itempro
p="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="dgui_misc_namespace.html"><span itemprop="name">Namespaces</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","Template Author\'s Guide","Miscellaneous","Namespaces"];</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="dgui_misc_var.html"><span>Previous</span></a><a class="paging-arrow next" href="dgui_misc_autoescaping.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="dgui_misc_namespace" itemprop="headline">Namespaces</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_23" data-menu-target="autoid_23">Creating a library</a></li><li><a class="page-menu-link" href="#autoid_24" data-menu-target="autoid_24">Writing the variables of imported namespaces</a></li><li><a class="page-menu-link" href="#autoid_25" data-menu-target="autoid_25">Namespaces and data-model</a></li><li><a class="page-menu-link" href="#autoid_26" data-menu-target="autoid_26">The life-cycle of namespaces</a></li><li><a class="page-menu-link" href="#autoid_27" data-menu-target="autoid_27">Auto-importing</a></li></ul> </div><p>When you run templates, you have a (possibly empty) set of
- variables that you have created with <code class="inline-code">assign</code> and
- <code class="inline-code">macro</code> and <code class="inline-code">function</code> directives
- (see in the <a href="dgui_misc_var.html">previous chapter</a>). A
- set of template-made variables like that is called a <strong>namespace</strong>. In simple cases you use only one
- namespace, the <strong>main namespace</strong>.
- Whenever you define a variable in the main template (macros and
- functions are also variables, mind you), or in templates <a href="ref_directive_include.html#ref.directive.include"><code>include</code>-d</a> in
- it, that's where the variable are created. The key property of a
- namespace is that the variable name uniquely identifies a value in it
- (i.e, you can't have multiple variables in it with the same name in
- the same namespace).</p><p>Sometimes you want to build reusable collection of macros,
- functions, and other variables, which we call a <strong>library</strong>. It's important that a library can use
- its own namespace, to avoid accidental name clashes. Consider, you may
- have many names in that library, and you intend to use the library in
- many templates, maybe even reuse it in several projects. It becomes
- impractical to keep track of where the library used in another
- template accidentally hides variables from the data-model, or what
- names you shouldn't assign to in the template to avoid overwriting the
- variables of the library. If you have multiple libraries used in the
- same template, this becomes even harder to track. So you should use a
- separate namespace for the variables of each library.</p>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_23">Creating a library</h2>
-
-
- <p>Here's a simple library, which contains a
- <code class="inline-code">copyright</code> macro and a <code class="inline-code">mail</code>
- string:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#macro copyright date>
- <p>Copyright (C) ${date} Someone. All rights reserved.</p>
-</#macro>
-
-<#assign mail = "user@example.com"></pre></div>
-
- <p>Save this into the <code class="inline-code">lib/example.ftl</code> file
- (inside the directory where you store the templates). Then create a
- template, let's say, <code class="inline-code">some_web_page.ftl</code>, and use
- the library in it:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#<strong>import</strong> "/lib/example.ftl" as <strong>e</strong>>
-
-Some Web page...
-<@<strong>e</strong>.copyright date="1999-2002"/>
-${<strong>e</strong>.mail}</pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">Some Web page...
- <p>Copyright (C) 1999-2002 Someone. All rights reserved.</p>
-user@example.com</pre></div>
-
- <p>Note the <a href="ref_directive_import.html#ref.directive.import"><code>import</code>
- directive</a> above, and the subsequent usage of the
- "<code class="inline-code">e</code>" variable.
- <code class="inline-code">import</code> is similar to the perhaps already familiar
- <a href="ref_directive_include.html#ref.directive.include"><code>include</code>
- directive</a>, but it will create an empty namespace and will run
- <code class="inline-code">lib/example.ftl</code> in that namespace. So
- <code class="inline-code">lib/example.ftl</code> will find itself in a clean
- world, where only the variables of the data-models are visible (and
- the globals), and will create its two variables
- (<code class="inline-code">copyright</code> and <code class="inline-code">mail</code>) in this
- clean namespace. But you will need to access those two variables
- from another namespace (the main namespace), thus, the
- <code class="inline-code">import</code> directive creates a hash variable
- (<code class="inline-code">e</code> in this case) to access the namespace it has
- created . That variable is in the namespace that the
- <code class="inline-code">import</code>-ing template uses, and acts as a window to
- the namespace of the imported library.</p>
-
- <p>To demonstrate that the two namespaces are separate, consider
- the example below. Replace <code class="inline-code">lib/example.ftl</code> with
- this:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#macro copyright date>
- <p>Copyright (C) ${date} Someone. All rights reserved.
- <br>Email: <strong>${mail}</strong></p>
-</#macro>
-
-<#assign mail = "user@example.com"></pre></div>
-
- <p>and <code class="inline-code">some_web_page.ftl</code> with this:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#import "/lib/example.ftl" as e>
-<strong><#assign mail="other@example.com"></strong>
-<@e.copyright date="1999-2002"/>
-${e.mail}
-${mail}</pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> <p>Copyright (C) 1999-2002 Someone. All rights reserved.
- <br>Email: <strong>user@example.com</strong></p>
-user@example.com
-other@example.com</pre></div>
-
- <p>As you can see, the <code class="inline-code">mail</code> variable assigned
- in <code class="inline-code">some_web_page.ftl</code> is separate from the
- <code class="inline-code">mail</code> variable assigned in the imported
- library.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_24">Writing the variables of imported namespaces</h2>
-
-
- <p>Sometimes you want to create or replace a variable in an
- imported namespace. You can do that with the
- <code class="inline-code">assign</code> directive and its
- <code class="inline-code">namespace</code> parameter:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#import "/lib/example.ftl" as e>
-${my.mail}
-<#assign mail="other@example.com" <strong>in e</strong>>
-${my.mail}</pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">user@example.com
-other@example.com</pre></div>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_25">Namespaces and data-model</h2>
-
-
- <p>The variables of the data-model are visible from everywhere.
- For example, if you have a variable called <code class="inline-code">user</code>
- in the data-model, <code class="inline-code">lib/example.ftl</code> will access
- that, exactly like <code class="inline-code">some_web_page.ftl</code> does:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#macro copyright date>
- <p>Copyright (C) ${date} <strong>${user}</strong>. All rights reserved.</p>
-</#macro></pre></div>
-
- <p>Assuming <code class="inline-code">user</code> is "John
- Doe":</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#import "/lib/my_test.ftl" as my>
-User is: ${user}
-<@my.copyright date="1999-2002"/></pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">User is: John Doe
- <p>Copyright (C) 1999-2002 John Doe. All rights reserved.</p></pre></div>
-
- <p>Don't forget that the variables in the namespace (the
- variables you create with <code class="inline-code">assign</code>,
- <code class="inline-code">macro</code>, and <code class="inline-code">function</code>
- directives) have precedence over the variables of the data-model
- when you are in that namespace. So generally, if a library is
- interested in a data-model variable, it doesn't assign to the same
- name.</p>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>In some unusual applications you want to create variables in
- the template that are visible from all namespaces, exactly like
- the variables of the data-model. While templates can't change the
- data-model, it's possible to achieve similar effect with the
- <code class="inline-code">global</code> directive; see the <a href="ref_directive_global.html#ref.directive.global">reference</a>.</p>
- </div>
-
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_26">The life-cycle of namespaces</h2>
-
-
- <p>A namespace is identified by the path used in the
- <code class="inline-code">import</code> directive (after it was normalized to an
- absolute path). If you try to <code class="inline-code">import</code> with
- equivalent paths for multiple times, it will create the namespace
- and run the template for only the first invocation of
- <code class="inline-code">import</code>. The later <code class="inline-code">import</code>-s
- with equivalent paths will just assign the same namespace to the
- variable specified after the <code class="inline-code">as</code> keyword. For
- example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#import "/lib/example.ftl" as e>
-<#import "/lib/example.ftl" as e2>
-<#import "/lib/example.ftl" as e3>
-${e.mail}, ${e2.mail}, ${e3.mail}
-<#assign mail="other@example.com" in my>
-${e.mail}, ${e2.mail}, ${e3.mail}</pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">user@example.com, user@example.com, user@example.com
-other@example.com, other@example.com, other@example.com</pre></div>
-
- <p>As you access the same namespace through <code class="inline-code">e</code>,
- <code class="inline-code">e2</code>, and <code class="inline-code">e3</code>, the
- <code class="inline-code">email</code> has changed in all of them at once. The
- practical importance of this is that when you import the same
- library in multiple templates, only one namespace will be
- initialized and created for the library, which will be shared by all
- the importing templates.</p>
-
- <p>Note that namespaces are not hierarchical; it doesn't mater
- what namespace are you in when <code class="inline-code">import</code> creates
- another namespace. For example, when you <code class="inline-code">import</code>
- namespace N2 while you are in name space N1, N2 will not be inside
- N1. N1 just gets the same N2 that you get if you
- <code class="inline-code">import</code> N2 when you are in the main
- namespace.</p>
-
- <p>Each <a href="gloss.html#gloss.templateProcessingJob">template
- processing job</a> has its own private set of namespaces. Each
- template processing job is a separate universe that exists only for
- the short period while the main template is rendered, and then it
- vanishes with all its populated namespaces. Thus, whenever we say
- that "<code class="inline-code">import</code> is called for the first
- time", we always mean the first time within the lifespan of a
- single template processing job.</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_27">Auto-importing</h2>
-
-
- <p>When you have to import the same libraries again and again in
- many templates, know that the Java programmers (or whoever is
- responsible for configuring FreeMarker) can specify auto-imports,
- which are imports that are automatically done in all templates. Auto
- imports can also be configured to be "lazy" (since
- FreeMarker 2.3.25), which means that they are only done when the
- imported library is actually used in the template. See the Java API
- documentation for more details: <a href="http://freemarker.org/docs/api/freemarker/template/Configuration.html#setAutoImports-java.util.Map-">Configuration.setAutoImports</a>,
- <a href="http://freemarker.org/docs/api/freemarker/template/Configuration.html#setLazyAutoImports-java.lang.Boolean-">Configuration.setLazyAutoImports</a>.</p>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="dgui_misc_var.html"><span>Previous</span></a><a class="paging-arrow next" href="dgui_misc_autoescaping.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>\u20132017
-<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>
[48/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/app_faq.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/app_faq.html b/builds/2.3.26-nightly/app_faq.html
deleted file mode 100644
index fda425b..0000000
--- a/builds/2.3.26-nightly/app_faq.html
+++ /dev/null
@@ -1,1797 +0,0 @@
-<!doctype html>
-<!-- Generated by FreeMarker/Docgen from DocBook -->
-<html lang="en" class="page-type-appendix">
-<head prefix="og: http://ogp.me/ns#">
-<meta charset="utf-8">
-<title>FAQ - 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="FAQ">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/app_faq.html">
-<link rel="canonical" href="http://freemarker.org/docs/app_faq.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_faq.html"><span itemprop="name">FAQ</span></a></li></ul><div class="bookmarks" title="Bookmarks"><span clas
s="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>FAQ</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","FAQ"];</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.html"><span>Previous</span></a><a class="paging-arrow next" href="app_versions.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-chapter" id="app_faq" itemprop="headline">FAQ</h1>
-</div></div> <div class="qandaset">
-
- <ol>
- <li>
- <a href="#faq_jsp_vs_freemarker">
-
- JSP versus FreeMarker?
-
-
- </a>
- </li>
- <li>
- <a href="#faq_picky_about_missing_vars">
-
- Why is FreeMarker so picky about <code class="inline-code">null</code>-s
- and missing variables, and what to do with it?
- </a>
- </li>
- <li>
- <a href="#faq_number_grouping">
-
- Why does FreeMarker print the numbers with strange
- formatting (as 1,000,000 or 1�000�000 instead of 1000000)?
- </a>
- </li>
- <li>
- <a href="#faq_number_decimal_point">
-
- Why does FreeMarker print bad decimal and/or grouping
- separator symbol (as 3.14 instead of 3,14)?
- </a>
- </li>
- <li>
- <a href="#faq_number_boolean_formatting">
-
- Why does FreeMarker give an error when I try to print a
- boolean like <code class="inline-code">${aBoolean}</code>, and how to fix
- it?
- </a>
- </li>
- <li>
- <a href="#faq_template_not_found">
-
- FreeMarker can't find my templates
- (<code class="inline-code">TemplateNotFoundException</code> or
- <code class="inline-code">FileNotFoundException</code>, "Template not
- found" error message)
- </a>
- </li>
- <li>
- <a href="#faq_check_version">
-
- The documentation writes about feature
- <em>X</em>, but it seems that FreeMarker doesn't
- know that, or it behaves in a different way as documented, or a
- bug that was supposedly fixed is still present.
- </a>
- </li>
- <li>
- <a href="#faq_alternative_syntax">
-
- The <code class="inline-code"><</code> and <code class="inline-code">></code> of
- FreeMarker tags confuses my editor or the XML parser. What to
- do?
- </a>
- </li>
- <li>
- <a href="#faq_legal_variable_names">
-
- What are the legal variable names?
-
-
- </a>
- </li>
- <li>
- <a href="#faq_strange_variable_name">
-
- How can I use variable names (macro name, parameter name)
- that contain minus sign (<code class="inline-code">-</code>), colon
- (<code class="inline-code">:</code>), dot (<code class="inline-code">.</code>), or or other
- special characters?
- </a>
- </li>
- <li>
- <a href="#faq_jsp_custom_tag_syntax">
-
- Why do I get "java.lang.IllegalArgumentException: argument
- type mismatch" when I try to use <em>X</em> JSP
- custom tag?
- </a>
- </li>
- <li>
- <a href="#faq_servlet_include">
-
- How to include other resources in a way as
- <code class="inline-code">jsp:include</code> does it?
- </a>
- </li>
- <li>
- <a href="#faq_parameter_unwrapping">
-
- How can I get the parameters to my
- plain-Java-method/<code class="inline-code">TemplateMethodModelEx</code>/<code class="inline-code">TemplateTransformModel</code>/<code class="inline-code">TemplateDirectiveModel</code>
- implementation as plain
- <code class="inline-code">java.lang.*</code>/<code class="inline-code">java.util.*</code>
- objects?
- </a>
- </li>
- <li>
- <a href="#faq_nonstring_keys">
-
- Why I can't use non-string key in the
- <code class="inline-code">myMap[myKey]</code> expression? And what to do
- now?
-
-
- </a>
- </li>
- <li>
- <a href="#faq_simple_map">
-
- When I list the contents of a map (a hash) with
- <code class="inline-code">?keys</code>/<code class="inline-code">?values</code>, I get the
- <code class="inline-code">java.util.Map</code> methods mixed with the real map
- entries. Of course, I only want to get the map entries.
- </a>
- </li>
- <li>
- <a href="#faq_modify_seq_and_map">
-
- How can I modify sequences (lists) and hashes (maps) in
- FreeMarker templates?
-
-
-
-
-
-
-
-
- </a>
- </li>
- <li>
- <a href="#faq_null">
-
- What about <code class="inline-code">null</code> and the FreeMarker
- template language?
- </a>
- </li>
- <li>
- <a href="#faq_capture">
-
- How can I use the output of a directive (macro) in
- expressions (as a parameter to another directive)?
- </a>
- </li>
- <li>
- <a href="#faq_questionmark">
-
- Why do I have "?"-s in the output instead of
- character <em>X</em>?
- </a>
- </li>
- <li>
- <a href="#faq_retrieve_calculated_values">
-
- How to retrieve values calculated in templates after
- template execution done?
- </a>
- </li>
- <li>
- <a href="#faq_assign_to_dynamic_variable_name">
-
- How to assign to (or <code class="inline-code">#import</code> into) a
- dynamically constructed variable name (like to name that's stored
- in another variable)?
- </a>
- </li>
- <li>
- <a href="#faq_template_uploading_security">
-
-
-
- Can I allow users to upload templates and what are the
- security implications?
- </a>
- </li>
- <li>
- <a href="#faq_implement_function_or_macro_in_java">
-
- How to implement a function or macro in Java Language
- instead of in the template language?
- </a>
- </li>
- <li>
- <a href="#faq_nice_error_page">
-
- In my Servlet
- based application, how do I show a nice error page instead of a
- stack trace when error occurs during template processing?
- </a>
- </li>
- <li>
- <a href="#faq_html_editor_mangles">
-
- I'm using a visual HTML editor that mangles template tags.
- Will you change the template language syntax to accommodate my
- editor?
- </a>
- </li>
- </ol>
- <dl>
-
-
-
- <dt class="question" id="faq_jsp_vs_freemarker">
- 1.
- JSP versus FreeMarker?
-
-
-
- </dt>
-
-
- <dd class="answer">
-
- <p>We compare FreeMarker with the JSP 2.0 + JSTL combo
- here.</p>
-
- <p>FreeMarker Pros:</p>
-
- <ul>
- <li>
- <p>FreeMarker is not tied to Servlets or networking/Web; it
- is just a class library to generate text output by merging a
- template with Java objects (the data-model). You can execute
- templates anywhere and anytime; no HTTP request forwarding or
- similar tricks needed, no Servlet environment needed at all.
- Because of this you can easily integrate it into any
- system.</p>
- </li>
-
- <li>
- <p>Terser syntax. Consider this JSP (assuming
- <code class="inline-code"><%@ taglib prefix="c"
- uri="http://java.sun.com/jsp/jstl/core"
- %></code>):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><c:if test="${t}">
- True
-</c:if>
-
-<c:choose>
- <c:when test="${n == 123}">
- Do this
- </c:when>
- <c:otherwise>
- Do that
- </c:otherwise>
-</c:choose>
-
-<c:forEach var="i" items="${ls}">
-- ${i}
-</c:forEach></pre></div>
-
- <p>and the equivalent FTL:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#if t>
- True
-</#if>
-
-<#if n == 123>
- Do this
-<#else>
- Do that
-</#if>
-
-<#list ls as i>
-- ${i}
-</#list></pre></div>
- </li>
-
- <li>
- <p>No servlet specific scopes and other highly technical
- things in templates (unless, of course, you expose them into
- the data-model deliberately). It was made for MVC from the
- beginning, it focuses only on the presentation.</p>
- </li>
-
- <li>
- <p>You can load the templates from anywhere; from the class
- path, from a data-base, etc.</p>
- </li>
-
- <li>
- <p>Locale-sensitive number and date formatting by default.
- When you output for a human audience, all you need to do is
- just write <code class="inline-code">${x}</code> rather than
- <code class="inline-code"><fmt:formatNumber value="${x}"
- /></code>.</p>
- </li>
-
- <li>
- <p>Easier to define ad-hoc macros and functions.</p>
- </li>
-
- <li>
- <p>No sweeping errors under the carpet. Missing variables
- and <code class="inline-code">null</code>-s will not silently default to
- <code class="inline-code">0</code>/<code class="inline-code">false</code>/empty-string,
- but cause error. <a href="#faq_picky_about_missing_vars">See more about this
- here...</a></p>
- </li>
-
- <li>
- <p>"Object wrapping". This lets you show the
- objects to templates in a customized, presentation oriented
- way (e.g. <a href="xgui_imperative_learn.html">see
- here</a> how a W3C DOM nodes can be seen by templates using
- this technology.)</p>
- </li>
-
- <li>
- <p>Macros and functions are just variables, so they can be
- easily passed around as parameter values, put into the
- data-model, etc., just like any other values.</p>
- </li>
-
- <li>
- <p>Virtually unnoticeable delay when visiting a page for
- the first time (or after it was changed), because no expensive
- compilation happens.</p>
- </li>
- </ul>
-
- <p>FreeMarker Cons:</p>
-
- <ul>
- <li>
- <p>Not a "standard". There are fewer tools and
- IDE integrations, fewer developers knows it and there's much
- less industry support in general. (However, most JSP tag
- libraries can work in FreeMarker templates with the proper
- setup, unless they are base on <code class="inline-code">.tag</code>
- files.)</p>
- </li>
-
- <li>
- <p>Its syntax doesn't follow the HTML/XML rules apart from
- some visual similarity, which is confusing for new users (it's
- the price of the terseness). JSP doesn't follow it either, but
- it's closer to it.</p>
- </li>
-
- <li>
- <p>Since macros and functions are just variables, incorrect
- directive and parameter names and missing required parameters
- can be detected only on runtime.</p>
- </li>
-
- <li>
- <p>Doesn't work with JSF. (It could work technically, but
- nobody has implemented that yet.)</p>
- </li>
- </ul>
-
- <p>You may read this if you are considering replacing JSP with
- FreeMarker in an existing application or in a legacy framework
- that only supports JSP: <a href="pgui_misc_servlet.html#pgui_misc_servlet_model2">Programmer's Guide/Miscellaneous/Using FreeMarker with servlets/Using FreeMarker for "Model 2"</a></p>
- </dd>
-
-
-
-
-
- <dt class="question" id="faq_picky_about_missing_vars">
- 2.
- Why is FreeMarker so picky about <code class="inline-code">null</code>-s
- and missing variables, and what to do with it?
-
- </dt>
-
-
- <dd class="answer">
-
- <p>To recapitulate what's this entry is about: FreeMarker by
- default treats an attempt to access a non-existent variable or a
- <code class="inline-code">null</code> value (<a href="#faq_null">this two
- is the same for FreeMarker</a>) as error, which aborts the
- template execution.</p>
-
- <p>First of all, you should understand the reason of being
- picky. Most scripting languages and template languages are rather
- forgiving with missing variables (and with
- <code class="inline-code">null</code>-s), and they usually treat them as empty
- string and/or 0 and/or logical false. This behavior has several
- problems:</p>
-
- <ul>
- <li>
- <p>It potentially hides accidental mistakes, like a typo in
- a variable name, or when the template author refers to a
- variable that the programmer doesn't put into the data-model
- for that template, or for which the programmer uses a
- different name. Humans are prone to do such mistakes, while
- computers are not, so missing this opportunity that the
- template engine can show these errors is a bad business. Even
- if you very carefully check the output of the templates during
- development, it is easy to look over mistakes like
- <code class="inline-code"><#if hasWarnigs><em class="code-color">print warnings
- here...</em></#if></code>, which would then
- silently never print the warnings, since you have mistyped the
- variable name (have you noticed it?). Also think about
- maintenance, when you later modify your application; probably
- you will not re-check templates (many applications has
- hundreds of them) that carefully each time, for all possible
- scenarios. Unit tests typically doesn't cover web page content
- very good either (if you have them at all...); they mostly
- only check certain manually set patterns in the web page, so
- they will often gloss though changes that are actually bugs.
- But if the page fails with exception, that's something human
- testers will notice and unit test will notice (as the whole
- page will fail), and in production the maintainers will notice
- (assuming somebody check error logs).</p>
- </li>
-
- <li>
- <p>Makes dangerous assumptions. The script language or
- template engine knows nothing about the application domain, so
- when it decides the value of something that it doesn't know to
- be 0/false, it is a quite irresponsible and arbitrary thing.
- Just because it's not know what's your current balance at your
- bank, can we just say it's $0? Just because it is not known if
- a patient has penicillin allergy, can we just say he/she
- doesn't have it? Just consider the implications of such
- mistakes. Showing an error page is often better than showing
- incorrect information that looks good, leading to bad
- decisions on the user side.</p>
- </li>
- </ul>
-
- <p>Being not picky is mostly sweeping under the carpet in this
- case (not facing the problems), which of course most people feels
- more convenient, but still, we believe that in most cases being
- strict will save your time and increase your software quality on
- the long run.</p>
-
- <p>On the other hand, we recognize that there are cases where
- you don't want FreeMarker to be that picky for good reason, and
- there is solution for them:</p>
-
- <ul>
- <li>
- <p>It's often normal that your data-model contains
- <code class="inline-code">null</code>-s or have optional variables. In such
- cases use <a href="dgui_template_exp.html#dgui_template_exp_missing">these
- operators</a>. If you use them too often, try to rethink
- your data-model, because depending on them too much won't just
- make the templates too verbose, but increases the probability
- of hiding errors and printing arbitrary incorrect output (for
- the reasons described earlier).</p>
- </li>
-
- <li>
- <p>In some application you may rather want to show an
- incomplete/damaged page than an error page. In this case you
- can <a href="pgui_config_errorhandling.html">use another
- error handler</a> than the default one. A custom error
- handler can skip the problematic part, or show an error
- indicator there, instead of aborting the whole page rendering.
- Note, however, that although the error handlers don't give
- arbitrary default values to variables, for pages that show
- critical information it's maybe still better to show an error
- page.</p>
- </li>
-
- <li>
- <p>If the pages contain parts that aren't critically
- important (like some side bars), another feature you may
- interested in is <a href="ref_directive_attempt.html">the
- <code>attempt</code>/<code>recover</code>
- directives</a>.</p>
- </li>
- </ul>
- </dd>
-
-
-
-
-
- <dt class="question" id="faq_number_grouping">
- 3.
- Why does FreeMarker print the numbers with strange
- formatting (as 1,000,000 or 1�000�000 instead of 1000000)?
-
- </dt>
-
-
- <dd class="answer">
-
- <p>FreeMarker uses the locale-sensitive number formatting
- capability of the Java platform. The default number format for
- your locale may uses grouping or other formatting. If you don't
- want that, you have to override the number format suggested by the
- Java platform with the <code class="inline-code">number_format</code> <a href="pgui_config_settings.html">FreeMarker setting</a>. For
- example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">cfg.setNumberFormat("0.######"); // now it will print 1000000
-// where cfg is a freemarker.template.Configuration object</pre></div>
-
- <p>Note however than humans often find it hard to read big
- numbers without grouping separator. So in general it is
- recommended to keep them, and in cases where the numbers are for
- ''computer audience'' (which is confused on the grouping
- separators), use the <a href="ref_builtins_number.html#ref_builtin_c"><code>c</code> built-in</a>. For
- example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><a href="/shop/productdetails?id=${<strong>product.id?c</strong>}">Details...</a></pre></div>
-
- <p>For computer audience you need <code class="inline-code">?c</code> anyway,
- as the decimal separators can also wary depending on the
- locale.</p>
- </dd>
-
-
-
-
-
- <dt class="question" id="faq_number_decimal_point">
- 4.
- Why does FreeMarker print bad decimal and/or grouping
- separator symbol (as 3.14 instead of 3,14)?
-
- </dt>
-
-
- <dd class="answer">
-
- <p>Different countries use different decimal/grouping separator
- symbols. If you see incorrect symbols, then probably your locale
- is not set properly. Set the default locale of the JVM or override
- the default locale with the <code class="inline-code">locale</code> <a href="pgui_config_settings.html">FreeMarker setting</a>. For
- example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">cfg.setLocale(java.util.Locale.ITALY);
-// where cfg is a freemarker.template.Configuration object</pre></div>
-
- <p>However, sometimes you want to output a number not for human
- audience, but for "computer audience" (like you want
- to print a size in CSS), in which case you must use dot as decimal
- separator, regardless of the locale (language) of the page. For
- that use the <a href="ref_builtins_number.html#ref_builtin_c"><code>c</code>
- built-in</a>, for example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">font-size: ${<strong>fontSize?c</strong>}pt;</pre></div>
- </dd>
-
-
-
-
-
- <dt class="question" id="faq_number_boolean_formatting">
- 5.
- Why does FreeMarker give an error when I try to print a
- boolean like <code class="inline-code">${aBoolean}</code>, and how to fix
- it?
-
- </dt>
-
-
- <dd class="answer">
-
- <p>Unlike numbers, booleans has no commonly accepted format,
- not even a common format within the same page. Like when you show
- on a HTML page if a product is washable, you will hardly want to
- show for the visitor "Washable: true", but rather "Washable: yes".
- So we force the template author (by <code class="inline-code">${washable}</code>
- causing error) to find out with his human knowledge how the
- boolean value should be shown at the given place. The common way
- of formatting a boolean is like <code class="inline-code">${washable?string("yes",
- "no")}</code>, <code class="inline-code">${caching?string("Enabled",
- "Disabled")}</code>, <code class="inline-code">${heating?string("on",
- "off")}</code>, etc.</p>
-
- <p>However, there are two cases where this gets
- impractical:</p>
-
- <ul>
- <li>
- <p>When printing boolean to generate computer language
- output, and hence you want
- <code class="inline-code">true</code>/<code class="inline-code">false</code>, use
- <code class="inline-code">${<em class="code-color">someBoolean</em>?c}</code>.
- (This requires at least FreeMarker 2.3.20. Before that, the
- common practice was writing
- <code class="inline-code">${<em class="code-color">someBoolean</em>?string}</code>,
- however that's dangerous because its output depends on the
- current boolean format setting, whose default is
- <code class="inline-code">"true"</code>/<code class="inline-code">"false"</code>.)</p>
- </li>
-
- <li>
- <p>When you have format most of the booleans on the same
- way. In this case you can set the
- <code class="inline-code">boolean_format</code> setting
- (<code class="inline-code">Configuration.setBooleanFormat</code>) to reflect
- that, and then since FreeMarker 2.3.20 you can just write
- <code class="inline-code">${<em class="code-color">someBoolean</em>}</code>.
- (Note that this doesn't work for
- <code class="inline-code">true</code>/<code class="inline-code">false</code> though - you
- have to use <code class="inline-code">?c</code> there.)</p>
- </li>
- </ul>
- </dd>
-
-
-
-
-
- <dt class="question" id="faq_template_not_found">
- 6.
- FreeMarker can't find my templates
- (<code class="inline-code">TemplateNotFoundException</code> or
- <code class="inline-code">FileNotFoundException</code>, "Template not
- found" error message)
-
- </dt>
-
-
- <dd class="answer">
-
- <p>First of all, you should know that FreeMarker doesn't load
- templates from file system paths directly. Instead, it uses a
- simple virtual file system that might reads non-filesystem
- resources (templates from inside jar-s, from inside a database
- table, etc.). What that virtual file is decided by a configuration
- setting,
- <code class="inline-code">Configuration.setTemplateLoader(TemplateLoader)</code>.
- Even if the <code class="inline-code">TemplateLoader</code> your are using maps
- to the file system, it will have a base directory that contains
- all the templates, and that will be the root of your virtual file
- system that you can't reach out from (i.e., absolute paths will be
- still relative to the virtual file system root).</p>
-
- <p>Tips to solve the problem:</p>
-
- <ul>
- <li>
- <p>If you are the one who configure FreeMarker, be sure
- that you set a proper
- <code class="inline-code">TemplateLoader</code>.</p>
- </li>
-
- <li>
- <p>Otherwise see if the template-not-found error's message
- contains the description of the
- <code class="inline-code">TemplateLoader</code> used. If it doesn't, you are
- using an old FreeMarker version, so update it. Getting
- <code class="inline-code">FileNotFoundException</code> instead of
- <code class="inline-code">TemplateNotFoundException</code> is also a sign of
- that, and so you will get less helpful error messages. (If the
- <code class="inline-code">TemplateLoader</code> in the error message is like
- <code class="inline-code">foo.SomeTemplateLoader@64f6106c</code> and so
- doesn't show some relevant parameters, you may should ask the
- author to define a nicer
- <code class="inline-code">toString()</code>.)</p>
- </li>
-
- <li>
- <p>A frequent mistake is using a
- <code class="inline-code">FileTemplateLoader</code> for a Servlet-based web
- application, instead of a
- <code class="inline-code">WebappTemplateLoader</code>. It may works in one
- environment, but not in another, as the Servlet specification
- makes no promises about your resources being accessible as
- plain files, not even when the <code class="inline-code">war</code> file is
- extracted.</p>
- </li>
-
- <li>
- <p>Know that when you are including/importing a template
- from another template, if you don't start the template name
- with <code class="inline-code">/</code>, it will be interpreted relatively
- to the directory of the including template. The error message
- contains the full (resolved) name, so you should notice this
- there.</p>
- </li>
-
- <li>
- <p>Check that you aren't using <code class="inline-code">\</code>
- (backslash) instead of <code class="inline-code">/</code> (slash).
- (FreeMarker 2.3.22 and later will warn you about that in the
- error message.)</p>
- </li>
-
- <li>
- <p>As a last resort, turn on debug level logging (in the
- logging framework that you are using) for the category
- <code class="inline-code">freemarker.cache</code>, to see more of what's
- going on.</p>
- </li>
- </ul>
- </dd>
-
-
-
-
-
- <dt class="question" id="faq_check_version">
- 7.
- The documentation writes about feature
- <em>X</em>, but it seems that FreeMarker doesn't
- know that, or it behaves in a different way as documented, or a
- bug that was supposedly fixed is still present.
-
- </dt>
-
-
- <dd class="answer">
-
- <p>Are you sure that you are using the documentation written
- for the same version of FreeMarker that you actually use?
- Especially, note that our online documentation is for the latest
- stable FreeMarker release. You may use an older release; update
- it.</p>
-
- <p>Are you sure that the Java class loader finds the same
- <code class="inline-code">freemarker.jar</code> that you expect to use? Maybe
- there is an older version of <code class="inline-code">freemarker.jar</code>
- around, which shadows the never. To check this, try to print the
- version number in a template with <code class="inline-code">${.version}</code>.
- (If it dies with "Unknown built-in variable: version"
- error message, then you use a very, very old release.).</p>
-
- <p>If you suspect that the problem is that you have multiple
- <code class="inline-code">freemarker.jar</code>-s, the typical culprit is that
- some module has a Maven or Ivy dependency with the old
- <code class="inline-code">freemarker</code> group ID, as opposed to the more
- modern <code class="inline-code">org.freemarker</code> group ID. Because of the
- different group ID-s these aren't seen as conflicting artifacts by
- Maven or Ivy, and so both version gets in. In this case you have
- to exclude the <code class="inline-code">freemarker</code> dependency.</p>
-
- <p>If you think that the documentation or FreeMarker is wrong,
- please report it using the bug tracker, or the mailing list. Thank
- you!</p>
- </dd>
-
-
-
-
-
- <dt class="question" id="faq_alternative_syntax">
- 8.
- The <code class="inline-code"><</code> and <code class="inline-code">></code> of
- FreeMarker tags confuses my editor or the XML parser. What to
- do?
-
- </dt>
-
-
- <dd class="answer">
-
- <p>Starting from FreeMarker 2.3.4 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 more
- details <a href="dgui_misc_alternativesyntax.html">read
- this...</a></p>
- </dd>
-
-
-
-
-
- <dt class="question" id="faq_legal_variable_names">
- 9.
- What are the legal variable names?
-
-
-
- </dt>
-
-
- <dd class="answer">
-
- <p>FreeMarker has no limitations regarding the characters used
- in variable names, nor regarding the length of the variable names,
- but for your convenience try to chose variable names that can be
- used with the simple variable reference expressions (see it <a href="dgui_template_exp.html#dgui_template_exp_var_toplevel">here</a>). If you have
- to choose a more extreme variable name, that's not a big problem
- either: <a href="#faq_strange_variable_name">see
- here</a>.</p>
- </dd>
-
-
-
-
-
- <dt class="question" id="faq_strange_variable_name">
- 10.
- How can I use variable names (macro name, parameter name)
- that contain minus sign (<code class="inline-code">-</code>), colon
- (<code class="inline-code">:</code>), dot (<code class="inline-code">.</code>), or or other
- special characters?
-
- </dt>
-
-
- <dd class="answer">
-
- <p>If you have a variable with strange name like
- "foo-bar", FreeMarker will misunderstand what you
- mean if you just use it like in <code class="inline-code">${foo-bar}</code>. In
- this case, it will believe that you want to subtract the value of
- <code class="inline-code">bar</code> from <code class="inline-code">foo</code>. This FAQ entry
- explains how to handle situations like this.</p>
-
- <p>First of all it should be clear that these are just
- syntactical problems, as otherwise FreeMarker has no limitations
- regarding the characters used in variable names, nor regarding the
- length of them.</p>
-
- <p>If the special character is one of minus sign
- (<code class="inline-code">-</code>, UCS 0x2D) or dot (<code class="inline-code">.</code>, UCS
- 0x2E) or colon (<code class="inline-code">:</code>, UCS 0x3A), then all you have
- to do is putting a backslash (<code class="inline-code">\</code>) before these
- characters, like in <code class="inline-code">foo\-bar</code> (since FreeMarker
- 2.3.22). Then FreeMarker will know that you didn't mean the
- operator with the same symbol. This works everywhere where you
- specify unquoted identifiers, like for macro and function names,
- parameter names, and all kind of variable references in general.
- (Note that these escapes only work in identifiers, not in string
- literals.)</p>
-
- <p>When the special character is not one of minus sign, dot, or
- colon, then it gets trickier. Let's say the problematic variable
- name is "a+b". Then:</p>
-
- <ul>
- <li>
- <p>If you want to read the variable: If it's a subvariable
- of something, you can write
- <code class="inline-code">something["a+b"]</code> (remember,
- <code class="inline-code">something.x</code> is equivalent to
- <code class="inline-code">something["x"])</code>. If it's a top-level
- variable, those are accessible through the special hash
- variable ,<code class="inline-code">.vars</code>, so you can write
- <code class="inline-code">.vars["a+b"]</code>. Naturally, this trick works
- with macro and function invocations too:
- <code class="inline-code"><@.vars["a+b"]/></code>,
- <code class="inline-code">.vars["a+b"](1, 2)</code>.</p>
- </li>
-
- <li>
- <p>If you want to create or modify the variable: All
- directives that let you create or modify a variable (such as
- <code class="inline-code">assign</code>, <code class="inline-code">local</code>,
- <code class="inline-code">global</code>, <code class="inline-code">macro</code>,
- <code class="inline-code">function</code>, etc.) allows the quotation of the
- destination variable name. For example, <code class="inline-code"><#assign
- foo = 1></code> is the same as <code class="inline-code"><#assign
- "foo" = 1></code>. So you can write things like
- <code class="inline-code"><#assign "a+b" = 1></code> and
- <code class="inline-code"><#macro "a+b"></code>.</p>
- </li>
-
- <li>
- <p>Unfortunately, you can't use such a variable name (that
- contains special characters other than <code class="inline-code">-</code>,
- <code class="inline-code">.</code> and <code class="inline-code">:</code>) as macro
- parameter name.</p>
- </li>
- </ul>
- </dd>
-
-
-
-
-
- <dt class="question" id="faq_jsp_custom_tag_syntax">
- 11.
- Why do I get "java.lang.IllegalArgumentException: argument
- type mismatch" when I try to use <em>X</em> JSP
- custom tag?
-
- </dt>
-
-
- <dd class="answer">
-
- <p>Fist of all, update FreeMarker, because 2.3.22 and later
- gives a much more helpful error message, that pretty much answers
- the question. Anyway, the reason is as follows. On JSP pages you
- quote all parameter (attribute) values, it does not mater if the
- type of the parameter is string or boolean or number. But since
- custom tags are accessible in FTL templates as plain user-defined
- FTL directives, you have to use the FTL syntax rules inside the
- custom tags, not the JSP rules. Thus, according to FTL rules, you
- must not quote boolean and numerical parameter values, or they are
- interpreted as string values, and this will cause a type mismatch
- error when FreeMarker tries to pass the value to the custom tag
- that expects non-string value.</p>
-
- <p>For example, the <code class="inline-code">flush</code> parameter to
- Struts Tiles <code class="inline-code">insert</code> tag is boolean. In JSP the
- correct syntax was:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><tiles:insert page="/layout.jsp" <strong>flush="true"</strong>/>
-<em>...</em></pre></div>
-
- <p>but in FTL you should write:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><@tiles.insert page="/layout.ftl" <strong>flush=true</strong>/>
-<em>...</em></pre></div>
-
- <p>Also, for similar reasons, this is wrong:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><tiles:insert page="/layout.jsp" <strong>flush="${needFlushing}"</strong>/>
-<em>...</em></pre></div>
-
- <p>and you should write:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><tiles:insert page="/layout.jsp" <strong>flush=needFlushing</strong>/>
-<em>...</em></pre></div>
-
- <p>(Not <code class="inline-code">flush=${needFlushing}</code>!)</p>
- </dd>
-
-
-
-
-
- <dt class="question" id="faq_servlet_include">
- 12.
- How to include other resources in a way as
- <code class="inline-code">jsp:include</code> does it?
-
- </dt>
-
-
- <dd class="answer">
-
- <p>Not with <code class="inline-code"><#include ...></code>, as that
- just includes another FreeMarker template without involving the
- Servlet container.</p>
-
- <p>Since the inclusion method you look for is Servlet-related,
- and pure FreeMarker is unaware of Servlets or even HTTP, it's the
- Web Application Framework that decides if you can do this and if
- so how. For example, in Struts 2 you can do this like this:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><@s.include value="/WEB-INF/just-an-example.jspf" /></pre></div>
-
- <p>If the FreeMarker support of the Web Application Framework
- is based on
- <code class="inline-code">freemarker.ext.servlet.FreemarkerServlet</code>, then
- you can also do this (since FreeMarker 2.3.15):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><@include_page path="/WEB-INF/just-an-example.jspf" /></pre></div>
-
- <p>but if the Web Application Framework provides its own
- solution, then you may prefer that, after all it may does
- something special.</p>
-
- <p>For more information about <code class="inline-code">include_page</code>
- <a href="pgui_misc_servlet.html#pgui_misc_servlet_include">read
- this...</a></p>
- </dd>
-
-
-
-
-
- <dt class="question" id="faq_parameter_unwrapping">
- 13.
- How can I get the parameters to my
- plain-Java-method/<code class="inline-code">TemplateMethodModelEx</code>/<code class="inline-code">TemplateTransformModel</code>/<code class="inline-code">TemplateDirectiveModel</code>
- implementation as plain
- <code class="inline-code">java.lang.*</code>/<code class="inline-code">java.util.*</code>
- objects?
-
- </dt>
-
-
- <dd class="answer">
-
- <p>Unfortunately, there is no simple general-purpose solution
- for this problem. The problem is that FreeMarker object wrapping
- is very flexible, which is good when you access variables from
- templates, but makes unwrapping on the Java side a tricky
- question. For example, it is possible to wrap a
- non-<code class="inline-code">java.util.Map</code> object as
- <code class="inline-code">TemplateHashModel</code> (FTL hash variable). But
- then, it can't be unwrapped to <code class="inline-code">java.util.Map</code>,
- since there is no wrapped <code class="inline-code">java.util.Map</code> around
- at all.</p>
-
- <p>So what to do then? Basically there are two cases:</p>
-
- <ul>
- <li>
- <p>Directives and methods that are written for presentation
- purposes (like kind of "tools" for helping
- FreeMarker templates) should declare their arguments as
- <code class="inline-code">TemplateModel</code>-s and the more specific sub
- interfaces of that. After all, the object wrapping is about
- transforming the data-model to something that serves the
- purpose of the presentation layer, and these methods are part
- of the presentation layer. If you still need a plain Java type
- there, you may turn to the
- <code class="inline-code">ObjectWrapperAndUnwrapper</code> interface of the
- current <code class="inline-code">ObjectWrapper</code> (can be get with
- <code class="inline-code">Environment.getObjectWrapper()</code>).</p>
- </li>
-
- <li>
- <p>Methods that are not for presentation related tasks (but
- for business logic and like) should be implemented as plain
- Java methods, and should not use any FreeMarker specific
- classes at all, since according the MVC paradigm they must be
- independent of the presentation technology (FreeMarker). If
- such a method is called from a template, then it is the
- responsibility of the <a href="pgui_datamodel_objectWrapper.html">object wrapper</a>
- to ensure the conversion of the arguments to the proper type.
- If you use the <a href="pgui_datamodel_objectWrapper.html#pgui_datamodel_defaultObjectWrapper"><code>DefaultObjectWrapper</code></a>
- or the <a href="pgui_misc_beanwrapper.html"><code>BeansWrapper</code></a>
- then this will happen automatically. For
- <code class="inline-code">DefaultObjectWrapper</code>, this mechanism works
- much better, if you <a href="pgui_datamodel_objectWrapper.html#topic.defaultObjectWrapperIcI">set its
- <code>incompatibleImprovements</code> to
- 2.3.22</a>.</p>
- </li>
- </ul>
- </dd>
-
-
-
-
-
- <dt class="question" id="faq_nonstring_keys">
- 14.
- Why I can't use non-string key in the
- <code class="inline-code">myMap[myKey]</code> expression? And what to do
- now?
-
-
-
- </dt>
-
-
- <dd class="answer">
-
- <p>The "hash" type of the FreeMarker Template
- Language (FTL) is not the same as Java's <code class="inline-code">Map</code>.
- FTL's hash is an associative array too, but it uses string keys
- exclusively. This is because it was introduced for sub variables
- (as <code class="inline-code">password</code> in
- <code class="inline-code">user.password</code>, which is the same as
- <code class="inline-code">user["password"]</code>), and variable names are
- strings.</p>
-
- <p>If you only need to list the key-value pairs of a
- <code class="inline-code">Map</code>, you can just write something like
- <code class="inline-code"><#list myMap as k, v>${k}:
- ${v}</#list></code> (see more about <a href="ref_directive_list.html#ref.directive.list">the <code>list directive</code>
- here</a>). This enumerates the <code class="inline-code">Map</code> entries,
- and supports non-string keys. This requires FreeMarker 2.3.25 or
- later. (If for some reason you can't upgrade to 2.3.25, you can
- use the Java API of <code class="inline-code">Map</code> instead, like
- <code class="inline-code"><#list myMap?api.entrySet() as kvp>${kvp.key}:
- ${kvp.value}</#list></code>.)</p>
-
- <p>If you need to do more than listing, you will have to turn
- to the Java API of the <code class="inline-code">Map</code>. You can do it like
- this: <code class="inline-code">myMap?api.get(nonStringKey)</code>. However, for
- <code class="inline-code">?api</code> to be enabled, you may need to configure
- FreeMarker a bit (<a href="ref_builtins_expert.html#ref_buitin_api_and_has_api">see
- more here</a>).</p>
-
- <p>Note that as Java's <code class="inline-code">Map</code> is particular
- about the exact class of the key, at least for numerical keys
- calculated inside the templates you will have to cast them to the
- proper Java type, otherwise the item will not be found. For
- example if you use <code class="inline-code">Integer</code> keys in a Map, then
- you should write <code class="inline-code">${myMap.get(numKey?int)}</code>. This
- is because of FTL's deliberately simplified type system has only a
- single numerical type, while Java distinguishes a lot of numerical
- types. Note that the casting is not needed when the key value
- comes directly from the data-model (i.e., you didn't modified its
- value with arithmetical calculations in the template), including
- the case when it's the return value of a method, and it was of the
- proper class before wrapping, because then the result of the
- unwrapping will be of the original type.</p>
- </dd>
-
-
-
-
-
- <dt class="question" id="faq_simple_map">
- 15.
- When I list the contents of a map (a hash) with
- <code class="inline-code">?keys</code>/<code class="inline-code">?values</code>, I get the
- <code class="inline-code">java.util.Map</code> methods mixed with the real map
- entries. Of course, I only want to get the map entries.
-
- </dt>
-
-
- <dd class="answer">
-
- <p>Certainly you are using pure <code class="inline-code">BeansWrapper</code>
- as your object wrapper (instead of the default,
- <code class="inline-code">DefaultObjectWrapper</code>), or a custom subclass of
- it, and the <code class="inline-code">simpleMapWrapper</code> property of that
- is left to <code class="inline-code">false</code>. Unfortunately, that's the
- default of <code class="inline-code">BeansWrapper</code> (for backward
- compatibility), so you have to explicitly set it to
- <code class="inline-code">true</code> where you instantiate it. Also, at least
- since 2.3.22, applications should just use
- <code class="inline-code">DefaultObjectWrapper</code> (with <a href="pgui_datamodel_objectWrapper.html#topic.defaultObjectWrapperIcI">its
- <code>incompatibleImprovements</code> set to at least
- 2.3.22</a> - that's especially important if you are switching
- from pure <code class="inline-code">BeansWrapper</code>), which never had this
- problem.</p>
- </dd>
-
-
-
-
-
- <dt class="question" id="faq_modify_seq_and_map">
- 16.
- How can I modify sequences (lists) and hashes (maps) in
- FreeMarker templates?
-
-
-
-
-
-
-
-
-
- </dt>
-
-
- <dd class="answer">
-
- <p>First of all, you may don't want to modify the
- sequence/hash, just concatenate (add) two or more of them, which
- results in a new sequence/hash, rather than modifying an existing
- one. In this case use the <a href="dgui_template_exp.html#dgui_template_exp_sequenceop_cat">sequence
- concatenation</a> and <a href="dgui_template_exp.html#dgui_template_exp_hashop_cat">hash concatenation
- operators</a>. Also, you may use the <a href="dgui_template_exp.html#dgui_template_exp_seqenceop_slice">subsequence
- operator</a> instead of removing sequence items. However, be
- aware of the performance implications: these operations are fast,
- but the hashes/sequences that are the result of many subsequent
- applications of these operations (i.e., when you use the result of
- the operation as the input of yet another operation, and so on)
- will be slow to read.</p>
-
- <p>Now if you still want to modify sequences/hashes, then read
- on...</p>
-
- <p>The FreeMarkes Template Language doesn't support the
- modification of sequences/hashes. It's for displaying already
- calculated things, not for calculating data. Keep templates
- simple. But don't give it up, you will see some advices and tricks
- bellow.</p>
-
- <p>The best is if you can divide the work between the
- data-model builder program and the template so that the template
- doesn't need to modify sequences/hashes. Maybe if you rethink your
- data-model, you will realize this is possible. But, seldom there
- are cases where you need to modify sequences/hashes for some
- complex but purely presentation related algorithms. It seldom
- happens, so think twice whether that calculation (or parts of it)
- rather belongs to the data-model domain than to the presentation
- domain. Let's assume you are sure it belongs to the presentation
- domain. For example, you want to display a keyword index on some
- very smart way, whose algorithm need you to create and write some
- sequence variables. Then you should do something like this (ugly
- situations has ugly solutions...):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign caculatedResults =
- 'com.example.foo.SmartKeywordIndexHelper'?new().calculate(keywords)>
-<#-- some simple algorithms comes here, like: -->
-<ul>
- <#list caculatedResults as kw>
- <li><a href="${kw.link}">${kw.word}</a>
- </#list>
-</ul></pre></div>
-
- <p>That is, you move out the complex part of the presentation
- task from the template into Java code. Note that it doesn't affect
- the data-model, so the presentation is still kept separated from
- other the other application logic. Of course the drawback is that
- for this the template author will need the help of a Java
- programmer, but for complex algorithms that's probably needed
- anyway.</p>
-
- <p>Now, if you still say you need to modify sequences/hashes
- directly with the FreeMarker template, here are some solutions,
- but please read the warning after them:</p>
-
- <ul>
- <li>
- <p>You can access the Java API of a
- <code class="inline-code">java.util.Map</code> with the help of the
- <code class="inline-code">api</code> built-in, like
- <code class="inline-code">myMap?api.put(11, "eleven")</code>. You will need
- to get a <code class="inline-code">Map</code> from somewhere though (an FTL
- hash literal like <code class="inline-code">{}</code> won't suffice, as it's
- read only and doesn't support <code class="inline-code">api</code> either).
- For example, you could expose a Java method or
- <code class="inline-code">TemplateMethodModelEx</code> to the template that
- returns a <code class="inline-code">new LinkeHashMap()</code>, so you can do
- <code class="inline-code"><#assign myMap =
- utils.newLinkedHashMap()></code>.</p>
- </li>
-
- <li>
- <p>You can write a <code class="inline-code">TemplateMethodModelEx</code>
- and <code class="inline-code">TemplateDirectiveModel</code> implementation
- that can modify certain types of sequences/hashes. Just
- certain types, because
- <code class="inline-code">TemplateSequenceModel</code> and
- <code class="inline-code">TemplateHashModel</code> doesn't have methods for
- modification, so you will need the sequence or hash to
- implement some additional methods. An example of this solution
- can be seen in FMPP. It allows you to do things like this
- (<code class="inline-code">pp</code> stores the services provided by FMPP
- for templates):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign a = pp.newWritableSequence()>
-<@pp.add seq=a value="red" /></pre></div>
-
- <p>The <code class="inline-code">pp.add</code> directive works only with
- sequences that were created with
- <code class="inline-code">pp.newWritableSequence()</code>. So for example
- the template author can't modify a sequence that comes from
- the data-model with this.</p>
- </li>
-
- <li>
- <p>A sequence can have some methods/directives if you use a
- customized wrapper (so you can write something like
- <code class="inline-code"><@myList.append foo /></code>).</p>
- </li>
- </ul>
-
- <p>But beware, these solutions have a problem: The <a href="dgui_template_exp.html#dgui_template_exp_sequenceop_cat">sequence
- concatenation</a>, <a href="dgui_template_exp.html#dgui_template_exp_seqenceop_slice">sequence slice</a>
- operator (like <code class="inline-code">seq[5..10]</code>) and
- <code class="inline-code">?reverse</code> do not copy the original sequence,
- just wraps it (for efficiency), so the resulting sequence will
- change if the original sequence is changed later (an abnormal
- aliasing effect). The same problem exists with the result of <a href="dgui_template_exp.html#dgui_template_exp_hashop_cat">hash concatenation</a>;
- it just wraps the two hashes, so the resulting hash will magically
- change if you modify the hashes you have added earlier. As a
- work-around, after you did the above problematic operations,
- either be sure you will not modify the objects that were used as
- input, or create a copy of the result with a method provided by
- the solution described in above two points (e.g. in FMPP you could
- do <code class="inline-code"><#assign b =
- pp.newWritableSequence(a[5..10])></code> and
- <code class="inline-code"><#assign c = pp.newWritableHash(hashA +
- hashB)></code>). Of course this is easy to miss... so again,
- rather try to build the data-model so you will not need to modify
- collections, or use a presentation task helper class as was shown
- earlier.</p>
- </dd>
-
-
-
-
-
- <dt class="question" id="faq_null">
- 17.
- What about <code class="inline-code">null</code> and the FreeMarker
- template language?
-
- </dt>
-
-
- <dd class="answer">
-
- <p>The FreeMarker template language doesn't know the Java
- language <code class="inline-code">null</code> at all. It doesn't have
- <code class="inline-code">null</code> keyword, and it can't test if something is
- <code class="inline-code">null</code> or not. When it technically faces with a
- <code class="inline-code">null</code>, it treats it exactly as a missing
- variable. For example, both if <code class="inline-code">x</code> is
- <code class="inline-code">null</code> in the data-model and if it's not present
- at all, <code class="inline-code">${x!'missing'}</code> will print
- "missing", you can't tell the difference. Also, if
- for example you want to test if a Java method has returned
- <code class="inline-code">null</code>, just write something like
- <code class="inline-code"><#if foo.bar()??></code>.</p>
-
- <p>You may interested in the rationale behind this. From the
- viewpoint of the presentation layer a <code class="inline-code">null</code> and
- non-existent thing is almost always the same. The difference
- between this two is usually just a technical detail, which is
- rather the result of implementation details than of the
- application logic. That you can't compare something to
- <code class="inline-code">null</code> (unlike in Java); it doesn't make sense to
- compare something with <code class="inline-code">null</code> in a template,
- since the template language doesn't do identity comparison (like
- the Java <code class="inline-code">==</code> operator when you compare two
- objects) but the more common sense value comparison (like Java's
- <code class="inline-code">Object.equals(Object)</code>; that doesn't work with
- <code class="inline-code">null</code> either). And how could FreeMarker tell if
- something concrete equals with something that is missing and thus
- unknown? Or if two missing (unknown) things are equal? Of course
- these questions can't be answered.</p>
-
- <p>There is at least one problem with this
- <code class="inline-code">null</code>-unaware approach. When you call a Java
- method from a template, you may want to pass a
- <code class="inline-code">null</code> value as argument (since the method was
- designed to be used in Java language, where the concept of
- <code class="inline-code">null</code> is known). In this case you can exploit a
- bug of FreeMarker (that we will not fix until we provide a correct
- solution for passing <code class="inline-code">null</code> values to a method):
- if you specify a missing variable as the argument, then it will
- not cause an error, but a <code class="inline-code">null</code> will be passed
- to the method instead. Like <code class="inline-code">foo.bar(nullArg)</code>
- will call the <code class="inline-code">bar</code> method with
- <code class="inline-code">null</code> as argument, assuming that there is no
- variable exists with "nullArg" name.</p>
- </dd>
-
-
-
-
-
- <dt class="question" id="faq_capture">
- 18.
- How can I use the output of a directive (macro) in
- expressions (as a parameter to another directive)?
-
- </dt>
-
-
- <dd class="answer">
-
- <p>Capture the output into a variable with the
- <code class="inline-code">assign</code> or <code class="inline-code">local</code> directive.
- For example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign capturedOutput><@outputSomething /></#assign>
-<@otherDirective someParam=capturedOutput /></pre></div>
- </dd>
-
-
-
-
-
- <dt class="question" id="faq_questionmark">
- 19.
- Why do I have "?"-s in the output instead of
- character <em>X</em>?
-
- </dt>
-
-
- <dd class="answer">
-
- <p>This is because the character that you want to print can't
- be represented with the <a href="gloss.html#gloss.charset">charset</a> (encoding) used for the
- output stream, so the Java platform (not FreeMarker) substitutes
- the problematic character with question mark. In general you
- should use the same charset for the output as for the template
- (use the <code class="inline-code">getEncoding()</code> method of the template
- object), or which is even safer, you should always use UTF-8
- charset for the output. The charset used for the output stream is
- not decided by FreeMarker, but by you, when you create the
- <code class="inline-code">Writer</code> that you pass to the
- <code class="inline-code">process</code> method of the template.</p>
-
- <p>Example: Here I use UTF-8 charset in a servlet:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">...
-resp.setContentType("text/html; charset=utf-8");
-Writer out = resp.getWriter();
-...
-t.process(root, out);
-...</pre></div>
-
- <p>Note that the question marks (or other substitution
- characters) may be produced outside FreeMarker, in which case the
- above obviously will not help. For example a bad/missconfigured
- database connection or JDBC driver may bring the text already with
- substitution characters in it. HTML forms are another potential
- source of encoding problems. It's a good idea to print the
- numerical code of the characters of the string on various places,
- to see where the problem occurs first.</p>
-
- <p>You can read more about charsets and FreeMarker <a href="pgui_misc_charset.html">here...</a></p>
- </dd>
-
-
-
-
-
- <dt class="question" id="faq_retrieve_calculated_values">
- 20.
- How to retrieve values calculated in templates after
- template execution done?
-
- </dt>
-
-
- <dd class="answer">
-
- <p>First of all, be sure your application is designed well:
- templates should display data, and almost never calculate data. If
- you are still sure you want to do it, read on...</p>
-
- <p>When you use <code class="inline-code"><#assign x = "foo"></code>,
- then you do not actually modify the data-model (since that is
- read-only, see: <a href="pgui_misc_multithreading.html">Programmer's Guide/Miscellaneous/Multithreading</a>), but
- create the <code class="inline-code">x</code> variable in the runtime <a href="gloss.html#gloss.environment">environment</a> of the processing
- (see <a href="pgui_misc_var.html">Programmer's Guide/Miscellaneous/Variables, scopes</a>). The problem is that this
- runtime environment will be discarded when
- <code class="inline-code">Template.process</code> returns, as it was created for
- a single <code class="inline-code">Template.process</code> call:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">// internally an Environment will be created, and then discarded
-myTemplate.process(root, out);</pre></div>
-
- <p>To prevent this, you can do the below, which is equivalent
- with the above, except that you have chance to return the
- variables created in the template:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-unspecified">Environment env = myTemplate.createProcessingEnvironment(root, out);
-env.process(); // process the template
-TemplateModel x = env.getVariable("x"); // get variable x</pre></div>
- </dd>
-
-
-
-
-
- <dt class="question" id="faq_assign_to_dynamic_variable_name">
- 21.
- How to assign to (or <code class="inline-code">#import</code> into) a
- dynamically constructed variable name (like to name that's stored
- in another variable)?
-
- </dt>
-
-
- <dd class="answer">
-
- <p>If you really can't avoid doing that (you should, as it's
- confusing), you can solve that with constructing the appropriate
- FTL source code dynamically in a string, then using the <a href="ref_builtins_expert.html#ref_builtin_interpret"><code>interpret</code>
- built-in</a>. For example, if you want to assign to the
- variable whose name is stored in the <code class="inline-code">varName</code>
- variable:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><@"<#assign ${varName}='example'>"?interpret /></pre></div>
- </dd>
-
-
-
-
-
- <dt class="question" id="faq_template_uploading_security">
- 22.
-
-
- Can I allow users to upload templates and what are the
- security implications?
-
- </dt>
-
-
- <dd class="answer">
-
- <p>In general you shouldn't allow that, unless those users are
- system administrators or other trusted personnel. Consider
- templates as part of the source code just like
- <code class="inline-code">*.java</code> files are. If you still want to allow
- users to upload templates, here are what to consider:</p>
-
- <ul>
- <li>
- <p>Denial-of-Service (DoS) attacks: It's trivial to create
- templates that run practically forever (with a loop), or
- exhaust memory (by concatenating to a string in a loop).
- FreeMarker can't enforce CPU or memory usage limits, so this
- is something that has no solution on the
- FreeMarker-level.</p>
- </li>
-
- <li>
- <p>Data-model and wrapping
- (<code class="inline-code">Configuration.setObjectWrapper</code>): The
- data-model might gives access to the public Java API of some
- objects that you have put into the data-model. By default, for
- objects that aren't instances of a the bunch of specially
- handler types (<code class="inline-code">String</code>,
- <code class="inline-code">Number</code>, <code class="inline-code">Boolean</code>,
- <code class="inline-code">Date</code>, <code class="inline-code">Map</code>,
- <code class="inline-code">List</code>, array, and a few others), their
- public Java API will be exposed. To avoid that, you have to
- construct the data-model so that it only exposes the things
- that are really necessary for the template. For that, you may
- want to use <code class="inline-code">SimpleObjectWrapper</code> (via
- <code class="inline-code">Configuration.setObjectWrapper</code> or the
- <code class="inline-code">object_wrapper</code> setting) and then create the
- data-model purely from <code class="inline-code">Map</code>-s,
- <code class="inline-code">List</code>-s, <code class="inline-code">Array</code>-s,
- <code class="inline-code">String</code>-s, <code class="inline-code">Number</code>-s,
- <code class="inline-code">Boolean</code>-s and <code class="inline-code">Date</code>-s.
- Or, you can implement your own extremely restrictive
- <code class="inline-code">ObjectWrapper</code>, which for example could
- expose your POJO-s safely.</p>
- </li>
-
- <li>
- <p>Template-loader
- (<code class="inline-code">Configuration.setTemplateLoader</code>):
- Templates may load other templates by name (by path), like
- <code class="inline-code"><#include "../secret.txt"></code>. To avoid
- loading sensitive data, you have to use a
- <code class="inline-code">TemplateLoader</code> that double-checks that the
- file to load is something that should be exposed. FreeMarker
- tries to prevent the loading of files outside the template
- root directory regardless of template loader, but depending on
- the underlying storage mechanism, exploits may exist that
- FreeMarker can't consider (like, just as an example,
- <code class="inline-code">~</code> jumps to the current user's home
- directory). Note that
- <code class="inline-code">freemarker.cache.FileTemplateLoader</code> checks
- the canonical paths, so that's maybe a good candidate for this
- task, yet, adding a file extension check (file must be
- <code class="inline-code">*.ftl</code>) is maybe a good idea.</p>
- </li>
-
- <li>
- <p>The <code class="inline-code">new</code> built-in
- (<code class="inline-code">Configuration.setNewBuiltinClassResolver</code>,
- <code class="inline-code">Environment.setNewBuiltinClassResolver</code>):
- It's used in templates like
- <code class="inline-code">"com.example.SomeClass"?new()</code>, and is
- important for FTL libraries that are partially implemented in
- Java, but shouldn't be needed in normal templates. While
- <code class="inline-code">new</code> will not instantiate classes that are
- not <code class="inline-code">TemplateModel</code>-s, FreeMarker contains a
- <code class="inline-code">TemplateModel</code> class that can be used to
- create arbitrary Java objects. Other "dangerous"
- <code class="inline-code">TemplateModel</code>-s can exist in you
- class-path. Plus, even if a class doesn't implement
- <code class="inline-code">TemplateModel</code>, its static initialization
- will be run. To avoid these, you should use a
- <code class="inline-code">TemplateClassResolver</code> that restricts the
- accessible classes (possibly based on which template asks for
- them), such as
- <code class="inline-code">TemplateClassResolver.ALLOWS_NOTHING_RESOLVER</code>.</p>
- </li>
- </ul>
- </dd>
-
-
-
-
-
- <dt class="question" id="faq_implement_function_or_macro_in_java">
- 23.
- How to implement a function or macro in Java Language
- instead of in the template language?
-
- </dt>
-
-
- <dd class="answer">
-
- <p>It's not possible (yet), but something very similar is
- possible if you write a class that implements
- <code class="inline-code">freemarker.template.TemplateMethodModelEx</code> or
- <code class="inline-code">freemarker.template.TemplateDirectiveModel</code>
- respectively, and then where you were write <code class="inline-code"><#function
- my
- <em class="code-color">...</em>><em class="code-color">...</em></#function></code>
- or <code class="inline-code"><#macro my
- <em class="code-color">...</em>><em class="code-color">...</em></#macro></code>
- you write <code class="inline-code"><#assign my = "your.package.YourClass
- "?</code><a href="ref_builtins_expert.html#ref_builtin_new"><code>new</code></a><code class="inline-code">()></code>
- instead. Note that using the <code class="inline-code">assign</code> directive
- for this works because functions (and methods) and macros are just
- plain variables in FreeMarker. (For the same reason you could also
- put <code class="inline-code">TemplateMethodModelEx</code> or
- <code class="inline-code">TemplateDirectiveModel</code> instances into the
- data-model before calling the template, or into the shared
- variable map (see:
- <code class="inline-code">freemarker.template.Configuration.setSharedVariable(String,
- TemplateModel)</code>) when you initialize the
- application.)</p>
- </dd>
-
-
-
-
-
- <dt class="question" id="faq_nice_error_page">
- 24.
- <a name="misc.faq.niceErrorPage"></a> In my Servlet
- based application, how do I show a nice error page instead of a
- stack trace when error occurs during template processing?
-
- </dt>
-
-
- <dd class="answer">
-
- <p>First of all, use <code class="inline-code">RETHROW_HANDLER</code> instead
- of the default <code class="inline-code">DEBUG_HANDLER</code> (for more
- information about template exception handlers <a href="pgui_config_errorhandling.html">read this...</a>). Now
- FreeMarker will not print anything to the output when an error
- occurs, so the control is in your hands. After you have caught the
- exception of
- <code class="inline-code">Template.process(<em class="code-color">...</em>)</code>
- basically you can follow two strategies:</p>
-
- <ul>
- <li>
- <p>Call <code class="inline-code">httpResp.isCommitted()</code>, and if
- that returns <code class="inline-code">false</code>, then you call
- <code class="inline-code">httpResp.reset()</code> and print a "nice
- error page" for the visitor. If the return value was
- <code class="inline-code">true</code>, then try to finish the page be
- printing something that makes clear for the visitor that the
- page generation was abruptly interrupted because of an error
- on the Web server. You may have to print a lot of redundant
- HTML end-tags and set colors and font size to ensure that the
- error message will be actually readable in the browser window
- (check the source code of the
- <code class="inline-code">HTML_DEBUG_HANDLER</code> in
- <code class="inline-code">src\freemarker\template\TemplateException.java</code>
- to see an example).</p>
- </li>
-
- <li>
- <p>Use full page buffering. This means that the
- <code class="inline-code">Writer</code> doesn't send the output to the
- client progressively, but buffers the whole page in the
- memory. Since you provide the <code class="inline-code">Writer</code>
- instance for the
- <code class="inline-code">Template.process(<em class="code-color">...</em>)</code>
- method, this is your responsibility, FreeMarker has nothing to
- do with it. For example, you may use a
- <code class="inline-code">StringWriter</code>, and if
- <code class="inline-code">Template.process(<em class="code-color">...</em>)</code>
- returns by throwing an exception, then ignore the content
- accumulated by the <code class="inline-code">StringWriter</code>, and send
- an error page instead, otherwise you print the content of
- <code class="inline-code">StringWriter</code> to the output. With this
- method you surely don't have to deal with partially sent
- pages, but it can have negative performance implications
- depending on the characteristic of the pages (for example, the
- user will experience more response delay for a long page that
- is generated slowly, also the server will consume more RAM).
- Note that using a <code class="inline-code">StringWriter</code> is surely
- not the most efficient solution, as it often reallocates its
- buffer as the accumulated content grows.</p>
- </li>
- </ul>
- </dd>
-
-
-
-
-
- <dt class="question" id="faq_html_editor_mangles">
- 25.
- I'm using a visual HTML editor that mangles template tags.
- Will you change the template language syntax to accommodate my
- editor?
-
- </dt>
-
-
- <dd class="answer">
-
- <p>We won't change the standard version, because a lot of
- templates depend on it.</p>
-
- <p>Our view is that the editors that break template code are
- themselves broken. A good editor should ignore, not mangle, what
- it doesn't understand.</p>
-
- <p>You maybe interested in that starting from FreeMarker 2.3.4
- 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 more
- details <a href="dgui_misc_alternativesyntax.html">read
- this...</a></p>
- </dd>
-
-
- </dl>
-
- </div>
-<div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="app.html"><span>Previous</span></a><a class="paging-arrow next" href="app_versions.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>\u20132017
-<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder
<TRUNCATED>
[22/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/ref_directive_if.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_directive_if.html b/builds/2.3.26-nightly/ref_directive_if.html
deleted file mode 100644
index 99de82d..0000000
--- a/builds/2.3.26-nightly/ref_directive_if.html
+++ /dev/null
@@ -1,196 +0,0 @@
-<!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>if, else, elseif - 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="if, else, elseif">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_directive_if.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_directive_if.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directives.html"><span itemprop="name">Directive Reference</span></a></li><li class="step-
3" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directive_if.html"><span itemprop="name">if, else, elseif</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","Template Language Reference","Directive Reference","if, else, elseif"];</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="ref_directive_global.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_import.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="ref_directive_if" itemprop="headline">if, else, elseif</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_94" data-menu-target="autoid_94">Synopsis</a></li><li><a class="page-menu-link" href="#autoid_95" data-menu-target="autoid_95">Description</a></li></ul> </div><a name="ref.directive.if"></a><a name="ref.directive.else"></a><a name="ref.directive.elseif"></a>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_94">Synopsis</h2>
-
-
-
-<pre class="metaTemplate">
-<code class="inline-code"><#if <em class="code-color">condition</em>>
- <em class="code-color">...</em>
-<#elseif <em class="code-color">condition2</em>>
- <em class="code-color">...</em>
-<#elseif <em class="code-color">condition3</em>>
- <em class="code-color">...</em>
-<em class="code-color">...</em>
-<#else>
- <em class="code-color">...</em>
-</#if></code>
-</pre>
-
-
- <p>Where:</p>
-
- <ul>
- <li>
- <code class="inline-code"><em class="code-color">condition</em></code>,
- <code class="inline-code"><em class="code-color">condition2</em></code>,
- ...etc.: Expression evaluates to a boolean value.
- </li>
- </ul>
-
- <p>The <code class="inline-code">elseif</code>-s and the
- <code class="inline-code">else</code> are optional.</p>
-
- <p>Camel case name variant: <code class="inline-code">elseIf</code></p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_95">Description</h2>
-
-
- <p>You can use <code class="inline-code">if</code>, <code class="inline-code">elseif</code>
- and <code class="inline-code">else</code> directives to conditionally skip a
- section of the template. The
- <code class="inline-code"><em class="code-color">condition</em></code>-s must
- evaluate to a boolean value, or else an error will abort template
- processing. The <code class="inline-code">elseif</code>-s and
- <code class="inline-code">else</code>-s must occur inside <code class="inline-code">if</code>
- (that is, between the <code class="inline-code">if</code> start-tag and end-tag).
- The <code class="inline-code">if</code> can contain any number of
- <code class="inline-code">elseif</code>-s (including 0) and at the end optionally
- one <code class="inline-code">else</code>. Examples:</p>
-
- <p><code class="inline-code">if</code> with 0 <code class="inline-code">elseif</code> and no
- <code class="inline-code">else</code>:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#if x == 1>
- x is 1
-</#if></pre></div>
-
- <p><code class="inline-code">if</code> with 0 <code class="inline-code">elseif</code> and
- <code class="inline-code">else</code>:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#if x == 1>
- x is 1
-<#else>
- x is not 1
-</#if></pre></div>
-
- <p><code class="inline-code">if</code> with 2 <code class="inline-code">elseif</code> and no
- <code class="inline-code">else</code>:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#if x == 1>
- x is 1
-<#elseif x == 2>
- x is 2
-<#elseif x == 3>
- x is 3
-</#if></pre></div>
-
- <p><code class="inline-code">if</code> with 3 <code class="inline-code">elseif</code> and
- <code class="inline-code">else</code>:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#if x == 1>
- x is 1
-<#elseif x == 2>
- x is 2
-<#elseif x == 3>
- x is 3
-<#elseif x == 4>
- x is 4
-<#else>
- x is not 1 nor 2 nor 3 nor 4
-</#if></pre></div>
-
- <p>To see more about boolean expressions, see: <a href="dgui_template_exp.html">Template Author's Guide/The Template/Expressions</a>.</p>
-
- <p>You can nest <code class="inline-code">if</code> directives (of
- course):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#if x == 1>
- x is 1
- <#if y == 1>
- and y is 1 too
- <#else>
- but y is not
- </#if>
-<#else>
- x is not 1
- <#if y < 0>
- and y is less than 0
- </#if>
-</#if></pre></div>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>When you want to test if <code class="inline-code">x > 0</code> or
- <code class="inline-code">x >= 0</code>, writing <code class="inline-code"><#if x >
- 0></code> and <code class="inline-code"><#if x >= 0></code> is
- WRONG, as the first <code class="inline-code">></code> will close the
- <code class="inline-code">#if</code> tag. To work that around, write
- <code class="inline-code"><#if x gt 0></code> or <code class="inline-code"><#if gte
- 0></code>. Also note that if the comparison occurs inside
- parentheses, you will have no such problem, like <code class="inline-code"><#if
- foo.bar(x > 0)></code> works as expected.</p>
- </div>
-
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_directive_global.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_import.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/ref_directive_import.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_directive_import.html b/builds/2.3.26-nightly/ref_directive_import.html
deleted file mode 100644
index 965f033..0000000
--- a/builds/2.3.26-nightly/ref_directive_import.html
+++ /dev/null
@@ -1,153 +0,0 @@
-<!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>import - 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="import">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_directive_import.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_directive_import.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directives.html"><span itemprop="name">Directive Reference</span></a></li><li class="step-
3" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directive_import.html"><span itemprop="name">import</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","Template Language Reference","Directive Reference","import"];</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="ref_directive_if.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_include.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="ref_directive_import" itemprop="headline">import</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_96" data-menu-target="autoid_96">Synopsis</a></li><li><a class="page-menu-link" href="#autoid_97" data-menu-target="autoid_97">Description</a></li></ul> </div><a name="ref.directive.import"></a>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_96">Synopsis</h2>
-
-
-
-<pre class="metaTemplate"><code class="inline-code"><#import <em class="code-color">path</em> as <em class="code-color">hash</em>></code>
-</pre>
-
-
- <p>Where:</p>
-
- <ul>
- <li>
- <code class="inline-code"><em class="code-color">path</em></code>: The
- path of a template. This is an expression that evaluates to a
- string. (With other words, it doesn't have to be a fixed string,
- it can also be something like, for example,
- <code class="inline-code">profile.baseDir + "/menu.ftl"</code>.)
- </li>
-
- <li>
- <code class="inline-code"><em class="code-color">hash</em></code>: The
- unquoted name of hash variable by which you can access the
- namespace. Not an expression. (If you have to import into a
- dynamically constructed name, you have to use <a href="app_faq.html#faq_assign_to_dynamic_variable_name">this
- trick</a>.)
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_97">Description</h2>
-
-
- <p>Imports a library. That is, it creates a new empty namespace,
- and then executes the template given with
- <code class="inline-code"><em class="code-color">path</em></code> parameter in that
- namespace so the template populates the namespace with variables
- (macros, functions, ...etc.). Then it makes the newly created
- namespace available to the caller with a hash variable. The hash
- variable will be created as a plain variable in the namespace used
- by the caller of <code class="inline-code">import</code> (as if you would create
- it with <code class="inline-code">assign</code> directive), with the name given
- with the <code class="inline-code"><em class="code-color">hash</em></code>
- parameter. If the import happens in the namespace of the main
- template, the hash variable is also created in the global
- namespace.</p>
-
- <p>If you call <code class="inline-code">import</code> with the same
- <code class="inline-code"><em class="code-color">path</em></code> for multiple
- times, it will create the namespace and run the template for the
- very first call of <code class="inline-code">import</code> only. The later calls
- will just create a hash by which you can access the
- <em>same</em> namespace.</p>
-
- <p>The output printed by the imported template will be ignored
- (will not be inserted at the place of importing). The template is
- executed to populate the namespace with variables, and not to write
- to the output.</p>
-
- <p>Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#import "/libs/mylib.ftl" as my>
-
-<@my.copyright date="1999-2002"/></pre></div>
-
- <p>The <code class="inline-code"><em class="code-color">path</em></code>
- parameter can be a relative path like <code class="inline-code">"foo.ftl"</code>
- and <code class="inline-code">"../foo.ftl"</code>, or an absolute like
- <code class="inline-code">"/foo.ftl"</code>. Relative paths are relative to the
- directory of the template that uses the <code class="inline-code">import</code>
- directive. Absolute paths are relative to a base (often referred as
- the ''root directory of the templates'') that the programmer defines
- when he configures FreeMarker.</p>
-
- <p>Always use <code class="inline-code">/</code> (slash) to separate path
- components, never <code class="inline-code">\</code> (backslash). If you are
- loading templates from your local file system and it uses
- backslashes (like under. Windows), FreeMarker will convert them
- automatically.</p>
-
- <p>Like with the <code class="inline-code">include</code> directive, <a href="ref_directive_include.html#ref_directive_include_acquisition">acquisition</a> and
- <a href="ref_directive_include.html#ref_directive_include_localized">localized
- lookup</a> may be used for resolving the path.</p>
-
- <p><span class="marked-for-programmers">Note, that it is possible to
- automatically do the commonly used imports for all templates, with
- the "auto imports" setting of
- <code class="inline-code">Configuration</code>.</span></p>
-
- <p>If you are new to namespaces, you should read: <a href="dgui_misc_namespace.html">Template Author's Guide/Miscellaneous/Namespaces</a></p>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_directive_if.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_include.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/ref_directive_include.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_directive_include.html b/builds/2.3.26-nightly/ref_directive_include.html
deleted file mode 100644
index ebfb785..0000000
--- a/builds/2.3.26-nightly/ref_directive_include.html
+++ /dev/null
@@ -1,449 +0,0 @@
-<!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>include - 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="include">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_directive_include.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_directive_include.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directives.html"><span itemprop="name">Directive Reference</span></a></li><li class="step-
3" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directive_include.html"><span itemprop="name">include</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","Template Language Reference","Directive Reference","include"];</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="ref_directive_import.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_list.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="ref_directive_include" itemprop="headline">include</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_98" data-menu-target="autoid_98">Synopsis</a></li><li><a class="page-menu-link" href="#autoid_99" data-menu-target="autoid_99">Description</a><ul><li><a class="page-menu-link" href="#ref_directive_include_acquisition" data-menu-target="ref_directive_include_acquisition">Using acquisition</a></li><li><a class="page-menu-link" href="#ref_directive_include_localized" data-menu-target="ref_directive_include_localized">Localized lookup</a></li></ul></li></ul> </div><a name="ref.directive.include"></a>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_98">Synopsis</h2>
-
-
-
-<pre class="metaTemplate">
-<code class="inline-code"><#include <em class="code-color">path</em>></code>
-or
-<code class="inline-code"><#include <em class="code-color">path</em> <em class="code-color">options</em>></code>
-</pre>
-
-
- <p>Where:</p>
-
- <ul>
- <li>
- <code class="inline-code"><em class="code-color">path</em></code>: The
- path of the file to include; an expression that evaluates to a
- string. (With other words, it doesn't have to be a fixed string,
- it can also be something like, for example,
- <code class="inline-code">profile.baseDir + "/menu.ftl"</code>.)
- </li>
-
- <li>
- <code class="inline-code"><em class="code-color">options</em></code>: One
- or more of these:
- <code class="inline-code">encoding=<em class="code-color">encoding</em></code>,
- <code class="inline-code">parse=<em class="code-color">parse</em></code>
-
- <ul>
- <li>
- <code class="inline-code"><em class="code-color">encoding</em></code>:
- Expression evaluates to string
- </li>
-
- <li>
- <code class="inline-code"><em class="code-color">parse</em></code>:
- Expression evaluates to boolean (also accepts a few string
- values for backward compatibility)
- </li>
-
- <li>
- <code class="inline-code"><em class="code-color">ignore_missing</em></code>:
- Expression evaluates to boolean
- </li>
- </ul>
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_99">Description</h2>
-
-
- <p>You can use it to insert another FreeMarker template file
- (specified by the <code class="inline-code"><em class="code-color">path</em></code>
- parameter) into your template. The output from the included template
- is inserted at the point where the <code class="inline-code">include</code> tag
- occurs. The included file shares the variables with the including
- template, similarly like if it was copy-pasted into it. The
- <code class="inline-code">include</code> directive is not really replaced by the
- content of the included file, instead it processes the included file
- each time when FreeMarker reaches the <code class="inline-code">include</code>
- directive in the course of template processing. So for example if
- the <code class="inline-code">include</code> is inside a <code class="inline-code">list</code>
- loop, you can specify different file names in each cycle.</p>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This directive is not be confused with the JSP (Servlet)
- include, as it doesn't involve the Servlet container at all, just
- processes another FreeMarker template, without "leaving"
- FreeMarker. Regarding how to do a "JSP include" <a href="app_faq.html#faq_servlet_include">read this...</a></p>
- </div>
-
-
- <p>The <code class="inline-code"><em class="code-color">path</em></code>
- parameter can be a relative path like <code class="inline-code">"foo.ftl"</code>
- and <code class="inline-code">"../foo.ftl"</code>, or an absolute like
- <code class="inline-code">"/foo.ftl"</code>. Relative paths are relative to the
- directory of the template that contains the
- <code class="inline-code">import</code> directive. Absolute paths are relative to
- a base (often referred as the 'root directory of the templates')
- that the programmer defines when he configures FreeMarker.</p>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>This is different than the way it worked prior FreeMarker
- 2.1, where the path was always absolute. To preserve the old
- behavior, enable the classic compatible mode in the
- <code class="inline-code">Configuration</code> object.</p>
- </div>
-
-
- <p>Always use <code class="inline-code">/</code> (slash) to separate path
- components, never <code class="inline-code">\</code> (backslash). Even if you are
- loading templates from your local file system and it uses
- backslashes (like under. Windows), use <code class="inline-code">/</code>.</p>
-
- <p>Example:</p>
-
- <p>Assume /common/copyright.ftl contains:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template">Copyright 2001-2002 ${me}<br>
-All rights reserved.</pre></div>
-
- <p>Then this:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign me = "Juila Smith">
-<h1>Some test</h1>
-<p>Yeah.
-<hr>
-<strong><#include "/common/copyright.ftl"></strong></pre></div>
-
- <p>will output this:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"><h1>Some test</h1>
-<p>Yeah.
-<hr>
-<strong>Copyright 2001-2002 Juila Smith
-All rights reserved.</strong></pre></div>
-
- <p>The supported
- <code class="inline-code"><em class="code-color">options</em></code> are:</p>
-
- <ul>
- <li>
- <p><code class="inline-code">parse</code>: If it is
- <code class="inline-code">true</code>, then the included file will be parsed
- as FTL, otherwise the whole file will be considered as simple
- text (i.e, no FreeMarker constructs will be searched in it). If
- you omit this option, then it defaults to
- <code class="inline-code">true</code>.</p>
- </li>
-
- <li>
- <p><code class="inline-code">encoding</code>: The encoding (charset) of the
- included template. You shouldn't use this option anymore; if
- different template use different encodings, then the programmers
- should associated the encoding to the templates via
- <code class="inline-code">Configuration.setTemplateConfigurations(<em class="code-color">...</em>)</code>-s
- (which also overrides that you specify here). If
- <code class="inline-code">Configuration.setTemplateConfigurations(<em class="code-color">...</em>)</code>
- doesn't specify an encoding for the included template, then the
- included file inherits the encoding (the charset) of the
- top-level template, unless you specify an encoding with this
- option. Examples of valid names: UTF-8, ISO-8859-1, ISO-8859-2,
- Shift_JIS, Big5, EUC-KR, GB2312. <span class="marked-for-programmers">Encoding names are the same as the ones
- supported be java.io.InputStreamReader (as of Java API 1.3:
- MIME-preferred charset names from the IANA Charset
- Registry)</span></p>
- </li>
-
- <li>
- <p><code class="inline-code">ignore_missing</code>: When
- <code class="inline-code">true</code>, suppresses the error when the template
- to include is missing, instead <code class="inline-code"><#include
- ...></code> will print nothing. When
- <code class="inline-code">false</code>, the template processing will stop with
- error if the template is missing. If you omit this option, then
- it defaults to <code class="inline-code">false</code>.</p>
- </li>
- </ul>
-
- <p>Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#include "/common/navbar.html" parse=false encoding="Shift_JIS"></pre></div>
-
- <p><span class="marked-for-programmers">Note, that it is possible to
- automatically do the commonly used inclusions for all templates,
- with the "auto includes" setting of
- <code class="inline-code">Configuration</code>.</span></p>
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="ref_directive_include_acquisition">Using acquisition</h3>
-
-
-
-
- <p>There's a special path component represented by an asterisk
- (<code class="inline-code">*</code>). It is interpreted as "this directory or
- any of its parents". Therefore, if the template located in
- <code class="inline-code">/foo/bar/template.ftl</code> has the following
- line:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#include "*/footer.ftl"></pre></div>
-
- <p>then the engine will look for the template in following
- locations, in this order:</p>
-
- <ul>
- <li>
- <code class="inline-code">/foo/bar/footer.ftl</code>
- </li>
-
- <li>
- <code class="inline-code">/foo/footer.ftl</code>
- </li>
-
- <li>
- <code class="inline-code">/footer.ftl</code>
- </li>
- </ul>
-
- <p>This mechanism is called <strong>acquisition</strong> and allows the designers to
- place commonly included files in a parent directory, and redefine
- them on a per-subdirectory basis as needed. We say that the
- including template acquires the template to include from the first
- parent directory that has it. Note that you can specify not only a
- template name to the right of the asterisk, but a subpath as well.
- I.e. if the previous template instead read:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#include "*/commons/footer.ftl"></pre></div>
-
- <p>then the engine would look for the template in following
- locations, in this order:</p>
-
- <ul>
- <li>
- <code class="inline-code">/foo/bar/commons/footer.ftl</code>
- </li>
-
- <li>
- <code class="inline-code">/foo/commons/footer.ftl</code>
- </li>
-
- <li>
- <code class="inline-code">/commons/footer.ftl</code>
- </li>
- </ul>
-
- <p>Finally, the asterisk needn't be the first element of the
- path:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#include "commons/*/footer.ftl"></pre></div>
-
- <p>would cause the engine to look for the template in following
- locations, in this order:</p>
-
- <ul>
- <li>
- <code class="inline-code">/foo/bar/commons/footer.ftl</code>
- </li>
-
- <li>
- <code class="inline-code">/foo/bar/footer.ftl</code>
- </li>
-
- <li>
- <code class="inline-code">/foo/footer.ftl</code>
- </li>
-
- <li>
- <code class="inline-code">/footer.ftl</code>
- </li>
- </ul>
-
- <p>However, there can be at most one asterisk in the path. If
- you specifying more asterisks, the template won't be found.</p>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="ref_directive_include_localized">Localized lookup</h3>
-
-
-
-
- <p>A locale is a language and an optional country or dialect
- identifier (plus also maybe a further variant identifier, like
- "MAC"). Whenever a template is requested, a desired
- locale is always specified (explicitly or implicitly), and
- FreeMarke will try to find a variant of the template that matches
- that locale. When a template includes or imports another template,
- internally that will also be requested for a locale, for the
- locale that the <code class="inline-code">locale</code> setting is set to, and
- that's usually for the locale of the top-level template.</p>
-
- <p>Suppose your template was loaded with locale
- <code class="inline-code">en_US</code>, which means U.S. English. When you
- include another template:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#include "footer.ftl"></pre></div>
-
- <p>the engine will in fact look for several templates, in this
- order:</p>
-
- <ul>
- <li>
- <code class="inline-code">footer_en_US.ftl</code>,
- </li>
-
- <li>
- <code class="inline-code">footer_en.ftl</code>
- </li>
-
- <li>
- <code class="inline-code">footer.ftl</code>
- </li>
- </ul>
-
- <p>and it will use the first one that exists.</p>
-
- <p>Note that if how (and if) FreeMarker searches the localized
- variations is configurable by the programmers, so we are just
- describing the default behavior here.<span class="marked-for-programmers"> You can disable localized lookup with the
- <code class="inline-code">localized_lookup</code> setting
- (<code class="inline-code">Configuration.setLocalizedLookup(boolean)</code>).
- Also, you can define your own sequence of deduced template names
- with the <code class="inline-code">template_lookup_strategy</code> setting
- (<code class="inline-code">Configuration.setTemplateLookupStrategy(TemplateLookupStrategy)</code>).</span></p>
-
- <p>When you use both acquisition (i.e., <code class="inline-code">*</code>
- step in the path) and localized template lookup, the template with
- more specific locale in a parent directory takes precedence over
- template with less specific locale in a child directory. Suppose
- you use the following include from
- <code class="inline-code">/foo/bar/template.ftl</code>:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#include "*/footer.ftl"></pre></div>
-
- <p>the engine will look for these templates, in this
- order:</p>
-
- <ul>
- <li>
- <code class="inline-code">/foo/bar/footer_en_US.ftl</code>
- </li>
-
- <li>
- <code class="inline-code">/foo/footer_en_US.ftl</code>
- </li>
-
- <li>
- <code class="inline-code">/footer_en_US.ftl</code>
- </li>
-
- <li>
- <code class="inline-code">/foo/bar/footer_en.ftl</code>
- </li>
-
- <li>
- <code class="inline-code">/foo/footer_en.ftl</code>
- </li>
-
- <li>
- <code class="inline-code">/footer_en.ftl</code>
- </li>
-
- <li>
- <code class="inline-code">/foo/bar/footer.ftl</code>
- </li>
-
- <li>
- <code class="inline-code">/foo/footer.ftl</code>
- </li>
-
- <li>
- <code class="inline-code">/footer.ftl</code>
- </li>
- </ul>
-
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_directive_import.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_list.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/ref_directive_list.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_directive_list.html b/builds/2.3.26-nightly/ref_directive_list.html
deleted file mode 100644
index f2e0cbc..0000000
--- a/builds/2.3.26-nightly/ref_directive_list.html
+++ /dev/null
@@ -1,638 +0,0 @@
-<!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>list, else, items, sep, break - 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="list, else, items, sep, break">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_directive_list.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_directive_list.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directives.html"><span itemprop="name">Directive Reference</span></a></li><li class="step-
3" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directive_list.html"><span itemprop="name">list, else, items, sep, break</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","Template Language Reference","Directive Reference","list, else, items, sep, break"];</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="ref_directive_include.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_local.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="ref_directive_list" itemprop="headline">list, else, items, sep, break</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_100" data-menu-target="autoid_100">Synopsis</a></li><li><a class="page-menu-link" href="#autoid_101" data-menu-target="autoid_101">Description</a><ul><li><a class="page-menu-link" href="#autoid_102" data-menu-target="autoid_102">Simplest form</a></li><li><a class="page-menu-link" href="#autoid_103" data-menu-target="autoid_103">else directive</a></li><li><a class="page-menu-link" href="#autoid_104" data-menu-target="autoid_104">items directive</a></li><li><a class="page-menu-link" href="#autoid_105" data-menu-target="autoid_105">sep directive</a></li><li><a class="page-menu-link" href="#autoid_106" data-menu-target="autoid_106">break directive</a></li><li><a class="page-menu-link" href="#autoid_107" data-menu-target="autoid_107">Accessing iteration state</a></li><li><a class="page-menu-link" href="#autoid_108" data-menu-target="autoid_108">Nesting loops into each other</a></li><li><a class="page-menu-link" href="#autoid_109" data-menu-
target="autoid_109">Notes for Java programmers</a></li></ul></li></ul> </div><a name="ref.directive.list"></a>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_100">Synopsis</h2>
-
-
- <p>The simplest form for listing a sequence (or collection)
- is:</p>
-
-
-<pre class="metaTemplate"><code class="inline-code"><#list <em class="code-color">sequence</em> as <em class="code-color">item</em>>
- <em class="code-color">Part repeated for each item</em>
-</#list></code></pre>
-
-
- <p>and to list the key-value pairs of a hash (since
- 2.3.25):</p>
-
-
-<pre class="metaTemplate"><code class="inline-code"><#list <em class="code-color">hash</em> as <em class="code-color">key</em>, <em class="code-color">value</em>>
- <em class="code-color">Part repeated for each key-value pair</em>
-</#list></code></pre>
-
-
- <p>But these are just cases of the generic forms, which are shown
- below. Note that for simplicity we only show the generic forms for
- sequence listing; simply replace "<code class="inline-code">as
- <em class="code-color">item</em></code>" with
- "<code class="inline-code">as <em class="code-color">key</em>,
- <em class="code-color">value</em></code>" to get the
- generic form for hash listing.</p>
-
- <p>Generic form 1:</p>
-
-
-<pre class="metaTemplate"><code class="inline-code"><#list <em class="code-color">sequence</em> as <em class="code-color">item</em>>
- <em class="code-color">Part repeated for each item</em>
-<#else>
- <em class="code-color">Part executed when there are 0 items</em>
-</#list></code></pre>
-
-
- <p>Where:</p>
-
- <ul>
- <li>
- The <code class="inline-code">else</code> part is optional, and is only
- supported since FreeMarker 2.3.23.
- </li>
-
- <li>
- <code class="inline-code"><em class="code-color">sequence</em></code>:
- Expressions evaluates to a sequence or collection of the items
- we want to iterate through
- </li>
-
- <li>
- <code class="inline-code"><em class="code-color">item</em></code>: Name
- of the <a href="dgui_misc_var.html">loop variable</a> (not
- an expression)
- </li>
-
- <li>
- The various "parts" between the tags can
- contain arbitrary FTL (including nested
- <code class="inline-code">list</code>-s)
- </li>
- </ul>
-
- <p>Generic form 2 (since FreeMarker 2.3.23):</p>
-
-
-<pre class="metaTemplate"><code class="inline-code"><#list <em class="code-color">sequence</em>>
- <em class="code-color">Part executed once if we have more than 0 items</em>
- <#items as <em class="code-color">item</em>>
- <em class="code-color"> Part repeated for each item</em>
- </#items>
- <em class="code-color">Part executed once if we have more than 0 items</em>
-<#else>
- <em class="code-color">Part executed when there are 0 items</em>
-</#list></code></pre>
-
-
- <p>Where: see the "Where" section of Form 1 above
- (and thus the <code class="inline-code">else</code> part is optional here
- too).</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_101">Description</h2>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_102">Simplest form</h3>
-
-
- <p>Assuming <code class="inline-code">users</code> contains the
- <code class="inline-code">['Joe', 'Kate', 'Fred']</code> sequence:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list users as user>
- <p>${user}
-</#list></pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> <p>Joe
- <p>Kate
- <p>Fred</pre></div>
-
- <p>The <code class="inline-code">list</code> directive executes the code
- between the <code class="inline-code">list</code> start-tag and
- <code class="inline-code">list</code> end-tag (the body of
- <code class="inline-code">list</code> from now on) for each value in the
- sequence (or collection) specified as its first parameter. For
- each such iteration the loop variable (<code class="inline-code">user</code> in
- this example) will store the value of the current item.</p>
-
- <p>The loop variable (<code class="inline-code">user</code>) only exists
- inside the <code class="inline-code">list</code> body. Also, macros/functions
- called from within the loop won't see it (as if it were a local
- variable).</p>
-
- <p>Listing hashes is very similar, but you need to provide two
- variable names after the <code class="inline-code">as</code>; one for the hash
- key, and another for the associated value. Assuming
- <code class="inline-code">products</code> is <code class="inline-code">{ "apple": 5, "banana":
- 10, "kiwi": 15 }</code>:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list products as name, price>
- <p>${name}: ${price}
-</#list></pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> <p>apple: 5
- <p>banan: 10
- <p>kiwi: 15</pre></div>
-
- <p>Note that not all hash variables can be listed, because some
- of them isn't able to enumerate its keys. It's practically safe to
- assume though that hashes that stand for Java
- <code class="inline-code">Map</code> objects can be listed.</p>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_103">else directive</h3>
-
-
- <a name="ref.directive.list.else"></a>
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p><code class="inline-code">else</code> inside <code class="inline-code">list</code> is
- only supported since FreeMarker 2.3.23</p>
- </div>
-
-
- <p>The <code class="inline-code">else</code> directive is used if when there
- are 0 items, you have to print something special instead of just
- printing nothing:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list users as user>
- <p>${user}
-<#else>
- <p>No users
-</#list></pre></div>
-
- <p>This outputs the same as the earlier example, except when
- <code class="inline-code">users</code> contains 0 items:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> <p>No users</pre></div>
-
- <p>Note that the loop variable (<code class="inline-code">user</code>)
- doesn't exist between the <code class="inline-code">else</code> tag and the
- <code class="inline-code">list</code> end-tag, since that part is not part of
- the loop.</p>
-
- <p><code class="inline-code">else</code> must be literally (means, in the
- source code) inside the body of the <code class="inline-code">list</code>
- directive. That is, you can't moved it out into a macro or
- included template.</p>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_104">items directive</h3>
-
-
- <a name="ref.directive.items"></a>
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p><code class="inline-code">items</code> exists since FreeMarker
- 2.3.23</p>
- </div>
-
-
- <p>The <code class="inline-code">items</code> directive is used if you have
- to print (or do) something before the first list item, and after
- the last list item, as far as there's at least 1 item. A typical
- example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list users>
- <ul>
- <#items as user>
- <li>${user}</li>
- </#items>
- </ul>
-</#list></pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> <ul>
- <li>Joe</li>
- <li>Kate</li>
- <li>Fred</li>
- </ul></pre></div>
-
- <p>If there are 0 items, the above won't print anything, thus
- you don't end up with an empty
- <code class="inline-code"><ul></ul></code>.</p>
-
- <p>That is, when the <code class="inline-code">list</code> directive has no
- <code class="inline-code">as <em class="code-color">item</em></code> parameter,
- the body of its is executed exactly once if there's at least one
- item, or not at all otherwise. It's the body of the mandatory
- nested <code class="inline-code">items</code> directive that will be run for
- each item, and hence it's also the <code class="inline-code">items</code>
- directive that defines the loop variable with <code class="inline-code">as
- <em class="code-color">item</em></code>, not
- <code class="inline-code">list</code>.</p>
-
- <p>A <code class="inline-code">list</code> directive with
- <code class="inline-code">items</code> also can have an <code class="inline-code">else</code>
- directive:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list users>
- <ul>
- <#items as user>
- <li>${user}</li>
- </#items>
- </ul>
-<#else>
- <p>No users
-</#list></pre></div>
-
- <p>Some further details:</p>
-
- <ul>
- <li>
- <p>The parser will check that a <code class="inline-code">list</code>
- without <code class="inline-code">as <em class="code-color">item</em></code>
- parameter always has a nested <code class="inline-code">items</code>
- directive, and that an <code class="inline-code">items</code> directive
- always has an enclosing <code class="inline-code">list</code> which has no
- <code class="inline-code">as <em class="code-color">item</em></code>
- parameter. This is checked when the template is parsed, not
- when the template is executed. Thus, these rules apply on the
- FTL source code itself, so you can't move
- <code class="inline-code">items</code> out into a macro or included
- template.</p>
- </li>
-
- <li>
- <p>A <code class="inline-code">list</code> can have multiple
- <code class="inline-code">items</code> directives, but only one of them will
- be allowed to run (as far as you don't leave and re-enter the
- enclosing <code class="inline-code">list</code> directive); and further
- attempts to call <code class="inline-code">items</code> will cause error. So
- multiple <code class="inline-code">items</code> can be utilized on different
- <code class="inline-code">if</code>-<code class="inline-code">else</code> branches for
- example, but not for iterating twice.</p>
- </li>
-
- <li>
- <p><code class="inline-code">items</code> directive can't have its own
- nested <code class="inline-code">else</code> directive, only the enclosing
- <code class="inline-code">list</code> can have</p>
- </li>
-
- <li>
- <p>The loop variable (<code class="inline-code">user</code>) only exists
- inside the body of the <code class="inline-code">items</code>
- directive.</p>
- </li>
- </ul>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_105">sep directive</h3>
-
-
- <a name="ref.directive.sep"></a>
-
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p><code class="inline-code">sep</code> exists since FreeMarker
- 2.3.23</p>
- </div>
-
-
- <p><code class="inline-code">sep</code> is used when you have to display
- something between each item (but not before the first item or
- after the last item). For example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list users as user>${user}<strong><#sep>, </strong></#list></pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">Joe, Kate, Fred</pre></div>
-
- <p>Above, <code class="inline-code"><#sep>, </#list></code> is a
- shorthand for <code class="inline-code"><#sep>,
- </#sep></#list></code>; the <code class="inline-code">sep</code>
- end-tag can be omitted if you would put it where the enclosing
- directive is closed anyway. In the next example, you couldn't use
- such abbreviation (HTML tags close nothing, as they are just raw
- text to output for FreeMarker):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list users as user>
- <div>
- ${user}<strong><#sep>, </#sep></strong>
- </div>
-</#list></pre></div>
-
- <p><code class="inline-code">sep</code> is just a shorthand for
- <code class="inline-code"><#if
- <em class="code-color">item</em>?has_next>...</#if></code>.
- Thus, it can be used anywhere where there's a
- <code class="inline-code">list</code> or <code class="inline-code">items</code> loop variable
- available, it can occur for multiple times, and it can have
- arbitrary nested content.</p>
-
- <p>The parser ensures that <code class="inline-code">sep</code> is only used
- on a place where there's a visible loop variable. This happens
- earlier than the actual execution of the template. Thus, you can't
- move <code class="inline-code">sep</code> from inside the associated
- <code class="inline-code">list</code> or <code class="inline-code">items</code> directive into
- a macro or included template (the parser can't know where those
- will be called from).</p>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_106">break directive</h3>
-
-
- <a name="ref.directive.list.break"></a>
-
-
-
- <p>You can exit the iteration at any point with the
- <code class="inline-code">break</code> directive. For example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list 1..10 as x>
- ${x}
- <#if x == 3>
- <strong><#break></strong>
- </#if>
-</#list></pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> 1
- 2
- 3</pre></div>
-
- <p>The <code class="inline-code">break</code> directives can be placed
- anywhere inside <code class="inline-code">list</code> as far as it has
- <code class="inline-code">as <em class="code-color">item</em></code> parameter,
- otherwise it can be placed anywhere inside the
- <code class="inline-code">items</code> directive. If the
- <code class="inline-code">break</code> is inside <code class="inline-code">items</code>, it
- will only exit from <code class="inline-code">items</code>, not from
- <code class="inline-code">list</code>. In general, <code class="inline-code">break</code> will
- only exit from the directive whose body is called for each item,
- and can only be placed inside such directive. So for example can't
- use <code class="inline-code">break</code> inside <code class="inline-code">list</code>'s
- <code class="inline-code">else</code> section, unless there's the
- <code class="inline-code">list</code> is nested into another
- <code class="inline-code">break</code>-able directive.</p>
-
- <p>Just like <code class="inline-code">else</code> and
- <code class="inline-code">items</code>, <code class="inline-code">break</code> must be
- literally inside body of the directive to break out from, and
- can't be moved out into a macro or included template.</p>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_107">Accessing iteration state</h3>
-
-
-
-
-
-
- <p>Starting from 2.3.23, <a href="ref_builtins_loop_var.html">loop variable built-ins</a> is
- the preferred way of accessing current state of the iteration. For
- example, here we use the <code class="inline-code">counter</code> and
- <code class="inline-code">item_parity</code> loop variable built-ins (see all of
- them <a href="ref_builtins_loop_var.html">in the
- Reference</a>):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list users>
- <table>
- <#items as user>
- <tr class="${user<strong>?item_parity</strong>}Row">
- <td>${user<strong>?counter</strong>}
- <td>${user}
- </#items>
- </table>
-</#list></pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> <table>
- <tr class="<strong>odd</strong>Row">
- <td><strong>1</strong>
- <td>Joe
- <tr class="<strong>even</strong>Row">
- <td><strong>2</strong>
- <td>Kate
- <tr class="<strong>odd</strong>Row">
- <td><strong>3</strong>
- <td>Fred
- </table></pre></div>
-
- <p>In 2.3.22 and earlier, there were two extra loop variables
- to retrieve the iteration state instead (and they still exist for
- backward compatibility):</p>
-
- <ul>
- <li>
- <p><code class="inline-code"><em class="code-color">item</em>_index</code>
- (<em>deprecated</em> by
- <code class="inline-code"><em class="code-color">item</em>?index</code>): The
- index (0-based number) of the current item in the loop.</p>
- </li>
-
- <li>
- <p><code class="inline-code"><em class="code-color">item</em>_has_next</code>
- (<em>deprecated</em> by
- <code class="inline-code"><em class="code-color">item</em>?has_next</code>):
- Boolean value that tells if the current item is the last in
- the sequence or not.</p>
- </li>
- </ul>
-
- <p>so in the above example, you could replace
- <code class="inline-code">${user?counter}</code> with <code class="inline-code">${user_index +
- 1}</code>.</p>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_108">Nesting loops into each other</h3>
-
-
- <p>Naturally, <code class="inline-code">list</code> or
- <code class="inline-code">items</code> can contain further
- <code class="inline-code">list</code>-s:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list 1..2 as i>
- <#list 1..3 as j>
- i = ${i}, j = ${j}
- </#list>
-</#list></pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> i = 1, j = 1
- i = 1, j = 2
- i = 1, j = 3
- i = 2, j = 1
- i = 2, j = 2
- i = 2, j = 3</pre></div>
-
- <p>It's also allowed to use clashing loop variable names
- like:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#list 1..2 as i>
- Outer: ${i}
- <#list 10..12 as i>
- Inner: ${i}
- </#list>
- Outer again: ${i}
-</#list></pre></div>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> Outer: 1
- Inner: 10
- Inner: 11
- Inner: 12
- Outer again: 1
- Outer: 2
- Inner: 10
- Inner: 11
- Inner: 12
- Outer again: 2</pre></div>
-
-
-
-
-
-
-
-<h3 class="content-header header-section3" id="autoid_109">Notes for Java programmers</h3>
-
-
- <p><span class="marked-for-programmers">If classic compatible mode
- <code class="inline-code">list</code> accepts a scalar too and treats it as a
- single-element sequence.</span></p>
-
- <p><span class="marked-for-programmers">If you pass an collection that
- wraps an <code class="inline-code">java.util.Iterator</code> to the
- <code class="inline-code">list</code>, you can iterate over its elements only
- once, since <code class="inline-code">Iterator</code>s are by their nature
- one-off objects. When you try to list a such collection variable
- for the second time, an error will abort template
- processing.</span></p>
-
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_directive_include.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_local.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>\u20132017
-<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>
[23/51] [partial] incubator-freemarker-site git commit: 2.3.26-voting
docs, removed nightly
Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-site/blob/a4004324/builds/2.3.26-nightly/ref_directive_compress.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_directive_compress.html b/builds/2.3.26-nightly/ref_directive_compress.html
deleted file mode 100644
index 3c59d01..0000000
--- a/builds/2.3.26-nightly/ref_directive_compress.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<!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>compress - 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="compress">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_directive_compress.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_directive_compress.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directives.html"><span itemprop="name">Directive Reference</span></a></li><li class="step-
3" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directive_compress.html"><span itemprop="name">compress</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","Template Language Reference","Directive Reference","compress"];</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="ref_directive_autoesc.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_escape.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="ref_directive_compress" itemprop="headline">compress</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_82" data-menu-target="autoid_82">Synopsis</a></li><li><a class="page-menu-link" href="#autoid_83" data-menu-target="autoid_83">Description</a></li></ul> </div><a name="ref.directive.compress"></a>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_82">Synopsis</h2>
-
-
-
-<pre class="metaTemplate">
-<code class="inline-code"><#compress>
- <em class="code-color">...</em>
-</#compress></code>
-</pre>
-
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_83">Description</h2>
-
-
- <p>The compress directive is useful for removing superfluous
- <a href="gloss.html#gloss.whiteSpace">white-space</a> when you use a
- white-space insensitive format (e.g. HTML or XML). It captures the
- output generated inside its body (i.e. between its start-tag and
- end-tag), and reduces all unbroken white-space sequences to a single
- white-space character. The inserted character will be a <a href="gloss.html#gloss.lineBreak">line break</a> if the replaced sequence
- contains line breaks, or a space otherwise. The very first and very
- last unbroken white-space sequences will be completely
- removed.</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign x = " moo \n\n ">
-(<#compress>
- 1 2 3 4 5
- ${moo}
- test only
-
- I said, test only
-
-</#compress>)</pre></div>
-
- <p>will output:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">(1 2 3 4 5
-moo
-test only
-I said, test only)</pre></div>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_directive_autoesc.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_escape.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/ref_directive_escape.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_directive_escape.html b/builds/2.3.26-nightly/ref_directive_escape.html
deleted file mode 100644
index ebd956b..0000000
--- a/builds/2.3.26-nightly/ref_directive_escape.html
+++ /dev/null
@@ -1,232 +0,0 @@
-<!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>escape, noescape (deprecated) - 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="escape, noescape (deprecated)">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_directive_escape.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_directive_escape.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directives.html"><span itemprop="name">Directive Reference</span></a></li><li class="step-
3" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directive_escape.html"><span itemprop="name">escape, noescape (deprecated)</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","Template Language Reference","Directive Reference","escape, noescape (deprecated)"];</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="ref_directive_compress.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_flush.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="ref_directive_escape" itemprop="headline">escape, noescape (deprecated)</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_84" data-menu-target="autoid_84">Synopsis</a></li><li><a class="page-menu-link" href="#autoid_85" data-menu-target="autoid_85">Description</a></li></ul> </div><a name="ref.directive.escape"></a><a name="ref.directive.noescape"></a>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_84">Synopsis</h2>
-
-
-
-<pre class="metaTemplate">
-<code class="inline-code"><#escape <em class="code-color">identifier</em> as <em class="code-color">expression</em>>
- <em class="code-color">...</em>
- <#noescape><em class="code-color">...</em></#noescape>
- <em class="code-color">...</em>
-</#escape></code>
-</pre>
-
-
- <p>Camel case name variant: <code class="inline-code">noEscape</code></p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_85">Description</h2>
-
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>These directives are <em>deprecated</em> by
- <a href="dgui_misc_autoescaping.html">output-format-based
- auto-escaping</a> since 2.3.24. Furthermore, on places that use
- auto-escaping (with an output format that actually does escaping)
- you aren't allowed to use the <code class="inline-code">escape</code> directive
- (as you will find out from the parsing error message
- anyway).</p>
- </div>
-
-
- <p>When you surround a part of the template with an escape
- directive, interpolations
- (<code class="inline-code">${<em class="code-color">...</em>}</code>) that occur
- inside the block are combined with the escaping expression
- automatically. This is a convenience method for avoiding writing
- similar expressions all over. It does not affect interpolations in
- string literals (as in <code class="inline-code"><#assign x =
- "Hello�${user}!"></code>). Also, it does not affect numerical
- interpolations
- (<code class="inline-code">#{<em class="code-color">...</em>}</code>).</p>
-
- <p>Example:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><strong><#escape x as x?html></strong>
- First name: ${firstName}
- Last name: ${lastName}
- Maiden name: ${maidenName}
-<strong></#escape></strong></pre></div>
-
- <p>is actually equivalent to:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"> First name: ${firstName<strong>?html</strong>}
- Last name: ${lastName<strong>?html</strong>}
- Maiden name: ${maidenName<strong>?html</strong>}</pre></div>
-
- <p>Note that it is irrelevant what identifier you use in the
- directive - it just serves as a formal parameter to the escaping
- expression.</p>
-
- <p>When you are calling macros or the <code class="inline-code">include</code>
- directive, it is important to understand that escape has effect only
- on interpolations that occur between the <code class="inline-code"><#escape
- <em class="code-color">...</em>></code> and
- <code class="inline-code"></#escape></code> <em>in the template
- text</em>. That is, it will not escape anything that is before
- <code class="inline-code"><#escape <em class="code-color">...</em>></code> in
- the text, or after the <code class="inline-code"></#escape></code> in the
- text, not even if that part is called from inside the
- <code class="inline-code">escape</code>-d section.</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#assign x = "<test>">
-<#macro m1>
- m1: ${x}
-</#macro>
-<#escape x as x?html>
- <#macro m2>m2: ${x}</#macro>
- ${x}
- <@m1/>
-</#escape>
-${x}
-<@m2/></pre></div>
-
- <p>the output will be:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output"> &lt;test&gt;
- m1: <test>
-<test>
-m2: &lt;test&gt;</pre></div>
-
- <p><span class="marked-for-programmers">More technically, the effects of
- <code class="inline-code">escape</code> directive are applied at template parsing
- time rather than at template processing time. This means that if you
- call a macro or include another template from within an escape
- block, it won't affect the interpolations in the macro/included
- template, since macro calls and template includes are evaluated at
- template processing time. On the other hand, if you surround one or
- more macro declarations (which are evaluated at template parsing
- time, as opposed to macro calls) with an escape block, the
- interpolations in those macros will be combined with the escaping
- expression.</span></p>
-
- <p>Sometimes there is a need to temporarily turn off escaping for
- one or two interpolations in an escape block. You can achieve this
- by closing and later reopening the escape block, but then you have
- to write the escaping expression twice. You can instead use the
- noescape directive:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#escape x as x?html>
- From: ${mailMessage.From}
- Subject: ${mailMessage.Subject}
- <strong><#noescape></strong>Message: ${mailMessage.htmlFormattedBody}<strong></#noescape></strong>
- <em>...</em>
-</#escape></pre></div>
-
- <p>is equivalent to:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"> From: ${mailMessage.From?html}
- Subject: ${mailMessage.Subject?html}
- Message: ${mailMessage.htmlFormattedBody}
- ...</pre></div>
-
- <p>Escapes can be nested (although you will do it only in rare
- circumstances). Therefore, you can write something like the below
- code (the example is admittedly a bit stretched, as you'd probably
- place item codes in a sequence and use <code class="inline-code">list</code> to
- iterate over them, but we're now doing it this way just to
- illustrate the point):</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><strong><#escape x as x?html></strong>
- Customer Name: ${customerName}
- Items to ship:
- <strong><#escape x as itemCodeToNameMap[x]></strong>
- ${itemCode1}
- ${itemCode2}
- ${itemCode3}
- ${itemCode4}
- <strong></#escape></strong>
-<strong></#escape></strong></pre></div>
-
- <p>is actually equivalent to:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"> Customer Name: ${customerName?html}
- Items to ship:
- ${itemCodeToNameMap[itemCode1]?html}
- ${itemCodeToNameMap[itemCode2]?html}
- ${itemCodeToNameMap[itemCode3]?html}
- ${itemCodeToNameMap[itemCode4]?html}</pre></div>
-
- <p>When you use the noescape directive in a nested escape block,
- it undoes only a single level of escaping. Therefore, to completely
- turn off escaping in a two-level deep escaped block, you need to use
- two nested noescape directives as well.</p>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_directive_compress.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_flush.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/ref_directive_flush.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_directive_flush.html b/builds/2.3.26-nightly/ref_directive_flush.html
deleted file mode 100644
index 6dc6106..0000000
--- a/builds/2.3.26-nightly/ref_directive_flush.html
+++ /dev/null
@@ -1,96 +0,0 @@
-<!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>flush - 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="flush">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_directive_flush.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_directive_flush.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directives.html"><span itemprop="name">Directive Reference</span></a></li><li class="step-
3" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directive_flush.html"><span itemprop="name">flush</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","Template Language Reference","Directive Reference","flush"];</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="ref_directive_escape.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_ftl.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="ref_directive_flush" itemprop="headline">flush</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_86" data-menu-target="autoid_86">Synopsis</a></li><li><a class="page-menu-link" href="#autoid_87" data-menu-target="autoid_87">Description</a></li></ul> </div><a name="ref.directive.flush"></a>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_86">Synopsis</h2>
-
-
-
-<pre class="metaTemplate"><code class="inline-code"><#flush></code></pre>
-
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_87">Description</h2>
-
-
- <p>When FreeMarker generates the output, it's usually not sent
- immediately to the final receiving party (like a web browser or a
- destination file), but is accumulated in a buffer, then it's sent
- out in bigger chunks. The exact rules of the buffering is not
- decided by FreeMarker, but by the embedding software. Sending out
- the content accumulated in the buffer is called flushing. Although
- flushing happens automatically, sometimes you want to force it on
- certain points of the template processing, and this is what the
- <code class="inline-code">flush</code> directive does. Whether it's needed at
- certain points should be decided by a programmer, not a
- designer.</p>
-
- <p>Note that while <code class="inline-code">flush</code> tells the embedding
- software that we want to flush, that might as well decides to ignore
- this request. It's not in the hands of FreeMarker.</p>
-
- <p><span class="marked-for-programmers">Flush simply calls the
- <code class="inline-code">flush()</code> method of the currently used
- <code class="inline-code">java.io.Writer</code> instance. The whole buffering and
- flushing mechanism is implemented in the <code class="inline-code">Writer</code>
- (that you have passed as the parameter of the
- <code class="inline-code">Template.process</code> method); FreeMarker does not
- deal with it.</span></p>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_directive_escape.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_ftl.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/ref_directive_ftl.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_directive_ftl.html b/builds/2.3.26-nightly/ref_directive_ftl.html
deleted file mode 100644
index 0683402..0000000
--- a/builds/2.3.26-nightly/ref_directive_ftl.html
+++ /dev/null
@@ -1,285 +0,0 @@
-<!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>ftl - 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="ftl">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_directive_ftl.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_directive_ftl.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directives.html"><span itemprop="name">Directive Reference</span></a></li><li class="step-
3" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directive_ftl.html"><span itemprop="name">ftl</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","Template Language Reference","Directive Reference","ftl"];</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="ref_directive_flush.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_function.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="ref_directive_ftl" itemprop="headline">ftl</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_88" data-menu-target="autoid_88">Synopsis</a></li><li><a class="page-menu-link" href="#autoid_89" data-menu-target="autoid_89">Description</a></li></ul> </div><a name="ref.directive.ftl"></a>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_88">Synopsis</h2>
-
-
-
-<pre class="metaTemplate">
-<code class="inline-code"><#ftl <em class="code-color">param1</em>=<em class="code-color">value1</em> <em class="code-color">param2</em>=<em class="code-color">value2</em> <em class="code-color">...</em> <em class="code-color">paramN</em>=<em class="code-color">valueN</em>></code>
-</pre>
-
-
- <p>Where:</p>
-
- <ul>
- <li>
- <code class="inline-code"><em class="code-color">param1</em></code>,
- <code class="inline-code"><em class="code-color">param2</em></code>, ...etc.:
- Name of the parameter. Not an expression. Allowed parameters
- are: <code class="inline-code">encoding</code>,
- <code class="inline-code">strip_whitespace</code>,
- <code class="inline-code">strip_text</code>, ...etc. See below.
- </li>
-
- <li>
- <code class="inline-code"><em class="code-color">value1</em></code>,
- <code class="inline-code"><em class="code-color">value2</em></code>, ...etc.:
- The value of parameter. This must be a constant expression (as
- <code class="inline-code">true</code>, or <code class="inline-code">"ISO-8859-5"</code>, or
- <code class="inline-code">{x:1, y:2}</code>). It can't use variables.
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_89">Description</h2>
-
-
- <p>Tells information about the template for FreeMarker and for
- other tools, also helps programs to automatically detect if a text
- file is an FTL file. This directive, if present, must be the very
- first thing in the template. Any <a href="gloss.html#gloss.whiteSpace">white-space</a> before this directive
- will be ignored. The old-syntax (<code class="inline-code">#</code>-less) format
- of this directive is not supported.</p>
-
- <p>The settings (encoding, white-space stripping, etc.) given
- here has the highest precedence, that is, they will be used for the
- template regardless of any FreeMarker configuration settings.</p>
-
- <p>Possible parameters:</p>
-
- <ul>
- <li>
- <p><code class="inline-code">attributes</code>: This is a hash that
- associates arbitrary attributes (name-value pairs) to the
- template. The values of the attributes can be of any type
- (string, number, sequence... etc.). FreeMarker doesn't try to
- understand the meaning of the attributes. It's up to the
- application that encapsulates FreeMarker (as a Web application
- framework). Thus, the set of allowed attributes and their
- semantic is application (Web application framework) dependent.
- <span class="marked-for-programmers">Programmers: you can get the
- attributes associated with a <code class="inline-code">Template</code> object
- with its <code class="inline-code">getCustomAttributeNames</code> and
- <code class="inline-code">getCustomAttribute</code> methods (inherited from
- <code class="inline-code">freemarker.core.Configurable</code>). As the
- template attributes are associated with the
- <code class="inline-code">Template</code> object when the template is parsed,
- the attributes can be read anytime, the template need not be
- executed. The methods mentioned return the attribute values
- unwrapped, that is, with FreeMarker independent type as
- <code class="inline-code">java.util.List</code>.</span></p>
- </li>
-
- <li>
- <p><code class="inline-code">auto_esc</code>: A boolean constant to turn
- <a href="dgui_misc_autoescaping.html">auto-escaping</a> on
- or off. It depends on the
- <code class="inline-code">auto_escaping_policy</code> of the FreeMarker
- configuration, but usually auto-escaping will be by default on,
- if the current <a href="dgui_misc_autoescaping.html#dgui_misc_autoescaping_outputformat">output
- format</a> uses auto-escaping by default. So you mostly use
- this to disable auto-escaping (<code class="inline-code">false</code> value).
- An attempt to use <code class="inline-code">true</code> value when the current
- output format is a <a href="dgui_misc_autoescaping.html#dgui_misc_autoescaping_nonmarkupof">non-markup output
- format</a> (which hence can't escape) will cause <a href="gloss.html#gloss.parseTimeError">parse-time error</a>. Note
- that you can turn auto-escaping on/off for only a part of the
- template with the <a href="ref_directive_autoesc.html"><code>autoesc</code></a>
- and <a href="ref_directive_noautoesc.html"><code>noautoesc</code>
- directives</a>.</p>
- </li>
-
- <li>
- <p><code class="inline-code">encoding</code>: With this you can specify the
- encoding (charset) of the template in the template file itself.
- <span class="marked-for-programmers">(That is, this will be the
- <code class="inline-code">encoding</code> setting of the newly created
- <code class="inline-code">Template</code>, and not even the
- <code class="inline-code">encoding</code> parameter to
- <code class="inline-code">Configuration.getTemplate</code> can override
- it)</span>. Note however, that FreeMarker will try to find and
- interpret the <code class="inline-code">ftl</code> directive first with the
- automatically guessed encoding (which depends on the FreeMarker
- configuration set by the programmers), and only then realizes if
- the <code class="inline-code">ftl</code> directive dictates something
- different, and re-read the template with the new encoding. Thus,
- the template must be valid FTL until the end of
- <code class="inline-code">ftl</code> tag with the encoding tried first. The
- valid values of this parameter are MIME-preferred charset names
- from the IANA Charset Registry, like ISO-8859-5, UTF-8 or
- Shift_JIS.</p>
- </li>
-
- <li>
- <p><code class="inline-code">ns_prefixes</code>: This is a hash that
- associates prefixes with node namespaces. For example:
- <code class="inline-code">{"e":"http://example.com/ebook",
- "vg":"http://example.com/vektorGraphics"}</code>. This is
- mostly used with XML processing where the prefixes can be used
- in XML queries, but it also influences the working of <a href="ref_directive_visit.html">directives
- <code>visit</code> and <code>recurse</code></a>.
- Only one prefix can be registered for the same node namespace
- (otherwise an error will occur), so there is one-to-one relation
- between prefixes and node namespaces. Prefixes
- <code class="inline-code">D</code> and <code class="inline-code">N</code> are reserved. If
- you register prefix <code class="inline-code">D</code>, then other than you
- associate the node namespace with prefix <code class="inline-code">D</code>,
- you also set the default node namespace. Prefix
- <code class="inline-code">N</code> can't be registered; it is used to denote
- nodes with no node namespace in certain places, when (and only
- when) prefix <code class="inline-code">D</code> is registered. (To see the
- usage of default node namespace, <code class="inline-code">N</code>, and
- prefixes in general, see the part about <a href="xgui.html">XML
- processing</a> and <a href="ref_directive_visit.html"><code>visit</code> and
- <code>recurse</code></a> in the reference.) The effect
- of <code class="inline-code">ns_prefixes</code> is limited to a single <a href="dgui_misc_namespace.html">FTL namespace</a>, namely, to
- the FTL namespace that was created for the template. This also
- means that <code class="inline-code">ns_prefixes</code> has effect only when
- an FTL namespace is created for the template that contains it,
- otherwise the <code class="inline-code">ns_prefixes</code> parameter has no
- effect. An FTL namespace is made for a template when: (a) the
- template is the "main" template, that is, it is not
- invoked as a result of an <code class="inline-code"><#include
- ...></code>, but it is directly invoked (<span class="marked-for-programmers">with the <code class="inline-code">process</code> Java
- method of class <code class="inline-code">Template</code> or
- <code class="inline-code">Environment</code></span>); (b) the template is
- invoked directly with <code class="inline-code"><#import
- ...></code>.</p>
- </li>
-
- <li>
- <p><code class="inline-code">output_format</code>: Specifies the <a href="dgui_misc_autoescaping.html#dgui_misc_autoescaping_outputformat">output
- format</a> of this template. This must be a string literal,
- which refers to the name of the output format. See the <a href="dgui_misc_autoescaping.html#topic.predefinedOutputFormats">table of predefined
- output formats here</a>. Other names can exist if the
- programmers has added them via the
- <code class="inline-code">registered_custom_output_formats</code>
- configuration setting
- (<code class="inline-code">Configuration.setRegisteredCustomOutputFormats(<em class="code-color">...</em>)</code>).
- The referred output format must be known by the
- <code class="inline-code">Configuration</code>, or else a <a href="gloss.html#gloss.parseTimeError">parse-time error </a>will
- occur. The name can also refer to a so called combined output
- format as
- <code class="inline-code">"<em class="code-color">outerFormatName</em>{<em class="code-color">innerFormatName</em>}"</code>;
- <a href="ref_directive_outputformat.html#topic.combinedOutputFormats">see more about
- combined output formats here</a>.</p>
- </li>
-
- <li>
- <p><code class="inline-code">strict_syntax</code>: This turns on/off
- "strict syntax", which is the standard syntax after
- FreeMarker 2.1. Valid values are the boolean constants
- <code class="inline-code">true</code> and <code class="inline-code">false</code>. (And for
- backward compatibility, strings <code class="inline-code">"yes"</code>,
- <code class="inline-code">"no"</code>, <code class="inline-code">"true"</code>,
- <code class="inline-code">"false"</code>). The default value (i.e., when you
- don't use this parameter) depends on the FreeMarker
- configuration set by the programmers, but it's most certainly
- set to <code class="inline-code">true</code>. For more information read: <a href="ref_depr_oldsyntax.html">Deprecated FTL constructs/Old FTL syntax</a></p>
- </li>
-
- <li>
- <p><code class="inline-code">strip_text</code>: When enabled, all top-level
- text in a template is removed when the template is parsed. This
- does not affect text within macros, directives, or
- interpolations. Valid values are the boolean constants
- <code class="inline-code">true</code> and <code class="inline-code">false</code>. (And for
- backward compatibility, strings <code class="inline-code">"yes"</code>,
- <code class="inline-code">"no"</code>, <code class="inline-code">"true"</code>,
- <code class="inline-code">"false"</code>). The default value (i.e. when you
- don't use this parameter) is <code class="inline-code">false</code>.</p>
- </li>
-
- <li>
- <p><code class="inline-code">strip_whitespace</code>: This enables/disables
- <a href="dgui_misc_whitespace.html#dgui_misc_whitespace_stripping">white-space
- stripping</a>. Valid values are the boolean constants
- <code class="inline-code">true</code> and <code class="inline-code">false</code>. (And for
- backward compatibility, strings <code class="inline-code">"yes"</code>,
- <code class="inline-code">"no"</code>, <code class="inline-code">"true"</code>,
- <code class="inline-code">"false"</code>). The default value (i.e. when you
- don't use this parameter) depends on the FreeMarker
- configuration set by the programmers, but it should be
- <code class="inline-code">true</code> for new projects.</p>
- </li>
- </ul>
-
- <div class="callout note">
- <strong class="callout-label">Note:</strong>
-
- <p>As of FreeMarker 2.3.23, you can use camel case instead of
- snake case for parameter names, like
- <code class="inline-code">outputFormat</code> instead of
- <code class="inline-code">output_format</code>. But know that then within the
- same template, FreeMarker will enforce the usage of camel case for
- all identifiers that are part of the template language (user
- defined names are not affected).</p>
- </div>
-
-
- <p>This directive also determines if the template uses angle
- bracket syntax (e.g. <code class="inline-code"><#include 'foo.ftl'></code>)
- or <a href="dgui_misc_alternativesyntax.html">square bracket
- syntax</a> (e.g. <code class="inline-code">[#include 'foo.ftl']</code>).
- Simply, the syntax used for this directive will be the syntax used
- for the whole template, regardless of the FreeMarker configuration
- settings.</p>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_directive_flush.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_function.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/ref_directive_function.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_directive_function.html b/builds/2.3.26-nightly/ref_directive_function.html
deleted file mode 100644
index 22e00bc..0000000
--- a/builds/2.3.26-nightly/ref_directive_function.html
+++ /dev/null
@@ -1,173 +0,0 @@
-<!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>function, return - 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="function, return">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_directive_function.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_directive_function.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directives.html"><span itemprop="name">Directive Reference</span></a></li><li class="step-
3" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directive_function.html"><span itemprop="name">function, return</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","Template Language Reference","Directive Reference","function, return"];</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="ref_directive_ftl.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_global.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="ref_directive_function" itemprop="headline">function, return</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_90" data-menu-target="autoid_90">Synopsis</a></li><li><a class="page-menu-link" href="#autoid_91" data-menu-target="autoid_91">Description</a></li></ul> </div><a name="ref.directive.function"></a><a name="ref.directive.function.return"></a>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_90">Synopsis</h2>
-
-
-
-<pre class="metaTemplate">
-<code class="inline-code"><#function <em class="code-color">name</em> <em class="code-color">param1</em> <em class="code-color">param2</em> <em class="code-color">... paramN</em>>
- <em class="code-color">...</em>
- <#return <em class="code-color">returnValue</em>>
- <em class="code-color">...</em>
-</#function></code>
-</pre>
-
-
- <p>Where:</p>
-
- <ul>
- <li>
- <code class="inline-code"><em class="code-color">name</em></code>: name
- of method variable (not expression)
- </li>
-
- <li>
- <code class="inline-code"><em class="code-color">param1</em></code>,
- <code class="inline-code"><em class="code-color">param2</em></code>, ...etc.:
- the name of the <a href="dgui_misc_var.html">local
- variables</a> store the parameter values (not expression),
- optionally followed by <code class="inline-code">=</code> and the default
- value (that's an expression).
- </li>
-
- <li>
- <code class="inline-code"><em class="code-color">paramN</em></code>, the
- last parameter, may optionally include a trailing ellipsis
- (<code class="inline-code">...</code>), which indicates the macro takes a
- variable number of parameters. Local variable
- <code class="inline-code"><em class="code-color">paramN</em></code> will be a
- sequence of the extra parameters.
- </li>
-
- <li>
- <code class="inline-code"><em class="code-color">returnValue</em></code>:
- the expression that calculates the value of the method
- call.
- </li>
- </ul>
-
- <p>The <code class="inline-code">return</code> directive can be used anywhere
- and for any times between the <code class="inline-code"><#function
- <em class="code-color">...</em>></code> and
- <code class="inline-code"></#function></code>.</p>
-
- <p>Parameters without default value must precede parameters with
- default value
- (<code class="inline-code"><em class="code-color">paramName</em>=<em class="code-color">defaultValue</em></code>).</p>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_91">Description</h2>
-
-
- <p>Creates a method variable (in the current namespace, if you
- know namespace feature). This directive works in the same way as the
- <a href="ref_directive_macro.html#ref.directive.macro"><code>macro</code>
- directive</a>, except that <code class="inline-code">return</code> directive
- <em>must</em> have a parameter that specifies the return
- value of the method, and that attempts to write to the output will
- be ignored. If the <code class="inline-code"></#function></code> is reached
- (i.e. there was no <code class="inline-code">return
- <em class="code-color">returnValue</em></code>), then the return
- value of the method is an undefined variable.</p>
-
- <p>Example 1: Creating a method that calculates the average of
- two numbers:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#function avg x y>
- <#return (x + y) / 2>
-</#function>
-${avg(10, 20)}</pre></div>
-
- <p>will print:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">15</pre></div>
-
- <p>Example 2: Creating a method that calculates the average of
- multiple numbers:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-template"><#function avg nums...>
- <#local sum = 0>
- <#list nums as num>
- <#local sum += num>
- </#list>
- <#if nums?size != 0>
- <#return sum / nums?size>
- </#if>
-</#function>
-${avg(10, 20)}
-${avg(10, 20, 30, 40)}
-${avg()!"N/A"}</pre></div>
-
- <p>will print:</p>
-
-
-
-<div class="code-wrapper"><pre class="code-block code-output">15
-25
-N/A</pre></div>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_directive_ftl.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_global.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>\u20132017
-<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/a4004324/builds/2.3.26-nightly/ref_directive_global.html
----------------------------------------------------------------------
diff --git a/builds/2.3.26-nightly/ref_directive_global.html b/builds/2.3.26-nightly/ref_directive_global.html
deleted file mode 100644
index e0a4a1d..0000000
--- a/builds/2.3.26-nightly/ref_directive_global.html
+++ /dev/null
@@ -1,136 +0,0 @@
-<!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>global - 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="global">
-<meta property="og:locale" content="en_US">
-<meta property="og:url" content="http://freemarker.org/docs/ref_directive_global.html">
-<link rel="canonical" href="http://freemarker.org/docs/ref_directive_global.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="ref.html"><span itemprop="name">Template Language Reference</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directives.html"><span itemprop="name">Directive Reference</span></a></li><li class="step-
3" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="ref_directive_global.html"><span itemprop="name">global</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","Template Language Reference","Directive Reference","global"];</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="ref_directive_function.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_if.html"><span>Next</span></a></div><div class="title-wrapper">
-<h1 class="content-header header-section1" id="ref_directive_global" itemprop="headline">global</h1>
-</div></div><div class="page-menu">
-<div class="page-menu-title">Page Contents</div>
-<ul><li><a class="page-menu-link" href="#autoid_92" data-menu-target="autoid_92">Synopsis</a></li><li><a class="page-menu-link" href="#autoid_93" data-menu-target="autoid_93">Description</a></li></ul> </div><a name="ref.directive.global"></a>
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_92">Synopsis</h2>
-
-
-
-<pre class="metaTemplate">
-<code class="inline-code"><#global <em class="code-color">name</em>=<em class="code-color">value</em>></code>
-or
-<code class="inline-code"><#global <em class="code-color">name1</em>=<em class="code-color">value1</em> <em class="code-color">name2</em>=<em class="code-color">value2</em> <em class="code-color">... nameN</em>=<em class="code-color">valueN</em>></code>
-or
-<code class="inline-code"><#global <em class="code-color">name</em>>
- <em class="code-color">capture this</em>
-</#global></code>
-</pre>
-
-
- <p>Where:</p>
-
- <ul>
- <li>
- <code class="inline-code"><em class="code-color">name</em></code>: name
- of the variable. It is not expression. However, it can be
- written as a string literal, which is useful if the variable
- name contains reserved characters, for example
- <code class="inline-code"><#global "foo-bar" = 1></code>. Note that this
- string literal does not expand interpolations (as
- <code class="inline-code">"${foo}"</code>).
- </li>
-
- <li>
- <code class="inline-code">=</code>: Assignment operator, which can also
- be one of the shorthand assignment operators
- (<code class="inline-code">++</code>, <code class="inline-code">+=</code>, etc.), just like
- with <a href="ref_directive_assign.html">the
- <code>assign</code> directive</a>,
- </li>
-
- <li>
- <code class="inline-code"><em class="code-color">value</em></code>: the
- value to store. Expression.
- </li>
- </ul>
-
-
-
-
-
-<h2 class="content-header header-section2" id="autoid_93">Description</h2>
-
-
- <p>This directive is similar to <a href="ref_directive_assign.html#ref.directive.assign"><code>assign</code></a>, but
- the variable created will be visible in all <a href="dgui_misc_namespace.html">namespaces</a>, and will not be
- inside any namespace. Exactly as if you would create (or replace) a
- variable of the data-model. Hence, the variable is global. If a
- variable with the same name already exists in the data-model, it
- will be hidden by the variable created with this directive. If a
- variable with the same name already exists in the current namespace,
- that will hide the variable created with <code class="inline-code">global</code>
- directive.</p>
-
- <p>For example, with <code class="inline-code"><#global x = 1></code> you
- create a variable that is visible as <code class="inline-code">x</code> in all
- namespaces, unless another variable called <code class="inline-code">x</code>
- hides it (for example a variable what you have created as
- <code class="inline-code"><#assign x = 2></code>). In this case, you can use
- <a href="dgui_template_exp.html#dgui_template_exp_var_special">special
- variable</a> <code class="inline-code">globals</code>, like
- <code class="inline-code">${.globals.x}</code>. Note that with
- <code class="inline-code">globals</code> you see all globally accessible
- variables; not only the variables that were created with
- <code class="inline-code">global</code> directive, but also the variables of the
- data-model.</p>
-
- <p>Note for custom JSP tag users: The set of variables created
- with this directive corresponds to the JSP page-scope. This means,
- that if a custom JSP tag wants to get a page-scope attribute
- (page-scope bean), a variable with the same name in the current
- namespace will not hide it from the viewpoint of the JSP tag.</p>
- <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="ref_directive_function.html"><span>Previous</span></a><a class="paging-arrow next" href="ref_directive_if.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>\u20132017
-<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>